-
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.php1
get_template_part( 'template-parts/post/content', get_post_format() );
2
↓
3
get_template_part( 'template-parts/post/content', 'excerpt' );
-
「投稿」文字を削除
記事の上にある「投稿」の文字を削除します。
index.php1
以下を削除
2
<
header
class
=
"page-header"
>
3
<
h2
class
=
"page-title"
><?
php
_e( 'Posts', 'twentyseventeen' ); ?></
h2
>
4
</
header
>
-
「カテゴリ」文字を削除
記事の上にある「カテゴリ」の文字を削除します。
archive.php1
以下を削除
2
<?
php
if ( have_posts() ) : ?>
3
<
header
class
=
"page-header"
>
4
<?
php
5
the_archive_title( '<h1
class
=
"page-title"
>', '</
h1
>' );
6
the_archive_description( '<
div
class
=
"taxonomy-description"
>', '</
div
>' );
7
?>
8
</
header
>
<!-- .page-header -->
9
<?
php
endif; ?>
-
パンくずリストの追加(未実施)
fanction.php1
以下を一番下に追加
2
function breadcrumb(){
3
global $post;$str ='';
4
if(!is_home()&&!is_admin()){
5
$str.= '<
div
id
=
"breadcrumb"
class
=
"cf"
><
div
itemscope
itemtype
=
"http://data-vocabulary.org/Breadcrumb"
style
=
"display:table-cell;"
>';
6
$str.= '<
a
href
=
"'. home_url() .'"
itemprop
=
"url"
><
span
itemprop
=
"title"
>ホーム</
span
></
a
> > </
div
>';
7
if(is_category()) {
8
$cat = get_queried_object();
9
if($cat -> parent != 0){
10
$ancestors = array_reverse(get_ancestors( $cat -> cat_ID, 'category' ));
11
foreach($ancestors as $ancestor){
12
$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
>';
13
}
14
}
15
$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
>';
16
}elseif(is_page()){
17
if($post -> post_parent != 0 ){
18
$ancestors = array_reverse(get_post_ancestors( $post->ID ));
19
foreach($ancestors as $ancestor){
20
$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
>';
21
}
22
}
23
}elseif(is_single()){
24
$categories = get_the_category($post->ID);
25
$cat = $categories[0];
26
if($cat -> parent != 0){
27
$ancestors = array_reverse(get_ancestors( $cat -> cat_ID, 'category' ));
28
foreach($ancestors as $ancestor){
29
$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
>';
30
}
31
}
32
$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
>';
33
}else{
34
$str.='<
div
>'. wp_title('', false) .'</
div
>';
35
}
36
$str.='</
div
>';
37
}
38
echo $str;
39
}
1
以下をパンくずリストを表示したいphp(page.phpやsingle.phpなど)に追加
2
<?
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リスナー起動
1
@
echo
off
2
setlocal
3
REM Oracleリスナー起動
4
set
ROOT_DIR=D:/batch
5
set
BIN_DIR=%ROOT_DIR%/bin
6
set
LOG_FILE=%ROOT_DIR%log/%~n0.log
7
8
echo
[ INFO ] %DATE% %TIME% Oracleリスナー起動開始>>%LOG_FILE%
9
cd
D:/Product/Ofs41_1\FailSafe\Client
10
FSCMD ONLINERESORCE FslDBServer /CLUSTER=DBServer>>%LOG_FILE%
11
12
if
NOT %ERRORLEVEL%==0 goto ERR_END
13
14
timeout /t 120 /nobreak
15
16
echo
[ INFO ] %DATE% %TIME% Oracleリスナー起動終了>>%LOG_FILE%
17
exit
/b
18
19
:ERROR_END
20
echo
[ ERROR ] %DATE% %TIME% Oracleリスナー起動失敗>>%LOG_FILE%
21
exit
22
23
endlocal
Oracleサービス起動
1
@
echo
off
2
setlocal
3
REM Oracleサービスー起動
4
set
ROOT_DIR=D:/batch
5
set
BIN_DIR=%ROOT_DIR%/bin
6
set
LOG_FILE=%ROOT_DIR%log/%~n0.log
7
8
echo
[ INFO ] %DATE% %TIME% Oracleサービス起動開始>>%LOG_FILE%
9
cd
D:/Product/Ofs41_1\FailSafe\Client
10
FSCMD ONLINERESORCE IFSDB /CLUSTER=DBServer>>%LOG_FILE%
11
12
if
NOT %ERRORLEVEL%==0 goto ERR_END
13
14
timeout /t 120 /nobreak
15
16
echo
[ INFO ] %DATE% %TIME% Oracleサービス起動終了>>%LOG_FILE%
17
exit
/b
18
19
:ERROR_END
20
echo
[ ERROR ] %DATE% %TIME% Oracleサービス起動失敗>>%LOG_FILE%
21
exit
22
23
endlocal
【bat】サーバ再起動
batファイルでサーバを再起動させます。
1 | @ echo off |
2 | setlocal |
3 |
4 | set ROOT_DIR=D:/batch |
5 | set BIN_DIR=%ROOT_DIR%/bin |
6 | set LOG_FILE=%ROOT_DIR%log/%~n0.log |
7 |
8 | echo [ INFO ] %DATE% %TIME% サーバ再起動開始>>%LOG_FILE% |
9 | SHUTDOWN /r /f /c "batファイルによるリブート" |
10 | if NOT %ERRORLEVEL%==0 goto ERR_END |
11 | echo [ INFO ] %DATE% %TIME% サーバ再起動終了>>%LOG_FILE% |
12 | exit /b |
13 |
14 | :ERR_END |
15 | echo [ ERROR ] %DATE% %TIME% サーバ再起動失敗>>%LOG_FILE% |
16 | exit /b |
17 |
18 | 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」とします。
1 | 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万行ごとのファイルに分割する。
1 | cd C:/log |
2 | $i=0; cat ./ test .log -ReadCount 100000 | % {$_ > test $i.log; $i++; |
【Oracle】PLSQLでBLOBデータを出力
PLSQLでBLOBデータを出力します。
1 | CREATE OR REPLACE PROCEDURE testBlobOut (kanriNo IN VARHCAR) AS |
2 | CURSOR C_CONTROL IS |
3 | SELECT |
4 | TB1.IMAGE_NAME, |
5 | TB1.IMAGE |
6 | FROM |
7 | SAMPLE TB1 |
8 | WHERE |
9 | TB1.KANRI_NO = kanriNo; |
10 |
11 | v_blob_locater BLOB; |
12 | v_offset INTEGER := 1; |
13 | v_buffer LONG RAW; |
14 | v_file_buffer_size INTEGER := 32000; |
15 | v_amount INTEGER := 32000; |
16 | v_totalsize INTEGER ; |
17 | v_filetype UTL_FILE.FILE_TYPE; |
18 | v_filename VARCHAR2(1000) := '' ; |
19 | v_openmode VARHCAR2(2) := 'wb' ; |
20 | v_dir VARCHAR2(1000) := 'C/temp' ; |
21 |
22 | BEGIN |
23 | OPEN C_CONTROL; |
24 | LOOP |
25 | FETCH C_CONTROL INTO v_blob_locater, v_filename; |
26 | EXIT WHEN C_CONTROL%NOTFOUND; |
27 | DBMS_OUTPUT.PUTLINE( 'fileName:' || v_filename); |
28 | v_totalsize := DBMS_LOB.GETLENGTH(v_blob_locater); |
29 | v_filetype := UTL_FILE.FOPEN( |
30 | v_dir, |
31 | v_filename, |
32 | v_openmode, |
33 | v_file_buffer_size |
34 | ); |
35 | while v_offset < v_totalsize loop |
36 | if v_offset + v_amount > v_totalsize then |
37 | v_amount := v_totalsize - v_offset + 1; |
38 | end if; |
39 | DBMS_LOB. READ ( |
40 | v_blob_locater, |
41 | v_amount, |
42 | v_offset, |
43 | v_buffer |
44 | ); |
45 | UTL_FILE.PUT_RAW( |
46 | v_filetype, |
47 | v_buffer, |
48 | true |
49 | ); |
50 | v_offset := v_offset + v_amount; |
51 | DBMS_OUTPUT.PUT_LINE( 'Offset :' || v_offset); |
52 | end loop; |
53 | UTL_FILE.FFLUSH(v_filetype); |
54 | UTL_FILE.FCLOSE(v_filetype); |
55 |
56 | DBMS_OUTPUT.PUT_LINE( 'fileSize :' || v_totalsize); |
57 | END LOOP; |
58 | CLOSE C_CONTROL; |
59 | EXCEPTION WHEN OTHERS THEN |
60 | UTL_FILE.FCLOSE_ALL; |
61 | RAISE; |
62 | END ; |
63 | / |
PLSQLの実行方法
1 | set serveroutput ON |
2 | execute testBlobOut( '000010' ); |
【Java】PDFからJPG変換
PDFファイルに利用されている画像をJPG変換します。
以下のライブラリが必要です。
pdfbox-2.0.7.jar
commons-logging-1.2.jar
1 | import java.io.File; |
2 | import java.io.FileOutputStream; |
3 | import java.io.IOException; |
4 | import java.util.Iterator; |
5 |
6 | import javax.imageio.ImageIO; |
7 |
8 | import org.apache.pdfbox.cos.COSName; |
9 | import org.apache.pdfbox.pdmodel.PDDocument; |
10 | import org.apache.pdfbox.pdmodel.PDPage; |
11 | import org.apache.pdfbox.pdmodel.PDPageTree; |
12 | import org.apache.pdfbox.pdmodel.PDResources; |
13 | import org.apache.pdfbox.pdmodel.graphics.PDXObject; |
14 | import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject; |
15 |
16 | public class TestPDFBoxPdfToJpg { |
17 |
18 | public static void main(String[] args) { |
19 | //PDFドキュメントをロード |
20 | try (PDDocument document = PDDocument.load( new File( "D:\\test\\pdf\\e-ticket.pdf" ));) { |
21 |
22 | //ページのリストから最初の1ページを取得する |
23 | PDPageTree pageTree = document.getDocumentCatalog().getPages(); |
24 | PDPage page = pageTree.get( 0 ); |
25 |
26 | //ページからリソースを取得し、最初のイメージを取得する。 |
27 | PDResources resources = page.getResources(); |
28 | Iterator<COSName> ite = resources.getXObjectNames().iterator(); |
29 |
30 | int i = 0 ; |
31 |
32 | while (ite.hasNext()) { |
33 |
34 | COSName name = ite.next(); |
35 |
36 | //取得したイメージをファイルに出力 |
37 | PDXObject xobject = resources.getXObject(name); |
38 |
39 | if (xobject instanceof PDImageXObject) { |
40 | PDImageXObject image2 = (PDImageXObject) resources.getXObject(name); |
41 | ImageIO.write(image2.getImage(), "jpg" , new FileOutputStream( "D:\\test\\pdf\\e-ticket" + i + ".jpg" )); |
42 | } |
43 |
44 | i++; |
45 | } |
46 |
47 | } catch (IOException e) { |
48 | e.printStackTrace(); |
49 | } |
50 | } |
51 | } |