Repository: lijianying10/FixLinux Branch: master Commit: ba62087503e2 Files: 124 Total size: 313.4 KB Directory structure: gitextract_xi7hs17x/ ├── LICENSE ├── PS1.md ├── README.md ├── dockerfiles/ │ ├── QingCloudSDK/ │ │ └── Dockerfile │ ├── androidautobuild/ │ │ ├── Dockerfile │ │ └── sources.list │ ├── dmonit/ │ │ ├── Dockerfile │ │ └── Makefile │ ├── mitmproxy/ │ │ ├── Dockerfile │ │ ├── Readme.md │ │ └── sources.list │ ├── postgres/ │ │ └── Dockerfile │ └── smb/ │ └── Dockerfile ├── docs/ │ ├── StyleInd.ist │ ├── bibliography.bib │ ├── compile.bat │ ├── main.aux │ ├── main.bbl │ ├── main.bcf │ ├── main.blg │ ├── main.idx │ ├── main.ilg │ ├── main.ind │ ├── main.log │ ├── main.out │ ├── main.ptc │ ├── main.run.xml │ ├── main.tex │ ├── main.toc │ └── structure.tex ├── dotfile/ │ ├── .bashrc │ ├── .tmux.conf │ ├── .vimrc │ └── coc-settings.json ├── gh60.c ├── golangdev/ │ └── Dockerfile ├── mesos/ │ ├── docker-systemd/ │ │ ├── docker.service │ │ ├── system-docker.service │ │ └── system-docker.socket │ ├── master.sh │ ├── mesos-flannel-slave.sh │ ├── mesos-flannel.sh │ ├── mesos-systemd/ │ │ ├── multinode/ │ │ │ ├── gen.py │ │ │ ├── master.sh │ │ │ └── slave.sh │ │ └── singlenode/ │ │ ├── localinstall.sh │ │ └── netinstall.sh │ ├── repush.sh │ └── slave.sh ├── note/ │ ├── 779MGO设计调优.md │ ├── 788MongoDB存储过程性能调优.md │ ├── 790heredocJS多行字符串.md │ ├── AboutRancherOS.md │ ├── AndroidAutoBuild.md │ ├── DatatablesNote.md │ ├── GitMultRemote.md │ ├── GolangWebManual.md │ ├── HTMLinsertBefore.md │ ├── HomeBrew.md │ ├── MacAchieveEncoding.md │ ├── MetaRemap.md │ ├── MyPHPEnv.md │ ├── PHPExtensionWindows.md │ ├── PythonEscape.md │ ├── RHELAddLocalRepo.md │ ├── Readme.md │ ├── SetMysqlPassword.md │ ├── SetPasswordMongo.md │ ├── SublimeLicense.md │ ├── ToolBoxConfig.md │ ├── VirtualboxTray.md │ ├── WgetJdk.md │ ├── aboutGIT.md │ ├── baiduyunLocateError.md │ ├── bootstrap弹出插件.md │ ├── brewMysqlInstallLog.md │ ├── butterFly_termial.md │ ├── dockerChangeStoragePosition.md │ ├── dockerPostgresql.md │ ├── dockerReg.md │ ├── dockerRegV2.md │ ├── etcd.md │ ├── golangProjectOnIdea.md │ ├── golangUnitTest.md │ ├── golang中的坑.md │ ├── iterm2的坑.md │ ├── jsDownloadFile.md │ ├── json.toolunicodeescape.md │ ├── killall.md │ ├── liteIDE改装.md │ ├── mongodbUse_id.md │ ├── puttySmallKeyboard.md │ ├── puttyblue.md │ ├── pythonSimpleHTTPSERVER.md │ ├── saveGitPassword.md │ ├── ubuntuChangeRepo.sh │ ├── viEscpaeDelays.md │ ├── 取消sshPublicKeyKnowHost认证.md │ └── 科大lugDNS.md ├── prob/ │ ├── LFS journey.md │ ├── LinuxHeaderInstall.md │ ├── Linux分区.md │ ├── Linux虚拟机网络配置.md │ ├── MacTheme.md │ ├── PHP-RSA加密跨域通讯实战.md │ ├── PHPweb开发学习路线.md │ ├── qqOnLinux.md │ └── test.py ├── pythondev/ │ ├── .vimrc │ └── Dockerfile ├── rsakey/ │ └── id_rsa.pub ├── script/ │ ├── caidanhezidev │ ├── cleandocker │ ├── db.sh │ ├── e │ ├── env.sh │ ├── freem │ ├── k │ └── xdev └── st2/ ├── Dockerfile ├── docker-entrypoint.sh ├── st2.conf ├── st2ctl └── supervisord.conf ================================================ FILE CONTENTS ================================================ ================================================ FILE: LICENSE ================================================ GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. [http://fsf.org/] Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. {one line to give the program's name and a brief idea of what it does.} Copyright (C) {year} {fullname} This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see [http://www.gnu.org/licenses/]. Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: LinuxQuestions Copyright (C) 2014 Philo This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see [http://www.gnu.org/licenses/]. The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read [http://www.gnu.org/philosophy/why-not-lgpl.html]. ================================================ FILE: PS1.md ================================================ PS1="\[\033[32m\]\w\[\033[0m\]\n[\[\e[32m\]#\##\[\e[31m\]\u@\[\e[36m\]\h]\$\[\e[m\] " 多行的,第一行显示路径 PS1="[\[\e[32m\]#\##\[\e[31m\]\u@\[\e[36m\]\h \w]\$\[\e[m\]" 单行的 ================================================ FILE: README.md ================================================ Linux 问题解决 ========== 分享我的问题解决经验,开放我的环境,欢迎Fork LUKE! ================================================ FILE: dockerfiles/QingCloudSDK/Dockerfile ================================================ from python:2 RUN ingcloud-sdk CMD /bin/bash ================================================ FILE: dockerfiles/androidautobuild/Dockerfile ================================================ FROM ubuntu:18.04 MAINTAINER lijianying12@gmail.com RUN apt-get update && apt-get install -y sudo unzip openjdk-8-jdk gcc-multilib lib32z1 lib32stdc++6 git wget && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* ENV ANDROID_HOME /opt/android-sdk-linux/ ENV ANDROID_SDK_FILENAME sdk-tools-linux-4333796.zip ENV ANDROID_SDK_URL https://dl.google.com/android/repository/${ANDROID_SDK_FILENAME} ENV PATH ${PATH}:${ANDROID_HOME}/tools:${PATH}:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools:${JAVA_HOME}/bin/ RUN mkdir -p ${ANDROID_HOME} && \ cd ${ANDROID_HOME} && \ wget -q ${ANDROID_SDK_URL} && \ unzip ${ANDROID_SDK_FILENAME} && \ rm ${ANDROID_SDK_FILENAME} &&\ echo y | sdkmanager "build-tools;26.0.0" \ "build-tools;26.0.1" \ "build-tools;26.0.2" \ "build-tools;26.0.3" \ "build-tools;27.0.0" \ "build-tools;27.0.1" \ "build-tools;27.0.2" \ "build-tools;27.0.3" \ "build-tools;28.0.0" \ "build-tools;28.0.1" \ "build-tools;28.0.2" \ "build-tools;28.0.3" \ "build-tools;29.0.0" \ "build-tools;29.0.1" \ "cmake;3.10.2.4988404" \ "cmake;3.6.4111459" \ "extras;android;gapid;1" \ "extras;android;gapid;3" \ "extras;android;m2repository" \ "extras;google;auto" \ "extras;google;google_play_services" \ "extras;google;instantapps" \ "extras;google;m2repository" \ "extras;google;market_apk_expansion" \ "extras;google;market_licensing" \ "extras;google;simulators" \ "extras;google;webdriver" \ "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0" \ "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha4" \ "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha8" \ "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta1" \ "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta2" \ "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta3" \ "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta4" \ "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-beta5" \ "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.1" \ "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.2" \ "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0" \ "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha4" \ "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha8" \ "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta1" \ "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta2" \ "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta3" \ "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta4" \ "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-beta5" \ "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.1" \ "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2" \ "lldb;2.0" \ "lldb;2.1" \ "lldb;2.2" \ "lldb;2.3" \ "lldb;3.0" \ "lldb;3.1" \ "ndk-bundle" \ "ndk;20.0.5594570" \ "patcher;v4" \ "platform-tools" \ "platforms;android-26" \ "platforms;android-27" \ "platforms;android-28" \ "platforms;android-29" \ "tools" ENV PATH ${PATH}:/opt/gradle/gradle-current/bin/ RUN mkdir -p /opt/gradle && cd /opt/gradle && wget http://127.0.0.1:8000/gradle-4.8.1-bin.zip && wget http://127.0.0.1:8000/gradle-4.9-bin.zip && wget http://127.0.0.1:8000/gradle-5.5.1-bin.zip && unzip gradle-4.8.1-bin.zip &&\ unzip gradle-4.9-bin.zip &&\ unzip gradle-5.5.1-bin.zip &&\ rm *.zip ================================================ FILE: dockerfiles/androidautobuild/sources.list ================================================ # # deb cdrom:[Ubuntu-Server 14.04.2 LTS _Trusty Tahr_ - Release amd64 (20150218.1)]/ trusty main restricted #deb cdrom:[Ubuntu-Server 14.04.2 LTS _Trusty Tahr_ - Release amd64 (20150218.1)]/ trusty main restricted # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to # newer versions of the distribution. deb http://jp.archive.ubuntu.com/ubuntu/ trusty main restricted deb-src http://jp.archive.ubuntu.com/ubuntu/ trusty main restricted ## Major bug fix updates produced after the final release of the ## distribution. deb http://jp.archive.ubuntu.com/ubuntu/ trusty-updates main restricted deb-src http://jp.archive.ubuntu.com/ubuntu/ trusty-updates main restricted ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team. Also, please note that software in universe WILL NOT receive any ## review or updates from the Ubuntu security team. deb http://jp.archive.ubuntu.com/ubuntu/ trusty universe deb-src http://jp.archive.ubuntu.com/ubuntu/ trusty universe deb http://jp.archive.ubuntu.com/ubuntu/ trusty-updates universe deb-src http://jp.archive.ubuntu.com/ubuntu/ trusty-updates universe ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team, and may not be under a free licence. Please satisfy yourself as to ## your rights to use the software. Also, please note that software in ## multiverse WILL NOT receive any review or updates from the Ubuntu ## security team. deb http://jp.archive.ubuntu.com/ubuntu/ trusty multiverse deb-src http://jp.archive.ubuntu.com/ubuntu/ trusty multiverse deb http://jp.archive.ubuntu.com/ubuntu/ trusty-updates multiverse deb-src http://jp.archive.ubuntu.com/ubuntu/ trusty-updates multiverse ## N.B. software from this repository may not have been tested as ## extensively as that contained in the main release, although it includes ## newer versions of some applications which may provide useful features. ## Also, please note that software in backports WILL NOT receive any review ## or updates from the Ubuntu security team. deb http://jp.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse deb-src http://jp.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse deb http://security.ubuntu.com/ubuntu trusty-security main restricted deb-src http://security.ubuntu.com/ubuntu trusty-security main restricted deb http://security.ubuntu.com/ubuntu trusty-security universe deb-src http://security.ubuntu.com/ubuntu trusty-security universe deb http://security.ubuntu.com/ubuntu trusty-security multiverse deb-src http://security.ubuntu.com/ubuntu trusty-security multiverse ## Uncomment the following two lines to add software from Canonical's ## 'partner' repository. ## This software is not part of Ubuntu, but is offered by Canonical and the ## respective vendors as a service to Ubuntu users. # deb http://archive.canonical.com/ubuntu trusty partner # deb-src http://archive.canonical.com/ubuntu trusty partner ## Uncomment the following two lines to add software from Ubuntu's ## 'extras' repository. ## This software is not part of Ubuntu, but is offered by third-party ## developers who want to ship their latest software. # deb http://extras.ubuntu.com/ubuntu trusty main # deb-src http://extras.ubuntu.com/ubuntu trusty main ================================================ FILE: dockerfiles/dmonit/Dockerfile ================================================ FROM ubuntu:14.04 RUN sed -i 's/archive.ubuntu/mirrors.aliyun/g' /etc/apt/sources.list && apt-get update RUN apt-get install -y curl telnet git m4 texinfo libbz2-dev libcurl4-openssl-dev libexpat-dev libncurses-dev zlib1g-dev RUN apt-get install -y vim-nox locales xfonts-utils fontconfig tmux openssh-server screen COPY .tmux.conf /root/ COPY .bashrc /root/ COPY .vimrc /root/ COPY freem /bin/ COPY xdev /bin/ COPY e /bin/ RUN chmod +x /bin/e /bin/xdev /bin/freem RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && locale-gen "en_US.UTF-8" RUN mkdir /root/.ssh CMD service ssh start && echo $PUBKEY > /root/.ssh/authorized_keys && /bin/bash ================================================ FILE: dockerfiles/dmonit/Makefile ================================================ all: cp ../../dotfile/.tmux.conf . cp ../../dotfile/.vimrc . cp ../../dotfile/.bashrc . cp ../../script/freem . cp ../../script/xdev . cp ../../script/e . docker build -t dmonit:1.1 . rm .tmux.conf rm .vimrc rm .bashrc rm freem rm xdev rm e clean: rm .tmux.conf rm .vimrc rm .bashrc rm freem rm xdev rm e ================================================ FILE: dockerfiles/mitmproxy/Dockerfile ================================================ FROM ubuntu:14.04 COPY sources.list /etc/apt/sources.list ENV LANG en_US.UTF-8 RUN apt-get update && apt-get install -y mitmproxy locales xfonts-utils fontconfig && echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && locale-gen "en_US.UTF-8" ================================================ FILE: dockerfiles/mitmproxy/Readme.md ================================================ # 使用方法说明: 构建完成之后使用如下脚本来做到hijacking ``` #!/usr/bin/env python # coding=utf-8 def request(context, flow): if 'test.wifi.plus' == flow.request.host: if flow.request.scheme == "http": flow.request.host = "127.0.0.1" flow.request.port = 3000 ``` 命令 mitmproxy -p 8321 -s proxy.py 端口为http代理端口 脚本为上面的文件 Docker命令直接运行的方法: ``` docker run -it --rm -p 8321:8321 -v /root/proxy.py:/root/proxy.py mitmproxy mitmproxy -p 8321 -s /root/proxy.py ``` ================================================ FILE: dockerfiles/mitmproxy/sources.list ================================================ deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse ================================================ FILE: dockerfiles/postgres/Dockerfile ================================================ from ubuntu:14.04 RUN sed -i 's/archive.ubuntu/mirrors.aliyun/g' /etc/apt/sources.list && apt-get update && apt-get -y install postgresql-9.3 postgresql-client-9.3 postgresql-contrib-9.3 USER postgres RUN echo "host all all 0.0.0.0/0 md5" >> /etc/postgresql/9.3/main/pg_hba.conf RUN echo "listen_addresses='*'" >> /etc/postgresql/9.3/main/postgresql.conf EXPOSE 5432 CMD ["/usr/lib/postgresql/9.3/bin/postgres", "-D", "/var/lib/postgresql/9.3/main", "-c", "config_file=/etc/postgresql/9.3/main/postgresql.conf"] ================================================ FILE: dockerfiles/smb/Dockerfile ================================================ FROM ubuntu:14.04 RUN sed -i 's/archive.ubuntu/mirrors.aliyun/g' /etc/apt/sources.list && apt-get update && apt-get install -y samba smbfs CMD ['/bin/bash'] ================================================ FILE: docs/StyleInd.ist ================================================ delim_0 "\\dotfill\ " delim_1 "\\dotfill\ " headings_flag 1 heading_prefix "\\vspace*{0.5cm}\\nopagebreak\n\\tikz\\node at (0pt,0pt) [rounded corners=5pt,draw=ocre,fill=ocre!10,line width=1pt,inner sep=5pt]{\\parbox{\\linewidth-2\\fboxsep-2\\fboxrule-2pt}{\\centering\\large\\sffamily\\bfseries\\textcolor{black}{" heading_suffix "}}};\\vspace*{0.2cm}\\nopagebreak\n" ================================================ FILE: docs/bibliography.bib ================================================ @book{book_key, address = {City}, publisher = {Publisher}, author = {Smith, John}, title = {Book title}, year = {2012}, volume = {3}, series = {2}, edition = {1}, pages = {123--200}, month = {January} } @article{article_key, address = {City}, publisher = {Publisher}, author = {Smith, James}, title = {Article title}, year = {2013}, volume = {14}, number = {6}, pages = {1--8}, month = {March} } ================================================ FILE: docs/compile.bat ================================================ ::clean del /s /q main.aux main.bcf main.blg main.ilg main.log main.out main.pdf main.ptc main.run.xml main.toc ::comp pdflatex main makeindex main.idx -s StyleInd.ist biber main pdflatex main pdflatex main ================================================ FILE: docs/main.aux ================================================ \relax \providecommand\zref@newlabel[2]{} \providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} \HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined \global\let\oldcontentsline\contentsline \gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} \global\let\oldnewlabel\newlabel \gdef\newlabel#1#2{\newlabelxx{#1}#2} \gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} \AtEndDocument{\ifx\hyper@anchor\@undefined \let\contentsline\oldcontentsline \let\newlabel\oldnewlabel \fi} \fi} \global\let\hyper@last\relax \gdef\HyperFirstAtBeginDocument#1{#1} \providecommand\HyField@AuxAddToFields[1]{} \@writefile{toc}{\boolfalse {citerequest}\boolfalse {citetracker}\boolfalse {pagetracker}\boolfalse {backtracker}\relax } \@writefile{lof}{\boolfalse {citerequest}\boolfalse {citetracker}\boolfalse {pagetracker}\boolfalse {backtracker}\relax } \@writefile{lot}{\boolfalse {citerequest}\boolfalse {citetracker}\boolfalse {pagetracker}\boolfalse {backtracker}\relax } \select@language{english} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\select@language{english}} \@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\select@language{english}} \@writefile{lot}{\defcounter {refsection}{0}\relax }\@writefile{lot}{\select@language{english}} \pgfsyspdfmark {pgfid2}{0}{55380990} \pgfsyspdfmark {pgfid1}{5966969}{48902215} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {chapter}{\numberline {1}系统安装}{5}{chapter.1}} \@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\defcounter {refsection}{0}\relax }\@writefile{lot}{\addvspace {10\p@ }} \ttl@writefile{ptc}{\ttl@starttoc{default@1}} \pgfsyspdfmark {pgfid4}{0}{55380990} \pgfsyspdfmark {pgfid3}{5966969}{48902215} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {1.1}艾玛测试}{5}{section.1.1}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {1.2}Citation}{5}{section.1.2}} \abx@aux@backref{1}{book_key}{0}{5}{5} \abx@aux@backref{2}{article_key}{0}{5}{5} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {1.3}Lists}{5}{section.1.3}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {1.3.1}Numbered List}{5}{subsection.1.3.1}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {1.3.2}Bullet Points}{5}{subsection.1.3.2}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {1.3.3}Descriptions and Definitions}{5}{subsection.1.3.3}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {chapter}{\numberline {2}In-text Elements}{7}{chapter.2}} \@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\defcounter {refsection}{0}\relax }\@writefile{lot}{\addvspace {10\p@ }} \ttl@writefile{ptc}{\ttl@stoptoc{default@1}} \ttl@writefile{ptc}{\ttl@starttoc{default@2}} \pgfsyspdfmark {pgfid6}{0}{55380990} \pgfsyspdfmark {pgfid5}{5966969}{48902215} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {2.1}Theorems}{7}{section.2.1}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.1}Several equations}{7}{subsection.2.1.1}} \zref@newlabel{mdf@pagelabel-1}{\default{2.1.1}\page{7}\abspage{7}\mdf@pagevalue{7}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.2}Single Line}{7}{subsection.2.1.2}} \zref@newlabel{mdf@pagelabel-2}{\default{2.1.2}\page{7}\abspage{7}\mdf@pagevalue{7}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {2.2}Definitions}{7}{section.2.2}} \zref@newlabel{mdf@pagelabel-3}{\default{2.2}\page{7}\abspage{7}\mdf@pagevalue{7}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {2.3}Notations}{8}{section.2.3}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {2.4}Remarks}{8}{section.2.4}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {2.5}Corollaries}{8}{section.2.5}} \zref@newlabel{mdf@pagelabel-4}{\default{2.5}\page{8}\abspage{8}\mdf@pagevalue{8}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {2.6}Propositions}{8}{section.2.6}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {2.6.1}Several equations}{8}{subsection.2.6.1}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {2.6.2}Single Line}{8}{subsection.2.6.2}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {2.7}Examples}{8}{section.2.7}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {2.7.1}Equation and Text}{8}{subsection.2.7.1}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {2.7.2}Paragraph of Text}{9}{subsection.2.7.2}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {2.8}Exercises}{9}{section.2.8}} \zref@newlabel{mdf@pagelabel-5}{\default{2.8}\page{9}\abspage{9}\mdf@pagevalue{9}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {2.9}Problems}{9}{section.2.9}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {2.10}Vocabulary}{9}{section.2.10}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {chapter}{\numberline {3}Presenting Information}{11}{chapter.3}} \@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\defcounter {refsection}{0}\relax }\@writefile{lot}{\addvspace {10\p@ }} \ttl@writefile{ptc}{\ttl@stoptoc{default@2}} \ttl@writefile{ptc}{\ttl@starttoc{default@3}} \pgfsyspdfmark {pgfid9}{0}{55380990} \pgfsyspdfmark {pgfid8}{5966969}{48902215} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {3.1}Table}{11}{section.3.1}} \@writefile{lot}{\defcounter {refsection}{0}\relax }\@writefile{lot}{\contentsline {table}{\numberline {3.1}{\ignorespaces Table caption}}{11}{table.3.1}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {3.2}Figure}{11}{section.3.2}} \@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {3.1}{\ignorespaces Figure caption}}{11}{figure.3.1}} \pgfsyspdfmark {pgfid11}{0}{55380990} \pgfsyspdfmark {pgfid10}{5966969}{48902215} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {chapter}{\leavevmode {\color {ocre}Bibliography}}{13}{chapter*.2}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Books}{13}{section*.3}} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{Articles}{13}{section*.4}} \pgfsyspdfmark {pgfid13}{0}{55380990} \pgfsyspdfmark {pgfid12}{5966969}{49623111} \@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {chapter}{\leavevmode {\color {ocre}Index}}{15}{section*.5}} \ttl@finishall ================================================ FILE: docs/main.bbl ================================================ % $ biblatex auxiliary file $ % $ biblatex version 1.7 $ % $ biber version 0.9.9 $ % Do not modify the above lines! % % This is an auxiliary file used by the 'biblatex' package. % This file may safely be deleted. It will be recreated by % biber or bibtex as required. % \begingroup \makeatletter \@ifundefined{ver@biblatex.sty} {\@latex@error {Missing 'biblatex' package} {The bibliography requires the 'biblatex' package.} \aftergroup\endinput} {} \endgroup \refsection{0} \entry{article_key}{article}{} \name{labelname}{1}{}{% {{hash=26a8b4a95216218b2dfc1460f6d4c494}{Smith}{S\bibinitperiod}{James}{J\bibinitperiod}{}{}{}{}}% } \name{author}{1}{}{% {{hash=26a8b4a95216218b2dfc1460f6d4c494}{Smith}{S\bibinitperiod}{James}{J\bibinitperiod}{}{}{}{}}% } \list{location}{1}{% {City}% } \list{publisher}{1}{% {Publisher}% } \strng{namehash}{26a8b4a95216218b2dfc1460f6d4c494} \strng{fullhash}{26a8b4a95216218b2dfc1460f6d4c494} \field{labelalpha}{Smi13} \field{sortinit}{S} \field{month}{03} \field{number}{6} \field{title}{Article title} \field{volume}{14} \field{year}{2013} \field{pages}{1\bibrangedash 8} \endentry \entry{book_key}{book}{} \name{labelname}{1}{}{% {{hash=5d0ddda3a367ceb26fbaeca02e391c22}{Smith}{S\bibinitperiod}{John}{J\bibinitperiod}{}{}{}{}}% } \name{author}{1}{}{% {{hash=5d0ddda3a367ceb26fbaeca02e391c22}{Smith}{S\bibinitperiod}{John}{J\bibinitperiod}{}{}{}{}}% } \list{location}{1}{% {City}% } \list{publisher}{1}{% {Publisher}% } \strng{namehash}{5d0ddda3a367ceb26fbaeca02e391c22} \strng{fullhash}{5d0ddda3a367ceb26fbaeca02e391c22} \field{labelalpha}{Smi12} \field{sortinit}{S} \field{edition}{1} \field{month}{01} \field{series}{2} \field{title}{Book title} \field{volume}{3} \field{year}{2012} \field{pages}{123\bibrangedash 200} \endentry \endrefsection \endinput ================================================ FILE: docs/main.bcf ================================================ bblencoding utf8 bibencoding utf8 debug 0 mincrossrefs 2 sortcase 1 sortupper 1 alphaothers + labelalpha 1 labelnamespec shortauthor author shorteditor editor translator labelyear 0 labelyearspec year eventyear origyear urlyear maxalphanames 3 maxbibnames 3 maxcitenames 3 maxitems 3 minalphanames 1 minbibnames 1 mincitenames 1 minitems 1 singletitle 0 sortalphaothers + sortlos 1 uniquelist 0 uniquename 0 useauthor 1 useeditor 1 useprefix 0 usetranslator 0 * original romanised uniform translated mm presort sortkey sortname author editor translator sorttitle title sortyear year sorttitle title volume 0000 bibliography.bib book_key article_key ================================================ FILE: docs/main.blg ================================================ [0] Config.pm:300> INFO - This is Biber 0.9.9 [0] Config.pm:303> INFO - Logfile is 'main.blg' [1] biber-MSWIN:142> INFO - === %a %b %e, %Y, %H:%M:%S [1] Biber.pm:271> INFO - Reading 'main.bcf' [14] Biber.pm:586> INFO - Found 2 citekeys in bib section 0 [22] Biber.pm:2585> INFO - Processing bib section 0 [40] Biber.pm:2677> INFO - Looking for bibtex format file 'bibliography.bib' for section 0 [43] bibtex.pm:833> INFO - Decoding LaTeX character macros into UTF-8 [44] bibtex.pm:837> INFO - Finished Decoding LaTeX character macros into UTF-8 [44] bibtex.pm:708> INFO - Found BibTeX data source 'bibliography.bib' [100] Biber.pm:2480> INFO - Sorting list 'MAIN' keys [100] Biber.pm:2484> INFO - No sort tailoring available for locale 'English_United States.1252' [108] Biber.pm:2480> INFO - Sorting list 'SHORTHANDS' keys [108] Biber.pm:2484> INFO - No sort tailoring available for locale 'English_United States.1252' [118] bbl.pm:427> INFO - Writing 'main.bbl' with encoding 'UTF-8' [119] bbl.pm:498> INFO - Output to main.bbl ================================================ FILE: docs/main.idx ================================================ \indexentry{艾玛测试|hyperpage}{5} \indexentry{Citation|hyperpage}{5} \indexentry{Lists|hyperpage}{5} \indexentry{Lists!Numbered List|hyperpage}{5} \indexentry{Lists!Bullet Points|hyperpage}{5} \indexentry{Lists!Descriptions and Definitions|hyperpage}{5} \indexentry{Theorems|hyperpage}{7} \indexentry{Theorems!Several Equations|hyperpage}{7} \indexentry{Theorems!Single Line|hyperpage}{7} \indexentry{Definitions|hyperpage}{7} \indexentry{Notations|hyperpage}{8} \indexentry{Remarks|hyperpage}{8} \indexentry{Corollaries|hyperpage}{8} \indexentry{Propositions|hyperpage}{8} \indexentry{Propositions!Several Equations|hyperpage}{8} \indexentry{Propositions!Single Line|hyperpage}{8} \indexentry{Examples|hyperpage}{8} \indexentry{Examples!Equation and Text|hyperpage}{8} \indexentry{Examples!Paragraph of Text|hyperpage}{9} \indexentry{Exercises|hyperpage}{9} \indexentry{Problems|hyperpage}{9} \indexentry{Vocabulary|hyperpage}{9} \indexentry{Table|hyperpage}{11} \indexentry{Figure|hyperpage}{11} ================================================ FILE: docs/main.ilg ================================================ This is makeindex, version 2.15 [TeX Live 2010] (kpathsea + Thai support). Scanning style file ./StyleInd.ist.....done (5 attributes redefined, 0 ignored). Scanning input file main.idx....done (24 entries accepted, 0 rejected). Sorting entries....done (118 comparisons). Generating output file main.ind....done (80 lines written, 0 warnings). Output written in main.ind. Transcript written in main.ilg. ================================================ FILE: docs/main.ind ================================================ \begin{theindex} \vspace*{0.5cm}\nopagebreak \tikz\node at (0pt,0pt) [rounded corners=5pt,draw=ocre,fill=ocre!10,line width=1pt,inner sep=5pt]{\parbox{\linewidth-2\fboxsep-2\fboxrule-2pt}{\centering\large\sffamily\bfseries\textcolor{black}{C}}};\vspace*{0.2cm}\nopagebreak \item Citation\dotfill \hyperpage{5} \item Corollaries\dotfill \hyperpage{8} \indexspace \vspace*{0.5cm}\nopagebreak \tikz\node at (0pt,0pt) [rounded corners=5pt,draw=ocre,fill=ocre!10,line width=1pt,inner sep=5pt]{\parbox{\linewidth-2\fboxsep-2\fboxrule-2pt}{\centering\large\sffamily\bfseries\textcolor{black}{D}}};\vspace*{0.2cm}\nopagebreak \item Definitions\dotfill \hyperpage{7} \indexspace \vspace*{0.5cm}\nopagebreak \tikz\node at (0pt,0pt) [rounded corners=5pt,draw=ocre,fill=ocre!10,line width=1pt,inner sep=5pt]{\parbox{\linewidth-2\fboxsep-2\fboxrule-2pt}{\centering\large\sffamily\bfseries\textcolor{black}{E}}};\vspace*{0.2cm}\nopagebreak \item Examples\dotfill \hyperpage{8} \subitem Equation and Text\dotfill \hyperpage{8} \subitem Paragraph of Text\dotfill \hyperpage{9} \item Exercises\dotfill \hyperpage{9} \indexspace \vspace*{0.5cm}\nopagebreak \tikz\node at (0pt,0pt) [rounded corners=5pt,draw=ocre,fill=ocre!10,line width=1pt,inner sep=5pt]{\parbox{\linewidth-2\fboxsep-2\fboxrule-2pt}{\centering\large\sffamily\bfseries\textcolor{black}{F}}};\vspace*{0.2cm}\nopagebreak \item Figure\dotfill \hyperpage{11} \indexspace \vspace*{0.5cm}\nopagebreak \tikz\node at (0pt,0pt) [rounded corners=5pt,draw=ocre,fill=ocre!10,line width=1pt,inner sep=5pt]{\parbox{\linewidth-2\fboxsep-2\fboxrule-2pt}{\centering\large\sffamily\bfseries\textcolor{black}{L}}};\vspace*{0.2cm}\nopagebreak \item Lists\dotfill \hyperpage{5} \subitem Bullet Points\dotfill \hyperpage{5} \subitem Descriptions and Definitions\dotfill \hyperpage{5} \subitem Numbered List\dotfill \hyperpage{5} \indexspace \vspace*{0.5cm}\nopagebreak \tikz\node at (0pt,0pt) [rounded corners=5pt,draw=ocre,fill=ocre!10,line width=1pt,inner sep=5pt]{\parbox{\linewidth-2\fboxsep-2\fboxrule-2pt}{\centering\large\sffamily\bfseries\textcolor{black}{N}}};\vspace*{0.2cm}\nopagebreak \item Notations\dotfill \hyperpage{8} \indexspace \vspace*{0.5cm}\nopagebreak \tikz\node at (0pt,0pt) [rounded corners=5pt,draw=ocre,fill=ocre!10,line width=1pt,inner sep=5pt]{\parbox{\linewidth-2\fboxsep-2\fboxrule-2pt}{\centering\large\sffamily\bfseries\textcolor{black}{P}}};\vspace*{0.2cm}\nopagebreak \item Problems\dotfill \hyperpage{9} \item Propositions\dotfill \hyperpage{8} \subitem Several Equations\dotfill \hyperpage{8} \subitem Single Line\dotfill \hyperpage{8} \indexspace \vspace*{0.5cm}\nopagebreak \tikz\node at (0pt,0pt) [rounded corners=5pt,draw=ocre,fill=ocre!10,line width=1pt,inner sep=5pt]{\parbox{\linewidth-2\fboxsep-2\fboxrule-2pt}{\centering\large\sffamily\bfseries\textcolor{black}{R}}};\vspace*{0.2cm}\nopagebreak \item Remarks\dotfill \hyperpage{8} \indexspace \vspace*{0.5cm}\nopagebreak \tikz\node at (0pt,0pt) [rounded corners=5pt,draw=ocre,fill=ocre!10,line width=1pt,inner sep=5pt]{\parbox{\linewidth-2\fboxsep-2\fboxrule-2pt}{\centering\large\sffamily\bfseries\textcolor{black}{T}}};\vspace*{0.2cm}\nopagebreak \item Table\dotfill \hyperpage{11} \item Theorems\dotfill \hyperpage{7} \subitem Several Equations\dotfill \hyperpage{7} \subitem Single Line\dotfill \hyperpage{7} \indexspace \vspace*{0.5cm}\nopagebreak \tikz\node at (0pt,0pt) [rounded corners=5pt,draw=ocre,fill=ocre!10,line width=1pt,inner sep=5pt]{\parbox{\linewidth-2\fboxsep-2\fboxrule-2pt}{\centering\large\sffamily\bfseries\textcolor{black}{V}}};\vspace*{0.2cm}\nopagebreak \item Vocabulary\dotfill \hyperpage{9} \indexspace \vspace*{0.5cm}\nopagebreak \tikz\node at (0pt,0pt) [rounded corners=5pt,draw=ocre,fill=ocre!10,line width=1pt,inner sep=5pt]{\parbox{\linewidth-2\fboxsep-2\fboxrule-2pt}{\centering\large\sffamily\bfseries\textcolor{black}{}}};\vspace*{0.2cm}\nopagebreak \item 艾玛测试\dotfill \hyperpage{5} \end{theindex} ================================================ FILE: docs/main.log ================================================ This is pdfTeX, Version 3.1415926-2.4-1.40.13 (TeX Live 2012/W32TeX) (format=pdflatex 2014.5.4) 27 MAY 2014 09:22 entering extended mode restricted \write18 enabled. %&-line parsing enabled. **main (./main.tex LaTeX2e <2011/06/27> Babel and hyphenation patterns for english, dumylang, nohyphenation, ge rman-x-2012-05-30, ngerman-x-2012-05-30, afrikaans, ancientgreek, ibycus, arabi c, armenian, basque, bulgarian, catalan, pinyin, coptic, croatian, czech, danis h, dutch, ukenglish, usenglishmax, esperanto, estonian, ethiopic, farsi, finnis h, french, friulan, galician, german, ngerman, swissgerman, monogreek, greek, h ungarian, icelandic, assamese, bengali, gujarati, hindi, kannada, malayalam, ma rathi, oriya, panjabi, tamil, telugu, indonesian, interlingua, irish, italian, kurmanji, latin, latvian, lithuanian, mongolian, mongolianlmc, bokmal, nynorsk, polish, portuguese, romanian, romansh, russian, sanskrit, serbian, serbianc, s lovak, slovenian, spanish, swedish, turkish, turkmen, ukrainian, uppersorbian, welsh, loaded. (d:/texlive/2012/texmf-dist/tex/latex/base/book.cls Document Class: book 2007/10/19 v1.4h Standard LaTeX document class (d:/texlive/2012/texmf-dist/tex/latex/base/fleqn.clo File: fleqn.clo 1998/08/17 v1.1c Standard LaTeX option (flush left equations) \mathindent=\dimen102 ) (d:/texlive/2012/texmf-dist/tex/latex/base/bk11.clo File: bk11.clo 2007/10/19 v1.4h Standard LaTeX file (size option) ) \c@part=\count79 \c@chapter=\count80 \c@section=\count81 \c@subsection=\count82 \c@subsubsection=\count83 \c@paragraph=\count84 \c@subparagraph=\count85 \c@figure=\count86 \c@table=\count87 \abovecaptionskip=\skip41 \belowcaptionskip=\skip42 \bibindent=\dimen103 ) (d:/texlive/2012/texmf-dist/tex/latex/geometry/geometry.sty Package: geometry 2010/09/12 v5.6 Page Geometry (d:/texlive/2012/texmf-dist/tex/latex/graphics/keyval.sty Package: keyval 1999/03/16 v1.13 key=value parser (DPC) \KV@toks@=\toks14 ) (d:/texlive/2012/texmf-dist/tex/generic/oberdiek/ifpdf.sty Package: ifpdf 2011/01/30 v2.3 Provides the ifpdf switch (HO) Package ifpdf Info: pdfTeX in PDF mode is detected. ) (d:/texlive/2012/texmf-dist/tex/generic/oberdiek/ifvtex.sty Package: ifvtex 2010/03/01 v1.5 Detect VTeX and its facilities (HO) Package ifvtex Info: VTeX not detected. ) (d:/texlive/2012/texmf-dist/tex/generic/ifxetex/ifxetex.sty Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional ) \Gm@cnth=\count88 \Gm@cntv=\count89 \c@Gm@tempcnt=\count90 \Gm@bindingoffset=\dimen104 \Gm@wd@mp=\dimen105 \Gm@odd@mp=\dimen106 \Gm@even@mp=\dimen107 \Gm@layoutwidth=\dimen108 \Gm@layoutheight=\dimen109 \Gm@layouthoffset=\dimen110 \Gm@layoutvoffset=\dimen111 \Gm@dimlist=\toks15 ) (d:/texlive/2012/texmf-dist/tex/latex/cjk/texinput/CJKutf8.sty Package: CJKutf8 2012/05/07 4.8.3 (d:/texlive/2012/texmf-dist/tex/latex/base/inputenc.sty Package: inputenc 2008/03/30 v1.1d Input encoding file \inpenc@prehook=\toks16 \inpenc@posthook=\toks17 (d:/texlive/2012/texmf-dist/tex/latex/base/utf8.def File: utf8.def 2008/04/05 v1.1m UTF-8 support for inputenc Now handling font encoding OML ... ... no UTF-8 mapping file for font encoding OML Now handling font encoding T1 ... ... processing UTF-8 mapping file for font encoding T1 (d:/texlive/2012/texmf-dist/tex/latex/base/t1enc.dfu File: t1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc defining Unicode char U+00A1 (decimal 161) defining Unicode char U+00A3 (decimal 163) defining Unicode char U+00AB (decimal 171) defining Unicode char U+00BB (decimal 187) defining Unicode char U+00BF (decimal 191) defining Unicode char U+00C0 (decimal 192) defining Unicode char U+00C1 (decimal 193) defining Unicode char U+00C2 (decimal 194) defining Unicode char U+00C3 (decimal 195) defining Unicode char U+00C4 (decimal 196) defining Unicode char U+00C5 (decimal 197) defining Unicode char U+00C6 (decimal 198) defining Unicode char U+00C7 (decimal 199) defining Unicode char U+00C8 (decimal 200) defining Unicode char U+00C9 (decimal 201) defining Unicode char U+00CA (decimal 202) defining Unicode char U+00CB (decimal 203) defining Unicode char U+00CC (decimal 204) defining Unicode char U+00CD (decimal 205) defining Unicode char U+00CE (decimal 206) defining Unicode char U+00CF (decimal 207) defining Unicode char U+00D0 (decimal 208) defining Unicode char U+00D1 (decimal 209) defining Unicode char U+00D2 (decimal 210) defining Unicode char U+00D3 (decimal 211) defining Unicode char U+00D4 (decimal 212) defining Unicode char U+00D5 (decimal 213) defining Unicode char U+00D6 (decimal 214) defining Unicode char U+00D8 (decimal 216) defining Unicode char U+00D9 (decimal 217) defining Unicode char U+00DA (decimal 218) defining Unicode char U+00DB (decimal 219) defining Unicode char U+00DC (decimal 220) defining Unicode char U+00DD (decimal 221) defining Unicode char U+00DE (decimal 222) defining Unicode char U+00DF (decimal 223) defining Unicode char U+00E0 (decimal 224) defining Unicode char U+00E1 (decimal 225) defining Unicode char U+00E2 (decimal 226) defining Unicode char U+00E3 (decimal 227) defining Unicode char U+00E4 (decimal 228) defining Unicode char U+00E5 (decimal 229) defining Unicode char U+00E6 (decimal 230) defining Unicode char U+00E7 (decimal 231) defining Unicode char U+00E8 (decimal 232) defining Unicode char U+00E9 (decimal 233) defining Unicode char U+00EA (decimal 234) defining Unicode char U+00EB (decimal 235) defining Unicode char U+00EC (decimal 236) defining Unicode char U+00ED (decimal 237) defining Unicode char U+00EE (decimal 238) defining Unicode char U+00EF (decimal 239) defining Unicode char U+00F0 (decimal 240) defining Unicode char U+00F1 (decimal 241) defining Unicode char U+00F2 (decimal 242) defining Unicode char U+00F3 (decimal 243) defining Unicode char U+00F4 (decimal 244) defining Unicode char U+00F5 (decimal 245) defining Unicode char U+00F6 (decimal 246) defining Unicode char U+00F8 (decimal 248) defining Unicode char U+00F9 (decimal 249) defining Unicode char U+00FA (decimal 250) defining Unicode char U+00FB (decimal 251) defining Unicode char U+00FC (decimal 252) defining Unicode char U+00FD (decimal 253) defining Unicode char U+00FE (decimal 254) defining Unicode char U+00FF (decimal 255) defining Unicode char U+0102 (decimal 258) defining Unicode char U+0103 (decimal 259) defining Unicode char U+0104 (decimal 260) defining Unicode char U+0105 (decimal 261) defining Unicode char U+0106 (decimal 262) defining Unicode char U+0107 (decimal 263) defining Unicode char U+010C (decimal 268) defining Unicode char U+010D (decimal 269) defining Unicode char U+010E (decimal 270) defining Unicode char U+010F (decimal 271) defining Unicode char U+0110 (decimal 272) defining Unicode char U+0111 (decimal 273) defining Unicode char U+0118 (decimal 280) defining Unicode char U+0119 (decimal 281) defining Unicode char U+011A (decimal 282) defining Unicode char U+011B (decimal 283) defining Unicode char U+011E (decimal 286) defining Unicode char U+011F (decimal 287) defining Unicode char U+0130 (decimal 304) defining Unicode char U+0131 (decimal 305) defining Unicode char U+0132 (decimal 306) defining Unicode char U+0133 (decimal 307) defining Unicode char U+0139 (decimal 313) defining Unicode char U+013A (decimal 314) defining Unicode char U+013D (decimal 317) defining Unicode char U+013E (decimal 318) defining Unicode char U+0141 (decimal 321) defining Unicode char U+0142 (decimal 322) defining Unicode char U+0143 (decimal 323) defining Unicode char U+0144 (decimal 324) defining Unicode char U+0147 (decimal 327) defining Unicode char U+0148 (decimal 328) defining Unicode char U+014A (decimal 330) defining Unicode char U+014B (decimal 331) defining Unicode char U+0150 (decimal 336) defining Unicode char U+0151 (decimal 337) defining Unicode char U+0152 (decimal 338) defining Unicode char U+0153 (decimal 339) defining Unicode char U+0154 (decimal 340) defining Unicode char U+0155 (decimal 341) defining Unicode char U+0158 (decimal 344) defining Unicode char U+0159 (decimal 345) defining Unicode char U+015A (decimal 346) defining Unicode char U+015B (decimal 347) defining Unicode char U+015E (decimal 350) defining Unicode char U+015F (decimal 351) defining Unicode char U+0160 (decimal 352) defining Unicode char U+0161 (decimal 353) defining Unicode char U+0162 (decimal 354) defining Unicode char U+0163 (decimal 355) defining Unicode char U+0164 (decimal 356) defining Unicode char U+0165 (decimal 357) defining Unicode char U+016E (decimal 366) defining Unicode char U+016F (decimal 367) defining Unicode char U+0170 (decimal 368) defining Unicode char U+0171 (decimal 369) defining Unicode char U+0178 (decimal 376) defining Unicode char U+0179 (decimal 377) defining Unicode char U+017A (decimal 378) defining Unicode char U+017B (decimal 379) defining Unicode char U+017C (decimal 380) defining Unicode char U+017D (decimal 381) defining Unicode char U+017E (decimal 382) defining Unicode char U+200C (decimal 8204) defining Unicode char U+2013 (decimal 8211) defining Unicode char U+2014 (decimal 8212) defining Unicode char U+2018 (decimal 8216) defining Unicode char U+2019 (decimal 8217) defining Unicode char U+201A (decimal 8218) defining Unicode char U+201C (decimal 8220) defining Unicode char U+201D (decimal 8221) defining Unicode char U+201E (decimal 8222) defining Unicode char U+2030 (decimal 8240) defining Unicode char U+2031 (decimal 8241) defining Unicode char U+2039 (decimal 8249) defining Unicode char U+203A (decimal 8250) defining Unicode char U+2423 (decimal 9251) ) Now handling font encoding OT1 ... ... processing UTF-8 mapping file for font encoding OT1 (d:/texlive/2012/texmf-dist/tex/latex/base/ot1enc.dfu File: ot1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc defining Unicode char U+00A1 (decimal 161) defining Unicode char U+00A3 (decimal 163) defining Unicode char U+00B8 (decimal 184) defining Unicode char U+00BF (decimal 191) defining Unicode char U+00C5 (decimal 197) defining Unicode char U+00C6 (decimal 198) defining Unicode char U+00D8 (decimal 216) defining Unicode char U+00DF (decimal 223) defining Unicode char U+00E6 (decimal 230) defining Unicode char U+00EC (decimal 236) defining Unicode char U+00ED (decimal 237) defining Unicode char U+00EE (decimal 238) defining Unicode char U+00EF (decimal 239) defining Unicode char U+00F8 (decimal 248) defining Unicode char U+0131 (decimal 305) defining Unicode char U+0141 (decimal 321) defining Unicode char U+0142 (decimal 322) defining Unicode char U+0152 (decimal 338) defining Unicode char U+0153 (decimal 339) defining Unicode char U+2013 (decimal 8211) defining Unicode char U+2014 (decimal 8212) defining Unicode char U+2018 (decimal 8216) defining Unicode char U+2019 (decimal 8217) defining Unicode char U+201C (decimal 8220) defining Unicode char U+201D (decimal 8221) ) Now handling font encoding OMS ... ... processing UTF-8 mapping file for font encoding OMS (d:/texlive/2012/texmf-dist/tex/latex/base/omsenc.dfu File: omsenc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc defining Unicode char U+00A7 (decimal 167) defining Unicode char U+00B6 (decimal 182) defining Unicode char U+00B7 (decimal 183) defining Unicode char U+2020 (decimal 8224) defining Unicode char U+2021 (decimal 8225) defining Unicode char U+2022 (decimal 8226) ) Now handling font encoding OMX ... ... no UTF-8 mapping file for font encoding OMX Now handling font encoding U ... ... no UTF-8 mapping file for font encoding U defining Unicode char U+00A9 (decimal 169) defining Unicode char U+00AA (decimal 170) defining Unicode char U+00AE (decimal 174) defining Unicode char U+00BA (decimal 186) defining Unicode char U+02C6 (decimal 710) defining Unicode char U+02DC (decimal 732) defining Unicode char U+200C (decimal 8204) defining Unicode char U+2026 (decimal 8230) defining Unicode char U+2122 (decimal 8482) defining Unicode char U+2423 (decimal 9251) )) (d:/texlive/2012/texmf-dist/tex/latex/cjk/texinput/CJK.sty Package: CJK 2012/05/07 4.8.3 (d:/texlive/2012/texmf-dist/tex/latex/cjk/texinput/mule/MULEenc.sty Package: MULEenc 2012/05/07 4.8.3 ) (d:/texlive/2012/texmf-dist/tex/latex/cjk/texinput/CJK.enc File: CJK.enc 2012/05/07 4.8.3 Now handling font encoding C00 ... ... no UTF-8 mapping file for font encoding C00 Now handling font encoding C05 ... ... no UTF-8 mapping file for font encoding C05 Now handling font encoding C09 ... ... no UTF-8 mapping file for font encoding C09 Now handling font encoding C10 ... ... no UTF-8 mapping file for font encoding C10 Now handling font encoding C20 ... ... no UTF-8 mapping file for font encoding C20 Now handling font encoding C19 ... ... no UTF-8 mapping file for font encoding C19 Now handling font encoding C40 ... ... no UTF-8 mapping file for font encoding C40 Now handling font encoding C42 ... ... no UTF-8 mapping file for font encoding C42 Now handling font encoding C43 ... ... no UTF-8 mapping file for font encoding C43 Now handling font encoding C50 ... ... no UTF-8 mapping file for font encoding C50 Now handling font encoding C52 ... ... no UTF-8 mapping file for font encoding C52 Now handling font encoding C49 ... ... no UTF-8 mapping file for font encoding C49 Now handling font encoding C60 ... ... no UTF-8 mapping file for font encoding C60 Now handling font encoding C61 ... ... no UTF-8 mapping file for font encoding C61 Now handling font encoding C63 ... ... no UTF-8 mapping file for font encoding C63 Now handling font encoding C64 ... ... no UTF-8 mapping file for font encoding C64 Now handling font encoding C65 ... ... no UTF-8 mapping file for font encoding C65 Now handling font encoding C70 ... ... no UTF-8 mapping file for font encoding C70 Now handling font encoding C31 ... ... no UTF-8 mapping file for font encoding C31 Now handling font encoding C32 ... ... no UTF-8 mapping file for font encoding C32 Now handling font encoding C33 ... ... no UTF-8 mapping file for font encoding C33 Now handling font encoding C34 ... ... no UTF-8 mapping file for font encoding C34 Now handling font encoding C35 ... ... no UTF-8 mapping file for font encoding C35 Now handling font encoding C36 ... ... no UTF-8 mapping file for font encoding C36 Now handling font encoding C37 ... ... no UTF-8 mapping file for font encoding C37 Now handling font encoding C80 ... ... no UTF-8 mapping file for font encoding C80 Now handling font encoding C81 ... ... no UTF-8 mapping file for font encoding C81 Now handling font encoding C01 ... ... no UTF-8 mapping file for font encoding C01 Now handling font encoding C11 ... ... no UTF-8 mapping file for font encoding C11 Now handling font encoding C21 ... ... no UTF-8 mapping file for font encoding C21 Now handling font encoding C41 ... ... no UTF-8 mapping file for font encoding C41 Now handling font encoding C62 ... ... no UTF-8 mapping file for font encoding C62 ) LaTeX Info: Redefining \selectfont on input line 755. \CJK@indent=\box26 ) (d:/texlive/2012/texmf-dist/tex/latex/base/fontenc.sty Package: fontenc 2005/09/27 v1.99g Standard LaTeX package )) (d:/texlive/2012/texmf-dist/tex/latex/xcolor/xcolor.sty Package: xcolor 2007/01/21 v2.11 LaTeX color extensions (UK) (d:/texlive/2012/texmf-dist/tex/latex/latexconfig/color.cfg File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive ) Package xcolor Info: Driver file: pdftex.def on input line 225. (d:/texlive/2012/texmf-dist/tex/latex/pdftex-def/pdftex.def File: pdftex.def 2011/05/27 v0.06d Graphics/color for pdfTeX (d:/texlive/2012/texmf-dist/tex/generic/oberdiek/infwarerr.sty Package: infwarerr 2010/04/08 v1.3 Providing info/warning/error messages (HO) ) (d:/texlive/2012/texmf-dist/tex/generic/oberdiek/ltxcmds.sty Package: ltxcmds 2011/11/09 v1.22 LaTeX kernel commands for general use (HO) ) \Gread@gobject=\count91 ) Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1337. Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1341. Package xcolor Info: Model `RGB' extended on input line 1353. Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1355. Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1356. Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1357. Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1358. Package xcolor Info: Model `Gray' substituted by `gray' on input line 1359. Package xcolor Info: Model `wave' substituted by `hsb' on input line 1360. ) (d:/texlive/2012/texmf-dist/tex/latex/psnfss/avant.sty Package: avant 2005/04/12 PSNFSS-v9.2a (SPQR) ) (d:/texlive/2012/texmf-dist/tex/latex/psnfss/mathptmx.sty Package: mathptmx 2005/04/12 PSNFSS-v9.2a Times w/ Math, improved (SPQR, WaS) LaTeX Font Info: Redeclaring symbol font `operators' on input line 28. LaTeX Font Info: Overwriting symbol font `operators' in version `normal' (Font) OT1/cmr/m/n --> OT1/ztmcm/m/n on input line 28. LaTeX Font Info: Overwriting symbol font `operators' in version `bold' (Font) OT1/cmr/bx/n --> OT1/ztmcm/m/n on input line 28. LaTeX Font Info: Redeclaring symbol font `letters' on input line 29. LaTeX Font Info: Overwriting symbol font `letters' in version `normal' (Font) OML/cmm/m/it --> OML/ztmcm/m/it on input line 29. LaTeX Font Info: Overwriting symbol font `letters' in version `bold' (Font) OML/cmm/b/it --> OML/ztmcm/m/it on input line 29. LaTeX Font Info: Redeclaring symbol font `symbols' on input line 30. LaTeX Font Info: Overwriting symbol font `symbols' in version `normal' (Font) OMS/cmsy/m/n --> OMS/ztmcm/m/n on input line 30. LaTeX Font Info: Overwriting symbol font `symbols' in version `bold' (Font) OMS/cmsy/b/n --> OMS/ztmcm/m/n on input line 30. LaTeX Font Info: Redeclaring symbol font `largesymbols' on input line 31. LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal' (Font) OMX/cmex/m/n --> OMX/ztmcm/m/n on input line 31. LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold' (Font) OMX/cmex/m/n --> OMX/ztmcm/m/n on input line 31. \symbold=\mathgroup4 \symitalic=\mathgroup5 LaTeX Font Info: Redeclaring math alphabet \mathbf on input line 34. LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal' (Font) OT1/cmr/bx/n --> OT1/ptm/bx/n on input line 34. LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold' (Font) OT1/cmr/bx/n --> OT1/ptm/bx/n on input line 34. LaTeX Font Info: Redeclaring math alphabet \mathit on input line 35. LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal' (Font) OT1/cmr/m/it --> OT1/ptm/m/it on input line 35. LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' (Font) OT1/cmr/bx/it --> OT1/ptm/m/it on input line 35. LaTeX Info: Redefining \hbar on input line 50. ) (d:/texlive/2012/texmf-dist/tex/latex/microtype/microtype.sty Package: microtype 2010/01/10 v2.4 Micro-typography with pdfTeX (RS) \MT@toks=\toks18 \MT@count=\count92 LaTeX Info: Redefining \lsstyle on input line 1597. LaTeX Info: Redefining \lslig on input line 1597. \MT@outer@space=\skip43 LaTeX Info: Redefining \textls on input line 1605. \MT@outer@kern=\dimen112 LaTeX Info: Redefining \textmicrotypecontext on input line 2156. Package microtype Info: Loading configuration file microtype.cfg. (d:/texlive/2012/texmf-dist/tex/latex/microtype/microtype.cfg File: microtype.cfg 2010/01/10 v2.4 microtype main configuration file (RS) )) (d:/texlive/2012/texmf-dist/tex/latex/base/fontenc.sty Package: fontenc 2005/09/27 v1.99g Standard LaTeX package (d:/texlive/2012/texmf-dist/tex/latex/base/t1enc.def File: t1enc.def 2005/09/27 v1.99g Standard LaTeX file LaTeX Font Info: Redeclaring font encoding T1 on input line 43. )) (d:/texlive/2012/texmf-dist/tex/latex/biblatex/biblatex.sty Package: biblatex 2011/11/13 v1.7 programmable bibliographies (d:/texlive/2012/texmf-dist/tex/latex/etoolbox/etoolbox.sty Package: etoolbox 2011/01/03 v2.1 e-TeX tools for LaTeX (d:/texlive/2012/texmf-dist/tex/latex/etex-pkg/etex.sty Package: etex 1998/03/26 v2.0 eTeX basic definition package (PEB) \et@xins=\count93 ) \etb@tempcnta=\count94 ) (d:/texlive/2012/texmf-dist/tex/latex/logreq/logreq.sty Package: logreq 2010/08/04 v1.0 xml request logger \lrq@indent=\count95 (d:/texlive/2012/texmf-dist/tex/latex/logreq/logreq.def File: logreq.def 2010/08/04 v1.0 logreq spec v1.0 )) (d:/texlive/2012/texmf-dist/tex/latex/base/ifthen.sty Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC) ) (d:/texlive/2012/texmf-dist/tex/latex/url/url.sty \Urlmuskip=\muskip10 Package: url 2006/04/12 ver 3.3 Verb mode for urls, etc. ) \c@listtotal=\count96 \c@listcount=\count97 \c@liststart=\count98 \c@liststop=\count99 \c@citecount=\count100 \c@citetotal=\count101 \c@multicitecount=\count102 \c@multicitetotal=\count103 \c@instcount=\count104 \c@maxnames=\count105 \c@minnames=\count106 \c@maxitems=\count107 \c@minitems=\count108 \c@citecounter=\count109 \c@savedcitecounter=\count110 \c@uniquelist=\count111 \c@uniquename=\count112 \c@refsection=\count113 \c@refsegment=\count114 \c@maxextrayear=\count115 \c@maxextraalpha=\count116 \c@abbrvpenalty=\count117 \c@highnamepenalty=\count118 \c@lownamepenalty=\count119 \c@maxparens=\count120 \c@parenlevel=\count121 \blx@tempcnta=\count122 \blx@tempcntb=\count123 \blx@tempcntc=\count124 \blx@maxsection=\count125 \blx@maxsegment=\count126 \blx@notetype=\count127 \blx@parenlevel@text=\count128 \blx@parenlevel@foot=\count129 \labelnumberwidth=\skip44 \labelalphawidth=\skip45 \shorthandwidth=\skip46 \biblabelsep=\skip47 \bibitemsep=\skip48 \bibnamesep=\skip49 \bibinitsep=\skip50 \bibparsep=\skip51 \bibhang=\skip52 \blx@auxin=\read1 \blx@auxout=\write3 \c@mincomprange=\count130 \c@maxcomprange=\count131 \c@mincompwidth=\count132 \c@labelname=\count133 \c@savedlabelname=\count134 \c@author=\count135 \c@savedauthor=\count136 \c@shortauthor=\count137 \c@savedshortauthor=\count138 \c@editor=\count139 \c@savededitor=\count140 \c@editora=\count141 \c@savededitora=\count142 \c@editorb=\count143 \c@savededitorb=\count144 \c@editorc=\count145 \c@savededitorc=\count146 \c@shorteditor=\count147 \c@savedshorteditor=\count148 \c@bookauthor=\count149 \c@savedbookauthor=\count150 \c@translator=\count151 \c@savedtranslator=\count152 \c@annotator=\count153 \c@savedannotator=\count154 \c@commentator=\count155 \c@savedcommentator=\count156 \c@introduction=\count157 \c@savedintroduction=\count158 \c@foreword=\count159 \c@savedforeword=\count160 \c@afterword=\count161 \c@savedafterword=\count162 \c@holder=\count163 \c@savedholder=\count164 \c@namea=\count165 \c@savednamea=\count166 \c@nameb=\count167 \c@savednameb=\count168 \c@namec=\count169 \c@savednamec=\count170 \c@institution=\count171 \c@savedinstitution=\count172 \c@language=\count173 \c@savedlanguage=\count174 \c@location=\count175 \c@savedlocation=\count176 \c@organization=\count177 \c@savedorganization=\count178 \c@origlocation=\count179 \c@savedoriglocation=\count180 \c@origpublisher=\count181 \c@savedorigpublisher=\count182 \c@pageref=\count183 \c@savedpageref=\count184 \c@publisher=\count185 \c@savedpublisher=\count186 \c@lista=\count187 \c@savedlista=\count188 \c@listb=\count189 \c@savedlistb=\count190 \c@listc=\count191 \c@savedlistc=\count192 \c@listd=\count193 \c@savedlistd=\count194 \c@liste=\count195 \c@savedliste=\count196 \c@listf=\count197 \c@savedlistf=\count198 Package biblatex Info: Trying to load compatibility code... Package biblatex Info: ... file 'blx-compat.def' found. (d:/texlive/2012/texmf-dist/tex/latex/biblatex/blx-compat.def File: blx-compat.def 2011/11/13 v1.7 biblatex generic compatibility ) Package biblatex Info: Trying to load generic definitions... Package biblatex Info: ... file 'biblatex.def' found. (d:/texlive/2012/texmf-dist/tex/latex/biblatex/biblatex.def File: biblatex.def 2011/11/13 v1.7 biblatex generic definitions \c@biburlnumpenalty=\count199 \c@biburlucpenalty=\count200 \c@biburllcpenalty=\count201 \c@smartand=\count202 ) Package biblatex Info: Trying to load bibliography style 'alphabetic'... Package biblatex Info: ... file 'alphabetic.bbx' found. (d:/texlive/2012/texmf-dist/tex/latex/biblatex/bbx/alphabetic.bbx File: alphabetic.bbx 2011/11/13 v1.7 biblatex bibliography style Package biblatex Info: Trying to load bibliography style 'standard'... Package biblatex Info: ... file 'standard.bbx' found. (d:/texlive/2012/texmf-dist/tex/latex/biblatex/bbx/standard.bbx File: standard.bbx 2011/11/13 v1.7 biblatex bibliography style )) Package biblatex Info: Trying to load citation style 'alphabetic'... Package biblatex Info: ... file 'alphabetic.cbx' found. (d:/texlive/2012/texmf-dist/tex/latex/biblatex/cbx/alphabetic.cbx File: alphabetic.cbx 2011/11/13 v1.7 biblatex citation style Package biblatex Info: Redefining '\cite'. Package biblatex Info: Redefining '\parencite'. Package biblatex Info: Redefining '\footcite'. Package biblatex Info: Redefining '\footcitetext'. Package biblatex Info: Redefining '\smartcite'. Package biblatex Info: Redefining '\textcite'. Package biblatex Info: Redefining '\cites'. Package biblatex Info: Redefining '\parencites'. Package biblatex Info: Redefining '\smartcites'. ) Package biblatex Info: Trying to load configuration file... Package biblatex Info: ... file 'biblatex.cfg' found. (d:/texlive/2012/texmf-dist/tex/latex/biblatex/biblatex.cfg File: biblatex.cfg )) (d:/texlive/2012/texmf-dist/tex/latex/tools/calc.sty Package: calc 2007/08/22 v4.3 Infix arithmetic (KKT,FJ) \calc@Acount=\count203 \calc@Bcount=\count204 \calc@Adimen=\dimen113 \calc@Bdimen=\dimen114 \calc@Askip=\skip53 \calc@Bskip=\skip54 LaTeX Info: Redefining \setlength on input line 76. LaTeX Info: Redefining \addtolength on input line 77. \calc@Ccount=\count205 \calc@Cskip=\skip55 ) (d:/texlive/2012/texmf-dist/tex/latex/base/makeidx.sty Package: makeidx 2000/03/29 v1.0m Standard LaTeX package ) \@indexfile=\write4 \openout4 = `main.idx'. Writing index file main.idx (./structure.tex (d:/texlive/2012/texmf-dist/tex/latex/titlesec/titlesec.sty Package: titlesec 2011/12/15 v2.10.0 Sectioning titles \ttl@box=\box27 \beforetitleunit=\skip56 \aftertitleunit=\skip57 \ttl@plus=\dimen115 \ttl@minus=\dimen116 \ttl@toksa=\toks19 \titlewidth=\dimen117 \titlewidthlast=\dimen118 \titlewidthfirst=\dimen119 ) (d:/texlive/2012/texmf-dist/tex/latex/graphics/graphicx.sty Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR) (d:/texlive/2012/texmf-dist/tex/latex/graphics/graphics.sty Package: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR) (d:/texlive/2012/texmf-dist/tex/latex/graphics/trig.sty Package: trig 1999/03/16 v1.09 sin cos tan (DPC) ) (d:/texlive/2012/texmf-dist/tex/latex/latexconfig/graphics.cfg File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live ) Package graphics Info: Driver file: pdftex.def on input line 91. ) \Gin@req@height=\dimen120 \Gin@req@width=\dimen121 ) (d:/texlive/2012/texmf-dist/tex/latex/lipsum/lipsum.sty Package: lipsum 2011/04/14 v1.2 150 paragraphs of Lorem Ipsum dummy text \c@lips@count=\count206 ) (d:/texlive/2012/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty (d:/texlive/2012/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty (d:/texlive/2012/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty (d:/texlive/2012/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex \pgfutil@everybye=\toks20 ) (d:/texlive/2012/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def \pgfutil@abb=\box28 (d:/texlive/2012/texmf-dist/tex/latex/ms/everyshi.sty Package: everyshi 2001/05/15 v3.00 EveryShipout Package (MS) )) (d:/texlive/2012/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex Package: pgfrcs 2010/10/25 v2.10 (rcs-revision 1.24) )) Package: pgf 2008/01/15 v2.10 (rcs-revision 1.12) (d:/texlive/2012/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty (d:/texlive/2012/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty (d:/texlive/2012/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex Package: pgfsys 2010/06/30 v2.10 (rcs-revision 1.37) (d:/texlive/2012/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex \pgfkeys@pathtoks=\toks21 \pgfkeys@temptoks=\toks22 (d:/texlive/2012/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.code.tex \pgfkeys@tmptoks=\toks23 )) \pgf@x=\dimen122 \pgf@y=\dimen123 \pgf@xa=\dimen124 \pgf@ya=\dimen125 \pgf@xb=\dimen126 \pgf@yb=\dimen127 \pgf@xc=\dimen128 \pgf@yc=\dimen129 \w@pgf@writea=\write5 \r@pgf@reada=\read2 \c@pgf@counta=\count207 \c@pgf@countb=\count208 \c@pgf@countc=\count209 \c@pgf@countd=\count210 (d:/texlive/2012/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg File: pgf.cfg 2008/05/14 (rcs-revision 1.7) ) Package pgfsys Info: Driver file for pgf: pgfsys-pdftex.def on input line 900. (d:/texlive/2012/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def File: pgfsys-pdftex.def 2009/05/22 (rcs-revision 1.26) (d:/texlive/2012/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def File: pgfsys-common-pdf.def 2008/05/19 (rcs-revision 1.10) ))) (d:/texlive/2012/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex File: pgfsyssoftpath.code.tex 2008/07/18 (rcs-revision 1.7) \pgfsyssoftpath@smallbuffer@items=\count211 \pgfsyssoftpath@bigbuffer@items=\count212 ) (d:/texlive/2012/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex File: pgfsysprotocol.code.tex 2006/10/16 (rcs-revision 1.4) )) (d:/texlive/2012/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex Package: pgfcore 2010/04/11 v2.10 (rcs-revision 1.7) (d:/texlive/2012/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex (d:/texlive/2012/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex (d:/texlive/2012/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex) (d:/texlive/2012/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex \pgfmath@dimen=\dimen130 \pgfmath@count=\count213 \pgfmath@box=\box29 \pgfmath@toks=\toks24 \pgfmath@stack@operand=\toks25 \pgfmath@stack@operation=\toks26 ) (d:/texlive/2012/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex (d:/texlive/2012/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.te x) (d:/texlive/2012/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric .code.tex) (d:/texlive/2012/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.t ex) (d:/texlive/2012/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.co de.tex) (d:/texlive/2012/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex ) (d:/texlive/2012/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.te x) (d:/texlive/2012/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex ))) (d:/texlive/2012/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex \c@pgfmathroundto@lastzeros=\count214 )) (d:/texlive/2012/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex File: pgfcorepoints.code.tex 2010/04/09 (rcs-revision 1.20) \pgf@picminx=\dimen131 \pgf@picmaxx=\dimen132 \pgf@picminy=\dimen133 \pgf@picmaxy=\dimen134 \pgf@pathminx=\dimen135 \pgf@pathmaxx=\dimen136 \pgf@pathminy=\dimen137 \pgf@pathmaxy=\dimen138 \pgf@xx=\dimen139 \pgf@xy=\dimen140 \pgf@yx=\dimen141 \pgf@yy=\dimen142 \pgf@zx=\dimen143 \pgf@zy=\dimen144 ) (d:/texlive/2012/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.cod e.tex File: pgfcorepathconstruct.code.tex 2010/08/03 (rcs-revision 1.24) \pgf@path@lastx=\dimen145 \pgf@path@lasty=\dimen146 ) (d:/texlive/2012/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.te x File: pgfcorepathusage.code.tex 2008/04/22 (rcs-revision 1.12) \pgf@shorten@end@additional=\dimen147 \pgf@shorten@start@additional=\dimen148 ) (d:/texlive/2012/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex File: pgfcorescopes.code.tex 2010/09/08 (rcs-revision 1.34) \pgfpic=\box30 \pgf@hbox=\box31 \pgf@layerbox@main=\box32 \pgf@picture@serial@count=\count215 ) (d:/texlive/2012/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code .tex File: pgfcoregraphicstate.code.tex 2008/04/22 (rcs-revision 1.9) \pgflinewidth=\dimen149 ) (d:/texlive/2012/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.c ode.tex File: pgfcoretransformations.code.tex 2009/06/10 (rcs-revision 1.11) \pgf@pt@x=\dimen150 \pgf@pt@y=\dimen151 \pgf@pt@temp=\dimen152 ) (d:/texlive/2012/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex File: pgfcorequick.code.tex 2008/10/09 (rcs-revision 1.3) ) (d:/texlive/2012/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex File: pgfcoreobjects.code.tex 2006/10/11 (rcs-revision 1.2) ) (d:/texlive/2012/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.co de.tex File: pgfcorepathprocessing.code.tex 2008/10/09 (rcs-revision 1.8) ) (d:/texlive/2012/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex File: pgfcorearrows.code.tex 2008/04/23 (rcs-revision 1.11) ) (d:/texlive/2012/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex File: pgfcoreshade.code.tex 2008/11/23 (rcs-revision 1.13) \pgf@max=\dimen153 \pgf@sys@shading@range@num=\count216 ) (d:/texlive/2012/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex File: pgfcoreimage.code.tex 2010/03/25 (rcs-revision 1.16) (d:/texlive/2012/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex File: pgfcoreexternal.code.tex 2010/09/01 (rcs-revision 1.17) \pgfexternal@startupbox=\box33 )) (d:/texlive/2012/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex File: pgfcorelayers.code.tex 2010/08/27 (rcs-revision 1.2) ) (d:/texlive/2012/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code .tex File: pgfcoretransparency.code.tex 2008/01/17 (rcs-revision 1.2) ) (d:/texlive/2012/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex File: pgfcorepatterns.code.tex 2009/07/02 (rcs-revision 1.3) ))) (d:/texlive/2012/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex File: pgfmoduleshapes.code.tex 2010/09/09 (rcs-revision 1.13) \pgfnodeparttextbox=\box34 ) (d:/texlive/2012/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex File: pgfmoduleplot.code.tex 2010/10/22 (rcs-revision 1.8) ) (d:/texlive/2012/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.st y Package: pgfcomp-version-0-65 2007/07/03 v2.10 (rcs-revision 1.7) \pgf@nodesepstart=\dimen154 \pgf@nodesepend=\dimen155 ) (d:/texlive/2012/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.st y Package: pgfcomp-version-1-18 2007/07/23 v2.10 (rcs-revision 1.1) )) (d:/texlive/2012/texmf-dist/tex/latex/pgf/utilities/pgffor.sty (d:/texlive/2012/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty (d:/texlive/2012/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex)) (d:/texlive/2012/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex Package: pgffor 2010/03/23 v2.10 (rcs-revision 1.18) \pgffor@iter=\dimen156 \pgffor@skip=\dimen157 \pgffor@stack=\toks27 \pgffor@toks=\toks28 )) (d:/texlive/2012/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex Package: tikz 2010/10/13 v2.10 (rcs-revision 1.76) (d:/texlive/2012/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.co de.tex File: pgflibraryplothandlers.code.tex 2010/05/31 v2.10 (rcs-revision 1.15) \pgf@plot@mark@count=\count217 \pgfplotmarksize=\dimen158 ) \tikz@lastx=\dimen159 \tikz@lasty=\dimen160 \tikz@lastxsaved=\dimen161 \tikz@lastysaved=\dimen162 \tikzleveldistance=\dimen163 \tikzsiblingdistance=\dimen164 \tikz@figbox=\box35 \tikz@tempbox=\box36 \tikztreelevel=\count218 \tikznumberofchildren=\count219 \tikznumberofcurrentchild=\count220 \tikz@fig@count=\count221 (d:/texlive/2012/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex File: pgfmodulematrix.code.tex 2010/08/24 (rcs-revision 1.4) \pgfmatrixcurrentrow=\count222 \pgfmatrixcurrentcolumn=\count223 \pgf@matrix@numberofcolumns=\count224 ) \tikz@expandcount=\count225 (d:/texlive/2012/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzli brarytopaths.code.tex File: tikzlibrarytopaths.code.tex 2008/06/17 v2.10 (rcs-revision 1.2) ))) (d:/texlive/2012/texmf-dist/tex/generic/babel/babel.sty Package: babel 2008/07/08 v3.8m The Babel package (d:/texlive/2012/texmf-dist/tex/generic/babel/english.ldf Language: english 2005/03/30 v3.3o English support from the babel system (d:/texlive/2012/texmf-dist/tex/generic/babel/babel.def File: babel.def 2008/07/08 v3.8m Babel common definitions \babel@savecnt=\count226 \U@D=\dimen165 ) \l@canadian = a dialect from \language\l@american \l@australian = a dialect from \language\l@british \l@newzealand = a dialect from \language\l@british )) (d:/texlive/2012/texmf-dist/tex/latex/enumitem/enumitem.sty Package: enumitem 2011/09/28 v3.5.2 Customized lists \labelindent=\skip58 \enit@outerparindent=\dimen166 \enit@toks=\toks29 \enit@inbox=\box37 \enitdp@description=\count227 ) (d:/texlive/2012/texmf-dist/tex/latex/booktabs/booktabs.sty Package: booktabs 2005/04/14 v1.61803 publication quality tables \heavyrulewidth=\dimen167 \lightrulewidth=\dimen168 \cmidrulewidth=\dimen169 \belowrulesep=\dimen170 \belowbottomsep=\dimen171 \aboverulesep=\dimen172 \abovetopsep=\dimen173 \cmidrulesep=\dimen174 \cmidrulekern=\dimen175 \defaultaddspace=\dimen176 \@cmidla=\count228 \@cmidlb=\count229 \@aboverulesep=\dimen177 \@belowrulesep=\dimen178 \@thisruleclass=\count230 \@lastruleclass=\count231 \@thisrulewidth=\dimen179 ) (d:/texlive/2012/texmf-dist/tex/latex/eso-pic/eso-pic.sty Package: eso-pic 2010/10/06 v2.0c eso-pic (RN) (d:/texlive/2012/texmf-dist/tex/generic/oberdiek/atbegshi.sty Package: atbegshi 2011/10/05 v1.16 At begin shipout hook (HO) )) (d:/texlive/2012/texmf-dist/tex/latex/titlesec/titletoc.sty Package: titletoc 2011/12/15 v1.6 TOC entries \ttl@leftsep=\dimen180 ) (d:/texlive/2012/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty \fancy@headwidth=\skip59 \f@ncyO@elh=\skip60 \f@ncyO@erh=\skip61 \f@ncyO@olh=\skip62 \f@ncyO@orh=\skip63 \f@ncyO@elf=\skip64 \f@ncyO@erf=\skip65 \f@ncyO@olf=\skip66 \f@ncyO@orf=\skip67 ) (d:/texlive/2012/texmf-dist/tex/latex/amsmath/amsmath.sty Package: amsmath 2000/07/18 v2.13 AMS math features \@mathmargin=\skip68 For additional information on amsmath, use the `?' option. (d:/texlive/2012/texmf-dist/tex/latex/amsmath/amstext.sty Package: amstext 2000/06/29 v2.01 (d:/texlive/2012/texmf-dist/tex/latex/amsmath/amsgen.sty File: amsgen.sty 1999/11/30 v2.0 \@emptytoks=\toks30 \ex@=\dimen181 )) (d:/texlive/2012/texmf-dist/tex/latex/amsmath/amsbsy.sty Package: amsbsy 1999/11/29 v1.2d \pmbraise@=\dimen182 ) (d:/texlive/2012/texmf-dist/tex/latex/amsmath/amsopn.sty Package: amsopn 1999/12/14 v2.01 operator names ) \inf@bad=\count232 LaTeX Info: Redefining \frac on input line 211. \uproot@=\count233 Normal \count register pool exhausted, switching to extended pool. \leftroot@=\count277 LaTeX Info: Redefining \overline on input line 307. \classnum@=\count278 \DOTSCASE@=\count279 LaTeX Info: Redefining \ldots on input line 379. LaTeX Info: Redefining \dots on input line 382. LaTeX Info: Redefining \cdots on input line 467. \Mathstrutbox@=\box38 \strutbox@=\box39 \big@size=\dimen183 LaTeX Font Info: Redeclaring font encoding OML on input line 567. LaTeX Font Info: Redeclaring font encoding OMS on input line 568. \macc@depth=\count280 \c@MaxMatrixCols=\count281 \dotsspace@=\muskip11 \c@parentequation=\count282 \dspbrk@lvl=\count283 \tag@help=\toks31 \row@=\count284 \column@=\count285 \maxfields@=\count286 \andhelp@=\toks32 \eqnshift@=\dimen184 \alignsep@=\dimen185 \tagshift@=\dimen186 \tagwidth@=\dimen187 \totwidth@=\dimen188 \lineht@=\dimen189 \@envbody=\toks33 \multlinegap=\skip69 \multlinetaggap=\skip70 \mathdisplay@stack=\toks34 LaTeX Info: Redefining \[ on input line 2666. LaTeX Info: Redefining \] on input line 2667. ) (d:/texlive/2012/texmf-dist/tex/latex/amsfonts/amsfonts.sty Package: amsfonts 2009/06/22 v3.00 Basic AMSFonts support \symAMSa=\mathgroup6 \symAMSb=\mathgroup7 LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' (Font) U/euf/m/n --> U/euf/b/n on input line 96. ) (d:/texlive/2012/texmf-dist/tex/latex/amsfonts/amssymb.sty Package: amssymb 2009/06/22 v3.00 ) (d:/texlive/2012/texmf-dist/tex/latex/amscls/amsthm.sty Package: amsthm 2009/07/02 v2.20.1 \thm@style=\toks35 \thm@bodyfont=\toks36 \thm@headfont=\toks37 \thm@notefont=\toks38 \thm@headpunct=\toks39 \thm@preskip=\skip71 \thm@postskip=\skip72 \thm@headsep=\skip73 \dth@everypar=\toks40 ) \c@notation=\count287 \c@dummy=\count288 \c@problem=\count289 \c@exerciseT=\count290 \c@exampleT=\count291 \c@vocabulary=\count292 \c@definitionT=\count293 (d:/texlive/2012/texmf-dist/tex/latex/mdframed/mdframed.sty Package: mdframed 2012/04/08 v1.5: mdframed (d:/texlive/2012/texmf-dist/tex/latex/oberdiek/kvoptions.sty Package: kvoptions 2011/06/30 v3.11 Key value format for package options (HO) (d:/texlive/2012/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty Package: kvsetkeys 2012/04/25 v1.16 Key value parser (HO) (d:/texlive/2012/texmf-dist/tex/generic/oberdiek/etexcmds.sty Package: etexcmds 2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO) (d:/texlive/2012/texmf-dist/tex/generic/oberdiek/ifluatex.sty Package: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO) Package ifluatex Info: LuaTeX not detected. ) Package etexcmds Info: Could not find \expanded. (etexcmds) That can mean that you are not using pdfTeX 1.50 or (etexcmds) that some package has redefined \expanded. (etexcmds) In the latter case, load this package earlier. ))) (d:/texlive/2012/texmf-dist/tex/latex/l3packages/xparse/xparse.sty (d:/texlive/2012/texmf-dist/tex/latex/l3kernel/expl3.sty (d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3names.sty (d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3bootstrap.sty Package: l3bootstrap 2011/12/29 v3110 L3 Experimental bootstrap code ) Package: l3names 2012/03/04 v3494 L3 Experimental namespace for primitives ) Package: expl3 2012/04/23 v3570 L3 Experimental code bundle wrapper (d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3basics.sty Package: l3basics 2012/03/04 v3491 L3 Experimental basic definitions ) (d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3expan.sty Package: l3expan 2012/02/26 v3460 L3 Experimental argument expansion ) (d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3tl.sty Package: l3tl 2012/03/04 v3490 L3 Experimental token lists ) (d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3seq.sty Package: l3seq 2012/03/04 v3490 L3 Experimental sequences and stacks ) (d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3int.sty Package: l3int 2012/03/04 v3490 L3 Experimental integers \c_max_int=\count294 \l_tmpa_int=\count295 \l_tmpb_int=\count296 \l_tmpc_int=\count297 \g_tmpa_int=\count298 \g_tmpb_int=\count299 ) (d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3quark.sty Package: l3quark 2012/02/12 v3384 L3 Experimental quarks ) (d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3prg.sty Package: l3prg 2012/03/04 v3490 L3 Experimental control structures \g_prg_map_int=\count300 ) (d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3clist.sty Package: l3clist 2012/03/04 v3490 L3 Experimental comma separated lists ) (d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3token.sty Package: l3token 2012/03/04 v3491 L3 Experimental token manipulation ) (d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3prop.sty Package: l3prop 2012/03/04 v3490 L3 Experimental property lists ) (d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3msg.sty Package: l3msg 2012/04/23 v3568 L3 Experimental messages ) (d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3file.sty Package: l3file 2012/03/09 v3520 L3 Experimental file and I/O operations \l_iow_stream_int=\count301 \l_iow_line_length_int=\count302 \l_iow_target_length_int=\count303 \l_iow_current_line_int=\count304 \l_iow_current_word_int=\count305 \l_iow_current_indentation_int=\count306 ) (d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3skip.sty Package: l3skip 2012/03/05 v3499 L3 Experimental dimensions and skips \l_tmpa_dim=\dimen190 \l_tmpb_dim=\dimen191 \l_tmpc_dim=\dimen192 \g_tmpa_dim=\dimen193 \g_tmpb_dim=\dimen194 \l_tmpa_skip=\skip74 \l_tmpb_skip=\skip75 \l_tmpc_skip=\skip76 \g_tmpa_skip=\skip77 \g_tmpb_skip=\skip78 ) (d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3keys.sty Package: l3keys 2012/03/03 v3487 L3 Experimental key-value interfaces \g_keyval_level_int=\count307 \l_keys_choice_int=\count308 ) (d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3fp.sty Package: l3fp 2012/03/04 v3490 L3 Experimental floating-point operations \c_one_million=\count309 \c_one_hundred_million=\count310 \c_five_hundred_million=\count311 \c_one_thousand_million=\count312 \c_fp_pi_by_four_decimal_int=\count313 \c_fp_pi_by_four_extended_int=\count314 \c_fp_pi_decimal_int=\count315 \c_fp_pi_extended_int=\count316 \c_fp_two_pi_decimal_int=\count317 \c_fp_two_pi_extended_int=\count318 \l_fp_count_int=\count319 \l_fp_div_offset_int=\count320 \l_fp_exp_integer_int=\count321 \l_fp_exp_decimal_int=\count322 \l_fp_exp_extended_int=\count323 \l_fp_exp_exponent_int=\count324 \l_fp_input_a_sign_int=\count325 \l_fp_input_a_integer_int=\count326 \l_fp_input_a_decimal_int=\count327 \l_fp_input_a_exponent_int=\count328 \l_fp_input_b_sign_int=\count329 \l_fp_input_b_integer_int=\count330 \l_fp_input_b_decimal_int=\count331 \l_fp_input_b_exponent_int=\count332 \l_fp_input_a_extended_int=\count333 \l_fp_input_b_extended_int=\count334 \l_fp_mul_a_i_int=\count335 \l_fp_mul_a_ii_int=\count336 \l_fp_mul_a_iii_int=\count337 \l_fp_mul_a_iv_int=\count338 \l_fp_mul_a_v_int=\count339 \l_fp_mul_a_vi_int=\count340 \l_fp_mul_b_i_int=\count341 \l_fp_mul_b_ii_int=\count342 \l_fp_mul_b_iii_int=\count343 \l_fp_mul_b_iv_int=\count344 \l_fp_mul_b_v_int=\count345 \l_fp_mul_b_vi_int=\count346 \l_fp_mul_output_int=\count347 \l_fp_output_sign_int=\count348 \l_fp_output_integer_int=\count349 \l_fp_output_decimal_int=\count350 \l_fp_output_exponent_int=\count351 \l_fp_output_extended_int=\count352 \l_fp_round_position_int=\count353 \l_fp_round_target_int=\count354 \l_fp_split_sign_int=\count355 \l_fp_internal_int=\count356 \l_fp_trig_octant_int=\count357 \l_fp_trig_sign_int=\count358 \l_fp_trig_decimal_int=\count359 \l_fp_trig_extended_int=\count360 \l_fp_internal_dim=\dimen195 \l_fp_internal_skip=\skip79 ) (d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3box.sty Package: l3box 2012/03/04 v3490 L3 Experimental boxes \l_tmpb_box=\box40 \l_box_top_dim=\dimen196 \l_box_bottom_dim=\dimen197 \l_box_left_dim=\dimen198 \l_box_right_dim=\dimen199 \l_box_top_new_dim=\dimen200 \l_box_bottom_new_dim=\dimen201 Normal \dimen register pool exhausted, switching to extended pool. \l_box_left_new_dim=\dimen256 \l_box_right_new_dim=\dimen257 \l_box_internal_box=\box41 ) (d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3coffins.sty Package: l3coffins 2012/03/03 v3482 L3 Experimental coffin code layer \l_coffin_internal_box=\box42 \l_coffin_internal_dim=\dimen258 \l_coffin_offset_x_dim=\dimen259 \l_coffin_offset_y_dim=\dimen260 \l_coffin_x_dim=\dimen261 \l_coffin_y_dim=\dimen262 \l_coffin_x_prime_dim=\dimen263 \l_coffin_y_prime_dim=\dimen264 \l_coffin_Depth_dim=\dimen265 \l_coffin_Height_dim=\dimen266 \l_coffin_TotalHeight_dim=\dimen267 \l_coffin_Width_dim=\dimen268 \c_empty_coffin=\box43 \l_coffin_aligned_coffin=\box44 \l_coffin_aligned_internal_coffin=\box45 \l_coffin_bounding_shift_dim=\dimen269 \l_coffin_left_corner_dim=\dimen270 \l_coffin_right_corner_dim=\dimen271 \l_coffin_bottom_corner_dim=\dimen272 \l_coffin_top_corner_dim=\dimen273 \l_coffin_scaled_total_height_dim=\dimen274 \l_coffin_scaled_width_dim=\dimen275 \l_coffin_display_coffin=\box46 \l_coffin_display_coord_coffin=\box47 \l_coffin_display_pole_coffin=\box48 \l_coffin_display_offset_dim=\dimen276 \l_coffin_display_x_dim=\dimen277 \l_coffin_display_y_dim=\dimen278 ) (d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3color.sty Package: l3color 2011/09/07 v2776 L3 Experimental colour support ) (d:/texlive/2012/texmf-dist/tex/latex/l3kernel/l3luatex.sty Package: l3luatex 2012/02/09 v3355 L3 Experimental LuaTeX-specific functions \g_cctab_allocate_int=\count361 \g_cctab_stack_int=\count362 )) Package: xparse 2012/04/23 v3570 L3 Experimental document command parser \l_xparse_current_arg_int=\count363 \l_xparse_m_args_int=\count364 \l_xparse_mandatory_args_int=\count365 \l_xparse_processor_int=\count366 \l_xparse_v_nesting_int=\count367 ) (d:/texlive/2012/texmf-dist/tex/latex/oberdiek/zref-abspage.sty Package: zref-abspage 2012/04/04 v2.24 Module abspage for zref (HO) (d:/texlive/2012/texmf-dist/tex/latex/oberdiek/zref-base.sty Package: zref-base 2012/04/04 v2.24 Module base for zref (HO) (d:/texlive/2012/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty Package: kvdefinekeys 2011/04/07 v1.3 Define keys (HO) ) (d:/texlive/2012/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty Package: pdftexcmds 2011/11/29 v0.20 Utility functions of pdfTeX for LuaTeX (HO ) Package pdftexcmds Info: LuaTeX not detected. Package pdftexcmds Info: \pdf@primitive is available. Package pdftexcmds Info: \pdf@ifprimitive is available. Package pdftexcmds Info: \pdfdraftmode found. ) (d:/texlive/2012/texmf-dist/tex/latex/oberdiek/auxhook.sty Package: auxhook 2011/03/04 v1.3 Hooks for auxiliary files (HO) ) Package zref Info: New property list: main on input line 759. Package zref Info: New property: default on input line 760. Package zref Info: New property: page on input line 761. ) \c@abspage=\count368 Package zref Info: New property: abspage on input line 62. ) \mdf@templength=\skip80 \c@mdf@globalstyle@cnt=\count369 \mdf@skipabove@length=\skip81 \mdf@skipbelow@length=\skip82 \mdf@leftmargin@length=\skip83 \mdf@rightmargin@length=\skip84 \mdf@innerleftmargin@length=\skip85 \mdf@innerrightmargin@length=\skip86 \mdf@innertopmargin@length=\skip87 \mdf@innerbottommargin@length=\skip88 \mdf@splittopskip@length=\skip89 \mdf@splitbottomskip@length=\skip90 \mdf@outermargin@length=\skip91 \mdf@innermargin@length=\skip92 \mdf@linewidth@length=\skip93 \mdf@innerlinewidth@length=\skip94 \mdf@middlelinewidth@length=\skip95 \mdf@outerlinewidth@length=\skip96 \mdf@roundcorner@length=\skip97 \mdf@footenotedistance@length=\skip98 \mdf@userdefinedwidth@length=\skip99 \mdf@frametitleaboveskip@length=\skip100 \mdf@frametitlebelowskip@length=\skip101 \mdf@frametitlerulewidth@length=\skip102 \mdf@frametitleleftmargin@length=\skip103 \mdf@frametitlerightmargin@length=\skip104 \mdf@shadowsize@length=\skip105 \mdf@frametitlebox=\box49 \mdf@footnotebox=\box50 \mdf@splitbox@one=\box51 \mdf@splitbox@two=\box52 \mdfsplitboxwidth=\skip106 \mdfsplitboxtotalwidth=\skip107 \mdfsplitboxheight=\skip108 \mdfsplitboxdepth=\skip109 \mdfsplitboxtotalheight=\skip110 \mdfframetitleboxwidth=\skip111 \mdfframetitleboxtotalwidth=\skip112 \mdfframetitleboxheight=\skip113 \mdfframetitleboxdepth=\skip114 \mdfframetitleboxtotalheight=\skip115 \mdffootnoteboxwidth=\skip116 \mdffootnoteboxtotalwidth=\skip117 \mdffootnoteboxheight=\skip118 \mdffootnoteboxdepth=\skip119 \mdffootnoteboxtotalheight=\skip120 \mdftotallinewidth=\skip121 \mdfboundingboxwidth=\skip122 \mdfboundingboxtotalwidth=\skip123 \mdfboundingboxheight=\skip124 \mdfboundingboxdepth=\skip125 \mdfboundingboxtotalheight=\skip126 \mdf@freevspace@length=\skip127 \mdf@horizontalwidthofbox@length=\skip128 \mdf@verticalmarginwhole@length=\skip129 ................................................. . LaTeX info: "xparse/define-command" . . Defining document command \newmdtheoremenv with arg. spec. 'O{} m o m o ' on . line 501. ................................................. ................................................. . LaTeX info: "xparse/define-command" . . Defining document command \mdtheorem with arg. spec. ' O{} m o m o ' on line . 581. ................................................. (d:/texlive/2012/texmf-dist/tex/latex/mdframed/md-frame-0.mdf File: md-frame-0.mdf 2012/04/08 v1.5: md-frame-0 ) \c@mdf@zref@counter=\count370 Package zref Info: New property: mdf@pagevalue on input line 782. \mdf@horizontalspaceofbox=\skip130 ) (d:/texlive/2012/texmf-dist/tex/latex/hyperref/hyperref.sty Package: hyperref 2012/05/13 v6.82q Hypertext links for LaTeX (d:/texlive/2012/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty Package: hobsub-hyperref 2012/05/28 v1.13 Bundle oberdiek, subset hyperref (HO) (d:/texlive/2012/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty Package: hobsub-generic 2012/05/28 v1.13 Bundle oberdiek, subset generic (HO) Package: hobsub 2012/05/28 v1.13 Construct package bundles (HO) Package hobsub Info: Skipping package `infwarerr' (already loaded). Package hobsub Info: Skipping package `ltxcmds' (already loaded). Package hobsub Info: Skipping package `ifluatex' (already loaded). Package hobsub Info: Skipping package `ifvtex' (already loaded). Package: intcalc 2007/09/27 v1.1 Expandable calculations with integers (HO) Package hobsub Info: Skipping package `ifpdf' (already loaded). Package hobsub Info: Skipping package `etexcmds' (already loaded). Package hobsub Info: Skipping package `kvsetkeys' (already loaded). Package hobsub Info: Skipping package `kvdefinekeys' (already loaded). Package hobsub Info: Skipping package `pdftexcmds' (already loaded). Package: pdfescape 2011/11/25 v1.13 Implements pdfTeX's escape features (HO) Package: bigintcalc 2012/04/08 v1.3 Expandable calculations on big integers (HO ) Package: bitset 2011/01/30 v1.1 Handle bit-vector datatype (HO) Package: uniquecounter 2011/01/30 v1.2 Provide unlimited unique counter (HO) ) Package hobsub Info: Skipping package `hobsub' (already loaded). Package: letltxmacro 2010/09/02 v1.4 Let assignment for LaTeX macros (HO) Package: hopatch 2012/05/28 v1.2 Wrapper for package hooks (HO) Package: xcolor-patch 2011/01/30 xcolor patch Package: atveryend 2011/06/30 v1.8 Hooks at the very end of document (HO) Package hobsub Info: Skipping package `atbegshi' (already loaded). Package: refcount 2011/10/16 v3.4 Data extraction from label references (HO) Package: hycolor 2011/01/30 v1.7 Color options for hyperref/bookmark (HO) ) \@linkdim=\dimen279 \Hy@linkcounter=\count371 \Hy@pagecounter=\count372 (d:/texlive/2012/texmf-dist/tex/latex/hyperref/pd1enc.def File: pd1enc.def 2012/05/13 v6.82q Hyperref: PDFDocEncoding definition (HO) Now handling font encoding PD1 ... ... no UTF-8 mapping file for font encoding PD1 ) \Hy@SavedSpaceFactor=\count373 (d:/texlive/2012/texmf-dist/tex/latex/latexconfig/hyperref.cfg File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive ) Package hyperref Info: Hyper figures OFF on input line 4062. Package hyperref Info: Link nesting OFF on input line 4067. Package hyperref Info: Hyper index ON on input line 4070. Package hyperref Info: Plain pages OFF on input line 4077. Package hyperref Info: Backreferencing OFF on input line 4082. Package hyperref Info: Implicit mode ON; LaTeX internals redefined. Package hyperref Info: Bookmarks ON on input line 4300. \c@Hy@tempcnt=\count374 LaTeX Info: Redefining \url on input line 4653. \Fld@menulength=\count375 \Field@Width=\dimen280 \Fld@charsize=\dimen281 Package hyperref Info: Hyper figures OFF on input line 5773. Package hyperref Info: Link nesting OFF on input line 5778. Package hyperref Info: Hyper index ON on input line 5781. Package hyperref Info: backreferencing OFF on input line 5788. Package hyperref Info: Link coloring OFF on input line 5793. Package hyperref Info: Link coloring with OCG OFF on input line 5798. Package hyperref Info: PDF/A mode OFF on input line 5803. LaTeX Info: Redefining \ref on input line 5843. LaTeX Info: Redefining \pageref on input line 5847. \Hy@abspage=\count376 \c@Item=\count377 \c@Hfootnote=\count378 ) Package hyperref Message: Driver (autodetected): hpdftex. (d:/texlive/2012/texmf-dist/tex/latex/hyperref/hpdftex.def File: hpdftex.def 2012/05/13 v6.82q Hyperref driver for pdfTeX \Fld@listcount=\count379 \c@bookmark@seq@number=\count380 (d:/texlive/2012/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty Package: rerunfilecheck 2011/04/15 v1.7 Rerun checks for auxiliary files (HO) Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 82. ) \Hy@SectionHShift=\skip131 ) Package hyperref Warning: Option `backref' has already been used, (hyperref) setting the option has no effect on input line 292. Package hyperref Warning: Option `pagebackref' has already been used, (hyperref) setting the option has no effect on input line 292. Package hyperref Warning: Option `hyperindex' has already been used, (hyperref) setting the option has no effect on input line 292. Package hyperref Info: Option `colorlinks' set `false' on input line 292. Package hyperref Info: Option `breaklinks' set `true' on input line 292. Package hyperref Warning: Option `bookmarks' has already been used, (hyperref) setting the option has no effect on input line 292. Package hyperref Info: Option `bookmarksopen' set `false' on input line 292. ) Package biblatex Info: Trying to load language 'english'... Package biblatex Info: ... file 'english.lbx' found. (d:/texlive/2012/texmf-dist/tex/latex/biblatex/lbx/english.lbx File: english.lbx 2011/11/13 v1.7 biblatex localization ) Package biblatex Warning: 'babel' detected but 'csquotes' missing. (biblatex) Loading 'csquotes' recommended. \@quotelevel=\count381 \@quotereset=\count382 (./main.aux) \openout1 = `main.aux'. LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for C00/song/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for C05/song/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for C09/song/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for C10/song/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for C20/song/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for C19/song/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for C40/song/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for C42/song/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for C43/song/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for C50/song/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for C52/song/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for C49/song/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for C60/mj/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for C61/mj/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for C63/mj/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for C64/mj/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for C65/mj/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for C70/song/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for C31/song/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for C32/song/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for C33/song/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for C34/song/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for C35/song/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for C36/song/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for C37/song/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for C80/song/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for C81/song/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for C01/song/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for C11/song/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for C21/song/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for C41/song/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for C62/song/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 76. LaTeX Font Info: ... okay on input line 76. LaTeX Font Info: Try loading font information for T1+ptm on input line 76. (d:/texlive/2012/texmf-dist/tex/latex/psnfss/t1ptm.fd File: t1ptm.fd 2001/06/04 font definitions for T1/ptm. ) *geometry* driver: auto-detecting *geometry* detected driver: pdftex *geometry* verbose mode - [ preamble ] result: * driver: pdftex * paper: a4paper * layout: * layoutoffset:(h,v)=(0.0pt,0.0pt) * modes: twoside * h-part:(L,W,R)=(91.04872pt, 415.41043pt, 91.04872pt) * v-part:(T,H,B)=(85.35826pt, 674.33032pt, 85.35826pt) * \paperwidth=597.50787pt * \paperheight=845.04684pt * \textwidth=415.41043pt * \textheight=674.33032pt * \oddsidemargin=18.77873pt * \evensidemargin=18.77873pt * \topmargin=-8.91173pt * \headheight=14.5pt * \headsep=10.0pt * \topskip=11.0pt * \footskip=27.46295pt * \marginparwidth=116.0pt * \marginparsep=7.0pt * \columnsep=10.0pt * \skip\footins=10.0pt plus 4.0pt minus 2.0pt * \hoffset=0.0pt * \voffset=0.0pt * \mag=1000 * \@twocolumnfalse * \@twosidetrue * \@mparswitchtrue * \@reversemarginfalse * (1in=72.27pt=25.4mm, 1cm=28.453pt) (d:/texlive/2012/texmf-dist/tex/context/base/supp-pdf.mkii [Loading MPS to PDF converter (version 2006.09.02).] \scratchcounter=\count383 \scratchdimen=\dimen282 \scratchbox=\box53 \nofMPsegments=\count384 \nofMParguments=\count385 \everyMPshowfont=\toks41 \MPscratchCnt=\count386 \MPscratchDim=\dimen283 \MPnumerator=\count387 \makeMPintoPDFobject=\count388 \everyMPtoPDFconversion=\toks42 ) LaTeX Info: Redefining \microtypecontext on input line 76. Package microtype Info: Generating PDF output. Package microtype Info: Character protrusion enabled (level 2). Package microtype Info: Using default protrusion set `alltext'. Package microtype Info: Automatic font expansion enabled (level 2), (microtype) stretch: 20, shrink: 20, step: 1, non-selected. Package microtype Info: Using default expansion set `basictext'. Package microtype Info: No tracking. Package microtype Info: No adjustment of interword spacing. Package microtype Info: No adjustment of character kerning. (d:/texlive/2012/texmf-dist/tex/latex/microtype/mt-ptm.cfg File: mt-ptm.cfg 2006/04/20 v1.7 microtype config. file: Times (RS) ) Package biblatex Info: Input encoding 'utf8' detected. Package biblatex Info: Automatic encoding selection. (biblatex) Assuming data encoding 'utf8'. \openout3 = `main.bcf'. Package biblatex Info: Trying to load bibliographic data... Package biblatex Info: ... file 'main.bbl' found. (./main.bbl) Package biblatex Info: Reference section=0 on input line 76. Package biblatex Info: Reference segment=0 on input line 76. (d:/texlive/2012/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty Package: epstopdf-base 2010/02/09 v2.5 Base part for package epstopdf (d:/texlive/2012/texmf-dist/tex/latex/oberdiek/grfext.sty Package: grfext 2010/08/19 v1.1 Manage graphics extensions (HO) ) Package grfext Info: Graphics extension search list: (grfext) [.png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPE G,.JBIG2,.JB2,.eps] (grfext) \AppendGraphicsExtensions on input line 452. (d:/texlive/2012/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv e )) ABD: EveryShipout initializing macros \AtBeginShipoutBox=\box54 Package hyperref Info: Link coloring OFF on input line 76. (d:/texlive/2012/texmf-dist/tex/latex/hyperref/nameref.sty Package: nameref 2010/04/30 v2.40 Cross-referencing by name of section (d:/texlive/2012/texmf-dist/tex/generic/oberdiek/gettitlestring.sty Package: gettitlestring 2010/12/03 v1.4 Cleanup title references (HO) ) \c@section@level=\count389 ) LaTeX Info: Redefining \ref on input line 76. LaTeX Info: Redefining \pageref on input line 76. LaTeX Info: Redefining \nameref on input line 76. (./main.out) (./main.out) \@outlinefile=\write6 \openout6 = `main.out'. (d:/texlive/2012/texmf-dist/tex/latex/cjk/texinput/utf8/UTF8.bdg File: UTF8.bdg 2012/05/07 4.8.3 ) (d:/texlive/2012/texmf-dist/tex/latex/cjk/texinput/utf8/UTF8.enc File: UTF8.enc 2012/05/07 4.8.3 ) (d:/texlive/2012/texmf-dist/tex/latex/cjk/texinput/utf8/UTF8.chr File: UTF8.chr 2012/05/07 4.8.3 ) LaTeX Font Info: Try loading font information for T1+pag on input line 89. (d:/texlive/2012/texmf-dist/tex/latex/psnfss/t1pag.fd File: t1pag.fd 2001/06/04 font definitions for T1/pag. ) LaTeX Font Info: Try loading font information for C70+gbsn on input line 90. (d:/texlive/2012/texmf-dist/tex/latex/cjk/texinput/utf8/c70gbsn.fd File: c70gbsn.fd 2012/05/07 4.8.3 ) (d:/texlive/2012/texmf-dist/tex/latex/cjk/texinput/utf8/c70gbsn.fdx File: c70gbsn.fdx 2012/05/07 4.8.3 ) File: Pictures/background.pdf Graphic file (type pdf) Package pdftex.def Info: Pictures/background.pdf used on input line 99. (pdftex.def) Requested size: 584.18106pt x 835.11795pt. [1 {d:/texlive/2012/texmf-var/fonts/map/pdftex/updmap/pdftex.map} <./Pictures/back ground.pdf>] LaTeX Font Info: Try loading font information for OMS+ptm on input line 103. (d:/texlive/2012/texmf-dist/tex/latex/psnfss/omsptm.fd File: omsptm.fd ) LaTeX Font Info: Font shape `OMS/ptm/m/n' in size <10.95> not available (Font) Font shape `OMS/cmsy/m/n' tried instead on input line 103. Underfull \hbox (badness 10000) in paragraph at lines 103--104 [] Underfull \hbox (badness 10000) in paragraph at lines 106--107 [] Underfull \hbox (badness 10000) in paragraph at lines 108--109 [] [2] File: Pictures/chapter_head_1.pdf Graphic file (type pdf) Package pdftex.def Info: Pictures/chapter_head_1.pdf used on input line 120. (pdftex.def) Requested size: 597.50787pt x 298.77907pt. LaTeX Font Info: Font shape `T1/pag/bx/n' in size <20.74> not available (Font) Font shape `T1/pag/b/n' tried instead on input line 120. LaTeX Font Info: Font shape `T1/pag/b/n' in size <20.74> not available (Font) Font shape `T1/pag/db/n' tried instead on input line 120. (./main.toc LaTeX Font Info: Font shape `T1/pag/bx/n' in size <12> not available (Font) Font shape `T1/pag/b/n' tried instead on input line 5. LaTeX Font Info: Font shape `T1/pag/b/n' in size <12> not available (Font) Font shape `T1/pag/db/n' tried instead on input line 5. LaTeX Font Info: Font shape `T1/pag/bx/n' in size <14.4> not available (Font) Font shape `T1/pag/b/n' tried instead on input line 5. LaTeX Font Info: Font shape `T1/pag/b/n' in size <14.4> not available (Font) Font shape `T1/pag/db/n' tried instead on input line 5. LaTeX Font Info: Font shape `T1/pag/bx/n' in size <10.95> not available (Font) Font shape `T1/pag/b/n' tried instead on input line 5. LaTeX Font Info: Font shape `T1/pag/b/n' in size <10.95> not available (Font) Font shape `T1/pag/db/n' tried instead on input line 5. [3 <./Pictures/chapter_head_1.pdf>]) \tf@toc=\write7 \openout7 = `main.toc'. [4] Chapter 1. \c@ttl@toc@default=\count390 File: Pictures/chapter_head_2.pdf Graphic file (type pdf) Package pdftex.def Info: Pictures/chapter_head_2.pdf used on input line 132. (pdftex.def) Requested size: 597.50787pt x 298.75726pt. (./main.ptc LaTeX Font Info: Font shape `T1/pag/bx/n' in size <9> not available (Font) Font shape `T1/pag/b/n' tried instead on input line 8. LaTeX Font Info: Font shape `T1/pag/b/n' in size <9> not available (Font) Font shape `T1/pag/db/n' tried instead on input line 8. ) LaTeX Font Info: Try loading font information for OT1+ztmcm on input line 14 8. (d:/texlive/2012/texmf-dist/tex/latex/psnfss/ot1ztmcm.fd File: ot1ztmcm.fd 2000/01/03 Fontinst v1.801 font definitions for OT1/ztmcm. ) LaTeX Font Info: Try loading font information for OML+ztmcm on input line 14 8. (d:/texlive/2012/texmf-dist/tex/latex/psnfss/omlztmcm.fd File: omlztmcm.fd 2000/01/03 Fontinst v1.801 font definitions for OML/ztmcm. ) LaTeX Font Info: Try loading font information for OMS+ztmcm on input line 14 8. (d:/texlive/2012/texmf-dist/tex/latex/psnfss/omsztmcm.fd File: omsztmcm.fd 2000/01/03 Fontinst v1.801 font definitions for OMS/ztmcm. ) LaTeX Font Info: Try loading font information for OMX+ztmcm on input line 14 8. (d:/texlive/2012/texmf-dist/tex/latex/psnfss/omxztmcm.fd File: omxztmcm.fd 2000/01/03 Fontinst v1.801 font definitions for OMX/ztmcm. ) LaTeX Font Info: Try loading font information for OT1+ptm on input line 148. (d:/texlive/2012/texmf-dist/tex/latex/psnfss/ot1ptm.fd File: ot1ptm.fd 2001/06/04 font definitions for OT1/ptm. ) LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <10.95> not available (Font) Font shape `OT1/ptm/b/n' tried instead on input line 148. LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <8> not available (Font) Font shape `OT1/ptm/b/n' tried instead on input line 148. LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <6> not available (Font) Font shape `OT1/ptm/b/n' tried instead on input line 148. (d:/texlive/2012/texmf-dist/tex/latex/microtype/mt-msa.cfg File: mt-msa.cfg 2006/02/04 v1.1 microtype config. file: AMS symbols (a) (RS) ) (d:/texlive/2012/texmf-dist/tex/latex/microtype/mt-msb.cfg File: mt-msb.cfg 2005/06/01 v1.0 microtype config. file: AMS symbols (b) (RS) ) LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <9> not available (Font) Font shape `OT1/ptm/b/n' tried instead on input line 148. LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <7> not available (Font) Font shape `OT1/ptm/b/n' tried instead on input line 148. LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <5> not available (Font) Font shape `OT1/ptm/b/n' tried instead on input line 148. LaTeX Font Info: Font shape `T1/ptm/bx/n' in size <10.95> not available (Font) Font shape `T1/ptm/b/n' tried instead on input line 169. [5 <./Pictures/chapter_head_2.pdf>] [6 ] Chapter 2. File: Pictures/chapter_head_2.pdf Graphic file (type pdf) Package pdftex.def Info: Pictures/chapter_head_2.pdf used on input line 178. (pdftex.def) Requested size: 597.50787pt x 298.75726pt. (./main.ptc) Package mdframed Info: mdframed works in twoside mode on input line 187. Package mdframed Info: mdframed detected package amsthm changed the theoerem header of amsthm (mdframed) on input line 187. LaTeX Font Info: Font shape `T1/ptm/bx/n' in size <10> not available (Font) Font shape `T1/ptm/b/n' tried instead on input line 187. LaTeX Font Info: Font shape `T1/pag/bx/n' in size <10> not available (Font) Font shape `T1/pag/b/n' tried instead on input line 187. LaTeX Font Info: Font shape `T1/pag/b/n' in size <10> not available (Font) Font shape `T1/pag/db/n' tried instead on input line 187. Package mdframed Info: mdframed works in twoside mode on input line 198. Package mdframed Info: mdframed detected package amsthm changed the theoerem header of amsthm (mdframed) on input line 198. Package mdframed Info: mdframed works in twoside mode on input line 208. Package mdframed Info: mdframed detected package amsthm changed the theoerem header of amsthm (mdframed) on input line 208. [7] LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <10> not available (Font) Font shape `OT1/ptm/b/n' tried instead on input line 237. LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <7.4> not available (Font) Font shape `OT1/ptm/b/n' tried instead on input line 237. Package mdframed Info: mdframed works in twoside mode on input line 246. Package mdframed Info: mdframed detected package amsthm changed the theoerem header of amsthm (mdframed) on input line 246. LaTeX Font Info: Font shape `T1/pag/bx/n' in size <6> not available (Font) Font shape `T1/pag/b/n' tried instead on input line 281. LaTeX Font Info: Font shape `T1/pag/b/n' in size <6> not available (Font) Font shape `T1/pag/db/n' tried instead on input line 281. [8] Package mdframed Info: mdframed works in twoside mode on input line 301. Package mdframed Info: mdframed detected package amsthm changed the theoerem header of amsthm (mdframed) on input line 301. [9] [10 ] Chapter 3. File: Pictures/chapter_head_1.pdf Graphic file (type pdf) Package pdftex.def Info: Pictures/chapter_head_1.pdf used on input line 329. (pdftex.def) Requested size: 597.50787pt x 298.77907pt. (./main.ptc) File: Pictures/placeholder.jpg Graphic file (type jpg) Package pdftex.def Info: Pictures/placeholder.jpg used on input line 352. (pdftex.def) Requested size: 175.6558pt x 96.86163pt. [11 <./Pictures/placeholder.jpg>] [12 ] File: Pictures/chapter_head_1.pdf Graphic file (type pdf) Package pdftex.def Info: Pictures/chapter_head_1.pdf used on input line 360. (pdftex.def) Requested size: 597.50787pt x 298.77907pt. [13] [14 ] (./main.ind File: Pictures/chapter_head_1.pdf Graphic file (type pdf) Package pdftex.def Info: Pictures/chapter_head_1.pdf used on input line 1. (pdftex.def) Requested size: 597.50787pt x 298.77907pt. Overfull \hbox (2.20001pt too wide) in paragraph at lines 3--4 [][] [] Overfull \hbox (2.20001pt too wide) in paragraph at lines 10--11 [][] [] Overfull \hbox (2.20001pt too wide) in paragraph at lines 16--17 [][] [] Overfull \hbox (2.20001pt too wide) in paragraph at lines 25--26 [][] [] Overfull \hbox (2.20001pt too wide) in paragraph at lines 31--32 [][] [] Overfull \hbox (2.20001pt too wide) in paragraph at lines 40--41 [][] [] Overfull \hbox (2.20001pt too wide) in paragraph at lines 46--47 [][] [] Overfull \hbox (2.20001pt too wide) in paragraph at lines 55--56 [][] [] Overfull \hbox (2.20001pt too wide) in paragraph at lines 61--62 [][] [] Overfull \hbox (2.20001pt too wide) in paragraph at lines 70--71 [][] [] ! Argument of \CJK@XXX has an extra }. \par l.76 ...e\sffamily\bfseries\textcolor{black}{}}}; \vspace*{0.2cm}\nopagebreak ? Runaway argument? ! Paragraph ended before \CJK@XXX was complete. \par l.76 ...e\sffamily\bfseries\textcolor{black}{}}}; \vspace*{0.2cm}\nopagebreak ? Overfull \hbox (2.20001pt too wide) in paragraph at lines 76--77 [][] [] [15 ] [16 ]) \tf@ptc=\write8 \openout8 = `main.ptc'. Package atveryend Info: Empty hook `BeforeClearDocument' on input line 381. Package atveryend Info: Empty hook `AfterLastShipout' on input line 381. (./main.aux) Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 381. Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 381. Package rerunfilecheck Info: File `main.out' has not changed. (rerunfilecheck) Checksum: 793CF455949FF4FA2470D523F2E2199F;1852. Package logreq Info: Writing requests to 'main.run.xml'. \openout1 = `main.run.xml'. ) Here is how much of TeX's memory you used: 29666 strings out of 493488 506647 string characters out of 3144749 801283 words of memory out of 3000000 32086 multiletter control sequences out of 15000+200000 121765 words of font info for 236 fonts, out of 3000000 for 9000 957 hyphenation exceptions out of 8191 58i,15n,57p,849b,3137s stack positions out of 5000i,500n,10000p,200000b,50000s {d:/texlive/2012/texmf-dist/fonts/enc/dvips/base/8r.enc} Output written on main.pdf (16 pages, 433819 bytes). PDF statistics: 575 PDF objects out of 1000 (max. 8388607) 431 compressed objects within 5 object streams 79 named destinations out of 1000 (max. 500000) 62317 words of extra memory for PDF output out of 74296 (max. 10000000) ================================================ FILE: docs/main.out ================================================ \BOOKMARK [0][-]{chapter.1}{\174\373\176\337\133\211\210\305}{}% 1 \BOOKMARK [1][-]{section.1.1}{\202\176\163\233\155\113\213\325}{chapter.1}% 2 \BOOKMARK [1][-]{section.1.2}{Citation}{chapter.1}% 3 \BOOKMARK [1][-]{section.1.3}{Lists}{chapter.1}% 4 \BOOKMARK [2][-]{subsection.1.3.1}{Numbered List}{section.1.3}% 5 \BOOKMARK [2][-]{subsection.1.3.2}{Bullet Points}{section.1.3}% 6 \BOOKMARK [2][-]{subsection.1.3.3}{Descriptions and Definitions}{section.1.3}% 7 \BOOKMARK [0][-]{chapter.2}{In-text Elements}{}% 8 \BOOKMARK [1][-]{section.2.1}{Theorems}{chapter.2}% 9 \BOOKMARK [2][-]{subsection.2.1.1}{Several equations}{section.2.1}% 10 \BOOKMARK [2][-]{subsection.2.1.2}{Single Line}{section.2.1}% 11 \BOOKMARK [1][-]{section.2.2}{Definitions}{chapter.2}% 12 \BOOKMARK [1][-]{section.2.3}{Notations}{chapter.2}% 13 \BOOKMARK [1][-]{section.2.4}{Remarks}{chapter.2}% 14 \BOOKMARK [1][-]{section.2.5}{Corollaries}{chapter.2}% 15 \BOOKMARK [1][-]{section.2.6}{Propositions}{chapter.2}% 16 \BOOKMARK [2][-]{subsection.2.6.1}{Several equations}{section.2.6}% 17 \BOOKMARK [2][-]{subsection.2.6.2}{Single Line}{section.2.6}% 18 \BOOKMARK [1][-]{section.2.7}{Examples}{chapter.2}% 19 \BOOKMARK [2][-]{subsection.2.7.1}{Equation and Text}{section.2.7}% 20 \BOOKMARK [2][-]{subsection.2.7.2}{Paragraph of Text}{section.2.7}% 21 \BOOKMARK [1][-]{section.2.8}{Exercises}{chapter.2}% 22 \BOOKMARK [1][-]{section.2.9}{Problems}{chapter.2}% 23 \BOOKMARK [1][-]{section.2.10}{Vocabulary}{chapter.2}% 24 \BOOKMARK [0][-]{chapter.3}{Presenting Information}{}% 25 \BOOKMARK [1][-]{section.3.1}{Table}{chapter.3}% 26 \BOOKMARK [1][-]{section.3.2}{Figure}{chapter.3}% 27 \BOOKMARK [0][-]{chapter*.2}{Bibliography}{}% 28 \BOOKMARK [1][-]{section*.3}{Books}{chapter*.2}% 29 \BOOKMARK [1][-]{section*.4}{Articles}{chapter*.2}% 30 \BOOKMARK [0][-]{section*.5}{Index}{}% 31 ================================================ FILE: docs/main.ptc ================================================ \boolfalse {citerequest}\boolfalse {citetracker}\boolfalse {pagetracker}\boolfalse {backtracker}\relax \defcounter {refsection}{0}\relax \select@language {english} \defcounter {refsection}{0}\relax \contentsline {chapter}{\numberline {1}系统安装}{5}{chapter.1} \ttl@starttoc {default@1} \defcounter {refsection}{0}\relax \contentsline {section}{\numberline {1.1}艾玛测试}{5}{section.1.1} \defcounter {refsection}{0}\relax \contentsline {section}{\numberline {1.2}Citation}{5}{section.1.2} \defcounter {refsection}{0}\relax \contentsline {section}{\numberline {1.3}Lists}{5}{section.1.3} \defcounter {refsection}{0}\relax \contentsline {subsection}{\numberline {1.3.1}Numbered List}{5}{subsection.1.3.1} \defcounter {refsection}{0}\relax \contentsline {subsection}{\numberline {1.3.2}Bullet Points}{5}{subsection.1.3.2} \defcounter {refsection}{0}\relax \contentsline {subsection}{\numberline {1.3.3}Descriptions and Definitions}{5}{subsection.1.3.3} \defcounter {refsection}{0}\relax \contentsline {chapter}{\numberline {2}In-text Elements}{7}{chapter.2} \ttl@stoptoc {default@1} \ttl@starttoc {default@2} \defcounter {refsection}{0}\relax \contentsline {section}{\numberline {2.1}Theorems}{7}{section.2.1} \defcounter {refsection}{0}\relax \contentsline {subsection}{\numberline {2.1.1}Several equations}{7}{subsection.2.1.1} \defcounter {refsection}{0}\relax \contentsline {subsection}{\numberline {2.1.2}Single Line}{7}{subsection.2.1.2} \defcounter {refsection}{0}\relax \contentsline {section}{\numberline {2.2}Definitions}{7}{section.2.2} \defcounter {refsection}{0}\relax \contentsline {section}{\numberline {2.3}Notations}{8}{section.2.3} \defcounter {refsection}{0}\relax \contentsline {section}{\numberline {2.4}Remarks}{8}{section.2.4} \defcounter {refsection}{0}\relax \contentsline {section}{\numberline {2.5}Corollaries}{8}{section.2.5} \defcounter {refsection}{0}\relax \contentsline {section}{\numberline {2.6}Propositions}{8}{section.2.6} \defcounter {refsection}{0}\relax \contentsline {subsection}{\numberline {2.6.1}Several equations}{8}{subsection.2.6.1} \defcounter {refsection}{0}\relax \contentsline {subsection}{\numberline {2.6.2}Single Line}{8}{subsection.2.6.2} \defcounter {refsection}{0}\relax \contentsline {section}{\numberline {2.7}Examples}{8}{section.2.7} \defcounter {refsection}{0}\relax \contentsline {subsection}{\numberline {2.7.1}Equation and Text}{8}{subsection.2.7.1} \defcounter {refsection}{0}\relax \contentsline {subsection}{\numberline {2.7.2}Paragraph of Text}{9}{subsection.2.7.2} \defcounter {refsection}{0}\relax \contentsline {section}{\numberline {2.8}Exercises}{9}{section.2.8} \defcounter {refsection}{0}\relax \contentsline {section}{\numberline {2.9}Problems}{9}{section.2.9} \defcounter {refsection}{0}\relax \contentsline {section}{\numberline {2.10}Vocabulary}{9}{section.2.10} \defcounter {refsection}{0}\relax \contentsline {chapter}{\numberline {3}Presenting Information}{11}{chapter.3} \ttl@stoptoc {default@2} \ttl@starttoc {default@3} \defcounter {refsection}{0}\relax \contentsline {section}{\numberline {3.1}Table}{11}{section.3.1} \defcounter {refsection}{0}\relax \contentsline {section}{\numberline {3.2}Figure}{11}{section.3.2} \defcounter {refsection}{0}\relax \contentsline {chapter}{\leavevmode {\color {ocre}Bibliography}}{13}{chapter*.2} \defcounter {refsection}{0}\relax \contentsline {section}{Books}{13}{section*.3} \defcounter {refsection}{0}\relax \contentsline {section}{Articles}{13}{section*.4} \defcounter {refsection}{0}\relax \contentsline {chapter}{\leavevmode {\color {ocre}Index}}{15}{section*.5} \contentsfinish ================================================ FILE: docs/main.run.xml ================================================ ]> latex main.bcf main.bbl blx-compat.def biblatex.def alphabetic.bbx standard.bbx alphabetic.cbx biblatex.cfg english.lbx biber biber main main.bcf main.bbl main.bbl main.bcf bibliography.bib ================================================ FILE: docs/main.tex ================================================ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % The Legrand Orange Book % LaTeX Template % Version 1.4 (12/4/14) % % This template has been downloaded from: % http://www.LaTeXTemplates.com % % Original author: % Mathias Legrand (legrand.mathias@gmail.com) % % License: % CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/) % % Compiling this template: % This template uses biber for its bibliography and makeindex for its index. % When you first open the template, compile it from the command line with the % commands below to make sure your LaTeX distribution is configured correctly: % % 1) pdflatex main % 2) makeindex main.idx -s StyleInd.ist % 3) biber main % 4) pdflatex main x 2 % % After this, when you wish to update the bibliography/index use the appropriate % command above and make sure to compile with pdflatex several times % afterwards to propagate your changes to the document. % % This template also uses a number of packages which may need to be % updated to the newest versions for the template to compile. It is strongly % recommended you update your LaTeX distribution if you have any % compilation errors. % % Important note: % Chapter heading images should have a 2:1 width:height ratio, % e.g. 920px width and 460px height. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %---------------------------------------------------------------------------------------- % PACKAGES AND OTHER DOCUMENT CONFIGURATIONS %---------------------------------------------------------------------------------------- \documentclass[11pt,fleqn]{book} % Default font size and left-justified equations \usepackage[top=3cm,bottom=3cm,left=3.2cm,right=3.2cm,headsep=10pt,a4paper]{geometry} % Page margins \usepackage{CJKutf8} \usepackage{xcolor} % Required for specifying colors by name \definecolor{ocre}{RGB}{243,102,25} % Define the orange color used for highlighting throughout the book % Font Settings \usepackage{avant} % Use the Avantgarde font for headings %\usepackage{times} % Use the Times font for headings \usepackage{mathptmx} % Use the Adobe Times Roman as the default text font together with math symbols from the Sym­bol, Chancery and Com­puter Modern fonts \usepackage{microtype} % Slightly tweak font spacing for aesthetics \usepackage[utf8]{inputenc} % Required for including letters with accents \usepackage[T1]{fontenc} % Use 8-bit encoding that has 256 glyphs % Bibliography \usepackage[style=alphabetic,sorting=nyt,sortcites=true,autopunct=true,babel=hyphen,hyperref=true,abbreviate=false,backref=true,backend=biber]{biblatex} \addbibresource{bibliography.bib} % BibTeX bibliography file \defbibheading{bibempty}{} % Index \usepackage{calc} % For simpler calculation - used for spacing the index letter headings correctly \usepackage{makeidx} % Required to make an index \makeindex % Tells LaTeX to create the files required for indexing %---------------------------------------------------------------------------------------- \input{structure} % Insert the commands.tex file which contains the majority of the structure behind the template \begin{document} \begin{CJK*}{UTF8}{gbsn} %---------------------------------------------------------------------------------------- % TITLE PAGE %---------------------------------------------------------------------------------------- \begingroup \thispagestyle{empty} \AddToShipoutPicture*{\put(6,5){\includegraphics[scale=1]{background}}} % Image background \centering \vspace*{9cm} \par\normalfont\fontsize{35}{35}\sffamily\selectfont UBUNTU常见问题解答\par % Book title \vspace*{1cm} {\Huge jianying Li}\par % Author name \endgroup %---------------------------------------------------------------------------------------- % COPYRIGHT PAGE %---------------------------------------------------------------------------------------- \newpage ~\vfill \thispagestyle{empty} \noindent Copyright \copyright\ 2014 李建赢\\ % Copyright notice \noindent \textsc{http://ubtamator.github.io/}\\ % URL \noindent Licensed under GPL V3. For view detail : http://www.gnu.org/copyleft/gpl.html\\ % License information \noindent \textit{First printing, March 2013} % Printing/edition date %---------------------------------------------------------------------------------------- % TABLE OF CONTENTS %---------------------------------------------------------------------------------------- \chapterimage{chapter_head_1.pdf} % Table of contents heading image \pagestyle{empty} % No headers \tableofcontents % Print the table of contents itself \cleardoublepage % Forces the first chapter to start on an odd page so it's on the right \pagestyle{fancy} % Print headers again %---------------------------------------------------------------------------------------- % CHAPTER 1 %---------------------------------------------------------------------------------------- \chapterimage{chapter_head_2.pdf} % Chapter heading image \chapter{系统安装} \section{艾玛测试}\index{艾玛测试} 前面老师是傻逼 %------------------------------------------------ \section{Citation}\index{Citation} This statement requires citation \cite{book_key}; this one is more specific \cite[122]{article_key}. %------------------------------------------------ \section{Lists}\index{Lists} Lists are useful to present information in a concise and/or ordered way\footnote{Footnote example...}. \subsection{Numbered List}\index{Lists!Numbered List} \begin{enumerate} \item The first item \item The second item \item The third item \end{enumerate} \subsection{Bullet Points}\index{Lists!Bullet Points} \begin{itemize} \item The first item \item The second item \item The third item \end{itemize} \subsection{Descriptions and Definitions}\index{Lists!Descriptions and Definitions} \begin{description} \item[Name] Description \item[Word] Definition \item[Comment] Elaboration \end{description} %---------------------------------------------------------------------------------------- % CHAPTER 2 %---------------------------------------------------------------------------------------- \chapter{In-text Elements} \section{Theorems}\index{Theorems} This is an example of theorems. \subsection{Several equations}\index{Theorems!Several Equations} This is a theorem consisting of several equations. \begin{theorem}[Name of the theorem] In $E=\mathbb{R}^n$ all norms are equivalent. It has the properties: \begin{align} & \big| ||\mathbf{x}|| - ||\mathbf{y}|| \big|\leq || \mathbf{x}- \mathbf{y}||\\ & ||\sum_{i=1}^n\mathbf{x}_i||\leq \sum_{i=1}^n||\mathbf{x}_i||\quad\text{where $n$ is a finite integer} \end{align} \end{theorem} \subsection{Single Line}\index{Theorems!Single Line} This is a theorem consisting of just one line. \begin{theorem} A set $\mathcal{D}(G)$ in dense in $L^2(G)$, $|\cdot|_0$. \end{theorem} %------------------------------------------------ \section{Definitions}\index{Definitions} This is an example of a definition. A definition could be mathematical or it could define a concept. \begin{definition}[Definition name] Given a vector space $E$, a norm on $E$ is an application, denoted $||\cdot||$, $E$ in $\mathbb{R}^+=[0,+\infty[$ such that: \begin{align} & ||\mathbf{x}||=0\ \Rightarrow\ \mathbf{x}=\mathbf{0}\\ & ||\lambda \mathbf{x}||=|\lambda|\cdot ||\mathbf{x}||\\ & ||\mathbf{x}+\mathbf{y}||\leq ||\mathbf{x}||+||\mathbf{y}|| \end{align} \end{definition} %------------------------------------------------ \section{Notations}\index{Notations} \begin{notation} Given an open subset $G$ of $\mathbb{R}^n$, the set of functions $\varphi$ are: \begin{enumerate} \item Bounded support $G$; \item Infinitely differentiable; \end{enumerate} a vector space is denoted by $\mathcal{D}(G)$. \end{notation} %------------------------------------------------ \section{Remarks}\index{Remarks} This is an example of a remark. \begin{remark} The concepts presented here are now in conventional employment in mathematics. Vector spaces are taken over the field $\mathbb{K}=\mathbb{R}$, however, established properties are easily extended to $\mathbb{K}=\mathbb{C}$. \end{remark} %------------------------------------------------ \section{Corollaries}\index{Corollaries} This is an example of a corollary. \begin{corollary}[Corollary name] The concepts presented here are now in conventional employment in mathematics. Vector spaces are taken over the field $\mathbb{K}=\mathbb{R}$, however, established properties are easily extended to $\mathbb{K}=\mathbb{C}$. \end{corollary} %------------------------------------------------ \section{Propositions}\index{Propositions} This is an example of propositions. \subsection{Several equations}\index{Propositions!Several Equations} \begin{proposition}[Proposition name] It has the properties: \begin{align} & \big| ||\mathbf{x}|| - ||\mathbf{y}|| \big|\leq || \mathbf{x}- \mathbf{y}||\\ & ||\sum_{i=1}^n\mathbf{x}_i||\leq \sum_{i=1}^n||\mathbf{x}_i||\quad\text{where $n$ is a finite integer} \end{align} \end{proposition} \subsection{Single Line}\index{Propositions!Single Line} \begin{proposition} Let $f,g\in L^2(G)$; if $\forall \varphi\in\mathcal{D}(G)$, $(f,\varphi)_0=(g,\varphi)_0$ then $f = g$. \end{proposition} %------------------------------------------------ \section{Examples}\index{Examples} This is an example of examples. \subsection{Equation and Text}\index{Examples!Equation and Text} \begin{example} Let $G=\{x\in\mathbb{R}^2:|x|<3\}$ and denoted by: $x^0=(1,1)$; consider the function: \begin{equation} f(x)=\left\{\begin{aligned} & \mathrm{e}^{|x|} & & \text{si $|x-x^0|\leq 1/2$}\\ & 0 & & \text{si $|x-x^0|> 1/2$}\end{aligned}\right. \end{equation} The function $f$ has bounded support, we can take $A=\{x\in\mathbb{R}^2:|x-x^0|\leq 1/2+\epsilon\}$ for all $\epsilon\in\intoo{0}{5/2-\sqrt{2}}$. \end{example} \subsection{Paragraph of Text}\index{Examples!Paragraph of Text} \begin{example}[Example name] \lipsum[2] \end{example} %------------------------------------------------ \section{Exercises}\index{Exercises} This is an example of an exercise. \begin{exercise} This is a good place to ask a question to test learning progress or further cement ideas into students' minds. \end{exercise} %------------------------------------------------ \section{Problems}\index{Problems} \begin{problem} What is the average airspeed velocity of an unladen swallow? \end{problem} %------------------------------------------------ \section{Vocabulary}\index{Vocabulary} Define a word to improve a students' vocabulary. \begin{vocabulary}[Word] Definition of word. \end{vocabulary} %---------------------------------------------------------------------------------------- % CHAPTER 3 %---------------------------------------------------------------------------------------- \chapterimage{chapter_head_1.pdf} % Chapter heading image \chapter{Presenting Information} \section{Table}\index{Table} \begin{table}[h] \centering \begin{tabular}{l l l} \toprule \textbf{Treatments} & \textbf{Response 1} & \textbf{Response 2}\\ \midrule Treatment 1 & 0.0003262 & 0.562 \\ Treatment 2 & 0.0015681 & 0.910 \\ Treatment 3 & 0.0009271 & 0.296 \\ \bottomrule \end{tabular} \caption{Table caption} \end{table} %------------------------------------------------ \section{Figure}\index{Figure} \begin{figure}[h] \centering\includegraphics[scale=0.5]{placeholder} \caption{Figure caption} \end{figure} %---------------------------------------------------------------------------------------- % BIBLIOGRAPHY %---------------------------------------------------------------------------------------- \chapter*{Bibliography} \addcontentsline{toc}{chapter}{\textcolor{ocre}{Bibliography}} \section*{Books} \addcontentsline{toc}{section}{Books} \printbibliography[heading=bibempty,type=book] \section*{Articles} \addcontentsline{toc}{section}{Articles} \printbibliography[heading=bibempty,type=article] %---------------------------------------------------------------------------------------- % INDEX %---------------------------------------------------------------------------------------- \cleardoublepage \phantomsection \setlength{\columnsep}{0.75cm} \addcontentsline{toc}{chapter}{\textcolor{ocre}{Index}} \printindex %---------------------------------------------------------------------------------------- \end{CJK*} \end{document} ================================================ FILE: docs/main.toc ================================================ \boolfalse {citerequest}\boolfalse {citetracker}\boolfalse {pagetracker}\boolfalse {backtracker}\relax \defcounter {refsection}{0}\relax \select@language {english} \defcounter {refsection}{0}\relax \contentsline {chapter}{\numberline {1}系统安装}{5}{chapter.1} \defcounter {refsection}{0}\relax \contentsline {section}{\numberline {1.1}艾玛测试}{5}{section.1.1} \defcounter {refsection}{0}\relax \contentsline {section}{\numberline {1.2}Citation}{5}{section.1.2} \defcounter {refsection}{0}\relax \contentsline {section}{\numberline {1.3}Lists}{5}{section.1.3} \defcounter {refsection}{0}\relax \contentsline {subsection}{\numberline {1.3.1}Numbered List}{5}{subsection.1.3.1} \defcounter {refsection}{0}\relax \contentsline {subsection}{\numberline {1.3.2}Bullet Points}{5}{subsection.1.3.2} \defcounter {refsection}{0}\relax \contentsline {subsection}{\numberline {1.3.3}Descriptions and Definitions}{5}{subsection.1.3.3} \defcounter {refsection}{0}\relax \contentsline {chapter}{\numberline {2}In-text Elements}{7}{chapter.2} \defcounter {refsection}{0}\relax \contentsline {section}{\numberline {2.1}Theorems}{7}{section.2.1} \defcounter {refsection}{0}\relax \contentsline {subsection}{\numberline {2.1.1}Several equations}{7}{subsection.2.1.1} \defcounter {refsection}{0}\relax \contentsline {subsection}{\numberline {2.1.2}Single Line}{7}{subsection.2.1.2} \defcounter {refsection}{0}\relax \contentsline {section}{\numberline {2.2}Definitions}{7}{section.2.2} \defcounter {refsection}{0}\relax \contentsline {section}{\numberline {2.3}Notations}{8}{section.2.3} \defcounter {refsection}{0}\relax \contentsline {section}{\numberline {2.4}Remarks}{8}{section.2.4} \defcounter {refsection}{0}\relax \contentsline {section}{\numberline {2.5}Corollaries}{8}{section.2.5} \defcounter {refsection}{0}\relax \contentsline {section}{\numberline {2.6}Propositions}{8}{section.2.6} \defcounter {refsection}{0}\relax \contentsline {subsection}{\numberline {2.6.1}Several equations}{8}{subsection.2.6.1} \defcounter {refsection}{0}\relax \contentsline {subsection}{\numberline {2.6.2}Single Line}{8}{subsection.2.6.2} \defcounter {refsection}{0}\relax \contentsline {section}{\numberline {2.7}Examples}{8}{section.2.7} \defcounter {refsection}{0}\relax \contentsline {subsection}{\numberline {2.7.1}Equation and Text}{8}{subsection.2.7.1} \defcounter {refsection}{0}\relax \contentsline {subsection}{\numberline {2.7.2}Paragraph of Text}{9}{subsection.2.7.2} \defcounter {refsection}{0}\relax \contentsline {section}{\numberline {2.8}Exercises}{9}{section.2.8} \defcounter {refsection}{0}\relax \contentsline {section}{\numberline {2.9}Problems}{9}{section.2.9} \defcounter {refsection}{0}\relax \contentsline {section}{\numberline {2.10}Vocabulary}{9}{section.2.10} \defcounter {refsection}{0}\relax \contentsline {chapter}{\numberline {3}Presenting Information}{11}{chapter.3} \defcounter {refsection}{0}\relax \contentsline {section}{\numberline {3.1}Table}{11}{section.3.1} \defcounter {refsection}{0}\relax \contentsline {section}{\numberline {3.2}Figure}{11}{section.3.2} \defcounter {refsection}{0}\relax \contentsline {chapter}{\leavevmode {\color {ocre}Bibliography}}{13}{chapter*.2} \defcounter {refsection}{0}\relax \contentsline {section}{Books}{13}{section*.3} \defcounter {refsection}{0}\relax \contentsline {section}{Articles}{13}{section*.4} \defcounter {refsection}{0}\relax \contentsline {chapter}{\leavevmode {\color {ocre}Index}}{15}{section*.5} \contentsfinish ================================================ FILE: docs/structure.tex ================================================ %---------------------------------------------------------------------------------------- % VARIOUS REQUIRED PACKAGES %---------------------------------------------------------------------------------------- \usepackage{titlesec} % Allows customization of titles \usepackage{graphicx} % Required for including pictures \graphicspath{{Pictures/}} % Specifies the directory where pictures are stored \usepackage{lipsum} % Inserts dummy text \usepackage{tikz} % Required for drawing custom shapes \usepackage[english]{babel} % English language/hyphenation \usepackage{enumitem} % Customize lists \setlist{nolistsep} % Reduce spacing between bullet points and numbered lists \usepackage{booktabs} % Required for nicer horizontal rules in tables \usepackage{eso-pic} % Required for specifying an image background in the title page %---------------------------------------------------------------------------------------- % MAIN TABLE OF CONTENTS %---------------------------------------------------------------------------------------- \usepackage{titletoc} % Required for manipulating the table of contents \contentsmargin{0cm} % Removes the default margin % Chapter text styling \titlecontents{chapter}[1.25cm] % Indentation {\addvspace{15pt}\large\sffamily\bfseries} % Spacing and font options for chapters {\color{ocre!60}\contentslabel[\Large\thecontentslabel]{1.25cm}\color{ocre}} % Chapter number {} {\color{ocre!60}\normalsize\sffamily\bfseries\;\titlerule*[.5pc]{.}\;\thecontentspage} % Page number % Section text styling \titlecontents{section}[1.25cm] % Indentation {\addvspace{5pt}\sffamily\bfseries} % Spacing and font options for sections {\contentslabel[\thecontentslabel]{1.25cm}} % Section number {} {\sffamily\hfill\color{black}\thecontentspage} % Page number [] % Subsection text styling \titlecontents{subsection}[1.25cm] % Indentation {\addvspace{1pt}\sffamily\small} % Spacing and font options for subsections {\contentslabel[\thecontentslabel]{1.25cm}} % Subsection number {} {\sffamily\;\titlerule*[.5pc]{.}\;\thecontentspage} % Page number [] %---------------------------------------------------------------------------------------- % MINI TABLE OF CONTENTS IN CHAPTER HEADS %---------------------------------------------------------------------------------------- % Section text styling \titlecontents{lsection}[0em] % Indendating {\footnotesize\sffamily} % Font settings {} {} {} % Subsection text styling \titlecontents{lsubsection}[.5em] % Indentation {\normalfont\footnotesize\sffamily} % Font settings {} {} {} %---------------------------------------------------------------------------------------- % PAGE HEADERS %---------------------------------------------------------------------------------------- \usepackage{fancyhdr} % Required for header and footer configuration \pagestyle{fancy} \renewcommand{\chaptermark}[1]{\markboth{\sffamily\normalsize\bfseries\chaptername\ \thechapter.\ #1}{}} % Chapter text font settings \renewcommand{\sectionmark}[1]{\markright{\sffamily\normalsize\thesection\hspace{5pt}#1}{}} % Section text font settings \fancyhf{} \fancyhead[LE,RO]{\sffamily\normalsize\thepage} % Font setting for the page number in the header \fancyhead[LO]{\rightmark} % Print the nearest section name on the left side of odd pages \fancyhead[RE]{\leftmark} % Print the current chapter name on the right side of even pages \renewcommand{\headrulewidth}{0.5pt} % Width of the rule under the header \addtolength{\headheight}{2.5pt} % Increase the spacing around the header slightly \renewcommand{\footrulewidth}{0pt} % Removes the rule in the footer \fancypagestyle{plain}{\fancyhead{}\renewcommand{\headrulewidth}{0pt}} % Style for when a plain pagestyle is specified % Removes the header from odd empty pages at the end of chapters \makeatletter \renewcommand{\cleardoublepage}{ \clearpage\ifodd\c@page\else \hbox{} \vspace*{\fill} \thispagestyle{empty} \newpage \fi} %---------------------------------------------------------------------------------------- % THEOREM STYLES %---------------------------------------------------------------------------------------- \usepackage{amsmath,amsfonts,amssymb,amsthm} % For math equations, theorems, symbols, etc \newcommand{\intoo}[2]{\mathopen{]}#1\,;#2\mathclose{[}} \newcommand{\ud}{\mathop{\mathrm{{}d}}\mathopen{}} \newcommand{\intff}[2]{\mathopen{[}#1\,;#2\mathclose{]}} \newtheorem{notation}{Notation}[chapter] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%% dedicated to boxed/framed environements %%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newtheoremstyle{ocrenumbox}% % Theorem style name {0pt}% Space above {0pt}% Space below {\normalfont}% % Body font {}% Indent amount {\small\bf\sffamily\color{ocre}}% % Theorem head font {\;}% Punctuation after theorem head {0.25em}% Space after theorem head {\small\sffamily\color{ocre}\thmname{#1}\nobreakspace\thmnumber{\@ifnotempty{#1}{}\@upn{#2}}% Theorem text (e.g. Theorem 2.1) \thmnote{\nobreakspace\the\thm@notefont\sffamily\bfseries\color{black}---\nobreakspace#3.}} % Optional theorem note \renewcommand{\qedsymbol}{$\blacksquare$}% Optional qed square \newtheoremstyle{blacknumex}% Theorem style name {5pt}% Space above {5pt}% Space below {\normalfont}% Body font {} % Indent amount {\small\bf\sffamily}% Theorem head font {\;}% Punctuation after theorem head {0.25em}% Space after theorem head {\small\sffamily{\tiny\ensuremath{\blacksquare}}\nobreakspace\thmname{#1}\nobreakspace\thmnumber{\@ifnotempty{#1}{}\@upn{#2}}% Theorem text (e.g. Theorem 2.1) \thmnote{\nobreakspace\the\thm@notefont\sffamily\bfseries---\nobreakspace#3.}}% Optional theorem note \newtheoremstyle{blacknumbox} % Theorem style name {0pt}% Space above {0pt}% Space below {\normalfont}% Body font {}% Indent amount {\small\bf\sffamily}% Theorem head font {\;}% Punctuation after theorem head {0.25em}% Space after theorem head {\small\sffamily\thmname{#1}\nobreakspace\thmnumber{\@ifnotempty{#1}{}\@upn{#2}}% Theorem text (e.g. Theorem 2.1) \thmnote{\nobreakspace\the\thm@notefont\sffamily\bfseries---\nobreakspace#3.}}% Optional theorem note %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%% dedicated to non-boxed/non-framed environements %%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newtheoremstyle{ocrenum}% % Theorem style name {5pt}% Space above {5pt}% Space below {\normalfont}% % Body font {}% Indent amount {\small\bf\sffamily\color{ocre}}% % Theorem head font {\;}% Punctuation after theorem head {0.25em}% Space after theorem head {\small\sffamily\color{ocre}\thmname{#1}\nobreakspace\thmnumber{\@ifnotempty{#1}{}\@upn{#2}}% Theorem text (e.g. Theorem 2.1) \thmnote{\nobreakspace\the\thm@notefont\sffamily\bfseries\color{black}---\nobreakspace#3.}} % Optional theorem note \renewcommand{\qedsymbol}{$\blacksquare$}% Optional qed square \makeatother % Defines the theorem text style for each type of theorem to one of the three styles above \newcounter{dummy} \numberwithin{dummy}{section} \theoremstyle{ocrenumbox} \newtheorem{theoremeT}[dummy]{Theorem} \newtheorem{problem}{Problem}[chapter] \newtheorem{exerciseT}{Exercise}[chapter] \theoremstyle{blacknumex} \newtheorem{exampleT}{Example}[chapter] \theoremstyle{blacknumbox} \newtheorem{vocabulary}{Vocabulary}[chapter] \newtheorem{definitionT}{Definition}[section] \newtheorem{corollaryT}[dummy]{Corollary} \theoremstyle{ocrenum} \newtheorem{proposition}[dummy]{Proposition} %---------------------------------------------------------------------------------------- % DEFINITION OF COLORED BOXES %---------------------------------------------------------------------------------------- \RequirePackage[framemethod=default]{mdframed} % Required for creating the theorem, definition, exercise and corollary boxes % Theorem box \newmdenv[skipabove=7pt, skipbelow=7pt, backgroundcolor=black!5, linecolor=ocre, innerleftmargin=5pt, innerrightmargin=5pt, innertopmargin=5pt, leftmargin=0cm, rightmargin=0cm, innerbottommargin=5pt]{tBox} % Exercise box \newmdenv[skipabove=7pt, skipbelow=7pt, rightline=false, leftline=true, topline=false, bottomline=false, backgroundcolor=ocre!10, linecolor=ocre, innerleftmargin=5pt, innerrightmargin=5pt, innertopmargin=5pt, innerbottommargin=5pt, leftmargin=0cm, rightmargin=0cm, linewidth=4pt]{eBox} % Definition box \newmdenv[skipabove=7pt, skipbelow=7pt, rightline=false, leftline=true, topline=false, bottomline=false, linecolor=ocre, innerleftmargin=5pt, innerrightmargin=5pt, innertopmargin=0pt, leftmargin=0cm, rightmargin=0cm, linewidth=4pt, innerbottommargin=0pt]{dBox} % Corollary box \newmdenv[skipabove=7pt, skipbelow=7pt, rightline=false, leftline=true, topline=false, bottomline=false, linecolor=gray, backgroundcolor=black!5, innerleftmargin=5pt, innerrightmargin=5pt, innertopmargin=5pt, leftmargin=0cm, rightmargin=0cm, linewidth=4pt, innerbottommargin=5pt]{cBox} % Creates an environment for each type of theorem and assigns it a theorem text style from the "Theorem Styles" section above and a colored box from above \newenvironment{theorem}{\begin{tBox}\begin{theoremeT}}{\end{theoremeT}\end{tBox}} \newenvironment{exercise}{\begin{eBox}\begin{exerciseT}}{\hfill{\color{ocre}\tiny\ensuremath{\blacksquare}}\end{exerciseT}\end{eBox}} \newenvironment{definition}{\begin{dBox}\begin{definitionT}}{\end{definitionT}\end{dBox}} \newenvironment{example}{\begin{exampleT}}{\hfill{\tiny\ensuremath{\blacksquare}}\end{exampleT}} \newenvironment{corollary}{\begin{cBox}\begin{corollaryT}}{\end{corollaryT}\end{cBox}} %---------------------------------------------------------------------------------------- % REMARK ENVIRONMENT %---------------------------------------------------------------------------------------- \newenvironment{remark}{\par\vspace{10pt}\small % Vertical white space above the remark and smaller font size \begin{list}{}{ \leftmargin=35pt % Indentation on the left \rightmargin=25pt}\item\ignorespaces % Indentation on the right \makebox[-2.5pt]{\begin{tikzpicture}[overlay] \node[draw=ocre!60,line width=1pt,circle,fill=ocre!25,font=\sffamily\bfseries,inner sep=2pt,outer sep=0pt] at (-15pt,0pt){\textcolor{ocre}{R}};\end{tikzpicture}} % Orange R in a circle \advance\baselineskip -1pt}{\end{list}\vskip5pt} % Tighter line spacing and white space after remark %---------------------------------------------------------------------------------------- % SECTION NUMBERING IN THE MARGIN %---------------------------------------------------------------------------------------- \makeatletter \renewcommand{\@seccntformat}[1]{\llap{\textcolor{ocre}{\csname the#1\endcsname}\hspace{1em}}} \renewcommand{\section}{\@startsection{section}{1}{\z@} {-4ex \@plus -1ex \@minus -.4ex} {1ex \@plus.2ex } {\normalfont\large\sffamily\bfseries}} \renewcommand{\subsection}{\@startsection {subsection}{2}{\z@} {-3ex \@plus -0.1ex \@minus -.4ex} {0.5ex \@plus.2ex } {\normalfont\sffamily\bfseries}} \renewcommand{\subsubsection}{\@startsection {subsubsection}{3}{\z@} {-2ex \@plus -0.1ex \@minus -.2ex} {.2ex \@plus.2ex } {\normalfont\small\sffamily\bfseries}} \renewcommand\paragraph{\@startsection{paragraph}{4}{\z@} {-2ex \@plus-.2ex \@minus .2ex} {.1ex} {\normalfont\small\sffamily\bfseries}} %---------------------------------------------------------------------------------------- % HYPERLINKS IN THE DOCUMENTS %---------------------------------------------------------------------------------------- % For an unclear reason, the package should be loaded now and not later \usepackage{hyperref} \hypersetup{hidelinks,backref=true,pagebackref=true,hyperindex=true,colorlinks=false,breaklinks=true,urlcolor= ocre,bookmarks=true,bookmarksopen=false,pdftitle={Title},pdfauthor={Author}} %---------------------------------------------------------------------------------------- % CHAPTER HEADINGS %---------------------------------------------------------------------------------------- % The set-up below should be (sadly) manually adapted to the overall margin page septup controlled by the geometry package loaded in the main.tex document. It is possible to implement below the dimensions used in the goemetry package (top,bottom,left,right)... TO BE DONE \newcommand{\thechapterimage}{} \newcommand{\chapterimage}[1]{\renewcommand{\thechapterimage}{#1}} % Numbered chapters with mini tableofcontents \def\thechapter{\arabic{chapter}} \def\@makechapterhead#1{ \thispagestyle{empty} {\centering \normalfont\sffamily \ifnum \c@secnumdepth >\m@ne \if@mainmatter \startcontents \begin{tikzpicture}[remember picture,overlay] \node at (current page.north west) {\begin{tikzpicture}[remember picture,overlay] \node[anchor=north west,inner sep=0pt] at (0,0) {\includegraphics[width=\paperwidth]{\thechapterimage}}; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Commenting the 3 lines below removes the small contents box in the chapter heading \fill[color=ocre!10!white,opacity=.6] (1cm,0) rectangle (8cm,-7cm); \node[anchor=north west] at (1.1cm,.35cm) {\parbox[t][8cm][t]{6.5cm}{\huge\bfseries\flushleft \printcontents{l}{1}{\setcounter{tocdepth}{2}}}}; \draw[anchor=west] (5cm,-9cm) node [rounded corners=20pt,fill=ocre!10!white,text opacity=1,draw=ocre,draw opacity=1,line width=1.5pt,fill opacity=.6,inner sep=12pt]{\huge\sffamily\bfseries\textcolor{black}{\thechapter. #1\strut\makebox[22cm]{}}}; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \end{tikzpicture}}; \end{tikzpicture}} \par\vspace*{230\p@} \fi \fi} % Unnumbered chapters without mini tableofcontents (could be added though) \def\@makeschapterhead#1{ \thispagestyle{empty} {\centering \normalfont\sffamily \ifnum \c@secnumdepth >\m@ne \if@mainmatter \begin{tikzpicture}[remember picture,overlay] \node at (current page.north west) {\begin{tikzpicture}[remember picture,overlay] \node[anchor=north west,inner sep=0pt] at (0,0) {\includegraphics[width=\paperwidth]{\thechapterimage}}; \draw[anchor=west] (5cm,-9cm) node [rounded corners=20pt,fill=ocre!10!white,fill opacity=.6,inner sep=12pt,text opacity=1,draw=ocre,draw opacity=1,line width=1.5pt]{\huge\sffamily\bfseries\textcolor{black}{#1\strut\makebox[22cm]{}}}; \end{tikzpicture}}; \end{tikzpicture}} \par\vspace*{230\p@} \fi \fi } \makeatother ================================================ FILE: dotfile/.bashrc ================================================ export TERM='xterm-256color' export LANG=en_US.UTF-8 export LC_CTYPE="en_US.UTF-8" export LC_ALL=en_US.UTF-8 TZ='Asia/Shanghai'; export TZ stty stop '' stty start '' stty -ixon stty -ixoff PS1="[\[\e[32m\]#\##\[\e[31m\]\u@\[\e[36m\]\h \w]\$\[\e[m\]" alias resetenv='curl https://raw.githubusercontent.com/lijianying10/FixLinux/master/script/env.sh | bash' export GOPATH=/go export PATH=$PATH:/go/bin/:/usr/local/go/bin/:/usr/local/node/bin/ ================================================ FILE: dotfile/.tmux.conf ================================================ # 0 is too far from ` ;) set -g base-index 1 # Automatically set window title set-window-option -g automatic-rename on set-option -g set-titles on set -g default-terminal screen-256color set -g status-keys vi set -g history-limit 10000 setw -g mode-keys vi setw -g monitor-activity on bind-key v split-window -h bind-key s split-window -v bind-key -n M-S resize-pane -D 2 bind-key -n M-W resize-pane -U 2 bind-key -n M-A resize-pane -L 2 bind-key -n M-D resize-pane -R 2 # Vim style pane selection bind h select-pane -L bind j select-pane -D bind k select-pane -U bind l select-pane -R # Use Alt-vim keys without prefix key to switch panes #bind -n M-h select-pane -L #bind -n M-j select-pane -D #bind -n M-k select-pane -U #bind -n M-l select-pane -R # Use Alt-arrow keys without prefix key to switch panes #bind -n M-Left select-pane -L #bind -n M-Right select-pane -R #bind -n M-Up select-pane -U #bind -n M-Down select-pane -D # Shift arrow to switch windows bind -n M-h previous-window bind -n M-l next-window bind -n M-a select-pane -L # move left bind -n M-s select-pane -D # move down bind -n M-w select-pane -U # move up bind -n M-d select-pane -R # move right bind -n M-q split-window -h bind -n M-e split-window -v bind -n M-r command-prompt "rename-window '%%'" # No delay for escape key press set -sg escape-time 0 # Reload tmux config bind r source-file ~/.tmux.conf # THEME set -g status-bg black set -g status-fg white set -g window-status-current-bg white set -g window-status-current-fg black #set -g window-status-current-attr bold set -g status-interval 1 set -g status-left-length 30 #set -g status-left '#[fg=green](#S) #(whoami)' set -g status-right '#[fg=green]#(freem)#[default] #[fg=yellow]#(cut -d " " -f 1-3 /proc/loadavg)#[default] #[fg=white]%H:%M:%S#[default] #[fg=white]#(date +%s)#[default]' ================================================ FILE: dotfile/.vimrc ================================================ filetype off " required " Specify a directory for plugins " - For Neovim: ~/.local/share/nvim/plugged " - Avoid using standard Vim directory names like 'plugin' call plug#begin('~/.vim/plugged') " Initialize plugin system Plug 'fatih/vim-go' Plug 'mileszs/ack.vim' Plug 'majutsushi/tagbar' Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } Plug 'vim-airline/vim-airline' Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } Plug 'junegunn/fzf.vim' " for HTML Plug 'mattn/emmet-vim' " for typescript Plug 'leafgarland/typescript-vim' " for JS Plug 'pangloss/vim-javascript' " for SNIP tool Plug 'SirVer/ultisnips' " Snippets are separated from the engine. Add this if you want them: Plug 'honza/vim-snippets' Plug 'w0rp/ale' Plug 'joshdick/onedark.vim' Plug 'neoclide/coc.nvim', {'branch': 'release'} Plug 'google/vim-maktaba' Plug 'bazelbuild/vim-bazel' Plug 'tmhedberg/simpylfold' call plug#end() let g:python3_host_prog = '/usr/bin/python3' " let g:python_host_prog = '/usr/bin/python' let g:loaded_python_provider=1 let g:python_host_skip_check=1 " 代码高亮用的 syntax enable filetype plugin on set number set noswapfile let g:go_fmt_command = "goimports" "保存的时候自动运行goimports let g:go_highlight_build_constraints = 1 let g:go_highlight_extra_types = 1 let g:go_highlight_fields = 1 let g:go_highlight_functions = 1 let g:go_highlight_methods = 1 let g:go_highlight_operators = 1 let g:go_highlight_structs = 1 let g:go_highlight_types = 1 let g:go_def_mode='gopls' let g:go_info_mode='gopls' " 颜色配置 colorscheme onedark " 标签分析 let g:tagbar_type_go = { \ 'ctagstype' : 'go', \ 'kinds' : [ \ 'p:package', \ 'i:imports:1', \ 'c:constants', \ 'v:variables', \ 't:types', \ 'n:interfaces', \ 'w:fields', \ 'e:embedded', \ 'm:methods', \ 'r:constructor', \ 'f:functions' \ ], \ 'sro' : '.', \ 'kind2scope' : { \ 't' : 'ctype', \ 'n' : 'ntype' \ }, \ 'scope2kind' : { \ 'ctype' : 't', \ 'ntype' : 'n' \ }, \ 'ctagsbin' : 'gotags', \ 'ctagsargs' : '-sort -silent' \ } " 标签映射 " execute "set =\ei" " execute "set =\eo" " execute "set =\ep" " execute "set =\eu" " execute "set =\el" " execute "set =\en" " execute "set =\ey" " execute "set =\ec" nmap :TagbarToggle imap :TagbarTogglei nmap :NERDTreeToggle imap :NERDTreeToggle nmap :q nmap :tabn imap :tabn nmap :tabp imap :tabp nmap :w:GoMetaLinter nmap (coc-definition) nmap :undo nmap :GoErrCheck nmap :w imap :w imap :pc nmap :pc nmap r :Ack nmap t :FZF set backspace=indent,eol,start " 让backspace能正常工作的配置 " 这是对PowerLine的设置 set encoding=utf-8 set laststatus=2 let g:Powerline_symbols='unicode' " tab设置 set ts=4 set expandtab " 解决esc延迟问题 set timeoutlen=1000 ttimeoutlen=0 "高亮显示搜索匹配到的字符串 set hlsearch "在搜索模式下,随着搜索字符的逐个输入,实时进行字符串匹配,并对首个匹配到的字符串高亮显示 set incsearch " 解决Tmux下 背景颜色不一致的问题 set t_ut= " tab 也使用airline let g:airline#extensions#tabline#enabled = 1 " 使用Powerline字体 let g:airline_powerline_fonts = 1 let g:ackprg = 'ack -s -H --nopager --nocolor --nogroup --column --smart-case' function SetClipData() let clipdata = getreg("") call system("echo -n '".clipdata."' > /tmp/clipdata") endfunction func GetClipData() let clipdata = system("cat /tmp/clipdata") call append(getpos(".")[1],split(clipdata,"\n")) endfunction nmap c :call SetClipData() nmap v :call GetClipData() inoremap { {}i inoremap ( ()i inoremap " ""i inoremap ' ''i augroup gopkgs autocmd! autocmd FileType go command! -buffer Import exe 'GoImport' fzf#run({'source': 'gopkgs'})[0] autocmd FileType go command! -buffer Doc exe 'GoDoc' fzf#run({'source': 'gopkgs'})[0] augroup END " for js check let g:javascript_plugin_jsdoc = 1 let g:javascript_plugin_ngdoc = 1 let g:javascript_plugin_flow = 1 " Snippets tool config " Trigger configuration. Do not use if you use https://github.com/Valloric/YouCompleteMe. let g:UltiSnipsExpandTrigger="" let g:UltiSnipsJumpForwardTrigger="" let g:UltiSnipsJumpBackwardTrigger="" " If you want :UltiSnipsEdit to split your window. let g:UltiSnipsEditSplit="vertical" " tabs for golang au FileType go set noexpandtab au FileType go set shiftwidth=4 au FileType go set softtabstop=4 au FileType go set tabstop=4 " For ale let g:ale_linters = {'go': ['golint']} " Error and warning signs. let g:ale_sign_error = '⤫' let g:ale_sign_warning = '⚠' " Enable integration with airline. let g:airline#extensions#ale#enabled = 1 " For ack " Real time preview let g:ackpreview=1 " Offset while scroll line set scrolloff=6 set completeopt-=preview " ------------------------------------------------------------------------------------------------- " coc.nvim default settings " ------------------------------------------------------------------------------------------------- " TextEdit might fail if hidden is not set. set hidden " Some servers have issues with backup files, see #649. set nobackup set nowritebackup " Give more space for displaying messages. set cmdheight=2 " Having longer updatetime (default is 4000 ms = 4 s) leads to noticeable " delays and poor user experience. set updatetime=300 " Don't pass messages to |ins-completion-menu|. set shortmess+=c " Use tab for trigger completion with characters ahead and navigate. " NOTE: Use command ':verbose imap ' to make sure tab is not mapped by " other plugin before putting this into your config. inoremap \ pumvisible() ? "\" : \ check_back_space() ? "\" : \ coc#refresh() inoremap pumvisible() ? "\" : "\" function! s:check_back_space() abort let col = col('.') - 1 return !col || getline('.')[col - 1] =~# '\s' endfunction " Use to trigger completion. if has('nvim') inoremap coc#refresh() else inoremap coc#refresh() endif " Make auto-select the first completion item and notify coc.nvim to " format on enter, could be remapped by other vim plugin inoremap pumvisible() ? coc#_select_confirm() \: "\u\\=coc#on_enter()\" " Use `[g` and `]g` to navigate diagnostics " Use `:CocDiagnostics` to get all diagnostics of current buffer in location list. nmap [g (coc-diagnostic-prev) nmap ]g (coc-diagnostic-next) " GoTo code navigation. nmap gd (coc-definition) nmap gy (coc-type-definition) nmap gi (coc-implementation) nmap gr (coc-references) " Use K to show documentation in preview window. nnoremap K :call show_documentation() function! s:show_documentation() if (index(['vim','help'], &filetype) >= 0) execute 'h '.expand('') elseif (coc#rpc#ready()) call CocActionAsync('doHover') else execute '!' . &keywordprg . " " . expand('') endif endfunction " Highlight the symbol and its references when holding the cursor. autocmd CursorHold * silent call CocActionAsync('highlight') " Symbol renaming. nmap rn (coc-rename) " Formatting selected code. xmap f (coc-format-selected) nmap f (coc-format-selected) augroup mygroup autocmd! " Setup formatexpr specified filetype(s). autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected') " Update signature help on jump placeholder. autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp') augroup end " Applying codeAction to the selected region. " Example: `aap` for current paragraph xmap a (coc-codeaction-selected) nmap a (coc-codeaction-selected) " Remap keys for applying codeAction to the current buffer. nmap ac (coc-codeaction) " Apply AutoFix to problem on the current line. nmap qf (coc-fix-current) " Map function and class text objects " NOTE: Requires 'textDocument.documentSymbol' support from the language server. xmap if (coc-funcobj-i) omap if (coc-funcobj-i) xmap af (coc-funcobj-a) omap af (coc-funcobj-a) xmap ic (coc-classobj-i) omap ic (coc-classobj-i) xmap ac (coc-classobj-a) omap ac (coc-classobj-a) " Remap and for scroll float windows/popups. if has('nvim-0.4.0') || has('patch-8.2.0750') nnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" nnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" inoremap coc#float#has_scroll() ? "\=coc#float#scroll(1)\" : "\" inoremap coc#float#has_scroll() ? "\=coc#float#scroll(0)\" : "\" vnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" vnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" endif " Use CTRL-S for selections ranges. " Requires 'textDocument/selectionRange' support of language server. " nmap (coc-range-select) " xmap (coc-range-select) " Add `:Format` command to format current buffer. command! -nargs=0 Format :call CocAction('format') " Add `:Fold` command to fold current buffer. command! -nargs=? Fold :call CocAction('fold', ) " Add `:OR` command for organize imports of the current buffer. command! -nargs=0 OR :call CocAction('runCommand', 'editor.action.organizeImport') " Add (Neo)Vim's native statusline support. " NOTE: Please see `:h coc-status` for integrations with external plugins that " provide custom statusline: lightline.vim, vim-airline. set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')} " Mappings for CoCList " Show all diagnostics. nnoremap a :CocList diagnostics " Manage extensions. nnoremap e :CocList extensions " Show commands. nnoremap c :CocList commands " Find symbol of current document. nnoremap o :CocList outline " Search workspace symbols. nnoremap s :CocList -I symbols " Do default action for next item. nnoremap j :CocNext " Do default action for previous item. nnoremap k :CocPrev " Resume latest coc list. nnoremap p :CocListResume " ------------------------------------------------------------------------------------------------- " coc.nvim default settings end " ------------------------------------------------------------------------------------------------- " disable vim-go :GoDef short cut (gd) " this is handled by LanguageClient [LC] let g:go_def_mapping_enabled = 0 " set number line width 1 set nuw=1 " disable vim-go gopls let g:go_gopls_enabled=0 " enable fold set foldmethod=syntax set foldlevel=4 let g:SimpylFold_docstring_preview=1 ================================================ FILE: dotfile/coc-settings.json ================================================ { "languageserver": { "golang": { "command": "gopls", "rootPatterns": ["go.mod"], "filetypes": ["go"] } } } ================================================ FILE: gh60.c ================================================ #include "keymap_common.h" const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 0: qwerty */ KEYMAP_ANSI( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ ESC,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \ LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, FN0, \ LCTL,LGUI,LALT, SPC, DEL, UP,HOME, END), /* 1: colemak */ KEYMAP_ANSI( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ TAB, Q, W, F, P, G, J, L, U, Y, SCLN,LBRC,RBRC,BSLS, \ BSPC,A, R, S, T, D, H, N, E, I, O, QUOT, ENT, \ LSFT,Z, X, C, V, B, K, M, COMM,DOT, SLSH, RSFT, \ LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), /* 2: dvorak */ KEYMAP_ANSI( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC,RBRC,BSPC, \ TAB, QUOT,COMM,DOT, P, Y, F, G, C, R, L, SLSH,EQL, BSLS, \ CAPS,A, O, E, U, I, D, H, T, N, S, MINS, ENT, \ LSFT,SCLN,Q, J, K, X, B, M, W, V, Z, RSFT, \ LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), /* 3: workman */ KEYMAP_ANSI( GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ TAB, Q, D, R, W, B, J, F, U, P, SCLN,LBRC,RBRC,BSLS, \ BSPC,A, S, H, T, G, Y, N, E, O, I, QUOT, ENT, \ LSFT,Z, X, M, C, V, K, L, COMM,DOT, SLSH, RSFT, \ LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), /* 4: Poker with Arrow */ KEYMAP_ANSI( TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \ TRNS,TRNS,TRNS, TRNS, TRNS,LEFT,DOWN,RGHT), /* 5: Poker with Esc */ KEYMAP_ANSI( TRNS, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), /* 6: Poker Fn * ,-----------------------------------------------------------. * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| | * |-----------------------------------------------------------| * | |FnQ| Up| | | | | | |Cal| |Hom|Ins|FnL | * |-----------------------------------------------------------| * | |Lef|Dow|Rig| | |Psc|Slk|Pau| |Tsk|End| | * |-----------------------------------------------------------| * | |Del| |Web|Mut|VoU|VoD| |PgU|PgD|Del| | * |-----------------------------------------------------------| * | | | | FnS | | | | | * `-----------------------------------------------------------' * Fn: to Fn overlay * FnL: to Layout selector overaly * FnQ: toggle Esc overlay * FnS: toggle Arrow overlay */ KEYMAP_ANSI( GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ TRNS,FN2, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, FN4, \ TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END, TRNS, \ TRNS,DEL, TRNS,WHOM,MUTE,VOLD,VOLU,MPLY,MPRV,MNXT,MSTP, TRNS, \ TRNS,TRNS,TRNS, FN1, TRNS,DOWN,LEFT,RIGHT), /* 7: Layout selector * ,-----------------------------------------------------------. * | Lq| Lc| Ld| Lw| | | | | | | | | | | * |-----------------------------------------------------------| * | |Lq |Lw | | | | | | | | | | | | * |-----------------------------------------------------------| * | | | |Ld | | | | | | | | | | * |-----------------------------------------------------------| * | | | |Lc | | | | | | | | | * |-----------------------------------------------------------| * | | | | | | | | | * `-----------------------------------------------------------' * Lq: set Qwerty layout * Lc: set Colemak layout * Ld: set Dvorak layout * Lw: set Workman layout */ KEYMAP_ANSI( TRNS, FN6, FN7, FN8, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,FN5, FN8, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ TRNS,TRNS,TRNS,FN7, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ TRNS,TRNS,TRNS,FN6, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), }; const uint16_t PROGMEM fn_actions[] = { /* Poker Layout */ [0] = ACTION_LAYER_MOMENTARY(6), // to Fn overlay [1] = ACTION_LAYER_TOGGLE(4), // toggle arrow overlay [2] = ACTION_LAYER_TOGGLE(5), // toggle Esc overlay [3] = ACTION_MODS_KEY(MOD_RCTL|MOD_RSFT, KC_ESC), // Task(RControl,RShift+Esc) [4] = ACTION_LAYER_MOMENTARY(7), // to Layout selector [5] = ACTION_DEFAULT_LAYER_SET(0), // set qwerty layout [6] = ACTION_DEFAULT_LAYER_SET(1), // set colemak layout [7] = ACTION_DEFAULT_LAYER_SET(2), // set dvorak layout [8] = ACTION_DEFAULT_LAYER_SET(3), // set workman layout }; #ifdef KEYMAP_IN_EEPROM_ENABLE uint16_t keys_count(void) { return sizeof(keymaps) / sizeof(keymaps[0]) * MATRIX_ROWS * MATRIX_COLS; } uint16_t fn_actions_count(void) { return sizeof(fn_actions) / sizeof(fn_actions[0]); } #endif ================================================ FILE: golangdev/Dockerfile ================================================ FROM ubuntu:20.04 ENV GOPATH="/go" PATH="/go/bin:/usr/local/go/bin:$PATH:/usr/local/node/bin/" TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone &&\ apt-get update &&\ apt-get install -y --no-install-recommends telnet dnsutils mercurial build-essential curl git m4 texinfo libbz2-dev libcurl4-openssl-dev libexpat-dev libncurses-dev zlib1g-dev zip unzip locales xfonts-utils fontconfig ctags cmake libc6-dev pkg-config libelf1 wget iputils-ping software-properties-common ninja-build gettext libtool libtool-bin autotools-dev automake sudo python3-pip python3-setuptools ssh-client supervisor nginx tmux screen openssh-server ack-grep python3-dev &&\ mkdir /go && mkdir /var/run/sshd && chmod 0755 /var/run/sshd &&\ wget https://nodejs.org/dist/v14.15.4/node-v14.15.4-linux-x64.tar.xz && tar xf node-v14.15.4-linux-x64.tar.xz && mv node-v14.15.4-linux-x64 /usr/local/node && rm node-v14.15.4-linux-x64.tar.xz && \ wget https://github.com/krallin/tini/releases/download/v0.19.0/tini-amd64 -O /bin/tini && chmod +x /bin/tini &&\ wget https://github.com/neovim/neovim/archive/v0.4.4.tar.gz && tar xf v0.4.4.tar.gz && rm v0.4.4.tar.gz && cd neovim-0.4.4 && mkdir .deps && cd .deps && cmake ../third-party/ && make -j8 && cd .. && mkdir build && cd build && cmake .. && make -j8 && make install && cd / && rm -rf /neovim-0.4.4/ &&\ curl -fsSL "https://dl.google.com/go/go1.15.8.linux-amd64.tar.gz" -o golang.tar.gz \ && echo "d3379c32a90fdf9382166f8f48034c459a8cc433730bc9476d39d9082c94583b golang.tar.gz" | sha256sum -c - \ && tar -C /usr/local -xzf golang.tar.gz \ && rm golang.tar.gz &&\ curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim &&\ curl -Ssl https://raw.githubusercontent.com/lijianying10/FixLinux/master/dotfile/.vimrc -o ~/.vimrc &&\ curl -Ssl https://raw.githubusercontent.com/lijianying10/FixLinux/master/dotfile/.bashrc -o ~/.bashrc &&\ mkdir -p ~/.config && mkdir -p /root/.vim/ &&\ ln -s /root/.vim /root/.config/nvim &&\ ln -s /root/.vimrc /root/.vim/init.vim &&\ curl -Ssl https://raw.githubusercontent.com/lijianying10/FixLinux/master/dotfile/coc-settings.json -o /root/.config/nvim/coc-settings.json &&\ mkdir -p ~/.vim/colors/ &&\ npm install --global yarn &&\ npm install -g neovim &&\ pip3 install neovim --upgrade && nvim -i NONE -c PlugInstall! -c quitall &&\ nvim +GoInstallBinaries +qall &&\ echo "en_US.UTF-8 UTF-8" > /etc/locale.gen &&\ locale-gen "en_US.UTF-8"&& mkdir ~/.fonts/ &&\ cd ~/.fonts/ &&\ git clone https://github.com/eugeii/consolas-powerline-vim.git &&\ cd consolas-powerline-vim/ &&\ cp *.ttf .. &&\ cd .. &&\ rm -rf consolas-powerline-vim/ &&\ mkfontscale &&\ mkfontdir &&\ fc-cache -vf ENTRYPOINT ["/bin/tini", "--"] CMD ["/usr/bin/sleep", "200d"] ================================================ FILE: mesos/docker-systemd/docker.service ================================================ Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network.target docker.socket Requires=docker.socket [Service] Type=notify EnvironmentFile=/run/flannel/subnet.env # the default is not to use systemd for cgroups because the delegate issues still # exists and systemd currently does not support the cgroup feature set required # for containers run by docker ExecStart=/usr/bin/docker daemon --bip=${FLANNEL_SUBNET} --mtu=${FLANNEL_MTU} MountFlags=slave LimitNOFILE=1048576 LimitNPROC=1048576 LimitCORE=infinity TimeoutStartSec=0 # set delegate yes so that systemd does not reset the cgroups of docker containers Delegate=yes [Install] WantedBy=multi-user.target ================================================ FILE: mesos/docker-systemd/system-docker.service ================================================ [Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network.target system-docker.socket Requires=system-docker.socket [Service] Type=notify # the default is not to use systemd for cgroups because the delegate issues still # exists and systemd currently does not support the cgroup feature set required # for containers run by docker ExecStart=/usr/bin/docker daemon --exec-root=/var/run/system-docker -H unix:///var/run/system-docker.sock -p /var/run/system-docker.pid -g /var/lib/system-docker/ MountFlags=slave LimitNOFILE=1048576 LimitNPROC=1048576 LimitCORE=infinity TimeoutStartSec=0 # set delegate yes so that systemd does not reset the cgroups of docker containers Delegate=yes [Install] WantedBy=multi-user.target ================================================ FILE: mesos/docker-systemd/system-docker.socket ================================================ [Unit] Description=Docker Socket for the API PartOf=system-docker.service [Socket] ListenStream=/var/run/system-docker.sock SocketMode=0660 SocketUser=root SocketGroup=docker [Install] WantedBy=sockets.target ================================================ FILE: mesos/master.sh ================================================ set -e set -x docker run --rm -v /opt/:/data/ afafaf.newb.xyz/zookeeper:3.3.6 docker run --rm -v /opt/:/data/ afafaf.newb.xyz/etcd:2.3.7 docker run --rm -v /opt/:/data/ afafaf.newb.xyz/mesos:0.28.2 docker run --rm -v /opt/:/data/ afafaf.newb.xyz/marathon:1.1.1 docker run --rm -v /opt/:/data/ afafaf.newb.xyz/jdk:8u91 echo "Now instal" mkdir -p /opt/etcd-2.3.7 mv /opt/etcd /opt/etcd-2.3.7 mv /opt/etcdctl /opt/etcd-2.3.7 cd /opt tar xf jdk-8u91-linux-x64.tar.gz tar xf marathon-1.1.1.tgz tar xf mesos-0.28.2.tar.gz tar xf zookeeper-3.3.6.tar.gz rm jdk-8u91-linux-x64.tar.gz marathon-1.1.1.tgz mesos-0.28.2.tar.gz zookeeper-3.3.6.tar.gz ================================================ FILE: mesos/mesos-flannel-slave.sh ================================================ # Config REG=docker.elenet.me/jianying.li ##REG=index.alauda.cn/philo ##REG=afafaf.newb.xyz HostIP=192.168.56.101 #HostIP=192.168.81.110 IFACE=eth0 ZKID=1 ZKIPS=$HostIP ETCDNAME=etcd0 ETCDCLUSTER='etcd0=http://$HostIP:2380' # systemd: wget https://raw.githubusercontent.com/lijianying10/FixLinux/master/mesos/docker-systemd/docker.service -O /usr/lib/systemd/system/docker.service wget https://raw.githubusercontent.com/lijianying10/FixLinux/master/mesos/docker-systemd/system-docker.service -O /usr/lib/systemd/system/system-docker.service wget https://raw.githubusercontent.com/lijianying10/FixLinux/master/mesos/docker-systemd/system-docker.socket -O /usr/lib/systemd/system/system-docker.socket # start system-docker systemctl daemon-reload systemctl restart system-docker # deploy flannel: docker -H unix:///var/run/system-docker.sock pull $REG/flannel:0.5.5 docker -H unix:///var/run/system-docker.sock tag $REG/flannel:0.5.5 flannel:0.5.5 #runflannel: docker -H unix:///var/run/system-docker.sock run --name flannel -it -d -v /run/flannel/:/run/flannel/ --net=host --privileged flannel:0.5.5 /opt/bin/flanneld --ip-masq=true --iface=$IFACE -etcd-endpoints="http://$HostIP:4001,http://$HostIP:2379" # run user-docker systemctl restart docker # run mesos-slave docker -H unix:///var/run/system-docker.sock run -d \ -e MESOS_HOSTNAME=$HostIP \ -e MESOS_IP=$HostIP \ -e MESOS_MASTER=zk://$HostIP:2181,$HostIP:2181/mesos \ -v /sys/fs/cgroup:/sys/fs/cgroup \ -v /root/:/root/ \ -v /var/run/docker.sock:/var/run/docker.sock \ --name mesos-slave --net host --privileged --restart always \ $REG/mesos-slave:0.28.1-centos-7 ================================================ FILE: mesos/mesos-flannel.sh ================================================ # Config REG=docker.elenet.me/jianying.li ##REG=index.alauda.cn/philo ##REG=afafaf.newb.xyz HostIP=192.168.56.101 #HostIP=192.168.81.110 IFACE=eth0 ZKID=1 ZKIPS=$HostIP ETCDNAME=etcd0 ETCDCLUSTER='etcd0=http://$HostIP:2380' # systemd: wget https://raw.githubusercontent.com/lijianying10/FixLinux/master/mesos/docker-systemd/docker.service -O /usr/lib/systemd/system/docker.service wget https://raw.githubusercontent.com/lijianying10/FixLinux/master/mesos/docker-systemd/system-docker.service -O /usr/lib/systemd/system/system-docker.service wget https://raw.githubusercontent.com/lijianying10/FixLinux/master/mesos/docker-systemd/system-docker.socket -O /usr/lib/systemd/system/system-docker.socket # start system-docker systemctl daemon-reload systemctl restart system-docker # get-etcd: docker -H unix:///var/run/system-docker.sock pull $REG/etcd:2.3.7 docker -H unix:///var/run/system-docker.sock tag $REG/etcd:2.3.7 etcd:2.3.7 #system-docker-etcd: docker -H unix:///var/run/system-docker.sock run -it --net=host --privileged -d --name etcd etcd:2.3.7\ /etcd -name etcd0 \ -advertise-client-urls http://${HostIP}:2379,http://${HostIP}:4001 \ -listen-client-urls http://0.0.0.0:2379,http://0.0.0.0:4001 \ -initial-advertise-peer-urls http://${HostIP}:2380 \ -listen-peer-urls http://0.0.0.0:2380 \ -initial-cluster-token etcd-cluster-1 \ -initial-cluster etcd0=http://${HostIP}:2380 \ -initial-cluster-state new # deploy flannel: docker -H unix:///var/run/system-docker.sock pull $REG/flannel:0.5.5 docker -H unix:///var/run/system-docker.sock tag $REG/flannel:0.5.5 flannel:0.5.5 # Add flannel subnet: docker -H unix:///var/run/system-docker.sock exec -it etcd /etcdctl set /coreos.com/network/config '{ "Network": "10.1.0.0/16" }' #docker -H unix:///var/run/system-docker.sock run -it --rm --net=host etcd:2.3.7 /etcdctl set /coreos.com/network/config '{ "Network": "10.1.0.0/16" }' #curl -L -X PUT http://127.0.0.1:2379/v2/keys/coreos.com/network/config -d value='{ "Network": "10.1.0.0/16" }' #runflannel: docker -H unix:///var/run/system-docker.sock run --name flannel -it -d -v /run/flannel/:/run/flannel/ --net=host --privileged flannel:0.5.5 /opt/bin/flanneld --ip-masq=true --iface=$IFACE -etcd-endpoints="http://$HostIP:4001,http://$HostIP:2379" #run zk docker -H unix:///var/run/system-docker.sock run -d -it \ -e MYID=$ZKID \ -e SERVERS=$ZKIPS \ -v /var/lib/zookeeper:/root/zookeeperbackup \ --name=zookeeper --net=host --privileged --restart=always $REG/zookeeper:3.4.7-centos-7 # run Mesos docker -H unix:///var/run/system-docker.sock run -d \ -e MESOS_HOSTNAME=$HostIP \ -e MESOS_IP=$HostIP \ -e MESOS_QUORUM=1 \ -e MESOS_ZK=zk://$HostIP:2181,$HostIP:2181/mesos \ --name mesos-master --net host --privileged --restart always $REG/mesos-master:0.28.1-centos-7 #run marathon docker -H unix:///var/run/system-docker.sock run -d \ -e MARATHON_HOSTNAME=$HostIP \ -e MARATHON_HTTPS_ADDRESS=$HostIP \ -e MARATHON_HTTP_ADDRESS=$HostIP \ -e MARATHON_MASTER=zk://$HostIP:2181,$HostIP:2181/mesos \ -e MARATHON_ZK=zk://$HostIP:2181,$HostIP:2181/mesos \ --name marathon --net host --privileged --restart always $REG/marathon:1.1.1-centos-7 # run user-docker systemctl restart docker # run mesos-slave docker -H unix:///var/run/system-docker.sock run -d \ -e MESOS_HOSTNAME=$HostIP \ -e MESOS_IP=$HostIP \ -e MESOS_MASTER=zk://$HostIP:2181,$HostIP:2181/mesos \ -v /sys/fs/cgroup:/sys/fs/cgroup \ -v /root/:/root/ \ -v /var/run/docker.sock:/var/run/docker.sock \ --name mesos-slave --net host --privileged --restart always \ $REG/mesos-slave:0.28.1-centos-7 # run in single docker #docker -H unix:///var/run/system-docker.sock run -d \ #-v /sys/fs/cgroup:/sys/fs/cgroup \ #-v /var/run/docker.sock:/var/run/docker.sock \ #--name marathon --net host --privileged --restart always \ #$REG/mesos-single-docker:1 cat > /root/dns.cfg < /root/dns.json << EOF { "cmd": "/root/mesos-dns -config=/root/dns.cfg", "cpus": 0.3, "mem": 128, "id": "mesos-dns", "instances": 1, "constraints": [["hostname", "CLUSTER", "$HostIP"]] } EOF chmod +x mesos-dns curl -i -H 'Content-Type: application/json' -d @dns.json http://$HostIP:8080/v2/apps ================================================ FILE: mesos/mesos-systemd/multinode/gen.py ================================================ import sys MasterHost= '192.168.122.86,192.168.122.87,192.168.122.88' SlaveHosts= '192.168.122.89'.split(',') MasterHosts=MasterHost.split(',') QUORUM=0 if len(MasterHosts)==1: QUORUM=1 if len(MasterHosts)==3: QUORUM=2 if len(MasterHosts)==5: QUORUM=3 if QUORUM==0: print "Humber master host error" sys.exit(1) idx=0 ETCDCLUSTER='' ETCDENDPOINTS='' ZKP='' for HostIP in MasterHosts: ETCDCLUSTER+="etcd"+str(idx)+"=http://"+HostIP+":2380," ETCDENDPOINTS+="http://"+HostIP+":4001,http://"+HostIP+":2379," ZKP+=HostIP+":2181," idx+=1 ETCDCLUSTER = ETCDCLUSTER[0:-1] ETCDENDPOINTS= ETCDENDPOINTS[0:-1] ZKP= "zk://"+ZKP[0:-1]+"/mesos" SlaveScript=open("slave.sh",'r').read() MasterScript=open("master.sh",'r').read() def Gen(ip,script,ix,ismaster): RES="" if ismaster: RES+="NUMHOSTS='"+str(len(MasterHosts)) + "'\n" RES+="ZKID='"+str(ix+1)+"'\n" RES+="ETCDNAME='etcd"+str(ix)+"'\n" RES+="ZKP='"+ZKP+"'\n" RES+="HostIP='"+ip+"'\n" RES+="QUORUM='"+str(QUORUM)+"'\n" RES+="ZKIPS='" + MasterHost + "'\n" RES+="ETCDCLUSTER='"+ETCDCLUSTER+"'\n" RES+="ETCDENDPOINTS='"+ETCDENDPOINTS+"'\n" RES+="set -x\n" RES+="set -e\n" open('out/'+ip+'.sh','w').write(RES+script) idxm=0 for HostIP in MasterHosts: Gen(HostIP,MasterScript,idxm,1) idxm+=1 idx=0 for HostIP in SlaveHosts: Gen(HostIP,SlaveScript,idx,0) idx+=1 RES="" for HostIP in MasterHosts+SlaveHosts: RES+="scp "+HostIP+".sh root@"+HostIP+":install.sh\n" open('out/scp.sh','w').write(RES) ================================================ FILE: mesos/mesos-systemd/multinode/master.sh ================================================ set -x set -e IFACE='ens3' echo $ZKID > /var/lib/zookeeper/myid if [ -n "$ZKIPS" ]; then printf '%s' "$ZKIPS" | awk 'BEGIN { RS = "," }; { printf "server.%i=%s:2888:3888\n", NR, $0 }' >> /etc/zookeeper/conf/zoo.cfg fi sudo systemctl restart zookeeper sleep 3 echo $ZKP >/etc/mesos/zk echo $QUORUM > /etc/mesos-master/quorum echo $HostIP > /etc/mesos-master/hostname echo $HostIP > /etc/mesos-master/ip echo $HostIP > /etc/mesos-slave/hostname echo $HostIP > /etc/mesos-slave/ip echo 'mesos,docker' > /etc/mesos-slave/containerizers systemctl restart mesos-master systemctl restart mesos-slave cat > /etc/systemd/system/etcd.service << EOF [Unit] Description=etcd key-value store Documentation=https://github.com/coreos/etcd [Service] ExecStart=/bin/etcd -name ${ETCDNAME} \ -advertise-client-urls http://${HostIP}:2379,http://${HostIP}:4001 \ -listen-client-urls http://0.0.0.0:2379,http://0.0.0.0:4001 \ -initial-advertise-peer-urls http://${HostIP}:2380 \ -listen-peer-urls http://0.0.0.0:2380 \ -initial-cluster-token etcd-cluster-1 \ -initial-cluster $ETCDCLUSTER \ -initial-cluster-state new Restart=always RestartSec=10s LimitNOFILE=40000 [Install] WantedBy=multi-user.target EOF systemctl daemon-reload systemctl restart etcd sleep 5 etcdctl set /coreos.com/network/config '{ "Network": "10.1.0.0/16" }' systemctl restart marathon cat > /etc/systemd/system/flannel.service << EOF [Unit] Description=flannel vlan network After=network.target docker.socket [Service] ExecStart=/bin/flanneld --ip-masq=true --iface=$IFACE -etcd-endpoints=$ETCDENDPOINTS Restart=always RestartSec=10s LimitNOFILE=40000 [Install] WantedBy=multi-user.target EOF systemctl daemon-reload systemctl restart flannel cat > /usr/lib/systemd/system/docker.service << EOF Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network.target docker.socket Requires=docker.socket [Service] Type=notify EnvironmentFile=/run/flannel/subnet.env # the default is not to use systemd for cgroups because the delegate issues still # exists and systemd currently does not support the cgroup feature set required # for containers run by docker ExecStart=/usr/bin/docker daemon --storage-driver=overlay --log-driver=journald --bip=\${FLANNEL_SUBNET} --mtu=\${FLANNEL_MTU} MountFlags=slave LimitNOFILE=1048576 LimitNPROC=1048576 LimitCORE=infinity TimeoutStartSec=0 # set delegate yes so that systemd does not reset the cgroups of docker containers Delegate=yes [Install] WantedBy=multi-user.target EOF sleep 2 systemctl daemon-reload systemctl restart docker ================================================ FILE: mesos/mesos-systemd/multinode/slave.sh ================================================ set -x set -e IFACE='ens3' echo $ZKP >/etc/mesos/zk echo $HostIP > /etc/mesos-slave/hostname echo $HostIP > /etc/mesos-slave/ip echo 'mesos,docker' > /etc/mesos-slave/containerizers systemctl restart mesos-slave cat > /etc/systemd/system/flannel.service << EOF [Unit] Description=flannel vlan network After=network.target docker.socket [Service] ExecStart=/bin/flanneld --ip-masq=true --iface=$IFACE -etcd-endpoints=$ETCDENDPOINTS Restart=always RestartSec=10s LimitNOFILE=40000 [Install] WantedBy=multi-user.target EOF systemctl daemon-reload systemctl restart flannel sleep 2 cat > /usr/lib/systemd/system/docker.service << EOF Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network.target docker.socket Requires=docker.socket [Service] Type=notify EnvironmentFile=/run/flannel/subnet.env # the default is not to use systemd for cgroups because the delegate issues still # exists and systemd currently does not support the cgroup feature set required # for containers run by docker ExecStart=/usr/bin/docker daemon --storage-driver=overlay --log-driver=journald --bip=\${FLANNEL_SUBNET} --mtu=\${FLANNEL_MTU} MountFlags=slave LimitNOFILE=1048576 LimitNPROC=1048576 LimitCORE=infinity TimeoutStartSec=0 # set delegate yes so that systemd does not reset the cgroups of docker containers Delegate=yes [Install] WantedBy=multi-user.target EOF sleep 2 systemctl daemon-reload systemctl restart docker ================================================ FILE: mesos/mesos-systemd/singlenode/localinstall.sh ================================================ # CONFIG HostIP='172.16.30.65' IFACE='em1' ZKID='1' ETCDNAME='etcd0' HostIP='172.16.30.65' ZKIPS='172.16.30.65' ETCDCLUSTER='etcd0=http://172.16.30.65:2380' ETCDENDPOINTS='http://172.16.30.65:4001,http://172.16.30.65:2379' ZKP='zk://172.16.30.65:2181/mesos' QUORUM=1 set -x set -e echo $HostIP > /etc/mesos-slave/hostname echo $HostIP > /etc/mesos-master/hostname echo 'mesos,docker' > /etc/mesos-slave/containerizers echo $ZKID > /var/lib/zookeeper/myid sudo systemctl start zookeeper echo $ZKP >/etc/mesos/zk echo $QUORUM > /etc/mesos-master/quorum systemctl start mesos-master systemctl start mesos-slave cat > /etc/systemd/system/etcd.service << EOF [Unit] Description=etcd key-value store Documentation=https://github.com/coreos/etcd [Service] ExecStart=/bin/etcd -name etcd0 \ -advertise-client-urls http://${HostIP}:2379,http://${HostIP}:4001 \ -listen-client-urls http://0.0.0.0:2379,http://0.0.0.0:4001 \ -initial-advertise-peer-urls http://${HostIP}:2380 \ -listen-peer-urls http://0.0.0.0:2380 \ -initial-cluster-token etcd-cluster-1 \ -initial-cluster $ETCDCLUSTER \ -initial-cluster-state new Restart=always RestartSec=10s LimitNOFILE=40000 [Install] WantedBy=multi-user.target EOF systemctl daemon-reload systemctl start etcd sleep 5 etcdctl set /coreos.com/network/config '{ "Network": "10.1.0.0/16" }' cat > /etc/systemd/system/flannel.service << EOF [Unit] Description=flannel vlan network After=network.target docker.socket [Service] ExecStart=/bin/flanneld --ip-masq=true --iface=$IFACE -etcd-endpoints=$ETCDENDPOINTS Restart=always RestartSec=10s LimitNOFILE=40000 [Install] WantedBy=multi-user.target EOF systemctl daemon-reload systemctl start flannel cat > /usr/lib/systemd/system/docker.service << EOF Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network.target docker.socket Requires=docker.socket [Service] Type=notify EnvironmentFile=/run/flannel/subnet.env # the default is not to use systemd for cgroups because the delegate issues still # exists and systemd currently does not support the cgroup feature set required # for containers run by docker ExecStart=/usr/bin/docker daemon --log-driver=journald --bip=${FLANNEL_SUBNET} --mtu=${FLANNEL_MTU} MountFlags=slave LimitNOFILE=1048576 LimitNPROC=1048576 LimitCORE=infinity TimeoutStartSec=0 # set delegate yes so that systemd does not reset the cgroups of docker containers Delegate=yes [Install] WantedBy=multi-user.target EOF systemctl daemon-reload systemctl restart docker ================================================ FILE: mesos/mesos-systemd/singlenode/netinstall.sh ================================================ set -x set -e #config HostIP='192.168.56.112' IFACE='enp0s3' # package install sudo rpm -Uvh http://repos.mesosphere.com/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm sudo yum -y install mesos marathon mesosphere-zookeeper ## ETCD install curl -L https://github.com/coreos/etcd/releases/download/v2.3.7/etcd-v2.3.7-darwin-amd64.zip -o etcd-v2.3.7-darwin-amd64.zip unzip etcd-v2.3.7-darwin-amd64.zip cd etcd-v2.3.7-darwin-amd64 mv etcd /bin/ mv etcdctl /bin/ cd .. wget https://github.com/coreos/flannel/releases/download/v0.5.5/flannel-0.5.5-linux-amd64.tar.gz tar xf flannel-0.5.5-linux-amd64.tar.gz cd flannel-0.5.5-linux-amd64 mv flanneld /bin/ echo $HostIP > /etc/mesos-slave/hostname echo 'mesos,docker' > /etc/mesos-slave/containerizers echo 1 > /var/lib/zookeeper/myid sudo systemctl start zookeeper echo zk://$HostIP:2181/mesos >/etc/mesos/zk echo 1 > /etc/mesos-master/quorum systemctl start mesos-master systemctl start mesos-slave cat > /etc/systemd/system/etcd.service << EOF [Unit] Description=etcd key-value store Documentation=https://github.com/coreos/etcd [Service] ExecStart=/bin/etcd -name etcd0 \ -advertise-client-urls http://${HostIP}:2379,http://${HostIP}:4001 \ -listen-client-urls http://0.0.0.0:2379,http://0.0.0.0:4001 \ -initial-advertise-peer-urls http://${HostIP}:2380 \ -listen-peer-urls http://0.0.0.0:2380 \ -initial-cluster-token etcd-cluster-1 \ -initial-cluster etcd0=http://${HostIP}:2380 \ -initial-cluster-state new Restart=always RestartSec=10s LimitNOFILE=40000 [Install] WantedBy=multi-user.target EOF systemctl daemon-reload systemctl start etcd sleep 2 etcdctl set /coreos.com/network/config '{ "Network": "10.1.0.0/16" }' cat > /etc/systemd/system/flannel.service << EOF [Unit] Description=flannel vlan network After=network.target docker.socket [Service] ExecStart=/bin/flanneld --ip-masq=true --iface=$IFACE -etcd-endpoints=$ETCDENDPOINTS Restart=always RestartSec=10s LimitNOFILE=40000 [Install] WantedBy=multi-user.target EOF systemctl daemon-reload systemctl start flannel cat > /usr/lib/systemd/system/docker.service << EOF Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network.target docker.socket Requires=docker.socket [Service] Type=notify EnvironmentFile=/run/flannel/subnet.env # the default is not to use systemd for cgroups because the delegate issues still # exists and systemd currently does not support the cgroup feature set required # for containers run by docker ExecStart=/usr/bin/docker daemon --log-driver=journald --bip=${FLANNEL_SUBNET} --mtu=${FLANNEL_MTU} MountFlags=slave LimitNOFILE=1048576 LimitNPROC=1048576 LimitCORE=infinity TimeoutStartSec=0 # set delegate yes so that systemd does not reset the cgroups of docker containers Delegate=yes [Install] WantedBy=multi-user.target EOF systemctl daemon-reload systemctl restart docker ================================================ FILE: mesos/repush.sh ================================================ #!/bin/bash echo "docker tag $2/$1 $3/$1" echo "docker push $3/$1" ================================================ FILE: mesos/slave.sh ================================================ ================================================ FILE: note/779MGO设计调优.md ================================================ #MGO 设计调优。 > 真的是那句话,不是你不行,知识你不了解。而已。 1. 肯定是不能加两个索引了。 1. 索引的代价实在是太大了,不但占用内存还还大量损失查询性能,真心不能忍耐啊。 1. 设计的时候DBRef肯定是需要的,直接用有意义的ID查询肯定是性能最好的。 1. 控制key的数量肯定是必须的。比如说用户数量就是key的数量这就够了。别整那么多。collection不然损失性能。 1. 如果真的想控制数量的话,那么数据关联肯定是十分必须的。 1. 流量控制肯定也是必须的。 1. 流量的来源在于Find直接返回所有查询结果。卧槽。直接吃掉所有流量。 1. 直接用FindOne 避免查询多个结果回来肯定是必须的 1. FindOne就够了吗?我确实遇到这个坑了。在[博文](http://www.cnblogs.com/crazylights/archive/2013/05/08/3068098.html)中已经提到关于这种情况适用filter的方法了。直接参考就OK了。 ```js FindOne({_id:xxx},{Items:{"$slice":[3,1]}}) ``` > 虽然适用了这种方法来设计,使得查询结果减少流量降低了。但是依然存在问题 1. 一定更要注意,不能直接dbref因为slice不好加啊。可以用过顺序id加分页,或者算时间。233 很实用,典型的用空间换时间。 ```js db.user.findOne({user_id:2}, {"book.price":1,"book.price.":{$slice:[-10,4]}}) 解释下其含义哈: 1. user集合 2. user.book.price 表示用户拥有书籍, 书籍呢有很多价格列表 3. 注意红色字体 "book.price." 末尾必须有个点 4. 查找价格列表里的4条数据, 从右边第10个位置开始便宜 ``` 但是也有不同的语法说明,到时候试试吧。 1. update 要做精细修改。 ```go 比如Update({_id:xxx},{$set:{"Items.3.Item.Health":38}});//修改第三把武器的健康值 ``` > 至于一次修改和批量修改,MongoDB默认100ms flush一次(2.x),只要两次修改比较贴近,被一起保存的可能性很高。 上面这些是引用别人说的话,还是全要直接精细修改,然后数据库会自动一起修改的,性能不成问题 1. 最后几点注意 1. 控制io(系统吞吐)这事整个系统的核心,也是系统性能的核心。 2. 控制内存(不要让index膨胀) 1. 控制index个数, 1. 控制key的个数 3. CPU控制不要让js做大量的计算,能迁移到客户端的计算就迁移到客户端,让他们算完之后在通讯 4. 第一个性能不够的估计是硬盘,可以通过RAID或者企业级SSD搞定整个问题。 ## Golang MGO驱动使用 [ref1](http://golangtc.com/t/53d0d2e1320b525265000052) [ref2](http://jimmykuu.sinaapp.com/static/books/mgo_guide/index.html) ================================================ FILE: note/788MongoDB存储过程性能调优.md ================================================ #MongoDB 存储过程的使用以及性能调优方案。 AUTH:PHILO > [在2012年的一个blog里面看到了一个关于性能问题](在2012年的一个blog里面看到了一个关于性能问题) 虽然MongoDB给了我们很多驱动可以用,但是都没有mongodb的shell来的方便。 就比如说最近需要做的DBRef嵌套类型的数据要做CRUD如果使用mog驱动的话会非常麻烦。 因此我们这里来做个试验,首先给`test`数据库添加初始化数据添加Server-side script 以及测试 ## mongo 添加数据 ```js db.people.insert({"_id":"test","phone","233333"}) //输入原始数据 // 数据库修改函数 // update之后返回修改后的数据。 peopleUpdate=function(id,phone){ db.people.update({ "_id":id, },{$set:{ phone:phone }}); return db.people.findOne({"_id":id}); } //添加数据库函数 db.system.js.insert({"_id":"peopleUpdatePhone","value": peopleUpdate }); // 修改数据库函数 db.system.js.update({"_id":"peopleUpdatePhone"},{$set:{"value": peopleUpdate }}) //执行数据库函数 db.eval("peopleUpdatePhone('test','23333test')") ``` 测试之后在mongo shell里面是ok的。 ## golang 调用函数并返回 ``` package main import ( "labix.org/v2/mgo" "labix.org/v2/mgo/bson" ) func main() { session, err := mgo.Dial("") if err != nil { panic(err) } defer session.Close() session.SetMode(mgo.Monotonic, true) db := session.DB("test") var result interface{} db.Run(bson.M{"eval": "peopleUpdatePhone('test','new test');"},&result) } ``` 如上面代码所示,就可以执行修改了。 但是要注意[锁的问题](http://francs3.blog.163.com/blog/static/405767272012112811268129/):eval会产生写入锁。结果你懂得。 ## 性能测试。 > 我直接测试了调用main函数10000次 1. eval 1. 在测试中eval表现不佳,因为会锁库。 1. 顺便吐槽一下mongodb的锁那真的是相当的大。 1. 最后测试我每等到结果,甚至有几次修改一次要用4秒钟。(因为之前的锁没打开。) 1. runCommand 1. 会快很多很多 1. 2w次update同一个key的操作大概是3s。 ##总结 1. 我用的是MBP MGX82 2. 虽然性能不是很好(跟MYSql还是差很多)但是以及够支持一般的应用了 3. 不是MongoDB不暴力,仅仅是因为我不懂而已。 ================================================ FILE: note/790heredocJS多行字符串.md ================================================ function heredoc(fn) { return fn.toString().split('\n').slice(1,-1).join('\n') + '\n' } var tmpl = heredoc(function(){/* !!! 5 html include header body //if IE 6 .alert.alert-error center 对不起,我们不支持IE6,请升级你的浏览器 a(href="http://windows.microsoft.com/zh-CN/internet-explorer/download-ie") | IE8官方下载 a(href="https://www.google.com/intl/en/chrome/browser/") | Chrome下载 include head .container .row-fluid .span8 block main include pagerbar .span4 include sidebar include footer include script */}); ================================================ FILE: note/AboutRancherOS.md ================================================ 0.4.1 以及之前一个版本的RC可以通过这样添加不安全REPO: ros c set rancher.docker.args '[daemon, --log-opt, max-size=25m, --log-opt, max-file=2, -s, overlay, -G,docker, -H, 'unix:///var/run/docker.sock', --userland-proxy=false,--insecure-registry,c.reg:5000]' 重启不会丢失。 ================================================ FILE: note/AndroidAutoBuild.md ================================================ http://developer.android.com/intl/pt-br/tools/building/building-cmdline.html#ReleaseMode http://developer.android.com/intl/pt-br/tools/publishing/app-signing.html http://developer.android.com/intl/pt-br/tools/help/proguard.html ================================================ FILE: note/DatatablesNote.md ================================================ # datatables (datatables.net) dt 是非常常见的数据控件但是好用的开源的可以商业化的真心不多 但是这个就是一个非常灵活的demo。 参考: [javascript as data source](http://www.datatables.net/examples/data_sources/js_array.html) ## 数据刷新: ### initial情况参考: ```javascript $('#example').dataTable( { "destroy": true,//如果需要重新加载的时候请加上这个 "data": dataSet, "columns": [ { "title": "Engine" }, { "title": "Browser" }, { "title": "Platform" }, { "title": "Version", "class": "center" }, { "title": "Grade", "class": "center" } ] } ); ``` 加上上面注释的数据主要是因为DT不可以reinitial # 2014年12月1日补充 还总是有那么几列不听话什么的。 宽度上很不好看 ```javascript $('#example').dataTable( { "autoWidth": true, "data": dataset, "columns": [ { "title": "index","width": "5%" }, { "title": "guid" }, { "title": "file" }, { "title": "Version"}, { "title": "author" } ] } ); ``` ================================================ FILE: note/GitMultRemote.md ================================================ # git添加多个repo ```bash git remote add coding pathTogit.git git push coding ``` 第一句是添加远端镜像, coding是名字,后面的parameter是地址 别忘了在push的时候加上参数就行了 ================================================ FILE: note/GolangWebManual.md ================================================ #Golang web 代码COPY手册 我们从来都不开发代码,我们只是代码的搬运工。 **-- 阿飞** 希望大家都变卡卡西。 **--啊贱** 大家copy愉快,文档只做参考。不行的地方别忘了给我发issue。 ## golang web 开发check list ### 本章节提供golang web开发的知识面参考。 1. 基础知识全部略过,包含内容: 1. 流程控制 2. OOP 3. 基础语法知识 1. 路由器 1. 手动路由 2. 自动路由 2. 页面加载 1. 纯静态页面(推荐,前后分离,工程好做。) 2. 模板页面(gtpl模板,浪费cpu以及调试困难等因素还是算了) 1. 表示层脚本(JS) 1. require.js 2. jquery 1. 业务层 1. Get 3. post 3. 资源获取url 1. 持久层 1. 框架 1. Mysql 1. MongoDB 1. 数据库参考 1. 设计参考 1. 持久层驱动下载 1. 单元测试注意事项 ## 路由器 > 路由器是整个网站对外的灵魂,如果路由做的不好URL会非常恶心。 所以这部分设计成第一个要说的内容。 > 路由分两种一种是手动路由为了通过tul调度固定的功能,另外一点就是资源 的获取,通过url的分析来模仿静态页的方式来获取资源(类似get) > 自动路由,主要使用OOP的COMMAND模式来实现。所有功能使用post, 统一入口,方便权限管理,安全管理,跨域管理。 ### 手动路由 ```go package main import ( "log" "net/http" ) func main() { RouterBinding() // 路由绑定函数 err := http.ListenAndServe(":9090", nil) //设置监听的端口 if err != nil { log.Fatal("ListenAndServe: ", err) } } ``` 在httpserver运行之前先绑定路由 #### 手动路由的绑定 1. 静态文件 ```go http.Handle("/pages/", http.StripPrefix("/pages/", http.FileServer(http.Dir("./pages")))) ``` 1. 固定函数与资源获取 他们都是一样的 ```go http.HandleFunc("/images/", fileUpload.DownloadPictureAction) ``` ### 自动路由 > TODO:坑 ## 页面加载 1. 纯静态页(HTML) > 直接交给路由就行了。自动就访问那个文件夹了。其他功能再补充吧。 主要好处前后分离,能上CDN就是通讯次数多了。不过通过优化改善之类的都还ok啦。 2. 模板页面的加载 ```go commonPage, err := template.ParseFiles("pages/common/head.gtpl", //加载模板 "pages/common/navbar.gtpl", "pages/common/tail.gtpl") if err != nil { panic(err.Error()) } navArgs := map[string]string{"Home": "home", "User": "yupengfei"}//复杂的参数开始往里塞 knowledgePage, err := template.ParseFiles("pages/knowledge/knowledge.gtpl") knowledgeArgs := map[string]interface{}{"Head": "This is a test title", "Author": "kun.wang", "PublishDatetime": "2014-09-14", "Content": template.HTML("

为什么要用语义呢?

")}//不是不好,只是做字符串分析会影响工程效率 commonPage.ExecuteTemplate(w, "header", nil)// render 开始 commonPage.ExecuteTemplate(w, "navbar", navArgs) knowledgePage.ExecuteTemplate(w, "knowledge", knowledgeArgs) commonPage.ExecuteTemplate(w, "tail", nil) ``` 仅提供关键代码。 其他的自行打开脑洞吧。 > 1. 其他的都还挺好,就是页面渲染用服务器是不是有点太奢侈了。 > 2. 然后就是一堆参数来回塞入,进去 > 3. 最后终于开始渲染了 > 4. 总结:虽然减少的通讯次数,但是没办法上CDN蛋疼,另外,模板的mapping蛋疼。 ## 表示层脚本 表示层脚本做的比较困难也不是很好学。 但是一旦搞定了,代码的复用性会有非常可观的提升。 >就普通情况而言JS开发效率是非常高的灵活度高,并且使用的是客户端的cpu 性能好,免费资源多,学习的人也多,好招聘。(济南除外) ### require.js 1. 加载 ```js ``` 整个网页之留这么一个加载脚本的入口(每个页面最好只有一个js文件) 【好处】 1. js是延迟加载。不会出现网页卡死的情况 2. 最大化使用缓存。(HTTP 304) 【坏处】 1. 学习比较难 2. 网站更新始终有缓存没更新的浏览器。造成错误(所以有些情况客户自己就知道多刷新几次了,已经成用户习惯了) 【参数解释】 1. `data-main` 业务逻辑入口,载入当前字符串.js这个文件 2. `language` 不解释 3. `defer async` 字面意思 4. `src` r.js就是require.js的意思。代码到处都能搞到。 2. 页面Business 1. 加载依赖文件 ```js require.baseUrl = "/" require.config({ baseUrl: require.baseUrl, paths: { "jquery": "js/jquery-1.10.2.min", "domready" : "reqmod/domReady", "pm" : "reqmod/pmodal", "cookie":"reqmod/cookie", "user":"reqmod/user", "bootstrap": "reqmod/bootstrap.min", "nav":"reqmod/nav" }, shim: { 'bootstrap': { deps: ['jquery'] } } }); ``` 直接copy全搞定。 1. 执行页面business > 执行里面做的最多的就是dom跟事件绑定而已。加载各种js库直接引用。 代码美观,开发效率,执行效率都是非常棒的。 ```js require(['nav','domready', 'jquery', 'user','pm'], function (nav,doc, $, user,pm){ //binding event is ok! doc(function () { pm.load();//加载各种插件HTML模板之类的都ok $('#btn_login')[0].onclick = function(){user.login();}//button 事件绑定 }); }); ``` 1. `require` 这个函数里面第一个参数是上面声明的里面的key 1. `function` 中的参数跟左边的对应,如果没有操作符,或者知识依赖于`$`(JQuery) 那么只在第一个参数中声明就ok了。**注意顺序是对应的** 1. `doc` dom ready API 是等待dom加载完成之后执行的函数 【总结】 1. 有了这个库之后页面只需要一个js文件,再也不乱了。 1. 有了这个库之后页面事件绑定只需要id(或者说DOM能找到就ok) 1. 页面MODEL ```js define(['jquery','reqmod/cookie','user','bootstrap'],function ($,cookie,user){ var nav_load = function () { $.get('/nav.html', function(result){ var newNode = document.createElement("div"); newNode.innerHTML = result; $('body')[0].insertBefore(newNode,$('body')[0].firstChild); //document.body.innerHTML = result + document.body.innerHTML; $('#btn_login')[0].onclick = function(){user.login();} $('#btn_reg')[0].onclick = function(){window.location='/register.html'} $.post('/login_check',{},function(data){ if(data==0){ Form_login.style.display="" } else{ form_userInfo.style.display="" } }) }); } return { load :nav_load }; }); ``` 这个人require很像,但是函数叫`define` 参数全是一样的 但是 【注意】 > 这里引用的路径(单引号里面的依赖)一定要跟页面主business文件中有path配置,不然就要写网站绝对路径。T.T吃了不止一次亏。 【函数的定义】 ```js var nav_load = function () {} ``` 只接受var匿名函数定义。 【最后的return】 注意其实就是个微型路由。假定你又很多调试方案,来回测试的时候使用不同的业务直接修改路由就行了。很方便。 ### JQuery > TODO: 坑 ## 业务层 1. GET分析 > TODO: 坑 1. Post分析 ```go func XXXAction(w http.ResponseWriter, r *http.Request) { r.parseForm() //有这个才能获取参数 r.Form["Email"] // 获取Email 参数(String) } ``` 然后做业务就行了。 1. 资源入口函数资源require分析(url分析固定写法) ```go func Foo(w http.ResponseWriter, r *http.Request) { queryFile := strings.Split(r.URL.Path, "/") queryResource := queryFile[len(queryFile)-1] // 解析文件 } ``` 完成字符串分割之后,按照需求来获取资源就可以了。 ## 持久层 ### 框架 > 没映射不开心, 1. 我得兼容所有的系统,所以要设定专门的object做数据库的CRUD 2. OBJ GET SET ok~ ### Mysql > 在观察代码的时候有个方便的方法就是去掉异常处理的部分 if err XXXXX那些都去掉。就好看多了 > 怎么说呢golang的err处理来回嵌套一次一次的,卧槽,让你迷糊都。之后会在utility 里面直接处理,会方便很多。 > 其实不管什么语言的Mysql驱动都是从PRO\*C来的,所以会PRO\*\C之后, 啥都好说了就 1. Insert Delete Update ```go stmt, err := mysqlUtility.DBConn.Prepare("INSERT INTO credit (credit_code, user_code, credit_rank) VALUES (?, ?, ?)") if err != nil { pillarsLog.PillarsLogger.Print(err.Error()) return false, err } defer stmt.Close() _, err = stmt.Exec(credit.CreditCode, credit.UserCode, credit.CreditRank) if err != nil { return false, err } else { return true, err } ``` 这个SQL fetch做的还是算比较人道的。 1. Query ```go stmt, err := mysqlUtility.DBConn.Prepare(`SELECT commodity_code, commodity_name, description, picture, price, storage, count, status, insert_datetime, update_datetime FROM commodity WHERE commodity_code = ?`) if err != nil { return nil, err } defer stmt.Close() result, err := stmt.Query(commodityCode) if err != nil { return nil, err } defer result.Close() var commodity utility.Commodity if result.Next() { err = result.Scan(&(commodity.CommodityCode), &(commodity.CommodityName), &(commodity.Description), &(commodity.Picture), &(commodity.Price), &(commodity.Storage), &(commodity.Count), &(commodity.Status), &(commodity.InsertDatetime), &(commodity.UpdateDatetime)) if err != nil { pillarsLog.PillarsLogger.Print(err.Error()) return nil, err } } return &commodity, err ``` ### Mongodb ```go err := mongoUtility.PictureCollection.Find(bson.M{"picturecode":*pictureCode}).One(&picture) ``` 啥都不说了。都再MongoDB参考书上呢,API都一样。(BSON显式声明除外。) ##数据库设计参考 1. mysql数据库不能用id链接 1. mongodb index 代价很大,来个有意义的hash `_id` 比啥都强。 ## 单元测试注意事项 1. 测试命令 go test -v (没有其他参数了!!!) `如果不带-v只显示结果,不显示调试过程,主要是调试开发的时候用` 1. 文件格式 xxx_test.go 但是建议改成 xxx_test0.go 或者喜欢改成别的也可以。 1. 由于测试先行的原则,在开发的时候一次测试也就一两个函数。 1. 这样相当于把其他测试注释掉 1. 测试的时候的配置文件要放到测试目录下面。别忘了。 1. 还有系统要生成的(只做追加的打开找不到文件就启动不了。)持久化数据。要touch(新建)好 1. 心态,错误太多一个一个来,要有个好心态。 1. 运气,妈妈问你为啥跪着看LiteIDE你就说。。。。。。 ## 来吧LOG 1. 注意在调试中Log的不可缺失性。 ```Golang //ignore import pillarsLog.PillarsLogger.Println() // 包括log时间,报错代码位置,以及报错内容,祝调试好运! ``` ================================================ FILE: note/HTMLinsertBefore.md ================================================ # HTML 头部插入的坑。 1. 最近的项目都是需要navbar的。全部需要动态什么的。 结果头部插入的时候就出现了很多坑。 如果直接+html页面很多编辑器的页面就不干了。 结果这能这样 ```HTML var newNode = document.createElement("div"); newNode.innerHTML = result; $('body')[0].insertBefore(newNode,$('body')[0].firstChild); ``` 虽然不完美(多加了一个DIV) 但是还算能正常解决问题。 ================================================ FILE: note/HomeBrew.md ================================================ 之前也是用MacPorts这个不是很好用啊。 首先是修改repo的问题没有搞定。 然后是安装死慢的问题。卧槽简直了。 后来还是发现HomeBrew比较靠谱。 因为他的安装位置固定,然后基本上都是编译好了的直接给你用了。非常方便! 官网 brew.sh 最下面有一个ruby 的脚本自动下载的哦。直接就安装了。 全部同意就ok了。只不过是修改几个文件夹的权限,需要密码。 之后brew install redis就能装软件了 卸载MacPorts: ```bash sudo port -f uninstall installed sudo rm -rf \ /opt/local \ /Applications/DarwinPorts \ /Applications/MacPorts \ /Library/LaunchDaemons/org.macports.* \ /Library/Receipts/DarwinPorts*.pkg \ /Library/Receipts/MacPorts*.pkg \ /Library/StartupItems/DarwinPortsStartup \ /Library/Tcl/darwinports1.0 \ /Library/Tcl/macports1.0 \ ~/.macports ``` ================================================ FILE: note/MacAchieveEncoding.md ================================================ #mac 下始终有windows文件乱码问题 解决方案: 使用The Unarchiver For Mac [下载](http://www.onlinedown.net/softdown/175693_2.htm) ================================================ FILE: note/MetaRemap.md ================================================ ubuntu Super键改Meta键: ``` xmodmap -e 'keycode 133 = Meta_L' ``` ================================================ FILE: note/MyPHPEnv.md ================================================ # 我的php环境配置 ## 系统: mac 10.10.1 首先先通过coding.net 安装homebrew github在中国几乎用不了? 还是我网速慢,反正是clone不回来的。 直接放到coding.net上克隆回来之后。 下载代码回到本地 之后移动相同的目录结构到/usr/local中就ok了。 主要移动两个。一个是/bin/brew另外一个是Library这个文件夹就ok了。 ### 小bug解决。基本上权限问题,要不就是缺少目录什么的,都好解决。 ## 安装服务: ```bash brew install redis brew install memcache brew install automake pecl install redis pecl install memcache ``` 当然pecl 是php自动更新模块的程序,非常方便,我就专注于开发,我不想专注于环境。2333 ## 服务启动: redis-server /usr/local/etc/redis.conf ================================================ FILE: note/PHPExtensionWindows.md ================================================ #安装php拓展在windows上 ## 首先windows编译很麻烦所以只能找几个靠谱的地方找我的拓展 1. [memcache](http://pecl.php.net/package/memcache) 3. [igbinary](http://windows.php.net/downloads/pecl/releases/igbinary/1.1.1/) 2. [redis](http://windows.php.net/downloads/pecl/snaps/redis/) 下载之后还是老规矩放在该放的位置上然后修改php.ini就ok了。 ================================================ FILE: note/PythonEscape.md ================================================ #Python 的escape处理 escape这种转义是非常常见的,js里面函数是escape() python下是:在urllib里面叫 quote/unquote ================================================ FILE: note/RHELAddLocalRepo.md ================================================ RHEL添加本地源(光盘) ```bash cat /etc/yum.repos.d/rhel-local.repo [rhel6.3-local] name=RHEL 6.3 local repository baseurl=file:///opt/yum/rhel6.3/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release enabled=1 ``` ================================================ FILE: note/Readme.md ================================================ # 我的笔记 在这个笔记文件中我主要记录一下我自己平时的操作笔记之类的。 也是会很欢乐的一个文件夹,当然也希望大家能给我提意见之类的。 如果你熟悉我,很容易就找到我的Email的。 当然我的笔记也是有搜索的,只要有Linux或者Mac的控制台就可以了。 ``` bash grep -Fnr 'search key word' * ``` 搜索就这么简单! 然后这里也会成为我的Linux/Unix的学习笔记。 ================================================ FILE: note/SetMysqlPassword.md ================================================ #修改mysql 密码 ## 方法1 (我常用的方法) 比较简单 ``` set password=password('1'); flush privileges; ``` 登陆的时候别忘了。 mysql -u root 带上用户名 此方法常用于新装不带密码的数据库。 ================================================ FILE: note/SetPasswordMongo.md ================================================ #mongodb 密码设定 ```bash use admin db.addUser('root','123456') db.system.users.find() #如果出现了你输入的账号就证明成功了 ``` ================================================ FILE: note/SublimeLicense.md ================================================ ----- BEGIN LICENSE ----- Andrew Weber Single User License EA7E-855605 813A03DD 5E4AD9E6 6C0EEB94 BC99798F 942194A6 02396E98 E62C9979 4BB979FE 91424C9D A45400BF F6747D88 2FB88078 90F5CC94 1CDC92DC 8457107A F151657B 1D22E383 A997F016 42397640 33F41CFC E1D0AE85 A0BBD039 0E9C8D55 E1B89D5D 5CDB7036 E56DE1C0 EFCC0840 650CD3A6 B98FC99C 8FAC73EE D2B95564 DF450523 ------ END LICENSE ------ ================================================ FILE: note/ToolBoxConfig.md ================================================ #ToolBox刚开始的使用注意事项 刚开始Run起来之后不要着急使用。 需要`docker-machine config default` 配置一下你的环境 然后需要设定env `docker-machine env default` 然后会输出很多需要设定的环境变量。 执行命令就行了 ================================================ FILE: note/VirtualboxTray.md ================================================ VirtualBox tray Virtual box 变成托盘图标。非常方便 VBoxHeadlessTray43Setup.exe 这是文件名 http://www.92wiki.com/hdwiki/index.php?doc-view-393 官方网站 http://www.toptensoftware.com/VBoxHeadlessTray/ ================================================ FILE: note/WgetJdk.md ================================================ 服务器上下载JDK最快的方法: [link](http://stackoverflow.com/questions/10268583/downloading-java-jdk-on-linux-via-wget-is-shown-license-page-instead) wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u60-b27/jdk-8u60-linux-x64.tar.gz 在网页上点完同意之后就能看见最新版的下载链接了。非常方便。 ================================================ FILE: note/aboutGIT.md ================================================ 记住密码: git config --global credential.helper store ================================================ FILE: note/baiduyunLocateError.md ================================================ 主要是没设置的问题 ## 我的系统是:ubuntu 14.04 ```bash export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 export LANGUAGE=en_US.UTF-8 ``` ================================================ FILE: note/bootstrap弹出插件.md ================================================ # 很多时候需要数据弹窗。 [bootstrap弹窗插件地址](http://getbootstrap.com/javascript/#modals) ================================================ FILE: note/brewMysqlInstallLog.md ================================================ ```bash A "/etc/my.cnf" from another install may interfere with a Homebrew-built server starting up correctly. To connect: mysql -uroot To have launchd start mysql at login: ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents Then to load mysql now: launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist Or, if you don't want/need launchctl, you can just run: mysql.server start ==> /usr/local/Cellar/mysql/5.6.22/bin/mysql_install_db --verbose --user=developer --basedir=/us ==> Summary 🍺 /usr/local/Cellar/mysql/5.6.22: 9666 files, 339M ``` ================================================ FILE: note/butterFly_termial.md ================================================ http://paradoxxxzero.github.io/2014/02/28/butterfly.html http://paradoxxxzero.github.io/2014/03/21/butterfly-with-ssl-auth.html 安装的时候注意ssl的devel libffi-dev就行了。 瞅瞅错误基本上就能编译过去了。 ```sh $ sudo butterfly.server.py --generate-certs --host="192.168.0.1" # Generate the root certificate for running on local network $ sudo butterfly.server.py --generate-user-pkcs=foo # Generate PKCS#12 auth file for user foo ``` cd /etc/butterfly/ssl/ butterfly_ca.crt这个是要 import到浏览器里面的 foo.p12这个哈。也是要import到浏览器里面的 之后访问host的那个ip地址就能用https 安全使用控制台了。 ```sh $ sudo butterfly.server.py --host="192.168.0.1" # Run the server ``` 这是运行啦~~~ ================================================ FILE: note/dockerChangeStoragePosition.md ================================================ # docker 修改默认aufs存储位置 在配置文件: /etc/defaults/docker 中 添加 ``` DOCKER_OPTS="-g /data/docker" ``` 其实就是docker daemon 中有个-g 用起来就好了 ================================================ FILE: note/dockerPostgresql.md ================================================ RUN: docker run -d -v /tmp:/tmp/dshare -v /tmp/pgdata:/psqldata -e PGDATA=/psqldata --name psqldb -e POSTGRES_PASSWORD=postgres postgres docker run -d -v /tmp:/tmp/dshare -v /tmp/pgdata:/psqldata -e PGDATA=/psqldata --name psqldb -e POSTGRES_PASSWORD=postgres postgres ================================================ FILE: note/dockerReg.md ================================================ RUN: docker run -dt -p 80:5000 --name reg -v /Users/Li-jianying/dockerREG/:/tmp/registry registry ================================================ FILE: note/dockerRegV2.md ================================================ 准备Cert ``` mkdir -p certs && openssl req \ -newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key \ -x509 -days 365 -out certs/domain.crt ``` 启动Image ``` docker run -it -d --name reg -p 5000:5000 --restart=always -v /opt/certs:/certs \ -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \ -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \ -v /opt/reg:/var/lib/registry registry:2.2.1 ``` ================================================ FILE: note/etcd.md ================================================ # ETCD 的学的使用与学习过程 ## 基础方面文档: [admin-guide](https://coreos.com/etcd/docs/latest/admin_guide.html) 这个是一定要看的重点看etcdctl命令怎么用的,熟悉里面的也没啥用,还不如直接试用一下命令就行了 [cluster-guide](https://coreos.com/etcd/docs/latest/clustering.html) 前面启动三个节点的命令比较重要,其实关键在initial 里面先配置几个节点试试就行。 ## 动态节点添加 ``` 1. 在etcdctl 里面 etcdctl member add [name] [peerurl] 2. 在添加的目标节点里面启动就行了。就这么简单。。。。输入完上面的命令之后会有提示环境变量怎么搞的,非常方便, 当然我推荐的方式是直接使用命令行,毕竟涉及的东西越少越好,命令可以参考之前的cluster guide里面启动命令。 需要修改的地方就是initial cluster参数,添加新的服务器就行,和最后的New改成exist就行了。 ``` ## 安全问题 ## 如何使用 ## 备份与灾难恢复。 ================================================ FILE: note/golangProjectOnIdea.md ================================================ #配置golangproject在IDEA中 1. 不要在意打开IDE时候的goroot 跟gopath错误 2. 选择sdk File->Project structure 然后选择golang 的sdk 3. 选择要运行的文件,在config里面有一个parameter 输入GOPATH 1. 把项目放到src目录下面。GOPATH是src的父目录(约定而已) ================================================ FILE: note/golangUnitTest.md ================================================ #golang中单元测试的坑。 1. go test 后面是不加目录跟参数的 如果需要的话可以加个go test -v 2. 配置文件全部都需要copy位置。不然就会报错。 因为没有办法更换run root ================================================ FILE: note/golang中的坑.md ================================================ #golang中的坑 ## 类型转换。 1. golang中的类型转换全都是通过类似C语言这种的atoi itoa这种的 1. session中的坑的解决办法 ```go strconv.Itoa(int(userSession.Get("loginTime").(int)))+"
" ``` (import strconv) ================================================ FILE: note/iterm2的坑.md ================================================ ================================================ FILE: note/jsDownloadFile.md ================================================ #js生成文件并下载 有些时候需要浏览器自己根据情况生成文件并且下载。 直接调用下面方法就ok了。 ```js function downloadFile(fileName, content){ var aLink = document.createElement('a'); var blob = new Blob([content]); var evt = document.createEvent("HTMLEvents"); evt.initEvent("click", false, false);//initEvent 不加后两个参数在FF下会报错, 感谢 Barret Lee 的反馈 aLink.download = fileName; aLink.href = URL.createObjectURL(blob); aLink.dispatchEvent(evt); } ``` ================================================ FILE: note/json.toolunicodeescape.md ================================================ json tool 虽然好用,但是他有一个遇到中文就变unicode的问题 然后我们修改一下源代码 ``` 34 json.dump(obj, outfile, sort_keys=True, 35 indent=4, separators=(',', ': '), ensure_ascii=False) ``` 最后的ensure_ascii是关键 ================================================ FILE: note/killall.md ================================================ apt-get install psmisc ================================================ FILE: note/liteIDE改装.md ================================================ #LiteIDE改装 最近一直都在使用liteIDE做开发。公司的项目很紧张,但是在这个周末。还是偷偷的对liteIDE小不爽的地方进行了一些小的改造。 ## IDE上的run按钮就是运行当前的go文件。 1. 首先我们项目运行只是运行统一或者少数的入口点每次点开固定的文档才能run真的是够了。 另外一个主要的原因在于liteIDE没有project管理支持。 2. 而且这个IDE貌似没有出很长时间一般的RCP平台都是有插件开发的。但是这没有插件开发(貌似是有。而且是用python写的) 但是,没找到文档(截至 2015年1月19日)也是醉了。 ## 关键入口点还是我在google Code上找到的一个文档。 在配置中的LiteBuild里面有一个gosrc.xml 这个配置文件能修改buttion调用的命令。 好吧就只能用这个做自己脚本的入口了。 ```xml ``` `cmd` `args` 就是它了。 ## 展开无限的联想 首先用这个做了一个系统的统一入口点,我的主要问题在于项目选择上面。 因为我项目不多,同时也就做两个项目所以直接就在脚本里面写好项目选择 就可以了。类似这样。 ``` sh echo "项目选择器" sh ~/h/run.sh ``` 直接去run项目里面的run.sh 就ok了。 ## 坑 ```sh echo 'XXX项目启动脚本' export C=$(cd `dirname $0`; pwd) cd $C go run httpServer.go router.go pageload.go ``` 别忘了cd进去你的项目文件目录。不然,我也不知道是那里。反正找不到脚本。 然后你就run不了了。 # Golang坑爹的Test 1. ================================================ FILE: note/mongodbUse_id.md ================================================ 使用有意义的 _id 在golang里面需要这样: type test struct { Id int `json:"id" bson:"_id"` } ================================================ FILE: note/puttySmallKeyboard.md ================================================ 打开putty的配置 勾选Terminal-->Features下面的“Disable application keypad mode”即可。 ================================================ FILE: note/puttyblue.md ================================================ 打开putty,选择保存的一个session,或者已经打开某一个session。如果是打开了某一个session,则右键单击putty上边的边框,选择 "change settings...” ,然后选择"windows“ ---> "colours" ---> "select a colour to adjust" ---> 选择要调整的颜色,我这里选择的是"ANSI Blue" ---> "Modify",然后调整自己想要的颜色。 我这里把原来的0 0 187 改成了85 85 255 (你懂的) ================================================ FILE: note/pythonSimpleHTTPSERVER.md ================================================ python -m SimpleHTTPServer ================================================ FILE: note/saveGitPassword.md ================================================ git config --global credential.helper store ================================================ FILE: note/ubuntuChangeRepo.sh ================================================ sed -i 's/us.archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list ================================================ FILE: note/viEscpaeDelays.md ================================================ http://www.johnhawthorn.com/2012/09/vi-escape-delays/ ================================================ FILE: note/取消sshPublicKeyKnowHost认证.md ================================================ ## 因为CoreOS每次启动之后都会更换public key 操作: File:~/.ssh/config ``` StrictHostKeyChecking no UserKnownHostsFile /dev/null ``` ================================================ FILE: note/科大lugDNS.md ================================================ 202.38.93.153,202.141.162.123,202.141.176.93,防污染,支持tcp ================================================ FILE: prob/LFS journey.md ================================================ #LFS编译过程必备辅助手册 ## 前言 LFS(Linux from scratch)是从源代码开始编译Linux操作系统。如果需要深度定制Linux操作系统或者需要 更加深入学习Linux的学习者可以从这里开始您的旅途。这份意义的深渊不必多说。 同时也希望您能加入我们一起开始这段旅程[→加入我们←](http://ubtamator.github.io/) 从7月初开始我们团队里面两个人为了更加深入的学习Linux方面的知识。也为了瞻仰LFS大神们的光辉。 开始了LFS的旅程,因为LFS官方文档写的虽然非常具体,但是多多少少对于一些Linux新手来说造成很多困扰。 因此我们团队做完LFS之后写了这篇**辅助**性质的说明,对新手遇到问题的时候提供帮助。 ### 进行LFS旅程的前提条件 1. 比较熟悉Linux操作 1. 有一定Linux开发基础 1. 在LFS之前有过从源码编译软件的经验。 1. 有一定的英文基本功,除了看手册之外,有的时候抛出错误的时候应该有google查找并解决错误的能力。 ### 文档使用方法: 1. 首先对本辅助文档完整的浏览一遍,这样有助于理解LFS的整个过程做什么 1. 然后扫一遍LFS官方文档的目录,这样至少知道好每个章节的目的。 1. 当你进行到LFS某一步时,遇到问题后可以对应上本辅助手册的具体问题的解决方案 ### LFS全过程概括 1. 对磁盘跟用户的准备 2. 建立temp系统 3. 编译LFS系统 4. 最后调整 ### LFS 编译完成的成果 LFS在编译完成的最后除了Linux基础内核目录结构(bin etc lib proc dev等等这些)还有一个tools这个目录(过程概括中的2),它的存在是为了编译LFS整个系统的。所以在第五章这一部分中,就是利用ubuntu或是centos主机系统的编译环境(称之为HOST)来编译出tools这个目录下的编译环境。 **`提示`**:其实制作LFS所有用到工具链接,就是在ubuntu或centos下编译出一个新的交叉编译器(就是/tools目录下的所有工具),而这个新的交叉编译器在编译出来后,就不会依赖于现有操作系统编译器和库文件(ubuntu or centos),此时我们就可以利用这个全新的交叉编译工具(/tools目录下的所有工具)制造属于我们自己的Linux了,利用这新的工具,从源码开始编译出所有我们需要的软件和库,最后编译Linux内核,设置bash脚本,启动脚本,tmpfs文件系统需要的配置文件,整个LFS的过程就结束了。 ##A: Linux发行版本的选择 1. CentOS 6.3 (虚拟机双硬盘) 2. Ubuntu 14.04 with GCC4.4(64bit) (笔记本电脑+双硬盘+LFS系统构建在SSD硬盘上) 3. 在以上两种Linux发行版上分别进行编译运行,且最终都取得成功。 4. 使用LFS官网上LFS7.5的源码进行编译制作 ##B:前四章的内容:硬盘分区、用户准备篇 主机所用操作系统的准备工作: (ubuntu14.04 64位下需要安装的软件) > 1.在ubunt下安装bison(ubuntu下默认没有安装) ``` sudo apt-get install bison #LFS 手册要求 ``` 2.不能用gcc4.8,需要换成gcc4.4(ubuntu14.04默认gcc4.8) ``` sudo apt-get install gcc-4.4 g++-4.4 sudo rm `which gcc` sudo rm `which g++` sudo ln -sv /usr/bin/gcc-4.4 /usr/bin/gcc sudo ln -sv /usr/bin/g++-4.4 /usr/bin/g++ ``` **这里CentOS没有什么特别要说的。主要因为全部都用默认的,就可以了。各种依赖C6-Media就可以解决** 3.到LFS官网上下载LFS7.5的所有源码: [ftp://ftp.lfs-matrix.net/pub/lfs/lfs-packages/](ftp://ftp.lfs-matrix.net/pub/lfs/lfs-packages/) ####1.磁盘分区准备 1. plan: 准备一个10到20GB的分区,这一步请谨慎操作 1. action: 创建分区(表)并格式化 `创建分区表请使用fdisk , 如果需要图形界面下的请使用GPartion如果这两种工具都不会请到windows下分区(无需格式化)` ``` #格式化分区 sudo mkfs -v -t ext4 /dev/sdaX #这里的X是填上自己的分区号 ``` PS:因为现在计算机的内存都比较大,所以可以不需要swap分区。(第一次进行LFS,一个根(/)分区就够了,等以后有经验了,在进行多分区的操作) ####2.用户准备 直接参考手册上的来就行了。 小建议:`PS1='[\[\e[32m\]#\##\[\e[31m\]\u@\[\e[36m\]\h \w]\$\[\e[m\]' PS1修改成这个变量看着能舒服点。` `注意`:每次开机,或是重启后,在进入lfs用户前,都要对 LFS变量进行检查,查看LFS=/mnt/lfs变量是否存在,然后对lfs使用的分区进行挂载 ### `前四章的小结:` >1. 这一部分没有什么难点,准备硬盘分区是因为要让LFS作为独立的硬盘来启动。新建分区、格式化分区、准备lfs用户是Linux操作的基础素质。 **`注意`** :为了下面的编译过程能更快,可以在输入make命令时在后面加入-j4,使用4个进程进行同时编译,在多核处理器上编译的速度有明显提升 --- ####`开始进入编译代码的环境`(每次开机或重启动后需要进行下面步骤进入lfs用户环境) >1. 首先导入LFS变量 ``` export LFS=/mnt/lfs #建议放到/etc/profile下方便一直用 ``` 2. 然后挂载LFS的分区 ``` sudo mount -v -t ext4 /dev/sdaX $LFS #X为你的LFS硬盘分区号 ``` 3. 最后就可以切换到lfs用户了 ``` su - lfs #注意中间这个 - 符号是一定要的,代表为lfs用户启动一个login shell ``` `补充`:通常我们在开机后,启动的第一个shell称之为login shell,当进入GUI界面后,不需要输入密码启动的shell称之为non-login shell。这两种shell是有区别的。大家都知道shell的运行是需要环境变量的支持的。配置这些环境变量的文件就是配置shell工作环境的文件。两种shell在读取配置文件时有很大的不同,下面是总结它们分别读取哪些配置文件: 1. login shell 启动--->读取/etc/porfile文件--->读取~/.bash_profile文件 2. no-login shell 启动--->读取~/.bashrc文件 3. ```exec env -i /bin/bash```命令会开启一个全新的non-login shell。 **`注意`**:每次重新开机或重启后都需要进行下面的步骤,切换到lfs用户,因为对于新手来说,不可能一天就编译完lfs的所有源,可以把以上步骤保存到一个文件中,每次重启系统进行LFS之前,参照以上步骤进入到LFS编译环境。 ##C: 第五章的内容:编译得到\$LFS/tools/目录下面的工具包 - `第一步`,编译出一个全新的与主机系统无关的工具链接。(这些工具链包含了:compiler(就是我们常用的gcc,g++),assembler(就是把汇编程序变成a.obj文件的工具),linker(就是把很多*.obj文件和库文件链接成可运行文件a.out的工具),还有各类库文件(为后面编译其它的软件提供基础设施),当然还有大量的其它工具) - `第二步`,得用第一步编译出来的工具,编译其它的工具(这里可以看出,在制作LFS的过程中,编译的先后顺序是非常生要的,因为有了鸡,才能下蛋) - `注意1`:上面两步编译出来的工具都会安装到 \$LFS/tools目录下面(也就是/mnt/lfs/tools目录下面)。LFS手册中把这个称之为临时的文件系统,就是因为\$LFS/tools这个目录在第6章结束时就会被删除,因为$LFS/tools已经使用完了,没有利用价值了。 - `注意 2`:参照LFS手册上的指令进行编译,基本不会遇到错误,因为编译代码的步骤就是老三样:```configure && make && make install```,但是有一点,一定要注意,所有的安装包一打要打补丁,因为LFS手册没有强调打补丁的过程,所以自己如果发现这个源码包有补丁文件,一定要记得打上。 - `注意 3`:因为需要编译的软件太多,到最后你可能不会愿意自已每个单词都输入到命令行进行编译,所以通常会直接复制LFS手册中的命令。但是复制时,请一定注意先把指令复制到一个空的文件编辑器中,然后检查一下,复制过来的内容是否正确,因为从PDF文件复制到文本中的内容,格式会发生很大的变化。这一点在你尝试的过程中就会发现了。然后在文本编译器或是vim中进行编辑后,在复制到lfs用户的命令行中。 - `注意4`:在编译perl时,按照官方文档打补丁会出现readonly的错误,下面是是正确的操作命令 ``` cd /mnt/lfs/sources tar xvf perl-5.16.2 cd perl-5.16.2/hints cp linux.sh linux.sh.org cd .. patch -Np1 -i ../perl-5.16.2-libc-1.patch cd hints diff linux.sh linux.sh.org #输出打补丁情况,则为正常打补丁,编译过程参考手册 ``` - `注意5`:手册上的configure的位置一定刚要注意有三种情况,第一种是在源代码目录之外进行configure,第二种是在源代码目录里面进行configure,第三种(特殊情况)是libstdc++是在gcc源码目录的子目录里面进行configure。所以在执行命令之前一定刚要看好执行命令的前提条件,不妨思考一下LFS的笔者为什么这么写。 - `温馨提示`: 第一次编译GCC时可能会遇到环境问题,不要气馁,失败是正常的(我失败了10次以上)不过我们可以保证LFS手册上的命令质量是非常高的。经过亲身测试绝对没有错误。 ####进入第六章前的准备 由于第六章所有的操作都是在root用户下进行的,所以要把第五章编译好的\$LFS/tools目录改为root用户所有,命令如下:(下面的命令,请用root身份运行) ``` export LFS=/mnt/lfs chown -R root:root $LFS/tools ``` ##D: 开启第六章,构建真正的LFS系统 从第六章开始我们就正式开始编译LFS系统了,大概几十个模块只要跟着脚本走一般都不会遇到问题。 只是有几点需要注意。 >1. 这个是需要正常运行的操作系统所以所有的patch补丁包一定都要打上。 1. perl的patch包需要参考网上的一些文章来解决read only 的问题。(GOOGLE问题的第一个链接就是答案) 1. 最开始的chroot是需要用root权限来实行的。 1. dev下的设备挂载是要用lfs用户的最高权限来执行mount(也就是说需要给lfs用户添加到sudoers里面) 1. 有的时候你需要终止你自己的工作。等其他时间继续编译lfs,你需要重新挂载dev目录 和chroot 1. 在编译内核的时候你需要生成.config文件如果这个文件你自己调整的话始终都非非常费劲的对于内核新手来说最好的方案就是找个发型版本(eg.ubuntu 14.04)复制/boot里面的内核配置文件,不然会出现很多内核驱动不支持的现象。比如说网卡 1. 在编译完了之后有很多脚本需要你进行执行的。 ** 但是一定要注意,脚本的选择比较多。选择合适你的脚本,另外脚本挺长,有的需要翻页。** 1. /etc/sysconfig/console 这个脚本不需要建立。 1. 在设定grub的脚本的时候一定要注意你自己bootlfs时候的参数是多少(比如说新建虚拟机之后你几块硬盘几号分区什么的。) ================================================ FILE: prob/LinuxHeaderInstall.md ================================================ Linux header 安装 ============================ 参考文章 ----------------------- http://www.2cto.com/os/201308/238749.html 用于解决问题 ----------------------- 安装VMtool时候 What is the location of the directory of C header files that match your running kernel? 提示需要安装Linux kernel header 问题解决方法 ------------------------- ```shell sudo apt-get update sudo apt-get install build-essential linux-headers-$(uname -r) #CentOS 下 包的名字叫 kernel-headers ``` 第一行更新软件源 第二行 build-essential 安装编译需要的编译器 linux-headers-$(uname -r) 自动选择对应内核版本的header包。 ================================================ FILE: prob/Linux分区.md ================================================ # 1.关于Linux的分区 标签(空格分隔): 未分类 --- ## 在Linux中什么是挂载点? - 挂载点实际上就是linux中的磁盘文件系统的入口目录. - 类似于windows中的用来访问不同分区的C:、D:、E:等盘符. - 其实windows也支持将一个磁盘分区挂在一个文件夹下面. - 只是我们C:、D:这样的盘符操作用惯了,一般没有将分区挂到文件夹。 ``` 以上阐述借鉴度娘,以下阐述出于自己总结 ``` 咱们可以吧Linux想象成一辆汽车 : 发动机就是内核,其余的各种各种围绕着它进行生产和拼装,组成了一辆伟大的四个轮子. 那么,可以理解为"组装"这个动作,就是Linux世界中将你硬盘上的分区去挂载(组装)到某一个目录下. --- **言归正传安装Linux中如何分区:** 咱们小白一开始愣头愣脑的下载好某个Linux的发行版后: 假设您正确的制作了启动U盘,\ 假设您正确的引导了U盘,\ 假设您也正常的进行到磁盘分区的界面了(当然我建议您第一次安装的时候使用中文界面,会少跳很多坑.) 当您来到分区页面的时候,我想不管是啥发行版,绝大多数的分区页面大致都是下图(1-1)这样的: ![CentOS 6的第一步分区引导][1] 图:1-1 咱们来翻译一下: ``` Use All Space 使用全部的空间 Replace Existing Linux System 替换现有的Linux系统 Shrink Current System 缩减当前的系统空间 Use Free Space 使用未使用的空间 Create Custom Layout 自定义分区 ``` 一共5个,1~4不用看,咱们直接选5"Create Custom Layout"然后直接下一步,之后你会看到图1-2. ![此处输入图片的描述][2] 图1-2 上图的环境是一个虚拟机,玩过虚拟机的朋友大概都知道,一般都分了一个sda,那如果碰到要给服务器装,那么你做了几个VD这里就会显示几个sda*. 要注意的是,我们是用U盘安装的那么U盘同样会被识别进来,那么很可能出现的情况就是,sda是U盘,sdb是硬盘,大家要注意一下. 接下来就是重要的手动分区啦再这之前,先给对Linux分区毫无概念的兄弟一个基础资料[(请点击我)][3]: 接下来点击Create出现新的窗口(图1-3): ![创建标准分区][4] 图1-4 ``` Standard Partition 标准的分区模式 RAID Partition 磁盘阵列分区,这里是软件磁盘阵列 LVM Physical Volume LVM物理卷,这是LVM的分区模式 ``` 选择第一个创建一个标准的分区. ![设置挂载点][5] 上图(图1-5)就是小白们不太明白的地方了吧,回过去想想挂载点的概念你应该会明白的. ##假设今天有同事过生日,而你负责分蛋糕,但是呢每个同事的胃口各有大小,有的人甚至都不能多吃奶油,这样你就要考虑如何分配这块大蛋糕(硬盘)给每个肠胃条件不同的同事(例如:"同事boot","同事/","同事swap","同事home")进行合理分配. 这样解释的话,应该明白了吧,下面说说常规分法: 1. 虚拟机下:/boot=200MB swap=你物理机内存的两倍 /=剩余所有 2. 服务器环境:/boot=400MB swap=如果是好服务器其实可以不分的.. /=剩余所有 以上这些都不是绝对的,比如说我有时候安装系统,我就直接/+swap....不要喷我. ##**2.使用 GParted 为你的Linux分区** 在使用Linux的过程中,随着软件的安装和数据的膨胀,有时候会发现划分给Linux分区需要进行调整. 如果直接使用分区命令fdisk调整分区大小,往往意味着分区数据的丢失. LVM技术可以避免分区数据丢失,但在使用中有许多限制. 本文介绍一种使用gparted进行Linux分区调整的方法,它比较适合个人计算机中的硬盘分区调整,同时也可避免数据丢失. 如果是用虚拟机要引导ISO请参考以下文章:http://jingyan.baidu.com/article/f0e83a25f1fc9922e591012e.html ###**虚拟机下对GParted_ISO的引导以及分区流程** 首先,咱们通过livecd的方式引导GParted: 通过vm的设置挂载GParted的ISO来启动已经安装好的linux后启动界面如下图2-1: ![GParted引导][6] 通过方向键定位到 GParted Live(Default settings)回车进入. 之后一系列黑屏+字母(不要管它). 接着会出现如下界面(图2-2): ![一路回车][7] 有人要看不懂了(对,一开始我也看不懂,小弟我1级英语都没过!),但是你要的只是回车只要回车就可以,一路回车最终你会看到(图2-3): ![主界面][8] 守得云开见月明~~~类似于DG的东西呈现在你眼前,这下熟悉了吧~ 上图中,大家看到因为是虚拟机硬盘,我除了分了boot和swap之外其余容量全都给了根,为了便于做教程我特地割了6~7个G出来作为"unallocated"(啥?问我怎么割的?看图2-4): ![分割][9] 懂了吧,接下来是给这个割出来的空间创建新分区(图2-5): ![合并][10] 做完之后新分区就出来了(图2-6): ![最后][11] 最后出现了sda4新的分区,当然要注意的是这个sda4在linux下是没有作用的,需要去挂载这个分区,我们在之后会提到"在linux中如何挂载硬盘分区"挂载的就是这个sda4 ##**3.在linux中如何挂载硬盘分区** [1]: http://hiphotos.baidu.com/exp/pic/item/966aca0735fae6cd25c6f8c80eb30f2443a70fed.jpg [2]: http://hiphotos.baidu.com/exp/pic/item/9e7ce6dcd100baa1f24c14124610b912c9fc2ef3.jpg [3]: http://www.cnblogs.com/kzloser/articles/2673771.html [4]: http://hiphotos.baidu.com/exp/pic/item/0db52fadcbef7609a44bca362fdda3cc7dd99e9c.jpg [5]: http://hiphotos.baidu.com/exp/pic/item/b8405490f603738d28da5f8bb21bb051f919ec4c.jpg [6]: http://img1.ph.126.net/02bOyioWYQq_C5Tx7B_5kw==/6608261695516619317.jpg [7]: http://img2.ph.126.net/aaHsj9QW-Xb7_78ZZMP02Q==/1337569089429442568.jpg [8]: http://img0.ph.126.net/0kk_EoYTW_hI0pzYmntjvw==/2669790154200977454.jpg [9]: http://img1.ph.126.net/TLmXfGQY4bIslgP_Il_XzA==/1140536605732506364.jpg [10]: http://img2.ph.126.net/ajm4rD-HFJViFdBsJH8O6w==/57139420373174084.jpg [11]: http://img2.ph.126.net/pxbM3oOPbx98iPekpufmCw==/4807029652365046394.jpg ================================================ FILE: prob/Linux虚拟机网络配置.md ================================================ Linux虚拟机网卡配置 ======================== 写在前面 -------------------------- 本文再网上有很多参考 本文也转载自很多文章节选一些有用的段落来做参考 虚拟机3种有用的网卡配置模式 ------------------------------ ### Bridged(桥接)方式 用这种方式,虚拟系统的IP可设置成与本机系统在同一网段,虚拟机相当于网络内的一台独立的机器,与本机共同插在一个集线器上,网络内其他机器可访问虚拟机,虚拟机也可访问网络内其他机器,当然与本机系统的双向访问也不成问题. ### NAT(网络地址转换)方式 这种方式也可以实现本机系统与虚拟系统的双向访问.但网络内其他机器不能访问虚拟机,虚拟系统可通过本机系统用NAT协议访问网络内其他机器. ### host-only方式 这种方式只能进行虚拟机和主机之间的网络通信,既网络内其他机器不能访问虚拟系统,虚拟系统也不能访问其他机器. ### 小结 桥接方式主要是克隆物理机器的网络环境,可以让虚拟机放在真实网络里面做service。 NAT方式主要是虚拟机用来上网用的。 Host-only 主要是通过虚拟机与物理机做一个私有网络来做网络连接。 Linux网络设置 ---------------------- 再ubuntu 14.04中 网卡的配置文件在 /net/network/interfaces 这里 再RH系列(RHEL CentOS Fedora)中配置文件在 /net/networks这里 最常用配置: ``` auto eth1 iface eth1 inet dhcp ``` 让系统自动配置 至于设定ip地址什么的还是百度一下特定情况比较靠谱 一般情况下虚拟机默认DHCP 得到ip地址就够用了。 Linux网络配置其他情况 ---------------------------- ### 命令临时配置网络 参考: http://www.cnblogs.com/bo083/archive/2012/11/23/2785172.html ### 文件配置里面再上文也有。 不过想要自己手动配置还是需要先了解很多网络概念 例如网卡的编号eth 网关 子网掩码 路由 等等。 ================================================ FILE: prob/MacTheme.md ================================================ Ubuntu 14.04 下的MAC OS X 主题安装 ==================== 安装 MAC OS X 主题会帮助你的 Ubuntu 14.04 看起来更像MAC OS X。在这里我们介绍的Macbuntu安装包包含了GTK 主题,这些主题是专门为ubuntu unity定制的。图标主题可以为ubuntu 14.04使用,包括登陆界面引导启动的背景,登陆用户,甚至包括了lightdm 使用webkit的登陆界面。这个安装包是nobslab在bluedxca93的帮助下从gnome-look.org网站上开发的。 最终效果图: ![demo](http://smashingweb.info/wp-content/uploads/2014/04/ubuntu-1404-mac-os-x-theme.jpg) `files:` ![files](http://smashingweb.info/wp-content/uploads/2014/04/ubuntu-1404-mac-os-x-theme-desktop.jpg) `music` ![music](http://smashingweb.info/wp-content/uploads/2014/04/ubuntu-1404-mac-os-x-theme-music.jpg) ## 第一步:下载壁纸 `预览图:` ![preview](http://smashingweb.info/wp-content/uploads/2014/04/mac-os-x-wallpapers-for-ubuntu-1404.jpg) 第一步要做的事仅仅是下载Mac OS X 的壁纸,下载连接在 [这里](http://drive.noobslab.com/data/Mac-13.10/MBuntu-Wallpapers.zip)这个压缩包的大小有39.2MB。 `解压之后右键点击桌面->修改背景图片->选择下载的背景` ## 安装主题修改工具 为了修改GTK主题,图标,系统主题,光标,字体我们需要安装unity tweak。要安装unity tweak在ubuntu14.04上通过使用如下命令: ```shell sudo apt-get install unity-tweak-tool ``` 当然你也可以通过安装ubuntu-tweak来实现主题更换 ```shell sudo add-apt-repository ppa:tualatrix/ppa sudo apt-get update sudo apt-get install ubuntu-tweak ``` `效果图:` ![](http://smashingweb.info/wp-content/uploads/2014/04/Unity_tweak_tool_1.jpeg) ##在ubuntu14.04上安装Mac OS X主题 为了修改上文所说的内容。我们需要打开终端运行如下命令: ```bash sudo add-apt-repository ppa:noobslab/themes sudo apt-get update sudo apt-get install mac-ithemes-v3 sudo apt-get install mac-icons-v3 ``` 现在打开刚才安装的工具来选择主题,在GTK主题上选择MBuntu。再本地tab上选择Mbuntu-osx在光标tab上选择Mac-cursors. `如图所示` ![](http://smashingweb.info/wp-content/uploads/2014/04/select-mac-theme-ubuntu-1404.jpg) ![](http://smashingweb.info/wp-content/uploads/2014/04/select-mac-icons-ubuntu-1404.jpg) ![](http://smashingweb.info/wp-content/uploads/2014/04/select-mac-cursors-ubuntu-1404.jpg) 现在unity桌面看起来就像Mac了。你已经有了mac的图标,mac的窗口样式,mac的鼠标指针样式。 ## 安装类似Mac OS X样式的DOCK在ubuntu14.04上 Docky是再UBUNTU平台上一个非常轻量级的类似Mac OS X 的dock。 它拥有mac一样的鼠标浮动效果。想要安装需要在终端上运行如下代码: ```shell sudo add-apt-repository ppa:docky-core/ppa sudo apt-get update sudo apt-get install docky ``` ### 安装Mac doc主题: 下载 [Mac 主题](http://drive.noobslab.com/data/Mac-14.04/Mac-OS-Lion%28Docky%29.tar)从unity启动器上运行docky。你就能看到docky运行再你的屏幕底端了,点击第一个docky配置按钮,选择`3D mode`点击下载主题按钮在上面选择Buyi-idock主题,现在你将会获得Mac OS X很像的dock了。 `配置图:` ![](http://smashingweb.info/wp-content/uploads/2014/04/ubuntu-1404-mac-osx-dock.jpg) `效果图:` ![](http://smashingweb.info/wp-content/uploads/2014/04/docky-theme-ubuntu-1404.jpg) ##隐藏unity 启动器 再外观->行为中可以关闭启动器, ![](http://smashingweb.info/wp-content/uploads/2014/04/mac-hide-launcher.jpg) ## 替换左上角的Ubuntu桌面为Mac OS X 想要修改成为Mac OS X执行下面命令 ```shell cd && wget -O Mac.po http://drive.noobslab.com/data/Mac-14.04/change-name-on-panel/mac.po cd /usr/share/locale/en/LC_MESSAGES; sudo msgfmt -o unity.mo ~/Mac.po;rm ~/Mac.po;cd ``` 想要改回来执行下面命令 ```shell cd && wget -O Ubuntu.po http://drive.noobslab.com/data/Mac-14.04/change-name-on-panel/ubuntu.po cd /usr/share/locale/en/LC_MESSAGES; sudo msgfmt -o unity.mo ~/Ubuntu.po;rm ~/Ubuntu.po;cd ``` `效果图:` ![](http://smashingweb.info/wp-content/uploads/2014/04/ubuntu-1404-mac-logo.jpg) ##替换延迟滚动条为正常滚动条 想要修改成为正常执行下面命令 ```shell gsettings set com.canonical.desktop.interface scrollbar-mode normal ``` 想要改回来执行下面命令 ```shell gsettings reset com.canonical.desktop.interface scrollbar-mode ``` ## 替换启动屏幕图片 ![](http://smashingweb.info/wp-content/uploads/2014/04/mac-boot-splash-1-4-11.png) 在这个小章节里面将会为ubuntu 14.04修改启动图片,包括载入动画跟苹果LOGO 命令如下 ```shell sudo add-apt-repository ppa:noobslab/themes sudo apt-get update sudo apt-get install mbuntu-bscreen-v3 ``` 想要修改回来: ```shell sudo apt-get remove mbuntu-bscreen-v3 ``` ##修改Ubuntu14.04的登陆画面成为Mac OS X的样式 ![](http://smashingweb.info/wp-content/uploads/2014/04/ubuntu-1404-mac-osx-login.jpg) 安装: ```shell sudo add-apt-repository ppa:noobslab/themes sudo apt-get update sudo apt-get install mbuntu-lightdm-v3 ``` 修改回来: ```shell sudo apt-get remove mbuntu-lightdm-v3 ``` ##去掉ubuntu 14.04锁屏的图标 ![](http://smashingweb.info/wp-content/uploads/2014/04/ubuntu-1404-mac-lock-screen.jpg) 去掉logo: ```shell sudo xhost +SI:localuser:lightdm sudo su lightdm -s /bin/bash gsettings set com.canonical.unity-greeter draw-grid false;exit sudo mv /usr/share/unity-greeter/logo.png /usr/share/unity-greeter/logo.png.backup ``` 如果想改回来: ```shell sudo xhost +SI:localuser:lightdm sudo su lightdm -s /bin/bash gsettings set com.canonical.unity-greeter draw-grid true;exit sudo mv /usr/share/unity-greeter/logo.png.backup /usr/share/unity-greeter/logo.png ``` ##ubuntu14.04安装Mac字体 下载与安装字体: ```shell wget -O mac-fonts.zip http://drive.noobslab.com/data/Mac-14.04/macfonts.zip sudo unzip mac-fonts.zip -d /usr/share/fonts; rm mac-fonts.zip sudo fc-cache -f -v ``` 配置: 启动tweak tool在字体选择上选择苹果系列的字体或者lucida Mac 字体,然后根据你的屏幕来调整字体。 ![](http://smashingweb.info/wp-content/uploads/2014/04/ubuntu-1404-mac-osx-fonts.jpg) ##小伙伴们的测试结果 ![](../picture/MacTheme/1.jpg) ![](../picture/MacTheme/2.jpg) ![](../picture/MacTheme/3.jpg) ![](../picture/MacTheme/4.jpg) ##更多帮助登陆[ubtamator](http://ubtamator.github.io/) ##寻找小伙伴,群:55958311 > 翻译:PHILO > 内容调整:PHILO > 原文地址:http://smashingweb.info/mac-os-x-theme-for-ubuntu-14-04-macbuntu-transformation-pack/#userconsent# ================================================ FILE: prob/PHP-RSA加密跨域通讯实战.md ================================================ #PHP-RSA加密跨域通讯实战 ###AUTH:PHILO EMAIL:lijianying12 at gmail.com 基于POST GET 的http通讯虽然非常成熟,但是很容易被人监听。 并且如果使用跨域jsonp的通讯很容易在历史记录中发现通讯网址以及参数。为了克服这些问题, 并且降低服务器成本,我们没有使用SSL而使用 RSA加密。文章中的php加密解密 JS的加密解密 互相加密解密 都能验证通过。 其中PHP依赖常见的OPENSSL LIB 。 JS依赖 jsencrypt。 我们使用jsonp get RSA加密通讯好处如下: 1. 前后分离适合cdn加速。 1. 安全跨域更适合松散结构的网站。 1. 不用去买ssl证书了。 ## 首先要生成密匙对 ```shell openssl genrsa 1024 > private.key openssl rsa -in private.key -pubout > public.key ``` ##JS的RSA加密流程 下载最新版本请移步到github:[jsencrypt](https://github.com/travist/jsencrypt) 代码在目录BIN下面是否用压缩的根据情况决定。 ### 生成KEY ```js var keySize = 1024; //加密强度 var crypt = new JSEncrypt({default_key_size: keySize}); //RSA 操作对象 //方法1 (async) crypt.getKey(function () { crypt.getPrivateKey(); crypt.getPublicKey(); }); //方法2: crypt.getKey(); crypt.getPrivateKey(); crypt.getPublicKey(); ``` ### 客户端加密场景: ```js var crypt1 = new JSEncrypt(); //新建rsa对象 var publickey = '\ -----BEGIN PUBLIC KEY-----\ MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC3N8LJFqlsa6loCgFpgZVMr/Sx\ DMQY7pr0euNQfh2g+UVPbB0MGhoc7nWL0FQhCgDedbjQw/nGFStFx7W1+0o1oRTY\ u5ebNVivZSobraUv7LJvwT8O66Zs8cxbKLqQ/nE/WwJvXomSIckH6R8iOUO8/QT9\ kv6/L0Uma3qA07pmDQIDAQAB\ -----END PUBLIC KEY-----\ '; crypt1.setPublicKey(publickey );//添加来自服务端的publickey crypt1.encrypt('abc'); //返回值为加密后的结果 ``` ### 客户端解密场景: ```js var privatekey = '-----BEGIN RSA PRIVATE KEY-----\ MIICXQIBAAKBgQC3N8LJFqlsa6loCgFpgZVMr/SxDMQY7pr0euNQfh2g+UVPbB0M\ Ghoc7nWL0FQhCgDedbjQw/nGFStFx7W1+0o1oRTYu5ebNVivZSobraUv7LJvwT8O\ 66Zs8cxbKLqQ/nE/WwJvXomSIckH6R8iOUO8/QT9kv6/L0Uma3qA07pmDQIDAQAB\ AoGBAKba3UWModbfZXQeSJLxNCqWw9zJp3ydL/keQQ35DLqgyIJAD2QKEWXvtJUT\ sMo19fyicSGOmFXQyYvPCKkmpLkOMAj1XaNpSMtSrcMx+gC01PO6Ey9rsUxW1g3u\ fpqbEk9E3a5AtCS0I61nbUpRL6rqMtR5o2wcNR3TLtJt7pjxAkEA7hlFJKU1zWGp\ OvvkJDnHc2NOCEJoGjqCR9wwv96+/xAykl2laI6WvEbbhjoO0+8+d17oigjhneS5\ 2UKFcfqw7wJBAMT+MCQ5TYLQlvjrBaDMqOdLsqtaDE6CpkrgwV820QMvHOo3R4Xd\ uSbrA2tOr9t2/x+FzF971lRGdPFIch9UYMMCQQCZtO6SDaWCBP3++gX57OL5dq41\ XsldxU+9nERMWTvr5UUAgDv8F7Dvsr6dFHXmE5i77yUnlzwvdi0UOIF1Z2U5AkBV\ wyRKYPgx34Ya0JcerntKV1Zt60I4XADx0G/feAn/DN/VyENHMISPQPm4GgXN0jy4\ CJQ1bcCd6B65fQTSRvXpAkA2Vv5yXzeKDls/AyxHEoros/VYftVc1HOFC++q13Rw\ NH2rnlRT8FMTFEqL9MYRqvvYAFf5VmH0M1Nx5t4LRN+l\ -----END RSA PRIVATE KEY-----\ '; var crypt2 = new JSEncrypt();//新建加密对象 crypt2.setPrivateKey(privatekey);//给加密对象设置privatekey crypt2.getPublicKey();//Tip 我们是不需要存储publickey的直接用private能得到publickey crypt2.decrypt("MeUqWB5LwTh8crzPqbZtEtKuZxYvPWH9CTCChK1qoBzIgIXGPCdzNMbiH0cCYHl5qWSERIDOgDIgv4dXsIMjEJ5q0cp/qNQYHM5va0iw0UvKvQB1E8aWtY2nFEPy4F+ArQ0Mj/ijr/CntEP1jHKC3WU9nu2kYrBIBnbj14Bs+kI=");//调用解密方法 ``` ####但是虽然写到了这里,加密方面还是不够用,因为1024长度的RSA加密最多只能加密长度为117的字符串。而URL长度最多为4k因此这里我们要让加密长度达到2691以达到能用的程度。 那么这种加密长度大概能容纳多少数据呢? 我们借助[json-generator](http://www.json-generator.com/)来帮忙生成JSON ```js sdata =[ { "_id": "542f9ac2359c7d881bc0298e", "index": 0, "guid": "db1dacc1-b870-4e3c-bc1a-80dfd9506610", "isActive": false, "balance": "$1,570.15", "picture": "http://placehold.it/32x32", "age": 36, "eyeColor": "blue", "name": "Effie Barr", "gender": "female", "company": "ZORK", "email": "effiebarr@zork.com", "phone": "+1 (802) 574-3379", "address": "951 Cortelyou Road, Wikieup, Colorado, 4694", "about": "Sunt reprehenderit do laboris velit qui elit duis velit qui. Nostrud sit eiusmod cillum exercitation veniam ad sint irure cupidatat sunt consectetur magna. Amet nisi velit laboris amet officia et velit nisi nostrud ipsum. Cupidatat et fugiat esse minim occaecat cillum enim exercitation laboris velit nisi est enim aute. Enim do pariatur\r\n", "registered": "2014-05-08T15:26:35 -08:00", "latitude": 48.576424, "longitude": 146.634137, "tags": [ "esse", "proident", "quis", "consectetur", "magna", "tempor", "anim" ], "friends": [ { "id": 0, "name": "Trisha Cannon" }, { "id": 1, "name": "Todd Bullock" }, { "id": 2, "name": "Eileen Drake" }, { "id": 3, "name": "Ferrell Kelly" }, { "id": 4, "name": "Fischer Blankenship" }, { "id": 5, "name": "Morales Mann" }, { "id": 6, "name": "Brandie Pittman" }, { "id": 7, "name": "Virgie Kerr" } ], "greeting": "Hello, Effie Barr! You have 1 unread messages.", "favoriteFruit": "apple" }, { "_id": "542f9ac21c260d03e763a4f2", "index": 1, "guid": "9e3a3d8a-26f8-46b7-aca0-336a194808b1", "isActive": true, "balance": "$3,617.89", "picture": "http://placehold.it/32x32", "age": 31, "eyeColor": "brown", "name": "Butler Best", "gender": "male", "company": "SPORTAN", "email": "butlerbest@sportan.com", "phone": "+1 (905) 428-3046", "address": "798 Joval Court, Wanship, Delaware, 8974", "about": "Nostrud occaecat id sunt pariatur ad nisi do veniam sit officia non consequat amet fugiat. Est eiusmod labore ut cillum qui eu elit ut eiusmod exercitation. Ut anim nostrud eiusmod voluptate tempor proident id do pariatur. In Lorem ullamco ea irure adipisicing. Quis est dolor ex commodo aliqua nisi elit sit elit anim fugiat sunt amet. Enim consequat ipsum occaecat ipsum tempor deserunt dolor veniam nostrud. Anim cillum ullamco cupidatat aute velit fugiat sit enim in amet anim mollit dolor eiusmod.\r\n", "registered": "2014-08-02T06:15:44 -08:00", "latitude": -20.529765, "longitude": 2.396578, "tags": [ "consequat", "enim", "magna", "sunt", "Lorem", "quis", "commodo" ], "friends": [ { "id": 0, "name": "Kenya Rice" }, { "id": 1, "name": "Hale Knowles" }, { "id": 2, "name": "Michael Stephens" }, { "id": 3, "name": "Holder Bailey" }, { "id": 4, "name": "Garner Luna" }, { "id": 5, "name": "Alyce Sawyer" }, { "id": 6, "name": "Rivas Owens" }, { "id": 7, "name": "Jan Petersen" } ], "greeting": "Hello, Butler Best! You have 8 unread messages.", "favoriteFruit": "banana" } ] ``` 表单json能达到这么长已经是很极端的情况了。因此这种方法绝对是够用的。 ###长表单内容加解密方法: ```js function encrypt_data(publickey,data) { if(data.length> 2691){return;} // length limit var crypt = new JSEncrypt(); crypt.setPublicKey(publickey); crypt_res = ""; for(var index=0; index < (data.length - data.length%117)/117+1 ; index++) { var subdata = data.substr(index * 117,117); crypt_res += crypt.encrypt(subdata); } return crypt_res; } function decrypt_data(privatekey,data) { var crypt = new JSEncrypt(); crypt.setPrivateKey(privatekey); datas=data.split('='); var decrypt_res=""; datas.forEach(function(item) { if(item!=""){de_res += crypt.decrypt(item);} }); return decrypt_res; } ``` ## PHP的RSA加密 ### php加密解密类 首先要检查phpinfo里面有没有openssl支持 ```php class mycrypt { public $pubkey; public $privkey; function __construct() { $this->pubkey = file_get_contents('./public.key'); $this->privkey = file_get_contents('./private.key'); } public function encrypt($data) { if (openssl_public_encrypt($data, $encrypted, $this->pubkey)) $data = base64_encode($encrypted); else throw new Exception('Unable to encrypt data. Perhaps it is bigger than the key size?'); return $data; } public function decrypt($data) { if (openssl_private_decrypt(base64_decode($data), $decrypted, $this->privkey)) $data = $decrypted; else $data = ''; return $data; } } ``` **密匙文件位置问题,是放到访问接口的附近就可以了如果是CI的话就放到index.php旁边就行了。** 但是要注意一点,一定要做访问设置,不然key会暴出来的,那时候信息一旦截获就惨了。 ### 类的使用 ```php $rsa = new mycrypt(); echo $rsa -> encrypt('abc'); echo $rsa -> decrypt('W+ducpssNJlyp2XYE08wwokHfT0bm87yBz9vviZbfjAGsy/U9Ns9FIed684lWjYyyofi/1YWrU0Mp8vLOYi8l6CfklBY='); ``` ###长数据加密解密 ```php function encrypt_data($publickey,$data) { $rsa = new mycrypt(); if($publickey != ""){ $rsa -> pubkey = $publickey; } $crypt_res = ""; for($i=0;$i<((strlen($data) - strlen($data)%117)/117+1); $i++) { $crypt_res = $crypt_res.($rsa -> encrypt(mb_strcut($data, $i*117, 117, 'utf-8'))); } return $crypt_res; } function decrypt_data($privatekey,$data) { $rsa = new mycrypt(); if($privatekey != ""){ // if null use default $rsa ->privkey = $privatekey; } $decrypt_res = ""; $datas = explode('=',$data); foreach ($datas as $value) { $decrypt_res = $decrypt_res.$rsa -> decrypt($value); } return $decrypt_res; } ``` ## JSONP 跨域通讯 我们经过千辛万苦经过加密终于能做到通讯安全了。 当然我们的下一步是通过JSONP 的get通讯来实现跨域通讯啦。 经过测试:我们的JS中最长的Case url长度是3956 在加上跨域url callbac参数,经过测试正好差20到4095 (一般的URI长度限制为4K) ```js $.ajax({ type:"get", async:false, // 设置同步通讯或者异步通讯 url:"http://22500e31b5a12457.sinaapp.com/ubtamat/getPubKey?c=hknHQKIy3dyeeajyAwZ+raUkV1ezFbgU8zk+54cNQtrcEGozUjXpYhbC6fxz2hCOgp9feIsM1xKJFm5pkAGQ2UcUOc5EJNCAz6L0mXkZbTBmh3PufWxOE7TaicqRCRtZGGNB2qpm2WruXjYg1lPcrPz/rhFZx4DSJvEHkCm7ZU0=......(加密后的结果太长,省略)", dataType:"jsonp", jsonp: "", }); ``` ```php header("Content-type: application/javascript; charset=utf-8"); $response = "console.log('test response!')"; $callback = $this->input->GET('callback'); echo $callback.$response; ``` PHP代码是CI框架controler中的部分代码 并且经过了必要的裁剪。 更加细节的参数都放到GET里面就可以了。 处理之后按照上面的形式处理返回值就ok 如果你配置成功了,你将会在网页的控制台上看到自己动态的, 或者像我一样静态的控制台输出。 如果要是想获取数据到网页的话还是要借助**回调函数**来实现 ## JSONP跨域获取通讯结果 请看下面代码: 客户端代码 ```js var global = null; function jpc(result) { global = result.msg; } $.ajax({ type:"get", async:false, // 设置同步通讯或者异步通讯 url:"http://22500e31b5a12457.sinaapp.com/ubtamat/getPubKey", dataType:"jsonp", jsonp: "jpc", }); ``` 服务器端代码 ```php header("Content-type: application/javascript; charset=utf-8"); $response = "jpc({'msg':123456})"; $callback = $this->input->GET('callback'); echo $callback.$response; ``` 此次通讯的结果会在jcp当中调用执行,并且返回的内容会记录到 global 变量当中 ## 实战 从上文中,我们已经找到了整个加密过程方法了,但是距离实战还是有一定距离的。 首先我们实战的话需要克服接口比较少,功能比较多,单个接口维护用时比较长的问题。 为了解决上面的问题我们做出如下设计。 ###客户端方面: 设计一个通讯类:只管跟服务器通讯。别的业务什么都不管。 ```JS //create connection object. var ConnServ = new Object(); ConnServ.tmpResponse = "not initial"; //call back function register slot. ConnServ.CallBackFunction=function(){console.log( "call back function set error ! U must set a business call back function!" )}; //input only encrypted data!!! //send data to server ConnServ.send=function(data) { data = data.replace(/\+/g,"$"); //replace all + as $ $.ajax({ type:"get", async:false, url:"http://22500e317.sinaapp.com/ubtamat?c="+data, dataType:"jsonp", jsonp: "jpc" }); return "Send Finish"; } //default call back funcation function jpc(res) { ConnServ.tmpResponse = res.msg; ConnServ.CallBackFunction(); } //public key store. ConnServ.getpublickey = function() { return "\-" + "----BEGIN PUBLIC KEY----- " + ................................................... "-----END PUBLIC KEY-----"; } ``` 在上面代码中请注意,RSA加密过后的字符串当中有一个非法字符+要转换成其他合法字符发送到服务器才可以。 不然参数会错误。 等传输到服务器中自己转换回来在解密就好了。 ###服务器端方面: 首先我们接收到消息之后要对消息进行解密,之后根据报文内容选择服务器上的功能。然后把其他参数输入到业务类中执行即可。 因此我们使用了命令模式来实现单一接口的丰富业务功能。 其他的我们需要对CI框架的配置进行调整: 首先global config里面需要调整 $config['global_xss_filtering'] = FALSE; 因为如果传输过来的报文解密不了就直接抛弃不进行处理(防止CC攻击第一层)这样就从url上防止了攻击的可能性。 当然我们还是没有完全避免注入风险这时我们就需要在业务类里面调用安全模块: ```php $this->security->xss_clean() ``` 来实现第二层的XSS攻击。这是服务器端设计主要需要说的位置。 #### 服务器获取数据处理全过程 1. 从get接口获得参数c的加密数据 1. 对数据进行RSA解密。 1. 判断数据包时间戳。如果超时直接抛弃(防止从浏览器记录中直接发送request到服务器,下面是安全方面的说明) - 首先如果不修改数据只修改时间戳不可能从截获的数据报文中实现,因为需要重新加密,如果想得到内容需要服务器上的privatekey解密保证安全 - 如果数据包截获直接发送数据包在超时范围内直接获取数据包内容,也不能实现攻击,因为在客户端有临时RSA密匙对生成并且在发送的时候会同时发送publickey 给服务器做session的存储内容并且伪装客户的客户端没有privatekey所以获取任何关于登陆之后的消息根本无法解析。 1. 对解密后的数据进行xss检查 1. 解析报文中需要调用什么功能直接调用反射得到业务类的实例 1. 调度业务类,并且把得到的参数赋值给业务执行函数的参数。 #### 服务器处理数据过程只跟业务有关 #### 服务器返回数据全过程 1. 业务处理完成之后针对每一个用户的登陆情况对返回值进行加密。 2. response #### 以上业务涉及的部分代码(给出的代码未涉及以上说的安全部分。) ```php //CI 控制器里面的方法 public function index() { header("Content-Type: text/html;charset=UTF-8"); $callback = $this -> input->GET('callback'); $input_data = str_replace("$","+",$this->input->GET('c')); $input_data =$this -> rsa->decrypt_data($input_data); if($input_data == ""){return;}//如果数据不对解析就会失败,直接抛弃数据包,避免cracker构造数据包问题 //这里插入时间戳检查代码 //这插入xss检查 $output_data = command($input_data); $response = "jpc({'msg':".$output_data."})"; $callback = $this->input->GET('callback'); echo $callback.$response; } ``` ```php //命令模式中的业务调度方法 function command($input) { try { $obj_input = json_decode($input); $action = $obj_input -> {"action"}; $business_action = new ReflectionClass($action); $instance = $business_action->newInstanceArgs(); $output = $instance->Action($obj_input); //对output变量进行rsa加密 return "'".$output."'"; // here only accept string } catch(Exception $e) { return "'".$e->getMessage()."'"; } } ``` #### 以下是配合业务进行的工具函数: ```php //命令接口定义 interface ICommand { function Action($arg_obj); } ``` ```php //把此函数放到system/core/common.php //实现了输入一个文件夹就自动加载所有文件夹中的所有的类。 if ( ! function_exists('require_once_dir')) { function require_once_dir($path) { $dir_list = scandir($path); foreach($dir_list as $file) { if ( $file != ".." && $file != "." ) { require_once($path."/".$file); } } } } //使用: //在application/config/autoload.php中添加类似如下代码: require_once_dir(APPPATH."/controllers/lib"); require_once_dir(APPPATH."/controllers/actions"); ``` #### 以下是实现业务的例子: ```php class register implements ICommand{ public function Action($arg_obj) { return "we are do nothing: ".json_encode($arg_obj); } } ``` 通过以上基本方法,我们可以实现,只要业务继承我们声明的接口就可以开始写业务了。 别的什么都不用管,专注于业务即可,其他的安全、IO等问题都已经一并解决。 并且每一个业务都进行了rsa加密xss攻击过滤伪造数据包攻击。 以及在response加密只能是固定客户端才能看到报文内容的全过程。 但是一定要注意一点,注册这个业务后面要嵌套登陆进行,不然看不到返回值。 #### 数据包必须包含的要素: 1. acton (业务名) 1. req_time (请求时间) 1. public_key (如果是注册跟登陆时候需要提交临时公匙) ##总结 因为时间仓促所以只能写到这里了。 如果您发现了我文章中的bug欢迎发email批评指正。非常感谢! 同时本方案也会成为我们开源社区linux52.com后台系统中的接口设计方案。 当然我们社区所有维护的文档都会进行反复验证,如果出问题我们会及时更新。 以维护文档的正确性。 点击[=这=里=](https://github.com/lijianying10/FixLinux/blob/master/prob/PHP-RSA%E5%8A%A0%E5%AF%86%E8%B7%A8%E5%9F%9F%E9%80%9A%E8%AE%AF%E5%AE%9E%E6%88%98.md)查看文档最新版本。 ##关键词 php js rsa get jsonp 跨域 安全 ================================================ FILE: prob/PHPweb开发学习路线.md ================================================ # PHPweb开发学习路线 本文适用人群:不是网站开发新手。懂得基本http通讯。 文档目的:帮助需要的人快速入门php快速完成自己的需求。 本文设定世界观: 1. 学习的语言没有好坏之分,只有特征是否适合你使用。 1. 学习一门编程语言只是为了实现自己的想法而不是为了语言而学。当然如果您学习的只是为了人前炫技, 那么请您右转直走。红叉不送。 ##如果您是开发新手: 1. 那么请先熟悉一下开发环境,先安装环境,按照一般的环境配置教程搞出hello world! 1. 然后从程序的基本原理出发,先从熟悉变量的定义,修改开始熟悉。 1. 然后熟悉逻辑顺序,循环分支,判断熟悉一下。 1. 然后是函数,对象的熟悉, **注意:** 1. 只需要熟悉基本算法就可以了。 1. 功能性的API可以在需求中自己慢慢熟悉。 1. 多写几个case之后,就可以开始下面的学习路线了。 ##大体学习路线: 1. 首先需要对http通讯要有一个长足的了解。 1. 从原理上理解mvc 1. 之后你再web开发上需要什么你就到php里面找什么去。 ## 为啥要加前两点? 加上前两点之后就可以把php的学习从被动变成主动,并且对学习其他编程语言 web分布式等等灵活的建站方法一网打尽。 ## 更加具体的好处: 如果刚开始的时候确实能理解网站服务器的运行方式跟基本通讯是怎么做到的。 那么学习php就跟查资料差不多了。我们只需要根据我们想要的东西到网上查询 到书上看,或者看视频你获取直接经验,都可以以带着问题跟目的的方式去学PHP 这样就可以很快的切入实战了。 # 以下部分知识我个人的粗浅理解,仅供参考 ## 当一个浏览器requre一个业务ajax post连接的时候发生的一系列的事情: 1. 首先访问DNS服务器,负责对request的连接位置进行服务器定位。(数据包中的**remote address**) 比如说有一些网站有很多个服务器,现在DNS服务器可以根据你不同线路访问来的reques进行分流。 比如说你request里面的位置信息(IP)地址是联通的,那么DNS服务器会返回该网站联通网络的服务器。 以做到更好的上网体验。不仅仅是选择网络往往CDN分布式资源下载这种服务会根据你的地区和网络选择服务器来获取资源。 1. 通过DNS得到具体哪个服务器的地址,以及服务器上的地址位置之后,就可以开始进行表单输入(**request method**:POST)了。(**request URL**) 1. 网络通讯可以正式开始了。 1. 通讯的时候双方都是有一组headers来标记通讯的内容。 1. 遵循你来我往的无状态连接(短链接只连接一次的无状态连接) 1. 浏览器向服务器发送的数据包内容(关键部分) 1. accept 下所有的内容都是关于告诉服务器我能接受什么样的返回格式 1. UserAgent 浏览器版本定义 1. Query string parameter 表单内所有需要传输给服务器的数据 1. Cookie 你懂得 1. 服务器向浏览器返回的数据包内容解析: 1. Set-Cookiei 通知浏览器保存cookie 1. Content-Encoding 返回的编码格式 1. 之后就是response的内容了。当然是没有限制的,图片文字都可以,大小不限,大小不限的意思就是http下载了。 1. 通讯结束后有一个通讯状态的code 就是传说中的200 为成功, 大名鼎鼎的404都是来自这的。 ================================================ FILE: prob/qqOnLinux.md ================================================ # Linux系统下QQ使用方法 # AUTH:服部半藏 EDIT:PHILO QQ作为常用的即时通讯工具,在我们的生活中扮演了很重要的角色。但是QQ在windows,MAC OSX和移动设备上使用起来很方便,但是在Linux上的表现却不尽如人意。下面就介绍几种常用的方法。 ## Web QQ WEB QQ(Web QQ腾讯公司推出的使用网页方式上QQ的服务,特点是无需下载和安装QQ软件,只要能打开Web QQ的网站就可以登录QQ与好友保持联系。具有Web产品固有的便利性,同时在Web上最大限度的保持了客户端软件的操作习惯。更丰富的好友动态、更开阔的聊天模式、更实时的资讯查看、还有休闲音乐伴随,Web QQ将为我们提供一个愉快的网络起点。2009年9月15日正式上线。) ### [webqq 传送门](http://web2.qq.com/) ### 使用方法 + 打开浏览器,输入webqq,点击搜索 ![w1](../picture/wqq/w1.png) + 找到“我的QQ – 能在网页上直接聊QQ”单击进入 ![w2](../picture/wqq/w2.png) + 打开后显示如下界面(在这里要提示一下smart QQ是在原版QQ上做的改善,只保留了常用的几个功能,更像是手机QQ,而原版web QQ则偏重于娱乐,里面可以添加各种小应用,更像是一个操作系统,以个人喜好而定) ![w3](../picture/wqq/w3.png) + 我们先选择原版web QQ,单击后进入一个类似于windows桌面的界面,里面有一些预设的小应用,当然也可以自己添加。 ![w4](../picture/wqq/w4.png) + 点击左边栏的QQ图标,会弹出登陆框,这时输入用户名密码,点击登录即可。 ![w5](../picture/wqq/w5.png) + 登陆后的界面如图所示 ![w6](../picture/wqq/w6.png) + 点击smart QQ后会弹出如下界面,直接登陆即可 ![w7](../picture/wqq/w7.png) + 陆后界面如下,非常类似于手机QQ ![w8](../picture/wqq/w8.png) ## Lwqq安装及使用方法 ### 安装篇: + 在左边栏找到软件中心并单击打开 ![lw1](../picture/lwqq/l1.jpg) + 搜索软件pidgin Internet message并安装 ![lw2](../picture/lwqq/l2.jpg) + 依次输入下面三条命令 ```bash sudo add-apt-repository ppa:lainme/pidgin-lwqq sudo apt-get update sudo apt-get install pidgin-lwqq #end of install ``` ### 使用篇 + 首先在侧边栏找到pidgin并单击打开 ![lw3](../picture/lwqq/l3.jpg) + 看到欢迎界面后单击“add”按钮添加账号 ![lw4](../picture/lwqq/l4.jpg) + 在Protocol下拉菜单里找到WebQQ并单击 ![lw5](../picture/lwqq/l5.jpg) + 输入用户名和密码单击”add“即可登录 ![lw6](../picture/lwqq/l6.jpg) + 登陆后效果图 ![lw7](../picture/lwqq/l7.jpg) ## 至于wineqq 当然会介绍啦 [下载地址](http://www.longene.org/forum/viewtopic.php?t=4700) ### 优点: 界面漂亮 ### 缺点: 兼容性插件 64bit需要装32比他的库 , 不稳定。 ## 注意: 进入网页下载后一定要看安装说明。 ``` 首先安装wineQQ2013地址(http://pan.baidu.com/s/1c0y7Ros) 如果是32位操作系统,第一次使用时输入命令 sudo bash /opt/longene/qq/qq.sh 然后即可运行,以后运行时按windows键,输入QQ,看到QQ的图标单击即可 对于64位操作系统,由于缺少32位库,因此操作相对麻烦 依次执行命令 sudo apt-get install lib32ncurses5 sudo apt-get install lib32z1 sudo apt-get install lib32bz2-1.0 sudo apt-get install libgtk2.0-0:i386 执行完之后就可以像32位系统一样操作了,第一次使用时输入命令 sudo bash /opt/longene/qq/qq.sh 然后即可运行,以后运行时按windows键,输入QQ,看到QQ的图标单击即可 ``` ## Android QQ loading... ================================================ FILE: prob/test.py ================================================ #encoding:utf-8 import json import urllib import urllib2 import sys import yaml import os # 依赖解决: pip install pyyaml case = yaml.load(file(sys.argv[1])) #从控制台输入配置文件 DevCode="273c5cd2d4cce23c32dc5655685aff4c" # ajax通用安全参数接入,不推荐Cookie操作因为每次ajax都会传送Cookie。流量很高。 ReqToken="" AccessToken="" Gindex=0 baseurl = 'http://127.0.0.1:9090' # post ajax post helper def post(url,value): print "post to :",baseurl+url data = urllib.urlencode(value) req = urllib2.Request(baseurl+url, data) response = urllib2.urlopen(req) the_page = response.read() return the_page # check_error 针对ajax返回结果判断服务器有没有报错 def check_error(resp): if json.loads(resp)['status']['code'] != '200': print resp print 'response error' return 1 return 0 # inittoken_customer customer 类型token 初始化,其实是帮助登录的 def inittoken_customer(): resp = post("XXXXXXXXXXXXXXXXXXXX",{ 'XXXXXXXXXXXX':"ea66f04", 'XXXXXXXXX':"c7465f402bb3f02a585f57c634d579fc" }) if check_error(resp) != 0 : return ReqToken = json.loads(resp)["data"][0]['request_token'] return ReqToken # inittoken_shop 跟上面类似是商家端 def inittoken_shop(): resp = post("XXXXXXXXXXXXXXXXXXXX",{ 'XXXXXXXXXXXXXXXXXXXX':"f8ccab8", 'XXXXXXXXXXXXXXXXXXXX':"273c5cdbd4cce2cc32dc5655685a6f4c" }) if check_error(resp) != 0 : return ReqToken = json.loads(resp)["data"][0]['request_token'] return ReqToken # login_customer 客户登录 def login_customer(): resp = post("XXXXXXXXXXXXXXXXXXXX",{ 'XXXXXXXXXXXXXXXXXXXX':ReqToken, 'username':"XXXXXXXXXXXXXXXXXXXX@nou.com.cn", 'password':"123", 'code':DevCode }) if check_error(resp) != 0 : return return json.loads(resp)["data"][0]['access_token'] # login_customer 商家登录 def login_shop(): resp = post("XXXXXXXXXXXXXXXXXXXX",{ 'XXXXXXXXXXXXXXXXXXXX':ReqToken, 'username':"XXXXXXXXXXXXXXXXXXXX@gmail.com", 'password':"123", 'code':DevCode }) if check_error(resp) != 0 : return return json.loads(resp)["data"][0]['access_token'] # get_token_time 查看token剩余有效时间 def get_token_time(token): resp = post("XXXXXXXXXXXXXXXXXXXX",{ 'XXXXXXXXXXXXXXXXXXXX':token, }) return resp # printJSON 格式化JSON输出 def printJSON(src): print json.dumps(json.loads(src),indent=2) ## 开始主要测试业务 # init token baseurl = case['server'] # 登录 if case['login']=='customer': ReqToken = inittoken_customer() AccessToken = login_customer() else: ReqToken = inittoken_shop() AccessToken = login_shop() # 执行yaml中的test case for testcase in case['case']: if testcase['data'] == 'null': testcase['data'] = dict() testcase['data']['access_token']=AccessToken testcase['data']['request_token']=ReqToken testcase['data']['code']=DevCode printJSON(post(testcase['src'],testcase['data'])) ================================================ FILE: pythondev/.vimrc ================================================ set nocompatible " be iMproved, required filetype off " required " set the runtime path to include Vundle and initialize set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() " alternatively, pass a path where Vundle should install plugins "call vundle#begin('~/some/path/here') " let Vundle manage Vundle, required Plugin 'gmarik/Vundle.vim' Plugin 'Shougo/neocomplete.vim' Plugin 'majutsushi/tagbar.git' Plugin 'scrooloose/nerdtree.git' Plugin 'wincent/command-t' Plugin 'Lokaltog/vim-powerline' " Plugin 'hdima/python-syntax' call vundle#end() " required filetype plugin indent on " required set shiftwidth=4 set wrap " To ignore plugin indent changes, instead use: "filetype plugin on " " Brief help " :PluginList - lists configured plugins " :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate " :PluginSearch foo - searches for foo; append `!` to refresh local cache " :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal " " see :h vundle for more details or wiki for FAQ " Put your non-Plugin stuff after this line " " 代码高亮用的 syntax enable filetype plugin on set number " 颜色配置 colorscheme molokai " 标签映射 execute "set =\ei" execute "set =\eo" execute "set =\ep" execute "set =\eu" execute "set =\el" execute "set =\en" execute "set =\ey" execute "set =\ec" nmap :TagbarToggle imap :TagbarTogglei nmap :NERDTreeToggle imap :NERDTreeToggle nmap :q nmap :tabn imap :tabn nmap :tabp imap :tabp nmap :undo nmap :w imap :w imap :pc nmap :pc nmap :w:PymodeLint imap :w:PymodeLint " find reference用的是新开窗口 new是上下分,vnew是左右分 let g:pymode_rope_goto_definition_cmd = 'e' let g:pymode_rope_goto_definition_bind = '' set backspace=indent,eol,start " 让backspace能正常工作的配置 " 这是对PowerLine的设置 set encoding=utf-8 set laststatus=2 let g:Powerline_symbols='unicode' " tab设置 set ts=4 set expandtab ================================================ FILE: pythondev/Dockerfile ================================================ FROM python:2.7.10 RUN apt-get update RUN apt-get install -y build-essential curl git m4 ruby texinfo libbz2-dev libcurl4-openssl-dev libexpat-dev libncurses-dev zlib1g-dev RUN apt-get install -y rubygems vim-nox locales xfonts-utils fontconfig ctags ruby-dev RUN mkdir -p ~/.vim/bundle && git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim RUN curl -Ssl https://raw.githubusercontent.com/lijianying10/FixLinux/master/pythondev/.vimrc -o ~/.vimrc RUN curl -Ssl https://raw.githubusercontent.com/lijianying10/FixLinux/master/dotfile/.bashrc -o ~/.bashrc RUN mkdir ~/.vim/colors/ && curl -Ssl https://raw.githubusercontent.com/tomasr/molokai/master/colors/molokai.vim -o ~/.vim/colors/molokai.vim RUN vim "+PluginInstall" "+qall" RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && locale-gen "en_US.UTF-8" RUN mkdir ~/.font/ && cd ~/.font/ && git clone https://github.com/eugeii/consolas-powerline-vim.git && cd consolas-powerline-vim/ && cp *.ttf .. && cd .. && rm -rf consolas-powerline-vim/ && mkfontscale && mkfontdir && fc-cache -vf RUN cd ~/.vim/bundle/command-t/ruby/command-t && ruby extconf.rb && make RUN cd ~ && git clone git://github.com/klen/python-mode.git &&cd python-mode && cp -R * ~/.vim && cd ~ && rm -rf python-mode RUN git clone http://github.com/vim/vim && cd vim && ./configure --enable-pythoninterp=yes --enable-rubyinterp=yes --enable-luainterp=yes && make && make install && cd .. && rm -rf vim ================================================ FILE: rsakey/id_rsa.pub ================================================ ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDcTvSn5METOJUKXRr+Sa92eL2PRZlHb5tdKMublwgvHWaYNxJyXrxCARmBCy8VAo6rb/OeTsyuMWjZ7fVpxKc32ZkcBoIRL7YNkAonO8nHMSLvWUSKkwo7wfWubJhBQtDjvJ40WIcECrFkssFxbcl9YuUeZjdclmcylBkfwzdHJl7c3NtOjtCosN1RUDQZZJEJzKpSNcYtX/D1fPY9MovDWAeQ+xcLb6Gy5rnCTfyGgZDowyDpFNNe+j0a9G1zjlEww3GvOD/UUIf7hDaji+HjO8/sLfHjfAWWULStoEl/aUoofs93QVQFxCPOeYnZR/QL8MkfXQmwme7Nv7xBeqrt Li-jianying@lijianyings-MacBook-Pro.local ================================================ FILE: script/caidanhezidev ================================================ tmux new -d -n 'vim' -s '菜单盒子开发' tmux new-window -n 'runner' -t 菜单盒子开发:2 tmux new-window -n 'tester' -t 菜单盒子开发:3 tmux new-window -n 'loger' -t 菜单盒子开发:4 tmux new-window -n 'db' -t 菜单盒子开发:5 tmux attach -t 菜单盒子开发 ================================================ FILE: script/cleandocker ================================================ docker kill $(docker ps -qa); docker rm $(docker ps -qa); ================================================ FILE: script/db.sh ================================================ docker run -dt --name cmysql -e MYSQL_ROOT_PASSWORD=1 -p 3306:3306 mysql:5.6 docker run -dt --name credis -p 6379:6379 redis ================================================ FILE: script/e ================================================ docker exec -it $1 /bin/bash ================================================ FILE: script/env.sh ================================================ curl -Ssl https://raw.githubusercontent.com/lijianying10/FixLinux/master/dotfile/.vimrc -o ~/.vimrc curl -Ssl https://raw.githubusercontent.com/lijianying10/FixLinux/master/dotfile/.bashrc -o ~/.bashrc cat > ~/.gitconfig << EOF [push] default = simple [credential] helper = store [user] name = 李建赢 email = lijianying12@gmail.com EOF ================================================ FILE: script/freem ================================================ free -h | awk 'NR==2{print $3}' ================================================ FILE: script/k ================================================ docker run -it --name kkk -d -p 445:22 -v /usr/local/bin/docker:/usr/local/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -e 'PUBKEY=ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDcTvSn5METOJUKXRr+Sa92eL2PRZlHb5tdKMublwgvHWaYNxJyXrxCARmBCy8VAo6rb/OeTsyuMWjZ7fVpxKc32ZkcBoIRL7YNkAonO8nHMSLvWUSKkwo7wfWubJhBQtDjvJ40WIcECrFkssFxbcl9YuUeZjdclmcylBkfwzdHJl7c3NtOjtCosN1RUDQZZJEJzKpSNcYtX/D1fPY9MovDWAeQ+xcLb6Gy5rnCTfyGgZDowyDpFNNe+j0a9G1zjlEww3GvOD/UUIf7hDaji+HjO8/sLfHjfAWWULStoEl/aUoofs93QVQFxCPOeYnZR/QL8MkfXQmwme7Nv7xBeqrt Li-jianying@lijianyings-MacBook-Pro.local' kkk:kk1 ================================================ FILE: script/xdev ================================================ tmux new -d -n 'vim' -s $1 tmux new-window -n 'runner' -t $1:2 tmux new-window -n 'tester' -t $1:3 tmux new-window -n 'loger' -t $1:4 tmux new-window -n 'db' -t $1:5 tmux attach -t $1 ================================================ FILE: st2/Dockerfile ================================================ FROM ubuntu:16.04 COPY st2ctl st2.conf supervisord.conf docker-entrypoint.sh / RUN apt-get update && apt-get install -y build-essential wget gnupg-curl curl sudo apache2-utils vim apt-utils supervisor && os=ubuntu dist=xenial curl -s https://packagecloud.io/install/repositories/StackStorm/stable/script.deb.sh | sudo bash && apt-get update && apt-get install -y st2 && apt-key adv --fetch-keys http://nginx.org/keys/nginx_signing.key && echo 'deb http://nginx.org/packages/ubuntu/ xenial nginx' >> /etc/apt/sources.list.d/nginx.list && apt-get update && apt-get install -y st2web nginx && rm /etc/nginx/conf.d/default.conf && cp /usr/share/doc/st2/conf/nginx/st2.conf /etc/nginx/conf.d/ && curl -o /bin/kubectl https://storage.googleapis.com/kubernetes-release/release/v1.6.1/bin/linux/amd64/kubectl && chmod +x /bin/kubectl && wget https://github.com/krallin/tini/releases/download/v0.14.0/tini-amd64 -O /bin/tini && chmod +x /bin/tini && mv /st2.conf /etc/st2/ && mv supervisord.conf /etc/supervisor/supervisord.conf && mv /st2ctl /usr/bin/st2ctl && chmod +x /usr/bin/st2ctl && curl -SsL https://bootstrap.pypa.io/get-pip.py | python && pip install && wget https://get.docker.com/builds/Linux/x86_64/docker-17.05.0-ce.tgz && tar xf docker-17.05.0-ce.tgz && mv docker/docker /bin/docker && rm -rf docker docker-17.05.0-ce.tgz ENTRYPOINT ["/bin/tini", "--"] CMD bash /docker-entrypoint.sh ================================================ FILE: st2/docker-entrypoint.sh ================================================ echo generate ssh key ssh-keygen -f /root/.ssh/id_rsa -P "" && cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys echo generate user printf "%s\n" "${USER_NAME:?Need to set USER_NAME non-empty}" printf "%s\n" "${USER_PASSWORD:?Need to set USER_PASSWORD non-empty}" echo $USER_PASSWORD | sudo htpasswd -i /etc/st2/htpasswd $USER_NAME echo generate cert sudo mkdir -p /etc/ssl/st2 sudo openssl req -x509 -newkey rsa:2048 -keyout /etc/ssl/st2/st2.key -out /etc/ssl/st2/st2.crt \ -days 365 -nodes -subj "/C=US/ST=California/L=Palo Alto/O=StackStorm/OU=Information \ Technology/CN=$(hostname)" printf "%s\n" "${CONN_RMQ:?Need to set CONN_RMQ non-empty}" printf "%s\n" "${MONGO_HOST:?Need to set MONGO_HOST non-empty}" printf "%s\n" "${MONGO_DB:?Need to set MONGO_DB non-empty}" printf "%s\n" "${MONGO_PORT:?Need to set MONGO_PORT non-empty}" cat >> /etc/st2/st2.conf </dev/null | grep -q upstart) && [ -f /etc/init/${svcname}.conf ]; then # init is running, and is upstart and service config is available # ! upstart running detection is a MUST, since upstart can be just # ! installed on a platform but not used (ex: docker container, centos). /sbin/initctl $action $svcname elif command -v service > /dev/null 2>&1; then supervisorctl $action $svcname elif [ -x /etc/init.d/${1} ]; then /etc/init.d/$svcname $action else echo -e "\e[31mError: Unknown service manager, we ONLY support systemd, upstart and sysv! \e[0m\n" exit 1 fi } # Next candidate for removal # after we implement native `service st2component reopen` (nginx example) for each component function reopen_component_log_files() { COM=${1} PID=`ps ax | grep -v grep | grep -v st2ctl | grep "${COM}" | awk '{print $1}'` if [[ ! -z ${PID} ]]; then for p in ${PID}; do echo "Sending SIGUSR1 to ${COM} PID: ${p}" kill -USR1 ${p} done else echo "${COM} is not running" return 1 fi } function register_content() { ALLOWED_REGISTER_FLAGS='--register-all --register-actions --register-aliases --register-runners --register-policies --register-rules --register-sensors --register-triggers --register-configs --register-setup-virtualenvs --register-fail-on-failure --register-no-fail-on-failure --verbose' DEFAULT_REGISTER_FLAGS='--register-runners --register-actions --register-aliases --register-sensors --register-triggers --register-configs --register-rules' SUDO_FLAGS='--register-setup-virtualenvs' flags="${@}" if [ ! -z ${1} ]; then for flag in ${flags}; do if [[ " ${SUDO_FLAGS} " == *" $flag "* && "$(id -u)" != "0" ]]; then echo -e "\e[31mError: \"sudo\" required for: ${flag} \e[0m\n" exit 1 fi if [[ " ${ALLOWED_REGISTER_FLAGS} " != *" $flag "* ]]; then # argument not allowed echo -e "\e[31mError: Invalid flag provided: ${flag} \e[0m\n" print_usage exit 1 fi done fi if [ -z ${1} ]; then REGISTER_FLAGS=${DEFAULT_REGISTER_FLAGS} elif [ ${1} == '--verbose' ] && [ -z ${2} ]; then REGISTER_FLAGS="$DEFAULT_REGISTER_FLAGS ${1}" else REGISTER_FLAGS=${flags} fi echo "Registering content...[flags = --config-file ${STANCONF} ${REGISTER_FLAGS}]" st2-register-content --config-file ${STANCONF} ${REGISTER_FLAGS} } function clean_db() { echo "Dropping st2 Database..." mongo st2 --eval "db.dropDatabase();" } function clean_logs() { echo "Cleaning st2 Logs..." rm -Rf /var/log/st2/* } function getpids() { echo "##### st2 components status #####" COMPONENTS=${COMPONENTS/mistral/mistral-server mistral-api} for COM in ${COMPONENTS}; do PID=`ps ax | grep -v grep | grep -v st2ctl | grep "${COM}" | awk '{print $1}'` if [[ ! -z ${PID} ]]; then for p in ${PID}; do echo "${COM} PID: ${p}" done else echo "${COM} is not running." fi done } case ${1} in start) must_be_root st2start getpids ;; stop) must_be_root st2stop ;; restart) must_be_root st2stop sleep 1 st2start getpids ;; restart-component) must_be_root validate_in_components ${2} service_manager ${2} restart ;; reopen-log-files) must_be_root validate_in_components ${2} if reopen_component_log_files ${2}; then sleep 1 getpids fi ;; reload) register_content ${@:2} exit_code=$? getpids # Note: We want to preserve st2-register-content "fail on failure" behavior # and propagate the correct exit code and exit with non zero on failure exit ${exit_code} ;; clean) must_be_root echo "This will drop the database and delete all logs. Are you sure [y/n]?" read verify if [[ "$verify" == "y" ]]; then st2stop clean_db clean_logs register_content ${@:2} st2start getpids else exit fi ;; status) getpids ;; *) print_usage exit 1 ;; esac ================================================ FILE: st2/supervisord.conf ================================================ ; supervisor config file [unix_http_server] file=/var/run/supervisor.sock ; (the path to the socket file) chmod=0700 ; sockef file mode (default 0700) [inet_http_server] port = 127.0.0.1:9001 [supervisord] logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log) pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid) childlogdir=/var/log/supervisor ; ('AUTO' child log dir, default $TEMP) nodaemon=true [supervisorctl] serverurl=http://127.0.0.1:9001 ; the below section must remain in the config file for RPC ; (supervisorctl/web interface) to work, additional interfaces may be ; added by defining them in separate rpcinterface: sections [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface ; The [include] section can just contain the "files" setting. This ; setting can list multiple files (separated by whitespace or ; newlines). It can also contain wildcards. The filenames are ; interpreted as relative to this file. Included files *cannot* ; include files themselves. [include] files = /etc/supervisor/conf.d/*.conf [program:st2actionrunner] command=/opt/stackstorm/st2/bin/st2actionrunner --config-file /etc/st2/st2.conf redirect_stderr = true stdout_logfile_maxbytes = 200MB stdout_logfile_backups = 20 stdout_logfile = /var/log/st2actionrunner.log stderr_logfile = /var/log/st2actionrunner.log user=root numprocs=10 process_name=st2actionrunner%(process_num)s autorestart=true startsecs=10 stopwaitsecs = 60 killasgroup=true [program:st2api] command=/opt/stackstorm/st2/bin/gunicorn_pecan /opt/stackstorm/st2/lib/python2.7/site-packages/st2api/gunicorn_config.py -k eventlet -b 127.0.0.1:9101 --workers 1 --threads 1 --graceful-timeout 10 --timeout 30 redirect_stderr = true stdout_logfile_maxbytes = 200MB stdout_logfile_backups = 20 stdout_logfile = /var/log/st2api.log stderr_logfile = /var/log/st2api.log user=root numprocs=1 autorestart=true startsecs=5 stopwaitsecs = 60 killasgroup=true [program:st2auth] command=/opt/stackstorm/st2/bin/gunicorn_pecan /opt/stackstorm/st2/lib/python2.7/site-packages/st2auth/gunicorn_config.py -k eventlet -b 127.0.0.1:9100 --workers 1 --threads 1 --graceful-timeout 10 --timeout 30 redirect_stderr = true stdout_logfile_maxbytes = 200MB stdout_logfile_backups = 20 stdout_logfile = /var/log/st2auth.log stderr_logfile = /var/log/st2auth.log user=root numprocs=1 autorestart=true startsecs=10 stopwaitsecs = 60 killasgroup=true [program:st2garbagecollector] command=/opt/stackstorm/st2/bin/st2garbagecollector --config-file /etc/st2/st2.conf redirect_stderr = true stdout_logfile_maxbytes = 200MB stdout_logfile_backups = 20 stdout_logfile = /var/log/st2garbagecollector.log stderr_logfile = /var/log/st2garbagecollector.log user=root numprocs=1 autorestart=true startsecs=10 stopwaitsecs = 60 killasgroup=true [program:st2notifier] command=/opt/stackstorm/st2/bin/st2notifier --config-file /etc/st2/st2.conf redirect_stderr = true stdout_logfile_maxbytes = 200MB stdout_logfile_backups = 20 stdout_logfile = /var/log/st2notifier.log stderr_logfile = /var/log/st2notifier.log user=root numprocs=1 autorestart=true startsecs=10 stopwaitsecs = 60 killasgroup=true [program:st2resultstracker] command=/opt/stackstorm/st2/bin/st2resultstracker --config-file /etc/st2/st2.conf redirect_stderr = true stdout_logfile_maxbytes = 200MB stdout_logfile_backups = 20 stdout_logfile = /var/log/st2resultstracker.log stderr_logfile = /var/log/st2resultstracker.log user=root numprocs=1 autorestart=true startsecs=10 stopwaitsecs = 60 killasgroup=true [program:st2sensorcontainer] command=/opt/stackstorm/st2/bin/st2sensorcontainer --config-file /etc/st2/st2.conf redirect_stderr = true stdout_logfile_maxbytes = 200MB stdout_logfile_backups = 20 stdout_logfile = /var/log/st2sensorcontainer.log stderr_logfile = /var/log/st2sensorcontainer.log user=root numprocs=1 autorestart=true startsecs=10 stopwaitsecs = 60 killasgroup=true [program:st2rulesengine] command=/opt/stackstorm/st2/bin/st2rulesengine --config-file /etc/st2/st2.conf redirect_stderr = true stdout_logfile_maxbytes = 200MB stdout_logfile_backups = 20 stdout_logfile = /var/log/st2rulesengine.log stderr_logfile = /var/log/st2rulesengine.log user=root numprocs=1 autorestart=true startsecs=10 stopwaitsecs = 60 killasgroup=true [program:st2stream] command=/opt/stackstorm/st2/bin/gunicorn_pecan /opt/stackstorm/st2/lib/python2.7/site-packages/st2stream/gunicorn_config.py -k eventlet -b 127.0.0.1:9102 --workers 1 --threads 10 --graceful-timeout 10 --timeout 30 redirect_stderr = true stdout_logfile_maxbytes = 200MB stdout_logfile_backups = 20 stdout_logfile = /var/log/st2stream.log stderr_logfile = /var/log/st2stream.log user=root numprocs=1 autorestart=true startsecs=10 stopwaitsecs = 60 killasgroup=true [program:nginx] command=/usr/sbin/nginx -g 'daemon off;' redirect_stderr = true stdout_logfile_maxbytes = 200MB stdout_logfile_backups = 20 stdout_logfile = /var/log/nginx.log stderr_logfile = /var/log/nginx.log user=root numprocs=1 autorestart=true startsecs=10 stopwaitsecs = 60 killasgroup=true