「設定ファイル」を含む日記 RSS

はてなキーワード: 設定ファイルとは

2018-12-18

[][][] phpMyAdminの手動インストール

WebサーバーPHPを5.4から7.2に上げました。

phpMyAdminも入れ替えました。

 

環境CentOSNginxPHP7.2 + MySQL

yumコマンドphpMyAdminをインストールしたら、エラーメッセージが出て、インストールできませんでした。

リポジトリで用意されているパッケージが古いのか?何度かやり直しても、yumインストールできませんでした。

 

手抜きを諦めて、手動でインストールすることにしました。

phpMyAdmin インストール コンパイル Nginx」等のキーワードGoogle検索すると、やり方を解説している記事がたくさんヒットしました。

参考

 

手順

  1. WebサーバーSSHリモートログインする。
  2. phpMyAdminの最新版wgetダウンロードする。
  3. ZIPファイルを展開して、フォルダ名を「phpmyadmin」にリネームする。
  4. /usr/share/phpmyadmin にコピーする。
  5. phpMyAdmin用に、Nginx設定ファイルを追加する。
  6. PHP7のセッションフォルダ確認しておく。
    1. PHP関係設定ファイルphp.ini」や、PHP-FPM設定ファイルwww.conf」の中を確認しておく。
    2. session.save_path = "/var/lib/php/session" という記述有効にする。(コメントアウトされていたら、アンコメントしておく)
  7. Nginx設定ファイルテストして、問題なければ再起動する。
    1. $ service nginx configtest
    2. $ service nginx restart
  8. WebブラウザーでphpMyAdminにアクセスしてみる。
  9. phpMyAdminが無事に開いたら、インストール成功!!!

 

まとめ

phpMyAdminは手動でインストールしても、すごく簡単でした。

将来的にバージョンアップすることも考えると、「/usr/share/phpmyadmin」へ直にコピーするのではなく、他の場所コピーして、「/usr/share/phpmyadmin」はシンボリックリンクにしておけばいいかも。

(今回は面倒なので直接コピーしました。)

2018-12-09

Nginxの設定メモ

解決方法

参考
やったこ

Ubuntuで以下のようにコマンドを実行してみました。

管理者になる
sudo su -
Nginxインストール
apt install nginx
Nginx関係場所確認
whereis nginx

nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz

Nginx設定ファイルを追加
cd /etc/nginx
ls -la
cd /etc/nginx/conf.d
touch default.conf
vi default.conf

default.confに以下のような内容をコピペしました。

server {
        listen 8000 default_server;
        listen [::]:8000 default_server ipv6only=on;

        root /var/www/html;
        index index.html index.htm;
}
Nginx再起動
nginx -s reload
index.html作成

「/var/www/html」に「index.html」というファイルを作ります

内容を以下のようにして保存します。

<html>

 <head>

  <title>TEST</title>

 </head>

 <body>

  <h1>TEST PAGE</h1>

 </body>

</html>

Chrome確認

WindowsChromeを起動します。

http://localhost:8000」にアクセスします。

上記index.htmlが表示されました。

 

結論

Nginxの設定が抜けてました。

 

アドバイスどうもありがとうございました。

2018-11-28

7年勤めたNTT系列退職して2年半が経過しました(ノンキャリア編)

2年半ほど経ちますが、空前のNTT退職ブームなので便乗しちゃいます

はじめに

まず既知の通りNTTグループ社員数約28万人と非常に大きな組織であり、その中で研究所エリート中のエリートが就く位置にある。つまり上記の方達は警察でいえばキャリア組にあたる方達にあたる。以降キャリア組と呼ばせていただく。

一方で、私は地方ノンキャリア警察官のようなポジションにある子会社大株主研究所出身なので、その分際でこのようなエントリーを書くのはおこがましいかもしれないが、

キャリア組層のエントリーなのに共感できる部分がとても多い上に、すでに [ 10年勤めたNTT退職しました(無能編) https://anond.hatelabo.jp/20181126192228 ]のようなノンキャリアそうな人(←失礼はご愛嬌)のエントリーもあったりしたのでちゃっかり便乗させてもらう。

蛇足


自己紹介

自分について


会社について

データとデー子もこんな感じなのだろうか。ぜひ知りたいものだ。

よかったところ

各種エントリーと重複するところもあるがご愛嬌

いい人が多い
  • いい人の定義が難しいが、穏やかで真面目な人が多い。飲食店バイト時代のように「ボケコラ○すぞ」なんていう上司はまずいない。
  • たまにチート級の有能な人がいる。知っている人では今でも有名OSSプロジェクトコミッターやってたりとか。
  • たまにチート級の無能な人がいる。知っている人では開いてはいけないメールを毎回開く人とか。でもクビにも降格にも絶対にならないいいところ。
  • それ以外は可もなく不可もなく凡人。僕もその一人。思えば2-6-2の法則はよく出来ている。

法令遵守

金が腐るほどある



悪いところ≒退職理由

給料が安い

できる人もできない人もすべて同じ待遇

独自プロトコルが大好き

技術に興味がない人が多い

社内システムう○こ

その他

総評

2018-11-19

テキストエディタについて思うこと

最近流行りのエディタっていろんな機能が付いたり拡張機能があったりでIDEに近くなってきてるじゃん。

あれって開発してるときは便利なんだけどメモ帳の延長として使いたいときは鬱陶しく感じることがある。

やたらと起動時にの動きがもっさりするときがあるし、単純なメモ書きをしたい時とかシステム設定ファイルを少し変更するだけとかの時には昔から使ってるエディタで済ましてしまう。

2018-11-04

増田プログラマー養成講座 その17 Webアプリの骨組み

前回は、Webアプリの完成見本を先に見てみました。

今回は、Webアプリを作る途中の過程を見て、作る雰囲気を一緒に味わってみましょう。

 

フレームワーク使用ルール=「設定より規約」=手抜きをする仕組み

最近フレームワークは、「設定より規約」(CoC、convention over configuration)という発想で作られている。

フレームワーク規約使用ルール)に従うと、プログラマー作業量が減って、楽ができる。

 

設定より規約(convention over configuration)とは、開発者の決定すべきことを減少させ、単純にするが柔軟性は失わせないというソフトウェア設計パラダイム

使用しているツール実装した規約開発者の望む動作と一致していれば、設定ファイルを書く必要もない。実装規約と望みの動作が違っている場合必要動作を設定しなければならない。

 

最近フレームワークは「設定より規約アプローチ採用しているものが多い。

例えば、Ruby on Rails、Kohana、Grails、GrokZend FrameworkCakePHPSymfony などがある。

 

CodeIgniter使用ルール

CodeIgniter使用ルールは、マニュアルチュートリアル確認できる。

↑このページの「アプリケーションフローチャート」を見てみよう。

 

  1. 一番左の「index.php」が、Webアプリ入口になっている。(エントリーポイントフロントコントローラーパターン等ともいう)
  2. から2番目の上段「Routing」で、URLに応じて、仕事の振り分け先を決定する。(ディスパッチ、マッピングルーティング等ともいう)
  3. から4番目の「Application Controller」で、具体的な処理の指示を出す。
    1. Application Controllerは、「Model」に必要データを用意させる。
    2. Application Controllerは、「View」に表示用の画面を作らせる。
    3. Application Controllerが、index.phpに表示用の画面を渡す。
  4. 表示用の画面(最終的な処理の結果)を受け取った「index.php」は、ユーザーブラウザー)に画面を渡す。

 

 


 

