サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大そうじへの備え
pineplanter.moo.jp
動画配信用ソフトOBS StudioをUbuntu 20.10にインストールしてみました。ゲーム実況やライブ配信ってどういうアプリを使っているのかなと以前から興味はあったのですが、ちょっと調べたところこのOBS Studioに行き当たったのでUbuntuにインストールしようと思った次第です。OBS Studioを選んだ理由はLinux用が用意されているからです。 今回はUbuntu20.10にインストールするまでを紹介します。 OBS Studioのインストール方法 以下のリンクから公式ページに行きます。「Linux」というボタンがあるのでそこをクリックします。 https://obsproject.com/ja すると、Linux用のインストール方法が記載されています。残念ながらインストーラーのダウンロードではなくコマンドラインでインストール方法ですが個人的にはこちらの方がありがたいです
プログラムによっては後半の方が検索時間がかかるという特徴があるので検索には後半に近い福岡県久留米市合川町を検索することで条件を合わせました。 1.前回と同じ方法(配列に落としてループ) 前回とまったく同じプログラムです。データ全体を引っ張ってきて配列に格納した上でループ処理で検索していくという原始的な方法です。セル参照よりはるかに速いことは前回証明済み。 function searchData1(){ var keyword = 8390861; var mySheet = SpreadsheetApp.getActive().getSheetByName('KEN_ALL'); var r = mySheet.getLastRow(); var c = mySheet.getLastColumn(); var data = mySheet.getRange(1, 1, r, c).get
2つのデータを比べる方法はいろいろあるのですが、最近では欧米中心に「箱ひげ図」というグラフで見比べる方法が主流になているようです。英語でbox plot、box-and-whisker plotって言うそうですね。箱ひげ図の詳しい情報はWikiをご覧ください。 ざっくり言うと、データ群を昇順に並び替えて、そのデータ群を4分割してそれぞれの境界をピックアップして下のようなチャートに表したものです。ホントは異常値を除外したりしますが、まあだいたいそんなところかと。 で、この箱ひげ図ですが、Excelでも最近のバージョンでしか...
google-drive-ocamlfuse のインストール google-drive-ocamlfuseは以下のコマンドでインストールできます。 $ sudo add-apt-repository ppa:alessandro-strada/ppa $ sudo apt-get update $ sudo apt-get install google-drive-ocamlfuse Googleアカウントの認証 Googleアカウントの認証を行います。コンソール上で以下のコマンドを打ちます。 $ google-drive-ocamlfuse ブラウザが開いてGoogleアカウントの認証とアクセスの許可を求められます。
Tkinterを使ってみよう 以下のコードを書いて実行してみましょう。 import tkinter as tk root = tk.Tk() root.title(u"Thinter Test") root.geometry("400x300") root.mainloop() 以下のように400×300のまっさらなウィンドウが現れます。まずはこれが基本ですね。 ボタンの配置 root.mainloop()の前に以下のコードを追加すると3つのボタンが現れます。 btn1 = tk.Button(root, text="Button1", width="20") btn1.place(x=10, y=10) btn2 = tk.Button(root, text="Button2", width="20") btn2.place(x=10, y=40) btn3 = tk.Button(r
ソースコード index.html <!DOCTYPE html> <html> <head> <base target="_top"> </head> <body> <h2>Table HTML</h2> <textarea id="text" style="font-size:10pt;width:100%;height:400px;"></textarea> </body> <script> window.onload = function() { google.script.run .withFailureHandler(onFailure) .withSuccessHandler(onSuccess) .getText(); } function onSuccess(result) { document.getElementById("text").value = result;
この記事の情報は古いです。こちらに書き直しました。新しいスクリプトエディタに対応しています。 1つのGoogle Apps Scriptファイルを複数のスプレッドシートから利用する方法です。これはプログラムを集中管理するために便利です。 ちなみにExcelマクロにはこの機能がありません。GASならではの機能です。 Google Apps Script側の対応 まずはGoogle Apps Script側の対応です。 とりあえずこんな感じの簡単なスクリプトを作りました。A1セルにOKという文字列を入力する簡単なプログラムです。これを複数のスプレッドシートから実行できるようにします。 function myFunction() { var mySheet = SpreadsheetApp.getActiveSheet(); mySheet.getRange("A1").setValue("OK
Pythonでmatplotlibライブラリを使って2軸グラフを作ります。 いくつかちょっとしたテクニックを使う必要があります。必要な処置は以下の通り。 第一軸(ax1)と第二軸(ax2)を作って関連付ける。 重ね順として折れ線グラフを前面に。(そうしないと棒グラフに折れ線が隠れてしまう) 折れ線グラフの背景を透明に。(そうしないと重ね順が後ろに回った棒グラフが消えてしまう) 作ったグラフはこんな感じです。 [ad#top-1] ソースコードは以下のとおりです。 import numpy as np import matplotlib.pyplot as plt x = np.array([1, 2, 3, 4, 5]) y1 = np.array([18, 19, 34, 99, 95]) #折れ線グラフ用データ y2 = np.array([23, 16, 75, 62, 91]) #
Googleドライブ上でPython開発環境が手に入るらしいと聞いて試してみました。 Googleドライブアプリの「Colaboratory」がそれです。 外観は「Jupyter Notebook」とほぼ同じですが、パソコンにわざわざ開発環境をインストールせずとも利用できるところが大きな違いです。 ざっくり使った感想を言うと、かなり使えます。numpyやmatplotlibは普通に使えるし、pipでライブラリも追加できます。(エディタに!を入れてからコマンドを記述するとコンソールになるという変則技がある) 「Colaboratory」で検索すると出てくるので、出てきたら「+接続」ボタンを押して使えるようにしましょう。 [ad#top-1] Colaboratoryを試してみる こちらがColaboratoryを起動した画面です。Jupyter Notebookに似ていますねー。使い方はほぼ
Webページを作ろうとすると、Webサーバーを用意しなければなりません。安いところはありますが、それでもお金がかかります。ところが、Google Drive上でGoogle Apps Scriptを使ってWebページを作れます。これにはびっくり。 まず、Google Drive上で、「新規作成」から「Google Apps Script」を選択します。 プロジェクト名は「WebTest」としました。 次に、メニューの「ファイル」から「新規作成」-「HTMLファイル」を選びます。 下のようなウィンドウが現れるので、ファイル名を入力します。今回は「index」とし... コード.gsとindex.htmlファイルを用意しておきます。 まずはgsファイルにdoGet関数を記述します。これによりindex.htmlファイルとを紐付けします。 //コード.gs function doGet(requ
C#でDataGridViewの使用頻度が高めなのですが、忘れがちでそのたびにググっているので、基本的なところをここに書き留めます。 [ad#top-1] DataGridViewの初期設定の基本形 こちらが基本形 DataGridView table = new DataGridView(){ Font = new Font("Meiryo UI", 11), Dock = DockStyle.Fill, ColumnCount = 4, AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill, //最終行の行追加行をなくす AllowUserToAddRows = false, RowHeadersVisible = false, //左ヘッダーをなくす //選択を行全体に SelectionMode = DataGridV
Excelマクロでよくやってしまうのが、プログラミングした後に入力セルの位置を変えてしまうという行為です。プログラムが完成した後に、表のデザインを変えるなどで行挿入や削除などをしてしまうパターンはよくある話です。 例えば、こんなプログラムを組んだとして、下の図のように最初はうまく動きます。 Sub 入力() Cells(3, 3) = 98 Cells(4, 3) = 88 Cells(5, 3) = 92 Cells(6, 3) = 85 End Sub ところが、その後こんな風に行を挿入してしまった場合、 そのまま実行してしまうと、入力箇所がズレてしまいカオスな状態になった経験は結構あるんじゃないでしょうか。 上の例は簡単な表ですが、何行も何列もあるような会社で使う資料でこんなことをやってしまうと、目もあてられない状況になり泣きたくなりますね。 今回は、こんな状態にならないようあらかじ
Googleドライブ上でFusion Tablesというデータベースが使えます。Google Apps Script(GAS)で制御できるのと、それを介してスプレッドシートと連携できるのでとても便利です。 今回はFusion Tablesの導入から認証方法、GASからの制御方法(今回は簡単にSELECT文からの読み込みのみ)について書き留めておきます。 [ad#top-1] 有効化すると新規メニューに現れるのでクリックして起動しましょう。 新しいタブで以下のような画面が現れます。すでにあるDBファイルやスプレッドシートからインポートもできるようです。今回は新規作成ということで、「Create empty table」を選びます。 以下のように空のテーブルが現れました。空のテーブルと言ってもデフォルトでテーブル1つが用意されていて、「Text, Number, Location, Date」
常駐アプリをC#で作る方法です。 今回の仕様として以下のことができるようにしたいと思います。 タスクバーには表示させない タスクトレイにアイコンを置く タスクトレイのアイコンを右クリックするとメニューが現れる アイコン上で右クリックするとメニューが現れます。今回は終了できるようにしておきました。 [ad#top-1] ソースコード ソース全文はこちらです。こいつをコピペしてコンパイルすれば上で説明した動きをするアプリができます。 using System; using System.Drawing; using System.Windows.Forms; class MainWindow{ static void Main(){ ResidentTest rm = new ResidentTest(); Application.Run(); } } class ResidentTest :
端末からプログラミングして実行できるし(実行ボタン押下後にコンソールが現れます)、なんと、nmpuyやpandas、PyQtというライブラリも追加インストールできるんです。jupyterもインストールできます。(jupyterはまだ試しておらず今回は紹介ありません) 実際使ってみたので紹介します。PyQtによるGUI実行結果も最後に書きました。 [ad#top-1] プログラミングから実行まで 下図は、左がエディター画面、右が実行結果です。エディター右下の黄色いボタンは実行ボタンで、これを押すと右画面のようにコンソールが現れて結果が表示されます。 上の例は、クラスを使ったソースコードですが、ちゃんと実行してくれました。 ライブラリをインストールする メニューの中に「pip」とあり、これがライブラリがインストールできるところになります。 ライブラリ名を入力することでインストールできるのですが
Google Drive上で使えるMarkdownエディタ「StackEdit」を使ってブログへのアップロードまでをやってみました。アップロード先のブログはBloggerです。※後述しますがWordPressにはあまりメリットないです。 デスクトップ上ではTypora、スマホではJotterPadを使っていますが、クラウド上だったらどんなものがいいかなと思っていたら、Google Drive上で使えてGoogle Driveに保存できる「StackEdit」が良さそうです。 [ad#top-1] Stack Edit を探して有効化します。人気があるのか探さずとも比較的上位に位置しているみたいです。 以下のようにメニューに現れるようになったらインストール完了です。 使ってみる 新規メニューからStackEditを選びます。 すると、StackEditが起動します。右上のタイトルを変更しまし
まずはライブラリをインストール ExcelをGo言語で扱えるようにするためには、tealeg/xlsxというライブラリが必要になります。コマンドプロンプトから以下のように打てばインストールでします。※GOPATHがあらかじめ設定されていることが前提です。 go get github.com/tealeg/xlsx Go言語の特徴として、ライブラリを簡単にインストールできることなんですよね。これがC#だとVisual Studio上じゃないと厳しいんです。 [ad#top-1] Excelファイルを用意 このブログでよく登場する住所録をExcelファイルで用意しました。 全部で12万行以上のデータがあります。これをGo言語で扱います。 ファイルサイズが3.5MBとそこそこ大きいファイルです。 ソースコードと実行結果 Go言語のソースコードは以下の通りです。ときどきtime.Now()を使って
仕事でExcelマクロはよく使っています。 そんな中、一番苦労するのが、シート内の膨大なデータから特定の文字列を検索するときです。例えばデータ数が1万行もあれば、検索にすごく時間がかかってしまいます。 でも、仕事ではシート内に列挙された何千行、何万行のデータ行から特定のキーワードを検索するのって、Excelマクロで一番使われるんじゃないでしょうか。データ量が多いほど時間がかかります。1万行もあったりすると結構しんどいです。 今回はこれを超高速にする方法を紹介します。 まずは一般的なやり方 まず、下の図は郵便番号を検索するためのExcelシートですが、上段の表が検索したい郵便番号。とりあえず10個用意しました。下段の表は全国の郵便番号と住所の対応表です。郵便番号と住所の全データは郵便局のWebページからダウンロードできます。全国データは124,115データもあるので、検索には時間がかかります
Webサイトのブックマークに「Google BookMarks」のChrome拡張アプリを利用しているのですが、なぜか対応するアプリ数が大幅減ってしまい使いにくいものばかりになっていることと、Googleアカウントを切り替えるたびに同じBookMarksが使えないという実用上の問題があり、Chrome拡張機能でオリジナルアプリを作ろうと思った次第です。今回は拡張機能開発にあたっての、基本的な手順を書きました。ローカルでプログラムを用意し、Chromeの拡張機能に組み込むまでの簡単な手順です。完成イメージ今回作るプログラムの完成イメージは以下の...
With the spring and summer travel schedule drawing to a close, we finally have had time to sit down and run the numbers collected back in June. As always, aside from the fact that we run our own Gi… これによると、もっとも人口の多いのはJavaScriptだそうです。で、Java, PHPと続きます。Visual Basicは19位にあるもののVBAは見当たりません。それともVisual Basicの中に含まれているのでしょうか。 いずれにしても、僕の主張とは大きくかけ離れていますね。 しかし、1つ言いたいのは、この調査は「プロのプログラマーのみ」を対象に調査してるんじゃないかなってことです。世
はてブでの炎上のさなか、”振り”と思われるコメントがあったので、今回はそれに乗っからせてもらって、僕がちょいちょい登場させているGo言語のマスコットgopher君をどうやって描いているか紹介したいと思います。 ※Gopherの原著作者はRenée French氏です。 [ad#top-1] それ以降はパワポで描画 2回目以降はパワポ上で描画しました。ブコメの中で「表情差分」ってあったけど、その通りで、顔の表情だけを作り変えています。見てお分かりかと思いますが、曲線と円しか使っていません。(あ、若干直線使ってるか) どんな風に描くかって言うと・・・ まず大事なのは輪郭です。キャラクターの顔はほぼ輪郭で決まると言っていいでしょう。 30年以上前、中学生時代にキン肉マンの絵を描かせたら学年一と(自分で)言われていた僕が言うから間違いありません。みんな目や口の描画に心血を注ぎますが実は誤りです。重
自分のブログが批判とはいえ取り上げられるのは純粋にうれしいです。面と向かって言われたら凹むかもしれませんが、「自分のブログが取り上げられた」といううれしさだけが残るのはネット上ならではなのかもしれません。 んで、こんな時はおとなしくしているのが正しい態度なのかもしれませが、あえて反応してみようかなと。 [ad#top-1] 一番多かったのは、自分が慣れている言語と違うのを偏屈って言うのはちがうんじゃないかって意見ですかね。文法について誤ったことを書いたのは単純に僕の知識不足だとして、CやJavaがすべてじゃねーよって意見。 自然言語を例に挙げている人もいました。英語と日本語とでは動詞と目的語の位置が違うのと同じように、プログラミング言語だっていろいろな文法があっていいんじゃないかって言われて、たしかにその通りだと思ったけど・・・ 宗教を例にあげてる方もいました。 いやちょっと待って、自然言
ざっくりGo言語を触ってきました。 今までJavaとかC#をメインに使ってきた僕としては、一見先祖返りしたような仕様にちょっと戸惑いました。 「コンパイル速度を上げる」目的で作った言語とのことで、その目的のためにコーディングしやすさをある意味犠牲にした、といいう点は理解できます。 が、明らかにコンパイル速度(あるいは実行速度)とは関係ないところで使い勝手を「わざと」悪くしたとしか思えない仕様に、Googleエンジニアの偏屈さを感じずにはいられません。 僕の単なる認識不足だけかもしれませんが、僕自身が感じた”偏屈”と思ったところを書いておきます。 ※アイキャッチ画像に自作Gopher君を載せていますが、Gopherの原著作者はRenée French氏です。 [ad#top-1] nullじゃなくてnil 「何もない」を表すnilですが、どちらかというとnullと表現する言語の方が多いです。
LibreOfficeのマクロ(LibreOffice Basic)で、A1セルに文字列を入れたい場合は以下のようなコードになります。VBAとは大きく違いますね。 LibreOfficeでVBAを使ってみよう LibreOfficeでも、”あるおまじない”をするとVBAが使えるんです。 それは、エディタのトップに、Option VBASupport 1 という一文を入れるだけ。これだけでVBAが使えます。 上記のプログラムを実行すると、ご覧の通りちゃんとA1セルにTestというテキストが入ります。 どこまでVBAをサポートしているのか? VBAをサポートしているとはいえ、すべてフルサポートしているとは思えず、どこまで機能が使えるのか気になるところです。以下のコードをサクッと作ってみましたが、とりあえずちゃんと動きました。Cellsによるセル参照や、For文とWhile文は大丈夫そうです。
5年前にGASからHTMLへのデータの受け渡し方法について書きましたが、どうやら仕様が変わっていたらしくうまく動作できませんでした。改めて現在動作可能な正しい手順を書こうと思います。いつの間にすごくシンプルな仕組みになっていました。いつ仕様が変わったのでしょうか? HTMLに<?= 変数名 ?>を埋め込む GASからのデータをHTML側で受け取る場合は、<?=変数名 ?>というタグを埋め込みます。かつてはHTMLに埋め込んだJavascriptで受け取っていたことを考えると非常にシンプルになりました。 以下が例です。変数名をmessageとしました。 <!DOCTYPE html> <html> <head> <base target="_top"> </head> <body> <h1><?=message ?></h1> </body> </html> GAS側のコード 次にGAS側の
前回書いたとおり、とある理由でJavaをやめることになりました。10年以上に及んでJavaを使ってきたので、その間に得た知識は半端ない(たぶん)のですが、どうにもこうにもならなくなり、捨てる覚悟を決めたわけです。元々、会社での自分自身の業務効率を上げるために、ルーチンワークなところを自動化してきたことが、プログラミングの大きなモチベーションの1つとなっていたわけです。たとえば多数のテキストファイルの中からある部分を抜き出すような仕事は、手作業よりパソコンに任せたほうが何百分の一の時間で終わります。そう... 今はメイン言語がC#ですが、C#はJavaの模倣品みたいなもので、おかげで参入障壁は低かったです。 低いのですが、C#を使いながら時々Javaが懐かしく思うことがあります。今日はそんな話です。Javaはこんなところが良かったなって思うこと7個紹介します。 [ad#top-1] 1. す
Excelマクロで、複数行のデータを別の複数行データから同じ文字列を検索するマクロがあったとします。この場合、よく使う手として2重ループを使って検索するのですが、2重ループのため時間がかかってしまいます。これを速度アップさせるテクニックを紹介します。 [ad#top-1] 例えば、下の図のようにA列に県市町村名が郵便番号順に並んでいて、B列に同じく県市町村名がランダムに並んだものを用意します。行数はA列、B列ともに1896行あります。 で、A列のすべての行に対して、B列の中に存在するかを調べるプログラムを組んだとします。 その場合、単純に考えると以下のようなプログラムになります。D1セルに処理時間、D2セルに処理回数を表示するようにしました。(TimerはNowと違ってミリ秒まで現れるので便利です) Sub Test1() dt1 = CDbl(Timer) cnt = 0 For m =
まずはExcelファイルを用意 Excelで次のようなテーブルを作っておきます。ファイル名はとりあえず、Book1.xlsとしておきました。(Excel2003形式です。)シート名もデフォルトのSheet1です。2007以降の形式でもやりたかったのですが、残念ながらうまくいかず断念しております。 ちなみに、注意点としてシート名に特殊文字(* とか ( ) とか / とか・・・)を使うのは避けましょう。最近のバージョンは特殊文字をシート名に使えるのですが、C#側で実行エラーになります。 C#側の処理 C#側のプログラムは以下の通りです。 SQLのようにWHERE句が使えるのがうれしいですね。 実行結果 実行させると以下の通り。SQL文で40歳以上の年齢のみ抽出していますが、ちゃんとそのような結果が現れています。 次回はINSERTやUPDATEを使って書き込みの方法を紹介します。 [ad#a
プログラマ以外の一般的なサラリーマンの間でExcel/VBAがよく利用されていますが、アマチュアだけにあまり処理速度を気にしていません。処理時間に数分かかってしまうようなものも放置されがちですが、やはり早いことには越したことはないので、速度をあげるちょっとしたテクニックを紹介します。 [ad#top-1] まずはサンプルコードです。 以下のプログラムコードは、C2セルの数値とC3セルの数値を割り算して前の結果に加算する計算を100万回行っています。 処理の最初と最後の時刻差を計算して秒数に直してC6セルに表示させています。この時間(秒)が処理時間となります。 Sub TimeTest0() time1 = Now() result = 0 For i = 0 To 1000000 result = result + Range("C2") + Range("C3") Next i Rang
次のページ
このページを最初にブックマークしてみませんか?
『Untitled Document』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く