text:
HomeEnglish contentExpert tip: how to correct the soil for growing corn?
Expert tip: how to correct the soil for growing corn?
See what the consequences of soil acidity are in maize culture and find out what the expert's recommendations are to correct this problem.
Redação Agrishow | 27 Abr, 2021
Corn is the second largest crop of importance in agricultural production in Brazil, being surpassed only by soy that leads grain production in the country. The 2019/2020 Brazilian crop closed with a production of 101 million tons, according to the Department of Agriculture of the USA (USDA).
However, corn producers live with challenges related to soil quality, because most of the Brazilian soils have low natural fertility, with acidity conditions that limit the expression of the productive potential of corn cultivars, used by farmers.
It is worth mentioning that corn is classified as being of medium tolerance to the acidity and toxicity conditions of aluminum, requiring for this the adoption of managements that aim to correct the soil for corn cultivation.
For this reason, we have the participation of Embrapa Corn and Sorghum researcher, Álvaro Vilela de Resende, to understand more about the acidity of the soil and the tips to correct this problem.
Soil acidity: what are the consequences for corn?
The process of soil acidity has been going on for centuries. But, in a simplified way, Resende explains that, during the long weathering process that led to the formation of Brazilian soils, the substrate derived from the rocks lost the basic character elements (Ca, Mg and K), with aluminum (Al ).
"This, in addition to expressing an acid character, contributed to the reduction of soil pH, causing toxicity to crops in general. The higher the saturation by Al in the soil, the greater the difficulty for plants to develop roots and explore the profile for nutrient and water absorption ", adds the researcher.
Therefore, soil acidity may involve a combination of three problems:
pH in water less than 5.5;
Ca and / or Mg deficiency; and
Al toxicity.
In the most critical conditions of these problems, the development of the crop is totally compromised, as seen in the figure below, which represents an experimental area at Embrapa Cerrados that presents high soil acidity.
The researcher also explains that, in practice, producers have to deal with more pronounced acidity in the first years after the opening of the area or the conversion of degraded pasture into crops, especially in the Cerrado region.
But, he points out that the consolidated cultivation areas, which have already received applications of corrective materials, are also subject to reacidification. "Any crop tends to have some degree of acidity in the soil, and the challenge is to maintain a continuous process of diagnosis and control measures", he recommends.
Main errors related to soil correction. How to avoid them?
Corn, like most annual crops, thrives best when the pH in water is above 5.5. "After this pH value, the problem of aluminum toxicity is usually solved," says Resende. In addition, the soil must also have adequate levels of Ca and Mg.
However, the researcher points out that in the desire to reach this pH, many producers make some mistakes, in case the limestone is not reapplied after a certain period of time. "It is common for the producer to apply lime once and spend a lot of time without reapplying it," he says.
Still according to the researcher, liming with well done incorporation (use of plowing and harrowing) may be enough to control acidity for up to three years or more. However, the more intensive the cultivation of the area, the shorter the residual liming effect will be.
In this case, the recommendation of the researcher at Embrapa Milho e Sorgo is to adopt a monitoring work with sampling and more frequent analysis of the soil.
"In no-tillage, this monitoring must be even more careful, since as it is no longer possible to incorporate correctives (absence of soil preparation) and the lime distributed on the soil surface takes longer to react and have an in-depth effect on the profile, it can be to say that the control of acidity must be preventive ", he points out.
Thus, the researcher recommends that the soil under no-tillage should receive periodic applications of lime so that, over time, the reaction and deepening of the alkalinization front will occur, in order to keep the 0-20 cm layer properly corrected. Plaster, on the other hand, presents greater mobility in the profile and acts to improve the root environment in the subsurface.
Another important precaution is to calculate the amount of limestone or plaster to be applied according to the most used methods in the region and according to the indicators of the soil analysis. "Under or overestimated dosages can result in low technical and economic efficiency", comments Resende.
Resende also stresses that the uniform distribution of corrective agents is not an easy task. "As these materials are almost always fine and there is a lot of dust production, poorly regulated equipment or the occurrence of strong wind during application can lose all the effort of the producer to homogenize the crop in an ideal level of acidity control".
And the researcher concludes: "Although they often go unnoticed, problems of this nature reduce the overall productivity of the field, and care is needed to minimize these failures when looking for the conditioning of environments with high productive potential".
What if the agrochemicals used in your production had Artificial Intelligence?
Startups: how to become accredited at MAPA for tests on agricultural products?
30% more productivity with high technology greenhouse planting
Suggestions to correct soil acidity and produce more


0 | 16 students enrolled.
Fundamental Analysis of Commodities online course is a must for anyone who wishes to see him or herself as a professional commodities trader. Unlike other asset classes, commodities market is one such market, where-in one needs to know and understand the fundamental workings of the assets. Demand-supply mechanism, seasonality and government policies have a deeper impact on the workings of the commodity market than any other market. Fundamental commodity analysis is how traders understand the big picture. It is how they maintain a sense of perspective in commodities markets. This programme emphasises on these aspects and lays down a perfect platform for any student in the commodity market.
Understand what is commodity analysis, what moves the markets and how one should strategies one's trading decision.
After successful completion of the course, the students will get a "Certificate of Completion"
Common mistakes in Fundamental Analysis to avoid.
Once the student successfully clears the examination, the certificate of completition will be genrated.


text:
Sri S. Satchidananda
About Sri S. Satchidananda
Sri Swami Satchidananda was one of the first Yoga masters to bring the classical Yoga tradition to the West. He taught Yoga postures, meditation, and a vegetarian and more compassionate lifestyle to Westerners when he was invited to America in 1966 by the iconic pop artist Peter Max. The distinctive teachings he brought with him blend the physical discipline of Yoga, the spiritual philosophy of Vedic literature, and the interfaith ideals he pioneered. These techniques and concepts influenced a generation and a spawned Yoga culture that is flourishing today. The organization founded on his teachings, Integral Yoga International, is now a leading institute for Yoga teacher certification. Integral Yoga is the foundation for Dr. Dean Ornish's landmark work in reversing heart disease and Dr. Michael Lerner's noted Commonweal Cancer Help program. He is the author of many books on Yoga and is the subject of the 2008 documentary, Living Yoga.
Eknath Easwaran
Deborah Adele
Jaganath Carrera
B. K. S. Iyengar
Swami Satyananda Saraswati
Nischala Joy Devi
Yoga Publications Trust
Rolf Gates
Kelly Solloway
Samantha Stutzman
Mark Stephens
Stephen Mitchell
Sri Swami Satchidananda
Yogi Bhajan
Swami Prabhavananda
Susan Verde
Swami Sri Yukteswar
T. K. V. Desikachar
Graham Coleman
Michael A. Singer
Daniel DiTuro
Books By Sri S. Satchidananda
All Formats Large Print Kindle Edition Audible Audio Edition Hardcover See more Sort by: Popularity Popularity Price: Low to High Price: High to Low Avg. Customer Review Publication Date Sort by:Popularity
The Yoga Sutras of Patanjali (Large Print) 26/01/2017
by Patanjali
$15.16 2 Used & New offers

redpajama_set_name: RedPajamaCommonCrawl


