2017年06月14日

勉強会情報 2017/06/14

オープンソースカンファレンス2017 Chiba

日程:2017年9月2日(土) 10:00-18:00(展示は17:00まで)
会場:千葉工業大学 津田沼キャンパス 6号館 5F
費用:無料
https://www.ospn.jp/osc2017-chiba/

-------------------------------------------

Open Developers Conference 2017 Tokyo

日程:2017年8月19日(土) 10:00〜18:00(展示は11:00〜17:00)
       8月20日(日) 10:00〜18:00    
会場:日本工学院専門学校 蒲田キャンパス 3号館7階
費用:無料
https://www.ospn.jp/odc2017/

-------------------------------------------

オープンソースカンファレンス 2017 Tokyo/Fall

日程:2017年9月9日(土) 10:00〜18:00(展示:11:00〜17:30)
       9月10日(日) 10:00〜17:30(展示:10:00〜16:00)
会場:明星大学 日野キャンパス 28号館 2F(OSC受付)
費用:無料
https://www.ospn.jp/osc2017-fall/

-------------------------------------------

オープンソースカンファレンス 2017 .Enterprise

日程:2017年12月8日(金) 10:00〜18:00(展示ブースは11:00〜17:00)
会場:TKP渋谷カンファレンスセンター 【4F:OSC受付でプログラム配布】
   (JR渋谷駅 東口 徒歩3分。ヒカリエ2F通路を通り抜けて直進右手です)-->
費用:無料
https://www.ospn.jp/osc2017.enterprise/

-------------------------------------------

PHPカンファレンス 2017

2017年10月8日 (日) に開催
場所: 大田区産業プラザ(PiO)
http://phpcon.php.gr.jp/2017/
posted by rururu at 22:10| Comment(0) | TrackBack(0) | セミナー情報

2017年06月06日

Eclipse4.5でdjUnitを動かす

以下のサイトで公開されているものを使うとEclipse4.5でdjUnitを動かすことができます
https://github.com/umed0025/djunit-0.8.6/tree/ec452osgi-release-20160305
posted by rururu at 07:02| Comment(0) | TrackBack(0) | Java

2017年03月24日

システム開発でやってはいけないこと(2)

・情報共有しない
・[リーダー]メンバーを負荷を分散させない
・[リーダー]他チームの調整を拒否
・無断欠勤
・失踪
・順調ですとウソの進捗報告
・引き継ぎなしでいなくなる
・自分がやりたくない作業だと頑なにやらない
・仕事中に寝る

システム開発でやってはいけないこと(1)

・コーディング規約を決めない
・仕様書を作らない
・テスト仕様書を作らない
・レビュー(対面または机上)をしない
・画面イメージについてお客さんに相談しないで作る
 ・自分が使いやすい=お客様も使いやすいと自分の都合が
  いいように勝手に解釈
・WBSを見直さない。粒度が荒い
・協調性がない
 ・話し合ったことをドキュメントに記入しない
 ・話し合って決めたコードの書き方を守らない
・変数名、DB名、テーブル名、カラム名などを
 省略しすぎてあとでわからなくなる
・英語の名称にこだわりすぎて名称から画面がわからない
 プログラム名をつける
・ExcelをそのままWeb化する
 ・ページングするべきページでページングを頑なに拒否
・自分が理解できない技術を拒絶して使おうとしない
・TODOコメントを残したままにする
・ネガティブ
・車輪の再開発が好き
・問い合わせの対応履歴をまとめない
・自分に甘く他人に厳しい
 ・他人にはテストコードを書けというのに自分では書かない
 ・バグを憎まずにバグを出した人を憎む

2016年01月27日

フォルダのアクセス権取得


---------------------------
■ファイル名:test.vbs
---------------------------
Option Explicit

Function getFolderAccessMask(ByVal searchFolder)

'--------------------------------------------------------
'定数
'--------------------------------------------------------

Const FullAccess = 2032127
Const Read = 1179817
Const Write = 1180095
Const Update = 1245631
Const SubFolderAndFileSpecialAccess = -536805376
Const SubFolderAndFileFullAccess = 268435456

Const FullAccessJpn = "フルコントロール(All)"
Const ReadJpn = "読み取り(RX)"
Const WriteJpn = "書き込み(RWX)"
Const UpdateJpn = "変更(RWXD)"
Const SubFolderAndFileSpecialAccessJpn = "サブフォルダーとファイルに対する特殊なアクセス権"
Const SubFolderAndFileFullAccessJpn = "サブフォルダとファイルに対するフルコントロール"

'--------------------------------------------------------
'前処理
'--------------------------------------------------------

Dim wmiFileSecSetting
Dim wmiSecurityDescriptor
Dim retValue

Set wmiFileSecSetting = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2:Win32_LogicalFileSecuritySetting='" & searchFolder & "'")
retValue = wmiFileSecSetting.GetSecurityDescriptor(wmiSecurityDescriptor)

'--------------------------------------------------------
'NTFSのアクセスコントロール情報取得
'--------------------------------------------------------

Dim DACL
Dim wmiAce
Dim wmiTrustee
Dim strSID
Dim strACL
Dim i
Dim accessMask

retValue = ""
DACL = wmiSecurityDescriptor.DACL
For each wmiAce in DACL
Set wmiTrustee = wmiAce.Trustee
strSID = ""
For i = 0 To UBound(wmiTrustee.SID) - 1
strSID = strSID & wmiTrustee.SID(i) & ","
Next
strSID = strSID & wmiTrustee.SID(i)

'アクセスマスクの取得
accessMask = wmiAce.accessMask

'アクセスマスクをアクセス権表示文字列に変換
strACL = ""
Select Case accessMask
Case FullAccess
'フルコントロール(All)
strACL = FullAccessJpn
Case Read
'読み取り(RX)
strACL = ReadJpn
Case Write
'書き込み(RWX)
strACL = WriteJpn
Case Update
'変更(RWXD)
strACL = UpdateJpn
Case SubFolderAndFileSpecialAccess
'サブフォルダーとファイルに対する特殊なアクセス権
strACL = SubFolderAndFileSpecialAccessJpn
Case SubFolderAndFileFullAccess
'サブフォルダとファイルに対するフルコントロール
strACL = SubFolderAndFileFullAccessJpn
Case Else
strACL = accessMask
End Select

'アクセスコントロール情報を取得
If Len(Trim(retValue)) <> 0 Then
retValue = retValue & VbCrLf
End If
retValue = retValue & """" & wmiTrustee.Domain & """"
retValue = retValue & ","
retValue = retValue & """" & wmiTrustee.Name & """"
retValue = retValue & ","
'retValue = retValue & """" & strsid & """"
'retValue = retValue & ","
'retValue = retValue & """" & wmiTrustee.Sidstring & """"
'retValue = retValue & ","
retValue = retValue & """" & strACL & """"
'retValue = retValue & ","
'retValue = retValue & """" & accessMask & """"
Next

'--------------------------------------------------------
'後処理
'--------------------------------------------------------

'オブジェクトの破棄
Set wmiAce = Nothing
Set wmiTrustee = Nothing
Set wmiFileSecSetting = Nothing
Set wmiSecurityDescriptor = Nothing

'戻り値
getFolderAccessMask = retValue

End Function

'*********************************************
' メインの処理
'*********************************************

'Const FileHeader = "Domain,Name,SID,Sidstring,ACL,accessMask"
Const FileHeader = "Domain,Name,ACL"

Dim searchFolder
Dim retValue

'対象のフォルダ
searchFolder = "C:\test"

'NTFSのアクセスコントロール情報を取得
retValue = getFolderAccessMask(searchFolder)

'アクセスコントロール情報を出力
WScript.Echo FileHeader & VbCrLf & retValue

---------------------------
■実行例
---------------------------

>cscript test.vbs //Nologo
Domain,Name,ACL
"BUILTIN","Administrators","フルコントロール(All)"
"BUILTIN","Administrators","サブフォルダとファイルに対するフルコントロール"
"NT AUTHORITY","SYSTEM","フルコントロール(All)"
"NT AUTHORITY","SYSTEM","サブフォルダとファイルに対するフルコントロール"
"BUILTIN","Users","読み取り(RX)"
"NT AUTHORITY","Authenticated Users","変更(RWXD)"
"NT AUTHORITY","Authenticated Users","サブフォルダーとファイルに対する特殊なアクセス権"

posted by rururu at 00:52| Comment(0) | TrackBack(0) | VBScript

2016年01月21日

ECMAScript 2015(ECMAScript 6)をちょっとずつ勉強 (10)

///*********************************************
//[既存クラスの拡張]
// String
// Unicode対応の拡充
//*********************************************

// IE11ではエラーになります
// Edge、Chome47.0.2526.106 m、Firefox43.0.3で動きました

// 𩸽(ほっけ)
var s = "𩸽を食べる";
console.log(s.length); // 6。1文字なのにlenthはサロゲートペアを2文字分でカウントしてしまう

// スプレッドオペレータで展開
var s1 = [..."𩸽を食べる"];
console.log(s1.length); // 5
console.log(s1[0]); // 𩸽

ECMAScript 2015(ECMAScript 6)をちょっとずつ勉強 (9)

//*********************************************
// let・constキーワードによる変数宣言
//*********************************************

// IE11、Edge、Firefox43.0.3、Chome47.0.2526.106 mで動きました
//
// ES6から追加される新しい変数宣言の方法で、定数値(constant value)を宣言する時に使用する。
// constを使って宣言された変数には値を代入できなくなる。

const foo = 1;
console.log(foo); // 1

// Edgeでは動きました
// IE11、Chome47.0.2526.106 m、Firefox43.0.3ではエラーになります
//
// letを使うことでブロックスコープの変数宣言が可能になる


let x = 1;
if (true) {
let x = 2;
console.log('x is ' + x); // x is 2
}

console.log('x is ' + x); // x is 1

// Edgeでは動きました
// IE11、Chome47.0.2526.106 m、Firefox43.0.3ではエラーになります
//
// C#を人にはおなじみかな「{}」は

let foo = [1, 2, 3];
{
let foo = [4, 5, 6];
console.log(foo); // [4, 5, 6]
console.log(foo[0]); // 4
}

console.log(foo); // [1, 2, 3]
console.log(foo[2]); // 3

ECMAScript 2015(ECMAScript 6)をちょっとずつ勉強 (8)

//*********************************************
//[既存クラスの拡張]
// MathとNumber
// 多数の算術関数の追加・・・Edgeとそれ以外のブラウザで実装が微妙に違うのかも?
//*********************************************

// IE11ではエラーになります
// Edge、Chome47.0.2526.106 m、Firefox43.0.3で動きました

// 常用対数
console.log(Math.log10(2)); // 0.3010299956639812

// 双曲線正接関数
console.log(Math.tanh(1)); // Edgeだと0.7615941559557648。FirefoxとChomeだと0.7615941559557649

// 32ビット乗算
console.log(Math.imul(0xffffffff, 5)); // -5

ECMAScript 2015(ECMAScript 6)をちょっとずつ勉強 (7)

//*********************************************
//[既存クラスの拡張]
// MathとNumber
// 2進数と8進数のリテラルが追加された
//*********************************************

// IE11ではエラーになります
// Edge、Chome47.0.2526.106 m、Firefox43.0.3で動きました

// 2進数
console.log(0b10) // 2
console.log(0b100) // 4

// 8進数。0oを接頭辞とする記法が追加された
console.log(0o10) // 8
console.log(0o100) // 64

// 追加された物はparseInt関数ではパースできないのでNumber関数を使う必要あり
console.log(parseInt("0b10", 2)); // 0
console.log(Number("0b10")); // 2

ECMAScript 2015(ECMAScript 6)をちょっとずつ勉強 (6)

///*********************************************
//[既存クラスの拡張]
// MathとNumber
// isNaNとisFiniteの改善
//*********************************************

// IE11ではエラーになります
// Edge、Chome47.0.2526.106 m、Firefox43.0.3で動きました

// isNaN関数は数値以外を引数に指定するとtrueを返す問題があった
// ES6で追加されたNumber.isNaNではfalseを返してくれる
console.log(isNaN("foo")); // true
console.log(Number.isNaN("foo")); // false

// Number.isFiniteが追加されている
console.log(isFinite(10)); // true
console.log(isFinite('10')); // true
console.log(Number.isFinite(10)); // true
console.log(Number.isFinite('10')); // false