不定期戯言

戻る

« | 2019 | Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec | »

古いページ

2019.06.05 (Wed)

フロントエンドもくもく会

・前回はvue.jsの勉強をしたが,今日はWaPENの変数確認機能を実装する。「変数を確認する」でそこから見えている全変数の値を表示するというものだ。PENにあった変数表示画面がないことが不満だという意見に対しては,これで答えになると思う。

・毎度恒例になっているWaPENの進捗報告で,自動採点機能について話した。問題は正解がスクリプトの中に直に書かれていることで…というと,「ハッシュで答え合わせするってのはどう?」というアイディアをもらった。answer.jsもsample.js同様,GUIプログラムで生成することを考えているので(目下開発中),これはアリだと思う。

コメント(0)

コメント投稿

日本語の文字が入っていないものは受け付けません。URL欄は使わないでください。

Name:
URL (NEVER USE):
Comments:

トラックバック(0)

トラックバック用URL: https://watayan.net/blosxom.cgi/computer/201906050001.trackback

2019.05.08 (Wed)

フロントエンドもくもく会

・今日はSoftware Designの懸賞であたったVue.jsの本を読む…つもりだったのだが,ちょっと確認してみようとさわったWaPENに致命的なバグが見つかったのでまずそれの修正から。さっそくGitHubに反映しておく。

・Vue.jsは初めて触ってみたのだけど,データをいじるとそれが即時に反映されてなんだか面白い。こういうの使うとあっちやこっちを直し忘れみたいなこともなく,ページが間違いなく作れるのかな。

コメント(1)

6741 wrote at 2019-05-09 11:22:

コメントなくて草

コメントの受付は終了しました。

トラックバック(0)

トラックバックの受付は終了しました。

2019.05.06 (Mon)

連休

・この連休は勉強をしようと決めていた。そんなわけで,だいぶPythonのコードを書いた気がする。「ゼロから作るDeep Learning」を読み返したら前よりかなりわかるようになった気がする。しかしこれで書いたプログラムで大きい処理をすると,CPUを偏った使い方するのね…システムモニタで見てると100%でずっと頑張ってるやつが固定されてて,なんか不平等な状態が続く。別の本で有名なライブラリ使って作業したときは忙しさが分散していたので,なんだか面白かった。

コメント(0)

コメントの受付は終了しました。

トラックバック(0)

トラックバックの受付は終了しました。

2019.04.30 (Tue)

指が…

・この連休は滞っていた勉強を進めようということで,本を読みながらサンプルプログラムを打ち込んで実験したりしている。初日は張り切りすぎて,指が痛かった。普段は指のことを少しは気にしつつタイプしているから大丈夫なんだけど,考える方に頭が行ってしまうと指への気遣いがまったくできなくて,つい強めにキーを叩いてしまう。早く今のキーボードに慣れなくては。

コメント(0)

コメントの受付は終了しました。

トラックバック(0)

トラックバックの受付は終了しました。

2019.04.03 (Wed)

TypeScript勉強会

・名古屋フロントエンド勉強会が表題の勉強会をやるということで参加。私にとってはレベルの高い話が多かったが,自分の作業のために参考になる話がいくつかあった。いきなりLint使うのはハードル高いし,いきなりTypeScriptに移行するのも同様なので,とりあえずということでJSDocをきちんと書いてみることにした。そうするとそこにきちんと書けないくらい忘れてしまってることがあるのが明らかになって,なかなかいい。

コメント(0)

コメントの受付は終了しました。

トラックバック(0)

トラックバックの受付は終了しました。

Hello WorldとMakefileの間

・TypeScript勉強会の最後の討論で少し発言した話を整理してみる。

・大抵の言語を勉強するとき,とりあえずはHello Worldから始めることになる。しかし,一つのプロダクトを作ろうとした場合には,複数のソースファイルに整理したりとか,いろんな設定を整えたりとかいった作業が必要になる。たとえばC言語ならMakefileを書かなくちゃ,みたいな。そのHello WorldとMakefileの間のギャップをどうやって越えるのがいいんだろう。

・私はわりとガリガリ書くことが苦にならないので,Hello Worldにどんどん毛をはやして一つのプロダクトに仕上げていくことがある。実際PenFlowchartやWaPENなんかはそれに近い作り方をしてきた。そう言うやり方だと,実はみんなうまいやり方で楽をしてるのに,それを知らずに手癖で面倒なことをやっている場面がいくらかあるような気がしてしまう。C#なんかだとVisual Studioに任せてしまうので,最初から適当な雛形の上で作業するのだけど,その違いは一体何なんだろう…そのギャップをどうやって越えるのがいいんだろう。

・一応はネットでいろいろ検索してみるわけだが,「正統な方法」があるならそれを最初に試したい。もちろんいろんな流派があるのはわかっているが,だったらそれぞれの方法で,なぜそれが正統だと考えるのかを知りたい。

・高校の授業でやるのはHello Worldに毛が生えた程度のものになるのだけど,だからといってその先を知らなくていいということにはならないと思うのだ。

コメント(3)

中西通雄 wrote at 2019-04-05 13:24:

私どもの情報科学部3年の授業の中で、make のことも教えています。
2つのソースファイルから1つの実行モジュールを作るという簡単な例を unix 環境でやります。

まずは、1ファイルずつコンパイルしてオブジェクトを作り、リンクする。コマンドを3つ打つのはめんどうだよねぇ。

次に、シェルスクリプトをもちいて(いわゆるバッチファイル的に)、2つのコンパイルと1つのリンク命令を書く。楽になったけれど、無駄があるよね。
(なお、この過程で chmod +x がわからない/忘れている 学生多し(涙))