2006-02-24 Assigned to MICROSOFT CORPORATION reassignment MICROSOFT CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HATLELID, KRISTJAN E.
A first computer process has code including at least one triggering device, and a digital license corresponding to the first process sets forth terms and conditions for operating same. A second computer process proxy-executes code corresponding to each triggering device of the first process on behalf of same. The second process includes a license evaluator for evaluating the license to determining that the first process is to be operated in accordance with the terms and conditions set forth in such license. A third computer process includes the code corresponding to each triggering device of the first process and an address of the triggering device in the first process. Thus, the first process is dependent on and cannot be operated without the second process and the third process.
The present application is a continuation-in-part of prior application Ser. No. 10/681,017, filed Oct. 8, 2003 and hereby incorporated by reference in its entirety.
This invention relates to a first process on a computer and a second process on the computer that executes code on behalf of and as a proxy for such first process. More particularly, the invention relates to a security process on the computer that proxy-executes the code on behalf of an application process only if the security process is satisfied based on a license or the like that the application process is entitled to be operating on the computer.
A computer application distributor wishes to distribute such computer application to each of many users or recipients in exchange for a license fee or some other consideration. However, such distributor typically also wishes to restrict what each user or recipient can do with such distributed computer application. For example, the distributor would like to restrict the user from copying and re-distributing such application to a second user, at least in a manner that denies the distributor a license fee from such second user.
In addition, the distributor may wish to provide the user with the flexibility to purchase different types of use licenses at different license fees, while at the same time holding the user to the terms of whatever type of license is in fact purchased. For example, the distributor may wish to allow the application to be executed only a limited number of times, only for a certain total time, only on a certain type of machine, only on a certain type of rendering platform, only by a certain type of user, etc. Likewise, the distributor may wish to allow one user to pay a smaller license fee and access a smaller set of application functions and also to allow another user to pay a larger license fee and access a larger set of application functions, and the like.
However, after distribution has occurred, such distributor has very little if any control over the distributed application. This is especially problematic in view of the fact that the application may be copied and re-distributed to most any personal computer, presuming that the application is not otherwise protected in some manner from such copying and re-distribution. As should be appreciated, most any such personal computer includes the software and hardware necessary to make an exact digital copy of such application, and to download such exact digital copy to a write-able magnetic or optical disk, or to send such exact digital copy over a network such as the Internet to any destination.
Of course, as part of a transaction wherein the application is distributed, the distributor may require the user/recipient of the application to promise not to re-distribute such application in an unwelcome manner. However, such a promise is easily made and easily broken. A distributor may therefore attempt to prevent such re-distribution through any of several known security measures.
One such security measure is product activation. In such product activation, a customer acquiring a software application is provided with a product activation key corresponding thereto, which is a unique serial number and product identifier that acts as a proof of purchase or the like. The provided product key is then entered during installation of the application on a particular computer device to act as a proffer that the application was acquired legally and/or otherwise properly. The product activation key need not be and typically is not cryptographic in nature, although a digital signature (which is cryptographic in nature) may be included to act as a guarantee that the product key is genuine.
The entered product key and an ID representative of the computer device are then sent to a product activation service as part of the installation process. As may be appreciated, the product activation service determines whether the entered product key is valid, whether the product key has been employed before, and if so in connection with what computer device. Typically, each product key enables an installation or re-installation of the application on a single computing device, as is set forth in a corresponding license agreement, although a product key may also enable a set number of installations/re-installations on multiple computer devices also.
Accordingly, if the product activation service determines that the entered product key has already been employed to install the application on another computer device (or has been employed a maximum number of times, for example), such activation service will not allow the installation of the application on the computer device to proceed, will not allow a complete installation of the application on the computer device, will not allow the installed application to be used on the computer device, or the like, as the case maybe. Thus, activation as used herein may entail permission to install the application, permission to perform some level of installation of the application, permission to completely install the application, some level of permission to use the application, complete permission to use the application, or the like.
If the activation service declines to activate the application for the customer based on an entered product key already being used in connection with another computing device, or based on the entered product key not supporting the level of activation desired, the customer must acquire another appropriate product key to install/completely install/use the application on the computing device in the manner desired. Thus, the product key and the product activation service act to ensure that the application is not nefariously or wantonly installed/activated/used on multiple computing devices, such as may be in violation of any software license agreement associated with the software product.
Note that as part of the activation process, the activation service may return a digital version of the license to the computing device on which the application is associated. Such license may be tied to the computing device such that the license is not usable with any other computing device, and may express a level of activation, as well as license terms such as application functions that are to be made available, functions that are to be made non-available, a period of activation or a number of times the application may be executed on the computing device, and the like. In general, such license may express any limitations and/or rights and also may express any policies that should be honored in connection with the execution of the application on the computing device, all as set forth by the distributor of the application or another entity.
With such license, then, a rights client controller with a license evaluator or the like may be employed on the computer along with the distributed application to control operation and use of the application based on an evaluation of whether the license so permits. However, a need exists for an actual method and mechanism by which such rights client with such license evaluator may in fact control operation and use of the application based on the license. In particular, a need exists for such a rights client with such a license evaluator that executes certain portions of code on behalf of and as a proxy for the application, but only if the license evaluator determines that the license allows such execution.
While in one case the portions of code are associated with the application, it is to be appreciated that in another case the portions of code are associated with another entity, such as another application or executable. Thus, the (first) application cannot be run outside of the presence of the (second) application or executable. Accordingly, a need exists for such a rights client with such a license evaluator that executes certain portions of code associated with the second application on behalf of the first application and as a proxy for such first application, but only if the license evaluator determines that the license allows such execution.
The aforementioned needs are satisfied at least in part by the present invention in which a computer has a first process with code to be executed in connection therewith, where the code includes at least one triggering device, and a digital license corresponding to the first process, where the license sets forth terms and conditions for operating the first process. A second process operating on the computer proxy-executes code corresponding to each triggering device of the first process on behalf of such first process. The second process includes a license evaluator for evaluating the license to determine whether the first process is to be operated in accordance with the terms and conditions set forth in such license, and the second process chooses whether to in fact proxy-execute the code corresponding to each triggering device of the first process on behalf of such first process based at least in part on whether the license evaluator has determined that the first process is to be operated in accordance with the terms and conditions of the license.
A third process includes the code corresponding to each triggering device of the first process and an address of the triggering device in the first process. Thus, the first process is dependent on and cannot be operated without the second process and the third process.
FIG. 5 is a flow diagram showing key steps performed to develop the first process of FIG. 3 in accordance with one embodiment of the present invention.
FIG. 8 is a flow diagram showing key steps performed to develop the first and third processes of FIG. 6 in accordance with another embodiment of the present invention.
In the present invention, a rights client with a license evaluator and in connection with a product activation service controls operation and use of an application based on a corresponding license by executing code on behalf of and as a proxy for an application, but only if the license evaluator determines that the license allows such execution. Thus, the rights client with the license evaluator enforces the license as against a user of the application.
As may be appreciated, although the present invention is disclosed primarily in terms of the rights client with the license evaluator, the application, the license, and the product activation service, such present invention may also be employed in connection with alternate elements without departing from the spirit and scope of the present invention. For example, the application may instead be any application or type of process running on a computer, including a program, an operating system, and the like, or even a piece of digital content such as an audio recording or multimedia presentation. Similarly, the license may instead be any sort of permission token, with or without specific permission parameters, and the license evaluator may instead be any kind of device for evaluating such a permission token. Likewise, the product activation service may instead be any variety of permission-granting authority, and the rights client may instead be any variety of controlling authority that can also proxy-execute code. Accordingly, and more generally, in the present invention, a second process on a computer controls the operation and use of a first process on a computer by executing code on behalf of and as a proxy for the first process.
Turning now to FIG. 3, it is seen that in one embodiment of the present invention, a first process such as an application 30 is dependent upon a second process such as a rights client 32 to proxy execute at least some portion of code for the application 30, where the rights client 32 includes a license evaluator 34 or the like. Accordingly, the rights client 32 may choose whether to in fact proxy execute the code for the application 30 based, among other things, on whether the license evaluator 34 has access to a license 36 corresponding to the application 30, and on whether the license 36 has permissions or rights that allow or at least do not prohibit the action corresponding to the code to be executed. Note that such a license 36 and the license evaluation 34 of the rights client 32 are known or should be apparent to the relevant public and therefore need not be disclosed herein in any detail.
In one embodiment of the present invention, and referring now to FIG. 4, the application 30, rights client 32, and license evaluator 34 are constructed to operate on a computer 110 (FIG. 1) or the like as follows. Typically, either a user or another process on the computer 110 instantiates the application 30 on such computer 110 as the aforementioned first process (step 401), and as part of an initializing process such application 30 ensures that the rights client 32 with the license evaluator 34 (hereinafter, 'rights client 32') is instantiated on the computer 110 as the aforementioned second process (step 403). Thereafter, the application 30 establishes a connection with the rights client 32 (step 405). Note that it may be the case that the rights client 32 is already instantiated or it may be the case the rights client 32 must be newly instantiated, either by the application 30, another process, the user, or the like.
Once step 405 is performed, and presuming that a license 36 corresponding to the application 30 is available to the rights client 32 and the license evaluator 34 thereof, the application 30 can query the rights client 32 to have the license evaluator 34 thereof determine based on the license 36 the rights the application 30 has based on such license 36, and the application 30 can then operate based on such rights. However, it is to be appreciated that a nefarious entity wishing to subvert the license 36 might choose to attack the application 30 by re-directing the query to a stub rights client that would in effect grant all rights to the application 30 without regard to any license 36, present or otherwise. Alternatively, such a nefarious entity might choose to spoof communications between the application 30 and the rights client 32 or may wish to attack the rights client 32 itself if the application 30 cannot be attacked. Note, though, that the latter case is less likely inasmuch as the rights client 32 should be highly secure and protected from such an attack.
Accordingly, and in one embodiment of the present invention, the rights client 32 is required to proxy-execute at least some portions of code on behalf of the application 30 so that the application is dependent on the rights client 32. Put another way, by requiring the rights client 32 to proxy-execute at least some portion of code on behalf of the application 30, the aforementioned nefarious entity cannot subvert the license 36 by somehow removing the rights client 32 from participating in the method of FIG. 4. Instead, the rights client 32 must participate to proxy-execute code on behalf of the application 30, and while doing so the license evaluator 34 of the rights client 32 can also perform evaluation functions with regard to the license 36. Thus the rights client 32 does not merely provide the application 30 with a true or false type of response that could be spoofed.
In one embodiment of the present invention, the license 36 includes encoded information regarding the code that the rights client 32 is to proxy-execute. Thus, the license 36 must be available to the rights client 32 for same to proxy-execute on behalf of the application 30. For example, the encoded information may include the code, a reference to a location of the code, a decryption key for decrypting an encrypted version of the code, or the like.
As should now be appreciated, in order to effectuate proxy-execution, the application 30 must be pre-processed to define the code that is to be proxy-executed, to remove same from such application 30, and to appropriately store such removed code in a form proxy-executable by the rights client 32. In one embodiment of the present invention, then, and turning now to FIG. 5, a method of pre-processing the application 30 to effectuate proxy-execution is shown.
Preliminarily, and as may be appreciated, a developer develops source code 38 (FIG. 3) for the application 30 in an appropriate programming language, such as for example a C-type programming language (step 501). In doing so, and significantly, the developer identifies within such source code 38 for the application 30 each of one or more code sections that is to be proxy-executed (step 503). As may be appreciated, each such proxy-executed code section identification may comprise any appropriate mark, tag, command, or the like without departing from the spirit and scope of the present invention. Thereafter, the developer compiles the source code 38 with a compiler 40 into machine code 42 (step 505).
Note that the developer may identify each code section within the source code 38 based on any particular criteria without departing from the spirit and scope of the present invention. For example, if the developer merely wishes to trigger proxy-execution from time to time so as to ensure the rights client 32 is present and is allowing the application 30 to operate based on a corresponding license 36, each such identified code section may be decided upon in a fairly random manner. However, if the developer wishes to trigger proxy-execution at specific times and/or with regard to specific sections of code, each such identified code section must be decided upon in a more targeted manner. Note with regard to the latter that it may be the case that an identified code section specifies a particular license right. In such a situation, it may also be the case that the rights client 32 will proxy-execute such identified code section only if the specified license right in the license 36 is met.
As may be appreciated, the compiler 40 may be any appropriate compiler without departing from the spirit and scope of the present invention. Significantly, the compiler 40 is constructed to maintain each code section identification in the machine code 42 so that post-compile processing may be performed on the code section identified thereby. Such maintaining may be performed in any appropriate manner without departing from the spirit and scope of the present invention. For example, the compiler 40 may pass the identification from the source code 38 to the machine code 42 in a recognizable form, or may create a scratch table (not shown) with such information therein.
Thus, and in one embodiment of the present invention, after such compiling, the developer post-compiles the machine code 42 with each recognizable code section identification therein with a post-compiler 44 into the final code representative of the application 30, where the post-compiler 44 converts each identified code section into a form accessible only by the rights client 32 and not by the application 30, such as for example by removing each identified code section in the machine code 42 from such application 30 or otherwise makes such identified code section inaccessible (step 507). As may be appreciated, such post-compiler 44 is constructed to retrieve each code section identification, either from the machine code 42, the aforementioned scratch table, or elsewhere, and operate based thereon.
In one embodiment of the present invention, for each identified code section in the machine code 42, the post-compiler 44 removes the identified code section from the machine code 42 (step 507 a), replaces the removed code section with a triggering device (step 507 b), notes an address of the triggering device within the application 30 (step 507 c), and stores the removed code section and the noted address in a table 46 (FIG. 3) or the like (step 507 e). If necessary or advisable, each removed code section may be stored in the table 46 in an encrypted form decryptable by the rights client 32 (step 507 d). As was set forth above, such table 46 may be made available to the rights client 32 by being set forth in the license 36, or by being set forth in another location. Note that the table 46 may be signed or otherwise protected from alteration by a verifying device such as a hash.
As may be appreciated, by replacing the removed code section with the triggering device, and presuming that the triggering device is shorter than the removed code section, the post-compiler 44 shortens the machine code 42. Note that the triggering device may be any appropriate triggering device without departing from the spirit and scope of the present invention, as long as the triggering device is recognizable as a signal that the rights client 32 is needed to proxy-execute the corresponding removed code section. For example the triggering device may be a particular exception that would get the attention of the rights client 32.
After the post-compiler 44 is finished, and as should now be appreciated, such post-compiler 44 outputs final code representative of the application 30 (hereinafter, 'the application 30') and the table 46 (step 509). As was set forth above, such table 46 may be made available to the rights client 32 by being set forth in the license 36, or by being set forth in another location separate from the application 30. It may for example be the case that the table 46 with encrypted removed code sections therein is placed in the license 36 along with a decryption key for decrypting each encrypted code section, where the decryption key is itself encrypted in a manner decryptable by the rights client 32. Note that by separating the table 46 from the application 30, the application 30 has no innate access to the table 46 or the removed code sections therein.
Thus, and returning now to FIG. 4, during runtime, and after the application 30 and rights client 32 have been instantiated, the rights client 32 attaches itself to the application 30 in the manner of a debugger or the like so that the rights client 32 can monitor the application 30 for when each triggering device/exception therein is executed (step 407). As may be appreciated, the rights client 32 monitors the application 30 for the particular triggering device/exception (hereinafter, 'exception') that signals that the rights client 32 is to proxy-execute on behalf of the application 30. Thus, on every breakpoint exception, the rights client 32 determines whether the exception source is a removed code section, and if so the rights client 32 proxy-executes the removed code section, presuming the license 36 so allows.
In an alternate embodiment of the present invention, the rights client 32 does not attach itself to the application 30 to monitor for an exception, but instead receives the exception from an operating system operating the computer 110. However, such an arrangement is indirect and therefore slower. Another alternative would be to have each triggering device be a call to the rights client 32, although such a strategy is slightly more complex as compared to an exception and is more prone to attack by a nefarious entity.
At some point, the application 30 may explicitly request permission to operate from the rights client 32 based on the license 36. In response, the rights client 32 searches for the license 36, the license evaluator 34 evaluates such license 36, and the rights client 32 returns such requested permission if the evaluation of the license evaluator 34 is positive. Note, though, that such explicit request for permission and response are ancillary to the present invention. Rather, in the present invention, the rights client 32 is actuated based on an exception or the like from the application 30 and not based on an explicit request from the application 30. Thus, in the present invention, the rights client 32 can withhold performance of a function on behalf of the application 30 even when the application 30 never requested permission to perform such function.
At any rate, in the course of operating, the application 30 at some point executes an exception in the code thereof, where such exception was placed in the application 30 by the post-compiler 44 in place of a removed identified code portion (step 409). As should be understood, upon executing the exception, the application 30 halts until receiving notice that the exception has been dealt with (step 411). Inasmuch as the rights client 32 is attached to the operating application 30 and is listening for such exception from such application 30, such rights client 32 notes the exception (step 413) and responds thereto (step 415).
In particular, to respond to the exception, the rights client first determines the address of the exception within the application 30 (step 415 a), locates the corresponding code section in the table 46 based on such address (step 415 b), proxy-executes such corresponding code section on behalf of the application 30 (step 415 e), and then signals to the application 30 that the exception has been dealt with (step 415 f). As may be appreciated, the application 30 may then proceed (step 417). Note that if the corresponding code section is encrypted, the rights client 32 must decrypt the located corresponding code section before proxy-executing same (step 415 c). Note, too, that a particular code section may require that the license evaluator 34 of the rights client 32 first verify that the license 36 grants the rights necessary to proxy-execute such code section on behalf of the application 30 (step 415 d). As may be appreciated, the rights client 32 proxy-executes such code section only if the license grants the right to do so. Otherwise, the rights client 32 declines to do so. In the latter case, it may be that the rights client 32 returns an appropriate message to the application 30.
It is to be appreciated that a rights client 32 should not be proxy-executing any arbitrary code section, especially inasmuch as the rights client 32 should be especially secure and therefore could have a relatively large amount of operating rights with respect to the computer 110. Put another way, the rights client 32 should not be performing actions that the application 30 would not have operating rights to perform, such as altering certain system registers, accessing memory areas of other applications and the operating system, and the like. Accordingly, in one embodiment of the present invention, the post-compiler 44 during operation thereof ensures that each code section removed and stored thereby is not of a sensitive nature. For example, it may be the case that the post-compiler 44 during operation thereof ensures that each such code section does not affect system memory. Of course, other bases for filtering code sections may be employed without departing from the spirit and scope of the present invention. Note that if a code section includes sensitive code, it may be that the post-compiler isolates such sensitive code and removes only sub-portions of code on either side of the sensitive code.
In one embodiment of the present invention, the rights client 32 proxy-executes on behalf of the application only if a valid license 36 corresponding to such application 30 is available to the rights client 32. In such a case, it may be that the purpose of each exception and proxy-execution based thereon is merely to occasionally check that the license 36 is still present and still valid. In an alternate embodiment, the rights client 32 proxy-executes on behalf of the application without regard to any corresponding valid license 36. In such a case, it may be that the purpose of each exception and proxy-execution based thereon is merely to tie the application 30 to the rights client 32, which presumably is tied to the computer 110, thus tying the application 30 to the computer 110.
In one embodiment of the present invention, the application 30 as produced by the post-compiler 44 may include multiple types of exceptions, each triggering the rights client 32. However, each different type of exception is handled differently. For one example, one type of exception may require the rights client 32 to check the license 36 while another type may not. For another example, different types of exceptions could require access to different tables 46, or could require different decryption keys and/or methods.
As disclosed herein, the application 30, the rights client 32, and the license 36 are separate constructs. Nevertheless, it should be appreciated that such items may be combined in any manner without departing from the spirit and scope of the present invention. For example, the application 30 could include the rights client 32, or the rights client 32 could include the license 36. Note, though, that in at least some instances combined items may be more susceptible to an attack from a nefarious entity.
As also disclosed herein, the rights client 32 proxy-executes code on behalf of the application 30. Alternatively, the rights client 32 may operate to modify the application 30 to include the to-be-executed code, allow such application 30 to execute such code, and then again modify the application 30 to remove such code. Note, though, that such an arrangement may be more susceptible to attack by a nefarious entity, especially in the moments when the application 30 is modified to include the to-be-executed code.
As may be appreciated, one especially useful aspect of the present invention is that the rights client 32 may now perform especially secure functions on behalf of the application 30 such that a nefarious entity is thwarted from affecting such functions. For example, it may be the case that a term in a license 36 affects how many times the application 30 can perform a specific action. Although the application 30 could obtain such term from such license 36, having the application 30 do so could allow a nefarious entity to intervene in the process to subvert same. Instead, in one embodiment of the present invention, the rights client 32 is employed to proxy-execute code for the application 30 relating to such term in such license 36, including obtaining the term and employing same.
As was set forth above, a rights client 32 with a license evaluator 34 controls operation and use of an application 30 based on a corresponding license 36 by executing code on behalf of and as a proxy for the application 30, but only if the license evaluator 34 determines that the license 36 allows such execution. Thus, and again, the rights client 32 with the license evaluator 34 enforces the license 36 as against a user of the application 30. As was set forth above, the code to be executed may be embodied within a table 46 that may be made available to the rights client 32 by being set forth in the license 36, or by being set forth in another location separate from the application 30.
Significantly, and in one embodiment of the present invention, and turning now to FIG. 6, rather than being set forth in the license 36, the code to be executed is associated with another object 50, such as for example another application, an executable, a process, a data library, a data file, or the like. Thus, and also significantly, the object 50 acts as a provider 50 of the code, and the application 30 acts as a consumer 30 of the code, as shown in FIG. 6. As a result, the consumer 30 cannot be operated without the presence of the provider 50, and the consumer 30 is thus dependent on the provider 50. Presuming that the provider 50 operates as part of a particular process on a computer, then, it is to be appreciated that in the present invention, the aforementioned second process on the computer (i.e., the rights client 32) controls the operation and use of the aforementioned first process on the computer (i.e., the consumer 30) by executing code from a third process on the computer (i.e., the provider 50) on behalf of and as a proxy for the first process/consumer 30.
As may be appreciate, such an arrangement may be desirable for example in an instance where a distributor or owner of the provider of the consumer 30 wishes to ensure that such consumer 30 is operated only in conjunction with the provider 50, and not in conjunction with other similar objects. For example, a distributor of a codec for decrypting encrypted content may wish to ensure that the codec is only operated in conjunction with a particular media player. In such an instance, the codec would act as the consumer 30 and the media player would act as the provider 50, and appropriate portions of the code from the codec/consumer 30 would be associated with the media player/provider 50. As may now be appreciated, the provider 50 likely has other code that is to be executed apart from the code that is to be executed on behalf of the consumer 30.
Referring still to FIG. 6, it is to be appreciated that in one embodiment of the present invention, a first process or consumer 30 is dependent upon a second process or rights client 32 to proxy execute at least some portion of code from a third process or provider 50 on behalf of the first process/consumer 30, where the rights client 32 includes a license evaluator 34 or the like. Accordingly, the rights client 32 may choose whether to in fact proxy execute the code from the provider 50 for the consumer 30 based, among other things, on whether the license evaluator 34 has access to a license 36 corresponding to the consumer 30, and on whether the license 36 has permissions or rights that allow or at least do not prohibit the action corresponding to the code to be executed. Again, such a license 36 and the license evaluation 34 of the rights client 32 are known or should be apparent to the relevant public and therefore need not be disclosed herein in any detail.
In one embodiment of the present invention, and referring now to FIG. 7, the consumer 30, rights client 32 with license evaluator 34, and provider 50 are constructed to operate on a computer 110 (FIG. 1) or the like as follows. Typically, either a user or another process on the computer 110 instantiates the consumer 30 on such computer 110 as the aforementioned first process (step 701), and as part of an initializing process such consumer 30 ensures that the rights client 32 with the license evaluator 34 (hereinafter, 'rights client 32') is instantiated on the computer 110 as the aforementioned second process, and also that the provider 50 is instantiated on the computer 110 as the aforementioned third process (step 703). Thereafter, the consumer 30 and the provider 50 each establish a connection with the rights client 32, and in doing so each of the consumer 30 and the provider 50 identifies a link to the other as a consumer-provider relationship (step 705). Note that it may be the case that the rights client 32 and/or the provider 50 are already instantiated or it may be one or more of such items must be newly instantiated, either by the consumer 30, another process, the user, or the like.
Once step 705 is performed, and presuming that a license 36 corresponding to the consumer 30 is available to the rights client 32, the consumer 30 can query the rights client 32 to have the license evaluator 34 thereof determine based on the license 36 the rights the consumer 30 has based on such license 36. Alternatively, such rights may be determined at a later time. Note here that the rights client 32 may itself locate the license 36 or the consumer 30 may identify the license 36 to the rights evaluator 32.
In the present invention, the rights client 32 is required to proxy-execute at least some portions of code from the provider 50 on behalf of the consumer 30 so that the consumer 30 is dependent both on the rights client 32 and the provider 50. By requiring the rights client 32 to proxy-execute at least some portion of code from the provider 50 on behalf of the consumer 30, both the rights client 32 is necessary to review the license 36, and the provider 50 is necessary to provide the portion of the code to be proxy-executed by the rights client 32.
In one embodiment of the present invention, all of the code that the rights client 32 is to proxy-execute on behalf of the consumer 30 is set forth as at least one code object 52 at an appropriate location in the provider 50. If need be, at least one associated indexing objects 54 is also set forth at an appropriate location of the provider 50, where the indexing object 54 is provided for indexing into the code object 52 in an appropriate manner. Thus, and again, the provider 50 must be available to the rights client 32 for same to proxy-execute the code in the data object 52 thereof on behalf of the consumer 30. As was set forth above, such code in the code object 52 may be encrypted, in which case the license 36 or the like may provide a decryption key for decrypting such encrypted code.
As should again be appreciated, in order to effectuate proxy-execution of code from a provider 50 on behalf of a consumer 30, the consumer 30 must be pre-processed to define the code that is to be proxy-executed, to remove same from such consumer 30, to appropriately store such removed code in the code object 52 of the provider 50, to appropriately construct the associated indexing object 54 if necessary, and to appropriately store the code object 52 and any indexing object 54 with the provider 50. In one embodiment of the present invention, then, and turning now to FIG. 8, a method of pre-processing the consumer 30 to effectuate proxy-execution is shown.
Preliminarily, and again, a developer develops source code 38 (FIG. 3) for the consumer 30 in an appropriate programming language, such as for example a C-type programming language (step 801). In doing so, and significantly, the developer identifies within such source code 38 for the consumer 30 each of one or more code sections that is to be proxy-executed (step 803). As may be appreciated, each such proxy-executed code section identification may comprise any appropriate mark, tag, command, or the like without departing from the spirit and scope of the present invention. Thereafter, the developer compiles the source code 38 with a compiler 40 into machine code 42 (step 805).
Again, the developer may identify each code section within the source code 38 based on any particular criteria without departing from the spirit and scope of the present invention. For example, if the developer merely wishes to trigger proxy-execution from time to time so as to ensure that the rights client 32 is present and is allowing the consumer 30 to operate based on a corresponding license 36, and also to ensure that the provider 50 is present, each such identified code section may be decided upon in a fairly random manner. However, if the developer wishes to trigger proxy-execution at specific times and/or with regard to specific sections of code, each such identified code section must be decided upon in a more targeted manner. Note with regard to the latter that it may be the case that an identified code section specifies a particular license right. In such a situation, it may also be the case that the rights client 32 will proxy-execute such identified code section only if the specified license right in the license 36 is met.
As may again be appreciated, the compiler 40 may be any appropriate compiler without departing from the spirit and scope of the present invention. Significantly, the compiler 40 is constructed to maintain each code section identification in the machine code 42 so that post-compile processing may be performed on the code section identified thereby. Such maintaining again may be performed in any appropriate manner without departing from the spirit and scope of the present invention. For example, the compiler 40 may pass the identification from the source code 38 to the machine code 42 in a recognizable form, or may create a scratch table (not shown) with such information therein.
Thus, and in one embodiment of the present invention, after such compiling, the developer post-compiles the machine code 42 with each recognizable code section identification therein with a post-compiler 44 into the final code representative of the consumer 30, where the post-compiler 44 removes each identified code section in the machine code 42 from such consumer 30 and appends the removed code section to the code object 52 of the provider 50 (step 807). As may be appreciated, such post-compiler 44 is constructed to retrieve each code section identification, either from the machine code 42, the aforementioned scratch table, or elsewhere, and operate based thereon.
In one embodiment of the present invention, for each identified code section in the machine code 42, the post-compiler 44 removes the identified code section from the machine code 42 (step 807 a), replaces the removed code section with a triggering device (step 807 b), notes an address of the triggering device within the consumer 30 (step 807 c), and stores the removed code section in the code object 52 of the provider 50 and the noted address in the indexing object 54 of the provider 50 as necessary (FIG. 6) or the like (step 807 e). If indeed such noted address is stored in such indexing object 54, step 807 e may also encompass creating a reference in the indexing object 54 to the location of the removed code section in the code object 52. Also, if necessary or advisable, each removed code section may be stored in the code object 52 in an encrypted form decryptable by the rights client 32 (step 807 d). Note that the code object 52 and/or the indexing object 54 may be signed or otherwise protected from alteration by a verifying device such as a hash.
As may be appreciated, and as shown in FIG. 6, for the post-compiler 44 to perform the actions of step 807 et seq., such post-compiler should be provided with the provider 50. In addition, for the consumer 30 and the provider 50 to identify a link to the other as a consumer-provider relationship as at step 705, the post-compiler 44 in the course of operation thereof as at step 807 should insert such an identification within each of the consumer 30 and the provider 50.
As may also be appreciated, and again, by replacing each removed code section from the consumer 30 with the triggering device, and presuming that the triggering device is shorter than the removed code section, the post-compiler 44 shortens the machine code 42 for such consumer 30. Note that the triggering device may be any appropriate triggering device without departing from the spirit and scope of the present invention, as long as the triggering device is recognizable as a signal that the rights client 32 is needed to proxy-execute the corresponding removed code section in the provider 50 on behalf of the consumer 30. For example the triggering device may be a particular exception that would get the attention of the rights client 32.
After the post-compiler 44 is finished, and as should now be appreciated, such post-compiler 44 outputs final code representative of the consumer 30 and the provider 50 (step 809). To summarize quickly, the consumer 30 as issued by the post-compiler 44 includes linking information to the provider 50 and triggering devices in place of removed code sections thereof, and the provider 50 as issued by the post-compiler 44 includes linking information to the consumer 30, a data object 52 with the removed code sections, and perhaps an indexing object 54 or the like to index from the triggering devices to the corresponding code sections in the data object 52. In addition, if the code sections within the data object 52 are encrypted, the post-compiler 44 may provide a decryption key to be placed in a corresponding license 36 in an appropriate manner.
Thus, and returning now to FIG. 7, during runtime, and after the consumer 30, the rights client 32, and the provider 50 have been instantiated, the rights client 32 attaches itself to the consumer 30 in the manner of a debugger or the like so that the rights client 32 can monitor the consumer 30 for when each triggering device/exception therein is executed (step 707). As may be appreciated, the rights client 32 monitors the consumer 30 for the particular triggering device/exception (hereinafter, 'exception') that signals that the rights client 32 is to proxy-execute code in the provider 50 on behalf of the consumer 30. Thus, on every exception as generated by the consumer 30, the rights client 32 determines whether the exception source is a removed code section available from the provider 50, and if so the rights client 32 locates the removed code section at the provider 50 and proxy-executes same, presuming the license 36 so allows.
In an alternate embodiment of the present invention, and as before, the rights client 32 does not attach itself to the consumer 30 to monitor for an exception, but instead receives the exception from an operating system operating the computer 110. However, and again, such an arrangement is indirect and therefore slower. Another alternative would be to have each triggering device be a call to the rights client 32, although such a strategy is again slightly more complex as compared to an exception and is more prone to attack by a nefarious entity.
At some point, and as before, the consumer 30 may explicitly request permission to operate from the rights client 32 based on the license 36. In response, the rights client 32 searches for the license 36, the license evaluator 34 evaluates such license 36, and the rights client 32 returns such requested permission if the evaluation of the license evaluator 34 is positive. Note again, though, that such explicit request for permission and response are ancillary to the present invention. Rather, in the present invention, the rights client 32 is actuated based on an exception or the like from the consumer 30 and not based on an explicit request from the consumer 30. Thus, in the present invention, the rights client 32 can withhold performance of a function on behalf of the consumer 30 even when the consumer 30 never requested permission to perform such function.
At any rate, in the course of operating, the consumer 30 at some point executes an exception in the code thereof, where such exception was placed in the consumer 30 by the post-compiler 44 in place of a removed identified code portion (step 709). As should be understood, upon executing the exception, the consumer 30 halts until receiving notice that the exception has been dealt with (step 711). Inasmuch as the rights client 32 is attached to the operating consumer 30 and is listening for such exception from such consumer 30, such rights client 32 notes the exception (step 413) and responds thereto (step 415).
In particular, and similar to before, to respond to the exception, the rights client first determines the address of the exception within the consumer 30 (step 715 a), locates the corresponding code section in the data object 52 of the provider 50 based on such address and the indexing object 54 if necessary (step 715 b), proxy-executes such corresponding code section at the provider 50 on behalf of the consumer 30 (step 715 e), and then signals to the consumer 30 that the exception has been dealt with (step 715 f). As may be appreciated, the consumer 30 may then proceed (step 717). Note that if the corresponding code section is encrypted, the rights client 32 must decrypt the located corresponding code section before proxy-executing same (step 715 c). Note, too, that a particular code section may again require that the license evaluator 34 of the rights client 32 first verify that the license 36 grants the rights necessary to proxy-execute such code section on behalf of the consumer 30 (step 715 d). As may be appreciated, the rights client 32 proxy-executes such code section only if the license grants the right to do so. Otherwise, the rights client 32 declines to do so. In the latter case, it may be that the rights client 32 returns an appropriate message to the consumer 30.
It is again to be appreciated that a rights client 32 should not be proxy-executing any arbitrary code section, especially inasmuch as the rights client 32 should be especially secure and therefore could have a relatively large amount of operating rights with respect to the computer 110. Put another way, the rights client 32 should not be performing actions that the consumer 30 would not have operating rights to perform, such as altering certain system registers, accessing memory areas of other applications and the operating system, and the like. Accordingly, in one embodiment of the present invention, the post-compiler 44 during operation thereof ensures that each code section removed and stored thereby is not of a sensitive nature. For example, it may be the case that the post-compiler 44 during operation thereof ensures that each such code section does not affect system memory. Of course, other bases for filtering code sections may be employed without departing from the spirit and scope of the present invention. Note that if a code section includes sensitive code, it may be that the post-compiler isolates such sensitive code and removes only sub-portions of code on either side of the sensitive code.
In one embodiment of the present invention, the rights client 32 proxy-executes code in the provider 50 on behalf of the consumer 30 only if a valid license 36 corresponding to such consumer 30 is available to the rights client 32. In such a case, it may be that the purpose of each exception and proxy-execution based thereon is merely to occasionally check that the license 36 is still present and still valid, and that the provider 50 is also present and operating. In an alternate embodiment, the rights client 32 proxy-executes on behalf of the application without regard to any corresponding valid license 36. In such a case, it may be that the purpose of each exception and proxy-execution based thereon is merely to tie the consumer 30 to the rights client 32 and to the provider 50.
In one embodiment of the present invention, and as before, the consumer 30 as produced by the post-compiler 44 may include multiple types of exceptions, each triggering the rights client 32. However, each different type of exception is handled differently. For one example, and recognizing that the consumer 30 may be tied to multiple providers 50, each type of exception may correspond to code to be executed from a particular provider 50.
As disclosed herein, the rights client 32 proxy-executes code from a provider 50 on behalf of a consumer 30. Alternatively, and again, the rights client 32 may operate to modify the consumer 30 to include the to-be-executed code, allow such consumer 30 to execute such code, and then again modify the consumer 30 to remove such code. Note again, though, that such an arrangement may be more susceptible to attack by a nefarious entity, especially in the moments when the consumer 30 is modified to include the to-be-executed code.
In the present invention, a method and mechanism are provided by which a rights client 32 with a license evaluator 34 controls operation and use of an consumer 30 based on a license 36 corresponding thereto. The rights client 32 with the license evaluator 34 executes certain portions of code from a provider 50 on behalf of and as a proxy for the consumer 30, where the license evaluator 34 can determine if the license 36 allows such execution. Thus, the consumer 30 cannot be run outside of the presence of the provider 50.
using the second process operating on the computer to proxy-execute code corresponding to each triggering device of the first process on behalf of such first process, the second process including a license evaluator for evaluating the license to determine whether the first process is to be operated in accordance with the terms and conditions set forth in such license, the second process choosing whether to in fact proxy-execute the code corresponding to each triggering device of the first process on behalf of such first process based at least in part on whether the license evaluator has determined that the first process is to be operated in accordance with the terms and conditions of the license.
2. The computer-readable storage medium of claim 1 wherein the first process is an application and the second process is a rights client.
3. The computer-readable storage medium of claim 1 wherein the third process is one of another application, an executable, a data library, and a data file.
4. The computer-readable storage medium of claim 1 wherein the third process includes a code object having the code corresponding to each triggering device of the first process, and an indexing object indexing the address of the triggering device in the first process to the code in the code object.
5. The computer-readable storage medium of claim 4 wherein the code corresponding to each triggering device of the first process is encrypted within the code object and is decryptable according to a decryption key obtainable by the second process.
6. The computer-readable storage medium of claim 5 wherein the license includes the decryption key encrypted in a manner decryptable by the second process.
resuming execution of the first process whereby the first process is dependent upon the second process for operation thereof.
8. The method of claim 7 wherein the computer further includes a digital license corresponding to the first process, the license setting forth terms and conditions for operating the first process, the method further comprising the second process evaluating the license and verifying that the first process is operating in accordance with the terms and conditions set forth in such license prior to proxy-executing the located code section on behalf of the first process.
9. The method of claim 7 wherein the located code section is encrypted, the method further comprising the second process decrypting the located code section before proxy-executing same.
10. The method of claim 7 wherein each triggering device is a particular exception and comprising the second process monitoring for when the first process executes the particular exception.
11. The method of claim 10 further comprising the second process attaching to the first process so as to monitor the first process for the particular exception directly.
12. The method of claim 7 wherein each triggering device is one of a plurality of types of exceptions and comprising the second process monitoring for when the first process executes any of the types of exceptions, the second process responding to each type of exception in a differing manner.
13. The method of claim 7 wherein the computer further includes a digital license corresponding to the first process, the license setting forth terms and conditions for operating the first process, and wherein the second process proxy-executing the located code section on behalf of the first process comprises the second process securely retrieving a term or condition from the license and employing same on behalf of the first process.
"Aladdin Acquires the Assets of Micro Macro Technologies", Business Wire, Mar. 3, 1999, 2 pages.
"Aladdin Knowledge Systems Partners with Rights Exchange, Inc. to Develop a Comprehensive Solution for Electronic Software Distribution", Aug. 3, 1998, 5 pages.
"All About Activation of Adobe Software", www.adobe.com-activation-main.html, accessed Jun. 24, 2004, 5 pages.
"Black Box Crypton Defies the Hackers", Electronics Weekly, Mar. 6, 1985, p. 26.
"BreakerTech Joins Copyright Management Market", Computergram International, Aug. 5, 1999, 2 pages.
"IBM Spearheading Intellectual Property Protection Technology for Information on the Internet", May 1996, 3 pages.
"LicensIt: kinder,gentler copyright? Copyright management system links content, authorship information", Seybold Report on Desktop Publishing, 1996, 10(11), 2 pages.
"Optimising License Checkouts from a Floating License Server", Arm the architecture for the digital, accessed www.arm.com-supportlfaqdev-1391.html.
"portion", Collins English Dictionary, London: Collins, 2000, Credo Reference [online], www.credoreference.com-entry-hcengdict-portion, retrieved Jun. 6, 2009.
"Rights Management in the Digital Age: Trading in Bits, Not Atoms", Spring, 1997, 4, 3 pages.
"Solution for piracy", Which Computer, 1983, p. 29 (from DialogClassic WebTM file 275, Accession No. 01 0 14280).
"Sony Develops Copyright Protection Solutions for Digital Music Content", PR Newswire ,Feb. 25, 1999, 4 pages.
"Technological Solutions Rise to Complement Law's Small Stick Guarding Electronic Works", Information Law Alert, Jun. 16, 1995, 3-4 and 7.
Armati, "Tools and standards for protection, control and presentation of data", Apr. 3, 1996, 17 pages.
Benjamin et al., "Electronic markets and virtual value chains on the information superhighway", Sloan Management Rev., Winter, 1995, 62-72.
Cappaert, J. et al., "Self-Encrypting Code to Protect Against Analysis and Tampering," in First Benelux Workshop on Information and System Security, Nov. 8-9, 2006, see http://www.cosic.esat.kuleuven.be/wissec2006/papers/3.pdf, 14 pages.
Cassidy, "A Web developers guide to content encapsulation technology", Apr. 1997, 5 pages.
Cox, "Superdistribution", Idees Fortes, Sep. 1994, 2 pages.
Cox, "What if There Is A Silver Bullet", J. Object Oriented Programm, Jun. 1992, 8-9 and 76.
Gold, "Finland-Data Fellows Secures ICSA Certification", Newsbytes, Jan. 7, 1998, 1 page.
Gold, "Finland—Data Fellows Secures ICSA Certification", Newsbytes, Jan. 7, 1998, 1 page.
Griffiths, A.L., 2005. Binary protection schemes. RECON2005 Conference, Jun. 2005., 91 pages.
Griswold, "A Method for Protecting Copyright on Networks", IMA Intel. Property Project Proceedings, Jan. 1994, 1(1), 169-178.
Hauser, "Does Licensing Require New Access Control Techniques?", Conference on Computer and Communications Security, Aug. 3, 1993, 9 pages.
Hudgins-Bonafield, "Selling Knowledge on the Net", Network Computing, Jun. 1, 1995, 102-109.
In the United States Patent and Trademark Office, Advisory Action, In re:. U.S. Appl. No. 11/273,775, filed Nov. 14, 2005, Dated Sep. 24, 2008, 2 pages.
In the United States Patent and Trademark Office, Final Office Action, In re:. U.S. Appl. No. 10/681,017, filed Oct. 8, 2003 Dated Nov. 26, 2007, 13 pages.
In the United States Patent and Trademark Office, Final Office Action, In re:. U.S. Appl. No. 11/273,775, filed Nov. 14, 2005, Dated Jun. 19, 2008, 14 pages.
In the United States Patent and Trademark Office, Final Office Action, In re:. U.S. Appl. No. 11/273,775, filed Nov. 14, 2005, Dated Jun. 19, 2008, 15 pages.
In the United States Patent and Trademark Office, Final Office Action, In re:. U.S. Appl. No. 11/273,775, filed Nov. 14, 2005, Dated Nov. 10, 2009, 19 pages.
In the United States Patent and Trademark Office, Final Office Action, In re:. U.S. Appl. No. 11/273,775, filed Nov. 14, 2005, Dated Nov. 28, 2007, 14 pages.
In the United States Patent and Trademark Office, Non-Final Office Action in related U.S. Appl. No. 11/095,297, filed Mar. 30, 2005, Dated Nov. 6, 2008, 16 pages.
In the United States Patent and Trademark Office, Non-Final Office Action, In re:. U.S. Appl. No. 10/681,017, filed Oct. 8, 2003 Dated May 30, 2007, 13 pages.
In the United States Patent and Trademark Office, Non-Final Office Action, In re:. U.S. Appl. No. 11/273,775, filed Nov. 14, 2005, Dated Jan. 15, 2009, 18 pages.
In the United States Patent and Trademark Office, Non-Final Office Action, In re:. U.S. Appl. No. 11/273,775, filed Nov. 14, 2005, Dated Nov. 28, 2007, 13 pages.
In the United States Patent and Trademark Office, Non-Final Office Action, In re:. U.S. Appl. No. 11/404,448, filed Apr. 14, 2006, Dated Sep. 21, 2007, 13 pages.
In the United States Patent and Trademark Office, Notice of Allowance and Fee(s) Due, In re:. U.S. Appl. No. 10/681,017, filed Oct. 8, 2003 Dated Jun. 25, 2008, 9 pages.
In the United States Patent and Trademark Office, Notice of Allowance and Fee(s) Due, In re:. U.S. Appl. No. 11/404,448, filed Apr. 14, 2006, Dated Mar. 20, 2008, 13 pages.
Kahn, "Deposit, Registration and Recordation in an electronic copyright management system", IM Intellectual Property Project Proceedings, 1994, 1(1), 111-120.
Kaplan, "IBM Cryptolopes-, Super-Distribution and Digital Rights Management", Dec. 1996, 7 pages.
Kaplan, "IBM Cryptolopes—, Super-Distribution and Digital Rights Management", Dec. 1996, 7 pages.
Kent, "Protecting externally supplied software in small computers", Sep. 1980, 1-42 and 250-252.
Kohl et al., "Safeguarding Digital Library Contents and Users; Protecting Documents Rather Than Channels", D-Lib Magazine, Sep. 1997, 9 pages.
Linn, "Copyright and Information Services in the Context of the National Research and Education Network", IMA Intell. Property Project Proceedings, Jan. 1994, 1(1), 1 and 10-20.
Main, A. et al., "Software Protection and Application Security: Understanding the Battleground", State of the Art and Evolution of Computer Security and Industrial Cryptography, Jun. 2003, 19 pages, http://www.scs.carleton.ca.
McNab, "Super-Distribution works better in practical applications", Mar. 2, 1998, 2 pages.
Microsoft Partner Program, "Product Activation", www.members.microsoft.com-partner-salesmarket-pack-activatin.aspx, accessed Jun. 24, 2004, 4 pages.
Moeller, "IBM takes charge of E-commerce; Plans client, server apps based on SET", Apr. 1996, 4 pages.
Moeller, "NetTrust lets Cyberspace Merchants Take Account", PC Week, Nov. 20, 1995, 12(48), 1 page.
Olson et al., "Concurrent Access Licensing", Software Licensing, 1988, 6(9), 67-72.
Pemberton, "An Online Interview with Jeff Crigler at IBM InfoMarket", Jul. 1996, 7 pages.
Ramanujapuram et al., "Digital Content & Intellectual Property Rights: A specficiation language and tools for rights management", Dec. 1998, 20-23 and 26.
Sibert et al., "Securing the Content, Not the Wire, for Information Commerce", Jul. 1995, 1- 11.
Sibert et al., "The DigiBox: A Self-protecting Container for Information Commerce", First USENIX Workshop on Electronic Commerce, Jul. 11-12, 1995, 171-183.
Stefik, "Shifting the Possible: How Trusted Systems and Digital Property Rights Challenge Us to Rethink Digital Publishing", Technical Perspective, 1997, 137-159.
Stefik, "Trusted Systems", Mar. 1997, 8 pages.
St-Michel et al., "Autoplay in Windows XP: Automatically Detect and React to New Devices on a System", MSDN Magazine, Nov. 2001, 16(11), 12 pages.
Sun Microsystems, User's Guide Wireless Toolkit, Version 2.1, Java Platform Micro Edition, Dec. 2003, 1-89.
Thompson, "Digital Licensing", Architectural Perspectives, IEEE Computer Society, Jul.-Aug. 2005, 9(4), 4 pages.
Tulloch, M., "Windows 2000 Administration in a Nutshell", Feb. 16, 2001, O'Reilly Media, 4 pages.
Using USB Flash Drives at SUNY/Cortland Instructions for Windows XP/2000, Dec. 12, 2004, Academic Computing Liaisons, 8 pages.
Weber, "Digital Rights Management Technology", Oct. 1995, 1-49.
White et al., "Abyss: A trusted architecture for software protection", IEEE Symposium on Security and Privacy, Apr. 27-29, 1987, 38-51.
White et al., "Abyss: An Architecture for Software Protection", IEEE Trans. On Software Engineering, Jun. 1990, 16(6), 619-629.
Zhang et al., "Hiding Program Slices for Software Security", Proceedings of the International Symposium on Code Generation and Optimization: Feedback-Directed and Runtime Optimization, 2003, 325-336.


