basyura's blog

あしたになったらほんきだす。

iPad でキーカスタマイズができるようにならんかなぁ

Apple iPad スマートカバー/チャコールグレイ/MQ4L2FE/A

Apple iPad スマートカバー/チャコールグレイ/MQ4L2FE/A

主にテキスト編集している時。 <C-P> で上にカーソル移動したいし、<C+N> で下にカーソル移動したい。現状だと、<C+A> <C+B> を連打して上に移動するか、<C+E> <C+F> で下に移動するかっていう残念な状態になっている。iPad なんだからディスプレイ触って移動することも可能ではあるけど、いちいちそんなことしてたら肩とか肘とかやられそうだし、思考が飛ぶしでよろしくない。さらに <C+W> で直近の単語を削除したいし <C+D> 直後の文字を一つ消したい。もっと言えば <C+Enter> で予測変換を確定したい。それができるだけでキー入力の印象がだいぶ変わるのだけどなぁ。iOS が mac に寄って行くんだったらそこをまずどうにかして欲しいところ。mac のいいところは emacs キーバインディングがなんとなくデフォルトで使えるところもあるし。 Atok に期待したんだけど制限が多すぎて思ったように実装できないようでつらみ。結局標準のキー入力アプリに戻ったので残念感ある。

iPad Pro 10 inch + apple wireless keyboard (旧型) で入力しているのだけど、やっぱり SmartCover より入力しやすくてよい。SmartCover でも打てるといえば打てるのだけど打鍵感が微妙なのでどんどんテキストを打っていこうという気が削がれていくところがある。会社支給ノートPCのキーボードがショボすぎる問題 (何回も書いてるけど) もあって、キーボードって本当大事だなと今更ながら思うのであった。

ATOK 2017 for Mac [ベーシック] 通常版

ATOK 2017 for Mac [ベーシック] 通常版

Apple Wireless Keyboard (JIS) MC184J/B

Apple Wireless Keyboard (JIS) MC184J/B

xaml - ScrollViewer と ScrollBar を同期

諸事情による調査。非表示にした ScrollViewer の ScrollBar と、外側に配置して表示している ScrollBar のスクロール位置を同期する。

f:id:basyura:20180624165529p:plain:w300

<UserControl x:Class="VirtualScrollSample.MainPage"
    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"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400">

    <Grid x:Name="LayoutRoot" Background="White">
        <Grid.ColumnDefinitions>
            <ColumnDefinition />
            <ColumnDefinition Width="20" />
        </Grid.ColumnDefinitions>
        <ScrollViewer ScrollViewer.VerticalScrollBarVisibility="Hidden" Name="Container">
            <StackPanel>
                <Grid Background="Orange" Height="100" />
                <Grid Background="Blue" Height="100" />
                <Grid Background="Yellow" Height="100" />
                <Grid Background="Green" Height="100" />
                <Grid Background="AliceBlue" Height="100" />
                <Grid Background="Coral" Height="100" />
                <Grid Background="Beige" Height="100" />
                <Grid Background="Black" Height="100" />
                <Grid Background="BlanchedAlmond" Height="100" />
                <Grid Background="Red" Height="100" />
                <Grid Background="Blue" Height="100" />
                <Grid Background="Yellow" Height="100" />
                <Grid Background="Green" Height="100" />
                <Grid Background="AliceBlue" Height="100" />
                <Grid Background="Coral" Height="100" />
                <Grid Background="Beige" Height="100" />
                <Grid Background="Black" Height="100" />
                <Grid Background="BlanchedAlmond" Height="100" />
            </StackPanel>
        </ScrollViewer>
        <ScrollBar  Grid.Column="1" Grid.Row="1" Name="ContainerScrollBar" Scroll="ContainerScrollBar_Scroll"/>
    </Grid>
</UserControl>
using System.Windows;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;