それでは、CodeIgniterプログラマーが用意する部分のM(Model)とV(View)とC(Application Controller)を、骨組みから作ってみよう。

事前準備として、前々回と前回のWebアプリ完成見本を用意するところまでやっておこう。

 

スケルトンとは?

スケルトン(skeleton, 骨格)とは動物人間の骨格。

コンピュータプログラムコードの骨格部分。プログラムコード作成では、初期段階でスケルトン作成し、その後で詳細部分を肉付けしていく。

 

 

 

Application Controllerの骨組み

まずは、MVCのCの骨組みを作ろう。

Controllerは、ユーザーからリクエストを受け付けて、ModelViewに指示を出す監督です。

 

上記フォルダの中に「Welcome.php」というファイルを作る。(デフォルトであるはずなので、それを使ってOK

 

CodeIgniterルールで、Application Controllerを置く場所は「application/controllers」というフォルダになっている。

CodeIgniterルールで、一番最初に呼び出されるApplication Controllerは「Welcome.php」というファイルになっている。

→これは「C:\xampp\htdocs\waf\application\config\routes.php」という設定ファイルで決められている。

$route['default_controller'] = 'welcome'; // 別の名前にすれば変えられる。

 

「Welcome.php」の中身を以下にように変更する。

<?php

defined('BASEPATH') or exit('No direct script access allowed');

 

class Welcome extends CI_Controller

{

 // 初期画面

 public function index()

 {

  echo "Here is index()";

 }

 // 更新画面

 public function update()

 {

  echo "Here is update()";

 }

 // 削除画面

 public function delete()

 {

  echo "Here is delete()";

 }

}

これがチャットApplication Controllerとして動作する最小限の内容=骨格だ。

 

継承

class Welcome extends CI_Controller

という行に注目してみよう。

CodeIgniterで用意されてる「CI_Controller」クラス継承して、プログラマーが「Welcome」クラスを作ってる。

継承によって、フレームワークが用意してる様々な機能をWelcomeクラス内で使えるようになる。

 

URLリクエスト)とControllerの対応マッピング)のルール

「Welcome」クラスの中に、「index()」「update()」「delete()」という3つのメソッドを用意した。

CodeIgniterURLは、Action Controllerのクラス名やメソッド名とひもづけられている。

今回作るWebアプリだと、

「http://localhost/waf/クラス名/メソッド名」

という対応関係になっている。

(例)

http://localhost/waf/        →Welcomeクラスindex()メソッドが呼び出される。

http://localhost/waf/welcome/index  →Welcomeクラスindex()メソッドが呼び出される。

http://localhost/waf/welcome/update →Welcomeクラスのupdate()メソッドが呼び出される。

http://localhost/waf/welcome/delete →Welcomeクラスdelete()メソッドが呼び出される。

 

 

 

Viewの骨組み

次にMVCのVの骨組みを作ろう。

ビューは、表示する画面の部分です。HTMLWebページの構造を書きます

 

 

welcome_index.php編集

以下の内容にして保存する。

<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?>

<!DOCTYPE html>

<html>

 <head>

  <meta charset="utf-8">

  <title>増田チャット</title>

  <base href="<?php echo base_url(); ?>">

 </head>

 <body>

  <h1>増田チャット</h1>

  <h2>新規投稿</h2>

 </body>

</html>

 

chat_update.php編集

以下の内容にして保存する。

<?php defined('BASEPATH') or exit('No direct script access allowed');?>

<!DOCTYPE html>

<html>

 <head>

  <meta charset="utf-8">

  <title>増田チャット</title>

  <base href="<?php echo base_url(); ?>">

 </head>

 <body>

  <h1>増田チャット</h1>

  <h2>編集</h2>

 </body>

</html>

 

chat_delete.php編集

以下の内容にして保存する。

<?php defined('BASEPATH') or exit('No direct script access allowed');?>

<!DOCTYPE html>

<html>

 <head>

  <meta charset="utf-8">

  <title>増田チャット</title>

  <base href="<?php echo base_url(); ?>">

 </head>

 <body>

  <h1>増田チャット</h1>

  <h2>削除</h2>

 </body>

</html>

 

Viewファイルの追加に合わせて、Controllerも一部変更します。

 

Welcome.php編集

<?php

defined('BASEPATH') or exit('No direct script access allowed');

 

class Welcome extends CI_Controller

{

 public function __construct()

 {

  parent::__construct();

  $this->load->helper('url');

 }

 

 // 初期画面

 public function index()

 {

  $this->load->view('welcome_index');

 }

 

 // 更新画面

 public function update()

 {

  $this->load->view('chat_update');

 }

 

 // 削除画面

 public function delete()

 {

  $this->load->view('chat_delete');

 }

}

 

