TypeScriptでDBを扱うときに便利なtypeormの使い方の例ですソースコード
/* //TypeScriptの基本以外で必要なパッケージ sqlite3 typeorm //tsconfig.jsonに必要な追加設定 { "compilerOptions": { "experimentalDecorators":true, "emitDecoratorMetadata":true } } */ import * as typeorm from "typeorm"; /** *データ構造の定義 * * @export * @class TestModel01 */ @typeorm.Entity() export class TestModel01 { @typeorm.PrimaryGeneratedColumn() //自動番号 id!: number; @typeorm.Column() //一般データ name?: string; @typeorm.Column({ default: () => "CURRENT_TIMESTAMP" }) //default値の指定:()=>"命令" でCURRENT_TIMESTAMPが文字列にならないように設定 date!: Date; } /** *非同期主処理 * */ async function Main() { //DBへ接続 const con = await typeorm.createConnection({ type: "sqlite", database: `test.sqlite`, entities: [TestModel01], logging: true }); //DBの構造を初期化 await con.synchronize(); //テーブルアクセス用インスタンスの取得 const testModel01 = con.getRepository(TestModel01); //テーブルへ挿入 await testModel01.insert({ name: "あいうえお" }); await testModel01.insert({ name: "かきくけこ" }); //データの取得と表示 const testValue01 = await t
TypeScriptを試すには、Node.jsのコンソールプログラムとして実行するのが最も簡単です。VSCodeから利用すれば以下の設定で、コンパイル不要、即実行とデバッグが可能となります ちょっと試したい、気軽にテストしたい場合にオススメの方法です。TypeScriptのインストール VSCodeの設定 サンプルアプリの作成
TypeScriptを試すには、Node.jsのコンソールプログラムとして実行するのが最も簡単です。VSCodeから利用すれば以下の設定で、コンパイル不要、即実行とデバッグが可能となります ちょっと試したい、気軽にテストしたい場合にオススメの方法です。TypeScriptのインストール VSCodeの設定 サンプルアプリの作成
TypeScriptを気軽かつ簡単にお試しできる環境を整える
TypeScriptを試すには、Node.jsのコンソールプログラムとして実行するのが最も簡単です。VSCodeから利用すれば、多少の設定追加でコンパイル不要、即実行とデバッグをすることが可能になります。 ちょっと試したい、気軽にテストしたい場合にオススメの方法です。TypeScriptのインストール VSCodeの設定 サンプルアプリの作成
プログラムやサーバなどの技術情報を掲載するサイトです現在はTypeScriptネタを中心に進めています更新履歴
プログラムやサーバなどの技術情報を掲載するサイトです現在はTypeScriptネタを中心に進めていますお知らせ 更新履歴
Test.tsconst a:string = "Test";console.log(a);実行はソースファイルをアクティブにした状態で、VSCodeのデバッグ実行ボタンかF5キーを押します。出力結果は、VSCodeのデバッグコンソール上に表示されます。また、ブレークポイントを置いたり、トレースすることも可能です。
.vscode/launch.jsonを以下のように設定しますファイルを作るのが面倒な場合はVSCodeのデバッグから構成の追加で、適当な構成を選ぶとファイル作成されるので中身を書き換えてください。{ "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", "name": "Launch Node", "args": ["-r","ts-node/register","${file}"] } ] }
まずNode.jsでパッケージ情報を保存するためのpackage.jsonファイルを作成します。 npm -y init package.jsonの中身に関しては、テストだけならとりあえずデフォルト状態で大丈夫です。 TypeScriptのインストールnpm install typescript ts-node @types/node
まずNode.jsでパッケージ情報を保存するためのpackage.jsonファイルを作成します。 npm -y init package.jsonの中身に関しては、テストだけならとりあえずデフォルト状態で大丈夫です。TypeScriptのインストールnpm install typescript ts-node @types/node typescriptはNode.jsでTypeScriptを使うためのモジュール、ts-nodeは.tsファイルを直接実行するのに必要になります。ただし、後述するpm2を利用する場合は、ここで組み込んだものは使われません。pm2コマンドを使う必要があります。サンプルの作成と実行
GoogleAPIを使用する場合など、フィンガープリントが必要となる場合があります。コマンドで出力する方法もありますが、プログラム上から実行時に出力した方が、確実に正しい情報を確認可能です。ソース
GoogleAPIを使用する場合など、フィンガープリントが必要となる場合があります。コマンドで出力する方法もありますが、プログラム上から実行時に出力した方が、確実に正しい情報を確認可能です。ソース
以下のソースをActivityに追加し、onCreateでLog.d("Finger",getAppFinger(this));と言う形で呼び出してください。 static public String getAppFinger(Context con){ try { PackageInfo packageInfo = con.getPackageManager().getPackageInfo(con.getPackageName(), PackageManager.GET_SIGNATURES); InputStream input = new ByteArrayInputStream(packageInfo.signatures[0].toByteArray()); Certificate c =CertificateFactory.getInstance("X509").generateCertificate(input); byte[] publicKey = MessageDigest.getInstance("SHA1").digest(c.getEncoded()); StringBuffer hexString = new StringBuffer(); for (int i=0;i<publicKey.length;i++) hexString.append(String.format("%02x",publicKey[i])); return hexString.toString(); } catch (Exception e) { e.printStackTrace(); } return null; }
GoogleAPIを使用する場合など、フィンガープリントが必要となる場合があります。コマンドで出力する方法もありますが、プログラム上から実行時に出力した方が、確実に正しい情報を確認可能です。ソース
GoogleAPIを使用する場合など、フィンガープリントが必要となる場合があります。コマンドで出力する方法もありますが、プログラム上から実行時に出力した方が、確実に正しい情報を確認可能です。ソース
select文の実行 テーブルの作成 データの挿入と抽出
C言語を学ぶにあたって「ポインタが理解できない」という声を聞くことがある。自分の記憶をたどってみると「ポインタが理解できない」と考えたことは一度も無かった。何故なのか、答えは簡単である。C言語をやる前にアセンブラをやっていたからだ。そしてアセンブラをやることによってポインタで必要となるアドレスの概念だけでなく、レジスタやスタックという高水準言語では直接使うことの無い重要な構造を学ぶことが出来るのだ。今回はx86系32bitを前提に話を進めていきたい。アセンブラを使うにはどうしたらいいのか 早速アセンブラに触れてみよう レジスタ(32bitの場合)と型 領域 サンプルから学ぶアセンブラ
公式のコマンドラインツールも存在するが、Windows環境ならA5:SQL Mk-2をおすすめする。A5:SQL Mk-2からSQLiteの操作方法
SQLiteは組み込み型データベースであり、サーバを必要とせずプログラミング言語やOSの標準機能として搭載されていることも多い。 データはその場でファイルとして保存されるが、履歴ファイルを作りつつ安全に更新されるため、そうそうデータが壊れることはない。 処理速度は高速で、処理によっては下手なデータベースサーバより速いこともある。複数のプロセスやスレッドから同時アクセスも可能であり、欠点があるとすれば標準でネットワークアクセスできないことぐらいである。
正確な情報は公式サイトを参照されたしhttps://www.sqlite.org/datatype3.html基本的なデータ型 データ型と別名 日付の扱い 日付を扱う上での注意事項
ServiceプログラムはUIを持たずに、他のアプリケーションの裏で動作することが前提となります。ただしAndroidのバージョンによっては、組み方によって動作中でもあっさりと停止させられてしまう場合があるので注意が必要です。 完全にUIを使わないと動作状態が分からなくなってしまうので、今回は通知領域を使うサービスを作っていきます。サービスの作成 onBindの書き換え 通知出力用メソッドの作成 開始処理 サービスの起動 サービスの停止 メッセージのやり取り(送信) メッセージのやり取り(受信) おまけ New
Androidのセンサーは、機種によって対応の有無が違っており注意が必要です。また、使いどころが難しいので、なんだかんだでうまく活用しているアプリが少ないのが現状です。レイアウト MainActivity 回転抑制
Android6.0以降にはカメラやストレージアクセスなど、実行後にユーザから権限許可を受ける必要があります。Activityのコールバック等があるため、これを記述するのはそれなりに面倒です。 ここでは汎用的に使える権限許可のソースコードを提示します。Permission.java MainActivit.java 動作に関して
UnityからAndroidStudioにエクスポートプロジェクトでFragmentを使用する方法
UnityからAndroidStudio用にエクスポートされたプロジェクトは、UnityPlayerというViewクラスが貼り付けられたActivityが生成される。このActivityは特殊なものではないので、自由にカスタマイズすることができる。 今回はこのUnityPlayerをFragmentに貼り付けることによって、Fragment上でUnityを表示させる部分を解説する。Fragmentを使うために、ライブラリを追加 UnityPlayerActivityの基本クラスの入れ替え UnityPlayerActivityからUnityPlayerを取り出せるようにする スタイルの変更 フラグメントの作成 レイアウトを普通に読み込ませる 動作確認 戻るボタンを使えるようにする 実は
Windowsのコマンドプロンプトを確実に出すならWindowsキー+Rを押す。するとMS-DOS時代から引き継がれた黒い背景と白い文字のウインドウが出現する。現在ではMicrosoftはPowerShellを推奨しているが、どうしてそうなったと叫びたくなるような面倒な仕様になっており、いまだこのコマンドプロンプトを対象として動くBATファイルが活躍している。 ということで今回はコマンドプロンプト上で動作させるプログラムに関して紹介していく。公式リファレンス BATファイルの作成 基本的な入出力 制御構文
Androidではタイマーはサブスレッド扱いとなる そしてサブスレッドを扱う上で特に注意すべきなのは、UIの操作が一切できないことだ サブスレッドからUIがらみの命令を実行すると例外が発生する サブスレッドからUIをいじるためには、いったんメインスレッドに処理を投げて、メインスレッド側でUIの操作を行う 今回はその内容を説明していくレイアウト ソースコード(エラーが発生するケース) ソースコード(エラー回避) 実行結果
Androidプログラミングにおいて、コードで直接動的にオブジェクトを追加するケースは少ない しかし、少ないとはいえ無いわけではないので、一応使い方は確認しておいた方がいいレイアウトの作成 ソースコード
Fragmentを使えばレイアウトの表示や操作を独立したクラスとして作成することが出来る そのおかげでActivity上に大量にコードを記述する必要がなくなり、複数画面のコードを分散出来るのでコードの見通しがよくなるのだ プロジェクト レイアウト Fragmentの作成 Fragmentのレイアウトの書き換え ソースコード 実行結果
Android端末の設定 Windowsでのドライバ組み込み
最初に表示される画面といきなりの罠 実行 ビルドの高速化
AndroidStudioのダウンロード 初回起動
レイアウトにテキストビューとボタンを追加し、タップされたらテキストを変更するところまで作成する最上位レイアウトの編集 オブジェクトの追加配置 ソースコードの変更(TextViewの更新) ソースコードの変更(Buttonのイベント)
新規プロジェクト
RecyclerViewは複数のデータをリスト表示する場合に利用する似たような機能を持ったクラスとしてListViewがあるが、全ての要素に対してレイアウトが生成されるため効率が良くないのだRecyclerViewでは表示するのに必要な最低限のレイアウトが作られ、スクロール時にはすでに表示した例愛とを再利用するListViewでも同様なのだが、アイテムごとのレイアウトを管理するためにAdapterクラスを作らなければならないソースコード 完成図 RecyclerViewの配置 アイテム用レイアウトの作成 Itemデータ用クラスとAdapterの作成 MainActivityでのRecyclerView初期化処理 タップ処理の追加 データの更新と再表示
WebViewを使うとアプリ上に簡単にWebページが表示可能です。Webのフロントエンドのスキルがあるならば、いっそアプリのUIをこれで作ってしまうことも可能です。レイアウト URLの指定 内部ブラウザの指定 ページの履歴移動 URLをEditTextに表示 URLの直接指定 JavaScriptの有効化 戻るボタン
Androidには様々なイベントがある。その中で一番使うのはタップイベントだろう 開発言語がJavaという都合上、イベント発生時のコールバックはインタフェイスを介すことになる これが見た目を複雑にしてしまう原因だが、どうしようもないので諦めるしかないレイアウト インナークラスで直接書くパターン インナークラスを変数で受け取るパターン Activityで受け取るパターン
Androidのプログラミングは、Googleが過去を振り返らない作り方をしているため、古い情報を参照するとまともに動かないということが多い このサイトの情報もすぐに陳腐化してしまうことだろう Androidに関しては入門書籍としてのお勧めの本は存在しない 気がついたらAndroidStudioの仕様は変更されているからだ Web上で出来る限り最新の情報を探して回るしか無いのだ
プロパティの入出力 排他制御とID生成
GAS側 レイアウト Java側 New
GAS側 Android側の準備 Androidのマニフェストの変更 MainActivity.javaの編集 結果をTextViewに表示する 通信機能の分離
GAS側 Java側
単純なデータ
WebViewでローカルファイルを読み込む方法ですアプリケーション無いのストレージを使うので、パーミッション設定は不要ですassetsフォルダの作成 ファイルの作成 ページの指定 WebViewからJavaScriptを呼び出す JavaScriptからAndroid側の処理を呼び出す
単純データ 配列
セルにフォーマットの適用
AndroidのUnitTestで作成するコンソールプログラム
まずはUnitTestのコンソールで動くプログラムを作り、最低限の動作を作成していきます
ここではAndroidアプリからGASを呼び出す方法を紹介します。やり方は二種類あります。・GASを単純にWebサーバとして扱い、JSON形式でデータのやりとり・GASをAPIサーバとして扱い、権限の管理なども同時に行う 前者の方が簡単に作ることが出来ますが、権限の管理などを自分で行う必要があります。後者は利用手順が少々面倒ですが、Googleアカウントによる権限管理が利用できるので、GoogleAPIとの連携がやりやすくなります。
ログ出力 ログとフォーマット ループによる出力 if文
スクリプトの作成 プロジェクト名の設定 コードの入力 実行方法
データをまとめて出力 データをまとめて出力2 データをまとめて取得 合計の計算 データの検索 データの検索 修正
GASを扱う場合、SpreadSheetをDBのかわりに活用すると効率的です。 ここではSpreadSheetを簡単に扱うためのコードを紹介します。操作用ファンクション スプレッドシートの操作 データの追加 JSON文字列として出力
共通変数 ID処理 データ追加処理 データ追加テスト データの削除 データ削除テスト WEBアプリケーション化
GASはGoogleDriveのアプリケーションとして簡単に追加でき、無料でありながら様々な事が行えるサーバサイドスクリプト環境です。Googleのサービスだけあって、Google系のAPIとの連携が比較的簡単に行える上、作ったプログラムに対して独自のアプリケーションからアクセスすることも可能です。 これ一つ覚えれば、何らかのアプリケーションからデータを共有したい場合など、わざわざ独自のサーバを立てる必要がなくなります。
まずはボックスを表示するためのプログラムを作成する。位置やサイズを指定し、目的の場所へ表示させる プログラムから座標データを扱う場合、styleにpx単位で位置情報を指定する。面倒なのがstyleに入っているデータが文字列として扱われることだ。計算するためには常に数値に変換する必要がある この手間をなくすのであれば、別の場所に座標に関するデータを記憶しておくという方法がある。今回はプログラムを単純にするため、値はそのままstyleの中のものを用いるここで重要となるCSSの項目は以下の三つ・position・left/right・width/height positionに関しては、fixedかabsoluteを使用することになる。バックグラウンドに通常のコンテンツを表示し、その上にウインドウシステムを構築する場合は最上位のウインドウに対してfixedを指定すると都合がいい。逆に特定のコンテンツの一部としてウインドウを活用する場合はabsoluteを指定する。ただしabsokuteによる相対指定は、親コンテンツ事態もfixedやabsoluteの属性を持ち、ボックスの位置が更新されている必要がある。これに関してはJavaScriptのためのCSS入門の内容を確認してほしい。 left/rightは位置を指定するだけなので問題は無いと思う。fixedとabsoluteで位置が絶対か相対かがことなることにだけ注意すること。 width/heightは幅と高さを指定するだけなのだが、やはり注意事項がある。ここでは出てきていないbox-sizing属性だ。基本的にはborder-boxを指定しておけば、面倒な状況にはならずにすむ。出力結果 Test01.html
GitHub上にリポジトリの作成 SourceTreeからリモートの設定 ブランチをプッシュ プッシュ、プル、フェッチ
アプリケーション Webサービス
日本語版Eclipseのダウンロード Eclipseの展開 Eclipseの起動 プロジェクトの作成 スタートアップクラスの作成 プログラムの実行 デバッグ ショートカットなど 操作動画
種類と構造 基本コード 参照型とObject
分岐 繰り返し
Javaのプログラムを使って、チュートリアル的に利用の仕方を確認するJavaのコードを入力 SouceTreeの操作 追加コミットとソースの巻き戻し ブランチの追加と枝分かれ
Gitを扱うためのソフト(Windows)
変数の型 変数の扱い 変数の扱い2 文字列と結合 文字列と結合2 四則演算と余り 演算子の優先順位1 演算子の優先順位2
Eclipseのインストールから基礎文法までの解説Javaの概要
スタートアップクラス 標準出力 デバッグ
フレームウインドウを表示するサンプルだ。ウインドウの移動の他に、フレームを引っ張ってサイズを変更する部分も含め、重ね合わせも順位の変更も行っている。 今回はタブレットやスマートフォンのタッチパネルのイベントも含んでいる。マウスのイベントとは座標の取り方が違うので注意が必要だ。 極力ソースコードの量を削るため頑張ったものの、それなりのコード量になってしまった。出力結果 Test03.html
マウスのイベントを受け取って、ウインドウの移動処理を行う。マウスをクリックしたときに座標を記憶し、マウスの移動とともにウインドウの座標を変え、マウスが離されたら移動処理を解除する。この処理のため、移動ノードの情報を記憶する共通変数が必要となる。 クリックの処理はウインドウのノードで処理するが、移動と離された場合のイベントはブラウザのクライアント領域全体に対して行う。出力結果 Test02.html
PHPについて 言語の種類 サーバとクライアント
PHPのDateの書式に関する部分である実際に使う場合はDateよりもタイムゾーンが個別に設定できるDateTimeの使用を推奨する混沌の書式 PHPの定数として用意されている書式 用意するプログラム 各種ブラウザごとの結果 まとめ
プログラム系技術情報
掲示板はあらゆるWebシステムの基礎だ。 これを自分の力で作れるようになれば、大抵のシステムは実装可能となる。世の中のWebシステムは掲示板の変形に過ぎないからだ掲示板を作る上で必要なこと PDOのDBアクセス 掲示板用のスタイルシート 掲示板(ページ遷移あり) 掲示板(ページ遷移なし) 大抵なんとかなる
PHPの命令は数が多すぎて、一つ一つ解説していったらシャレにならないということでWebアプリを作る上で、最低限知っておくべき命令を解説するecho print printf sprintf
if for while switch
四則演算と余りと累乗 比較演算子 文字列演算子 ビット演算子 論理演算子
フレームワークとは 代表的なフレームワーク このサイトで利用しているフレームワーク MVC
関数の作成と利用 可変引数 可変引数の逆 参照渡し 参照渡しに関して
基本文法を学ぶ前に、PHPでどんなことが出来るのかを確認する実行環境を用意しておくことをお勧めする基本動作 フォームの利用
サンプルソースコード https://github.com/mofon001/PHPTest正確な情報は公式のドキュメントを読むのが確実である
本番環境のOS 本番環境のサービス 開発用テスト環境
フロントエンドでTypeScriptを利用するための環境構築(非モジュールバンドラ版)
フロントエンド開発にTypeScriptを用いようと思っても、最初に何をすれば良いのか分かり辛いため、意外に高いハードルがあるのが現状です。 開発であらゆる便利機能を利用し、フル装備の環境を作るならWebPackのようなモジュールバンドラを使用することになりますが、設定内容や必要とするプラグインの情報量が多すぎて、最初からそれをやると大量の死人を出すことになります。 ここではJavaScriptからTypeScriptに移行する過程で、余計な機能などを一切入れず、コンパイラのみで行う最低限の設定内容を紹介します。フロントエンド開発に関して 開発準備とサンプルプログラムの実行
Node.js自体のインストールに関しては、サーバ構築系のCentOSとUbuntuの項目を参照してください。Windowsに関してはこのサイトで解説しなくても、VSCodeとNode.jsのインストールプログラムを実行するだけなので問題ないと思われます。TypeScriptのインストール
言語の選択 TypeScriptによる両面開発の利点 両面開発で気を付けるべきこと 最終的な開発環境とビルド手順 利点は大きいが移行するまでの壁も大きい
プログラミング言語やアプリケーションサーバ系の内容
1.はじめに 2.フロントエンド開発では結局必要になるWebPack 3.バックエンドのTypeScriptをコンパイル済みにすべきかどうか 4.フレームワークのパッケージ化
1.はじめに 2.Node.jsによる完全包囲 3.異世界転移のJavaScriptと自らを縛るTypeScript 4.PHPからNode.jsへの移植作業とその理由 5.Node.jsの特徴 6.非同期地獄と入門と門前 7.TypeScriptと流星 8.必要となる知識 9.次回の予定
Node.jsとTypeScriptによる高速かつ軽量なWebシステム構築
ここのシステムの制作話をまとめて行く予定です。
VisualStudioCode SourceTree Snipping tool draw.io RLogin A5:SQL Mk-2
オブジェクト指向にクラスはいらない オブジェクト指向の重要な要素 機能の明確な分割とそこで発生する問題 意思の力、それがオブジェクト指向だ
インストール サンプルアプリケーションの作成 nginxの設定
ここではPHP7.3をnginx経由で使えるようにしますインストール 起動設定 nginx側の設定 動作確認
Windowsのプロンプトで操作していると、色が見えにくかったりカーソルが消えたりするので、sshを使えるようにすることをオススメします。インストール 起動設定等 パスワード認証の許可 公開鍵による認証 接続方法
WSLを有効にする Ubuntuのインストール 起動方法 最初に行うコマンド
Let's Encryptによるhttps環境の構築2(自動設定)
こちらはMyDNSの公式プログラムを利用して、ワイルドカードの証明書を自動取得する方法です最小限の労力でhttps化するのなら、こちらが近道です前提条件として必要なもの MyDNSの公式プログラムのインストール MyDNSのアカウント設定 証明書の発行
PHPを利用するに当たってApacheであればモジュールとして内部に組み込むことができる一方nginxはphp-fpmを別に起動して連携する方式となるphp-fpmのインストール php-fpmの起動と有効化 php-fpmにnginxと連携するための設定を行う nginxからphp-fpmに接続するための設定 確認方法
確認用にコンテンツを2種類用意するVirtualHost用コンテンツを用意する nginxの設定 ブラウザで確認
インストールと起動 設定ファイルなど 動作確認 トップページの内容変更
一昔前はWebサーバと言えばApacheだったが、軽量で高速に動作するサービスが求められnginxが利用されることが増えている ここではnginxの基本的な設定方法を紹介する
インストール 起動設定 設定ファイルの場所 ユーザの作成 外部接続の許可
Webコンテンツに対するアクセスを行う場合使われるプロトコルはhttpかhttpsである。httpsは暗号化されているため、セキュリティ面で使用が推奨されている。 ただしhttpsを使うためには、認証局(CA)に証明書を登録しなければならない。有料のCAを使うと年間に数万円の費用が発生する。これを無料で行ってくれるのがLet's Encryptである。 Let's Encryptで発行した証明書は、ドメインに関する操作権限は確認するものの、発行先の身元の証明は一切無い。ドメイン所有者との通信を保証することだけが目的となる。必要なものをインストールする VirtualHostのデータを削除 証明書の作成 VirtualHostの設定 証明書の定期更新
UbuntuでNode.jsの12系統を使用し、Nginxと連携するところまでを解説するインストール インストール結果の確認 テストアプリケーションの作成 Nginxの設定 結果の確認
「ブログリーダー」を活用して、空雲さんをフォローしませんか?
指定した記事をブログ村の中で非表示にしたり、削除したりできます。非表示の場合は、再度表示に戻せます。
画像が取得されていないときは、ブログ側にOGP(メタタグ)の設置が必要になる場合があります。