text:
Q: Is there any way to crop an image inside a box?
I want to crop the image only inside the box or rectangle. I tried so many approaches but nothing worked.
import cv2
import numpy as np

img  = cv2.imread("C:/Users/hp/Desktop/segmentation/add.jpeg", 0);
h, w = img.shape[:2]
# print(img.shape)
kernel = np.ones((3,3),np.uint8)

img2 = img.copy()

img2 = cv2.medianBlur(img2,5)
img2 = cv2.adaptiveThreshold(img2,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,\
            cv2.THRESH_BINARY,11,2)

img2 = 255 - img2
img2 = cv2.dilate(img2, kernel)
img2 = cv2.medianBlur(img2, 9)
img2 = cv2.medianBlur(img2, 9)

cv2.imshow('anything', img2)
cv2.waitKey(0)
cv2.destroyAllWindows()

position = np.where(img2 !=0)
x0 = position[0].min()
x1 = position[0].max()
y0 = position[1].min()
y1 = position[1].max()

print(x0,x1,y0,y1)

result = img[x0:x1,y0:y1]

cv2.imshow('anything', result)
cv2.waitKey(0)
cv2.destroyAllWindows()

Output should be the image inside the sqaure.

A: You can use contour detection for this. If your image has basically only a hand drawn rectangle in it, I think it's good enough to assume it's the largest closed contour in the image. From that contour, we can figure out a polygon/quadrilateral approximation and then finally get an approximate rectangle. I'll define some utilities at the beginning which I generally use to make my time easier when messing around with images:
def load_image(filename):
    return cv2.imread(filename)

