Safari Booksに日本語の本がたくさん追加されていた(計112冊)

  • このエントリーをはてなブックマークに追加

先月まで58冊だったのですが、今日見たら112冊になってました。
追加日を見ると、2021年5月19日~24日にかけて追加されたようです。

デザインの伝え方Javaパフォーマンス をはじめ、よさげな本がたくさんあります!

安く読む方法は、ACMの会員になるのが良いです。以下のリンクを参照。

ACM会員になってオライリーの本が読み放題

日本語書籍の一覧

カバー タイトル 出版日/追加日
入門 ソーシャルデータ 第2版 ―ソーシャルウェブのデータマイニング 2014/06/20
2021/05/24
Cクイックリファレンス 第2版 2016/11/04
2021/05/24
JavaScriptで学ぶ関数型プログラミング 2014/01/17
2021/05/20
マイクロインタラクション ―UI/UXデザインの神が宿る細部 2014/03/18
2021/05/19
AngularJSアプリケーション開発ガイド 2014/04/17
2021/05/19
実践 Vagrant 2014/02/20
2021/05/19
Effective Modern C++ ―C++11/14プログラムを進化させる42項目 2015/09/17
2021/05/19
Backbone.jsアプリケーション開発ガイド 2014/02/06
2021/05/19
統計クイックリファレンス 第2版 2015/01/23
2021/05/19
戦略的データサイエンス入門 ―ビジネスに活かすコンセプトとテクニック 2014/07/18
2021/05/19
Rクイックリファレンス 第2版 2014/01/24
2021/05/19
Bluetooth Low Energyをはじめよう 2015/02/24
2021/05/19
エンジニアのためのフィードバック制御入門 2014/07/25
2021/05/19
リーン顧客開発 ―「売れないリスク」を極小化する技術 2015/04/24
2021/05/19
Think Stats 第2版 ―プログラマのための統計入門 2015/08/18
2021/05/19
Rパッケージ開発入門 ―テスト、文書化、コード共有の手法を学ぶ 2016/02/04
2021/05/19
Think Bayes ―プログラマのためのベイズ統計入門 2014/09/05
2021/05/19
デザイニング・マルチデバイス・エクスペリエンス ―デバイスの枠を超えるUXデザインの探求 2014/12/24
2021/05/19
CSSシークレット ―47のテクニックでCSSを自在に操る 2016/07/22
2021/05/19
Sparkによる実践データ解析 ―大規模データのための機械学習事例集 2016/01/22
2021/05/19
Cython ―Cとの融合によるPythonの高速化 2015/06/18
2021/05/19
ユーザーストーリーマッピング 2015/07/24
2021/05/19
インタラクティブ・データビジュアライゼーション ― D3.jsによるデータの可視化 2014/02/18
2021/05/19
データ分析によるネットワークセキュリティ 2016/06/10
2021/05/19
リーンブランディング ―リーンスタートアップによるブランド構築 2016/08/25
2021/05/19
情報アーキテクチャ 第4版 ―見つけやすく理解しやすい情報設計 2016/11/17
2021/05/19
Docker 2016/08/12
2021/05/19
アルゴリズムクイックリファレンス 第2版 2016/12/22
2021/05/19
初めてのSpark 2015/08/21
2021/05/19
デザインスプリント ―プロダクトを成功に導く短期集中実践ガイド 2016/11/25
2021/05/19
初めてのAnsible 2016/04/15
2021/05/19
コマンドラインではじめるデータサイエンス ―分析プロセスを自在に進めるテクニック 2015/09/15
2021/05/19
実践 Android Developer Tools 2014/04/22
2021/05/19
アンダースタンディング コンピュテーション ―単純な機械から不可能なプログラムまで 2014/09/17
2021/05/19
データ匿名化手法 ―ヘルスデータ事例に学ぶ個人情報保護 2015/05/22
2021/05/19
詳説 イーサネット 第2版 2015/06/09
2021/05/19
アジャイルデータサイエンス ―スケーラブルに構築するビッグデータアプリケーション 2014/04/24
2021/05/19
ハイパフォーマンス ブラウザネットワーキング ―ネットワークアプリケーションのためのパフォーマンス最適化 2014/05/15
2021/05/19
ハイパフォーマンスPython 2015/11/19
2021/05/19
詳解 iOS SDK 第4版 ―ワンランク上のiPhone/iPadプログラミング 2014/12/18
2021/05/19
Javaパフォーマンス 2015/04/10
2021/05/19
パフォーマンス向上のためのデザイン設計 2016/06/24
2021/05/19
モバイルデザインパターン 第2版 ―ユーザーインタフェースのためのパターン集 2015/02/10
2021/05/19
データサイエンス講義 2014/10/24
2021/05/19
RStudioではじめるRプログラミング入門 2015/03/24
2021/05/19
Lean Analytics ―スタートアップのためのデータ解析と活用法 2015/01/23
2021/05/19
デザインの伝え方 ―組織の合意を得るコミュニケーション術 2016/09/15
2021/05/19
入門 iOS SDK ―初めてのiPhone/iPadプログラミング 2014/06/20
2021/05/19
グラフデータベース ―Neo4jによるグラフデータモデルとグラフデータベース入門 2015/03/24
2021/05/19
リーンエンタープライズ ―イノベーションを実現する創発的な組織づくり 2016/10/14
2021/05/19
Haskellによる並列・並行プログラミング 2014/08/20
2021/05/19
UX戦略 ―ユーザー体験から考えるプロダクト作り 2016/05/24
2021/05/19
マイクロサービスアーキテクチャ 2016/02/25
2021/05/19
ZooKeeperによる分散システム管理 2014/10/07
2021/05/19
エレガントなSciPy ―Pythonによる科学技術計算 2018/11/09
2020/12/14
デザイニング・ボイスユーザーインターフェース ―音声で対話するサービスのためのデザイン原則 2018/11/30
2020/12/14
Infrastructure as Code ―クラウドにおけるサーバ管理の原則とプラクティス 2017/03/17
2020/12/14
初めてのPerl 第7版 2018/01/19
2020/12/14
Rによるテキストマイニング ―tidytextを活用したデータ分析と可視化の基礎 2018/05/17
2020/12/14
PythonとJavaScriptではじめるデータビジュアライゼーション 2017/08/24
2020/12/14
Rグラフィックスクックブック 第2版 ―ggplot2によるグラフ作成のレシピ集 2019/11/19
2020/12/14
ゼロトラストネットワーク ―境界防御の限界を超えるためのセキュアなシステム設計 2019/10/25
2020/12/14
Pythonデータサイエンスハンドブック ―Jupyter、NumPy、pandas、Matplotlib、scikit-learnを使ったデータ分析、機械学習 2018/05/25
2020/12/14
プログラミングRust 2018/08/09
2020/12/14
初めてのPHP 2017/03/17
2020/12/14
Rではじめるデータサイエンス 2017/10/24
2020/12/14
Lean UX 第2版 ―アジャイルなチームによるプロダクト開発 2017/07/03
2020/12/14
実践 CSIRTプレイブック ―セキュリティ監視とインシデント対応の基本計画 2018/05/18
2020/12/14
Head First Python 第2版 ―頭とからだで覚えるPythonの基本 2018/03/23
2020/12/14
Pythonによるデータ分析入門 第2版 ―NumPy、pandasを使ったデータ処理 2018/07/25
2020/12/14
GitHubツールビルディング ―GitHub APIを活用したワークフローの拡張とカスタマイズ 2017/05/09
2020/12/14
バイオビルダー ―合成生物学をはじめよう 2018/11/20
2020/12/14
Optimized C++ ―最適化、高速化のためのプログラミングテクニック 2017/02/21
2020/12/10
入門 監視 ―モダンなモニタリングのためのデザインパターン 2019/01/16
2020/11/19
Go言語による並行処理 2018/10/25
2020/11/19
Fluent Python ―Pythonicな思考とコーディング手法 2017/10/06
2020/11/19
アイソモーフィックJavaScript 2017/07/03
2020/11/19
ベタープログラマ ―優れたプログラマになるための38の考え方とテクニック 2017/12/14
2020/11/19
入門 Kubernetes 2018/03/20
2020/11/19
Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎 2017/05/24
2020/11/19
機械学習のための特徴量エンジニアリング ―その原理とPythonによる実践 2019/02/21
2020/11/19
エンジニアのためのマネジメントキャリアパス ―テックリードからCTOまでマネジメントスキル向上ガイド 2018/09/25
2020/11/19
SVGエッセンシャルズ 第2版 2017/05/16
2020/11/19
実践 Deep Learning ―PythonとTensorFlowで学ぶ次世代の機械学習アルゴリズム 2018/04/25
2020/11/19
進化的アーキテクチャ ―絶え間ない変化を支える 2018/08/17
2020/11/19
Reactビギナーズガイド ―コンポーネントベースのフロントエンド開発入門 2017/03/10
2020/11/19
初めてのJavaScript 第3版 ―ES2015以降の最新ウェブ開発 2017/01/19
2020/11/19
プロダクションレディマイクロサービス ―運用に強い本番対応システムの実装と標準化 2017/09/12
2020/11/19
Effective DevOps ―4本柱による持続可能な組織文化の育て方 2018/03/23
2020/11/19
PythonによるWebスクレイピング 第2版 2019/03/25
2020/11/19
分散システムデザインパターン ―コンテナを使ったスケーラブルなサービスの設計 2019/04/19
2020/11/19
データ指向アプリケーションデザイン ―信頼性、拡張性、保守性の高い分散システム設計の原理 2019/07/17
2020/11/19
詳説 Deep Learning ―実務者のためのアプローチ 2019/08/08
2020/11/19
入門 Prometheus ―インフラとアプリケーションのパフォーマンスモニタリング 2019/05/17
2020/11/19
初めてのGraphQL ―Webサービスを作って学ぶ新世代API 2019/11/11
2020/11/19
SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム 2017/08/10
2020/11/19
プログラミングROS ―Pythonによるロボットアプリケーション開発 2017/12/12
2020/11/19
詳解 OpenCV 3 ―コンピュータビジョンライブラリを使った画像処理・認識 2018/05/25
2020/11/19
Unityによるモバイルゲーム開発 ―作りながら学ぶ2D/3Dゲームプログラミング入門 2018/08/23
2020/11/19
マスタリング・イーサリアム ―スマートコントラクトとDAppの構築 2019/11/28
2020/11/16
インテリジェンス駆動型インシデントレスポンス ―攻撃者を出し抜くサイバー脅威インテリジェンスの実践的活用法 2018/12/25
2020/11/16
Python機械学習クックブック 2018/12/14
2020/11/16
ITIL Service Design (Japanese Translation) 2013/06/01
2020/10/29
ITIL Service Operation (Japanese Translation) 2013/06/01
2020/10/29
ITIL Service Strategy (Japanese Translation) 2013/06/01
2020/10/29
ITIL Service Transition (Japanese Translation) 2013/06/01
2020/10/29
ITIL Practitioner Guidance (Japanese Translation) 2017/03/01
2020/10/29
ITIL Continual Service Improvement (Japanese Translation) 2013/06/01
2020/10/29
Feedback That Works: How to Build and Deliver Your Message (Japanese) 2008/08/01
2020/10/26
Developmental Assignments: Creating Learning Experiences Without Changing Jobs (Japanese) 2008/07/31
2020/10/26
ITIL Foundation Handbook (Japanese Translation) 2015/06/01
2020/10/23
ITIL Foundation, ITIL 4 edition (Japanese Translation) 2019/11/01
2020/10/23

