こんにちは、ねこです。

自称プログラマのおばちゃんのブログです。いろいろあるよねぇ~。

Qiitaに技術面を移行しようかと思ってます。もち初心者用です、わたし初心者なんで。

2020-07-19 02:47:31 | プログラム 勉強

【スクロールアップ・ダウン・ボタンの作り方】

こちらからどうぞ。https://qiita.com/beerneko/items/c0fcf0a8c9b74d9b7db6 (書いてることはおなじです。)

いろいろと探してみて、一番スムーズにスクロールしてくれるスクロール・トゥ・トップ、そしてダウンのやり方をご紹介します。そのままコピペして使ってもしっかり動きます。

CSSの設定

    .back-to-top {
        position: fixed;
        left: 0;
        bottom: 85px;
        display: none;
        -webkit-transform: rotate(270deg);
        -moz-transform: rotate(270deg);
        -o-transform: rotate(270deg);
        -ms-transform: rotate(270deg);
        transform: rotate(270deg);
    }

    .back-to-down {
        position: fixed;
        right: 0;
        bottom: 85px;
        display: none;
        -webkit-transform: rotate(90deg);
        -moz-transform: rotate(90deg);
        -o-transform: rotate(90deg);
        -ms-transform: rotate(90deg);
        transform: rotate(90deg);
    }

「rotate(90deg)」で飛行機のアイコンが上向きに飛ぶようにしてます。

javascript(jQuery)

    $(document).ready(function(){
        $(window).scroll(function () {
                if ($(this).scrollTop() > 500) {
                    $('#back-to-top').fadeIn();
                } else {
                    $('#back-to-top').fadeOut();
                }
            });
            $('#back-to-top').click(function () {
                $('body,html').animate({
                    scrollTop: 0
                }, 400);
                return false;
            });
    });
    $(document).ready(function(){
        $(window).scroll(function () {
            if (($(this).scrollTop()+800) > $('#down').height()) {
                $('#back-to-down').fadeOut();
            } else {
                $('#back-to-down').fadeIn();
            }
            });
            $('#back-to-down').click(function () {
                $('body,html').animate({
                    scrollTop: $('#down').height()
                }, 400);
                return false;
            });
    });

HTML

<div class="container" id="down">

<div class="container">

<main role="main">

</main>

</div>

<a id="back-to-top" href="#" class="btn btn-dark btn-sm back-to-top" role="button">Top 

<a id="back-to-down" href="#" class="btn btn-dark btn-sm back-to-down" role="button">Down 

</div>

ここでは、最初の「class="container"」ですべて真ん中に持ってきて、次の「class="container"」でメインを真ん中にもってくる。そうするとメインの外側でボタンがついてくれるので、デバイスを選ばず表示してくれると思ってこうしてます。
まだまだCSSわかんないことばかりで大変。
初心者には初心者なりの疑問があります。「こんなこともわからないのか!」となる部分が往々にしてつまずく場所になったります。

実際にどう動くのかはこちらのサイトから「test」のアカウントで入って確認してみてください。
https://oboero3.azurewebsites.net/


Oboero 調子にのってまぁーすっ!!!よかった、使ってくれる人がいて。

2020-07-08 22:48:09 | プログラム 勉強

おひさしぶりです。

昨日の九州大雨、亡くなった方、家屋や家財、その他大切なものを失われた方、心より早く幸せな日常の生活がもどってくることをお祈り申し上げております。

ねこも両親が九州にいるので、本当に心が押しつぶされそうでした。

おりしもこのパンデミックの時期、どうか日本の皆さんが無事にやり過ごせるよう、考えない日はありません。

 

では、気持ちを入れ替えて、はじめまぁーす!

ねこがC# ASP.NET Core Razor Pageをはじめたのが、今年の2月ごろ、SQLサーバのMCSAに受かってからです。

難しかったですな、なぜなら初めてのAzureサービスの構築、C#のお決まりメソッドを自分で見つけて使用、そしてなにより、一番安価でできるアプリをと、考えてつくったから。

ほんと、恥ずかしい話、なんも知らんかったからなぁ。

LaravelでMCVはわかってたつもりだったし、RESTFulも4年ほど前から職場でつかってた。でもね、PHPとASP.NET Coreのくせの違いってあるんですよね。Javaとも少しちがうしね。

Viewの表示がonGetで、レスポンスが必要なのがonPost、そしてonPostであってもリダイレクトされた表示はonGetに戻ってからとか、AjaxはレガシーJavascriptやJQueryでonPostバックできるってこと、それからTASK<>なんてのも知らんかった。そのほか、リターン値だとか、知らんかったことばかりだった。

そして大事なのはセキュリティー、安価でもがっちり固めなければならんのはここでした。