さらに、makefile を使ってみる。touchコマンドで最新講習日時を変更してやってみる。

こんな具合です。正統な流儀って何でしょうねぇ。

わたやん wrote at 2019-04-05 19:02:

中西先生,ありがとうございます。
「1つずつコンパイル」してから「リンク」する手順の方が本当は楽でいいやん,って思うのはある程度大きいものを作るようにならないと実感としてはわからない気がしています。そうなるといちいちMakefile作るとかの方がめんどくさいじゃん,という思いを説き伏せるために必要なのはもっとファイルが増えたりしたときのことを想像する力なのかなとか。

わたやん wrote at 2019-04-05 19:04:

そういうのを教えてもらう機会のある学生さんは幸せだと,我が身を振り返って思ったりもします。

コメントの受付は終了しました。

トラックバック(0)

トラックバックの受付は終了しました。

2019.03.12 (Tue)

WaPENのマニュアル

・どうにかWaPENのマニュアルのようなものを作りかけてみた。どうして私が作るものはこうも無骨なものになってしまうのか。いや,もちろん装飾とかレイアウトとかまだ全然考えてないから,そういうのが実装されていないのは当然だ。そうでなくて,それがないままでも別にいいじゃんって思ってしまうところが問題なのだ。たぶん。

コメント(0)

コメントの受付は終了しました。

トラックバック(0)

トラックバックの受付は終了しました。

2019.02.09 (Sat)

スクレイピング

・最近『Pythonによるスクレイピング&機械学習』(クジラ飛行机著,ソシム)を読んでいる。題材として自分のサイトを使ってみたりする。たとえば過去の発表資料のページからタイトルを取得してみたり,このページのコンテンツをまとめてダウンロードしてみたり。今まで無駄にタイトルや日付をSPAN要素にしてCLASS名をつけていたのだけど,それが功を奏した感じだ。そうしてみると,このあたりも自動生成するようにしたいなあ。

・最近のサイトは自動生成される部分が多いから,要素を指定して値を取得するのはやりやすいような気がする。少なくとも手書きのサイトよりは。

コメント(0)

コメントの受付は終了しました。

トラックバック(0)

トラックバックの受付は終了しました。

2019.01.23 (Wed)

出席番号の変わり目で改ページ

・マージした表で明らかにおかしいところを直して,出席番号順にソートして印刷…したいのだけど,改ページを入れまくらなければいけない。Excelだったらわかるんだけど,LibreOffice Calcだとどうしていいのかわからない。あちこち検索して,改ページがあるかどうかが調べられることはわかったけど,それを設定する方法がわからない。結局Option VBASupport 1を指定してExcelと同じ書き方をすることでなんとかなった。なんとなく負けた気持ち。

・(追記)「IsStartOfNewPageプロパティでいける」とのコメントをいただいた。確かにプロパティだから,値をセットしてもいいんだよな。そんなわけでこんなコードでうまくいった。Col=3は,キーになる列がD列だからということ。

 Sub Main
  Col= 3
  Doc =ThisComponent
  Sheet = Doc.Sheets(0)
  pre = Sheet.GetCellByPosition(Col, 1).Value
  r = 2
  Do
    Row = Sheet.Rows(r)
    Cell = Sheet.GetCellByPosition(Col,r)
    if Cell.Value <> pre then
      pre = Cell.Value
      Row.IsStartOfNewPage = True
    Else
      Row.IsStartOfNewPage = False
    End if
    r = r + 1
  Loop While pre<>0
End Sub

コメント(2)

参考まで wrote at 2019-01-23 21:46:

LibreOffice Basicならば
LibreOffice macro IsStartOfNewPage
で検索

わたやん wrote at 2019-01-23 22:16:

あ,そうか。あれはプロパティだからbooleanな値をセットしてやればいいんですね。検証して追記します。ありがとうございます。

コメントの受付は終了しました。

トラックバック(0)

トラックバックの受付は終了しました。

2019.01.19 (Sat)

表の結合

・生徒のLT大会が終わったので,評価シートをマージしなくてはいけない。LibreOffice calcの表をそのまま全員分貼り合わせればいいのだが,こんなの手作業でやりたくない。最近Pythonを勉強中なので,それを使ってざくっとコードを書いてみた。odfpyモジュールを使ってみたが,肝心の表読み出しのところが少し面倒だった。

import pathlib
from odf import number,text,table,opendocument

doc = opendocument.OpenDocumentSpreadsheet()
tbl = table.Table(name="評価シート")

p = pathlib.Path(".")

for f in p.glob("2018*.ods"):
    d = opendocument.load(str(f))
    tables = d.spreadsheet.getElementsByType(table.Table)
    for t in tables:
        for r in t.getElementsByType(table.TableRow):
            row = table.TableRow()
            tbl.addElement(row)
            for c in r.getElementsByType(table.TableCell):
                cells = 1
                repeat = c.getAttribute("numbercolumnsrepeated")
                vt = c.getAttribute("valuetype")
                if repeat:
                    cells = int(repeat)
                while cells > 0:
                    cell = table.TableCell(value=c, valuetype=vt)
                    cell.addElement(text.P(text=c))
                    row.addElement(cell)
                    cells -= 1

doc.spreadsheet.addElement(tbl)
doc.save("merge",True)

(こっそり修正)

コメント(0)

コメントの受付は終了しました。

トラックバック(0)

トラックバックの受付は終了しました。

古いページ