Make組ブログ

Python、Webアプリや製品・サービス開発についてhirokikyが書きます。

29歳になりました

今日は僕の誕生日。29歳になりました。

節目である30歳までに、やり残したことがないように全力でいきたいと思います。

傷つくことは恐くない。だけどけして強くない。

ただ、何もしないままで、悔やんだりはしたくない

Give a reason / 林原めぐみ奥井雅美

Give a reason

Give a reason

  • 発売日: 2017/05/03
  • メディア: MP3 ダウンロード

この記事はShodo (https://shodo.ink) で執筆されました。

他にオススメの記事

チームで校正ルールを共有して執筆しよう - Shodoの校正機能を大幅に改良・改善しました

Shodoに自動校正ルールの共有機能をリリース

Shodoにチームで日本語の自動校正ルールを共有できる機能をリリースしました。

チームで日本語の自動校正ルールを共有しよう

複数人で記事やブログなどを執筆しているとき「記事を書く人によって品質が大きくバラけてしまう」という問題があります。 Shodoでは記事のレビューをする機能はありますが、細かな指摘をすべてレビューの段階になってするのは大変ですよね。

この度Shodoに チームで共有されたルールをもとに自動で文の問題を検知してくれる機能をリリースしましたので、レビューで指摘する負荷が軽減されます。 たとえば「だ・である」、「です・ます」を、見出し・箇条書き・本文ごとに分けて設定できます。繰り返される助詞の検出や、文の最大長も設定できます。

Shodoは助詞の繰り返しなどを検知します

Shodoでは執筆するプロジェクトごとに自動校正のルールを共有できるので、「ブログ記事ではです・ます」、「ホワイトペーパーにはだ・である」のように媒体ごとにルールを変更できます。

自動校正のルールを設定しチームで共有できます

校正ルールはプロジェクトの校正設定画面 から変更できます。チームのマネージャーのみが設定できますので、執筆のチームビルディングにお役立てください。

日本語の自動校正機能を速度改善しました

同時に、Shodoの校正機能の大幅な改善をしました。 画面の読み込み速度、自動校正を実行する際の負荷を低減しました。また、校正エラー時のデザインをより見やすいように変更しました。

Shodoは作業中や仕事中に触れるツールとして開発しておりますので、利用者の皆さまの集中力を削がないようにデザインしています。小さなストレスや待ち時間でも、日々の中では降り積もって大きなストレスになります。 Shodoを起動する際の速度も大幅に改善しましたので、心理的なストレスなくお使いいただけると思います。 目立たない違いではありますが、今後もShodoは利用時の「手触り」にこだわって改善してまいります。

また、以前より利用していた外部のソフトウェア(OSS)では速度上の限界がありましたので、一部をShodoが内製したソフトウェアに変更しました。今後Shodoで得た知見やソースコードを外部に共有・還元できればと思います。

まとめ

ぜひ、 Shodo の日本語の自動校正機能と、チームでの校正ルール共有機能をご利用ください。 Shodoは現在クローズドベータとして無料でご利用いただけます

ベータテスターになってくださる方は以下のページよりご応募ください。

shodo.ink

この記事はShodo (https://shodo.ink) で執筆されました。

文章の校正支援サーバーRedPenにPullRequestを送りました

文章の校正をするオープンソースのサーバーRedPenにPullRequestを送りました。

先日レビュー・マージされたようです。ありがとうございます。 まだ問題はあるかもしれないので、気づいた人はテストの追加やさらなる修正をお願いします。

github.com

RedPenは日本語や英語の文章の校正ができるサーバーです。 RedPenはJavaで作られているのでPullRequestの作成時に久々にJavaを書きました。 実用と言う意味でJavaを書いたのはたぶん僕の初体験だと思います。

社内で校正サーバーを運用して多人数で使いたい場合はRedPenは良さそうですね。 textlintは手元でのツールという感じなので、サーバーを立てて社内向けに運用するぞというレベルであればRedPenのほうが向いていそうです。

なぜRedPenに?

記事の執筆プラットフォームの Shodo を開発するための調査としてRedPenを調べていました。

Shodoではブラウザー上で記事の自動校正を実行していますが、現在、サーバーサイドで高速かつ低負荷に校正をするよう開発中です。 そのために、既存のRedPenというサーバーとしても動作する校正ツールを調査していました。

結論としてShodoのバックエンドでRedPenの採用をすることはなさそうですが、RedPenというプロジェクト自体は面白いので何か協力できないかと思ったのが理由です。 RedPenのプログラムも読ませてもらいましたが、とても良くできていて勉強になりました。

VRChatでRedPenを教えてくれたぷろろーさん、ありがとうございます!

PullRequestで何をしたの?

RedPenにある日本語のら抜き言葉をチェックする機能に誤検知があったので修正しました。 「〜れない・られない」場合の検知はうまくいくものの、「〜られる」の表現を誤検知してしまう問題があったので修正しました。

すぐにレビューいただいて、ありがとうございます。 何かの役に立てたのも嬉しく思っています。

今後のShodoでは?

Shodoでは現在UXの改善に取り組んでいます。 単にデザインの修正だけでなく、動作速度や読み込みの速度、動作時の「引っ掛かり」をなくすよう工夫しています。 そういった手触りは気づかないところで降り積もったストレスとなるので、なるべく早く取り除きたいと思っています。

サーバーサイドでの文章校正をするオープンソースはRedPen以外になさそうです。 ですので、textlint構文木の作成に使いつつ、校正チェックやWebサーバーの部分はShodo独自の実装となりそうです。 textlintは良いツールですが、あくまでローカル環境で手軽に実行されることを想定しているものです。サーバーサイドで高負荷に耐えようとすると、どうしても形態素解析の遅さなどが問題になります。そこでShodoでは独自で実装していこうとなりました。

今後、Shodoで開発した知見やノウハウをまたRedPenやtextlintといったオープンソースに還元していければと思います。

shodo.ink

この記事はShodo (https://shodo.ink) で執筆されました。

英語・英会話が苦手なときは処世術やソフトスキルが重要なのでは?6つにまとめて考えてみた

「英語って難しい」というとき、ほとんどは英会話が難しいということだと思います。 そしてたぶん、その難しいというのは英語以外のスキルも含まれる気がしています。

要は 「ネイティブ同士でない会話におけるソフトスキル」が必要 ということです。悪く言えば弱者の戦略です。 その英会話の処世術・ソフトスキルを、僕なりに6つにまとめて考えました。

今回話す内容は「多少は英会話ができるけど、どうにもうまくいかないことがある」という人に向けています(僕自身に向けてもいます)。 コロケーションがどうとか、単語でなく音で覚えるとか、そういう話は他の方が書いているので任せます。英語つよつよな人は読まなくて大丈夫です。

本当に聞き取りがまったくできないという場合は、英語学習者向けのポッドキャストなどをオススメします。

背景と、日本人的な弱点について少し考える

これを感じた背景は、僕がVRChatというゲームで海外の人とボイスチャットをしていたときです。 僕は英語がすごくヘタですが、英会話をする点については多少はできます。でもたまにコミュニケーションを全く取れないときがあります。

それはなんでだろうと考えていくと、単なるスキルでない振る舞いが影響しているのではという仮説に行き着きました。 もちろん英語の勉強や英会話の練習も大切ですが、それ以外の処世術も伸ばすべきなのではということです。

日本人が日本に住んでいる限り、人生の大半はネイティブ同士の会話になります。 なので 僕ら日本人は会話のどちらかor両方がネイティブでないときに話をするのが下手になりがち です。

英会話を伸ばそうというとき、現実的にはその問題にも向き合う必要があると感じています。 僕自身が考える過程で6つにまとめてみましたので、ぜひ読んでみてください。

僕はTOEICTOEFLも英検も受けていないので、自分の英語力というものはわからないです。留学経験もないです。 ただいくつかの英語のYouTubeチャンネルを見れたり、ポッドキャストを聴いたり、映画や北米版アニメを観たり、会話は多少できるレベルと思ってください。

1. 自分の英語レベルをまず知ってもらう

相手に自分がどの程度の英語が伝わるかを知ってもらうのが大事です。 そうすれば相手もその速度、ボキャブラリーで話してくれる確率が高まります。

ファーストインプレッションで、相手に自分が期待するレベルの英語で話す のがポイントです。 相手に話してほしい速度で話し、相手に使ってほしいレベルのボキャブラリーで話しましょう。とくに1対1の会話では有効です。 相手に対しても、相手に伝わるような英語を心がけます。

逆に言えば、過度に見栄をはらないということです。相手の期待を下げるということです。

自分が話すときだけ早口になったり、よく知らないスラングを使ってみたり、難しすぎる英単語を無理に使ってみるのはオススメしません。 相手もその高いレベルで話してくる可能性が高まるので、後で自分が分からなくなってパニクるだけです。

うまいフリをするくらいなら、ヘタなフリをするくらいのほうが会話のレベルを下げられて得です。 お互いに伝わる範囲を模索してコミュニケーションしましょう

ともあれ、ありのままが一番です。

2. 分からない点は早めに聞くか確認する

一度英語が分かるフリをして辛くなったことはないでしょうか?

話が分かったフリをするとドンドン辛くなって会話から離脱したくなります。 その気持ちは相手にも伝わりますし、「この人は私と会話したくないのかな」と思われてしまいます。 不思議なことに、「あぁ英語が伝わらなかったんだな」と思ってくれる人は経験上、稀です。

分からないときは素直に聞きましょう。早いうちに 「話したいけど分からなかった」と知ってもらうのが大切です。 「ごめん、この言葉が分からなかったよ」とか、「あなたが言ったのはこういうこと、だよね?」とか素直に言えると良いですね。 考えているときにまだ分かってなくて考えている感を出すだけでもOKです。

単語がわからないのか、コンテキストがわからないのか、スピードについていけないのかの区別を意識できると、相手にも聞きやすくなります。

3. "肝"は押さえておく

そもそも、 英会話を100%理解できることのほうが少ない と思っておくと楽です。 100%はわからなくても、肝になる部分は理解しておけば、会話は成立します。 たとえばこんな返答を考えてみましょう

  • なるほどね。君の手法も理解できるんだけど、そうだな。うん、僕の友だちにもこの前Discordでレクチャーしたんだけど、バターは入れないのが常識なんだよ。あ!このYouTubeチャンネルはオススメだよ。

この場合、肝になるのは「バターを入れない」ということです。 間の単語とかを理解していなくても、 "Won't"、 "Butter" さえ抑えられれば会話には十分です。 重要なのはどの位置に話の肝があるかを、聞きながら意識することです。

相手に分からなかった点を聞くにしても、何でもかんでも聞くのでなくて、会話の肝になる部分が理解できないときに教えてもらいましょう。 会話に直接関係ない部分について確認されても、相手は困ってしまいます

少なくとも「(意見が)ポジティブかネガティブか」や、「事実を教えようとしているのか、感想なのか、冗談なのか」などは判断しておきましょう。

会話の肝がどこかというのは、慣れの部分が大きいです。 教材やニュースなどでは無駄な言葉が少ないので、実際の英会話を重ねるのが一番の近道です。

ポイントとしては、 前置きや枕言葉的な部分を見極めることと、どのフレーズや単語が分かれば話全体に合点がいくかを判断すること です。 自分自身のスキル的な要素もありますし、相手の会話のクセを見抜けば分かる場合もあります。人によって話し方も色々ありますからね。

本当に100%分からないときは、100%分からないと伝えるしかないですが、その場合は会話が続く可能性は(僕の経験上)低いです。

4. 相手と良いコミュニケーションをしたいと知ってもらう

相手と良いコミュニケーションを取りたいという気持ちを伝えることを意識しましょう。

これはもう大前提なのですが、あなたがまともで、差別意識なく相手と良好なコミュニケーションを取りたいんだと知ってもらいましょう。 言語に関係なく 対話する労力をかけて良い相手と感じてもらえれば、多少会話の齟齬があっても乗り越えられます 。 ぶっちゃけ話したい相手となら、伝わりにくくても話してくれます。ことVRChatなどのゲームでは変な人でないと知ってもらうのが重要です。

当たり前のことですが態度の丁寧さであったり、身振りであったり、きちんと言うべきことを言える人柄だったりのことです。 言語にはまったく関係しない部分ですね。

会話をするというのは英語の試験をするわけではないですし、自分の実力をひけらかす場所でもありません。 まず相手と良いコミュニケーションをしたいという気持ちをもちつつ、それが相手にも伝わるとスタート地点に立てます。

5. 分からないときは分からない

エラそうに書いていますが、僕もサッパリなときはサッパリです。 先日もサッパリなタイミングがあって、軽く落ち込みました。

分からないときは仕方ないので諦めましょう。 スキルやレベルに関係なく、自分の体調や気分、相手のクセや気分によっても変わります。 そういう、決まった答えがないすごく曖昧なものに相対しているんだという諦めはもっておくと良いと思います。

申し訳なくなったり、自分に悔しくなって英語力を向上させたいと僕も常に思いますが、しょうがないです。 同時に、相手も「伝わんないな」と感じて話す気がなくなることもあります。それもしょうがないです。

北米版あずまんが大王のちよちゃんを観て僕と一緒に癒やされましょう。 結果が分からないからこそ、楽しめるものです。

6. ネイティブが絶対の正義と思わない

正しい英語とは何か、とまじめに固執してしまうと英語学習者としては辛くなってしまいがちです。

とくに、 ネイティブの英語こそが至高でありそれを理解できないのは恥だと感じないようにしましょう 。 正直、どの言語についてもネイティブのラフな会話が一番難しいとさえ言えます。話しやすいネイティブの人は相手に配慮できる素晴らしい人なのでしょう。

第二言語として英語を学んでいる人(ESL)同士のほうが話しやすい場合もあります。 東アジア圏の人やスペイン語圏の人の英語が聞き取りやすいときもありますし、ネイティブ至高病は早く脱出して、ESL同士の会話を楽しむのも素敵だと思います。

僕が思うに 正しい英語というのは、あなたと良好なコミュニケーションが取れる英語 です。

もちろん定義上、正しい英語というのはいくつか存在するでしょう。 でも会話という場面において正しさはあまり重要ではなく、むしろ正しさを気にせず話しているときのほうが不思議と相手にも気持ちよく伝わります。

まとめ

英語と英会話の処世術、ソフトスキルを6つ紹介しました。

  1. 自分の英語レベルをまず知ってもらう
  2. 分からない点は早めに聞くか確認する
  3. "肝"は押さえておく
  4. 相手と良いコミュニケーションをしたいと知ってもらう
  5. 分からないときは分からない
  6. ネイティブが絶対の正義と思わない

英会話に限らず、大事なのは相手と良好なコミュニケーションができるということです。 変に自分を脚色したりせず、正解を求めず、人として魅力的であることがコミュニケーションに大切なのかもしれませんね。

僕自身も自分でまとめていて良い振り返りになったと思います。ここまで読んでくれたあなたにとっての助けになると嬉しいです。 良ければブログの読者登録もお願いします。

この記事はShodo (https://shodo.ink) で執筆されました。

はてなブログを執筆・レビューしてから公開する - Shodoにはてなブログ配信機能を追加しました

Shodoからはてなブログへの配信機能をリリース

はてなブログでブログ記事を書いていくときに、こんなことはないでしょうか。

  • ブログのアイディアを書いておく場所がほしい
  • 文章の校正を自動で行いたい
  • 文章中の頻出する単語を列挙したい
  • チームメンバーと記事を相互にレビューしながら書きたい

今、私が開発中のShodoを使えば、その問題を解決できると思います。 Shodoからはてなブログへの連携機能をリリースしました ので、ぜひはてなブログユーザーの方はお試しください。 Shodoは現在クローズドベータ中ですが、 https://shodo.ink からご応募いただければすぐにご利用いただけます。

なぜShodoが必要だったのか

私も以前所属していた会社で、ブログをチームメンバーと複数人で執筆していました。 人にレビューしてもらったり、期限を管理したりしたいのですが、そのためにタスク管理ツールやレビュー用のドキュメントツールを用意する必要があり大変でした。

そのときに私がShodo(https://shodo.ink) というWebアプリを個人的に開発して、当時のチームで使ってもらったのがShodo誕生のきっかけです。 チームには好評いただいていたので、今、Shodoはスタートアップの小さな会社として運営されており、クローズドベータとしてお使いいただけています。

Shodoで執筆して、はてなブログへ連携できます

Shodoを使えば記事の執筆が便利になります。

記事を書くアイディアを書いておいたり、執筆期限の管理をしたりできます。 ブラウザー上のエディターだけで自動で文章の校正ができたり、複数人でワークフローに則った記事のレビューもできます。

はてなブログ以外のツールを増やすと面倒と思われるかもしれません。 ですが先日Shodoから、はてなブログに記事を作成できる機能をリリースしました。

これによって、Shodoで記事の管理、執筆、レビューなどが完了したタイミングで、 ボタン1つではてなブログに記事を作れます 。 この記事自身も、Shodoで執筆してはてなブログに配信されています。

はてなブログへの配信画面

Shodoからは下書きの記事をはてなブログに作成するので、突然記事が公開される心配はありません。 事前に必要な準備は、はてなブログの設定画面にあるURLとAPIキーを設定するだけです。 設定方法はShodoのヘルプページを参照してください。

複数人ではてなブログを利用している人に特にオススメ

とくに、ブログを複数人で運用していて、期限の管理や相互のレビューなどをしているチームにはオススメです。 Shodoには複数人で記事を書くときに必要な期限管理やチェックリスト、レビューのワークフローといった機能があります。 チーム内で共通化したい「表記ゆれ」を設定して、チェックさせることもできます。

もちろん個人の方にも

もちろん、個人でブログを書いている人にも使いやすくなるように作っています。 例えば文章の自動校正を使って記事を書いたり、文章の分析をして検索エンジンに最適化することもできます。 感覚的には、1人でプログラミングするときにもGitやGitHubを使いたい人にはオススメです。

まとめ

Shodoにはてなブログへの連携機能をリリースしました。 個人ではてなブログを利用されている方も、チーム内の複数人で執筆している方もぜひお使いください。 企業テックブログなどにもぜひ。

以下からクローズドベータ利用の応募をしてください。 ぜひ使ってみての感想、フィードバックや知人への紹介をしてくれると嬉しいです!

shodo.ink

この記事はShodo (https://shodo.ink) で執筆されました。

はてなブログAPIを利用する前に知っておきたいポイント・注意点

ここ最近はてなブログAPIを利用していて学んだことを共有します。 はてなブログのAPIを使って何かを開発したいなと思っている方は、以下のポイントに注意が必要です。

  • OAuthはOAuth1
  • APIはAtomPubというXML形式
  • OAuthで認証した「ブログメンバー」は、API経由でアクセスできない
  • API経由で記事を下書き保存してもプレビューURLが取れない

この記事では、OAuth時のブログメンバーの挙動について詳しく説明し、他に細かなポイントについて触れていきます。

ともあれAPIがあるのはありがたいです! ありがとうございます。はてなさん、ぜひアップデートしてくれると嬉しいです。

この記事は2020年10月3日に執筆しておりますので以降のアップデートについてはご確認ください。 できるだけ追記、編集していきたいと思いますが、期待せずにご自身でご確認いただければと思います。 また記事の内容は、はてなさんに問い合わせ・フィードバック済みです。

はてなブログAPIをブログメンバーは使えない

はてな認証を利用してOAuthで認証したアカウントが「ブログメンバー」の場合、対象のブログへの操作が行えません。 はてなブログには「ブログメンバー」という仕組みがあり、ブログを作った人以外にも記事を投稿、編集できる仕組みがあります。

この機能はとても良いですし、実際にはてなブログの画面から利用する際には問題ありません。 ですが公開されている、 はてなブログAtomPub APIを経由するとブログのオーナーしか記事の投稿、編集はできません。 直感的にはAPI経由でもメンバーの権限が考慮されるかと思いますが、はてなブログAtom Pubからはブログメンバーは一切操作できません。

この情報は、はてなブログAtomPub APIのドキュメントには記載されていないので、APIを利用しようかなと思っている人は覚えておくと良いかもしれません。

2020年10月3日時点で、はてなに問い合わせして確認済みです。

エラーレスポンスの仕様

細かい話ですが、ブログメンバーがAtomPub経由で記事を投稿すると、以下の内容でエラーレスポンスが返ります。

はてなブログ法人プランでも同様にブログメンバーはAPIを使えない

はてなブログの法人プラン、 はてなブログBusinessでもこの仕様は同様です。 はてなブログAtomPub API経由では、ブログメンバーはブログに投稿、編集はできません。

2020年10月3日時点で動作確認済みです。

はてなブログAPIを複数人で利用する方法

方法としてはOAuthを使わないのが良いでしょう。 時代に逆行したようなアドバイスになり悲しいですが、現状はOAuthを使わずにAPIキーを使うのが良いです。

はてなブログAtomPub APIAPIキーというのを使った認証も可能です。 これはブログオーナーの名前とAPIキーを利用してBasic認証し、記事の投稿、編集をするものです。

その際はブログオーナーを個人のアカウントでなく、組織用アカウントとして別途用意すると良いでしょう。 APIキーを利用すると個人の他のブログにも投稿できたり、ブログメンバーのようなロール管理もできません。 個人のアカウントで複数ブログを用意し、特定のブログにのみブログメンバーを招待している場合はアカウントを整理したほうが良いでしょう。

実際に、はてなブログBusinessを契約する際は、個人に紐付かない共有できるアカウントをオーナーアカウントにすることが推奨されます。 はてなブログ的には、複数人で組織的に運用する場合はこの方法が良いということでしょうか。

はてなブログBusinessの契約画面

API経由で下書き記事を作成してもプレビューURLが取れない

はてなブログAtomPub APIは下書きも作成できて便利ですが、残念ながらプレビューURLは取得できません。

はてなブログAtomPub経由で記事を作成した場合も記事のURLは取得できるので、はてなの編集画面へのリンクは作成できます。

他の細かなポイント

はてなブログAPIがあることは非常に助かるのですが、今現在となると少し不便な点もあります

  • OAuthといってもOAuth1(OAuth2ではない)
  • APIがAtomPub形式なのでXML対応が必要(JSON APIではない)
  • OAuthではてなID認証したときのスコープが大きい

とくにスコープについては、はてな内のサービス単位でスコープができると嬉しいです。 公開・非公開情報を、読み・書きできるか、という4種類しかないので、はてなブログにのみ権限が必要でもはてなブックマークの権限も手に入れてしまいます。

あまり利用者もいないのかなぁと思いますが、少し昔の牧歌的なAPIという印象です。

まとめ

今回のポイントは以下でした。

  • はてなブログのAtomPub APIはブログメンバーがOAuthで認証しても使えない
  • ブログの下書きプレビューURLはAPI経由で取得できない
  • はてなブログAPIは全体的に少し昔っぽい

はてなブログに投稿できるのはとても助かりますので、はてなさん、ぜひアップデートしてくれると嬉しいです。 そもそもAPI自体がないサービスもありますので、あるだけで嬉しいのは間違いありません。

この記事はShodo (https://shodo.ink) で執筆されました。