-
DXとは
デジタル化をしてビジネスに手を加えて儲ける仕組みをつくること。
IT化したことで発生したデータをさらに活用しビジネスを生み出すこと。
・アナログ業務をデジタル化:デジタイゼーション(これは昔のIT化)
・データをクラウドにあげる。:デジタライゼーション
・データを活用し新しいビジネス:デジタルフォーメーション(DX)
と定義しているが、ひっくるめてDXと定義してもよい。従来のシステム
・機能ファースト:機能を活用して効率化
DX志向のシステム
・データファースト:データを活用して効率化データとビジネスのやりとりのことをUXという。
そしてそれを続けるとDXになる。
DX=データ x UX x ビジネス
DXはデジタル化、IT化で終わらないようにする点が異なる。
DXはシステム開発ではなく、ビジネス開発のことと言える。・・・ぶっちゃけ今のデジタル化、IT化の範囲でも同じようにやっている。
IT化、デジタル化との違いはほぼない。
IT業界は異なる言葉で定義したがる傾向がある。 -
DXのXとは
デジタルトランスフォーメーション
海外では、トランスフォーメーションのことを「X」とよぶ。
【WordPress】WordPressテーマ変更
WordPressを入れ直したので、外観-テーマをTwenty Seventeenに変更しました。
それに伴い、デザインをカスタマイズしています。
-
アーカイブを変更
トップページが全文表示から抜粋表示に変更となります。
archive.phpget_template_part( 'template-parts/post/content', get_post_format() ); ↓ get_template_part( 'template-parts/post/content', 'excerpt' );
-
「投稿」文字を削除
記事の上にある「投稿」の文字を削除します。
index.php以下を削除 <header class="page-header"> <h2 class="page-title"><?php _e( 'Posts', 'twentyseventeen' ); ?></h2> </header>
-
「カテゴリ」文字を削除
記事の上にある「カテゴリ」の文字を削除します。
archive.php以下を削除 <?php if ( have_posts() ) : ?> <header class="page-header"> <?php the_archive_title( '<h1 class="page-title">', '</h1>' ); the_archive_description( '<div class="taxonomy-description">', '</div>' ); ?> </header><!-- .page-header --> <?php endif; ?>
-
パンくずリストの追加(未実施)
fanction.php以下を一番下に追加 function breadcrumb(){ global $post;$str =''; if(!is_home()&&!is_admin()){ $str.= '<div id="breadcrumb" class="cf"><div itemscope itemtype="http://data-vocabulary.org/Breadcrumb" style="display:table-cell;">'; $str.= '<a href="'. home_url() .'" itemprop="url"><span itemprop="title">ホーム</span></a> > </div>'; if(is_category()) { $cat = get_queried_object(); if($cat -> parent != 0){ $ancestors = array_reverse(get_ancestors( $cat -> cat_ID, 'category' )); foreach($ancestors as $ancestor){ $str.='<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb" style="display:table-cell;"><a href="'. get_category_link($ancestor) .'" itemprop="url"><span itemprop="title">'. get_cat_name($ancestor) .'</span></a> > </div>'; } } $str.='<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb" style="display:table-cell;"><a href="'. get_category_link($cat -> term_id). '" itemprop="url"><span itemprop="title">'. $cat-> cat_name . '</span></a> > </div>'; }elseif(is_page()){ if($post -> post_parent != 0 ){ $ancestors = array_reverse(get_post_ancestors( $post->ID )); foreach($ancestors as $ancestor){ $str.='<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb" style="display:table-cell;"><a href="'. get_permalink($ancestor).'" itemprop="url"><span itemprop="title">'. get_the_title($ancestor) .'</span></a> > </div>'; } } }elseif(is_single()){ $categories = get_the_category($post->ID); $cat = $categories[0]; if($cat -> parent != 0){ $ancestors = array_reverse(get_ancestors( $cat -> cat_ID, 'category' )); foreach($ancestors as $ancestor){ $str.='<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb" style="display:table-cell;"><a href="'. get_category_link($ancestor).'" itemprop="url"><span itemprop="title">'. get_cat_name($ancestor). '</span></a>→</div>'; } } $str.='<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb" style="display:table-cell;"><a href="'. get_category_link($cat -> term_id). '" itemprop="url"><span itemprop="title">'. $cat-> cat_name . '</span></a> > </div>'; }else{ $str.='<div>'. wp_title('', false) .'</div>'; } $str.='</div>'; } echo $str; }
以下をパンくずリストを表示したいphp(page.phpやsingle.phpなど)に追加 <?php breadcrumb(); ?>
【サクラエディタ】正規表現でキャメルケースとスネークケースの変換
文字形式の説明。
-
キャメルケース
単語の先頭を大文字にする命名規則。
全ての単語の先頭を大文字にするのがアッパーキャメルケース、または、パスカルケースと呼ばれる。
JavaのBeanでset/getを除外した名称で使用されることが多い。
例)CamelCase先頭の単語だけ小文字にするのがローワーキャメルケースと呼ばれる。
JavaやJavaScriptのメソッド名で使用されることが多い。
例)camelCase
-
スネークケース
単語の間をアンダーバーでつなぐ命名規則。
DBの値に使用されることが多い。
例)snake_case、SNAKE_CASE
-
アッパーキャメルケースからスネークケースに変換
・検索条件:”([A-Z])”
・置換:”_\L$1″
サクラエディタで大文字、小文字を区別して検索チェックする。
変換後に先頭の「_」は後から削除する。
例)CamelCase → _camel_case
-
スネークケースをアッパーキャメルケースに変換
・検索条件:”(_|^)(.)”
・置換:”\u$2″
サクラエディタで大文字、小文字を区別して検索チェックする。
先頭またはアンダースコアに続く1文字を置換対象にする。
対象となる文字は$2で参照できるので、これを\uで大文字に変換する。
例)camel_case → CamelCase
【bat】Oracleサービスとリスナー起動停止
Oracleサービスとリスナーをbatファイルで起動する。
起動順序としてはリスナー起動、サービス起動となる。
停止順序は逆順となる。
Oracleリスナー起動@echo off setlocal REM Oracleリスナー起動 set ROOT_DIR=D:/batch set BIN_DIR=%ROOT_DIR%/bin set LOG_FILE=%ROOT_DIR%log/%~n0.log echo [ INFO ] %DATE% %TIME% Oracleリスナー起動開始>>%LOG_FILE% cd D:/Product/Ofs41_1\FailSafe\Client FSCMD ONLINERESORCE FslDBServer /CLUSTER=DBServer>>%LOG_FILE% if NOT %ERRORLEVEL%==0 goto ERR_END timeout /t 120 /nobreak echo [ INFO ] %DATE% %TIME% Oracleリスナー起動終了>>%LOG_FILE% exit /b :ERROR_END echo [ ERROR ] %DATE% %TIME% Oracleリスナー起動失敗>>%LOG_FILE% exit endlocalOracleサービス起動@echo off setlocal REM Oracleサービスー起動 set ROOT_DIR=D:/batch set BIN_DIR=%ROOT_DIR%/bin set LOG_FILE=%ROOT_DIR%log/%~n0.log echo [ INFO ] %DATE% %TIME% Oracleサービス起動開始>>%LOG_FILE% cd D:/Product/Ofs41_1\FailSafe\Client FSCMD ONLINERESORCE IFSDB /CLUSTER=DBServer>>%LOG_FILE% if NOT %ERRORLEVEL%==0 goto ERR_END timeout /t 120 /nobreak echo [ INFO ] %DATE% %TIME% Oracleサービス起動終了>>%LOG_FILE% exit /b :ERROR_END echo [ ERROR ] %DATE% %TIME% Oracleサービス起動失敗>>%LOG_FILE% exit endlocal
【bat】サーバ再起動
batファイルでサーバを再起動させます。
@echo off setlocal set ROOT_DIR=D:/batch set BIN_DIR=%ROOT_DIR%/bin set LOG_FILE=%ROOT_DIR%log/%~n0.log echo [ INFO ] %DATE% %TIME% サーバ再起動開始>>%LOG_FILE% SHUTDOWN /r /f /c "batファイルによるリブート" if NOT %ERRORLEVEL%==0 goto ERR_END echo [ INFO ] %DATE% %TIME% サーバ再起動終了>>%LOG_FILE% exit /b :ERR_END echo [ ERROR ] %DATE% %TIME% サーバ再起動失敗>>%LOG_FILE% exit /b endlocal
【bat】共有フォルダへの接続
共有フォルダへの接続をbatファイルで自動化する。
[bat]
@echo off
rem 接続解除
net use /delete \\server\dir$ /yes
rem 接続
net use /presistent:yes “\\server\dir” /user:testuser@testdom.local password
[/bat]
上記のbatファイルをタスクスケジューラでSYSTEMユーザ実行などで登録する。
起動するとSYSTEMユーザが「\\server\dir」に接続できるようになる。
net useの「/user」はあくまでも共有フォルダへ接続するための
ユーザIDとパスワードになる。
上記の例でいうと「testuser」が共有フォルダに接続できるようになるわけではない点に注意。
(元々、ログインするためのユーザなので勘違いしやすい)
【bat】サービス起動バッチ
サービスの状態を確認し、「STATE」になっている場合、
サービスを起動します。
前提
サービス名は「TES_SER」とします。
FOR /f "usebackq tokens=1,2,3,4,5 delims=: " %%A IN (`sc query "TES_SER" ^| findstr -i "STATE"`) DO if "%%A"=="STATE" if "%%C"=="STOPPED" sc start TES_SER TES_SERの起動引数(任意)
【PowerShell】ファイルサイズが大きいファイルの分割
ファイルサイズが2GBを超えるファイルは開けないため、ファイルを分割します。
Linuxではsplitがありますが、windowsでは存在しないコマンドのため、
他の方法でファイルを分割します。
前提
ファイルが「C:/log/test.log」にあるとし、
このファイルを10万行ごとのファイルに分割する。
cd C:/log $i=0; cat ./test.log -ReadCount 100000 | % {$_ > test$i.log; $i++;
【Oracle】PLSQLでBLOBデータを出力
PLSQLでBLOBデータを出力します。
CREATE OR REPLACE PROCEDURE testBlobOut (kanriNo IN VARHCAR) AS CURSOR C_CONTROL IS SELECT TB1.IMAGE_NAME, TB1.IMAGE FROM SAMPLE TB1 WHERE TB1.KANRI_NO = kanriNo; v_blob_locater BLOB; v_offset INTEGER := 1; v_buffer LONG RAW; v_file_buffer_size INTEGER := 32000; v_amount INTEGER := 32000; v_totalsize INTEGER; v_filetype UTL_FILE.FILE_TYPE; v_filename VARCHAR2(1000) := ''; v_openmode VARHCAR2(2) := 'wb'; v_dir VARCHAR2(1000) := 'C/temp'; BEGIN OPEN C_CONTROL; LOOP FETCH C_CONTROL INTO v_blob_locater, v_filename; EXIT WHEN C_CONTROL%NOTFOUND; DBMS_OUTPUT.PUTLINE('fileName:' || v_filename); v_totalsize := DBMS_LOB.GETLENGTH(v_blob_locater); v_filetype := UTL_FILE.FOPEN( v_dir, v_filename, v_openmode, v_file_buffer_size ); while v_offset < v_totalsize loop if v_offset + v_amount > v_totalsize then v_amount := v_totalsize - v_offset + 1; end if; DBMS_LOB.READ( v_blob_locater, v_amount, v_offset, v_buffer ); UTL_FILE.PUT_RAW( v_filetype, v_buffer, true ); v_offset := v_offset + v_amount; DBMS_OUTPUT.PUT_LINE('Offset :' || v_offset); end loop; UTL_FILE.FFLUSH(v_filetype); UTL_FILE.FCLOSE(v_filetype); DBMS_OUTPUT.PUT_LINE('fileSize :' || v_totalsize); END LOOP; CLOSE C_CONTROL; EXCEPTION WHEN OTHERS THEN UTL_FILE.FCLOSE_ALL; RAISE; END; /
PLSQLの実行方法
set serveroutput ON execute testBlobOut('000010');
【Java】PDFからJPG変換
PDFファイルに利用されている画像をJPG変換します。
以下のライブラリが必要です。
pdfbox-2.0.7.jar
commons-logging-1.2.jar
import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.Iterator; import javax.imageio.ImageIO; import org.apache.pdfbox.cos.COSName; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageTree; import org.apache.pdfbox.pdmodel.PDResources; import org.apache.pdfbox.pdmodel.graphics.PDXObject; import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject; public class TestPDFBoxPdfToJpg { public static void main(String[] args) { //PDFドキュメントをロード try (PDDocument document = PDDocument.load(new File("D:\\test\\pdf\\e-ticket.pdf"));) { //ページのリストから最初の1ページを取得する PDPageTree pageTree = document.getDocumentCatalog().getPages(); PDPage page = pageTree.get(0); //ページからリソースを取得し、最初のイメージを取得する。 PDResources resources = page.getResources(); Iterator<COSName> ite = resources.getXObjectNames().iterator(); int i = 0; while (ite.hasNext()) { COSName name = ite.next(); //取得したイメージをファイルに出力 PDXObject xobject = resources.getXObject(name); if (xobject instanceof PDImageXObject) { PDImageXObject image2 = (PDImageXObject) resources.getXObject(name); ImageIO.write(image2.getImage(), "jpg", new FileOutputStream("D:\\test\\pdf\\e-ticket" + i + ".jpg")); } i++; } } catch (IOException e) { e.printStackTrace(); } } }