http://anond.hatelabo.jp/20071030225659
滅びると、嬉しいの?何か得するの?
日本以外でこんな文化が発展してきたのは無いんだよ、独自の文化が生まれたんだ。それを容易く「滅べばいいのに」って、どういうつもりなんだろう。
君が滅ぼさなくても、力のない文化はどれだけ皆に望まれても死ぬし、逆もあるさ。もし君が今、生きている文化を殺そうっていうのなら、君も真剣になる必要があるよ。それがどれだけ「クソッタレ」な文化であっても、すでに生き続けてきた、という実力があるんだからね。
まぁ、気に食わない奴に出会ったからって陰口で「死ねばいいのに」と呟く程度の話なのかもしれないけれどさ。
ありがたいねぇ。
しみじみするよ。
いちおう頭ではわかってて、
だからそういう実入りにつながらないことでもまじめにやろうとしているんだけど、
でも単純作業していると頭が暇だから変なそろばんをはじき出しちゃうんだよね。
作業中に他のことかんがえついてそっちをやりたくなったり・・・。
やっぱり負担はかかるらしいけど、自分であげるよりきれいだし、朝が凄くラクになった。
ただ、人によっては上手くカールしないらしいんだよな〜
南アフリカでなにつくってるの?車とか??
古い頭だと南アフリカいわれてもダイヤぐらいしか思い浮かばないや。
あと、なにがあるんだろう。
http://anond.hatelabo.jp/20071030034313 の二番煎じ
あまりのアホさに、作ってて気が狂いかけた
方針
using System; using System.CodeDom.Compiler; using System.Collections.Generic; using System.IO; using System.Reflection; using Microsoft.CSharp; delegate void ConvertTemplateDelegate(TextWriter tw, Dictionary<object, object> args); static class TemplateGenerator { public static ConvertTemplateDelegate Generate(string code) { CompilerParameters param = new CompilerParameters(); param.GenerateInMemory = true; param.ReferencedAssemblies.Add("System.Web.dll"); CompilerResults rs = new CSharpCodeProvider().CompileAssemblyFromSource(param, ParseTemplate(code)); if (0 < rs.Errors.Count) { StringWriter sw = new StringWriter(); sw.WriteLine("Compile Error..."); foreach (CompilerError err in rs.Errors) sw.WriteLine(err.ToString()); throw new Exception(sw.ToString()); } return (ConvertTemplateDelegate) Delegate.CreateDelegate(typeof(ConvertTemplateDelegate), rs.CompiledAssembly.GetType("Template", true).GetMethod("Convert")); } private static string ParseTemplate(string code) { using (StringWriter sw = new StringWriter()) { sw.WriteLine("using System; using System.Collections.Generic; using System.IO; using System.Web;"); sw.WriteLine("public static class Template {"); sw.WriteLine("public static void Convert(TextWriter tw, Dictionary<object, object> args) {"); int index = 0; while (0 <= index && index < code.Length) { int i = code.IndexOf("<%", index); sw.WriteLine("tw.Write(\"{0}\");", EscapeString(i < 0 ? code.Substring(index) : code.Substring(index, i - index))); if (0 <= i) { i += 2; int i2 = code.IndexOf("%>", i); if (0 <= i2) { string cc = code.Substring(i, i2 - i); if (cc.StartsWith("=")) sw.WriteLine("tw.Write(HttpUtility.HtmlEncode(\"\"+({0})));", cc.Substring(1)); else sw.WriteLine(cc); i = i2 + 2; } } index = i; } sw.WriteLine("}}"); return sw.ToString(); } } private static string EscapeString(string code) { return code.Replace("\\", "\\e").Replace("\"", "\\\"").Replace("\t", "\\t").Replace("\n", "\\n").Replace("\r", "\\r").Replace("\\e", "\\\\"); } }
サンプル C# コード。ためしにテンプレートから Xml 生成して、標準出力してみる。
class Program { static void Main(string[] args) { ConvertTemplateDelegate func = TemplateGenerator.Generate(TemplateEngine.Resource1.template); using (StringWriter sw = new StringWriter()) { Dictionary<object, object> arg = new Dictionary<object, object>(); arg["title"] = "template sample"; arg["data"] = new string[] { "foo", "fooo", "<strong>foooooooooo!</strong>" }; func(sw, arg); Console.WriteLine(sw); } } }
サンプルテンプレート
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title><%= args["title"] %></title> </head> <body> <h1><%= args["title"] %></h1> <table> <% string[] data = (string[]) args["data"]; %> <% for(int i = 0; i < data.Length; i++) { %> <tr bgcolor="<%= i % 2 == 0 ? "#FFCCCC" : "#CCCCFF" %>"> <td><%= i %></td> <td><%= data[i] %></td> </tr> <% } %> </table> </body> </html>
出力例
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>template sample</title> </head> <body> <h1>template sample</h1> <table> <tr bgcolor="#FFCCCC"> <td>0</td> <td>foo</td> </tr> <tr bgcolor="#CCCCFF"> <td>1</td> <td>fooo</td> </tr> <tr bgcolor="#FFCCCC"> <td>2</td> <td><strong>foooooooooo!</strong></td> </tr> </table> </body> </html>
CodeDom 使って動的コンパイル……って、このコードのままだとセキュリティ的に大問題な気がするな。
素直に ASP.NET 使ったほうが楽だと直感した。
あと EscapeString すっごく自信ない。たぶん修正が必要だと思うw
http://anond.hatelabo.jp/20071030174004
結局、サービス側でも区別するのはしょうがないと思うよ。
くだらないSPIの点でさえ、早慶と駅弁でかなり違うんだもん。
フィルタリングくらいしたっていいじゃないか。
俺、その元増田の文章読んで背筋が凍った。
DVDなくてPS2を貸した(俺は買ってあげた)ところまで同じ。
これってよくあることなのか??
というか、30半ばの女を会ったその日に抱こうとする男がいることに驚異を感じた。
昔一度、孫請けで開発したことがあるけど意味不明な使用で苦労した記憶がある。
コーディングしにくく、顧客にとって使いにくい仕様だったり、どう考えても実現不可能な仕様だったり沢山あった。
上流にかかわれば、コーディングしやすく顧客にとって使いやすい仕様を提案し納得させ、場合によっては金額も増やせるんだけどなーなんて思いながらコーディングしたよ。
他人を思いやる前に、自分のやりたいこと・すべきことをやっておく必要がある。
自分の気持ちを知る前に他人の気持ちを推し量ることはできないからだ。
だからいろいろやっておこうと思った。
年をとるとできなくなることってなんだろう。教えておじさんおばさん!
誤読してる。
彼は「そんなにお金かけたくないし」って言ってるってことは
見積りを書くようになればわかるさ( ,_ノ`)y━~~