Jacksonである階層の属性を別の階層のObjectにマッピングする

  • このエントリーをはてなブックマークに追加

以下のJsonがあるとして、cursorhas_nextはPaginationに関するものだから、別のObjectにマッピングしたい。

{
"id": "abc",
"cursor": "next-cursor",
"has_next": true
}

普通にMappingするとこういうクラスを用意するわけだけど、

@Data
public static class MyRoot {
private String id;
private String cursor;
@JsonProperty("has_next") private boolean hasNext;
}

こういう感じの構造にマッピングしたい。

@Data
public static class MyRoot {
private String id;
private Paging paging;
}
@Data
public static class Paging {
@JsonProperty("cursor") private String cursor;
@JsonProperty("has_next") private boolean hasNext;
}

方法: @JsonUnwrappedを使う

@Data
public static class MyRoot {
private String id;
@JsonUnwrapped
private Paging paging;
}
@Data
public static class Paging {
@JsonProperty("cursor")
private String cursor;
@JsonProperty("has_next")
private boolean hasNext;
}

@Test
public static void main(String[] args) throws Exception {
String jsonString = """
{
"id": "abc",
"cursor": "next-cursor",
"has_next": true
}
""".indent(0);

ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
MyRoot root = mapper.readValue(jsonString, MyRoot.class);
System.out.println(root);
JacksonTest.MyRoot(id=abc, paging=JacksonTest.Paging(cursor=next-cursor, hasNext=true))

もし、MyRootクラスと@JsonUnwrappedされたPagingクラスに同じ属性名が存在する場合、MyRoot側に値が設定されます。

Twitter gemでrate limitのAPIをコールしたい

  • このエントリーをはてなブックマークに追加

メソッドがないので、Requestを愚直に作ってレスポンスを取得する。

require "twitter"

client = Twitter::REST::Client.new do |config|
config.consumer_key = "***"
config.consumer_secret = "***"
config.access_token = "***"
config.access_token_secret = "***"
end

rate_limits = Twitter::REST::Request.new(client, :get, '/1.1/application/rate_limit_status.json').perform
rate_limits[:resources].each_pair do |category, hash|
hash.each_pair do |api_name, context|
puts [
category,
api_name,
context[:limit],
context[:remaining],
Time.at(context[:reset]),
].join("\t")
end
end

sinatra + omniauth-twitterでForbiddenになる

  • このエントリーをはてなブックマークに追加

インターネットを適当に検索して出てくるサンプルを動かしてみると、CVE-2015-9284対応前のバージョンのサンプルばかりで、/auth/twitterへアクセス時にForbiddenエラーが発生してしまう。

Gemのバージョン
gem "sinatra"           , "2.1.0"
gem "sinatra-contrib" , "2.1.0"
gem "omniauth" , "2.0.4"
gem "omniauth-oauth" , "1.2.0"
gem "omniauth-twitter" , "1.4.0"

マニュアルによると、

By default, this uses rack-protection’s AuthenticityToken class to validate authenticity tokens. If you are using a rack based framework like sinatra, you can find an example of how to add authenticity tokens to your view here.

https://github.com/omniauth/omniauth/wiki/Upgrading-to-2.0#racksinatra

デフォルトではAuthenticityToken クラスを使用して認証トークンを検証します。
sinatra のようなrackベースのフレームワークを使用している場合の、認証トークンをviewに追加するサンプルがここにあります。

と記載があり、
/auth/:providerのrequest parameterとしてauthenticity_tokenが必要とのこと。
値はrequest.env["rack.session"]["csrf"]を。

こんな感じのが必要.

<form method="post" action="/auth/twitter">
<input type="hidden" name="authenticity_token" value="<%=request.env['rack.session']['csrf']%>">
<button type="submit">login</button>
</form>

参考情報

omniauth-twitterで/auth/twitterが有効にならない

  • このエントリーをはてなブックマークに追加

サンプルで遊んでいたら、/auth/:providerが有効にならなくて、なんでだろうなと。
CSRFの対策で、/auth/:providerはgetメソッドでは受け付けません。

p OmniAuth.config.allowed_request_methods
> [:post]

https://github.com/omniauth/omniauth/pull/1010で変更が入り、omniauth 2.0以降に取り込まれています。

以下のようなことはしてはいけません。
ちゃんとpostでコールしましょうね。

OmniAuth.config.allowed_request_methods = [:get, :post]

参考情報

Concurrent::Promises.zipとFuture.delay

  • このエントリーをはてなブックマークに追加

concurrent-rubyの使い方を調べていて、こちらのページを見つけたのですが、解説が正しくなかったので、正しい挙動をメモ。

このQiitaのページでは、以下のように記載があります。

zipとういうメソッドが用意されているのでそれを使用すると、同時にスレッドが実行され、それらの返り値が配列にまとめられます。

しかし、Concurrent::Promises.futurefuture_onのshortcutであり、future_oneval on immediatelyであるので、futureを作った時点で実行が始まります。そのため、zipとは関係なく、threadの状態はfullfilledになります。

Constructs new Future which will be resolved after block is evaluated on default executor. Evaluation begins immediately.

zipメソッドで処理を発火したい場合は、delayを使います。

sample program
threads = (1..5).map do |i|
Concurrent::Promises.delay(i) do |i|
n = rand(5) + 1
puts "[#{i}] start: #{Time.now} / sleep=#{n}"
sleep n
puts "[#{i}] finished: #{Time.now}"
"result: #{i}"
end
end

sleep 3
puts "before zip: #{Time.now}"
Concurrent::Promises.zip(*threads)
.then{|*hashes| hashes.reduce(&:merge) }
.value

実行結果(delay)

result by delay
before zip: 2021-04-11 14:56:35 +0900            # zipで発火するまでスレッドは実行されていない
[5] start: 2021-04-11 14:56:35 +0900 / sleep=3
[4] start: 2021-04-11 14:56:35 +0900 / sleep=3
[3] start: 2021-04-11 14:56:35 +0900 / sleep=4
[2] start: 2021-04-11 14:56:35 +0900 / sleep=5
[1] start: 2021-04-11 14:56:35 +0900 / sleep=4
[4] finished: 2021-04-11 14:56:38 +0900
[5] finished: 2021-04-11 14:56:38 +0900
[1] finished: 2021-04-11 14:56:39 +0900
[3] finished: 2021-04-11 14:56:39 +0900
[2] finished: 2021-04-11 14:56:40 +0900
```

実行結果(futureの場合)

result by future
ruby aaa.rb 
[1] start: 2021-04-11 14:57:14 +0900 / sleep=4
[2] start: 2021-04-11 14:57:14 +0900 / sleep=5
[3] start: 2021-04-11 14:57:14 +0900 / sleep=4
[4] start: 2021-04-11 14:57:14 +0900 / sleep=1
[5] start: 2021-04-11 14:57:14 +0900 / sleep=1
[5] finished: 2021-04-11 14:57:15 +0900
[4] finished: 2021-04-11 14:57:15 +0900
before zip: 2021-04-11 14:57:17 +0900 # ▲zipの前にスレッド実行されている
[3] finished: 2021-04-11 14:57:18 +0900
[1] finished: 2021-04-11 14:57:18 +0900
[2] finished: 2021-04-11 14:57:19 +0900

参考情報

FaradayでCookieを永続化したい

  • このエントリーをはてなブックマークに追加

faraday-cookie-jarを使えばResponseのSet-Cookieを処理し、後続のRequestにCookieヘッダを付与することができるので、一般的なCookieとしての情報を扱うことができます。
この情報を永続化するサンプルが見つからなかったのでメモ。

require "faraday"
require "faraday-cookie-jar"

jar = HTTP::CookieJar.new
conn = Faraday.new(base_url) do |builder|
builder.adapter :net_http
builder.use :cookie_jar, jar:jar
end
resp = conn.get("https://httpbin.org/cookies/set/hello/world")
jar.save("/tmp/cookie.yaml") # YAMLで保存される

Saveメソッドの詳細はこちら

保存したCookieを読み込む場合はloadを使います。

jar = HTTP::CookieJar.new
jar.load("/tmp/cookie.yaml") if File.exist?("/tmp/cookie.yaml")
conn = Faraday.new(base_url) do |builder|
builder.adapter :net_http
builder.use :cookie_jar, jar:jar
end
...

参考情報

ACM会員になってオライリーの本が読み放題

  • このエントリーをはてなブックマークに追加

O’reilly Online Learning(Safari Books Online)はたくさんの本が読めるサブスクサービスです。
前職では会社が契約したのですが、個人で申し込むと月額49ドルと、なかなかお高い。

そこで安く使う方法として、年額ACMの会員になると、特典としてこのサービスへのアクセス権がついてきます。ACMの会員費用は年額99ドルです。さらに、私は学生でもあるので、学生会員として登録することができます。その場合、なんと年額19ドル。会員になるしかない!!
ACMといえば、コンピュータ分野全般を対象として国際学会で、チューリング賞なんかが有名ですね。SIGとしてはSIGGRAPH(コンピューターグラフィックスを扱う分科会)も有名です。


※注意!! (追記: 2021/10/10)

Beginning June 30, 2021 you will no longer have access to O’Reilly content. Due to the significant increasing cost of licensing content from O’Reilly, we are no longer able to offer these resources to as part of your student membership.

Please note that this change does not affect your access to Skillsoft online books, courses, and videos or your access to Elsevier ScienceDirect books and journals. You will continue to receive access to the thousands of titles from Skillsoft and ScienceDirect as a benefit of your student membership.

If you would like to continue to receive access to the O’Reilly’s resources licensed by ACM, we can offer them to you at an additional fee. If you have any questions or if you would like to add O’Reilly resources to your membership, please contact Member Services by telephone at +1 212 626-0500 or via email at acmhelp@acm.org.

ライセンス料の高騰により、2021年6月30日以降、学生会員には提供されなくなりました。
一般会員には引き続き提供されています。

(追記ここまで)


ACM デジタルライブラリーはジャーナルや論文へのアクセスができるようになるのですが、私はこれはいったん不要。

ACM登録方法

https://www.acm.org/membership/joinから「ACM Student Membership」を選択し、必要な情報を入力していきます。学生じゃない場合は、Professionalを選択する。その場合は入力項目が変わります。以下の画像は、学生会員の場合の例です。

クレジットカードかペイパルで支払う事ができます。私はペイパルで払いました。
(SIGGRAPHに参加する場合とか)オプションで色々つけることができますが、何もつけません。

アカウント作成

ACMの会員になっただけでは、アカウントがありません。アカウントを作ります。
会員費を支払ったあと、次の画面が表示されるので、「Create your ACM Web Account」を選択します。

キャプチャ画像を撮るの忘れてしまったので画像はないのですが、メールアドレスとパスワードを入れます。すると、Complete Your ACM Accountというタイトルで確認メールが来るので、メール中のURLを踏んで登録を完了させます。
その後、{account}@acm.orgというメールアドレスが作成されます。account名は氏名から自動生成されます。

マイページにアクセスできるようになります。

アクセスできる特典は、本だけでなく、主に3つあります。

  • O’Reilly (safari books online)
  • Skillsoft (LMS)
  • ScienceDirect (学術雑誌/電子書籍のプラットフォーム)

SkillsoftはLMSなのですが、コンテンツとしては以下のようなSafariにないような、例えばInside SSD本があります。

Safariへのログイン

ACMのマイページからリンクを踏んでSSOでログインして、ACMのIDとパスワードを入れればオライリーのサイトにログインした状態で遷移します。

日本語の本を探す

設定のLanguage PreferencesJapaneseにチェックを入れます

すると検索条件にJapaneseが出てきます。

日本語の本が出てきます

オススメの本

Brendan Gregg先生が最近出したSystems Performance, 2nd Editionはオススメです。Safariでは読めませんが、2nd Edition版ではないですが、システムパフォーマンス詳解として日本語版が出版されています。

The Manager’s Pathも良いです。これも日本語版が出ています。表紙はなんとなく見たことあると思います。

すごく古いですが、Java Concurrency in Practiceも良き。日本語版は「Java並行処理プログラミング」です。

日本語の本

せっかくなので、今時点(2021/04/08)の日本語の本の一覧を列挙しておきます。
2021年になってからは追加されていない😭

カバー タイトル 出版日/追加日
エレガントなSciPy ―Pythonによる科学技術計算 2018/11/09
2020/12/14
デザイニング・ボイスユーザーインターフェース ―音声で対話するサービスのためのデザイン原則 2018/11/30
2020/12/14
Infrastructure as Code ―クラウドにおけるサーバ管理の原則とプラクティス 2017/03/17
2020/12/14
初めてのPerl 第7版 2018/01/19
2020/12/14
Rによるテキストマイニング ―tidytextを活用したデータ分析と可視化の基礎 2018/05/17
2020/12/14
PythonとJavaScriptではじめるデータビジュアライゼーション 2017/08/24
2020/12/14
Rグラフィックスクックブック 第2版 ―ggplot2によるグラフ作成のレシピ集 2019/11/19
2020/12/14
ゼロトラストネットワーク ―境界防御の限界を超えるためのセキュアなシステム設計 2019/10/25
2020/12/14
Pythonデータサイエンスハンドブック ―Jupyter、NumPy、pandas、Matplotlib、scikit-learnを使ったデータ分析、機械学習 2018/05/25
2020/12/14
プログラミングRust 2018/08/09
2020/12/14
初めてのPHP 2017/03/17
2020/12/14
Rではじめるデータサイエンス 2017/10/24
2020/12/14
Lean UX 第2版 ―アジャイルなチームによるプロダクト開発 2017/07/03
2020/12/14
実践 CSIRTプレイブック ―セキュリティ監視とインシデント対応の基本計画 2018/05/18
2020/12/14
Head First Python 第2版 ―頭とからだで覚えるPythonの基本 2018/03/23
2020/12/14
Pythonによるデータ分析入門 第2版 ―NumPy、pandasを使ったデータ処理 2018/07/25
2020/12/14
GitHubツールビルディング ―GitHub APIを活用したワークフローの拡張とカスタマイズ 2017/05/09
2020/12/14
バイオビルダー ―合成生物学をはじめよう 2018/11/20
2020/12/14
Optimized C++ ―最適化、高速化のためのプログラミングテクニック 2017/02/21
2020/12/10
入門 監視 ―モダンなモニタリングのためのデザインパターン 2019/01/16
2020/11/19
Go言語による並行処理 2018/10/25
2020/11/19
Fluent Python ―Pythonicな思考とコーディング手法 2017/10/06
2020/11/19
アイソモーフィックJavaScript 2017/07/03
2020/11/19
ベタープログラマ ―優れたプログラマになるための38の考え方とテクニック 2017/12/14
2020/11/19
入門 Kubernetes 2018/03/20
2020/11/19
Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎 2017/05/24
2020/11/19
機械学習のための特徴量エンジニアリング ―その原理とPythonによる実践 2019/02/21
2020/11/19
エンジニアのためのマネジメントキャリアパス ―テックリードからCTOまでマネジメントスキル向上ガイド 2018/09/25
2020/11/19
SVGエッセンシャルズ 第2版 2017/05/16
2020/11/19
実践 Deep Learning ―PythonとTensorFlowで学ぶ次世代の機械学習アルゴリズム 2018/04/25
2020/11/19
進化的アーキテクチャ ―絶え間ない変化を支える 2018/08/17
2020/11/19
Reactビギナーズガイド ―コンポーネントベースのフロントエンド開発入門 2017/03/10
2020/11/19
初めてのJavaScript 第3版 ―ES2015以降の最新ウェブ開発 2017/01/19
2020/11/19
プロダクションレディマイクロサービス ―運用に強い本番対応システムの実装と標準化 2017/09/12
2020/11/19
Effective DevOps ―4本柱による持続可能な組織文化の育て方 2018/03/23
2020/11/19
PythonによるWebスクレイピング 第2版 2019/03/25
2020/11/19
分散システムデザインパターン ―コンテナを使ったスケーラブルなサービスの設計 2019/04/19
2020/11/19
データ指向アプリケーションデザイン ―信頼性、拡張性、保守性の高い分散システム設計の原理 2019/07/17
2020/11/19
詳説 Deep Learning ―実務者のためのアプローチ 2019/08/08
2020/11/19
入門 Prometheus ―インフラとアプリケーションのパフォーマンスモニタリング 2019/05/17
2020/11/19
初めてのGraphQL ―Webサービスを作って学ぶ新世代API 2019/11/11
2020/11/19
SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム 2017/08/10
2020/11/19
プログラミングROS ―Pythonによるロボットアプリケーション開発 2017/12/12
2020/11/19
詳解 OpenCV 3 ―コンピュータビジョンライブラリを使った画像処理・認識 2018/05/25
2020/11/19
Unityによるモバイルゲーム開発 ―作りながら学ぶ2D/3Dゲームプログラミング入門 2018/08/23
2020/11/19
マスタリング・イーサリアム ―スマートコントラクトとDAppの構築 2019/11/28
2020/11/16
インテリジェンス駆動型インシデントレスポンス ―攻撃者を出し抜くサイバー脅威インテリジェンスの実践的活用法 2018/12/25
2020/11/16
Python機械学習クックブック 2018/12/14
2020/11/16
ITIL Service Design (Japanese Translation) 2013/06/01
2020/10/29
ITIL Service Operation (Japanese Translation) 2013/06/01
2020/10/29
ITIL Service Strategy (Japanese Translation) 2013/06/01
2020/10/29
ITIL Service Transition (Japanese Translation) 2013/06/01
2020/10/29
ITIL Practitioner Guidance (Japanese Translation) 2017/03/01
2020/10/29
ITIL Continual Service Improvement (Japanese Translation) 2013/06/01
2020/10/29
Feedback That Works: How to Build and Deliver Your Message (Japanese) 2008/08/01
2020/10/26
Developmental Assignments: Creating Learning Experiences Without Changing Jobs (Japanese) 2008/07/31
2020/10/26
ITIL Foundation Handbook (Japanese Translation) 2015/06/01
2020/10/23
ITIL Foundation, ITIL 4 edition (Japanese Translation) 2019/11/01
2020/10/23

参考情報

読み書きされているファイルを確認したい

  • このエントリーをはてなブックマークに追加

iotopだとプロセス単位でしか分からないし、どのファイルのIOが激しいのかを確認したいことがあります。
Solarisだとdtrace toolkitを使えばわかるのですが、Linuxではsisdigを使えば分かります。

sudo apt-get install sysdig
sisdig -c topfiles_bytes

とても良いので、デフォルトでインストールするやつに加えました。

参考

合同会社の法人決算メモ(1期目)

  • このエントリーをはてなブックマークに追加

※自分用のメモなので間違いはあるかも。東京都23区に事業所が1個の場合で、消費税は免税。会計期間は3月1日~2月28日。

仕分けは弥生会計で行いました。
弥生会計(スタンダード)では決算書(P/L, B/S, 株主資本(社員資本)等変動計算書, 注記表)の出力はできますが、法人事業概況説明書や勘定科目内訳明細書は作れません。なので、決算書含めて、決算、申告、納付に関しては全力法人税を利用しました。
また、弥生会計の注記表はテンプレートこそあるものの、何を省略して、何を記載すれば良いのかが非常に分かりづらいためオススメしません。

決算の流れ

  1. 決算整理
    • 日々の仕分けを完了させる
    • 試算表の作成
    • 棚卸し
    • 売掛金や未払い金の処理
    • 原価の算出
    • 減価償却(固定資産がある場合)
    • などなど..
  2. 法人税/消費税の計算
    • 消費税に関しては私は今回は関係ありません
    • 法人税の計算の比率は全力法人税に入れる必要があるので、自治体から送られてきたパンフレットを参考に入れます。
    • パンフレットがなくても、Webサイトに情報があります。
  3. 取締役会や株主総会の承認
    • 株式会社の場合は必要だが、合同会社の場合は不要(参考)
  4. 申告
    • 作成した書類を郵送か、e-Tax/eLTAXで送信します。
    • 今回はe-Tax, eLTAXを利用。
  5. 納税
    • 還付か納税のどちらか。今回は納税。
    • 法人税、消費税、地方税を払うことになります。
    • 利益が出ていないので法人税はなし、消費税は対象外。
    • 地方税は、最低金額のいわゆる7万円(11ヶ月なので64100円)を払います。
      • eLTAXで申告をして、ダイレクト納付かペイジーで支払います。

弥生会計の設定

設立日が2020年3月23日。
会計期間は月初~しか設定できないので、「2020年3月1日~2021年2月28日」となる。
このままでは設立日よりも前の日付で仕訳を作れてしまう。もし、設立日よりも前の仕訳を作ると、全力法人税のデータチェックでエラーが出るし、会計的にも正しくないので、入力制限をかける。

「設定」▶「帳簿・伝票設定」▶「入力制限」で「2020年3月22日」を設定する。

創立費/開業費

設立日よりも前に使った場合は、開業日(2020年3月23日)で入力して、摘要に実際日付を含めるようにする。
創立費と開業費は「繰延資産」として資産に計上する処理することができるため、2期目以降に費用を繰り延べることが出来ます。中小企業の場合、繰延資産は任意のタイミングで任意の金額を費用化することが認められています。つまり、利益が大きく出た年度(期)で費用化することで節税することができます。

何が創立費にあたり、何が開業費にあたるかは以下のサイトが参考になります。

決算整理

試算表の作成は、弥生会計の集計機能を用いることで行えます。
試算表は期中に作成するB/S,P/Lみたいなものなので決算作業自体には不要ですが、銀行との取引がある場合なんかは求められる場合があります。
このあたりの内容は末尾に記載した書籍を参考にしました。もしくは簿記3級の内容でもカバーしています。

第一期目の「株主資本等変動計算書」の差額について

第一期目は出資しているので差額が出ます。
株式会社では「新規株式の発行」の変動事由を追加して差額を埋めれば良い。
合同会社の場合は「出資の受入」あたりで。

作成する書類

提出する書類はたくさんあります。どの別表が必要なのかは判断が難しいですが、今回私が必要なのは以下の通り。全力法人税を使えば、必要な書類だけをピックアップしてくれます。

  • 法人事業税(国税)
    • 各種別表
      • 別表一(一) ▶ 各事業年度の所得に係る申告書(普通法人等の申告書)
      • 別表一次葉 ▶ 法人税額・地方法人税額の計算
      • 別表二 ▶ 同族会社等の判定に関する明細書
      • 別表四(簡易様式)▶ 所得の金額の計算に関する明細書
      • 別表五(一) ▶ 利益積立金額及び資本金等の額の計算に関する明細書
      • 別表五(二) ▶ 租税公課の納付状況等に関する明細書
      • 別表七(一) ▶ 欠損金又は災害損失金の損金算入等に関する明細書
      • 別表十五 ▶ 交際費等の損金算入に関する明細書
    • 法人事業概況説明書
    • 財務諸表
      • 貸借対照表
      • 損益計算書
      • 販売費及び一般管理費内訳書(e-Taxでは損益計算書に含まれる)
      • 株主(社員)資本等変動計算書
      • 個別注記表
    • 勘定科目内訳明細書
      • 預貯金等の内訳書
      • 役員報酬手当等及び人件費の内訳書
  • 消費税(国税)
    • … 省略!!
  • 法人都民税(地方税) … 通常は法人住民税と言われ、都民税と市町村民税の2つに分かれているが東京23区は都の特例として、市町村民税も合わせて都民税として都税事務所に申告して納税します。
    • 第6号様式 ▶ 都民税・事業税・地方法人特別税の確定申告書
    • 第6号様式別表4の3 ▶ 均等割額の計算に関する明細書
    • 第6号様式別表9 ▶ 欠損金額等の控除明細書

国税はe-Taxで、地方税はeLTAXで処理します。

個別注記表について

合同会社の場合、記載しないといけない事項は以下の通り。

  • 重要な会計方針に係る事項に関する注記
  • 会計方針の変更に関する注記
  • 表示方法の変更に関する注記
  • 誤謬の訂正に関する注記
  • その他の注記

該当しないものは省略可能です。また、良く「この計算書類は「中小企業の会計に関する指針」によって作成しています。」というものが入っているものが多いですが、この指針を読んでいないのでこの文言は入れません。

全力法人税の手順メモ

良く出来ているので、画面の指示に従って処理していけば良いです。
まずは、社員名簿を作って、同族会社の判定をします。私は一人会社なので同族会社です。「同族会社の判定明細書出力」でPDFをダウンロードできます。(別表2)

まずは、弥生会計の勘定科目と仕訳日記帳と固定資産のデータをエクスポートして、全力法人税にインポートします(参考)

あとはインポートした仕訳に沿って、全力法人税が自動で転記してくれます。便利だ..!(例えば、別表1の①には法人住民税を含まない金額を記載するわけですが、こういうのを自動でやってくれます)

税金の計算が終わったら、その金額を弥生会計の今期の仕訳として登録をします。画面に記載の方法が出てきます。

これを会計ソフトに入力します。

日付: 2021年2月28日(期末日)
借方勘定科目: 法人税、住民税及び事業税
貸方勘定科目: 未払法人税
貸方補助科目: 都民税・事業税(任意)
金額: 64,100円

※全力法人税にはこの仕訳データが入っているので、弥生会計にこの仕訳を追加した後に、再度インポートしてはいけません。計算がおかしくなります。

なぜ7万円ではないかというと、均等割は月割で計算をし、1ヶ月未満は切り捨てることになるからです。2020年3月23日に起業して、2月決算(期末日が2月28日)だとすると、11ヶ月と8日になるので、切り捨てて11ヶ月。 7万円*11/12=64100円です。(参考

e-Tax

以下のページに書いてある通りに進めるだけでできます。
Web版ではなく、PC版じゃないとできません。

eLTAX

こちらも以下のページに書いてある通りに進めるだけでできます。
Web版ではなく、PC版じゃないとできません。

電子納税

eLTAXで電子申告をすると、電子納税ができます。申告と違って納税はWeb版でも可能です。
PCdeskを使うとペイジーの連携のところでIEが起動するので、Web版で行いました。

ダイレクト納付の場合、登録した口座から自動で引き落としがされます。
インターネットバンキング方式では、ペイジー用の番号が発行されてそこに振り込む形式になります。

さて、GMOあおぞらネット銀行はどちらも対応していません!!
なので、個人口座で振込をして、役員借入金として処理しました。

2期目の処理

弥生会計も全力法人税も繰越処理を行い、次年度の会計期間を設定します。
納税の仕訳は、未払法人税を打ち消せば良いので以下のようになります。

日付: 納税した日
借方勘定科目: 未払法人税
貸方勘定科目: 普通預金
貸方補助科目: 銀行名
金額: 64,100円
(現金で払った場合は普通預金ではなく「現金」、個人口座で払った場合は「役員借入金」にするか、立替処理をする)

全力法人税の課金

  • 印刷、e-tax/eLTAX用のデータ出力をしなければ無料で使えます。画面に表示されている内容をeTaxやPCDesk(eLTAX)の帳票に転記していけば良いだけですが、面倒なので購入した方が早いです。

まとめ

とてもつらかった。

参考資料

書籍