そして出来上がった感想としては、.NET初心者としてはControlとViewが一枚岩となってるRazor Pageがとてもわかりやすかった。

FEなんてのも覚えた。

まだ全然勉強が足りてないのが、LINQとLambda Expression。これ使えるとつよいよねぇー!

次回(覚えてたらですみません。。。)、環境やどんなツールでつくったのか、どんなASP.NET Coreオブジェクトつかってるのか、はたまたアーキテクチャなんかもお伝え出来たらなと思います。

 

パンパカパーンッ!

できました。

そしてユーザー増えました!

日本語も並べて書いて、日本のユーザーにも使ってもらえるようにと思ったんだけど、はい。文字化けするんで、出来ませんでした。とほほ。

だれか教えてくれーっ!

入力や表示は全然オッケーなんだけど、結局システムに組み込んでるエラー表示なんかはエンコードがうまくいかないよねぇ。

後は本日動画をブラッシュアップして、あげて今回のプロジェクトはおしまいっ!

コロナがなくなるまでは、無料で提供続けていけたらなと思います。

日本の皆さん、興味のある人で英語に免疫のある人、使ってみてくださいね。(ねこは英語免疫、まだありません。おばはんなんで、血圧あがります。)

https://oboero3.azurewebsites.net/


OCP#6/働いてないのに、クビになったぁー!

2020-05-20 05:35:48 | プログラム 勉強

。。。ほんとです。

バックグラウンド・チェックまでして、勉強はじめて、で、くびになりました。。。

結構大きな日本のIT会社だったんです。

アメリカに本社があって、そこで働くようになってたんですが、日本の本社のコロナ不景気に対する経費削減が理由だそうです。

だから、クビってわけじゃないんですが、保留ですな。

でも、この人事のアメリカ人がちょっと腹立った。

「始める前でよかったじゃない。。。」だって。

あんた、この間にわたし一つ仕事断ってるがな!

Oracleなんかきらいや!!!

ってなことで、すまん。

これでこのブログのシリーズはおしまいです。

 

ねこよ、がんばれーっ!

コロナで職を失った方々、お気持ちお察しいたします。

どうか、頑張ってください。

もしかしたら、今は新しいアイデアも実現できる時期にあるのかもしれません。

 


OCP#5/Configuring Oracle Net Servicesのビデオを見てみた。

2020-05-16 21:41:30 | プログラム 勉強

【Net Services】

OracleNETとは、Broker Communication Toolsが入っているサーバーとクライアントの中間コミュニケーション・ツールの総称。

必要なものは以下

1.クライアントとサーバーのどちらにもインストールされていること

2.ネットワークがること

3.インターネットがあること

4.(クラウドの開発環境)

何をマネジメントするのか

Communication

Scalability(バンドワイズなど)

Security

Performance(Scalabilityも関係してきますね)

主なツールの種類

1.Location Transparency / Service Repository ➡ これでディレクトリをつくってDNSサーバーのようにアクセスさせることができる。

2.LDAP ➡ 属性(個人名や部署名)で構成するエントリ(関連属性のまとまり)の検索、追加、削除の操作が可能になるので、一か所にデータを保存して、セントラル・マネジメントが可能になる。

3.Firewall Access Control ➡ フィルタリング可能なため、ユーザーのアクセス管理ができる。

 

【Listnerってなに?どう使うの?】サーバサイド

クライアントとサーバーのコミュニケーションのためには、まず実際にクライアントからの要求をきいてやる仕組みを設定しなくちゃなりません。そのためのListner Utility(lsnrctl Utility)です。

設定の仕方

場所:$ORACLE_HOME/network/admin/listner.ora

設定関係:テキストベースでHOSTとPORT、NET MANAGERと一緒に設定できる

Listner =
  ( DESCRIPTION_LIST =
    ( DESCRIPTION =
      ( ADDRESS = ( PROTOCOL = TCP ) ( HOST = localhost ) (POSRT = 1522 ))
      ( ADDRESS = ( PROTOCOL = TCP ) ( KEY = EXTPROC1522 ))
    )
  )

テストの仕方:

Easy コネクトを使ってみましょう。

sqlplus
disconnect
connect system/pa33w0rd//localhost:1522/orcl2 ➡ ユーザー/パスワード//ホスト名:ポートナンバー/DB名
これでオッケー

設定変更

他のポート(8025)でも使えるようにしましょう。

Listner =
  ( DESCRIPTION_LIST =
    ( DESCRIPTION =
      ( ADDRESS = ( PROTOCOL = TCP ) ( HOST = localhost ) (POSRT = 1522 ))
      ( ADDRESS = ( PROTOCOL = TCP ) ( HOST = localhost ) (POSRT = 8025 ))
      ( ADDRESS = ( PROTOCOL = TCP ) ( KEY = EXTPROC1522 ))
    )
  )

 

