IT練習ノート

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

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 例 for($idx=2; $idx…

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…

QuickCheckで固定長文字列を作る

*> sample' (vectorOf 4 $ choose ('a','z')) ["jvnv","ylqf","aoud","bdha","lekn","ahoy","yzdp","nyso","zzlo","gjii","cyjg"] Ascii文字列とかUnicode文字列とか生成する機能があります。一度しっかりドキュメントを読んでおくとお釣りか来る感じ。 *> s…

Windows10へのGitのインストール

インストールのログ Windows PowerShell Copyright (C) Microsoft Corporation. All rights reserved. PS C:\Users\User> iex (new-object net.webclient).downloadstring('https://get.scoop.sh') PowerShell requires an execution policy of 'RemoteSigne…

CPS

CPSによる階乗計算 > :{ | fac 0 k = k 1 | fac n k = fac (n-1) $ \res -> k $ (*) n res | :} > fac 3 id 6 > fac 3 (+1) -- (1 * 2 * 3) + 1 7 手計算してみる。 fac 3 k = fac 2 $ \res -> k $ (*) 3 res = fac 1 $ \res1 -> (\res -> k $ (*) 3 res) $ …

stackのghciをテスト側で開く

通常のghciで開くとlibまたはexe側でghciが開く $ stack ghci テスト側で開きたい時はテストスイート名を明示的に指定する。 $ stack ghci :RFC5646-test

stackでテストスイートを個別に実行する

name: hoge tests: foo-test: main: Spec.hs source-dirs: test bar-doctest: main: test/doctests.hs と2つのテストスイートfoo-testとbar-doctestを定義する。 このときstack testでテストが実行されるが、両方とも実行される。 片方だけ実行したい場合は …

Attopersecで正規表現{min,max}

Regrex {min, max} for Attoparsec

Applicative Mabyeで条件分岐

なんらかのデータを取得する処理をして、あればそれを使い、なければ、別途データを取得する というロジックは、よくあるのではないでしょうか。 例えば、このような場合です。 import qualified Data.HashMap.Lazy as HML m = HML.fromList [("k1", "**"), …

Contravariant

Data.Functor.Contravariant covariant functor ~~> produce something contravariant functor ~~> consume something (>$) = contramap . const const :: a -> b -> a contramap :: Contravariant f => (a -> b) -> f b -> f a contrampa . const = x -> y …

Lensの理解のために

haskell/lens.md at master · lotz84/haskell · GitHub haskell - How to write an instance of Control.Lens.AT - Stack Overflow Oleg's gists - Glassery

Isoの使い方

lambda > import Control.Lens lambda > :t iso iso :: (Functor f, Profunctor p) => (s1 -> a1) -> (b1 -> t1) -> p a2 (f b2) -> p s2 (f t2) lambda > let foo = iso (\((a,b),c)->(a,(b,c)) (\(a,(b,c))->((a,b),c))) lambda > let foo = iso (\((a,b),…

安全なhead

Preludeにあるheadは安全ではない lambda > import Control.Lens.Cons lambda > head [1,2,3] 1 lambda > head [] *** Exception: Prelude.head: empty list Safeパッケージがある。 lambda > import Safe lambda > headMay [1,2,3] Just 1 lambda > headMay…

Attopersecで無限ループをさせる簡単な方法

Infinite loop on Attopersec

JSONにLensでアクセス

JSON access by Lens

Haskell Patterns

Reader Pattern The ReaderT Design Pattern MichaelXavier.net - Enterprise Haskell Pattern: Lensed Reader MichaelXavier.net - Enterprise Haskell Pattern: Lensed Reader Has Pattern The Has Type Class Pattern – Hacker Noon Handle Pattern jaspe…

Megaparsecで状態を扱う

paserで状態を管理したい場合があります。 Attoparsec attoparsecでは、ライブラリ自体で、parser利用者側の状態を管理する仕組みがありません(間違っているかも)。なので、下記にあるとおり、StateTを使うことになります。 haskell - Does Attoparsec sup…

PolyperseのText.Perseの持ち上げ

Text.ParserCombinators.Poly.State パーサーで状態を扱いたいと思って、Polyperseを見ていました。Stete用のコンビネータがあるのですが、そのモジュールには基本的なコンビネータがないので、どうしたものかと思いました。Steteでも使えるようにText.Perse…

ドット力

Haskellはドット力が必要 Power of Dots