def bnw(image):
    return cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)

def col(image):
    return cv2.cvtColor(image, cv2.COLOR_GRAY2RGB)

def fixrgb(image):
    return cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

def show_image(image, figsize=(7,7), cmap=None):
    cmap = cmap if len(image.shape)==3 else 'gray'
    plt.figure(figsize=figsize)
    plt.imshow(image, cmap=cmap)
    plt.show()

def AdaptiveThresh(gray):
    blur = cv2.medianBlur(gray, 5)
    adapt_type = cv2.ADAPTIVE_THRESH_GAUSSIAN_C
    thresh_type = cv2.THRESH_BINARY_INV
    return cv2.adaptiveThreshold(blur, 255, adapt_type, thresh_type, 11, 2)

def get_rect(pts):
    xmin = pts[:,0,1].min()
    ymin = pts[:,0,0].min()
    xmax = pts[:,0,1].max()
    ymax = pts[:,0,0].max()
    return (ymin,xmin), (ymax,xmax)

Let's load the image and convert it to grayscale:
image_name = 'test.jpg'
image_original = fixrgb(load_image(image_name))
image_gray = 255-bnw(image_original)
show_image(image_gray)

Use some morph ops to enhance the image:
kernel = np.ones((3,3),np.uint8)
d = 255-cv2.dilate(image_gray,kernel,iterations = 1)
show_image(d)

