IT練習ノート

IT関連で調べたこと(実際は嵌ったこと)を書いています。

extensibleの小さなサンプルを書いてみた

モナドのスタックの取り回しが面倒に感じているので、そろそろ何とかしたいと思っていました。ここでようやく重い腰を上げて、extensibleにチャレンジです。ウェブ上にある情報は、複雑だったので、もっと小さなサンプルを書き下してみました。 mtlとcompati…

NTextを指定してもTDSプロトコル用はvarcharになっている

なんでだろう? using System; using System.Data; using System.Data.SqlClient; namespace ConsoleApp1 { class Program1 { static void Main(string[] args) { using (SqlConnection conn = new SqlConnection()) { conn.ConnectionString = "Server=DESK…

JavaParserを使ってみる

Javaのコードレビューをしていて、指摘事項の水平展開をする時に、エディタ等のgrepで検索して、類似の指摘箇所を探したりします。 ただ、それだと、複数行にまたがり相関をもった内容の抽出に手間がかかります。 例えば、前のプロジェクトでは、stream処理…

JOOXで要素をwrapする。

過去記事で、jooxを取り上げたました。これを案件で補助ツールとして使っています。一律にxmlを補正したい時や、xmlの記述がプロジェクトのルールに従っているかをチェックするためにつかっています。 JavaでjQueryライクにXMLを操作する - IT練習ノート た…

Javaのstreamで嵌る

IntStreamとStream<T>インターフェースに親子関係がない java.lang.AutoCloseable java.util.stream.BaseStream<T,S> java.util.stream.DoubleStream java.util.stream.IntStream java.util.stream.LongStream java.util.stream.Stream<T> そのために(?)、IntSteramに3</t></t,s></t>…

JavaでjQueryライクにXMLを操作する

github.com jOOXというライブラリを使えば良さそうです。 嵌ったところは DOCTYPEがあると読み込んでくれないので、その場合、自分でxmlファイルを読み込む必要がある。 childrenメソッドでセレクタでタグを2個指定するのは動かない模様。(findなら複数指定…

Unfoldの使いどころ

haskellのコーディングでfoldrは頻繁に使う印象がありますが。その双対(で、あってるのかな?)のunfoldは、あまり使わない印象があります。というか、使いどころのイメージがつかめませんでした。 この前、n進数間の変換に使えることに気づきました。 が、…

Data.BinaryのputとputByteString

ByteStringがBinaryクラスのインスタンスになっているので、putとputByteStringは同じものかと思ったのですが、差がありました。 Data.Binary > runPut $ put $ BSL.pack [0xFF,0xFE,0xFD] "\NUL\NUL\NUL\NUL\NUL\NUL\NUL\ETX\255\254\253" > runPut $ putLa…

Haskellのerrorで嵌る

次のような作りかけのコードを書いていました。errorの部分はあとで修正していくつもりでした。コーディングが進んで、errorの部分をコーディングする段階に来たのですが、show tの内容が出力されませんでした。 paramMetaData2TypeString_ (VAR tipe len) =…

Haskellの時間で嵌る

UTCTimeはDayと`DiffTimeから構成されます。DiffTimeはドキュメントに0 <= t < 86401sの範囲と記載されていますが、範囲以上でも動いてしまうようです。 > y = secondsToDiffTime 60 * 60 * 24 > z2 = UTCTime (fromGregorian 2018 11 17) y > z2 2018-11-17…

Javaのlambdaやstreamのベストプラクティスは?

ラムダ式のベストプラクティス Best Practices using Java 8 Lambdas | Baeldung StreamAPIコーディング規約 coding-standards/Javaコーディング規約.md at 8f152d2a7c6853f14345fbd9f10a9a0b14525e1f · future-architect/coding-standards · GitHub StreamA…

SQLServer Management Studioの上位200件の編集で、decimal(38,0)は扱えない模様

直接セルを入力しようとすると20桁までしか受け付けてくれません。38桁の値をSQLで設定した後にみると、<ファイルを読み取れません>となります。 update TBL_DECIMAL set x_decimal_38_0 = 99999999999999999999999999999999999999 where x_id = 13;

SQLServerの浮動小数の仮数の指定

マニュアルをみると、float [ (n) ]と記載されているので、nを指定できるように思えます。 https://docs.microsoft.com/ja-jp/sql/t-sql/data-types/float-and-real-transact-sql?view=sql-server-2017 実際create tableでfloat(14)などとしてもエラーになり…

Haskellにはforがない。でもループのインデックスみたいなやつを使いたいとき。

> ['a','b','c'] のようなリストを扱っているときに、インデックスも使って処理をしたい時があるかもしれません。 その場合は自分でインデックスを付与してあげます。 > zip [0..] ['a','b','c'] [(0,'a'),(1,'b'),(2,'c')] > fold系の関数を使うときに、タ…

HaskellのshiftLではまった話

数値リテラルで計算すると期待する結果になるけど、なぜかバインドした値を使うと結果が異なり、しばらく悩みました。 > a 10 > b 149 > c 91 > a `shiftL` 16 .|. b `shiftL` 8 .|. c -- 期待していない結果 91 > 10 `shiftL` 16 .|. 149 `shiftL` 8 .|. 91…

重複したフィールドラベル

今の手元の環境は下記なのですが、 > :! stack ghc -- --version The Glorious Glasgow Haskell Compilation System, version 8.2.2 下記のブログ記事をコピペして手元で動作させたらコンパイルエラーになりました。 d.hatena.ne.jp IsLabelクラスのfromLabe…

PowerShellの配列のカンマに嵌る

$ary = @( ('a', '1') , ('b', '2') ) foreach($x in $ary){ Write-Host $x[0] "-" $x[1] } a - 1 - b - 2 なんと! $ary = @( ('a', '1'), ('b', '2') ) foreach($x in $ary){ Write-Host $x[0] "-" $x[1] } a - 1 b - 2 どういう仕様なんでしょうか?

Powershellの”と'

割とあるある。 Single Quotes vs. Double Quotes in PowerShell: What's the Difference? | IT Pro

Windowsでcurlとかwgetとか

Invoke-RestMethod PowerShellでcurlもどき | ハックノート Invoke-WebRequest PowerShell で wget のようにファイルダウンロードをしたい - tech.guitarrapc.cóm .net - Powershell v3 Invoke-WebRequest HTTPS error - Stack Overflow Invoke-RestMethod、…

Audacityで音声ファイルの連結

いつも忘れるのでメモ ドラックアンドドロップで音声ファイルを取り込む 連結したい順番に上から下に並べ替える 取り込んだトラックを選択する メニュー->トラック->トラックをそろえる->開始点を別トラックの最終点に合わせる オーディオの書き出し

FFmpegのパラメータの順番で-toの挙動が変わる

Web検索すると、ffmpegのパラメータの使い方として、ファイルを指定する-iより、シーク場所を指定する-ssを、先に指定したほうがよいとの情報があります。 ffmpeg -i foo.mp3 -ss 00:00:02.540 -t 3 -c copy bar.mp3 よりも ffmpeg -ss 00:00:02.540 -i foo.…

SQLServerのglobalとlocalのカーソルの違い

粒度の違いとおもえば大体あってそう。 local -> batch, stored procedure global -> connection www.techbrothersit.com

JavaScriptでSQLServerにアクセス

node-mssqlでアクセスできる模様。(試してない) node-mssqlが便利なインターフェースを用意していて、ドライバがtediousjsとういう役割分担。 my program <--> node-mssql <--> tediousjs <--> SQLServer node-mssql GitHub - tediousjs/tedious: Node TDS…

SQLServer Management Studio上のクエリでプロシージャを実行してもSQLBatchとして実行される模様

サンプルのNorthwindで次のクエリをSQLServer Management Studioで実行したら、SQLBatchとして実行されていました。クエリ全体が文字列(下の例でいえば6行全体)として扱われているようです。PreparedStatementとして実行されることを期待していたのですが…

C#のDBアクセス

この記事がコンパクトにまとまっていて良さそう。 https://www.codeproject.com/Articles/823854/How-to-connect-SQL-Database-to-your-Csharp-program

ラムダ計算のビデオ講義

www.youtube.com ラムダ計算とはなにか、なんで有用なのか、その由来 YコンビネータとDNAの相似 www.youtube.com 再帰 Yコンビネータ www.youtube.com 歴史を手短に解説 ものまね鳥の話

PutをBitPutにするとflushされてしまう

Binary処理が定義されているとします。 例えば、下記は1Byteの処理です。 > :t example_ColFlags example_ColFlags :: ColFlags > :t put example_ColFlags put example_ColFlags :: Put > > BSL.writeFile "work\\colflags.bin" (runPut $ put example_ColF…

いつも忘れるのでHaskellのテストの最小のひな型をメモ

package.yaml tastyだけでなくtastyから利用するテストパッケージもdependenciesに追加する。(これを忘れていつも嵌る) tests: testproj-test: main: Test.hs source-dirs: test ghc-options: - -threaded - -rtsopts - -with-rtsopts=-N dependencies: - …

Haskellタプルは実質15個まで

タプルでshowやeqが定義されているのは15個まで タプル15個 > type Foo = (Bool, Bool, Bool, Bool, Bool, Bool, Bool, Bool, Bool, Bool, Bool, Bool, Bool, Bool, Bool) > (True, False, True, True, True, True, True, True, True, True, True, True, Tru…

HaskellのBitの取り扱い

処理の流れ Binary.BitsからBinaryに直してBinary側でrunする。 パッケージで言えば Data.Binary.Bits.Put -> Data.Binary.Put -> Data.ByteString.Lazy Data.Binary.Bits.Get -> Data.Binary.Get -> Data.ByteString.Lazy 動作例 > BL.writeFile "work\\bit…