Loading...
Archive for the ‘其它’ Category
  1. 以前常常抱怨由于老外版权意识强,读英语原版书籍难。

    后来有机会认识了rapidshare,很多新书都能够找到下载,才恍然大悟:

    并不是找不到书籍阅读,而是没有找到方法。当然并非所有图书都可以在网上免费下载,能免费下载的是少数,一般而言,畅销书、计算机类图书比较多。但是这已经足够丰富自我的日常阅读,毕竟并不需要读所有书籍。

    第一种方法就是利用空间存储器寻找书籍。

    首先找到优秀的外国的空间存储器。

    http://rapidshare.de

    http://rapidshare.com

    http://mihd.net/

    http://depositfiles.com/

    http://megaupload.com
    http://www.mediafire.com/
    http://www.2shared.com/
    http://www.file2you.net/upload/
    http://www.hungryflix.com/
    http://www.sendspace.com/

    http://www.gbaopan.com

    www.uploading.com

    www.51dir.com

    http://www.51ok.com/

    www.hivot.com

    http://sexupload.com

    http://ultrashare.net
    http://rapidupload.com
    http://zshare.net
    http://uploadspy.com

    http://savefile.com
    .http://mytempdir.com

    http://upload.com
    http://hyperupload.com

    http://sendspace.com
    http://www.up-file.com
    http://bestsharing.com

    http://www.live-share.com

    http://www.speedyshare.com
    http://www.quickdump.com
    http://upload.hostiran.net
    http://www.file.sc
    http://uploaded.to
    http://www.yousendit.com
    http://www.rogepost.com
    http://www.f-forge.com
    http://badongo.com

    rapidshare的资源最丰富,包括电影,软件,书籍。对免费用户唯一的缺点就是等待的时间太长,下载一本书,等待一段时间。下载几本书,等待可能要几个小时。由于资源的丰富,又不得不依赖它,真是又爱又恨。网上有介绍破解流量限制的软件,个人试了很多,都不好用,有兴趣的在网上搜索一下学习。

    直接用google搜索,书名+rapidshare.de/files、书名+inurl:rapidsharerapidshare.com/users+关键词。

    还有很多面向 rapidshare的搜索引擎:

    http://www.rapidfox.net/

    http://www.rapidsharefiles.net/

    http://www.rapidexplorer.net/

    http://www.freechinaguide.com/search/

    http://www.funfail.com/

    http://shareminer.com/

    http://filesbot.com/

    http://www.rapidsharer.org/

    针对Rapidshare等免费存储空间专门的搜索引擎,但是试过就知道,效率绝对不及Google

    个人用搜索用户的笨方法找到自己想要的资料,这有点像在金沙江淘金,比较费力。

    大家不妨用多种方法试一试。

    http://filesbot.com/?q=users

    GRE

    http://rapidshare.com/users/S6NML7

    http://rapidshare.com/users/URE983

    http://www.freebooksource.com/IELTS-SAT-TOEFL-GRE-GMAT.htm

    经济

    http://rapidshare.com/users/RD4HZB

    词汇

    http://rapidshare.com/users/6CEKPE

    计算机

    http://rapidshare.com/users/T8Q8RB

    rapidshare的搜索应用

    http://rapidshare.com/users/S6NML7

    http://mihd.net/

    http://depositfiles.com/

    这两个几乎没有限制,本人用得比较多。搜索方法与上面类似。

    http://megaupload.com

    有用户数量限制,每次用都说用户已满,没有用过,不过很多人推荐。

    其它的存储空间没有用过,不好评价。

    第二种方法就是BitTorrentEmule等软件下载。

    没有英语环境的人学习英语,并查找英文资料,就是要融入英语国家的生活氛围、生活习惯、生活圈子。这时候,多学习学习外国的相关文化等资料是有好处的。读书,就是一种学习的手段。
       
    北美的图书资料异常丰富,往往你所想知道的信息都在某本书里。但是,如何找到这些书呢?
       
    互联网的到来使得以前很多遥不可及的书籍唾手可得。这里我介绍的就是一种基于互联网的读书方式。
       
    很多人已经知道如何用BitTorrentBT,变态)、Emule(电驴)等p2p(点对点)的软件工具去下载电影、音乐,但是,其实它们也是可以用来下载书籍的。没事的时候,完全可以用它们的搜索功能(或其他搜索方式)去搜索相关的书籍。
       
    重点推荐mininovahttp://www.mininova.org/ 是我很欣赏的一个BitTorrent资源网站,提供了电影、书籍、软件等BT种子。这里我主要谈该站提供的书籍方面的种子。
       
    相关书籍大体上来讲分为2种,电子书http://www.mininova.org/sub/50 eBook,主要以PDF格式为主)和音频书籍http://www.mininova.org/sub/51 Audio Book,主要以MP3格式为主)。11838 torrents in subcategory “Ebooks”,其实外国的数字图书馆也不过几万书籍,这里就就有一万多本书,完全能够满足基本需求了。
       
    音频书籍其实是很好的一种资源。有很多人不喜欢看书,那么就听书吧。举个例子,畅销书《穷爸爸富爸爸》的作者除了写书,其实他还创作了好些音频书籍,来具体地介绍如何理财,如果有机会多听听的话一方面可以提高英语听力,另外一方面,也能很好地提高自己的相关知识水平。此外,还有好些音频书籍,例如介绍如何理解人的身体语言、如何调解心理情绪等等。音频书籍虽然用起来更省心,但是毕竟需要占用大量的硬盘空间,电子书籍则往往只需要很小的空间。而且,电子书籍是纸质书籍的电子版,因此更普及,涵盖的面更广。在网上,你能发现很多有趣、甚至稀奇古怪的电子书籍。

    Emule http://lib.verycd.com/e_magazine/ 这个地方主要书籍是杂志。

    包括考研原材料来自于《The Economist》。

    第三种方法就是论坛,博客收集的书籍上传的地址,与“网上读书论坛”的专家找书版类似的地方,上面能够找到很多好书籍。

    http://www.rapidshared.org/index.php?t=category&n=ebooks

    自称是世界上最大的一键式文件在线存放服务商。用户上传文件被下载过即可永久保存。

    Cnshare

    http://www.cnshare.org/

    rapidshare的中文版。

    Asiaing

    http://www.asiaing.com/

    报纸、杂志、电子书籍,种类齐全。

    Ebooksclub

    http://ebooksclub.org/?module=index

    下载电子书最简单的办法就是找别人已经下载好的。

    最值得推荐的就是渡岸学术网

    http://www.freeduan.com/eb/index.htm

    这里的书籍相当丰富,多为教材与学术性书籍,很适合研究用。

    大多数的书籍配有详细说明和图书封面,美观,赏心悦目。

     

    推荐“海外选书系统”搜索书籍,可以结合http://books.google.com http://www.amazon.com/

    用。“海外选书系统”按中图法分类,很适合中国人。

    http://www.cnpbook.com/expert/index.php?toURI=useredit.php?curUser=1可以结合duxiu中西合璧。梦寐以求的学习方式来临

  2. http://www.rapidshare.com

    http://avaxhome.org/ebooks俄罗斯的破解网站,英文最新书籍,天天有更新
    http://www.spotbit.com/main/ ——推荐!
    http://asiaing.com/index.php ——强烈推荐!!
    http://www.freeclassicaudiobooks.com/
    http://ebook.vopen.net/ ——国内站点!全部英文原版书籍!强烈推荐!!
    http://www.ebooksheaven.org/
    http://www.screenbooks.net/screenbook_library.html
    http://freecomputerbooks.com/
    http://www.bookrevyoo.com/
    http://www.edu-tec.org/directorio/pages/E-Books/index.html
    http://www.foresight.org/UTF/Unbound_LBW/
    http://trh990.blogspot.com/index.html
    http://www.giuciao.com/
    http://www.ateus.net/ebooks/index.php
    http://onlinebooks.library.upenn.edu/
    http://www.gutenberg.org/wiki/Main_Page
    http://www.memoware.com/
    http://www.cafeconleche.org/ (编程的)
    http://www.librodot.com/index.php
    http://www.medicinainformacion.com/
    http://www.bookwarez.org/ebooks.html
    http://www.biblopia.com/
    http://www.pdfchm.com ——pdf电子书
    http://www.oebook.org/
    http://www.33367.com
    http://www.chipollo.info/modules.php?name=…mp;new_topic=27
    http://www.xpressionsz.com/archives/category/magazine/
    http://www.ebookshare.net/category/magazine/
    http://avaxhome.ru/ebooks
    http://digital.library.okstate.edu/OAS/ ——推荐!!
    http://textual.net/access.gutenberg#H –TXT电子书
    http://etext.lib.virginia.edu/ –TXT电子书

  3.     为了找个合适的图片是不是头大的不像样子了?OK,我现在就开始总结著名的ICON网站!
        ICON搜索引擎:
            http://www.iconlet.com/
            http://www.iconfinder.net/

        在线转换工具
            http://converticon.com/

        资源站
            http://www.freeiconsweb.com/index.html

    http://www.krugle.com/
    代码搜索工具。

  4. http://javadl.sun.com/webapps/download/AutoDL?BundleId=11027

  5. Most Java™ programming language developers are introduced to Eclipse through its function as an IDE. The Eclipse IDE actually consists of a collection of interacting components called plug-ins. These plug-ins, which make up the base of the IDE, can also be used to create other desktop applications. The minimal set of plug-ins needed to create an Eclipse-based application is referred to as the Eclipse Rich Client Platform (RCP). Plug-ins don’t just start themselves, however. They require an environment in which to start and operate. Eclipse provides this environment with an implementation of the OSGi R4 specification.

    Because Eclipse is at its core driven by OSGi, it’s important to understand how the concept of an Eclipse plug-in relates to the OSGi framework. In this article, I will explain this relationship in detail by describing what a plug-in is in terms of the Eclipse platform. Then I’ll describe the evolution of plug-ins in the Eclipse V2.1 platform through today’s OSGi-based implementation. Finally, the OSGi-provided manifest.mf options that apply to Eclipse plug-ins will be covered in detail.

    What is a plug-in?

    The Eclipse online help defines a plug-in as follows:

    “Plug-ins are structured bundles of code and/or data that contribute function to the system. Function can be contributed in the form of code libraries (Java classes with public [application program interfaces] APIs), platform extensions, or even documentation. Plug-ins can define extension points, well-defined places where other plug-ins can add functionality.”

    The key point to focus on is that plug-ins contribute function in a structured manner. They may provide a service such as logging or piece functionality available in the user interface (UI), such as an editor. Regardless of their function, all plug-ins are defined in the same structured way.

    The evolution to OSGi

    As mentioned, Eclipse uses OSGi as the basis for its plug-in system. This wasn’t always the case, however. Early versions of Eclipse were also designed as a collection of plug-ins, and Eclipse included its own propriety plug-in system to manage the interaction. However, as the requirements of the Eclipse IDE grew, it became apparent that a more robust solution was required. Basic requirements of this new system included the ability to dynamically handle the addition of new plug-ins and stopping existing plug-ins. After considerable research, the Eclipse creators decided to replace the proprietary plug-in framework by implementing the OSGi framework specification.

    OSGi is a specification of a service platform. Eclipse provides one of many available implementations of this specification and serves as the reference implementation of the latest OSGi R4 specification. OSGi is a Java-based framework targeted for use by systems that require long running times, dynamic updates, and minimal disruptions to the running environment. Initially, OSGi was targeted at home automation and residential gateway devices. More recently, it has found use in everything from mobile phones to cars.

    At its core, OSGi is a component and service model, as illustrated in Figure 1. The OSGi specification defines a unit of modularization called a bundle. (Unless explicitly noted during the rest of this article, the Eclipse term plug-in and the OSGi term bundle are used interchangeably because all Eclipse plug-ins are now OSGi bundles.) OSGi also provides a Java Virtual Machine (JVM)-level service registry that bundles can use to publish, discover, and bind to services.
    Figure 1. The interaction of the layers in the host operating system, Java, and OSGi
    The interaction of the layers in the host operating system, Java, and OSGi
    The OSGi specification defines an infrastructure for a bundle’s life cycle and how bundles interact. These rules are enforced through the use of special Java class loaders. In an average Java application, all classes in the CLASSPATH are visible to all other classes. In contrast, the OSGi class loaders restrict class interaction among bundles based on the OSGi specification and the options specified (covered in detail later in this article) in the manifest.mf file for each bundle.

    The Eclipse IDE uses a subset of OSGi centered around modularization and bundle life cycle. However, it makes minimal use of the service support OSGi provides. Instead, Eclipse provides its own extension point system to enable bundle interaction. Bundles expose functionality as contributions to other extensions. Bundles also define their own extension points, to which other bundles may contribute. An example of using extension points in Eclipse is the Preferences window. A core Eclipse plug-in provides the central window and exposes an extension point to allow the contribution of additional preference pages. As new plug-ins are added to Eclipse, they can contribute their own pages. The model of extension points in Eclipse is different from basic OSGi services. Bundle extension points are owned by the defining bundle; other bundles simply contribute to them. In comparison, any bundle can implement and use an OSGi service.

    Back to top

    Implementing Eclipse using OSGi

    In versions of Eclipse before 3.1, you defined plug-in dependencies, as well as extensions and extension points, in each plug-in’s plugin.xml file. In the newer versions of Eclipse that use OSGi, dependency information has been broken out into the manifest.mf file, leaving the plugin.xml file containing only XML definitions of extensions and extension points. It is useful to look at a live, working example of this evolution. Listing 1 shows an excerpt from the org.eclipse.pde.ui plug-in from Eclipse V3.0.
    Listing 1. Excerpt from the org.eclipse.pde plug-in

    <?xml version="1.0" encoding="UTF-8"?>
    <?eclipse version="3.0"?>
    <plugin
       id="org.eclipse.pde.ui"
       name="%name"
       version="3.0.2"
       provider-name="%provider-name"
       class="org.eclipse.pde.internal.ui.PDEPlugin">
       <runtime>
          <library name="pdeui.jar">
             <export name="*"/>
          </library>
       </runtime>
       <requires>
          <import plugin="org.eclipse.core.runtime.compatibility"/>
          <import plugin="org.eclipse.ui.ide"/>
          <import plugin="org.eclipse.ui.views"/>
          <import plugin="org.eclipse.jface.text"/>
          <import plugin="org.eclipse.ui.workbench.texteditor"/>
          <import plugin="org.eclipse.ui.editors"/>
          <import plugin="org.eclipse.ant.core"/>
          <import plugin="org.eclipse.core.resources"/>
          <import plugin="org.eclipse.debug.core"/>
          <import plugin="org.eclipse.debug.ui"/>
          <import plugin="org.eclipse.help.base"/>
          <import plugin="org.eclipse.jdt.core"/>
          <import plugin="org.eclipse.jdt.debug.ui"/>
          <import plugin="org.eclipse.jdt.launching"/>
          <import plugin="org.eclipse.jdt.ui"/>
          <import plugin="org.eclipse.pde"/>
          <import plugin="org.eclipse.pde.build"/>
          <import plugin="org.eclipse.search"/>
          <import plugin="org.eclipse.team.core"/>
          <import plugin="org.eclipse.ui"/>
          <import plugin="org.eclipse.update.core"/>
          <import plugin="org.eclipse.ui.forms"/>
          <import plugin="org.eclipse.ant.ui"/>
          <import plugin="org.eclipse.jdt.junit"/>
          <import plugin="org.eclipse.ui.intro"/>
          <import plugin="org.eclipse.ui.cheatsheets"/>
       </requires>
    <!-- Extension points -->
       <extension-point id="pluginContent"
       name="%expoint.pluginContent.name"
       schema="schema/pluginContent.exsd"/>
       <extension-point id="newExtension"
       name="%expoint.newExtension.name"
       schema="schema/newExtension.exsd"/>
    <extension-point id="templates"
    name="%expoint.templates.name"
    schema="schema/templates.exsd"/>
    <extension-point id="samples"
    name="%expoint.samples.name"
    schema="schema/samples.exsd"/>
    <!-- Extensions -->
       <extension
             point="org.eclipse.ui.perspectives">
          <perspective
                name="%perspective.name"
                icon="icons/eview16/plugins.gif"
                class="org.eclipse.pde.internal.ui.PDEPerspective"
                id="org.eclipse.pde.ui.PDEPerspective">
          </perspective>
       </extension>

    The <export name=”*”/> declaration exposes all packages in the plug-in for use in other plug-ins. The plug-in dependency imports section lists the prerequisite plug-ins the org.eclipse.pde.ui plug-in requires.

    The next two sections define the extension points org.eclipse.pde.ui makes available to other plug-ins, as well as the contributions it makes to them. In this case, you can see the definition of a custom Eclipse Plug-in Development Environment (PDE) perspective.

    Let’s look at the same plug-in definition in Eclipse V3.1. Listing 2 shows the plugin.xml file.
    Listing 2. Plugin.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <?eclipse version="3.0"?>
    <plugin>
       
    <!-- Extension points -->
       <extension-point id="pluginContent"
       name="%expoint.pluginContent.name"
       schema="schema/pluginContent.exsd"/>
       <extension-point id="newExtension"
       name="%expoint.newExtension.name"
       schema="schema/newExtension.exsd"/>
       <extension-point id="templates"
       name="%expoint.templates.name"
       schema="schema/templates.exsd"/>
       <extension-point id="samples"
       name="%expoint.samples.name"
       schema="schema/samples.exsd"/>
    <!-- Extensions -->
       <extension
             point="org.eclipse.ui.perspectives">
          <perspective
                name="%perspective.name"
                icon="icons/eview16/plugins.gif"
                class="org.eclipse.pde.internal.ui.PDEPerspective"
                id="org.eclipse.pde.ui.PDEPerspective">
          </perspective>

    Notice that the export and import information is gone. This information now resides in the manifest.mf file shown in Listing 3.
    Listing 3. Manifest.mf

    Manifest-Version: 1.0
    Bundle-Name: %name
    Bundle-SymbolicName: org.eclipse.pde.ui; singleton:=true
    Bundle-Version: 3.1.0
    Bundle-ClassPath: org.eclipse.pde.ui_3.1.0.jar
    Bundle-Activator: org.eclipse.pde.internal.ui.PDEPlugin
    Bundle-Vendor: %provider-name
    Bundle-Localization: plugin
    Require-Bundle: org.eclipse.core.runtime,
     org.eclipse.ui.ide,
     org.eclipse.ui.views,
     org.eclipse.jface.text,
     org.eclipse.ui.workbench.texteditor,
     org.eclipse.ui.editors,
     org.eclipse.ant.core,
     org.eclipse.core.resources,
     org.eclipse.debug.core,
     org.eclipse.debug.ui,
     org.eclipse.jdt.core,
     org.eclipse.jdt.debug.ui,
     org.eclipse.jdt.launching,
     org.eclipse.jdt.ui,
     org.eclipse.pde,
     org.eclipse.pde.build,
     org.eclipse.search,
     org.eclipse.team.core,
     org.eclipse.ui,
     org.eclipse.update.core,
     org.eclipse.ui.forms,
     org.eclipse.ant.ui,
     org.eclipse.jdt.junit,
     org.eclipse.ui.intro,
     org.eclipse.ui.cheatsheets,
     org.eclipse.update.configurator,
     org.eclipse.help.base
    Bundle-ManifestVersion: 2
    Eclipse-AutoStart: true
    Export-Package: org.eclipse.pde.internal.ui;x-internal:=true,
     org.eclipse.pde.internal.ui.build;x-internal:=true,
     . . .
     org.eclipse.pde.ui,
     org.eclipse.pde.ui.internal.samples;x-internal:=true,
     org.eclipse.pde.ui.templates

    The various plug-in imports are now specified as required bundles, and the * package export has been replaced with a list of explicitly exported packages.

    The move away from plug-in-level dependencies to dependencies that required the explicit exporting and importing of packages generated a lot of commotion when Eclipse announced the news. The primary complaint was the lack of an equivalent of <export name=”*”/>, which had existed in earlier versions of Eclipse. There are many reasons for this omission, however. The most important reason is the speed gains from having explicit import and exports. Previous versions of Eclipse had to open and scan each plug-in jar file to determine which classes it contained. Not including a * export also provides a level of protection against plug-ins exposing unwanted classes. Plug-in developers must make a conscious choice to make functionality in a plug-in available for outside use. This restriction allows internal packages to stay internal.

    Back to top

    OSGi manifest options

    The current draft specification for the OSGi R4 framework core is almost 300 pages in PDF form. Covering every portion of this specification is outside the scope of this article, but I do discuss the OSGi manifest.mf options of particular interest to Eclipse plug-in developers:

    Bundle-Activator
    This class is used to start and stop the bundle. In the example plug-in above, the org.eclipse.pde.internal.ui.PDEPlugin class is specified. This class extends org.eclipse.core.runtime.Plugin, which implements the BundleActivator interface.
    Bundle-ClassPath
    This property specifies the CLASSPATH to use for the bundle. The property may contain references to directories or jar files inside the bundle jar file. You can use the period to indicate the bundle’s root. In the case of the example Eclipse PDE bundle, org.eclipse.pde.ui_3.1.0.jar in the bundle jar file is specified. If you import the source version of the plug-in into your workspace, the import process changes the bundle CLASSPATH to appear as Bundle-ClassPath:, which allows the development version of the plug-in to pick up the compiled bundle classes.
    Bundle-Version
    This property specifies the version number of the bundle. Package imports and required bundle specifications may include a bundle version number.
    Export-Package
    This property specifies all the packages to publicly expose to other plug-ins.
    Import-Package
    This property specifies all the packages to explicitly import from required plug-ins. By default, all packages must be resolved for a bundle to start. You can also specify package imports as optional to support cases in which a package may not exist. Explicitly imported classes are resolved before packages from Require-Bundle plug-ins.
    Require-Bundle
    This property specifies which bundles and their exported packages to import for use in the given bundle. Specified bundles are evaluated after explicit package imports.

    Additional manifest options provided by Eclipse

    Buddy class loader options
    Begin by creating a plug-in for Hibernate. Then create a plug-in containing the domain-specific classes with a dependency on Hibernate. Add the following line to the Hibernate plug-in manifest: Eclipse-BuddyPolicy: registered.Add the following manifest property to the manifest of the plug-in containing the domain-specific classes or resources: Eclipse-RegisterBuddy: hibernate.This line allows plug-ins to declaratively expose themselves to the Hibernate plug-in without it knowing about them beforehand. Now the Hibernate plug-in can see the needed classes even though it did not specifically import them.

    The manifest.mf configuration options that the OSGi specification includes don’t provide all the functionality that the Eclipse platform requires. As a result, the Eclipse creators have added several extensions (and also proposed them for inclusion in future versions of the OSGi specification):

    Export-Package Header Extensions
    Eclipse has two OSGi resolver methods — default and strict — that the osgi.resolver property can specify. Eclipse also includes two extensions to the Export-Package property — x-internal and x-friends — both of which are enforced when you enable Strict mode.
    x-internal
    The default value for this property is false. When internal packages are specified as true using this option, the Eclipse PDE discourages their use.
    x-friends
    This option is similar to x-internal, but allows certain bundles to use the exported packages that have this option. Others bundles are discouraged. The x-internal option takes precedence over x-friends.
    Eclipse-AutoStart
    By default, Eclipse loads bundles on demand. Therefore, bundles are loaded when the first class they contain is required by a bundle that imports it. Specifying this value as ?? causes Eclipse to load the bundle at startup. You can also specify a list of exceptions, which are classes, and resources, and which may be loaded without starting their containing bundle.
    Eclipse-PlatformFilter
    This property allows you to specify conditions that must evaluate to true for a bundle to start. You can include the following information in the expression you specify:

    • osgi.nl for language
    • osgi.os for operating system
    • osgi.arch for architecture
    • osgi.ws for windowing system

    An example of how to use this property is to verify whether the operating system is not Mac OS X before starting a plug-in that uses the SWT_AWT bridge. (The Mac OS X implementation of the Standard Widget Toolkit (SWT) doesn’t currently support this feature.)

    Eclipse-BuddyPolicy
    This option specifies the class loading policy of the bundle. Typically, bundles only have visibility in their internal classes and those imported from dependent bundles. The popular example that has been used in the Eclipse newsgroups to explain buddy class loading is Hibernate. The Hibernate framework must see classes and resources that are user-created and not part of Hibernate itself. One such case is when you use a project to dynamically fill a class from a Hibernate Query Language (HQL) query. By default, Hibernate won’t be able to see classes outside the plug-in containing the Hibernate jar files, and requiring modification of the Hibernate plug-in for the creation of each plug-in containing classes that Hibernate maps is not acceptable. Fortunately, you can solve this using the buddy class loader options explained in the Buddy class loader options section.
    Back to top

    Future directions of Eclipse and OSGi

    Eclipse has benefited greatly in its use of OSGi, gaining a robust system managing the life cycle of components in a dynamic manner. New uses, such as dynamic Web Archive (WAR) files on the server tier featuring servlets, JavaServer Pages, and other HTTP resources in Eclipse-style plug-ins are being explored every day.

    The Eclipse Foundation has positioned itself to play a key role in driving the OSGi specification forward, both for its own uses and for those of other parties leveraging OSGi. During the transition from the propriety Eclipse plug-in framework to OSGi, many additions were made to the OSGi specification that became part of the OSGi R4 specification release. The Eclipse Equinox project has, as a result, become the OSGi reference implementation moving forward. This involvement, as well as the creation of Java Specification Request (JSR) 291 to manage the evolution OSGi, guarantees that the Eclipse/OSGi partnership will continue to be successful in the years ahead.

    Resources

    Learn

    Get products and technologies

    • Innovate your next open source development project with IBM trial software, available for download or on DVD.

    Discuss

    About the author

  6.  The RAP project enables developers to build rich, Ajax-enabled Web applications by using the Eclipse development model, plug-ins with the well known Eclipse workbench extension points and a widget toolkit with SWT API (plus JFace).

    Version 1.0 has been released The RAP project has graduated from incubation and released version 1.0 of RAP. You can download the RAP tools / runtime from the download section on the left. A user guide is part of the RAP tools and can also be accessed online from the infocenter link.

    RAP is very similar to Eclipse RCP, but instead of being executed on a desktop computer RAP is run on a server and clients can access the application with standard browsers. This is mainly achieved by providing a special implementation of SWT (a subset of SWT API).

    RAP takes advantage of the award winning Java Development tools and the Plug-in Development tools provided by Eclipse.org. As applications are developed as bundles (plug-ins) and entirely in Java everything from development to launching, debugging and exporting to standard .war files works right out of the Eclipse IDE.

  7. Services framework, this term there have been for many years, long before the structure of the system that is based on service framework approach to the structures, turbine, the phoenix, avalon towards services, and so on are the framework of the target. Now The SCA, it can be said that in order to provide a framework for the available services, services framework in the system to what role do in the end, why it is so important, if a service framework to achieve is unlikely to start from the bottom, So we need to choose how kind?
    Service itself is a very image of the term, the design of the system that we are input and output, services, it can be said that more of the image to emphasize this point, each module will provide a certain degree of external functions, and provides the functions of these external we can as a service, fine to the module, we will find that the modules within the category is in fact the way to interactive services, in such circumstances, the service has become the natural framework for the core of the whole system based on the framework, then service framework which can help us to provide functional, if we are to achieve a service framework, which element is the need to consider it, we welcome Bozhuan, carry out more exchanges!
    1. How to register
           How kind services from registered things, it:), we are doing this is the first element of evaluation, the best one is the adoption of xml pojo described as services, or the way the java annotation.
           Another evaluation of the points that can be attached to the registration is whether to support the deployment of services to the designated service centres, similar to the long-range deployment of websphere.
    2, How to call services
           How call services, this can be said to be very important in the evaluation of a factor, but also more complex evaluation point.
           Calling from the way in terms of service calls are required evaluation methods and whether to support the injection Explicit calls, local calls and long-distance calls the distinction between synchronous and asynchronous call call the difference between the lazy-call or call fixed quote from the evaluation of the expectations of speaking, of course, we hope that injection and explicit support calls, local calls and long-distance calls, synchronous and asynchronous call to call for the transparent distribution of lazy-call is called into service only or In practical call to the corresponding method to access only when real clients, and the application of fixed when the call when that call services that access to authentic examples of targeted services, lazy-call and fixed-quoted call for the support of clusters Scenarios will have great impact.
           At the same time calling services covered by the concept of services, evaluation services in the View Point View is whether or not to support on-demand services, a number of search services, the same services in the system there may be a number of different implementations, on-demand services View significance lies in the accuracy requirements specified services, which is required by the rules accurately find the locations of services, are important; View number (0 .. n) services, it can call for the need for all service applications Scene is very important for this function call when the service is not necessary when it is important, for example, cited the log service, but even when log service can not be used when the need does not affect the function of the type of scene.
           Calling services also need to consider the safety of call services, such as authentication, access control, etc..
           Calling services to be considered in the framework of this service can be very easy to call a third party, such as in the spring of calls in other languages, such as calling in, Oh, the SCA is not a feeling.
    3, how to test services
           Testing services is undoubtedly an important point of the evaluation, we must know that webwork MVC framework in the field and win a seat position and the support of its action to better the lot of unit tests, so service frameworks in this regard is supported by how kind need one of the elements of evaluation.
    4, the life cycle of service
           Because the life cycle of services by the service framework to control, and service is the life cycle of this is how to change the inspection services in the framework we need to know.
           Another point is that if the evaluation services in the life cycle of change, the use of this service can be informed, of course, if it is lazy-call, then this problem does not exist entirely.
    5, the management and maintenance services
           The framework for this service should be more based on the features, including the list of services provided in services, the list should be the name of service, their service centres, the status of services, processing services and service access log records the pressure and so on.
           Management services, including the installation of the service, upgrading, and start, stop and unloading.
    6, the assembly service
           The assembly services is the concept that can be flexible assembly will be a number of services to a chain, and then chain the call, it is this additional element of the evaluation.
    7, the error handling services
           When the required evaluation services in the framework of this service will be handling errors caused by the phenomenon, the result is the best service calls to stop, and record the relevant logs, and the error correction services to deal with this situation, a bit like erlang Fault-tolerant thinking:), the basic point is that it is not affecting service frameworks and other services will operate normally.
    8, services and subscription broadcasting events
           Allow service in the handling of the incident to external broadcasting, but also to subscribers incident to trigger certain actions that can be attached to the HKEAA here is whether or not to support a variety of flexible service trigger, for example, such as timing the trigger.
    Other elements of evaluation services are AOP framework for the support of the possibility of establishing the service, like bundle repository,:)

    Of course, open-source community should be said that no such framework is the direct presence, but we can be based on Equinox, Newton, and other similar framework already exists to achieve such a standard framework for the services, when the evaluation will be to determine the basis of these points Based on the existing framework which is a better choice.

  8. antlr/Antlr 2.7.1 Reference Manual.pdf
    antlr/ANTLR- A Predicated-LL(k) Parser Generator.pdf
    antlr/ANTLR_Reference_Manual.pdf
    antlr/de ANTLR Guia Practica.pdf
    antlr/Linguaphone.Italian.Booklet.pdf
    antlr/ReallyUsefulEbooks.com_0978739256_Pragmatic.The.Definitive.ANTLR.Reference.May.2007.eBook-BBL(1).pdf
    antlr/ReallyUsefulEbooks.com_0978739256_Pragmatic.The.Definitive.ANTLR.Reference.May.2007.eBook-BBL.pdf
    complated/(2005) Hibernate In Action (Isbn 1932394-15X).pdf
    complated/(Apress) Pro Spring - TOC.pdf
    complated/2005-O’Reilly - POJO Application Frameworks_ Spring Vs. EJB 3.pdf
    complated/99.Addison.Wesley.Spring.Into.HTML.and.CSS.Apr.2005.chm
    complated/activerecord_cheatsheet.pdf
    complated/Addison.Wesley,.Hibernate.A.J2EE.Developers.Guide.(2004).LiB.chm
    complated/Addison.Wesley.Spring.Into.HTML.and.CSS.Apr.2005.chm
    complated/Addison.Wesley.Spring.Into.PHP.5.Apr.2005.chm
    complated/Agile Java Development With Spring Hibernate And Eclipse 2006.chm
    complated/Agile Web Development - Ruby On Rails Book v2 (Save Ink Version - Without Red Headers And Footers).pdf
    complated/Apress - Beginning Hibernate From Novice to Professional.pdf
    complated/Apress,.Pro.Hibernate.3.(2005).LotB.pdf
    complated/Best of Ruby Quiz.pdf
    complated/Beyond Java Continuation-Server Metaprogramming Ruby-Pyton-Groovy-Haskell-Erlang.pdf
    complated/BIRT with Hibernate.pdf
    complated/Develop a transactional persistence layer using Hibernate and Spring.pdf
    complated/eBook.OReilly.Hibernate.A.Developers.Notebook.pdf
    complated/EJB3 IN ACTION 2.pdf
    complated/EJB3 Java Persistence API.pdf
    complated/EJB3-persistence.pdf
    complated/ejb3-struts-tutorial-en.pdf
    complated/Ejb3.0.pdf
    complated/EJB3.0inAction.pdf
    complated/ejb3.0实例教程.pdf
    complated/ejb3.pdf
    complated/Engenho - Tutorial Hibernate - Parte 01.pdf
    complated/Enterprise Integration with Ruby.pdf
    complated/first-ejb3-ant-tutorial-en.pdf
    complated/first-ejb3-tutorial-en.pdf
    complated/Gnomon School High-End Magazine Issue #2 (Spring 2003).pdf
    complated/Google Maps With GPS Tracker 4.zip
    complated/Hibernate - Data Access With The Spring Framework.doc
    complated/HIBERNATE - Relational Persistence for Idiomatic Java.chm
    complated/Hibernate 2.1 中文参考手册.chm
    complated/Hibernate in Action (2005, Manning Publications).pdf
    complated/Hibernate in Action - Advanced mapping concepts.pdf
    complated/Hibernate In Action 2.pdf
    complated/Hibernate Java j2Ee.pdf
    complated/Hibernate 开发指南_2004.pdf
    complated/hibernate.cfg.xml
    complated/Hibernate_DEV_GUIDE.pdf
    complated/hibernate_entitymanager_ejb3.pdf
    complated/hibernate_reference.pdf
    complated/Introduction to JavaScript Part 1.pdf
    complated/Introduction to JavaScript Part 2.pdf
    complated/Introduction To Spring 2 And Jpa.pdf
    complated/Java Open Source Programming with Xdoclet, JUnit, WebWork, Hibernate(1).pdf
    complated/Java Open Source Programming With Xdoclet, Junit, Webwork, Hibernate.pdf
    complated/Java Persistence API JPA mit Hibernate 2007 03.pdf
    complated/Java Persistence With Hibernate, Revised Edition of Hibernate In Action.pdf
    complated/Java Persistence with Hibernate.pdf
    complated/Java.Persistence.with.Hibernate.(2006).pdf
    complated/Java2005-Ejb3.pdf
    complated/JavaPolis 2005 - EJB3 Simplified Components.pdf
    complated/Java_Hibernate_Tomcat_Quickstart.pdf
    complated/Jboss EJB3.0教程.pdf
    complated/JPA – Java Persistence API - MGJUG - AdrianoTavares.pdf
    complated/jpa.pdf
    complated/jpa_29_295.pdf
    complated/justjava-jpa-fabio.pdf
    complated/Learn Ruby On Rails In 4 Days.pdf
    complated/Manning - EJB3 in Action.pdf
    complated/Manning - Hibernate In Action (2006).pdf
    complated/Manning - Hibernate In Action (2007).pdf
    complated/Manning - hibernate In Action2005.pdf
    complated/Manning - Hibernate Quickly (2006).pdf
    complated/Manning - Hibernate Quickly - 2005.pdf
    complated/Manning - Hibernate Quickly - Aug 2005.pdf
    complated/Manning - Spring in Action (2006).pdf
    complated/Manning-Hibernate In Action-2005.pdf
    complated/Manning.-.Java.Persistence.with.Hibernate.pdf
    complated/Manning.Hibernate.In.Action.2005.pdf
    complated/manual javascript.doc
    complated/Mastering EJB3.0 - 4th Ed.pdf
    complated/Myeclipse struts-hibernate-integration-tutorial-en.pdf
    complated/NHibernate O’Reilly.-.Hibernate.A.Developer’s.Notebook.(2004).[TeaM.DDU].-.[LinkoManija.LiB].chm
    complated/O’reilly - Hibernate - A Developers Notebook - 2004.pdf
    complated/O’Reilly - Hibernate A Developer’s Notebook.pdf
    complated/Persistence Layers In An Enterprise Application - An Evolution From Sql To Ojb To Hibernate.pdf
    complated/POJOs in Action - Developing Enterprise Applications with Lightweight Frameworks, (EJB 3.0, JDO 2.0, Hibernate 3.0), 1ed, (Manning, Jan 2006, 4.5).pdf
    complated/Pragmatic.Bookshelf.Rails.for.Java.Developers.rar
    complated/Professional Hibernate.pdf
    complated/Rails For Java Developers (2007).pdf
    complated/Robert Jordan - Wheel of Time Prequel - New Spring.rtf
    complated/Rolling with Ruby on Rails - Part 2.pdf
    complated/Ruby On Rails - A High-Productivity Web Application Framework(1).pdf
    complated/Ruby On Rails Cheatsheet (Oct.2005).pdf
    complated/Ruby Storm - Essence of Emerald (EC) (pdf).pdf
    complated/Sams.Agile.Java.Development.with.Spring.Hibernate.and.Eclipse.May.2006.chm
    complated/Sams.Agile.Java.Development.with.Spring.Hibernate.and.Eclipse.May.2006.doc
    complated/Sams.Agile.Java.Development.with.Spring.Hibernate.and.Eclipse.May.2006.pdf
    complated/Sams.Agile.Java.Development.with.Spring.Hibernate.and.Eclipse.May.2006_TAGGED.pdf
    complated/SAP Ruby on Rails with AJAX.pdf
    complated/Score For Viola - Violin Concerto In E - Spring (Op 8-1) (Vivaldi).pdf
    complated/Secrets Behind Ruby on Rails.pdf
    complated/Spring and JPA.pdf
    complated/Struts_Spring_Hibernate_Together(1).pdf
    complated/Struts_Spring_Hibernate_Together.pdf
    complated/tutorial-ejb3-jboss4.pdf
    complated/Using Hibernate with JBoss.doc
    complated/Using JasperReports with Hibernate.htm
    complated/Webmonkey Programming Ajax It’s Good For What Rails You.pdf
    complated/Wiley - Java Open Source Programming (with XDoclet, JUnit, WebWork, Hibernate) - 2004 !!! - (By Laxxuss).pdf
    complated/Wiley - Ruby on Rails For Dummies (2007).pdf
    complated/Wiley Java Open Source Programming with XDoclet, JUnit, WebWork, Hibernate.pdf
    complated/Wiley, Professional JavaScript for Web Developers (2005) DDU OCR 7.0-2.6 LotB.pdf
    complated/Wu - soa application with Struts, Spring, Hibernate, and Axis.pdf
    complated/XDoclet for Hibernate.rtf
    complated/[2006年新书和2本2005年经典书].Hibernate.In.Action.(2005,.Manning.Publications).pdf
    complated/[Apress, 2005] Pro Hibernate 3.pdf
    complated/[ebook] O’Reilly - Hibernate. A Developers Notebook.chm
    complated/[資料][軟件開發][Java][Hibernate][Spring][用Hibernate和Spring開發持久層].pdf
    complated/[资料][软件开发][Java][J2Ee][Hibernate][Practical.OR.Mapping.Hibernate].pdf
    complated/[资料][软件开发][Java][应用框架][Hibernate][Hibernate.2.1.2.Reference].pdf
    complated/用 Hibernate 和 Spring 开发持久层(1).doc
    complated/用 Hibernate 和 Spring 开发持久层.doc
    complated/论文 - 用 hibernate 和 spring 开发持久层.doc
    complated/郝威的技术中心 spring hibernate stuts acegi框架的使用经验.htm
    dl/gigaget.zip
    dl/xunlei.zip
    ibatis/iBatis In Action.Manning.pdf
    ibatis/Manning iBATIS in Action.pdf
    incoming/Changes in Functionality from Windows Server 2003 with SP1 to Windows Server 2008.doc
    incoming/Introducing Windows 2008 server.pdf
    incoming/Ok Windows Server 2008 Serial.txt
    incoming/Serial Activation Crack Microsoft Windows Server 2008 Beta Rc1 Rc2 Rc3 1 2 3 Read Me.txt
    incoming/serial windows server 2008.txt
    incoming/Windows Server 2008 Beta Serial.txt
    incoming/Windows Server 2008 Enterprice - Product Key(1).txt
    incoming/Windows Server 2008 Enterprice - Product Key(2).txt
    incoming/Windows Server 2008 Enterprice - Product Key.txt
    incoming/Windows Server 2008 Key.txt
    incoming/Windows Server 2008 RC0 中文版.txt
    incoming/Windows Server 2008 Serial 2.txt
    incoming/windows server 2008 serial(09.2007).txt
    incoming/windows server 2008 serial(1).txt
    incoming/Windows Server 2008 Serial(2).txt
    incoming/Windows Server 2008 Serial(3).txt
    incoming/Windows Server 2008 Serial(4).txt
    incoming/Windows Server 2008 Serial(5).txt
    incoming/Windows Server 2008 Serial(6).txt
    incoming/windows server 2008 serial(7).txt
    incoming/Windows Server 2008 Serial(8).txt
    incoming/windows server 2008 serial.txt
    incoming/Windows Server 2008 Sn.txt
    incoming/Windows Web Server 2008 Beta 3.txt
    java/(2007)Java Persistence With Hibernate, Revised Edition of Hibernate In Action.pdf
    java/AOP(1).pdf
    java/Develop A Transactional Persistence Layer Using Hibernate And Spring.zip
    java/ibatis in action Share Accelerator.zip
    java/ibatis in action.txt
    java/J2EE_projects_Maven_V1.1.pdf
    java/JAVA2007_iBATIS in Action.pdf
    java/jpa
    java/Manning - Hibernate In Action (2007).pdf
    java/Manning - Spring In Action (2nd Ed, August 2007).pdf
    java/Manning Ibatis In Action Jan 2007 Ebook-Bbl.rar
    java/Max Maven - Flaunting Five Fanciful Formulae.pdf
    java/Max Maven - Picture.pdf
    java/OReilly,.Maven.A.Developers.Notebook.(2005).BBL.LotB.chm
    java/servlets
    java/Wrox - Professional Java Tools for Extreme Programming, Ant, XDoclet, JUnit, Cactus, and Maven.chm
    java/jpa/Apress.Pro.EJB.3.Java.Persistence.API.May.2006.pdf
    java/jpa/Pro EJB3 Java Persistence API (Apress - May 2006).pdf
    java/servlets/Addison Wesley - More Servlets and JavaServer Pages (Servlet 2.3, JSP 1.2, JSTL) - 2001 - (By Laxxuss).pdf
    java/servlets/Helion - Java Servlet Programowanie.zip
    java/servlets/Java Framework-3-0 Source Code (EJB, JSP, Servlet, MVC, Struts, Spring, AJAX, web 2.0).zip
    java/servlets/Java Servlet & JSP Cookbook (2004).chm
    java/servlets/O’Reilly - Java Servlet & Jsp Cookbook - 2004 - (By Laxxuss).chm
    java/servlets/O’Reilly - Java Servlet & Jsp Cookbook - 2004 - (By Laxxuss).pdf
    java/servlets/O’Reilly - Java Servlet Programming (2nd edition).chm
    java/servlets/O’Reilly - Java Servlet Programming 2.0.pdf
    java/servlets/Oreilly Java Servlet And Jsp Cookbook.chm
    java/servlets/OReilly Java Servlet Programming.pdf
    java/servlets/Prentice Hall - Advanced JavaServer Pages (Servlet 2.2 and JSP 1.1) - 2001 - (By Laxxuss).pdf
    java/servlets/servlets.zip
    java/servlets/Tomcat 5 - Servlet 2.4 - JSP 2.0.zip
    java/servlets/[eBook] Servlet and JSP Programming with IBM WebSphere Studio and VisualAge for Java - RedBooks.pdf
    javascript/(Ebook - German) Mu?nz, Stefan & Nefzger, Wolfgang - Html & Web-Publishing Handbuch - Html, Javascript, Css, Dhtml.pdf
    javascript/(eBook) JavaScript - Java Script Bible 4th Edition - Hungry Minds.pdf
    javascript/(ebook) Programing - JavaScript Bible Gold.pdf
    javascript/(Ebook) Teach Yourself Javascript In A Week.pdf
    javascript/- Html It - Corso Completo Javascript.pdf
    javascript/Adobe, GoLive CS2 Official JavaScript Reference (2005) BBL LotB.chm
    javascript/Adobe, JavaScript Reference Guide.pdf
    javascript/Adobe.Press.Adobe.InDesign.CS2.Official.JavaScript.Reference.Oct.2005.chm
    javascript/Adobe.Press.Adobe.Photoshop.CS2.Official.JavaScript.Reference.Oct.2005.chm
    javascript/AJAX - Cleaning your website with AJAX - Creating Next-Generation, Highly Dynamic, Off-line Capable Web Applications with HTML and JavaScript.pdf
    javascript/AppDev - JavaScript Professional Skills Development.pdf
    javascript/Apress.Beginning.JavaScript.with.DOM.Scripting.and.Ajax.From.Novice.to.Professional.Jul.2006.pdf
    javascript/Cleaning Your Website With Ajax - Creating Next-Generation, Highly Dynamic, Off-Line Capable Web Applications With Html And Javascript.pdf
    javascript/Client-Side Javascript Guide.pdf
    javascript/Curso de Javascript espa?ol Spanishare.doc
    javascript/Curso Javascript Parte Ii.pdf
    javascript/Curso Manual Tutorial JavaScript con ejemplos.pdf
    javascript/DevGuru - All References - Wsh-VBScript-ADO-JetSQL-ASP-Javascript-XML-XSLT.chm
    javascript/DHTML - Modelos de objetos y Javascript.pdf
    javascript/DOC [Java Script] O’Reilly - JavaScript The Definitive Guide 2ed.pdf
    javascript/Ebook - Web - Javascript And DHTML Cookbook.chm
    javascript/eBook_JavaScript.Bible.Gold.Edition.ShareReactor.pdf
    javascript/For Dummies Javascript For Dummies 4Th Edition Nov 2004 Ebook-Ddu.pdf
    javascript/Formation Html et Javascript.pdf
    javascript/Guide de r_f. JavaScript.pdf
    javascript/HTML, JavaScript, CSS, DHTML.pdf
    javascript/IBM - Build apps using Asynchronous JavaScript with XML (AJAX).pdf
    javascript/Informatique- Cours De Javascript.pdf
    javascript/Java Wiley - JavaScript Bible , 5th Ed (1743 pages) - 2004.pdf
    javascript/JavaScript - Pocket Reference OReilly.chm
    javascript/Javascript - The Definitive Guide, 4th Edition (O’Reilly).chm
    javascript/Javascript avanzado - programación orientada a objetos.pdf
    javascript/Javascript Object-Oriented Programming Part 2 Sitepoint.pdf
    javascript/JavaScript Programming for the Absolute Beginner.pdf
    javascript/JavaScript Reference Guide.pdf
    javascript/JavaScript-JavaScript.for.dummies.quick.reference.pdf
    javascript/JavaScript.Examples.Bible.pdf
    javascript/John Wiley & Sons - Javascript Bible, 5th Edition.pdf
    javascript/MANUAL - Curso de JavaScript.pdf
    javascript/Manual Curso de DHTML_Hojas de estilo en CSS y Javascript.pdf
    javascript/McGraw.Hill.How.to.Do.Everything.with.JavaScript.eBook-DDU.pdf
    javascript/No.Starch.Press.The.Book.of.JavaScript.2nd.Edition.Dec.2006.pdf
    javascript/O’Reilly - Javascript - The Definitive Guide, 4th Edition.pdf
    javascript/O’reilly - Javascript And Dhtml Cookbook (2003, Chm).pdf
    javascript/Oreilly - Javascript - The Definitive Guide.chm
    javascript/Oreilly Javascript And Dhtml Cookbook 2003.pdf
    javascript/OReilly-.JavaScript.The.Definitive.Guide.pdf
    javascript/Painless JavaScript Using Prototype p1 _sitepoint.com.pdf
    javascript/Peachpit.Press.JavaScript.and.Ajax.for.the.Web.6th.Edition.Aug.2006.chm
    javascript/Prentice Hall - CSS, DHTML and JavaScript.pdf
    javascript/Prentice Hall - Javascript By Example (2003).chm
    javascript/Prentice.Hall.PTR.AJAX.Creating.Web.Pages.with.Asynchronous.JavaScript.and.XML.Aug.2006.pdf
    javascript/Prentice.Hall.PTR.Understanding.AJAX.Using.JavaScript.to.Create.Rich.Internet.Applications.Aug.2006.chm
    javascript/ReallyUsefulEbooks.com_0596527462_OReilly.Learning.JavaScript.Oct.2006.eBook-BBL.chm
    javascript/Server-Side JavaScript Guide.chm
    javascript/The Javascript Anthology 101 Essential Tips, Tricks & Hacks-Sample (2006 - Sitepoint).pdf
    javascript/WROX - ISBN 0764579088 - Professional JavaScript for Web Developers.pdf
    javascript/[@@@@@@] [Official Microsoft Reference JSCRIPT Javascript EcmaScript] (2006-07-03) script56.chm
    javascript/[ASP.NET,PHP,Javascript,Ajax].C-#.-.Wrox.-.Professional.ASP.NET.2.0.XML.-.2006.pdf
    javascript/[ASP.NET,PHP,Javascript,Ajax].Wiley.-.Wrox.Beginning.-.ASP.NET.2.0.(2006).Chris.Hart,.John.Kauffman,.David.Sussman,.Chris.Ullman.pdf
    javascript/[ASP.NET,PHP,Javascript,Ajax教程].Apress.-.Beginning.ASP.NET.2.0.in.C-#.2005.from.Novice.to.Professional.pdf
    javascript/[ASP.NET,PHP,Javascript,Ajax教程].ASP.NET.(C-#).pdf
    javascript/[ASP.NET,PHP,Javascript,Ajax教程].JavaScript.2005-.Wrox.-.Professional.Javascript.For.Web.Developers.pdf
    javascript/[ASP.NET,PHP,Javascript,Ajax教程].John.Wiley.and.Sons.JavaScript.in.10.Steps.or.Less.eBook-KB.pdf
    javascript/[ASP.NET,PHP,Javascript,Ajax教程].w100240.Wrox.-.Beginning.JavaScript.Second.Edition.chm
    javascript/[ASP.NET,PHP,Javascript,Ajax教程].Wrox.-.Beginning.Php,.Apache,.Mysql.Web.Development.(2004).pdf
    javascript/[ASP.NET,PHP,Javascript,Ajax教程].Wrox.Press.-.Professional.PHP.Programming.pdf
    javascript/[ebook - PDF] Java - JavaScript Bible Gold(2001).pdf
    javascript/[ITA] Javascript manuale.pdf
    javascript/[Java Script] Wrox Press - JavaScript Programmer’s Reference.pdf
    javascript/[Manuale] [unità1] - HTML.IT - Corso base JavaScript per esempi.pdf
    javascript/[O’Reilly]JavaScript The Definitive Guide.chm

  9. java读取纯真IP数据库QQwry.dat的源代码,要运行此程序必须有
    到网上下载QQwry.da,由于太大,我这里就不提供了。
    一、IPEntry.java
    /** *//** *
    * 一条IP范围记录,不仅包括国家和区域,也包括起始IP和结束IP *

     *
     * @author swallow */
    public class IPEntry …{
        public String beginIp;
        public String endIp;
        public String country;
        public String area;
       
        /** *//**
         * 构造函数
         */
       
     

     public IPEntry() …{
            beginIp = endIp = country = area = “”;
        }
       
        public String toString()…{
           retur        this.area+”  “+this.country+”IP范围:”+this.beginIp+”-”+this.endIp;
        }
       }
    二、Utils.java
    /**//*
     * Created on 2004-8-4
     *
     */


    import java.io.UnsupportedEncodingException;
    /** *//**
     * @author LJ-silver
     */
    public class Utils …{
        /** *//**
         * 从ip的字符串形式得到字节数组形式
         * @param ip 字符串形式的ip
         * @return 字节数组形式的ip
         */
        public static byte[] getIpByteArrayFromString(String ip) …{
            byte[] ret = new byte[4];
            java.util.StringTokenizer st = new java.util.StringTokenizer(ip, “.”);
            try …{
                ret[0] = (byte)(Integer.parseInt(st.nextToken()) & 0xFF);
                ret[1] = (byte)(Integer.parseInt(st.nextToken()) & 0xFF);
                ret[2] = (byte)(Integer.parseInt(st.nextToken()) & 0xFF);
                ret[3] = (byte)(Integer.parseInt(st.nextToken()) & 0xFF);
            } catch (Exception e) …{
                System.out.println(e.getMessage());
            }
            return ret;
        }
       
        public static void main(String args[])…{
             byte[] a=getIpByteArrayFromString(args[0]);
              for(int i=0;i< a.length;i++)
                    System.out.println(a[i]);
              System.out.println(getIpStringFromBytes(a));
        }
        /** *//**
         * 对原始字符串进行编码转换,如果失败,返回原始的字符串
         * @param s 原始字符串
         * @param srcEncoding 源编码方式
         * @param destEncoding 目标编码方式
         * @return 转换编码后的字符串,失败返回原始字符串
         */
        public static String getString(String s, String srcEncoding, String destEncoding) …{
            try …{
                return new String(s.getBytes(srcEncoding), destEncoding);
            } catch (UnsupportedEncodingException e) …{
                return s;
            }
        }
       
        /** *//**
         * 根据某种编码方式将字节数组转换成字符串
         * @param b 字节数组
         * @param encoding 编码方式
         * @return 如果encoding不支持,返回一个缺省编码的字符串
         */
        public static String getString(byte[] b, String encoding) …{
            try …{
                return new String(b, encoding);
            } catch (UnsupportedEncodingException e) …{
                return new String(b);
            }
        }
       
        /** *//**
         * 根据某种编码方式将字节数组转换成字符串
         * @param b 字节数组
         * @param offset 要转换的起始位置
         * @param len 要转换的长度
         * @param encoding 编码方式
         * @return 如果encoding不支持,返回一个缺省编码的字符串
         */
        public static String getString(byte[] b, int offset, int len, String encoding) …{
            try …{
                return new String(b, offset, len, encoding);
            } catch (UnsupportedEncodingException e) …{
                return new String(b, offset, len);
            }
        }
       
        /** *//**
         * @param ip ip的字节数组形式
         * @return 字符串形式的ip
         */
        public static String getIpStringFromBytes(byte[] ip) …{
            StringBuffer sb = new StringBuffer();
            sb.append(ip[0] & 0xFF);
            sb.append(’.’);      
            sb.append(ip[1] & 0xFF);
            sb.append(’.’);      
            sb.append(ip[2] & 0xFF);
            sb.append(’.’);      
            sb.append(ip[3] & 0xFF);
            return sb.toString();
        }
    }  
     
    三、IPSeeker.java
     *
    * LumaQQ - Java QQ Client
    *
    * Copyright (C) 2004 luma < stubma@163.com>
    *
    * 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 2 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, write to the Free Software
    * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
    */
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.RandomAccessFile;
    import java.nio.ByteOrder;
    import java.nio.MappedByteBuffer;
    import java.nio.channels.FileChannel;
    import java.util.ArrayList;
    import java.util.Hashtable;
    import java.util.List;
    /** *//**
     *  * 用来读取QQwry.dat文件,以根据ip获得好友位置,QQwry.dat的格式是
     * 一. 文件头,共8字节
     *        1. 第一个起始IP的绝对偏移, 4字节
     *     2. 最后一个起始IP的绝对偏移, 4字节
     * 二. “结束地址/国家/区域”记录区
     *     四字节ip地址后跟的每一条记录分成两个部分
     *     1. 国家记录
     *     2. 地区记录
     *     但是地区记录是不一定有的。而且国家记录和地区记录都有两种形式
     *     1. 以0结束的字符串
     *     2. 4个字节,一个字节可能为0×1或0×2
     *           a. 为0×1时,表示在绝对偏移后还跟着一个区域的记录,注意是绝对偏移之后,而不是这四个字节之后
     *        b. 为0×2时,表示在绝对偏移后没有区域记录
     *        不管为0×1还是0×2,后三个字节都是实际国家名的文件内绝对偏移
     *           如果是地区记录,0×1和0×2的含义不明,但是如果出现这两个字节,也肯定是跟着3个字节偏移,如果不是
     *        则为0结尾字符串
     * 三. “起始地址/结束地址偏移”记录区
     *     1. 每条记录7字节,按照起始地址从小到大排列
     *        a. 起始IP地址,4字节
     *        b. 结束ip地址的绝对偏移,3字节
     *
     * 注意,这个文件里的ip地址和所有的偏移量均采用little-endian格式,而java是采用
     * big-endian格式的,要注意转换
     *
     *
     * @author 马若劼
     */
    public class IPSeeker …{
        /** *//**
         *      * 用来封装ip相关信息,目前只有两个字段,ip所在的国家和地区
         *
         *
         * @author swallow     */
        private class IPLocation …{
            public String country;
            public String area;

            public IPLocation() …{
                country = area = “”;
            }

            public IPLocation getCopy() …{
                IPLocation ret = new IPLocation();
                ret.country = country;
                ret.area = area;
                return ret;
            }
        }

        private static final String IP_FILE = IPSeeker.class.getResource(”/QQWry.dat”).toString().substring(5);

        // 一些固定常量,比如记录长度等等
        private static final int IP_RECORD_LENGTH = 7;
        private static final byte AREA_FOLLOWED = 0×01;
        private static final byte NO_AREA = 0×2;

         // 用来做为cache,查询一个ip时首先查看cache,以减少不必要的重复查找
        private Hashtable ipCache;
        // 随机文件访问类
        private RandomAccessFile ipFile;
        // 内存映射文件
        private MappedByteBuffer mbb;
        // 单一模式实例
        private static IPSeeker instance = new IPSeeker();
        // 起始地区的开始和结束的绝对偏移
        private long ipBegin, ipEnd;
        // 为提高效率而采用的临时变量
        private IPLocation loc;
        private byte[] buf;
        private byte[] b4;
        private byte[] b3;

        /** *//**
         * 私有构造函数
         */
        private IPSeeker()  …{
            ipCache = new Hashtable();
            loc = new IPLocation();
            buf = new byte[100];
            b4 = new byte[4];
            b3 = new byte[3];
            try …{
                ipFile = new RandomAccessFile(IP_FILE, “r”);
            } catch (FileNotFoundException e) …{
                            System.out.println(IPSeeker.class.getResource(”/QQWry.dat”).toString());
                            System.out.println(IP_FILE);
                System.out.println(”IP地址信息文件没有找到,IP显示功能将无法使用”);
                ipFile = null;

            }
            // 如果打开文件成功,读取文件头信息
            if(ipFile != null) …{
                try …{
                    ipBegin = readLong4(0);
                    ipEnd = readLong4(4);
                    if(ipBegin == -1 || ipEnd == -1) …{
                        ipFile.close();
                        ipFile = null;
                    }
                } catch (IOException e) …{
                    System.out.println(”IP地址信息文件格式有错误,IP显示功能将无法使用”);
                    ipFile = null;
                }
            }
        }

        /** *//**
         * @return 单一实例
         */
        public static IPSeeker getInstance() …{
            return instance;
        }

        /** *//**
         * 给定一个地点的不完全名字,得到一系列包含s子串的IP范围记录
         * @param s 地点子串
         * @return 包含IPEntry类型的List
         */
        public List getIPEntriesDebug(String s) …{
            List ret = new ArrayList();
            long endOffset = ipEnd + 4;
            for(long offset = ipBegin + 4; offset <= endOffset; offset += IP_RECORD_LENGTH) …{
                // 读取结束IP偏移
                long temp = readLong3(offset);
                // 如果temp不等于-1,读取IP的地点信息
                if(temp != -1) …{
                    IPLocation loc = getIPLocation(temp);
                    // 判断是否这个地点里面包含了s子串,如果包含了,添加这个记录到List中,如果没有,继续
                    if(loc.country.indexOf(s) != -1 || loc.area.indexOf(s) != -1) …{
                        IPEntry entry = new IPEntry();
                        entry.country = loc.country;
                        entry.area = loc.area;
                        // 得到起始IP
                        readIP(offset - 4, b4);
                        entry.beginIp = Utils.getIpStringFromBytes(b4);
                        // 得到结束IP
                        readIP(temp, b4);
                        entry.endIp = Utils.getIpStringFromBytes(b4);
                        // 添加该记录
                        ret.add(entry);
                    }
                }
            }
            return ret;
        }

        /** *//**
         * 给定一个地点的不完全名字,得到一系列包含s子串的IP范围记录
         * @param s 地点子串
         * @return 包含IPEntry类型的List
         */
        public List getIPEntries(String s) …{
            List ret = new ArrayList();
            try …{
                // 映射IP信息文件到内存中
                if(mbb == null) …{
                    FileChannel fc = ipFile.getChannel();
                    mbb = fc.map(FileChannel.MapMode.READ_ONLY, 0, ipFile.length());
                    mbb.order(ByteOrder.LITTLE_ENDIAN);
                }

                int endOffset = (int)ipEnd;
                for(int offset = (int)ipBegin + 4; offset <= endOffset; offset += IP_RECORD_LENGTH) …{
                    int temp = readInt3(offset);
                    if(temp != -1) …{
                        IPLocation loc = getIPLocation(temp);
                        // 判断是否这个地点里面包含了s子串,如果包含了,添加这个记录到List中,如果没有,继续
                        if(loc.country.indexOf(s) != -1 || loc.area.indexOf(s) != -1) …{
                            IPEntry entry = new IPEntry();
                            entry.country = loc.country;
                            entry.area = loc.area;
                            // 得到起始IP
                            readIP(offset - 4, b4);
                            entry.beginIp = Utils.getIpStringFromBytes(b4);
                            // 得到结束IP
                            readIP(temp, b4);
                            entry.endIp = Utils.getIpStringFromBytes(b4);
                            // 添加该记录
                            ret.add(entry);
                        }
                    }
                }
            } catch (IOException e) …{
                System.out.println(e.getMessage());
            }
            return ret;
        }

        /** *//**
         * 从内存映射文件的offset位置开始的3个字节读取一个int
         * @param offset
         * @return
         */
        private int readInt3(int offset) …{
            mbb.position(offset);
            return mbb.getInt() & 0×00FFFFFF;
        }

        /** *//**
         * 从内存映射文件的当前位置开始的3个字节读取一个int
         * @return
         */
        private int readInt3() …{
            return mbb.getInt() & 0×00FFFFFF;
        }

        /** *//**
         * 根据IP得到国家名
         * @param ip ip的字节数组形式
         * @return 国家名字符串
         */
        public String getCountry(byte[] ip) …{
            // 检查ip地址文件是否正常
            if(ipFile == null) return “错误的IP数据库文件”;
            // 保存ip,转换ip字节数组为字符串形式
            String ipStr = Utils.getIpStringFromBytes(ip);
            // 先检查cache中是否已经包含有这个ip的结果,没有再搜索文件
            if(ipCache.containsKey(ipStr)) …{
                IPLocation loc = (IPLocation)ipCache.get(ipStr);
                return loc.country;
            } else …{
                IPLocation loc = getIPLocation(ip);
                ipCache.put(ipStr, loc.getCopy());
                return loc.country;
            }
        }

        /** *//**
         * 根据IP得到国家名
         * @param ip IP的字符串形式
         * @return 国家名字符串
         */
        public String getCountry(String ip) …{
            return getCountry(Utils.getIpByteArrayFromString(ip));
        }

        /** *//**
         * 根据IP得到地区名
         * @param ip ip的字节数组形式
         * @return 地区名字符串
         */
        public String getArea(byte[] ip) …{
            // 检查ip地址文件是否正常
            if(ipFile == null) return “错误的IP数据库文件”;
            // 保存ip,转换ip字节数组为字符串形式
            String ipStr = Utils.getIpStringFromBytes(ip);
            // 先检查cache中是否已经包含有这个ip的结果,没有再搜索文件
            if(ipCache.containsKey(ipStr)) …{
                IPLocation loc = (IPLocation)ipCache.get(ipStr);
                return loc.area;
            } else …{
                IPLocation loc = getIPLocation(ip);
                ipCache.put(ipStr, loc.getCopy());
                return loc.area;
            }
        }

        /** *//**
         * 根据IP得到地区名
         * @param ip IP的字符串形式
         * @return 地区名字符串
         */
        public String getArea(String ip) …{
            return getArea(Utils.getIpByteArrayFromString(ip));
        }

        /** *//**
         * 根据ip搜索ip信息文件,得到IPLocation结构,所搜索的ip参数从类成员ip中得到
         * @param ip 要查询的IP
         * @return IPLocation结构
         */
        private IPLocation getIPLocation(byte[] ip) …{
            IPLocation info = null;
            long offset = locateIP(ip);
            if(offset != -1)
                info = getIPLocation(offset);
            if(info == null) …{
                info = new IPLocation();
                info.country = “未知国家”;
                info.area = “未知地区”;
            }
            return info;
        }

        /** *//**
         * 从offset位置读取4个字节为一个long,因为java为big-endian格式,所以没办法
         * 用了这么一个函数来做转换
         * @param offset
         * @return 读取的long值,返回-1表示读取文件失败
         */
        private long readLong4(long offset) …{
            long ret = 0;
            try …{
                ipFile.seek(offset);
                ret |= (ipFile.readByte() & 0xFF);
                ret |= ((ipFile.readByte() << 8) & 0xFF00);
                ret |= ((ipFile.readByte() << 16) & 0xFF0000);
                ret |= ((ipFile.readByte() << 24) & 0xFF000000);
                return ret;
            } catch (IOException e) …{
                return -1;
            }
        }

        /** *//**
         * 从offset位置读取3个字节为一个long,因为java为big-endian格式,所以没办法
         * 用了这么一个函数来做转换
         * @param offset
         * @return 读取的long值,返回-1表示读取文件失败
         */
        private long readLong3(long offset) …{
            long ret = 0;
            try …{
                ipFile.seek(offset);
                ipFile.readFully(b3);
                ret |= (b3[0] & 0xFF);
                ret |= ((b3[1] << 8) & 0xFF00);
                ret |= ((b3[2] << 16) & 0xFF0000);
                return ret;
            } catch (IOException e) …{
                return -1;
            }
        }

        /** *//**
         * 从当前位置读取3个字节转换成long
         * @return
         */
        private long readLong3() …{
            long ret = 0;
            try …{
                ipFile.readFully(b3);
                ret |= (b3[0] & 0xFF);
                ret |= ((b3[1] << 8) & 0xFF00);
                ret |= ((b3[2] << 16) & 0xFF0000);
                return ret;
            } catch (IOException e) …{
                return -1;
            }
        }

        /** *//**
         * 从offset位置读取四个字节的ip地址放入ip数组中,读取后的ip为big-endian格式,但是
         * 文件中是little-endian形式,将会进行转换
         * @param offset
         * @param ip
         */
        private void readIP(long offset, byte[] ip) …{
            try …{
                ipFile.seek(offset);
                ipFile.readFully(ip);
                byte temp = ip[0];
                ip[0] = ip[3];
                ip[3] = temp;
                temp = ip[1];
                ip[1] = ip[2];
                ip[2] = temp;
            } catch (IOException e) …{
                System.out.println(e.getMessage());
            }
        }

        /** *//**
         * 从offset位置读取四个字节的ip地址放入ip数组中,读取后的ip为big-endian格式,但是
         * 文件中是little-endian形式,将会进行转换
         * @param offset
         * @param ip
         */
        private void readIP(int offset, byte[] ip) …{
            mbb.position(offset);
            mbb.get(ip);
            byte temp = ip[0];
            ip[0] = ip[3];
            ip[3] = temp;
            temp = ip[1];
            ip[1] = ip[2];
            ip[2] = temp;
        }

        /** *//**
         * 把类成员ip和beginIp比较,注意这个beginIp是big-endian的
         * @param ip 要查询的IP
         * @param beginIp 和被查询IP相比较的IP
         * @return 相等返回0,ip大于beginIp则返回1,小于返回-1。
         */
        p