(変更点の説明

コンストラクターの追加

コンストラクター「__construct()」は、クラスからインスタンスが作られるとき自動的に実行されるメソッドだ。コンストラクターは、初期化最初にやっておくべき下準備を書いておく。

$this->load->helper('url');

CodeIgniterには、リンクの表示を補助する「URLヘルパー」という機能が用意されている。

上記のように書くとURLヘルパーを呼び出して、使えるようになる。

Viewファイルの以下の行でURLヘルパーを使っている。=「base_url()」という関数URLヘルパーの1つ。

<base href="<?php echo base_url(); ?>">

 

ビュー読み込みメソッドの追加

$this->load->view('welcome_index');

というメソッドによって、Viewファイルの「welcome_index.php」を呼び出し、画面を出力します。

 

これでMVCのCとVの骨組みができた。

今の段階でWebブラウザーで各ページを表示させると、各Viewファイルの中身が表示される。

 

 

 

Modelの骨組み

次にMVCのMの骨組みを作ろう。

モデルは、具体的な処理内容(ロジック)を書いて、データを読み書きする部分です。

データベースを操作するSQL文もモデルに書きます

 

上記フォルダの中に「Chat_model.php」というファイルを作り、以下の内容にして保存する。

<?php

defined('BASEPATH') or exit('No direct script access allowed');

 

class Chat_model extends CI_Model

{

 public function __construct()

 {

  parent::__construct();

  $this->load->database();

 }

}

 

CodeIgniterで用意されてる「CI_Modelクラス継承して、プログラマーが「Chat_modelクラスを作ってる。

「Chat_modelクラスコンストラクターには、以下のように書いている。

$this->load->database();

これは、データベースを使用する準備だ。

 

Modelの追加に合わせて、さらにControllerも一部変更します。

 

Welcome.php編集

<?php

defined('BASEPATH') or exit('No direct script access allowed');

 

class Welcome extends CI_Controller

{

 public function __construct()

 {

  parent::__construct();

  $this->load->model('chat_model');

  $this->load->helper('url');

 }

 

 // 初期画面

 public function index()

 {

  $this->load->view('welcome_index');

 }

 

 // 更新画面

 public function update()

 {

  $this->load->view('chat_update');

 }

 

 // 削除画面

 public function delete()

 {

  $this->load->view('chat_delete');

 }

}

 

コンストラクター

$this->load->model('chat_model');

と書いて、「Chat_model」というモデルを読み込むようにした。

これで、モデルに用意するいろんな機能コントローラーで使えるようになる。

 

 

 

以上で、MVCの骨組み(スケルトン)だけを作成するプロセスを見ていきました。

まだ中身はスカスカで、何も機能がついてませんね。

次回は、データベースのCRUD操作を行なって、チャットメッセージを追加/取得/変更/削除する機能実装してみましょう。

 


anond:20181015215004 未経験からプログラマーなんだが全然からない

anond:20181016015826 増田プログラマー養成講座 その1 パソコンの用意

anond:20181016164341 増田プログラマー養成講座 その2 プログラムデータ+処理、プログラム言語の種類

anond:20181016180059 増田プログラマー養成講座 その3 構造プログラミングの基本(順次、反復、分岐

anond:20181016193144 増田プログラマー養成講座 その4 子ども向け教材「Scratch」で構造プログラミング練習

anond:20181017161003 増田プログラマー養成講座 その5 オブジェクトとは何か?

anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備

anond:20181019181549 増田プログラマー養成講座 その7 OOPの仕組み(前半)

anond:20181020230044 増田プログラマー養成講座 その8 OOPの仕組み(後半)

anond:20181022232327 増田プログラマー養成講座 その9 MVCフレームワークを使ってみよう

anond:20181023184616 増田プログラマー養成講座 その10 OOP参考書

anond:20181024214133 増田プログラマー養成講座 その11 データベースを使ってみよう

anond:20181026145516 増田プログラマー養成講座 その12 データベースの参考書

anond:20181028152656 増田プログラマー養成講座 その13 SQL文法

anond:20181031014212 増田プログラマー養成講座 その14 Webアプリの試作品作成

anond:20181101225335 増田プログラマー養成講座 その15 Webアプリの完成見本

anond:20181101230220 増田プログラマー養成講座 その16 Webアプリの完成見本(続き)

anond:20181104161900 増田プログラマー養成講座 その17 Webアプリの骨組み ←★今ここ★

anond:20181104233013 増田プログラマー養成講座 その18 SQLデータの追加と取得

anond:20181024214737 増田プログラマー養成講座 コンテンツ一覧

2018-11-01

増田プログラマー養成講座 その15 Webアプリの完成見本

前回は、Webアプリモックアップ(ハリボテ)を作るところまでやりました。

今回は、Webアプリ機能実装してみましょう!

 

学習の狙い

データベースを使ったWebアプリを作って、データベースの基本操作CRUDの4つ)を練習してみよう!

CRUD
  1. Create 追加
  2. Read  取得
  3. Update 更新
  4. Delete 削除

 

説明の順番について

どういう順番で説明したら分かりやすいか検討してみた。

  1. まず先に、Webアプリの完成見本を提示します。
  2. 続いて、作る過程説明しながら、各プログラム意味説明してみます

 

作業の流れ

ざっくりと、以下のような流れで作っていきます

  1. XAMPPを起動する。(参考 anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備)
  2. CodeIgniterインストールする。(参考 anond:20181022232327 増田プログラマー養成講座 その9 MVCフレームワークを使ってみよう)
  3. phpMyAdminでデータベース操作する。(参考 anond:20181024214133 増田プログラマー養成講座 その11 データベースを使ってみよう)
  4. ApacheWebサーバーソフト)の設定を変更する。(今回説明
  5. Visual Studio Code等のツールプログラムを書く。(次回説明
  6. ブラウザー動作確認する。

 

XAMPPを起動させる

(参考 anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備)

講座その6を参考にして、XAMPPを起動させて、ApacheMySQLスタートして下さい。

 

CodeIgniterインストールする。

(参考 anond:20181022232327 増田プログラマー養成講座 その9 MVCフレームワークを使ってみよう)

講座その9を参考にして、XAMPPの中にCodeIgniterインストールしておきます

 

phpMyAdminでデータベース操作する。

(参考 anond:20181024214133 増田プログラマー養成講座 その11 データベースを使ってみよう)

講座その11を参考にして、MySQLWebアプリ用のデータベーステーブル作成しておきます

 

データベースの設定

講座その11で、データベース練習で「chat」というデータベースを作ってみました。

そのときmessage」というテーブル作りましたが、今回Webアプリで使うテーブルとして新たに「talk」というテーブル作成します。

(補足:前に作ったテーブルmessage」の中に、テーブル名と同じ「message」という名前カラム(列)を作ってました。これでも問題ないんだけど、プログラムを書くときテーブル名とカラム名を混同しないようにしたいので、念のため作り変えときましょう。)

 

talkテーブル新規作成する

SQLで「talk」というテーブルを作る場合、以下のようなSQL文になります

CREATE TABLE `talk` (

 `id` int(11) NOT NULL,

 `create_at` datetime NOT NULL,

 `update_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

 `message` text NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

このSQL文をphpMyAdminで実行すれば「talkテーブルを作れます

  1. phpMyAdminを開く。
  2. データベース「chat」を開く。(前に作った「messageテーブルは使わないので削除してもOK
  3. phpMyAdmin画面の上部メニューの「SQL」をクリックする。
  4. データベース chat 上でクエリを実行する:」の空欄に上記SQL文をコピーして実行すれば、「talk」というテーブルができる。

 

これでデータベースの準備ができました。

 

Apacheの設定

CodeIgniterで使う「URL」の表示方法ちょっと変更しておきたいので、ApacheWebサーバーソフト)の設定を変更しておきます

(「URL」=情報がどこにあるのかを示すインターネット上の住所)

Apacheの「mod_rewrite」という仕組みによって、URLの扱い方を変更します。)

 

(例)

変更前: http://localhost/waf/index.php/welcome/

変更後: http://localhost/waf/welcome/

というように、URLの中にある「/index.php」という文字列を表示させない設定にします。

 

Apache設定ファイル.htaccess

Apacheの設定は「.htaccess」という名前設定ファイルを用意して変更します。

 

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php/$1 [L]

 

.htaccess」の書き方を理解するには、「正規表現」という仕組みの知識必要です。

まだ「正規表現」を勉強してない段階では、とりあえずコピペして使って下さい。

 

Webアプリ完成見本

CodeIgniterで、

を行ないます

 

CodeIgniter設定ファイルconfig.php」の編集

config.php」をIDEやエディターで開いて、以下のように変更する。

$config['base_url'] = 'http://localhost/waf/';

$config['index_page'] = '';

 

最初は、

$config['index_page'] = 'index.php';

になってるけど、「index.php」を削除して、「''」(空)にしておく。

 

CodeIgniterデータベース設定ファイル「databese.php」の編集

「databese.php」をIDEやエディターで開いて、以下のように変更する。

$db['default'] = array(

 'dsn' => '',

 'hostname' => 'localhost',

 'username' => 'root',

 'password' => '',

 'database' => 'chat',

 'dbdriver' => 'mysqli',

(※上記のように、MySQLのusernamepasswordは「root」(管理者)のデフォルト設定を使ってます。)

 

Controllerの作成

上記フォルダの中に「Welcome.php」というファイルを作って、内容を以下のようにします。

<?php

defined('BASEPATH') or exit('No direct script access allowed');

 

class Welcome extends CI_Controller

{

 public function __construct()

 {

  parent::__construct();

  $this->load->model('chat_model');

  $this->load->helper('url');

  // $this->output->enable_profiler(true); // for debug

 }

 

 // 初期画面

 public function index()

 {

  $action = $this->input->post('action');

  if ($action == 'add') {

   $message = $this->input->post('message');

   $this->chat_model->create_message($message);

  }

  $data['talk'] = $this->chat_model->read_message();

  $this->load->view('welcome_index', $data);

 }

 

 // 更新画面

 public function update($id = '')

 {

  $id = $id ? $id : $this->input->post('id'); // id -> segment or post

  $action = $this->input->post('action');

  if ($action == 'update') {

   $message = $this->input->post('message');

   $this->chat_model->update_message($id, $message);

  }

  $data['talk'] = $this->chat_model->read_message_by_id($id);

  $this->load->view('chat_update', $data);

 }

 

 // 削除画面

 public function delete($id = '')

 {

  $id = $id ? $id : $this->input->post('id');

  $action = $this->input->post('action');

  if ($action == 'delete') {

   $this->chat_model->delete_message($id);

  }

  $data['talk'] = $this->chat_model->read_message_by_id($id);

  $this->load->view('chat_delete', $data);

 }

}

 

View作成

上記フォルダの中に「welcome_index.php」「chat_update.php」「chat_delete.php」という3つのファイルを作って、内容を以下のようにします。

 

Viewファイル「welcome_index.php」の中身

<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?>

<!DOCTYPE html>

<html>

 <head>

  <meta charset="utf-8">

  <title>増田チャット</title>

  <base href="<?php echo base_url(); ?>">

 </head>

 <body>

  <h1>増田チャット</h1>

  <h2>新規投稿</h2>

  <form action="welcome/index" method="post" accept-charset="utf-8">

   <label>メッセージ</label>

   <input type="text" name="message">

   <input type="hidden" name="action" value="add">

   <button>投稿する</button>

  </form>

  <h2>投稿一覧</h2>

  <table border="1" cellpadding="5" cellspacing="0" bordercolor="#CCCCFF">

   <tr>

    <th>No.</th>

    <th>投稿日時</th>

    <th>メッセージ</th>

    <th>編集</th>

    <th>削除</th>

   </tr>

   <?php if(isset($talk)): ?>

   <?php foreach($talk as $item): ?>

   <tr>

    <td><?php echo $item['id']; ?></td>

    <td><?php echo $item['create_at']; ?></td>

    <td><?php echo $item['message']; ?></td>

    <td><a href="welcome/update/<?php echo $item['id']; ?>">編集</a></td>

    <td><a href="welcome/delete/<?php echo $item['id']; ?>">削除</a></td>

   </tr>

   <?php endforeach; ?>

   <?php endif; ?>

  </table>

 </body>

</html>

 

Viewファイル「chat_update.php」の中身

<?php defined('BASEPATH') or exit('No direct script access allowed');?>

<!DOCTYPE html>

<html>

 <head>

  <meta charset="utf-8">

  <title>増田チャット</title>

  <base href="<?php echo base_url(); ?>">

 </head>

 <body>

  <h1>増田チャット</h1>

  <h2>編集</h2>

  <p>メッセージを変更して「更新する」ボタンを押してください。</p>

  <form action="welcome/update" method="post" accept-charset="utf-8">

   <label>メッセージ</label>

   <?php if (isset($talk)): ?>

   <input type="text" name="message" value="<?php echo $talk['message']; ?>">

   <input type="hidden" name="id" value="<?php echo $talk['id']; ?>">

   <input type="hidden" name="action" value="update">

   <?php else: ?>

   <p>※該当するメッセージがありません。</p>

   <?php endif;?>

   <button>更新する</button>

  </form>

  <p><a href="welcome/index">戻る</a></p>

 </body>

</html>

 

Viewファイル「chat_delete.php」の中身

<?php defined('BASEPATH') or exit('No direct script access allowed');?>

<!DOCTYPE html>

<html>

 <head>

  <meta charset="utf-8">

  <title>増田チャット</title>

  <base href="<?php echo base_url(); ?>">

 </head>

 <body>

  <h1>増田チャット</h1>

  <h2>削除</h2>

  <p>以下のメッセージを削除しますか?</p>

  <form action="welcome/delete" method="post" accept-charset="utf-8">

   <?php if (isset($talk)): ?>

   <p style="background-color:lightpink"><?php echo $talk['message']; ?></p>

   <input type="hidden" name="id" value="<?php echo $talk['id']; ?>">

   <input type="hidden" name="action" value="delete">

   <?php else: ?>

   <p>※該当するメッセージがありません。(または削除済です。)</p>

   <?php endif;?>

   <button>削除する</button>

  </form>

  <p><a href="welcome/index">戻る</a></p>

 </body>

</html>

 

Model作成

上記フォルダの中に「Chat_model.php」というファイルを作って、内容を以下のようにします。

<?php

defined('BASEPATH') or exit('No direct script access allowed');

 

class Chat_model extends CI_Model

{

 public function __construct()

 {

  parent::__construct();

  $this->load->database();

 }

 

 // Create

 public function create_message($message = '')

 {

  $sql = "INSERT INTO talk SET create_at = ? , message = ?";

  $param = array(date('Y-m-d H:i:s'), $message);

  $this->db->query($sql, $param);

  return $this->db->insert_id();

 }

 

 // Read All

 public function read_message()

 {

  $sql = "SELECT * FROM talk";

  $query = $this->db->query($sql);

  return $query->result_array();

 }

 

 // Read by Id

 public function read_message_by_id($id = 0)

 {

  $sql = "SELECT * FROM talk WHERE id = ?";

  $param = array($id);

  $query = $this->db->query($sql, $param);

  return $query->row_array();

 }

 

 // Update

 public function update_message($id = 0, $message = '')

 {

  $sql = "UPDATE talk SET message = ? WHERE id = ?";

  $param = array($message, $id);

  $this->db->query($sql, $param);

  return $this->db->affected_rows();

 }

 

 // Delete

 public function delete_message($id = 0)

 {

  $sql = "DELETE FROM talk WHERE id = ?";

  $param = array($id);

  $this->db->query($sql, $param);

  return $this->db->affected_rows();

 }

}

 

この続きは、

anond:20181101230220 増田プログラマー養成講座 その16 Webアプリの完成見本(続き)」

へ続きます

2018-10-15

anond:20181015224307

内側に苦手なプログへのリンクを持つclassが"gtm-click-measurement-target"なdiv要素をブロックするという方針アドオンを作るか既製コンテンツブロッカーに指示を与えるかするという方針ブロックすることになるんじゃないかな。

それだけだとページトップに来た時だけは取り逃すので、classが"serviceTop-recommend-primary-img"なdiv要素もブロック対象にするとより完璧

もしuBlockかAdBlock系の広告ブロックアドオンを流用するのなら、設定ファイルに次の2行を加えることで実現できる。「苦手な.hateblo.jp」のところをブロックしたいサイトに書き換えること。

hatenablog.com##div.gtm-click-measurement-target:has(a[href*="苦手な.hateblo.jp"])

hatenablog.com##div.serviceTop-recommend-primary-img:has(a[href*="苦手な.hateblo.jp"])

2018-08-09

xyzzy 使いに 50 の質問

01. ハンドルネームは?

  増田

02. ご職業、年齢はいくつですか?

  なんでも屋さん、アラサー

03. xyzzyについて何かwebサイトを持っていますか?

  持っていません

04. 現在使用中の xyzzyバージョンは何ですか?

 0.2.2.253

05. xyzzy 使用暦はどれくらいですか?

  15年くらい

06. xyzzy を使うようになったきっかけは何ですか?

  昔のことすぎて忘れましたが、学校UNIX 演習で Emacs を使っていたので、Windows でも使おうと思っていて見つけたんだと思います

07. xyzzy 以外に使っているテキストエディタはありますか?

  Atom, McEditor

08. xyzzy を使う前に Emacs 系のテキストエディタを使ったことはありますか?

  はい

09. xyzzy を主に何に利用していますか?

  プログラムを書いたり設定ファイルをいじったり、テキストに関することならだいたい

10. xyzzy が関連付けされているファイルタイプは何ですか?

  txt, md, log, ini, bat, html, xml, css, less, scss, sass, styl, js, coffee, pl, php, py, rb, java, sqlかにもあるかも

11. xyzzy他人に勧めたことはありますか? また、結果はどうでしたか?

  使い始めた当時同級生が何人か使っていました

12. xyzzyフリーじゃなかったとしたらいくら位の値段になると思いますか?

  今なら3000円くらいなら買う

13. xyzzy を何と呼んでいますか?

  じじー

14. xyzzy の好きな点・嫌いな点はどこですか?

  好きな点:動作をほぼ自在カスタマイズできる点

  嫌いな点:動作カスタマイズするとき不自由なところがある点

15. パソコンを立ち上げている時間の内、xyzzy をどのくらい使っていますか?

  業務ときは3割くらい?

16. キーバインドWindows風ですか? Emacs風ですか? オリジナルですか?

  Emacs

17. .xyzzyに書く派ですか? .siteinitに書く派ですか?

  必要に応じてそれぞれに

18. 拡張Lispバイトコンパイルしますか?

  してます

19. セレクションリージョン、どちらを多く使いますか?

  リージョン

20. xyzzy を使っていて挫折したことはありますか?

  はじめのころ五目並べになかなか勝てなくて挫折しました

21. xyzzy の使い方をどうやって学びましたか?

  実際にさわりながら。LispGoogle 先生さまさま

22. xyzzy を使うにあたって一番苦労したことは何ですか?

  xyzzy 自体Lisp APIマニュアル化されていないところ

23. xyzzy を使って目からウロコだった機能は何ですか?

  Buffer Menu

24. 今の xyzzy に望むことはありますか? またそれは何ですか?

  矩形機能に影響が出そうだけどプロポーショナルフォントへの対応と、絵文字など最近 Unicode に追加された文字への対応

25. Lisp はある程度読み書きできますか?

  xyzzy自分の使いやすいようにできる程度には

26. Lisp のほかに読み書きできるプログラム言語はありますか?

  JavaScript, ES 2016, Coffee Script, Action Script 3, C, C++のごく一部, Objective-C, Rust, Swift, Perl, PHP, Python, Ruby, bash, xyzzy lisp

27. 自分で作った 拡張Lisp を公開していますか?

  GitHubGist にあるので探してください

28. 拡張Lisp で導入しているものは何ですか? (多い方は代表的ものをお答えください)

  clickable-uri, jscript-mode, markdown-mode など

29. これは外せない! という 拡張Lisp はありますか? またそれは何ですか?

  いろいろやるので今ある拡張機能がないと無理

30. NetInstaller を利用していますか?

  はい

31. 拡張DLL を導入していますか? またそれは何ですか?

  popup-dododo のための Cairo とか?

32. ドキュメント(info,reference等) は使っていますか? また、それは何ですか?

  使っていません。自分で改造してキーワードを全部 Web検索するようにしています

33. ネット関係拡張Lisp(www-mode,kamail等)を使っていますか?

  xyttr

34. アウトライン系のLispは使っていますか? またそれは何ですか?

  使っていません

35. メモ系(changelog-memo,howm等)Lispは使っていますか? またそれは何ですか?

  使っていません

36. xyzzy五目並べはやったことがありますか? また、結果はどうでしたか?

  今なら結構勝てます

37. キーボードマクロは使いますか?

  たまに。テキストの整形処理なら正規表現ゴリゴリやるほうが多いです

38. 辞書機能は使いますか?

  使っていません。国語英和・和英、英英辞典iPhoneアプリを使います

39. xyzzy のファイラは使いますか?

  毎日仕事に欠かせません。便利にカスタマイズしすぎてむしろファイラだけのために新しく xyzzy 自体を起動することもあります

40. フレームは使いますか?

  あまり使いません。新しく(Windows における)ウィンドウ

41. セッションは使いますか?

  使っていません

42. メーリングリストには参加していますか? また、メール送信したことはありますか?

  ありません

43. 2chxyzzy 関連スレッド書き込みしたことはありますか? また、その頻度はどのらいですか?

  大昔にどうしてもわからないことがあって書き込んだ記憶があります

44. xyzzywikiに書き込みしたことはありますか? また、その頻度はどのくらいですか?

  拡張機能実装に関してちょろっと書き込んだ記憶があります

45. xyzzyメニューは表示していますか?

  たまにほしくなるので表示しています

46. xyzzyツールバーは表示していますか?

  隠しています

47. xyzzyファンクションバーは表示していますか?

  表示していません

48. xyzzyバッファバーは表示していますか?

  表示していません

49. 色、フォントなどは変更していますか? またそれは何ですか?

  色は暗い背景色ハイライトカラーはできるだけ色相を離したパステルカラーです。

  フォントConsolas に源新ゴシック Regular を組み合わせています

50. 最後に、一言お願いします。

  まだまだ xyzzy は不滅です

2018-07-21

npm publish 時の注意事項

正直イキりたくて、 npm パッケージを公開してみた。

そしたら、IDE設定ファイルまで公開してた。

git_ignoreに入ってたか全然きにしてなかったんだけど、npm publish って思いっきローカルファイル上げるのね。

https://docs.npmjs.com/cli/unpublish

unpublish で削除できるんだけど、72時間までという制約が。

もう一度新しい設定で、publish して 前のは deprecate したけど、採ろうと思ったらとれちゃうんだよな…

サポートに連絡したけど、どうなることやら。

幸い問題発生な情報流出はしてなかったけど、いろんなパッケージみてみたら、結構IDE設定ファイル公開してるのがある。

認証ファイルあたりを github で公開するようなミスじゃないからまあいいんだけどさ。

ニッチライブラリから、糞みたいなDLしかなかったんだけど、最近DL数が増えたので

んなわけなかろうと調べてみて発覚した。

Qiitaでやったら作者ばれちゃうから増田で。

みんな注意してね。

2018-06-24

中2娘のWindowsデビュー

娘がWindowsデビューしてそこそこの日数が経った

構成HDDHOME以下をバックアップした後にUbuntuを削除、Windowsクリーンインストールさせた

当然UbuntuWindows共存も考えたが、共存状態だと使い慣れたUbuntuへ逃げる可能性があったので、少々可哀想だったがUbuntuは削除した

良い機会だったので隣で図解をまじえて教えながら娘自身インストール作業をさせた

「えっじゃあ他のプライマリパーティションUbuntuも一緒にインストールできるってこと?」

「その認識で間違いないけど今回はWindows練習のためにしない」

Windowsを起動してデスクトップを表示し、娘がまずやったことはWindowsキー(Superキー)を押下だった

「その辺は学校でやってるから判るだろ?」

「判るけど学校パソコンには無いパネルがかなりある

学生は遊ぶだろうしね余計なの消してんだろw」

「あー確かにw」

学校パソコンにはないであろうパネルを「ふーん」とクリックしながら、何かに納得したのか「じゃあそろそろクリスタ」と言われ、最大の目的であるクリスタインストールした

クリスタインストールが終わると、もう良いよと言わんばかりに「わからなくなったら呼ぶね」とアッチ行けされ初日を終えた

日経つと「ターミナルがない」と言われたので「SuperキーからのC,M,DしてEnterで起動するはずだけどcmdはLinuxと使い方が全く違うから調べたほうが良いよ」とアドバイスした

娘が自室に行くと直ぐ戻ってきて「cdできたけどlsできないんだけど?」と言われ「使い方違うと言ったろ?cmdの場合ディレクトリ内容一覧はD,I,R」と言いつつ娘の自室へ向かう

「昨日から少し試してたんだけどWindowsターミナルって全然違うよね?」

「うん違うし、今使ってもらってるのcmdって呼ばれたりコマンドプロンプトって呼ばれてるんだけど、もう一個パワーシェル(PowerShell)というのもある」

「こっちの方がLinuxに近いかもなぁ。lsはできる。だけどtouchはできないぞ。その辺はググれ」

「えっ?touchできないって意味わかんないんだけど」

PowerShell場合はN,E,W,-,I,T,E,Mでできる。cmdは作成できないわけでないけど、ファイル作成のためコマンドというものそもそも存在しない」

Vimも無かった。というかアプリ設定ファイルがどれなのかすら判らない」

「この辺りはLinuxじゃないと諦めて新規ツールを追加するしかない。Windows作法に慣れろ」

「うーん・・・慣れかぁ」

予想通りLinuxWindowsの違いに戸惑っている様だけど、本当に慣れてもらうしかない

娘が「そういえばアプリってどうやってアンインストールするの?」と聞いてきた

スタートメニューアプリアイコン右クリックしてアンインストール。別窓でプログラム機能が起動したらそこからアンインストール

そう教えると再びアッチ行けされてしまった。父ちゃん寂しい・・・

そして昨日いろいろと娘にWindowsの使い勝手を聞いてみた結果が下記の通り

良いところも悪いところもまだまだ色々と言っていたけれど忘れてしまった。女の子は喋り出すとアッチコッチに行って止まらない・・・

また何かしら変化があったら報告しようと思う

-----------

追伸

ディストーション本当にすみませんでしたギャギャギャーン

2018-06-12

anond:20180612125650

GUI普通に使えて、Ctrl+Alt+Tでターミナル起動してtouchやmkdirやcpmvを知っていてVim設定ファイル簡単な書き換えができる程度

たぶんwgetImageMagickFFmpegあたりも使えるはず

娘はやらん

2018-06-11

この気持ち悪い比喩はなんだ。

https://oshiete.goo.ne.jp/qa/7981236.html

質問より

インターハートの「淫辱荘」と「続 淫辱荘」を最初からやりたくてアンインストールしたのですが、再度インストールしなおしゲームを始めたときに前のデータが残っているらしく、続きからの所にアンインストールする前のデータが載っています

回答No1より

あなたPC が淫辱されてしまっていますね。まず OS を教えてください。

回答No2より

まず、インストールした状態で、淫辱荘が Windows 7 の どこを淫辱しているか調査します。アプリケーション作成するフォルダー名をメモしておいたほうがよいでしょう。

アンインストールしたあと、ユーザーデータが淫辱されている場所の該当フォルダー(つまり完全にアンインストールされていないファイル)を手動で削除します。メモしたフォルダー名で検索すると発見やすいでしょう。

回答内容は良いんだけどさ。淫辱されているって、この気持ち悪い比喩はなんだ。

「淫辱荘」だからって一般サイトで変な表現をしないで欲しい。

関係ないけど、このインターハートって個人的には年上キャラの出る美少女ゲームイメージだな。

ところで、質問者はフォルダを無事に見つけることができたとしか言っておらず、どこにあったのかを書いていない。

からQ&amp;Aを見た人にとってこれは不親切だ。

調べてみたらセーブデータは次のところにあるようだ。

・C:\Users\[ユーザー名]\AppData\Roaming\INTERHEART\[ゲーム名]

このユーザー名だが、私の場合実際に使っているユーザーではなくて管理者権限ユーザー名だった。

[ゲーム].exeを起動しようとしても起動できずに、IHS.exe管理者で起動し、ゲーム起動を選択しないといけないなど、何かおかしいように感じる。

#OSwindows10である

からなければ、C:\Usersに入って、ユーザーフォルダを全て当たるしかない。

C:\Users\[ユーザー名]\AppData\Roamingの下には他のメーカーアプリケーションデータ存在するので、いらないデータが無いかどうか年末くらいは見てみるといいかもしれない。

とにかくアプリケーション設定ファイル等を確認したいときは下記のフォルダ確認することは有効であると思う。

・C:\Users\[今使っているユーザー名]\AppData\Roaming\[メーカー名]

・C:\Users\[管理者名]\AppData\Roaming\[メーカー名]

2018-05-25

Vimに割と慣れた

https://anond.hatelabo.jp/20160327110936

を書いた増田だけど最近は割とVimと仲良くやれるようになった。

前はちょっとしたコード編集設定ファイル編集Vimを使うのは辛かったけれど、

今ではそこまで苦でも無い。やっぱり慣れって大切なんだな…

最近NeoVimやKakouneのようなVimフォークVimリスペクトエディタもあるらしいので

そういうのにも触っていきたい。

2018-04-26

ただ仮想Linuxで開発中のWebアプリを家のLAN越しに色んなデバイスで閲覧できればそれで良かったのに

まずどんな手段があるのか調べて、Apacheというのがあるのを知って、ubuntuApacheインストールしたけど全然使えるようにならなくて、どうやら設定ファイルを弄る必要があるのは分かったけどその在りかが全然からなくて、新しくLinuxコマンドいくつか覚えて探しても見当たらなくて、またいろいろ調べたらDebian系のOS設定ファイル名前が違うってことが分かって、設定ファイルは見つかったのにどこをどう編集したらいいのか分からいか公式ドキュメント(英語)読んでーみたいな感じでこの2〜3日すげえ回り道したのに

結局Vagrantの設定を弄れば一発だったっていう…Vagrantすげー

初心者が一人で開発やってるとこういう徒労ばっかりで困る

おかげでVPNとかVLANとか使えるようになりそうだから良いけどさ

2018-04-10

会社のクソソフト

ほんとクソ。

一応大手の手助けしたりもするんだが、ほんとクソソフト

問題点は以下の通りだ。

・正しい手順で実施してもバージョンアップに失敗する事がある

バージョンアップに失敗した場合ソフトが起動しない or ソフトが壊れる

設定ファイルを読ませるとソフトが壊れることがある

エラー番号は出るが、原因不明

ログを少量取るだけでも「1G」以上

・原因追求に6ヶ月とかザラにある。ログとっても「原因不明ですね^^」「様子見^^」の一言で終わったりする。

ソフトインストール&amp;バージョンアップトータルで5時間かかる

簡単に「PCリカバリしてください」と言ってくる(費用はお客持ちとか抜かす)

もうね、アホかと。

ソフトバージョンアップは無理やり上書きできるようにしろよ。

バージョンアップその他完全にソフト不具合だったら

費用負担しろよ!客からクレームになるだろうが!

もー、ほんとクソ!!!

2018-03-12

どこまでがフロントエンドのやることなんだろう

私がいるところは、プログラマ/システムエンジニアフロントエンドエンジニア/バックエンドエンジニアとかの区分がなくひとりでなんでもやるところです

一応フロントエンドが好きで得意だと自称はしているもの一般的フロントエンドってどこまでするのでしょうか


デザイナがするような部分

ここは当然でしょう


最近では SPA のページも多いので単純な HTMLJS ではなくフレームワーク必要とされることもあります

ここもブラウザ側の話なので必要でしょう


SEOの都合などでJSレンダリングじゃなくサーバサイドレンダリングで、サーバから受け取るHTMLの時点で表示できる状態になってることを依頼される場合もあります

その場合サーバサイド言語に応じたテンプレートエンジンも使います

PHP なら BladePython なら jinja、 Node.js なら ejs という感じ


JSコードテストしたり gulp などのタスクランナーwebpack などバンドルツールを使うので OSコマンドラインツールも使える必要があると思います


サーバサイドの言語は別の人が作るにしても自分環境でそれを動かすためにサーバ構築は出来たほうがいいでしょう

VMOSインストールしてウェブサーバインストールしたり

Vagrant, Ansible 等で管理されているなら、設定ファイルを書くことはないにしろ実行する方法エラーが起きたとき簡単対象方法くらいは知っていないと不便かと思います

ウチの場合各自LinuxVMインストールして Ansible でという使い方なので気づきませんでしたが、考えてみたら全部設定済みの VM データを配布してくれるということもあるのかもしれません


データによって画面表示を変えるときに、それに応じたデータを作って画面を確認したいことがあるので、mysql や postgres などなどデータベースの知識必要になることがあります

SQL 書けなくても pgadmin みたいな GUI ツールで表を書き換えればいいのですが最低限の仕組みは知っていないと苦労しそうです

完全にフロント/バックが切り離されてるところなら、フロントエンド開発者向けにデータベースは使わずテンプレートエンジンに渡ってくるデータを好きに設定できる機能が用意されてるのかも?とも思います

サーバサイドの処理は不要クライアントサイドの動きのみを作るわけですから、決まった場所JSON ファイルデータがそのまま使われるならデータベースの存在を知らなくてもいいですし


ここまでできたらバックエンドよりフロントエンドのほうが何でも出来る人みたいに思えます

あとはサーバサイド言語を書ければもうサービスが作れてしまます

でもこれぐらいできないとすごく不便で、すぐに他の人に頼らないといけなくなるように思います

サーバ冗長化とかそういった部分はかかわらなくてもいいと思いますけど、Linuxデータベースなんかは自分でどうにかできないと周り誰もいないときに動かなくなったら作業進められななんてことがありそうですし

2017-11-16

何でガチャ確率操作話題で、バグをみんな異様に恐れているか

あいつらバグ恐るとか。テストすれば良いじゃん。無能なの?

ってみんな思うかもね。


なんでガチャの時のバグをみんな恐れているかと言うと、
設定ミスったら、今は全額返金がメジャーでして。

そして、単純な設定ファイル編集ミスは実は結構やらかされている。


ゲームによっては、返金時に数億〜数十億円の損害が発生する。
(月初とか月末の目玉ガチャとかでミスったらぁぁぁぁあああああああ)


君のミスでうん億円の損失だよ、
と責められることはないだろうが
ミスると心が痛いぞ。


なので、ソーシャルゲームの開発に関わらない人から見ると、
異様にガチャバグを恐れている感じに見えると思う。
俺には見えた。


確率変動なんて、バグ入りそうな実装やるくらいなら、
何度もガチャやったり、
素直に確率絞ったり、
ガチャにおまけつけろよぉおおおおお
とは思っちゃっても仕方ないよね



俺はゲームイベントやる方が良いと思うけどね!
みんな喜ぶから
イベント技術者実装コストがかかるから
新規開発を進める手が止まるんだ

2017-08-06

https://anond.hatelabo.jp/20170806183053

こういう議論を見て良く思うことは、「できるエンジニア」「優秀なエンジニア」って何をもって判別されるんだろうということ。

EmacsVimの便利な設定ファイルが書けること?

一人でRailsJSWebフロントエンドバックエンドを書けること?

業務系のシステムの開発経験

競技プログラミングの腕前?

マイコンみたいな、IoT組み込み開発ができること?

それとも解析や最近流行りのAIの仕組みを把握してる的なこと?

2017-06-26

地獄の社内SE

社内SEになった。

仕事を辞めて主夫業に勤しんでいたら、知り合いから声がかかった。

1人で社内システムを作ってきたおじいさんがあと数年で定年になるから

引き継げないかとのこと。

メインのシステムベンダー委託してて、そのおじいさんが作っているのは、

メインシステムデータを加工して2次利用しているものほとんどとのことだった。

社内SEはなんとなく楽そうなイメージがあったので、就職した。

言語エクセルVBAとVB.NET 1.0。

中身を見るとどちらもかなりやばい

VBA編

ウォッチウインドウを知らないのか、変数はすべてセルに入れてる。

 変数名はすべてRANGE("A1").valueみたいな感じで全く意味が分からない。

・処理遷移がおかしい。

 セルに1を入れる。そのセルchangeイベントで処理が動くとか。

 SHIFT+F2が無力化されてる。

・なるべくワークシート関数で処理してる

 データベースからとってきたデータを丸ごとワークシートにコピーして

 if,vlookup,match関数を駆使して帳票にしたり、CSVにしてる。

 データ100件制限があったり、1関数を直すときは100行コピーしないといけない。

 画面中に埋め尽くされたワークシート関数をみて途方に暮れる。

・format関数を知らない。

 8桁の日付をとりたいときyear、month、day関数がワークシートにあり、

 その下の行で月の二けた判定、日の二けた判定のif関数で頭の0をつけ

 3行目でconcatenateしている

タイマー起動

 毎朝100本ぐらいのマクロが動いてる。

 タイマー起動なので、毎日セットしないといけない。(タスクスケジューラーを知らない)

 がんがんエラーが発生するので、マクロ設定をエラー処理対象外エラーで中断にしないと動かない。

・遅い

 textboxのchangeイベントでDBからデータ取得処理を入れているので、データが多くなると1文字打つごとに数分待つ状態

 exitイベントを知らないらしい

 DBの更新処理でもテーブル全件とってきて、ループしながらキーが一致するのを探して更新

そんなつっこみどころしかないEXCELマクロが200本以上ある。

VB編

・.NET1.0

 windows7や8に無理やり.netframework1.0を入れて動かしてる。

 顧客PCにも入れてる

オブジェクト名は代えない

 変えられることを知らないのかもしれない

 textbox100とか存在してる。

 EXCEL同様変数は隠しtextboxに入れてる。

設定ファイルおかし

 1.0なのでconfigがないのはしょうがないが、設定ファイルは固定パステキスト

 行数で管理

・WAITがいっぱいある

 試しに取ったら動かない

・DBを最後まで回すとき

 例外が発生するまでまわす。

変数関数スコープ管理

 ない。基本グローバル

クラス

 ない。

ネスト

 ない。

おじいさんが20年にわたって深夜残業休日出勤を厭わず作ってきた、地獄の社内システム担当になったらしい。

2017-06-16

anond:20170616085536

サーバ側が301リダイレクトを返すならキャッシュして当然じゃん。

301は恒久的な移転なんだから

そうなってほしくない場合

まともなサーバサイド開発者なら302だの306だの使い分ける。

あと .htaccess設定ファイルであって仕様のことではないからな。

君もエンジニアなら用語は正しく使おう。

2017-06-05

転職すべき?

おっすオラ社畜

転職するか悩んでいるんだけどなんか知見&アドバイスくれ!

俺のスペック

 年齢:今年30歳

 経歴:

  海外製品の受け入れテスト 4年 (派遣)

   -修正箇所に対して手を動かして直ってるか確認する作業とか。

  

  某求人バックエンド改修 半年 (派遣)

   -既存システムを解析して新しいフレームワークに載せ替える作業とか。

  某ブライダルバックエンド保守 半年(派遣)

   -不具合とか他のシステムの改修に合わせて修正する作業とか。

  海外製品の構築導入担当 1年 (契約) ←いまここ

   -営業が売りつけたソフトウェアを実際に客先に導入する作業とか。

  

 資格

  CCNA / 基本情報

今の会社

 業種: ソフトウェア販売代理店

 年収: 400万

 形態契約社員(半年更新)

 

 会社自体はぼちぼち大きくてグループ全体で1000人くらい。

 ほひゃららDBとかのサポートセンターを持ってる。

 俺がいるのはマイナー海外製のソフトウェアαを客先に導入しにいく仕事

 客とスケジュール調整から導入完了までをやってる。

 作業自体マニュアルにそって設定ファイルを仕込んだりするだけですぐ終わる。

 ネットワーク知識とか、特殊な専門知識必要なし。(マニュアルに載ってないない裏設定とかはあるけど)

 あとは製品αのセミナー講師とかもやらされてたけど喋りが下手すぎて外された。

 最近はαと連携する他社製品β、εとかの勉強もやれって感じかな。

 エンジニアでもないし、こういうのなんて言う職種なんだろ。

今の会社のいいところ

 給料が良い。 -前職は賞与なし手取り18万とかのクソザコITだったから雲泥の差。

 上司がいい人。-いい人なんだけど他の人がね…。

 オフィスがそこそこキレイ -スチールスケールオフィスチェア使わせてくれる

今の会社の悪いところ(気に入らないところ)

営業主体の社風でとにかく売れれば勝ちという思考が強い。

 -体育会系でふざけて背中叩いたり蹴ったりとかよく見る。

 (自分がやられてるわけではないけど見てて不快)

コンプラコンプラと声高に叫ぶ割にはガバガバ

 -役員が率先してセクハラ飲み会ときには

  役職者の周りに新人若い子を配置してお酌などさせたり。

人間関係やばい

不倫離婚した夫婦が同じ仕事担当してたり、

 部下への暴力行為部署長が減給になったり、

 20人くらいしかいない部署なのに親会社派閥も巻き込んで混沌

 生み出している。おかげで飲み会のやりとりも気を使う。

 (愚痴も速攻で共有されるので迂闊なことを言えない)

オタク仲間がいない

隠れオタクはいるかもしれないけど基本いない。

 ゲームの話とかしない。アニメなんてもってのほか

 基本的オタク馬鹿にする風土がある。

 (カラオケいったときアクエリオンいれられて

 「お前知ってるだろw歌えよギャハハ」みたいなのもあった)

未来がない気がする

-扱ってる製品αは頑張って生き残りの道を探してるけど競合他社やOSSに押されてる。

 正社員の人たちは別部署で他の製品担当すればいいかもしれないけど契約社員の俺は切られそう。

 法改正に伴って契約派遣の無期雇用対応たから頑張れば無期雇用にはなれるかもしれない。正社員は一回落とされてるから無理かな。

転職

 実は知り合いが立ち上げた会社に誘いを受けている。

 そっちは開発の仕事会社立ち上げる際に商流すっぱ抜いたらしく結構うまく回してるみたい。

 もちろん、給料とか実際に何やるかはちゃんと聞くが行ってみたいと思っている…。

聞きたいこと

ぶっちゃけ転職したほうがいいかな?

貴方が俺だったら転職する?

転職先について待遇業務内容以外にも聞いたほうがいいことってなんかある?

20170607追記

意外と反応あってあったけぇあったけぇ。

普段は「増田で全レスとか追記なんてだせーよな!」と思っている派なんだけどついリアクション返してしまった。

トラバブコメありがとう自分では思いつかない考え方とか意見とか出てきて本当にありがたい。

知り合いとこんど飲みに行く約束を取り付けたのでそこで色々聞いて改めて判断しようと思う。

2017-02-23

.iniファイル

このまえSIerPHPプロジェクトで、パラメーターを設定ファイルに外だししようって話になって「.iniファイルの読込ルーチンはどうする? だれか作れる? ○○さんがもってるかも」って話になってたから、PHPなら標準でxmljsonの読込関数がありますよって言ってみたけど「あ、こいつまた小難しいこと言ってる」みたいな空気になって流されたな。

ホットエントリ内閣府CSVやばいって記事で思い出した。

2016-07-31

webサイト作成したいだけなのに何でファイルを沢山作らないといけないのか

webpackの設定ファイル

gulpの設定ファイル

sass設定ファイル

ライブラリを使うとどんどんファイルが増えていく

設定に関する仕様策定して統一できないものかね

設定ファイルを1つにまとめられたら良いんだけどね

↓こんな感じで1ファイルカテゴリ毎に設定したほうがディレクトリがきれい

[webpack]

[gulp]

[composer]

[phpmd]

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん