はてなキーワード: BYTEとは
"What Is Web 2.0" Tim O'Reilly 2005/9/30
http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html
Core Competencies of Web 2.0 Companies
In exploring the seven principles above, we've highlighted some of the principal features of Web 2.0. Each of the examples we've explored demonstrates one or more of those key principles, but may miss others. Let's close, therefore, by summarizing what we believe to be the core competencies of Web 2.0 companies:
- Services, not packaged software, with cost-effective scalability
- Control over unique, hard-to-recreate data sources that get richer as more people use them
- Trusting users as co-developers
- Harnessing collective intelligence
- Leveraging the long tail through customer self-service
- Software above the level of a single device
- Lightweight user interfaces, development models, AND business models
ノイズを除去してまとめれば、要するに相互接続性を確保したWebサービスのことだ。
そしてそう言えばいいのである。
「どんなデータベース資産を蓄積してるんだい?」とかアホと違うか。外部から利用できないならそんなのどうでもいいんだよ。ソフトウェアをそのByte量で評価するのと変わらん。大きいコードにはいっぱい機能が詰まってるはずだみたいな。
結局分かってないから適切な表現ができないのだろう。
それに言ってること微妙に変えてないか、こいつ。
'/** Requestオブジェクトから受信したデータを取り出します。 ' * @return byte配列を格納した連想配列を返します。 ' */ Function getRequestItem() If Request.TotalBytes <= 0 Then getRequestItem = Null Exit Function End If Dim data Dim separator Dim dataArray Dim buffer Dim filePath Dim fileName Dim ix Dim stringIndex Dim myCrLf Dim items Dim itemName myCrLf = convertAsc(vbCrLf) Set items = Server.CreateObject("Scripting.Dictionary") data = Request.BinaryRead(Request.TotalBytes) data = LeftB(data, UBound(data) - 3) & myCrLf separator = MidB(data, 1, InStrB(1, data, myCrLf) + 1) dataArray = SplitB(data, separator) For ix = 2 To UBound(dataArray) Step 1 '1行読み込み buffer = MidB(dataArray(ix), 1, InStrB(1, dataArray(ix), myCrLf) - 1) 'アイテム名の取得 stringIndex = InStrB(1, buffer, convertAsc("name=")) If stringIndex > 0 Then itemName = convertUnicode(MidB(buffer, stringIndex + 6, InStrB(stringIndex, buffer, ChrB(34)) - stringIndex)) Else itemName = "" End If 'ファイル名の取得 stringIndex = InStrB(1, buffer, convertAsc("filename=")) If stringIndex > 0 Then filePath = MidB(buffer, stringIndex + 10, InStrB(stringIndex, buffer, ChrB(34)) - stringIndex) fileName = RightB(filePath, LenB(filePath) - LastInStrB(0, filePath, convertAsc("\"))) Else fileName = "" End If 'データ部の取得、改行コードの切り捨て buffer = RightB(dataArray(ix), LenB(dataArray(ix)) - InStrB(1, dataArray(ix), myCrLf & myCrLf) - 3) buffer = LeftB(buffer, LenB(buffer) - 2) items.Item(itemName) = parseBytes(buffer) Next Set getRequestItem = items Set items = Nothing End Function '/** 文字列の最後尾から指定文字を検索します。 ' * @param Start 検索する開始文字位置を指定します。 ' * @param String1 検索対象の文字列を指定します。 ' * @param String2 検索する文字列を指定します。 ' */ Function LastInStrB(ByRef Start, ByRef String1, ByRef String2) Dim ix Dim lastIndex Dim searchLength searchLength = LenB(String2) lastIndex = LenB(String1) - searchLength + 1 If Start > 0 And Start < lastIndex Then lastIndex = Start End If For ix = lastIndex To 1 Step -1 If MidB(String1, ix, searchLength) = String2 Then LastInStrB = ix Exit Function End If Next LastInStrB = 0 End Function '/** アスキー文字列に変換します。 ' * @param String 対象の文字列を指定します。 ' */ Function convertAsc(Byref String) Dim ix Dim ascii ascii = "" For ix = 1 To Len(String) Step 1 ascii = ascii & ChrB(AscB(Mid(String, ix, 1))) Next convertAsc = ascii End Function '/** Unicode文字列に変換します。 ' * @param AscString 対象のアスキー文字列を指定します。 ' */ Function convertUnicode(Byref AscString) Dim ix Dim unicode unicode = "" For ix = 1 To LenB(AscString) Step 1 unicode = unicode & Chr(AscB(MidB(AscString, ix, 1))) Next convertUnicode = unicode End Function '/** バイナリ対応版Split関数です。 ' * @param String 対象の文字列を指定します。 ' * @param Delimiter 区切り文字を指定します。 ' */ Function SplitB(Byref String, Byref Delimiter) Dim ix Dim lastIndex Dim searchLength Dim start Dim datas() Dim dataIndex dataIndex = 1 start = 1 delimiterLength = LenB(Delimiter) lastIndex = LenB(String) - delimiterLength + 1 '最初から1文字ずつ繰り返します。 For ix = 1 To lastIndex Step 1 'データを比較します。 If MidB(String, ix, delimiterLength) = Delimiter Then 'データを取り出せたら配列に格納します。 ReDim Preserve datas(dataIndex) datas(dataIndex) = MidB(String, start, ix - start) dataIndex = dataIndex + 1 start = ix + delimiterLength End If Next SplitB = datas End Function '/** Byte配列を返す関数です。 ' * @param data 対象のデータを指定します。 ' */ Function parseBytes(Byref data) Const adLongVarBinary = 205 Dim recordset If LenB(data) <= 0 Then parseBytes = CByte(0) Exit Function End If Set recordset = Server.CreateObject("ADODB.Recordset") recordset.Fields.Append "UpLoadBinary", adLongVarBinary, LenB(data) recordset.Open recordset.AddNew recordset.Fields("UpLoadBinary").AppendChunk data recordset.Update parseBytes = recordset.Fields("UpLoadBinary").Value recordset.Close Set recordset = Nothing End Function