ASP.Net开发遇到的若干问题

1.在js中想要获取页面gridview中的数据。

在网上搜索得到如下代码

[code lang=”js”] var reccomd = gdview.rows(rowIndex).cells(7).innerText;[/code]

在IE下测试通过,但是在Chrome下显示未定义,经过仔细排查,发现需要将索引圆括号改为方括号才为标准用法,即

[code lang=”js”] var reccomd = gdview.rows[rowIndex].cells[7].innerText;[/code]

如此则成功

2.想要通过获取gridview中按钮的客户端ID

[code lang=”js”]
document.getElementById(‘<%=btn.clientID%>’);
[/code]

来获取gridview中按钮的客户端ID,失败。

用FindControl方法应该可以,代码如下。

[code lang=”js”]
document.getElementById(‘<%=((Button)GridView1.FindControl("btn")).ClientID%>’);
[/code]

3.想要通过在页面添加隐藏控件来往后台传递数据

开始使用asp服务端控件把visable属性设置为false,失败,HTML未解析。

改用普通服务端控件则成功,代码如下

[php]<input id="Content_EngName" type="hidden" name="Content_EngName" />[/php]

4.Button按钮若设置了Href属性则onclick事件不再处理,不知何故。解决方法为把href触发的放入后台处理。

5.在WebApplication中没有APP_Code文件夹,若自行创建并将公共类放入其中,编译的时候并不会自动访问,会出现找不到公共类的情况。这是其区别于WebSite工程的一点。解决方法为将公共类文件的build Action设置为compile,则在编译时会自行生成DLL动态链接库文件。

6.当onclick事件触发postback时,会先执行当前页面的pageload,再执行masterpage的pageload,最后执行onclick指定的处理函数。若有onclientclick事件,则onclientclick指定的函数在上述函数之前执行。

7.vertical-align: inherit 在IE8及其之前版本中不被支持,在chrome中可以。

8.bootstrap框架在css中给所有label做了block,因此所有label都会换行,会影响asp空间dropdownlist的使用。

在XP下使用phpnow的问题

困扰了很久,在XP下使用phpnow 1.5.6版本会有点小问题,mysqli组件不能使用,即使在php.ini里面把前面的冒号释放了还有有问题。每次调用到关于mysqli.dll服务器会报错。不知道是不是mysqli.dll在XP下有兼容性问题。

 

先留存,以后有了解决方案来更新。

[补遗]微软 腾讯 阿里 百度 大众点评实习生面经

从3月9号投递出第一份简历开始算起到今天,整整两个月。如果没有今天微软HR的那句Congratulation的话,我已经彻底认定自己是一个弱逼。事实证明,我是一个好运的弱逼。

 

以下是笔试面试回忆:

 

微软:

第一关是简历筛选,筛选并不严格,基本上我周围的同学投了的都能够进入笔试环节。障碍点是要求英文简历,周围有同学就因为怕写英文简历放弃了这次机会,十分可惜。事实上英文简历也只是要求有就可以了。

第二关是笔试,苏州是安排在中科大苏州校区考的。题目分为技术题和智商题,技术题比较基础,智商题难度适中,高中数学能力不错的话应该没有问题。试卷是全英文的,20题不定项选择,部分正确给一半分,答错扣分。所以我的原则是不确定的一律不选,20题就选了一个多选结果发现还是错的。

这里是试卷

http://blog.csdn.net/fengbingyang/article/details/8764931

最终成绩微软不会公布,按照博主的答案自己估分是70分左右,进入了SDE的面试环节。 继续阅读[补遗]微软 腾讯 阿里 百度 大众点评实习生面经

[补遗]零基础小白使用LDA模型

 

一.输入解读:


-est -alpha 0.5 -beta 0.1 -ntopics 70 -niters 2000 -savestep 1000 -twords 15 -dfile 2.nohtml.nospace.seg.cn.nospace

这是我用LDA训练模型时使用的参数,以下为各参数的解读。

 


-est


表示
进行模型估计;另外还有两个可选的为-estc继续估计;还有一个-inf为利用训练好的模型来估计新文档。




-alpha 0.5 -beta 0.1 


这个两个参数涉及了很多看了就头大的公式,直观上比较好理解的引用梁斌penny的说法其中α,大家可以调大调小了试试看,调大了的结果是每个文档接近同一个topic,即让p(wi|topici)发挥的作用小,这样p(di|topici)发挥的作用就大。其中的β,调大的结果是让p(di|topici)发挥的作用变下,而让p(wi|topici)发挥的作用变大,体现在每个topic更集中在几个词汇上面,或者而每个词汇都尽可能的百分百概率转移到一个topic上。


就我个人而言,因为不知道怎么用。所以一直都是选用的0.50.1这两个。


GibbsLDA++的文档中说明了alpha默认使用topic数目除以100.




-ntopics


主题数。一开始比较让我费解的一个问题是这个主题数指的是输入的每一个文档的主题数目还是所有文档组成的整个语料库的主题数目。后来经过王利锋Fandy耐心指导,有了粗浅的认识。这里的主题数目是指整个输入的语料库的主题数,而后对少量文档进行inf的时候,尽管也会按照那么多的主题数进行推断。但是在输出文件.theta会有一个主题文档的分布,我们可以看到这是一个稀疏矩阵,有很多近似于0的数据。只有非零的那几个才是inf的文档的真实主题。因此我们大概可以推测说LDA模型即是用尽可能多训练数据产生尽可能多的主题,如果能够覆盖世界上所有主题,那么inf的结果是最接近真实的那个。所以训练的数据越大越好。