テストの仕方:

またEasy コネクトを使ってみましょう。

sqlplus
disconnect
connect system/pa33w0rd//localhost:1522/orcl2 ➡ ユーザー/パスワード//ホスト名:ポートナンバー/DB名
これでオッケーじゃないっ!

Listenerを再起動させなきゃならんばい。

 

Listener再起動:

1.コマンドラインから

lsnrctl stop listener
lsnrctl start listener

2.WindowsのサービスマネージャーからTNSListenerを再起動

3.直接マシーンを強制的に再スタートさせる

 

【Registrationってなに?どう使うの?】サーバサイド

Registrationってのは、Listenerの前に「このネットワークをつかうんだよー」ってネットワークを登録してやるこどですね。なので、これをしなければ、Listenerもクライアントからの情報はうけれません。

Registrationする2つの方法

Static - SIDs

LISTSTATIC = ↩ これリスナー
  ( DESCRIPTION_LIST =
    ( DESCRIPTION =
      ( ADDRESS = ( PROTOCOL = TCP ) ( HOST = localhost ) (POSRT = 1522 ))
      ( ADDRESS = ( PROTOCOL = TCP ) ( HOST = localhost ) (POSRT = 8025 )) ↩ これ、ポート増やしただけ。リスナー増やしたわけじゃない。
      ( ADDRESS = ( PROTOCOL = TCP ) ( KEY = EXTPROC1522 ))
    )
  )

上のリスナーを登録するためのRegistration

SID_LIST_LISTSTATIC = ↩ これRegistration ➡ listの名前が最後に来ます。(ほんまかいな。。。)
  ( SID_LIST =
    ( SID_DESC =
      ( SID_NAME = SIDStatic) ➡ どのリスナーが登録されるのか
      ( ORACLE_HOME = C:\app\benfi\virtual\product\12.2.0\dbhome_2 ➡ ホームディレクトリ、どこに実際のファイルがあるか
    )
  ) 
そのほかにもPROGRAMやENVISなどある。

Dynamic - PMON

LISTDYNAMIC = ↩ これリスナー
  ( DESCRIPTION_LIST =
    ( DESCRIPTION =
      ( ADDRESS = ( PROTOCOL = TCP ) ( HOST = localhost ) (POSRT = 2156))
    )
  )

上のリスナーを登録するためのRegistration

sqlplus

alter system set local_listeners=`(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=2156))` scope=both;  ➡ バッククォート
system altered.

disconnect
lsnrctl start LISTDYNAMIC
connect system/pa33w0rd//localhost:2156/orcl2 ➡ ユーザー/パスワード//ホスト名:ポートナンバー/DB名
connected

*そして新しいリスナーを登録すると、当たり前だのクラッカー🎉に、古いリスナーの登録はなくなる。お、この登録とはRegistrationのことです。

 

【Local Namingってなに?どうつかうの?】クライアントサイド

正直言って、まだよーわかりません。。。

とにかく、クライアントサイドにネットワークの主導権を持たせるわけにいかんので、代わりに名前を付けてやってTNSNAMES.oraで名前を管理してやるということです。なので便利だけど、これがなくともデータベースにつながります。

TNSNAMESの種類:

$ORACLE_HOME/network/admin/tnsnames.ora ➡ Windows

$TNS_ADMIN/tnsnames.ora ➡ Windows

$HOME/.tnsnames.ora ➡ Linux

 

設定の仕方:

ORCL2=   ( DISCRIPTION =
    ADDRESS = ( PROTOROL=TCP)(HOST=localhost ) ( PORT=0152 )
       ( CONNECT_DATA =
       ( SERVER = DEDICATED )
      (SERVICE_NAME = orcl2)
    )
  )

もし新しくサービスをくわえるならこのまま上をコピペして名前を変える

MYNEWSERVICE=   ( DISCRIPTION =
    ADDRESS = ( PROTOROL=TCP)(HOST=localhost ) ( PORT=0152 )
       ( CONNECT_DATA =
       ( SERVER = DEDICATED )
      (SERVICE_NAME = orcl2)
    )
  )

 

コネクションの仕方:

sqlplus
connect system/pa33w0rd@MYNEWSERVICE
connected

Dynamic Registration

1.リスナーを書く
LISTENER_ORCL2=
(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))

2.レジスターする
alter system set local_listener='LISTENER_ORCL2' scope=both;

 

【さて、接続をテストしましょ】

1.Loopo Back Test 

NET MANAGERからテストします。

2.tnsping Utility

cmdからtnsping.exeを走らせます。

tnsping mydb 8 ➡ 8回、mydbデータベースへコネクションテストします。