namespace VirtualScrollSample
{
    public partial class MainPage : UserControl
    {
        /// <summary>
        /// 
        /// </summary>
        public MainPage()
        {
            InitializeComponent();

            SetBinding(OffsetProperty, new Binding("VerticalOffset")
            {
                Source = Container,
                Mode = BindingMode.OneWay,
            });
        }
        /// <summary>
        /// ScrollViewer のスクロール位置を ScrollBar に反映する
        /// </summary>
        public static readonly DependencyProperty OffsetProperty = DependencyProperty.Register(
            "Offset", typeof(double), typeof(MainPage), new PropertyMetadata(0d, (d, e) =>
            {
                MainPage page = d as MainPage;
                double offset = (double)e.NewValue / page.Container.ScrollableHeight;
                page.ContainerScrollBar.Value = offset;

            }));
        /// <summary>
        /// ScrollViewer のスクロール位置
        /// </summary>
        private double Offset 
        {
            get { return (double)this.GetValue(OffsetProperty); }
            set { this.SetValue(OffsetProperty, value); }
        }
        /// <summary>
        /// ScrollBar のスクロール位置を ScrollViewer に反映する
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ContainerScrollBar_Scroll(object sender, ScrollEventArgs e)
        {
            double offset = Container.ScrollableHeight * e.NewValue;
            Container.ScrollToVerticalOffset(offset);
        }
    }
}

某Hub が某大手へ

俺らが育てたのに結局金か。コントリビュートが多いってアピールなんなの。オープンソースみたいなたいそうな事じゃなくても地道にやってきた自分たちの活動・・・いやでも金がないことにはどうしようもないのだけど。なんかどっかいっちゃった・・・ぐぬぬ。

な感じかな。

今の某大手なら悪くはならないだろうという印象もまた複雑で、いっそのことめちゃくちゃにしてくれた方が感情をぶつけやすくていいわという感じかな。

拠り所みたいな感じだったので複雑な心境ではあるけどお金には勝てない。

inkdrop をちら見

inkdrop 良いのだけど、Bear の編集と表示(プレビュー)が一体化している強みがすごい。 Bear が無ければ飛びついてたのは間違いない。 Vim キーバインドはかなり惹かれるのだけど、プレビューでも Vim キーバインドが使えるとかなり良いんだけどなぁ。 js と css の知識があればできそうな気がするけど調べるのが若干面倒感がある。

分割していない場合の横幅が指定できると便利だけどなぁ。画面分割だと狭すぎるし、かといって分割していないと横長になるし。ウインドウサイズを変える (狭める) と分割したい場合に狭くなりすぎてしまう。

あと、ちょっとした違和感があったのは固定幅フォントか。Bear の場合はコードブロック内では固定幅になるのだけど、inkdrop は固定幅にならない。

編集と表示のモードを切り替えるのがしっくりこないのだけど、その割に vim の編集モードと入力モードの違いは思考の切り替えができて良いと思ったりするが・・・markdown から html への切り替えだと思考の切り替えの前に見た目が変わりすぎてスイッチコストが高いと思われる。

Bear が Vim キーバインディングをサポートしてくれると最強なのだけど、どちらにしろ Windows 環境でどうするかが解決しない。選択肢が無くて evernote を使い続ける。

GW オワタ

5/1 は出社したけどそれ以外は休み。何年ぶりだろうか。年末年始、盆、GW ・・・このあたりに本稼働をぶつけるのやめて人並みに休ませた方がいいなこれ。当たり前か。

ブログが書けるってのはある程度余裕が無いとだめだなと再認識。何回か毎日エントリをと思ったのだけどあっという間に中断してしまう。家でアレコレ考えながらもふと時間が空いた時に書き込めるぐらいの余裕。

ゼルダの伝説 ブレス オブ ザ ワイルド  - Switch

ゼルダの伝説 ブレス オブ ザ ワイルド - Switch

ゼルダの伝説 BREATH OF THE WILD をクリアしてなんとなく気になっていたドラゴンクエストビルダーズの体験版で遊んでたら面白くて購入してしまった。夏には 2 が出るらしい。マイクラだと酔ってしまう&すげー疲れるんだけどビルダーズだと大丈夫なようだ。キャラクターが中央にいるのと、中央の + をみるのとの違いなのだろうか。Switch 版のマイクラは魚眼レンズ的な歪みもきになる。ビルダーズは章ごとに建物が引き継がれないらしいしフリービルドモードが有るのだけど、村人の人数制限や広さや高さの制限とかいろいろあるのでマイクラの方がやっぱ・・・と思ってマイクラを再開するのだけど気持ち悪くなって直ぐやめるの繰り返し。でかい画面でやればいいのかなぁ。