Find the edges and enhance/denoise:
e = AdaptiveThresh(d)
show_image(e)

m = cv2.dilate(e,kernel,iterations = 1)
m = cv2.medianBlur(m,11)
m = cv2.dilate(m,kernel,iterations = 1)
show_image(m)

Contour detection:
contours, hierarchy = cv2.findContours(m, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

total_area = np.prod(image_gray.shape)
max_area = 0
for cnt in contours:
    # Simplify contour
    perimeter = cv2.arcLength(cnt, True)
    approx = cv2.approxPolyDP(cnt, 0.03 * perimeter, True)
    area = cv2.contourArea(approx)

    # Shape is recrangular, so 4 points approximately and it's convex
    if (len(approx) == 4 and cv2.isContourConvex(approx) and max_area<area<total_area):
        max_area = cv2.contourArea(approx)
        quad_polygon = approx

img1 = image_original.copy()
img2 = image_original.copy()

cv2.polylines(img1,[quad_polygon],True,(0,255,0),10)
show_image(img1)
tl, br = get_rect(quad_polygon)
cv2.rectangle(img2, tl, br, (0,255,0), 10)
show_image(img2)

So you can see the approximate polygon and the corresponding rectangle, using which you can get your crop. I suggest you play around with median blur and morphological ops like erosion, dilation, opening, closing etc and see which set of operations suits your images the best; I can't really say what's good from just one image. You can crop using the top left and bottom right coordinates:
show_image(image_original[tl[1]:br[1],tl[0]:br[0],:])

A: Draw the square with a different color (e.g red) so it can be distinguishable from other writing and background. Then threshold it so you get a black and white image: the red line will be white in this image. Get the coordinates of white pixels: from this set, select only the two pairs (minX, minY)(maxX,maxY). They are the top-left and bottom-right points of the box (remember that in an image the 0,0 point is on the top left of the image) and you can use them to crop the image.

redpajama_set_name: RedPajamaStackExchange


text:
Q: Prove the inequality $\frac{a+c}{a+b}+\frac{b+d}{b+c}+\frac{c+a}{c+d}+\frac{d+b}{d+a}\geq 4$ $a, b, c, d$ are positive reals.
How would I prove the inequality
$$\frac{a+c}{a+b}+\frac{b+d}{b+c}+\frac{c+a}{c+d}+\frac{d+b}{d+a} \geq 4$$
I have tried using the rearrangement inequality with $a\leq b\leq c\leq d$
But it doesn't seem to work well.
Any hints please?

A: By C-S
$$\sum_{cyc}\frac{a+c}{a+b}=(a+c)\left(\frac{1}{a+b}+\frac{1}{c+d}\right)+(b+d)\left(\frac{1}{b+c}+\frac{1}{d+a}\right)\geq$$
$$\geq\frac{4(a+c)}{a+b+c+d}+\frac{4(b+d)}{b+c+d+a}=4.$$

A: $$\frac{\color{blue}{a+c}}{a+b}+\frac{\color{red}{b+d}}{b+c}+\frac{\color{blue}{c+a}}{c+d}+\frac{\color{red}{d+b}}{d+a}=\frac{\color{blue}{a+c}}{a+b}+\frac{\color{blue}{a+c}}{c+d}+\frac{\color{red}{b+d}}{b+c}+\frac{\color{red}{b+d}}{d+a}$$
$$\frac{\color{blue}{a+c}}{a+b}+\frac{\color{blue}{a+c}}{c+d}+\frac{\color{red}{b+d}}{b+c}+\frac{\color{red}{b+d}}{d+a}=(\color{blue}{a+c})\color{green}{\left(\frac{1}{a+b}+\frac{1}{c+d}\right)}+(\color{red}{b+d})\color{brown}{\left(\frac{1}{b+c}+\frac{1}{d+a}\right)}$$
WLOG  $$\color{brown}{\frac{1}{b+c}+\frac{1}{d+a}} \ge \color{green}{\frac{1}{a+b}+\frac{1}{c+d}}  $$
Then
$$(\color{blue}{a+c})\color{green}{\left(\frac{1}{a+b}+\frac{1}{c+d}\right)}+(\color{red}{b+d})\color{brown}{\left(\frac{1}{b+c}+\frac{1}{d+a}\right)} \ge (\color{blue}{a+c}+\color{red}{b+d})\color{green}{\left(\frac{1}{a+b}+\frac{1}{c+d}\right)}$$ $$= (\color{turquoise}{a+b}+\color{orange}{c+d})\left(\color{turquoise}{\frac{1}{a+b}}+\color{orange}{\frac{1}{c+d}}\right) \ge (1+1)^2=4$$


Short Business Description: We accept orders for creation designer jewelry sets for weddings. Jewelry designer and brand founder Elena Romanenko designs and handcrafts original jewelry with perfection of modern design, creating timeless one-of-a-kind pieces that are brilliantly alive.
Established in Ukraine in 2013, Accentuate Jewelry family-owned brand dedicated to the creation of ultimate beauty through handcrafted jewelry.
Each of Accentuate jewelry 's distinctive collections honors the transmission of creative energy from the artist to the wearer.
Accentuate Jewelry is proud to offer our collection. The moment you touch and handle our jewelry, you will experience mysterious sensations. Accentuate Jewelry products give the opportunity to own a beautiful, well made piece of jewelry at a price that is within reach.
We accept orders for creation jewelry sets for weddings.
Enjoy worldwide free shipping on any orders from our website.


text:
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8" />
		<title><?php getTitle() ?></title>
		<link rel="stylesheet" href="<?php echo $css ?>bootstrap.min.css" />
		<link rel="stylesheet" href="<?php echo $css ?>font-awesome.min.css" />
		<link rel="stylesheet" href="<?php echo $css ?>jquery-ui.css" />
		<link rel="stylesheet" href="<?php echo $css ?>jquery.selectBoxIt.css" />
		<link rel="stylesheet" href="<?php echo $css ?>backend.css" />
	</head>
	<body>

redpajama_set_name: RedPajamaGithub


text:
Q: Mootools addEvent not defined I'm trying to use this code to add an anchor element and set it's onclick event to some Javascript.  But no event is being loaded.  Looking at the DOM through Firebug tells me that Mootools is indeed added.  The element has almost all of the Mootools element functions.  But it lacks addEvent.
var delete_ctl = new Element('a',
{
    'href' : '#',
    'events' :
    {
        'click' : function() { alert('foo'); }
    }
});

delete_ctl.appendText('Remove');
delete_ctl.inject(root);
delete_ctl.addEvent('click', function() { alert('foo'); });

The rendered code in Firebug lacks any indication that the onclick event has been set.  When the code is run, Firebug reports a Javascript error: "addEvent is not a function."  I feel like I'm missing something basic here.

A: You code works fine on my machine. I get twice alerts of 'foo'.
Make sure you use the right version of mootools.
Make sure root really references an HTML element in the DOM.
Make sure you run this code after the DOM finished loading (onload or domready events).
Good luck.


text:
Tag Archives: presidential election 2012
The VP Debate: How Joe Biden can take Paul Ryan to the Woodshed.
The Vice Presidential debate is coming up this Thursday evening, October 11th, from 8 to 9:30 p.m. EST. The debate will be held at Centre College in Danville, Kentucky where ABC news chief Martha Raddatz will attempt to moderate a discussion on both foreign and domestic policy issues. (Ms. Raddatz should be enlightened by Jim Lehrer's feckless performance in the moderator's seat.)
On Thursday night, Joe Biden will have an excellent opportunity to confront Paul Ryan about his chameleon running mate's latest policy flip-flops. Keeping "Ryan on the defensive by challenging him to answer for Mitt Romney's whopper of an Etch-A-Sketch performance in the first Presidential debate is the key to a Biden victory that can move the polls back in President Obama's direction.
After Paul Ryan's disastrous, fact-checker's delight of a convention speech, he's got his own image problem as a politician of dubious honesty. And Ryan has yet to reconcile his own consistently uber-conservative policy positions, including his infamous Medicare-killing budget plan, with Romney's shifting stances — which careen from the far right to the center depending upon Mitt's audience.
With that in mind, here are some things that Fighting Joe from Scranton can say to take the fight to Pipsqueak Paul from Janesville.
How many years of tax returns did you give Mitt Romney when he vetted you as his running mate?
(Answer: 12 years)
So, if Romney felt he needed 12 years of your tax returns to decide on you as his running mate – why should the American people accept just two years of Mr. Romney's tax returns?
Is it true that Mitt Romney has proposed a 20% across-the-board tax cut and a reduction in the corporate rate?
(Inescapable answer: Yes.)
Okay, we all heard you tell Chris Wallace on Fox News that it would take too long to explain the Romney-Ryan tax plan – but I'll be happy to give you all the time you need to tell us the specific deductions and loopholes you'll eliminate in order to close the 5 trillion dollar gap left by Mitt's 20% tax cut and his cuts in the corporate rate?
Just days after you were announced as his running mate, Romney distanced himself from the budget you famously proposed in Congress. What parts of your budget does Romney agree with? For instance, does he agree with turning Medicare into a voucher system?
(Answer: Fumble, mumble, blather, obfuscate…)
How will cancer patients pay for all their needed care with a $6,400 dollar insurance voucher? And how will you stop insurance companies from simply raising their rates to swallow up that $6,400 voucher and grab even higher premiums?
In his debate with the President, Romney kept saying that your plans to end Medicare as we know it would not affect today's seniors. Listen, Congressman Ryan, I'm a senior citizen. Do you think I'm willing to sell out my children as long as my benefits don't change? If you think so, you don't know the way America's seniors – the folks we call "The Greatest Generation" – feel about the safety net that Franklin Delano Roosevelt created with the help of a Democratic Congress. You Republicans fought Medicare and Social Security all along the way – and you're still trying to kill the New Deal, aren't you?
In his recent foreign policy speech at the Virginia Military Institute, Romney said that President Obama hasn't passed a single new free trade agreement. But the fact is that President Obama signed three free trade agreements a year ago — with Colombia, Panama and South Korea. Was your running mate unaware of the truth, or was he lying?
The Republican majority in the House of Representatives came into office two years ago chanting a mantra of "jobs, jobs, jobs" – so why have you, Speaker Boehner and the Tea Party majority in the House passed far more bills restricting women's reproductive rights than bills that would've helped create jobs?
Just before the last Congressional session ended a month ago, Senate Republicans filibustered a bill that would have provided much-needed funds to help our Iraq and Afghanistan veterans find a job. Was that a good thing to do? Should Mitch McConnell have let that veteran's jobs bill come to vote? Don't we owe that to our nation's warriors?
Do you agree with Senate Majority Mitch McConnell that, quote, "my number one priority is making sure president Obama's a one-term president"? Did Senator McConnell kill the veteran's jobs bill – and hurt our troops — just to deny President Obama a popular legislative victory in an election year?
That should be enough to keep the whelp Ryan back on his heels.
I don't think older voters in the swing states – especially Ohio and Florida – will cotton to a young, untested punk like Ryan getting testy with an accomplished elder statesmen like Joe Biden.
Like I said, Joe doesn't need to be polite or deferential with Ryan. Not like he had to be with an untested, overmatched woman like Sarah Palin. Ryan needs to show respect for his elder. And that means Joe can take the fight to Ryan without fear of being too aggressive.
America may not yet tolerate an angry black man (even if he's the President) – but a righteously angry old white dude can be quite loveable.
C'mon, old Joe. Put up your dukes! And knock that pretentious, puffed-up, overconfident, Ayn Rand-worshipping pup out of the ring!
Tagged as Joe Biden, Obama, Paul Ryan, presidential election 2012, Romney, Vice Presidential debate
Obama's Opening Remarks in the Second Debate: Rope-A-Dope!
On October 16th at 9:00 PM Eastern Time, President Obama and challenger Mitt "Etch-A-Sketch" Romney will tee off their second Presidential debate.
For this second round in the Obama vs. Romney heavyweight contest, the bipartisan Commission on Presidential Debates has planned a "town meeting" format in which "undecided voters" chosen by the Gallup Organization will ask questions on topics critical to our nation, including foreign and domestic policy.
After the poorly moderated, constipated and confused "six 15-minute pods" framework of the first debate, Presidential Cage Match Round Two – driven by questions from "real people" — may be more enlightening, exciting and decisive.
Just maybe.
As a progressive Democrat, I must honestly admit that I came away from yesterday's first debate full of anger and frustration that President Obama didn't immediately counter Mitt Romney's shocking shape shifting, evasiveness and outright dishonesty with force, passion and prosecutorial specificity.
Damn. I really, really, really wanted Obama to take Romney's head off in that first debate. PBS' grand venerable gentleman Jim Lehrer certainly wasn't going to do it. But there's an argument to be made that Obama was playing "Rope-a-Dope". There's an old axiom in war and politics that if your opponent is hurting himself — don't get in the way.
In one of the most celebrated heavyweight bouts in boxing history, beastly strong, aggressive and overconfident George Foreman wore himself out throwing punch after punch at the cagey veteran, Muhammad Ali, who settled into the ropes in a defensive crouch. When Foreman's bulging, muscled arms finally tired, Ali put his exhausted foe away with canny, savage, and well-timed counter-punching.
If we equate whole new policy positions, bald-faced lies, equivocations, mischaracterizations and a chronic lack of specifics with lunging punches thrown without a knockout – then President Obama has set Mighty Mitt up for a ferocious counterattack.
With that in mind, here's what I'd like to hear President Barack Obama say in his opening statement in the second debate.
"Thank you, Candy Crowley, for moderating this debate, thanks to Hofstra University for hosting us – and thanks to everyone watching for taking the next 90 minutes out of your very busy lives to listen to what Governor Romney and I have to say about our drastically different visions for the direction we want to take our beloved country.
I know you just got home from work and that you need to get up and go back to work tomorrow morning — so I won't waste your valuable time by saying a bunch of things that sound good tonight – but that the fact-checkers will easily prove are a lot of crap tomorrow morning. I'll leave that game to Governor Romney: whichever Governor Romney shows up tonight.
Tonight's debate is supposed to be a town hall meeting — in which citizens ask the questions, and Governor Romney and I have agreed to answer your questions. I promise to answer your questions honestly and candidly, consistent with everything I've said from the time I sought the Presidency in 2008 until tonight. Tonight, I challenge Governor Romney to answer your questions in a manner consistent with what he's been saying in the past year, in the last few months, and in our last debate.
Governor Romney's not an easy guy to pin down on policy. It's impossible to know what his plans for our nation are. In fact, Mitt Romney is the biggest flip-flopper in American political history.
Mitt was for Obamacare before he was against it. He was for a 5 trillion dollar tax cut before he was against it. He was for lowering taxes on millionaires and billionaires before he was against it. He was for voucherizing Medicare before he was against it. And he was for his VP pick Paul Ryan's Medicare and Social Security-killing budget before he was against it.
And Governor Romney did all that flip-flopping in our last debate less than two weeks ago. I wonder where Mitt Romney stands now?
I wonder which Mitt Romney will show up tonight? And what new tales will he tell?
Maybe tonight we'll get the real story of Mitt Ronmey's plan for the American middle class? Like a "CSI" or "Law & Order" mystery – it's worth staying up for the next hour or so just to find out.
Since Governor Romney and I faced off in our last debate, there have been a lot of independent analysts who have been confounded about two things:
Why did Governor Romney run away from so many of his previously held positions? And why won't he say what upper-income tax loopholes and middle-class tax deductions he plans to eliminate to pay for his huge tax cuts for millionaires and billionaires?
My fellow Americans, I look forward to your questions this evening. And I look forward to seeing which Mitt Romney will be with us tonight – and how that version of Mitt Romney will answer the questions that are so vital to the health, growth, safety and success of our blessed nation."
Post Script: The first national poll after the first Presidential debate from Ipsos/Reuters shows that President Barack Obama didn't lose much ground.
Before the debate: Obama 48 Romney 39
After the debate: Obama 48 Romney 43
On the face of it, that's a four-point jump for Romney – but let's look at the numbers among independent voters. (Rope-A-Dope may be working.)
Filed under History, Politics
Tagged as boxing, Candy Crowley, CNN, debates, George Foreman, Muhammad Ali, Obama, Presidential Election, presidential election 2012, Romney, rope-a-dope
Republican National Convention Day One: One Little Lie & Two Big Lies…
"We're not going to let our campaign be dictated by fact checkers."
Ashley O'Connor, Romney TV Advertising Strategist
Ohio Governor John Kasich's Little Lie
In his address to the Republican National Convention tonight, John Kasich stretched the truth like well-chewed taffy by claiming that President Obama's policies haven't helped Ohio's economy rebound in the past two years. But, by ignoring the positive boost that Obama gave Ohio by bailing out the auto industry and providing much-needed transportation funding and dollars for teachers, firefighters, and cops, etc. through the American Recovery and Reinvestment Act of 2009 (AKA "The Stimulus"), Kasich was telling a lie of omission. It was a big lie, but a subtle one.
But there was another lie that Kasich told toward the end of his speech – a little lie, an unnecessary lie, an easily debunked lie – that shows how little he regards the truth when he's looking to score a point or belittle an opponent.
After having made his case for what he's done to fix Ohio's economy, and therefore what the GOP can do for the nation, Kasich took on Vice President Joe Biden. "Folks, let me tell you this," he said, "Joe Biden disputes a lot of those facts, but Joe Biden told me that he was a good golfer. And I've played golf with Joe Biden, I can tell you that's not true, as well as all of the other things that he says."
But how good a golfer is Joe Biden really? In a recent Golf Digest ranking of 150 prominent Washington golfers, House Speaker John Boehner was ranked 43rd, President Obama was 108th – and Joe Biden was ranked 29th. Kasich, who doesn't live in Washington, didn't make the list. But, as a golfer, Kasich is no Joe Biden. And as an honest politician, he's even worse.
So what about the facts? Republicans just say what they want to say – the facts be damned — even when it comes to little things.
Former GOP Candidate Rick Santorum's Big Lie
In his speech, Rick Santorum built upon the Romney campaign's Big Lie about Obama gutting the welfare work rules. In a loud dog whistle to low information white working class voters, Santorum continued to peddle the nonsense that Obama has unilaterally waived work rules to make it easier for (we presume the shiftless minority poor folk) to collect welfare money for nothing.
By waiving the work requirement, Santorum accused Obama of "acting as if he's above the law." But the fact is that President Obama HAS NOT done what Santorum and the Romney campaign have charged. What the President DID DO is, at the request of a bipartisan group of state governors, give those state more flexibility in interpreting the work requirements so that they can get people placed in jobs faster and more efficiently: the very opposite of the GOP Big Lie.
But don't take my word for it. The fact-checking website PolitiFact says Romney's claims are "pants on fire" bogus and The Washington Post's fact checker awarded the Romney campaigns welfare attack on Obama four Pinocchios, its highest rating. And Annenberg Public Policy Center's FactCheck.org agreed that the claims are false.
FactCheck.org explains:
"A Mitt Romney TV ad claims the Obama administration has adopted 'a plan to gut welfare reform by dropping work requirements.' The plan does neither of those things."
"Work requirements are not simply being 'dropped.' States may now change the requirements — revising, adding or eliminating them — as part of a federally approved state-specific plan to increase job placement."
"And it won't 'gut' the 1996 law to ease the requirement. Benefits still won't be paid beyond an allotted time, whether the recipient is working or not."
Even a Republican architect of the law, Ron Haskins, told NPR: "There's no plausible scenario under which it really constitutes a serious attack on welfare reform."
But the GOP's Big Lie beat goes on…
South Carolina Governor Nikki Haley's Big Lie
The "you didn't build that" canard is alive and well – and bigger than ever. In her convention speech, Nikki Haley amplified the utterly bogus assertion that President Obama said that American business people didn't build their own businesses.
Let's make this perfectly clear. Here's what President Obama really said:
"There are a lot of wealthy, successful Americans who agree with me — because they want to give something back. They know they didn't — look, if you've been successful, you didn't get there on your own. You didn't get there on your own. I'm always struck by people who think, well, it must be because I was just so smart. There are a lot of smart people out there. It must be because I worked harder than everybody else. Let me tell you something — there are a whole bunch of hardworking people out there."
(Applause.)
"If you were successful, somebody along the line gave you some help. There was a great teacher somewhere in your life. Somebody helped to create this unbelievable American system that we have that allowed you to thrive. Somebody invested in roads and bridges. If you've got a business — you didn't build that. Somebody else made that happen. The Internet didn't get invented on its own. Government research created the Internet so that all the companies could make money off the Internet."
The Romney campaign pulled one line out of context – "If you've got a business — you didn't build that" – and ignores the context to create a Big Lie. No matter that Obama's whole speech is on video, no matter that I was able to Google it for this article in a matter of seconds. Say a lie loud enough and long enough – with all that billionaire super pac money to broasdcast that lie – and the truth no longer matters.
But, here again, don't take my word for it. Here's the word from the Romney campaign itself:
"Our most effective ad is our welfare ad," Romney pollster Neil Newhouse said at a forum hosted by ABC News and Yahoo! News. "Fact checkers come to this with their own sets of thoughts and beliefs, and we're not going to let our campaign be dictated by fact checkers."
Caveat emptor my fellow Americans.
Filed under Politics, Truth
Tagged as big lie, GOP Convention, Joe Biden, Kasich, Nikki Haley, President Obama, presidential election 2012, RNC, Santorum
Give 'Em Hell, Obama!
During the 1948 Presidential campaign, President Harry S. Truman delivered a speech in Illinois attacking the Republicans in blunt terms. During his speech a supporter called out, "Give 'em Hell, Harry!". Truman shot back — "I don't give them Hell. I just tell the truth about them and they think it's Hell."
Here's a snippet of the kind of hell "Give 'Em Hell Harry" was giving the GOP in those days. (You can read the whole speech here.) I'd like to hear President Obama channel a little more Harry Truman from now until election day.
Tagged as fat cats, Give "em Hell Harry, GOP, Harry Truman, President Obama, presidential election 1948, presidential election 2012