つぶやき
now browsing by category
myTinyTodoの設置メモ(ドメインキング)
myTinyTodoというツールを個人のToDo管理のために設置してみました。
SQL Liteに対応していますので、RDBが無くても使えます。
基本は一式をダウンロードしてきて、サーバにコピーすれば利用できます。
サーバへFTPでコピーしたあとにやったことは
dbディレクトリのパーミッションを777、
dbディレクトリ配下のファイルを766に変更しました。
そして、「ドメイン/mytinytodo/setup.php」にアクセスすれば
セットアップにアクセス出来き、ボタン一発で環境構築できました。
そのままでは丸見え環境になってしまいますので
基本認証のためのファイルを配置してディレクトリアクセス時にID、パスワードを入れるようにしました。
シンプルなToDoで使い易いです。
しばらく評価してみようと思います。
http://www.mytinytodo.net/
iOS開発:UIAlertControllerにチェックボックスを付ける[Objective-C]
昔のプログラムを久々に開くと、UIAlertで警告がたくさん出ます。
どうやら、「非推奨部品になったから変更して!」という事のよう。
UIAlertViewからUIAlertControllerという部品に変更になります。
view部品からコントローラーになるので、それなりに改造が必要ですが
単純なリプレースは巷に情報が溢れていますので割愛します。
今回の記事はUIAlertControllerにチェックボックスを付けるカスタマイズをすると嬉しいな、
という状況があり実現に試行錯誤した備忘録です。
準備
アラート表示を必要とするViewControllerのヘッダファイルに以下を定義
(プロパティで持つ必要ない場合はコード中で宣言)
1 2 3 |
@property (nonatomic) UIAlertController *alertController; //アラートコントローラー本体 @property (nonatomic) UIButton *btn1; //ボタン @property (nonatomic) UILabel *chkLbl; //ラベル |
これらの部品を使ってこんなのを作ってみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
self.alertController = [UIAlertController alertControllerWithTitle:@"確認" message:@"このスケジュールを削除しますか?" preferredStyle:UIAlertControllerStyleAlert]; // addActionした順に左から右にボタンが配置されます [self.alertController addAction:[UIAlertAction actionWithTitle:@"削除する" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { // otherボタンが押された時の処理 [self ListYesPushed]; }]]; // addActionした順に左から右にボタンが配置されます [self.alertController addAction:[UIAlertAction actionWithTitle:@"キャンセル" style:UIAlertActionStyleDefault handler:nil]]; //アラートを表示する [self.view.window.rootViewController presentViewController:self.alertController animated:YES completion:^{ NSLog(@"displayed"); self.btn1 = [[UIButton alloc] init]; //擬似チェックボックス部品 ボタン部分 self.chkLbl = [[UILabel alloc] init]; //擬似チェックボックス部品 チェック状態表示ラベル //チェックボックス表示位置指定 CGRect rect = CGRectMake(80, 64.0, 20, 20); //付帯メッセージラベル表示位置指定 CGRect rect_lbl = CGRectMake(100, 66.0, self.alertController.view.frame.size.width - 2 * 2.0 , 15.0); //チェックボックス部品に表示位置を定義 self.btn1.frame = rect; self.chkLbl.frame = rect; //チェックボックス動作をさせるためのボタンにアクションを定義 [self.btn1 addTarget:self action:@selector(multiDeleteFlgChg:) forControlEvents:UIControlEventTouchDown]; //付帯メッセージラベルを生成 UILabel *lb = [[UILabel alloc] initWithFrame:rect_lbl]; lb.text = @"同一期間分を含む"; //チェックボックスのラベル部品 アラートのデフォルトメッセージにサイズを合わせてみる [lb setFont:[UIFont systemFontOfSize:12.0]] ; [self.chkLbl setFont:[UIFont systemFontOfSize:12.0]] ; //チェック状態を表すテキストコードを代入 self.chkLbl.text = @"\u2B1C";//OFF //アラートウィンドウに色付ける場合はこうしたら良いみたい //self.alertController.view.backgroundColor=[UIColor yellowColor]; //縦の長さをちょこっと伸ばす(最後の+30) [self.alertController.view addConstraint:[NSLayoutConstraint constraintWithItem:self.alertController.view attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeHeight multiplier:1.0 constant:CGRectGetHeight(self.alertController.view.frame) + 30]]; //チェックボックス部品、ラベル、ボタンをコントローラーに貼り付け [self.alertController.view addSubview:lb]; [self.alertController.view addSubview:self.chkLbl]; [self.alertController.view addSubview:self.btn1]; }]; |
最後の貼り付けは順序が大切です。
チェックボックスはチェックボックス風のテキストコードを貼り付けて実現しています。
addsubviewする順序はラベルを先に宣言し、ボタンを宣言します。
こうする事で、同じサイズのラベルとボタンが重なって定義され、
また透明のボタンの下にチェックボックス風の表示内容が透けて見える事になります。
蛇足的ですが、ボタンのアクションに定義した multiDeleteFlgChg メソッドを定義します。
1 2 3 4 5 6 7 8 9 10 11 |
//ダイアログの中のチェックボックス(ボタン)制御 -(void)multiDeleteFlgChg:(UIButton*)button{ if([self.chkLbl.text isEqualToString:@"\u2705"]){ //ONのとき self.chkLbl.text = @"\u2B1C";//OFF }else{ self.chkLbl.text = @"\u2705";//ON } } |
発生したイベントの中で、現在のラベルを確認して反転しているだけです。
作ったのは以上です。
実際に、アラートのボタン(本例では「削除する」ボタン)のイベントの中で、
ボタン反転処理と同じように、ラベルの内容を判断してあげればチェック状態を意識した処理が作れると思います。
課題は・・・・コントローラーならデザイン触れるんじゃないの?と思い縦幅だけ触ってみましたが
よく見るとボタンの罫線が付いてきて居ませんので、完成させるにはもう少し調査しなくてはいけませんね。
セキュリティソフト(気がつけば9月)
8月は帰省やレジャー、そもそも暑くて動く気が無くなってたりと色々大変(?)な時期でもあり、PCの整理(データクリーン&廃棄手配)のご依頼相談や管理しているHPの更新程度で過ごしておりました。
さて9月。小規模の会社様で
「ウィルスセキュリティソフトの更新が来たけど、更新料が凄い。こんなもんなの?」
との問い合わせ(知人経由)。
状況は下記です。
・事務方や実務で20台程度のPC利用中
・ファイル共有のみの利用でwindowsサーバが導入されている
・ITの担当が専任、兼任とも不在(担当できる人が居ない)
・前回担当した会社の斡旋で某社製の統合管理セキュリティソフトを導入している
まずは実地検証前に回答ご担当窓口を立てて貰い、なるべく状況を詳しくメールヒアリングします。
・前回担当した会社とのやり取りは誰がしたか?
→はっきりしない(悪い言い方をすれば「言い値丸投げ」)
・統合ソフトが入っているが管理運用しているか?
→クライアントの状況を逐次サーバにある統合ソフトで管理・監視ができる仕組があるが誰も管理していない。
・メールは使っているか?
→事務方に外部用メールアドレスはあるが実務利用者に個人アドレスは無い
・ウィルスパターンの更新タイミングやネット利用ポリシーは有るか?
→ない。分からない。必要無ければネットに繋いでいない実務担当も居る。
では、ということで選定のソフト2種(フリーと廉価有償)の紹介とメリットデメリット、サーバの管理ソフトのアンインストール作業、PC1台の旧ソフトのアンインストール&新ソフトインストール作業とその他PC向けのインストール手順作成を見積しました。何を選んだら良いか?がキモでも有るので、概算のご提案時にはソフト名までは書きません。
元々セキュリティにそれほどご興味や必要性を感じていないお客様ですから、こちらがゴリ推ししたところで中々響くものではありませんので気長に待つ事にします。
ソフトやPCについて、調べるのが面倒だからこそ専門家に頼って任せる、これはまず失敗しない第一歩。
ただ、コスト面やサービス面に不安を感じたら自社側に立って審査してくれるカウンター役を立てる事も大事ですね。
簡易グループウェアの改良。
本サイトで運営していいる簡易グループウェアについて、自動ログインができなくて不便でしたので自動ログイン機能をつけてみました。
明示的にログオフしない限り、10日間は(同一端末から)ログインが可能です。
さて、紹介ページも更新しておきますか・・・・・と思ったら、グループウェアについては未だ何も告知とか出していませんでした。
「そういえば問い合わせも無いよなぁ・・・」なんて思っていたのですが、知人周りに使ってもらっているだけで広告していなければ当然ですね。
内部向けの作業はHPの更新やアプリ開発など、なんだかんだと後回しになりがちですが、今年の夏休みの宿題として頑張ろうと思います。
業務を支援するデータ変換ツールの開発
とあるご紹介で、社内のシステムを変えた際に、業務に一部支障があるとのことでご相談を受けました。
前まで使っていたシステムソフトにあった「便利な機能」がシステムを変えたことで実現できなくなった、と。
これまで、システムから業務に使う帳票やデータを出力して使えていましたが、新システムではCSVファイルのダウンロード機能しかない。
ダウンロードしたファイルをエクセルで開き、編集したり集計したりすれば欲しい情報(印刷用の資料作成)はできるのですが、これまで以上に事務作業や編集作業が掛かり、また毎度同じような作業が必要になっていました。
担当さんが変わると、その加工手順やスキルによってはエクセル編集の手ほどきからしなくてはなりません。
日々の業務における時間損失や今まで以上の負担を考え、便利なツールが欲しい、というご相談でした。
これこそ、ITが得意とするところです。
構成や作り方に幾つかパターンがあり、それぞれメリット・デメリットもあります。
まずはパターンとそれぞれのデメリットを表記した概算価格表を提案としてご提示しました。
(1)エクセルのマクロプログラムとしてご提供。
グループでの利用には向かない。
利用端末に必ずエクセルが必要。
あまり大きなデータは性能的にも扱いにくい。
エクセルバージョンなどにも左右されるため、長期に渡り使える保証はない。
制約も多いが安価に構築できる。
(2)専用アプリケーション(exe)としてご提供。
グループでの利用には向かない。(運用ルール次第)
大きなデータも扱えるし、仕様変更や追加にも対応しやすい。
同一アプリを長期利用したい場合に向いている。
エクセルに比べて割高。
(3)WEB型システムのご提供。
WEBブラウザで操作し、複数者利用を前提に作るためグループでの利用が可能。
データの取り扱い量の制約はない。
同一アプリを長期利用したい場合に向いている。
設計も複雑になり、一番割高。
結果として、今回はグループでの利用は必要ないだろうとのことで真ん中プランでご依頼でした。
当初お聞きしていたのは印刷帳票3種とエクセルファイル2ファイルの生成でしたが、
最終的に帳票を1つ減らしましたので最終のお見積ののち、作業を頂きました。
ITは慣れれば慣れるほど「当たり前」になりますが、環境の変化や不具合で急に「当たり前のことができなくなった」時に、いかに便利だったかを痛感するという声をよくお聞きします。
今現在、データ解析や整理が本業ではないのに、PCに噛り付きルーチンワーク的な編集作業に時間を費やしている方がいれば、”これはITで楽にならないのだろうか?”と考えてみてください。
“毎日この作業から解放されると、さらに違うことができるのになぁ”そう思える作業はもしかしたらITにやってもらう事ができるかもしれませんよ。
iOS 業務アプリ開発
最近はホームページ支援は保守作業程度で落ち着いていますが、本業務の方でiOS上の業務アプリ構築を手がけており、多忙な状況にあります。
ただ、会社では初のMAC開発パイオニアとして動いており、iOS標準部品ではなかなか表現の難しい機能を独自に部品作成して実装したり・・・と、個人レベルで蓄積しているノウハウも相当に貯まってきました。
スマートフォンユーザーのうち、iOS端末を使う方は相当数居られると思います。
この端末でスケジュールや業務情報が見れると便利だなぁ〜なんて事を考えている方、大掛かりな物から小さなアプリケーションまで対応ご相談できますのでお気軽にご相談ください。
業務上作成したアプリを紹介する訳にはいきませんが、近いうちに自分で作成したアプリ(実は公開済)をそのうちお披露目できればと思います。
ARDUINOを使ったデータ計測装置の開発(3)
合間合間で作っていた計測システム、ようやく完成しました。
基盤はArduino互換基盤で、端子などをハンダ付けした小さい基盤を作成しました。
今回のプログラムは温度を計測するセンサー2本を制御するものです。
fujisawaweb自前のデータ受信サーバに定期的にデータを送信することで
データを保存し、WEBブラウザを通してデータ一覧を見たり、
時間軸と温度を表現したグラフを見たりできます。
なるべく簡易にするために、温度素子の補正などはハード側では行わず、
データ登録の機能に対して補正(プラスマイナス)する数値を調整したり、
データ収集周期を設定したりする事ができます。
まずは1アカウントにつき最大1000件のデータ保持をしています。
(モニター機能では最大200件分を表示)
この装置を太陽光発電した電源を使って、本装置と無線LANルーターを独立運転しています。
省電力電源でネット通信(無線LANルーターor有線LANケーブル)機能を備えた計測装置、
というテーマで研究していた工作が一段落しました。
10cm四方程度の小さな箱装置で2台の水槽の常時水温監視&見える化のシステムが出来ました。
次の目標は温度しきい値によるファンコントローラー機能の追加ですかね。
(後は見栄え悪いので、ITとは別ですが装置入れる箱も用意しないと。。)
温度センサーの計測は1つの装置で最大4台程度制御可能です。
アクアリウムでの利用の他、常設の装置で安価に監視・管理したい需要などに使えそうです。
ご興味ある方はお問合せください。
ARDUINOを使ったデータ計測装置の開発(2)
先日から進んで、テスト環境としては完成しました。
構成は Arduino UNO 本体にLANシールドを載せた基盤を基本として、
小さなブレッドボード上にアナログ端子に LM35DZ(温度端子)を接続して温度を計測します。(イメージは前回の記事写真にあります)
有線LANで接続した本機からインターネットを通じて通信し、 fujisawaweb.net に設置したサーバ用の受信プログラムに対して計測した温度を送付します。
サーバ側にはデータベースを用意しておき、受信したデータを溜め込みます。
簡単な確認プログラムも書いてみました。
最新20件のデータをグラフと一覧で表示するプログラムです。
グラフの変化のテストも兼ねて、センサーを指で触って温度変化させたデータを取得してみました。
テスト・モニターサイト
(テストサイトですのでリンク切れの場合は既に休止しているかもしれません)
今まではPCの中だけで動くソフトを作っていましたが、ハードウェアの制御や監視も手を出してみるとなかなか面白いですね。
これで、実験としては一旦区切りですが、やりたい事も含めて、下記をぼちぼち研究していきます。
・サーバからArduinoへの設定値を指示する(データを渡す)方法
・太陽光パネルの電圧計測
・複数の計測端子の制御、監視(温度×3や温度・湿度・電圧など)
・USB以外の電源での動作方法
・サーバ側のデータ収集プログラムをもう少し複数端末等を意識した構造にする
農業向けに気温・水温・土の温度や湿度、光の強さなどの監視や、
家庭向け小規模太陽光発電の管理(これをやりたい)には十分使えそうな感じです。
Arduinoを使ったデータ計測装置の開発
ハード制御をするためのソフトウェア研究として、Arduino環境の開発をしています。
目標とする構成ですが、基本基盤にLANボード拡張を行ったモジュールを使って、温度(気温)をアナログのセンサーから計測し、計測値をLAN(WEB)を介して外部のサーバへ送信する装置の製作です。
現在、温度を取得して定期的に監視するところまで出来ていて、LANを使った通信部分の作成をしているところです。
通信モジュールができたら、今度はテスト用の受信プログラムをサーバに配置してデータの取得ができるかテストします。
将来の利用方法として、まずは光センサ(光の強さ)、気温と太陽光パネルの発電電圧を計測・監視するシステムを作ってみるつもりです。
Arduinoを使った独自の計測装置を作ってみたい方、ソフトウェア部分の製作をご支援できます。
よろしくお願いいたします。