继续阅读[补遗]零基础小白使用LDA模型

[补遗]为什么Visual C产生的第一个随机数总是41?

前不久重看银河系漫游指南的产生一个困惑,为什么计算机最终得出的人和宇宙生命之类的终极答案是42?这个数字有什么特别的?难道就因为它紧紧挨着Visual C的Rand()函数产生的第一个随机数41?那为什么又是41?

于是为了探究宇宙和人类的本源,我开始考据为什么Rand()函数产生的第一个随机数是41这个究极问题。

本着科学严谨的精神,我采用了最严肃的考据方式。                                                                                   百度之。

未果。

尼玛那么奇妙的问题居然没有人解答!!

好吧,那我去编译器看一下源代码好了。如你所知,调用rand函数必须包含stdlib头,那么rand的实现毫无疑问就在stdlib.c的文件里面。可是,哪位英雄能告诉我怎么查看stdlib.c啊??

于是又未果。

自我落草为人以来从没有那么沮丧过。于是百度。

以下这个LCG算法就是大名鼎鼎的线性同余法,传说是最简单最朴素的的伪随机数产生算法。

LCG 算法数学上基于公式:

X(n+1) = (a * X(n) + c) % m  //果1.

其中,各系数为:

模m, m > 0
系数a, 0 < a < m
增量c, 0 <= c < m
原始值(种子) 0 <= X(0) < m
其中参数c, m, a比较敏感,或者说直接影响了伪随机数产生的质量。

分析公式不难发现,a,m,c和都是确定的参数,X(n)为种子数,X(n+1)就是产生的伪随机数了。

百度又说Visual C的初始种子为1,即X(0)=1,a=214013, c=2531011,m=2^32

于是我又一次本着严谨的科学态度把种子数和各参数带入公式,得出的结果2745024显然和宇宙的终极答案无关!

又一次沮丧于是百度。

int __cdecl rand ( void )
{
#ifdef _MT
_ptiddata ptd = _getptd();
return( ((ptd->_holdrand = ptd->_holdrand * 214013L
+ 2531011L) >> 16) & 0x7fff );
#else /* _MT */
return(((holdrand = holdrand * 214013L + 2531011L) >> 16) & 0x7fff);
#endif /* _MT */
}

相信一些编程功底稍强的同学看到这里就已经恍然大悟并且萌生了这个SB折腾那么久早点把代码贴出来不就好了这么自然而又合理的想法。可是为了照顾象我这样看到#和>>就头疼的小白不得不把程序再翻译一下。种子值的递推式是:seed = seed *214013L+2531011L //此处L的意思是该数位Long型,应该有警告编译器不要擅自优化的内涵返回值和种子值的关系是:return = (seed>>16) & 0x7fff即取seed的高16位后与7fff(16进制)=0111 1111 1111 1111(2进制)=32767(十进制)与一把

2745024=(1*214013+2531011)mod 2^32。看这个数字的高16位。0*8 +0010 1001 ,换算一下果然就是十进制的41耶!

0

至此,宇宙的的最终答案已经得到了解决。但是,本着严谨的科学态度,我们要经行下一步验证。

把41作为种子数带入,(41*214013+2531011)mod 2^32

2

其高16位显然不是我们熟悉的第二个伪随机数18467(10进制)= 0100 1000 0010 0011(2进制)

宇宙果然不是那么简单的..

换个思路,把处理之前的RAW(即右移取与之前的数)(2745024*214013+2531011)mod 2^32

3

将其高16位与0X7fff取与后即可得18467(10进制)= 0100 1000 0010 0011(2进制)。

经过后续实验发现,种子数取为运算后的二进制数的低32位,高位抛弃。

至此,宇宙的本源之谜彻底告破。

附1.

Visual C中Rand函数产生的前六个随机数

41

18467

6334

26500

19169

15724

之所以都没有超过32767是因为只取了16位,在stdlib.h里由宏RAND_MAX所控制。

附2.

部分编译器使用的各个参数值:

Source m a c rand() / Random(L)的种子位
Numerical Recipes 2^32 1664525 1013904223
Borland C/C++ 2^32 22695477 1 位30..16 in rand(), 30..0 in lrand()
glibc (used by GCC) 2^32 1103515245 12345 位30..0
ANSI C: Watcom, Digital Mars, CodeWarrior, IBM VisualAge C/C++ 2^32 1103515245 12345 位30..16
Borland Delphi, Virtual Pascal 2^32 134775813 1 位63..32 of (seed * L)
Microsoft Visual/Quick C/C++ 2^32 214013 2531011 位30..16
Apple CarbonLib 2^31-1 16807 0 见Park–Miller随机数发生器

参考:

1.Fangzhen的博客

2.算法驿站的博客

PS:电影中计算机算出42是因为天文学家在研究和测量银河系总重量的时候,发现答案竟然与42相呼应。这个答案是3 X 10^4千克,也就是3后面42个零。这似乎很深奥,但对天文学家来说知道银河系所有物质的总重量是解决暗物质问题的关键,据估计暗物质占据了96%的宇宙空间。 红色部分来自百度知道。