text:
The cygwin make version 3.81-1 does not handle MS-DOS path names and thus does not work for EPICS builds with RELEASE file definitions. From the discussion on the cygwin mailing list it looks like this will be fixed in make version 3.82. In the meantime make version 3.80 or a fixed make can be downloaded from this website.
The following target architectures have been added to this release, although the core developers lack the ability to test all of them:
Wind River Systems do not support optimization levels beyond -O2 for vxWorks applications compiled using gcc, so optimized vxWorks builds are now set to -O2 only (we currently use -O3 everywhere else).
There was a bug in the portable channel access server library that prevented the PV Gateway from being able to handle and pass on alarm acknowledgements from the EPICS Alarm Handler ALH. This has been fixed in this release and should only require that the gatewey be recomplied against this version of Base.
The parser for the substitutions file accepted by dbLoadTemplate() has been revised, and is now stricter than it used to be — unmatched characters that were accepted and discarded without warning before will now generate errors. The quote characters at the two ends of a quoted string value must now match, although either single or double quotes can be used. Escaped characters inside a quoted string should pass safely through to the underlying dbLoadRecord() command. The characters permitted in a bareword parameter (i.e. a filename or value that is not inside quotes) have been reduced from the overly wide set allowed before; the permitted characters now comprise: a-z A-Z 0-9 _ - + : . / \ [ ] < > ;
Field value strings loaded from a database file by dbLoadRecords() can now use C89-compatible escaped character codes such as \", \', \t, \n, \064 and \x7e. The parser also now checks for and reports strings that have a newline character in them as an error - if you want a newline in a field, use the \n escaped version. These escapes only apply to the value part of a field() entry in .db file though; no other strings have escape codes translated.
These test programs are no longer installed into the bin/arch directory. Running all these programs on any host architecture is as simple as typing make runtests in the base top level directory or in any appropriate subdirectory. The runtests target uses Perl's Test::Harness module to execute all of the test programs and summarize the result. It is also possible to run individual tests as desired, by executing them from the relevent O.<arch> directory; the program output is designed to be comprehensible to humans.
For vxWorks and RTEMS, a test harness has been created that will run all of the test programs in a suitable order. At a vxWorks target shell, type:
ld </path/to/base/bin/vxWorks-arch/vxTestHarness.munch cd "/path/to/writable/directory" epicsRunLibComTests
On RTEMS, boot the bin/arch/rtemsTestHarness binary.
You may wish to capture the output from running these to a file to more easily check the results, since there is no wrapper program to collect and summarize the results of the individual test programs.
The handling of breakpoint table data has been reworked. It is now possible to give table data in either ascending or descending order, and the breakpoint data may have a negative slope such that the engineering values increase while the raw values decrease and vice versa. The only restriction on the data is that is must be monatonically increasing or decreasing, so you can't use a breakpoint table for curves that have local minima or maxima. This restriction is checked for when the breakpoint table is loaded.
The build configuration support for vxWorks 6.x has changed significantly, having been recombined with the older vxWorks 5.x support. The two target architectures vxWorks6-mv2100 and vxWorks6-mv5100 have been removed; IOCs built under vxWorks 6.x using these architectures must revert to the original vxWorks-ppc603_long and vxWorks-ppc604_long architectures instead. The configuration file CONFIG_SITE.Common.vxWorksCommon now specifies the vxWorks version number, as well as the filesystem path to the installation of vxWorks using the WIND_BASE variable.
The calc expression parser and exective have undergone a signficant overhaul, although the API and expression language supported are backwards compatible with one minor exception, described below. Significant improvements have been made to both the API and the expression language: Multiple values can be calculated and assignments made in a calc expression; Error reporting for humans is now supported by the expression parser, and code can discover what inputs and outputs are needed and generated by an expression.
Assignment operations are now possible, using the new := operator which must have an expression variable (A through L) to its immediate left. Multiple expressions can be included in the calculation string, separated by a semicolon ;, all but one of which must be assignments. The value of the whole string is determined by the single non-assignment expression, which may appear anywhere in the string. For example, the following string causes a single CALC record to output the successive values of a sine curve in 1 degree intervals: sin(a); a:=a+d2r
Previously any expression that performed an invalid operation which would generate a NaN or Inf result would be stopped immediately and return an error to the caller. Now it is possible to perform operations that generate NaN or infinite results, and the results are returned as normal. The result of the expression or the value assigned to a variable may thus be a NaN or an infinity. To permit this to be checked within the expression, the new operators finite(), isinf() and isnan() have been added to the expression language. The literal values Inf and NaN are also now supported in expressions.
The only incompatible change to the expression language was to change the NOT operator from performing a unary minus operation to an integer bitwise not; the former meaning is illogical and as a result was probably not used much, if at all — nobody complained when I discussed this on tech-talk...
The extended API and the expression language are now discussed in detail in chapter 19 (libCom) of the R3.14.9 version of the IOC Application Developer's Guide.
As a result of the above changes to the calc expression parser and executive, both the calc and calcout records and the Access Security library have been modified to take advantage of the new error diagnostics. The Access Security library has been made to reject any expression that contains an assignment operation, to prevent any possible security holes that might be caused by this significant change to the expression rules.
The calc and calcout records have had some subtle changes applied: To mitigate the effects of the Inf/NaN behaviour change, the result of an expression is checked for NaN, which will result in the UDF field being set and an Undefined/INVALID_ALARM being raised as a result.
An empty string is no longer a legal expression, therefor the CALC and OCAL fields have been changed so that their default value is a literal "0" string. Also any calcout record device support must now add the line #include "postfix.h" before the #include "calcoutRecord.h" line in the source code.
The recGblResetAlarms() routine (which is called by all record types towards the end of record processing) now optionally calls a single hook routine via the function pointer recGblAlarmHook after it has updated a record's alarm status and severity. See regGbl.h for the hook routine prototype definition, the routine is also given the previous values of the record's status and severity. The hook routine must not block, since this would hold up record processing.
These record types now support raw simulation mode. If the value of the SIMM field is 2 (enum string "RAW"), the SIOL link value is placed into the RVAL field and passed through the raw to engineering units conversion process just like the real device support's raw value would be.
The TIME field of a record is now displayed in a human readable format. TIME used to have an interest level of 4 since it was output in hex and not very easy to understand, but it has now been moved to interest level 2.
The convertRelease.pl parser now supports the use of -include statements in configure/RELEASE files as well as include statements.
Changes were needed to the configure/tools/munch.pl script to support vxWorks-MIPS targets.
A new facility is provided in libCom for use in generating automated test programs. Many (but not all) of the test programs in libCom/test have been converted to use this facility.
Off-by-one buffer overflow error fixed in dbFindField() which only seemed to affect vxWorks-(intel) targets.
Added space for user extensions. This provides the infrastructure for the spy command.
Fixed error in epicsThreadGetName for non-EPICS threads.
Added hooks for application routines to supply special network configuration parameters. The RTEMS startup code calls epicsRtemsInitPreSetBootConfigFromNVRAM just before reading values from NVRAM and epicsRtemsInitPostSetBootConfigFromNVRAM just afterwards. See epicsRtemsInitHooks.h for prototypes and global variables.
e_flex has been modified to accept DOS line endings as well as Unix ones. The scan.c file was recreated using e_flex itself and the flex.skel file on the modified scan.l.DISTRIB source. initscan.c is not required or used for the EPICS build, so it has been removed.
devLib is now built for all architectures, whereas before it was only built on RTEMS and vxWorks. However for it to be usable there must be an appropriate table of OS-specific routines provided. For those OSs that don't implement these routines a default table is defined which will result in an error on any attempt to use devLib routines, but the default table can be overridden in an external library that provides an appropriate table. This subtle change was implemented to allow use of the SIS 3100 PCI to VME bridge from Linux, and needs no change to the other implementations of devLibOSD.c.
Added epicsThreadResume command.
mallocMustSucceed and callocMustSucceed accept 0-byte requests. Note that these routines may return a NULL pointer in such cases.
Added support for EPICS_HOST_ARCH=darwin-ppcx86 for building libraries/applications which will run on both PowerPC and Intel x86 targets.
Added support for EPICS_HOST_ARCH=darwin-x86.
On architectures whose native version of strtod() actually works properly (i.e. converts +/-Inf[inity] and NaN strings to their double equivalents) we managed to break the use of this in the R220.127.116.11 release. This is now fixed.
This release adds a fourth level of version number, which we haven't used since R184.108.40.206. The intention is to imply that R220.127.116.11 includes some small but important changes since R3.14.8 but no signficant new behaviours or API modifications. This fourth level has required us to modify the version number system and the macros in the epicsVersion.h file slightly though. We have taken the opportunity to introduce a new variable EPICS_SITE_VERSION to the file configure/CONFIG_SITE that adds an optional site-specific version number; sites that were achieving this by editing the configure/CONFIG_BASE_VERSION file should switch to setting EPICS_SITE_VERSION instead.
Mantis entries fixed:
232 - non-preemptive mode client relying on ca_poll does not always reconnect
These changes are required to allow software outside of Base to be built on win32 architectures.
The win32 Pascal calling convention (epicsShareAPI) has been removed from the following header files in libCom/misc: adjustment.h, cantProceed.h, epicsConvert.h, epicsStdlib.h, epicsString.h.
A new function epicsStrtok_r has been added because win32 does not implement strtok_r.
All function described in epicsStdlib.h are now implemented in epicsStdlib.c
The type name mapping array mapdbfType defined in dbFldTypes.h has had the correct export modifier keywords added to it for use on win32.
Configure files are now available to support the win32-x86-mingw (MinGW C++ compiler) and win32-x86-cygwin (WIN32 API with cygwin C++ compiler) host targets.
Configure files were also added for linux-x86_64 and solaris-sparc64 but these files are for experimental purposes only and to show that we are working on these targets. Currently these two 64 bit targets are not passing our test suite, so they must not be used in production systems.
An Extended Device Support mechanism has been introduced which is designed as a safe way to widen the API between iocCore and the device support software it interfaces with. An extended device support can now be notified of changes to a record's hardware address, and is given the chance to approve or reject that change.
As a result of introducing this notification mechanism, any device support that was capable of handling runtime address changes in prior versions of Base will have to be updated to provide the new interface, since the absence of extended device support is now taken to mean that runtime address changes are not understood by the device support. This requirement is not expected to affect many EPICS sites.
POSIX thread priority scheduling is now supported. There is a new user option USE_POSIX_THREAD_PRIORITY_SCHEDULING in the CONFIG_SITE configure file for using POSIX thread priority scheduling. For now the default value is NO. This has only been tested on a few versions of linux. On linux, in order, to use real time priorities the option must be set to YES and the ioc must be started with root privilages.
The definition VX_DIR was removed from configure/RELEASE and moved to configure/os/CONFIG_SITE.Common.vxWorksCommon. The configure/RELEASE* files should contain location definitions for EPICS modules only.
The definition RTEMS_BASE (and RTEMS_VERSION) were removed from configure/RELEASE and moved to configure/os/CONFIG_SITE.Common.RTEMS. The configure/RELEASE* files should contain location definitions for EPICS modules only.
The following files have been removed from base: drvTS.h drvTS.c, egDefs.h egRecord.c egRecord.dbd egeventRecord.c egeventRecord.c egeventRecord.dbd erDefs.h erDefs.h erRecord.c erRecord.dbd ereventDefs.h ereventRecord.c ereventRecord.dbd
These are removed from EPICS base. The version that previously came with base was the version that worked with the APS event system. It is available from APS. The version that works with the newer event systems that evolved from the APS system is available from the Swiss Light Source.
It was possible for taskwd (task watchdog) to not detect when some of the standard tasks failed. This is because they were passing their threadid rather than using epicsThreadGetIdSelf. It was possible to call taskwdInsert before the threadid was actually set.
dbLockGetLockId incorrectly always returned 0. dbBkpt (database breakpoint facility) is the only code that needed this. This caused unknown errors if the dbBkpt facility is used.
The maximum size was initialized to 65636 instead of 65536.
Add additional cast to prevent 'strict aliaising' warnings.
I/O redirection from vxWorks startup scripts now works.
This new variable which can be controlled using the iocsh var command (or by simple assignment in the vxWorks shell) allows users to change the behaviour of dbLoadRecords() when it finds a duplicate record definition. The default behaviour has always been to permit multiple record() statements for the same record name when loading record instances, but by setting dbRecordsOnceOnly to any non-zero value, duplicates will instead generate an error message instead. It is expected that this will only be used in special circumstances, to detect the presence of unintentional duplicates where it is known that they should not exist.
This record now sets and posts monitors on its SELN field indicating which of the inputs was selected, independent of which selection mechanism was selected via the SELM field. This makes it much more useful, especially when the High, Low or Median mechanisms are chosen.
Macro expansions in any program using the macLib facility from libCom can now include a default value which will be used if the macro named is not defined at the moment of substitution. The syntax for this is $(name=default) or ${name=default}. The default string can itself contain other macros like this: $(name=$(default)). This feature has actually been present since R3.14.6.
On a powerPC, during iocInit, a crash could occur. In particular the SYNAPPS version of save_restore experienced crashes. This is now fixed.
Mantis entries fixed.
221 - should shutdown full duplex comm on udp sockets if not used
192 - concurrency bug in channel access to local DB
181 - ca_host_name() now returns the host name of the client, not the host:port of the server
161 - issues surrounding manipulation of CA contexts
153 - CA (caput) client does not reconnect after server suspend-continue-shutdown cycle
111 - non-preemptive clients disconnect if ca_poll() isnt called regularly
Mantis entries fixed.
196 - portable server library intermittent hang on UNIX systems
191 - corrupt value when doing a put through portable server (little endian host)
175 - example portable server array PV 'alan' does not have time stamps
Mantis entries fixed.
211 - GDD: aitConvertStringEnum16 does nothing if pEnumStringTable==NULL
Added support for setting NFS server/mount information from PPCBUG argument strings.
rtems_shutdown_executive is now called on IOC exit. On many BSPs this will return control to the bootstrap PROM.
Set POSIX TZ environment variable from NVRAM, or failing that, from EPICS_TIMEZONE.
Cleaned up support for obtaining network configuration from NVRAM.
Added support for some additional boards.
Set iocsh prompt from host name.
Initialize in-memory filesystem from tar image following executable in bootstrap flash memory. This allows for fully standalone IOCs -- no TFTP/NFS server required.
Set IOC_NAME and IOC_STARTUP_SCRIPT environment variables from bootstrap parameters.
Fixed mantis entry.
179 -base does not build with vxWorks 6.0
225 - On vxWorks epicsThreadCreate returned -1 instead of 0 if a thread could not be created. This is fixed.
Builds on Tiger.
Readline now used by default.
Fixed mantis entries.
195 - explicitly unloading Com.dll causes crash
230 - assert fail of caget, caput, etc under msvc 8
231 - manifest files not installed under visual C++ 8
Fixed mantis entries.
186 - failure after exit command if log client is running
222 - osiSpawnDetachedProcess doesnt close open files in dupicate process on POSIX
The select record type has for a long time made use of a coule of magic numbers (1e+30 and -1e+30) to mean "not a real value", which prevents the record from working properly if one or other of these appears as an actual data value. These have been changed to use +Inf and -Inf or NaN instead, so +/-1e+30 may be used as a data value.
These record types have been modified to respond better to NaN values as follows: if the VAL field contains a NaN value, the UDF field will be set and an undefined value alarm will be triggered.
epicsStdlib.h declares epicsStrtod() which provides a version of strtod which handles NAN/INF on all architectures. All uses of strtod() in base have been converted to use epicsStrtod().
epicsStdlib.h also declares epicsScanFloat() and epicsScanDouble() which replace calls to sscanf with routines which handle NAN/INF on all architectures.
The posix implementation of epicsThreadCreate() now makes pthread calls to set the stack size. The sizes returned by epicsThreadGetStackSize() for the inputs epicsThreadStackSmall, epicsThreadStackMedium and epicsThreadStackBig are 128K, 256K and 512K respectively on at least the architectures Linux, Solaris, HPUX and Darwin (different values are used on vxWorks and RTEMS). This allows creation of many more threads on most systems.
dbNotifyCancel now waits if the userCallback is active when dbNotifyCancel is called. Previously it just returned. NOTE CAREFULLY. This means that the userCallback must not free the putNotify structure.
caget and camonitor now have an additional "-s" option to explicitly request server-side string conversion, which - in case of the regular CA server - leads to "precision" info (e.g. the PREC field of an EPICS record) being honoured.
Signals are blocked in all but the main thread. Applications/drivers which require signal delivery to a subthread will need to be modified.
Three new functions are implemented: epicsExit, epicsExitCallAtExits, and epicsAtExit. These are similar to exit and atexit, i.e. they provide the ability to register a function to be called when the process exits. They are provided becase neither vxWorks or win32 properly implement exit and atexit. Note that they apply to an IOC stopping NOT to a thread exiting.
In order to support iocsh redirection of stdin, stdout, and stderr, epicsStdio.h defines the following new functions: epicsGetStdin, epicsGetStdout, epicsGetStderr, epicsSetStdin, epicsSetStdout, epicsSetStderr, and epicsStdoutPrintf. epicsStdioRedirect.h defines macros that redefine stdin, stdout, stderr, and printf.
Any code that includes epicsStdioRedirect.h will automatically have it's stdio redirected. It has been added to many files in base. If code called by dbior wants it's output redirected, it must also include this file.
Any command that previously had an argument for a report file name no longer has the argument. The new iocsh redirection capability is now used. For example the former command:
dbl "0" reportName
Is now:
dbl > reportNameNote that this does NOT work on the vxWorks shell only on iocsh. On the vxWorks shell the following command can be given:
iocshCmd("dbl > reportName")
errlog now calls epicsAtExit and releases all resources when epicsExitCallAtExits is called.
epicsStrGlobMatch() routine added.
Input/output redirection added.
iocshCmd routine added (callable from vxWorks shell).
help command uses globbing.
The ODLY (Output Delay) was not handled properly. This is fixed.
make sure reset gets called when size of INP array changes.
Data Base Request Option DBR_ENUM_STRS for the DTYP field of soft records can cause an IOC to crash.
RTEMS implementation of epicsMessageQueuePending() now works.
Added support for MVME2100 BSP.
Added support for building RTEMS bootable images.
The cdCommands and envPaths files are now created in ioc* directory only when the ARCH defined in the ioc*/Makefile is present in BUILD_ARCHS for the build.
The complete set of Channel Access command line tools (caget, caput, camonitor, cainfo) is available as announced during the May 2004 Collab. meeting. Documentation is part of the CA Reference Manual. Be aware of possible name conflicts with existing local tools.
The directory name wildcards that were defined here have been moved to iocBoot/Makefile, which as a result is no longer unique in having its own configure/RULES file.
This is really a demo and a complete EPICS IOC application, not a template. It will be made available separately.
The EPICS_HOST_ARCH win32-x86-cygwin was renamed cygwin-x86 to avoid confusion about what OS interfaces are used on Windows: native win32 or cygwin's emulation of POSIX. Now we have
The time server's IP address used by the vxWorks clock routines was not reading the default value from the generated envData.c file but going straight to the boot host if no environment variable by that name was set.
These files are now parsed by a program that recognizes and ignores
comment lines. Previous versions of this parser would extract settings from
these files even if they appear on a line starting with a '#' character, so
the last line containing a setting for any variable would give the value used
as the default. This was first noticed in R3.14.5 where a commented-out
setting for the
EPICS_TIMEZONE parameter was added
after the uncommented version.
Many of the commands crashed if given no arguments. They are now more crash proof.
When a CA user asked for display or control limits as a float a 0 value was returned as -1.17549435E-38. This is now fixed.
A new dbd rule will create a <name>Include.dbd from files specified in a <name>_DBD macro definition. An include line will be placed in the <name>Include.dbd for each file specified in the <name>_DBD definition. If a Makefile contains
DBD=xxx.dbd xxx_DBD = f1.dbd f2.dbd f3.dbd
an xxxInclude.dbd file will be created containing the lines
include "f1.dbd" include "f2.dbd" include "f1.dbd"
and dbExpand will be invoked to create the xxx.dbd file from the xxxInclude.dbd.
Old solaris 6 specific compiler options have been removed.
The new top level Makefile only target, cvsclean, removes cvs .#* files in all dirs of the top directory tree.
The new archclean target is like the clean target except that O.Common directories are not removed.
Add epicsSnStrPrintEscaped.
epicsExportAddress(typ,obj) now generates an extern named pvar_typ_obj and epicsExportRegistrar(func) an extern named pvar_func_obj. Previously both just named the variable pobj.
epicsRegisterFunction(name) in conjunction with the dbd 'function' keyword can be used to register functions referred to by record subroutine name fields.
The access security configuration rules now accept quoted strings where just names were allowed previously.
All dump routines now have FP version.
A new shell command "ascar(int level)" is now available. It produces a report of the INP channel access connections. Level (0,1,2) produces (a summary report, summary plus unconnected channels, summary plus report of all channels)
This bug was introduced in R3.14.5 and does not exist in any other release.
Subscription updates intermittently do not resume depending on circumstances when unresponsive circuit reconnects
A decision was made to add a change to EPICS R3.14.5 so that when a TCP circuit is temporarily unresponsive the channel, but not the circuit, is immediately disconnected. This change was determined to be necessary to improve overall system robustness in the face of IOC or network overload. Unfortunately, an error was made when installing these changes. I am sorry about any inconvenience that this has caused. Thanks to Ken Evans at the APS for discovering this problem.
This bug probably exists in all R3.14 releases.
Passing a nill function pointer to ca_replace_access_rights_event() should install a noop handler, but this currently causes a failure.
Regression tests have been installed to detect this mistake.
This bug was introduced in R3.14.5 and does not exist in any other release.
CA client library crash when clear channel request occurs in get callback handler
When testing the striptool application, Ken Evans, discovered a bug in the CA client library occurring when a clear channel request occurs in get callback handler. Regression tests have been updated so that this mistake will not slip through testing undetected in a future release.
This bug was introduced in R3.14.5 and does not exist in any other release. Subscription request must be made from within connection callback handler
It has been discovered (by Ken Evans while testing the gateway) that certain subscription requests were persisting in the gateway after clients had deleted them. This bug causes additional resources to be consumed, but does not result in a crash.
Additional debugging has revealed that the CA client library in this situation inadvertently made the subscription request twice: once at the users' request, and later on again when the library auto installed subscriptions for disconnected channels.
Probably introduced in a previous R3.14 release.
An intermittent C++ exceptions during regression testing.
In EPICS release R3.14 the CA client library is implemented using axillary threads. If the application does not call ca_context_destroy() these threads will still be running, and depending on operating system conventions the process may not exit if the main thread exits, but axillary threads are still running. Note that ca_context_destroy() is functionally equivalent to the deprecated call ca_task_exit().
This bug is only present in the portable CA server and so it does not impact IOC based applications. The bug is present in the CA gateway and any portable CA server based application. This problem may have been recently introduced when GDD was patched to properly handle fixed sized strings.
Failure, when writing large string through the portable CA server. There appears to be a possibility of the wrong string being written when a smaller string is used. You may see the following message.
A call to "assert (! this->pValue->unreference ())" failed in ..\..\..\..\include\smartGDDPointer.h line 88.
Thanks to Stephanie Alison at SLAC for discovering the bug and to Ken Evans at the APS for reminding me to fix it.
Don't seg-fault if no argument is passed to dbtr.
New files have been created in configure/os to allow CROSS_COMPILER_TARGET_ARCHS to include solaris-sparc-gnu and solaris-sparc-debug when EPICS_HOST_ARCH is solaris-sparc. Also CROSS_COMPILER_TARGET_ARCHS can now include linux-x86-debug when EPICS_HOST_ARCH is linux-x86.
A new function epicsStrnCaseCmp has been added. It is like strncmp except that it ignores case.
R3.13 compatability files are no longer generated automatically during the build. configure/CONFIG_SITE contains two new macros for building compatibility files. They are set to NO but can be set to YES. The macros are:
This will install the compatibility files needed to build R3.13 extensions built with this R3.14 base.
This will install the compatibility files needed to build R3.13 extensions and IOC applications built with this R3.14 base.
A new set of templates has been included in R3.14.5 to implement a Virtual LINAC in an ioc using databases and sequence programs. The Virtual LINAC simulates the generation and transmission of an electron beam down a LINAC. Several steering coils, BPMs, and other typical accelerator components are simulated to provide a realistic interaction between the operator and the "LINAC". Since it is an entirely soft application, it will work on any platform. An medm display is provided as the primary GUI. It can also be used to experiment with other CA client tools.
To install the templates, use the following commands:
cd <base>/bin/<arch>/makeBaseApp.pl -t vlinac vlinac <base>/bin/<arch>/makeBaseApp.pl -i -t vlinac vlinac
For further information, see:
<top>/vlinacApp/misc/README <top>/vlinacApp/misc/Virtual_Linac_Info.pdf
record(stringin, "$(user)now") { field(DESC, "Current time and date") field(DTYP, "Soft Timestamp") field(INP, "@%Y-%m-%d %H:%M:%S.%03f") }
Better error messages are now generated.
dbCaPutLinkCallback is a new function. It provides the ability to implement record/driver support that does not complete until a channel access put callback has completed. See the Application Developer's Guide for details.
dbCaAddLinkCallback is a new function. The caller can provide a connect and monitor callback. See the Application Developer's Guide for details.
Soft device that uses dbCaPutLinkCallback has been written for ao, bo, calcout, longout, mbbo, mbboDirect, and stringout records. The dbd definitions have been added to devSoft.dbd. In other to use the new support the DTYP field is defined:
field(DTYP,"Async Soft Channel")
The CALC and OCAL fields now have a size of 40 so that they are the same as the calcRecord.
calcoutRecord now has associated device support. The default support will act just like the old calcout. Support bis also available that uses dbCaPutLinkCallback.
The fields ZRST,...,FFST are now special(SPC_MOD).
The fields ZRST,...,FFST are now special(SPC_MOD). init_record now checks to see if state strings or values are defined during pass 0. Previously if another record had a DBR_STRING link to an mbboRecord it thought the field was a USHORT instead of an ENUM.
A new function has been added epicsStrPrintEscaped, which converts the standard C escape characters to \xxx characters.
The 'system' command has been added to the IOC shell. To enable this
command, add
registrar(iocshSystemCommand) to an application
database description file.
This has been removed from base.
'printf-style' functions like errlogPrintf have their arguments verified against their format string when compiled with gcc.
The IOC shell now uses the vxWorks ledLib routines so command-line editing is now the same in the IOC shell as it is in the vxWorks shell.
If the CA client library was searching for a PV name that was hosted on more than one server a segmentation violation occurred when printing a diagnostic message resulting in a failure of the CA client library. The bug was introduced in R3.14.3. The code was tested on WIN32 prior to release, but the problem has so far been reproduced only on Linux.
Thanks to Ernest Williams at the SNS for discovering and helping to diagnose the problem.
If a CA circuit timed out during the connect sequence then the CA client library called the applications's disconnect callback function indicating a disconnect state transition when the channel was already known to be disconnected. This has caused the sequencer to improperly maintain its connected channel count. Other CA client side tools may also be impacted.
Recent versions of vxWorks appear to experience a connect failure if the vxWorks IP kernel reassigns the same ephemeral TCP port number as was assigned during a previous lifetime. The IP kernel on the vxWorks system hosting the CA server might have a stale entry for this ephemeral port that has not yet timed out which prevents the client from connecting with the ephemeral port assigned by the IP kernel. Eventually, after EPICS_CA_CONN_TMO seconds, the TCP connect sequence is aborted and the client library closes the socket, opens a new socket, receives a new ephemeral port assignment, and successfully connects.
Thanks to Mark Rivers for initially reporting the bug and energetically assisting with identifying the cause.
The record processing trace output generated when the
field of a record is non-zero now includes the name of the thread that is
actually doing the processing.
Previously if a dbGetLink failed on one of the input links, dbGetLink was not called for the remaining links. Now it is.
put notify did not act properly if a record had disp=TRUE, i.e. if puts are disabled. It now returns putNotifyPutDisabled.
This is no longer supported
devLib is now supported on vxWorks and RTEMS. It has been moved from src/vxWorks/src to src/libCom/osi. devLibVirtualOS has been extended to support allocating A24 addresss and an init method.
On POSIX systems if a Channel Access application spawns off 3rd party software with an exec() call then all open file desriptors are inherited unless the close-on-exec flag is set for each file descriptor. A new wrapper function was created so that all sockets created in EPICS base will have the close-on-exec flag set on POSIX systems. The function which spawns the CA repeater with exec() used to close all open files except stdin/stdout/stderr. This step was no longer required and therefore was removed from the code.
The tmpfile() function on windows requires that all temporary files be stored in the root folder. The antelope (yacc) tool in base was calling tmpfile() and this was causing problems at sites where win32 systems use remotely mounted secure file systems. A wrapper function called "FILE * epicsTempFile()" that creates a temporary file on WIN32 with a name epicsNNN using one of the following paths was installed into libCom. It searches starting with (1) below and stops when it finds a specified path that exists. On POSIX systems, and systems that default to POSIX behavior, epicsTempFile() simply calls tmpfile().
For operating systems other than vxWorks, there is now a target file
created in each
iocBoot/ioc directory called
envPaths, which performs the same functions as the
cdCommands file in vxWorks but using environment variables. The
entries in
envPaths are derived from the contents of the
configure/RELEASE file.
Database (
.db and
.dbd) filenames passed to
dbLoadRecords and inside
dbLoadTemplate substitutions files will now have environment
variable macros expanded before opening. These are expressed using the
${MACRO} syntax. Inside a template substitutions file
the filename must be enclosed in double quotation marks if macros are
The registration routine generated by the registerRecordDeviceDriver.pl
perl script now includes the name of the application, thus requiring a
one-line change to any IOC startup files produced with earlier R3.14 releases
of base. The actual name is taken from a second command line argument
supplied to the script by the modified make rules, and is derived from the
name of the fully expanded dbd file from which the necessary information is
extracted. The change needed to every startup script involves using this new
name in place of the old
registerRecordDeviceDriver. Assuming
that your application's fully expanded dbd file is called
example.dbd you would modify the lines
dbLoadDatabase("dbd/example.dbd",0,0) registerRecordDeviceDriver(pdbbase)
to become
dbLoadDatabase("dbd/example.dbd",0,0) example_registerRecordDeviceDriver(pdbbase)
-o outfile option
A commandline option
-o has been added to the dbExpand
program to allow the name of its output file to be specified. If there are
any errors in the input file(s) the output file will not be generated or
modified at all. The rules to expand DBD files have been changed to make use
of this.
variable() supported in dbd files
Database definition (.dbd) files can now contain declarations of simple
static variables, a facility intended for driver debugging purposes. These
variable(name) or
variable(name,type) declarations
are preserved by dbExpand (
type is
int if omitted),
and will be converted by registerRecordDeviceDriver.pl into code that
registers them with iocsh. The variables themselves must be defined in some
existing C or C++ code and marked using the macro
epicsExportAddress(type,name). Only plain
int and
double types are supported.
A facility for performing macro expansion using environment variables as macro definitions has been added to libCom/macLib. The ioc shell now performs macro expansion using this on all input lines (other than comments) before printing and executing the line.
iocsh var command
For simple applications such as controlling the value of debugging flags.
Devlopers with more complex expression handling requirements should consider
use of the cexp package. The available variables are defined
by the new
variable dbd file keyword.
Tell iocsh to make a copy of the argument string before passing it to the handler function.
Operating-system independent replacement for strdup().
The epicsMessageQueue API has been changed. All functions and methods to receive a message now have an additional argument which specifies the size of the receiver buffer. The receive functions/methods return -1 and the received message is discarded if the received message will not fit in the buffer. See the Application Developer's Guide (libCom OSI) for details.
This is an incompatible change. All R3.14.2 applications which use epicsMessageQueue must be modified before they can be compiled and used with R3.14.3
A bug occurring only in Microsoft Windows port of the error message logging client was fixed. The symptoms were problems getting a Microsoft Windows based IOC to make entries in the log file.
A bug occurring in the error message logging server where a partial message arrives w/o a <CR> and then a <CR> from a previous message was found in the input buffer was fixed. The problem must have existed for a long time but probably was not occurring frequently. The symptom was garbled output in the log file.
An IP kernel deadlock vulnerability occurring when vxWorks's tNetTask calls logMsg because of a transient mbuf starvation situation has been fixed. The fix was to not call logFdAdd for the log client's socket and instead create a specialized vxWorks device driver which calls errlogPrintf for each incoming message and then call logFdAdd for a file descriptor opened with that device driver. The desirable functional change being errlogPrintf's capability to discard messages when it gets behind (because of a transient mbuf starvation situation). The fix also means that any code that calls errlogAddListener on vxWorks, e.g. CMLOG, will now receive the logMsg messages.
The symptom is a CA client program that fails with a segmentation violation on Linux shortly after calling ca_task_exit()or ca_context_destroy(). A fix will show up in R3.14.3. Regression tests were updated to detect this type of problem.
There appears to be a bug in the Red Hat 7.3 process rundown where posix thread support is defective when file scope destructors are being run. The symptom was a hang during process exit. A workaround was installed.
A patch was made to allow multiple CA servers on MAC OSX. OSX is a recent branch off of BSD and therefore requires socket option SO_REUSEPORT.
Build System
Major changes have been made to the build system. The good news is that the rules for support and ioc applications are now greatly simplified. The bad news is that it does mean changes for existing 3.14.1 applications. Please see:
for details. If you are using the function DBD keyword it no longer exists. Please read this conversion document for details.
Application Developer's Guide
The old chapter "New Feature's for 3.14" has been replaced by a new chapter "Getting Started". Please read it. It provides a simplified set of rules that can be used to build most support and ioc applications. Many minor changes have also been made.
A bug in dbGetLink resulted in nRequest not being given the value 0 if the link is a constant link. This in turn caused the waveform record to always set NORD=NELEM. Thus if an application trys to write a waveform via the steps:
prset->get_array_info(paddr,&no_elements,&offset); write nNew elements into array >> prset->put_array_info(paddr,nNew);
This sets NORD = nNew. But because of the dbGetLink bug, the soft device support attached to the waveform record sets NORD to NELM.
This problem is fixed. The actual bug was in macros in dbAccessDefs.h
Access Security
The host names are now converted to lower case. This fixes incompatibilities between various platforms.
string records
Both the stringin and stringout records have two new DBF_MENU fields: APST and MPST. These control whether CA monitors are fired if the new VAL field string is identical to the old one. The default (zero) menu value is "On Change" with behaviour identical to before, set to "Always" if you want a record to fire monitors every time the record is processed (analagous to setting ADEL/MDEL=-1 for numeric record types).
A new facility that provides the capabilities of vxWorks msgQLib. See the Application Developer's Guide (libCom OSI) for details.
epicsStdio and errlogPrintf
A new facility has been added to libCom described by epicsStdio.h. It contains the functions epicsSnprintf and epicsVsnprintf. These are like the C99 functions snprintf and vsnprintf, which are like sprintf and vsprintf except that they accept a argument limiting the number of characters written.
The errlogPrintf facility has been modified to use this facility. Thus it is not longer subject to a possible buffer overflow.
This is a new function provided by the Database Scanning facility. Given an index for the choices defined by menuScan.h, it returns the scan period in seconds. The argument can just be the scan field of a database record. If the index is not associated with a periodic scan rate, the value 0.0 is returned.
New epicsString.h function
A new function epicsStrCaseCmp has been added. It is like strcmp except that it ignores case.
macParseDefns did not check for handle==NULL. The documentation for macParseDefns was not correct.
function - New Database Definition Keyword
dbStaticLib and related programs now accept a new keyword in DBD files:
name is the name of a function with "C" linkage that is
included in the IOC binary. This function will be automatically registered
with the registry at the same time as the record/device/driver tables, and is
intended to make using subroutine records much easier on non-vxWorks
systems.. Prior R3.14 releases required there to be a static registration
routine for such subroutines.
dbStaticLib has two additional routines to support this, dbDumpFunction() and dbWriteFunctionFP(). dbDumpFunction has been added to the iocsh command table.
When executing commands from a script file, iocsh now echoes each command to the terminal before execution. This makes it much easier to see where errors are being reported.
Solaris build requirement
uname must be defined for builds on solaris hosts because it
is used to determine the solaris version.
Linux build note
Under linux-x86 only, when SHARED_LIBRARIES=YES it is now possible to have one or more directory paths burned into products as run-time locations for the shared libraries. In configure/os/CONFIG_SITE.Common.linux-x86 add any such absolute paths to the new make variable SHRLIB_SEARCH_DIRS (lib/<arch> will be automatically appended to each directory given).
*[nn].db file will be created from an
*.template and a
*[nn].substitutions file ,where
nn has a value between 0 and 99.
Support for 64 bit long
Many changes were made to support architectures on which a long is a 64 bit integer. The basic change was to change:
The changes include the following:
Hardware Link Definitions
The various parts of hardware link definitions now accept HEX values, e.g.
field(INP,"L0 A1 C0 S0xa @")
A macro has been defined so that client code can be written that is compatible between 3.13 and 3.14.
epicsMutex for posix
Mac OS X
Now supported as development platform and as IOC.
Additional RTEMS-pc386 network drivers are available
Configurable iocsh command-line editing support (none, readline, libtecla)
CA Reference Manual
Many additions.
CA Client Library
Bugs related to connection speed when creating new channels and other channels are not found fixed. Bugs related to proper schedualing in file descriptor manager based clients fixed. Many other bugs were fixed. Performance was significantly improved.
Original CA Server Library (still employed in R3.14 by iocCore)
A bug was fixed where the server was in rare situations using excessive CPU.
Portable CA Server LIbrary
Several bugs were fixed when performing integration testing with the channel access gateway.
Many bugs and missing features fixed.
Field UDF now has a promptgroup. This allows users to set UDF false via DCTs.
errlog no longer contains an atexit that calls errlogFlush. This did not work on all operating systems. cantProceed, iocsh, and ca_task_exit all call errlogFlush. Other applications may also have to call if before terminating.
mbboRecord now implements method cvt_dbaddr for the VAL field. If no state vales or state strings are defined then it sets field_type and dbr_field_type to DBF_USHORT.
timeStamp changes
Changes have been made to:
epicsTime.h now has the definitions:
#define epicsTimeEventBestTime -1 #define epicsTimeEventDeviceTime -2
These are values for the TSE field of dbCommon.
If the TSEL field refers to the TIME field of a record then recGblGetTimeStamp sets TIME equal to the time it gets from the record the TSEL references. This works for both database and channel access links. In this case field TSE is not used.
aiRecord and aoRecord: Setting eoff=egul
Instead of init_record executing code like
if ((pai->linr == menuConvertLINEAR) && pdset->special_linconv) { pai->eoff = pai->egul; }
It now executes:
if ((pai->eslo==1.0) && (pai->eoff==0.0)) { pai->eoff = pai->egul; }
aoRecord has a similar change
This was done so that old device support which does not implement special_linconv still works.
CA puts to disabled record
If a CA client issues a put to a disabled record then, when the record is ena bled, database puts to the record will not make the record process until a CA pu t is again issued. This is fixed.
TPRO - trace processing
If dbProcess is called recursively by different tasks, it did not properly handle TPRO. Consider the following database:
record(ao,"mrkao") { field(OUT,"mrkai CA") field(TPRO,"1") } record(ai,"mrkai") { field(TPRO,"1") }
If a channel access put is sent to mrkao, no message is issued when mrkai is processed.
This is now fixed.
If in your st.cmd file you issue the command.
And set the TSE field of any record to a non zero value, then a crash will occur when recGblGetTimeStamp is called.
This is now fixed.
nsev not sevr must be checked to decide if dbPutLink should be called.
Whenever a connection is made, a request to retrieve the control, display, and alarm linits and the precision and units is automatically issued. Previously this was only done if dbCaGetAttributes was called. This it is no longer necessary to call dbCaGetAttributes.
This now returns a non zero value if the result is nan (not a number).
Record Name Length
The size of the name field has been expanded from 29 to 61, i.e. record names can now have 60 characters.
initialProcess is now called before interruptAccept. This means that initial processing will be done before periodically scanned and I/O Inter scanned records start processing.
Casts have been removed that suppressed valuable error messages
All existing manipulations of UDF in process() are removed and udf is set FALSE when the raw value is successfully read.
In do_sel udf is not set false at the beginning. If selm has an invalid value recGblSetSevr(psel,SOFT_ALARM,MAJOR_ALARM) is called.
cdCommands file
Fixed a bug and revised the use of the IOCS_APPL_TOP setting in an application's <top>/configure/CONFIG file (which specifies the path to <top> as seen by the IOC) to apply the same modifications to all paths output in the cdCommands file.
All routines with Recdes of Fielddes in their name are obsolete and removed. A new routine dbDumpField replaces dbDumpFldDes.
devAiSoftRaw and devAoSoftRaw
A new state is defined for the LINR field. The name is "SLOPE", which allows any device type to be used with manual settings of the EOFF and ESLO fields. With this setting, the device support's special_linconv() routine is only called when LINR=LINEAR.
The RTEMS TFTP remote filesystem driver now supports a limited form of the chdir() system call. One restriction is that all pathnames passed to chdir() must end in a / character, so IOC shell commands to change directories must be given as
cd ../db/
The unbundled version of the sequencer has been build and tested with this release. You must obtain a version of the sequencer that has been built against alpha2.
A verion of the HPlanGpib support has been built and tested with this release. Again you must obtain a version that builds with alpha2.
A new update to the Application Developer's Guide is available for this release.
include $(TOP)/configure/RULES.registerRecordDeviceDriver
@$(PERL) $(TOOLS)/makeConfigAppInclude.pl $(T_A) $@ $(TOP)to
@$(PERL) $(TOOLS)/makeConfigAppInclude.pl $(EPICS_HOST_ARCH) $(T_A) $@ $(TOP)and add the line
depends: installto the bottom of the Makefile.
include $(TOP)/configure/RULES.Dbto
include $(TOP)/configure/RULES
DBDNAME = <name>Appto
DBD += <name>and remove the line
DBDEXPAND = <name>Include.dbdNOTE: If any of your *App/*Db/Makefiles contain "DBDNAME =" lines you should make these same changes in that *Db dirctory.
example_SRCS_DEFAULT += registerRecordDeviceDriver.cto
example_SRCS_DEFAULT += <name>_registerRecordDeviceDriver.cppwhere <name> is the base name of a <name>.dbd file which was created from a <name>Include.dbd file and which will be loaded in a st.cmd or stcmd.host script (e.g. example).
GNU compiler builds are now determined by the value of EPICS_HOST_ARCH and are no longer specified in CONFIG_SITE. All references to the ANSI (ACC/GCC) and CPLUSPLUS (CCC/G++) macros have been removed.
Most of the library routines and files starting with the prefix osi have been changed to start with epics. Several also had major changes to their user interface. See the latest version of the Application Developer's Guide for details.
This is the first release of 3.14. This is the first release that supports iocCore on platforms besides vxWorks.
iocCore is now supported on the following platforms:
Tornado II is required.
An open source real time operating system. It has been tested on MVME167 and MC68360 processors. RTEMS also supports powerPC.
Has been tested on solaris 2.6 and solaris 8 with Sun workshop 6.0 (C++ 5.2). Sun workshop 5.0 (C++ 5.0) will not compile this version of EPICS.
Has been tested on Redhat x86 platforms.
Testing has been done with visual C++ 6.0.
A new version of the Application Developers Guide is available. The following gives links to the new Application Developer's Guide and to RTEMS information.
Most of the Application Developer's Guide has only minor changes. The following are new.
It must be emphasized that this is an alpha release.


text:
GREENWICH, Conn. – New Jersey Gov. Chris Christie was met by gun control activists during his visit to Greenwich on Monday evening to attend a Republican Party fundraiser and promote Tom Foley's candidacy for governor, reports The Hartford Courant .
Foley lost to current Gov. Dannel Malloy four years ago by less than 1 percentage point, according to the report. He must first win the GOP primary in August in order to face Malloy again in the November election.
The Courant says 200 protesters gathered down the street from the fundraiser, which was held in a home in the private Belle Haven neighborhood.
To read the full story, click here .
Click here to sign up for Daily Voice's free daily emails and news alerts.

subset: commoncrawl


text:
Photos: Jaymi Heimbuch
This recipe was created exclusively to pair with the 2009 Priscus from AmByth Estate. A Rhône blend, the wine is 44 percent Grenache Blanc, 25 percent Viognier, 17 percent Roussanne and 12 percent Marsanne. It's crisp and very complex for a white wine, with minerals and rind without any bitterness. This soup — almost a chowder — is so comfy, yet the 2009 Priscus is crisp and filled with sunshine.
Prep time: 5 minutes
Total time: 1 hour 45 minutes
Simple Potato Leek Soup
- 2 large leeks
- 10 cups water
- 2 tablespoons white vinegar
- 1 tablespoon unsalted butter
- 2 pounds yukon gold potatoes, cubed
- 5 cups vegetable broth
- 1 teaspoon minced fresh dill
- 1/4 teaspoon white pepper
- 1/4 cup dry white wine
- 1/4 cup whipping cream, optional
Cooking directions
- Remove the leeks' root and tough outer skin; halve lengthwise.
- Soak in 2 cups of water with 2 tablespoons of white vinegar for 30 minutes.
- Rinse well and chop.
- Melt butter in a large stock pot over a medium-high heat.
- Add chopped leeks, cook till softened.
- Add the remaining ingredients.
- Simmer over a medium-low heat until the potatoes fall apart (about 1 hour).
- Remove from heat.
- Using an immersion blender, puree to desired thickness.
This story was originally written for Treehugger. Copyright 2011.
Recipe: Simple Potato Leek Soup
This soup, which is almost a chowder, just screams comfy. Pair it with the perfect wine — maybe a Rhone blend like the one we used.


text:
PrincipalThe original balance of money loaned, excluding interest. Also, the remaining balance of a loan, excluding interest. Interest is calculated based on the principal.
InterestThe charge, in dollars, for the use (loan) of the money.
TaxesThe county assessor determines the property tax based on the value of your home. There are two tax installments due each year. The first installment is due November 1st and is delinquent after December 10th. The second installment is due February 1st and is delinquent after April 10th.
Taxes may be impounded, depending on the amount of your down payment. (A down payment of less than 20% usually requires an impound account).
An impound account, set up by the lender, is a trust account to which a portion of the monthly payment is credited so that funds will be available for the payment of taxes and insurance when they're due. This way, the lender actually pays your tax bill for you. (Supplemental taxes usually are still the responsibility of the homeowner.)
Hazard InsuranceAn insurance policy pays for the loss of a home from certain hazards, including fire. You obtain homeowner's insurance from your own insurance agent. The standard policy pays replacement costs, minus depreciation based on actual cash value. Talk to your insurance agent about the different types of insurance available. Hazard insurance expense may also be impounded in the trust account with taxes.
Private Mortgage Insurance (PMI)Depending on the amount of your down payment, you may be required to have PMI. A down payment of less than 20% usually requires PMI. Because loans with small down payments involve substantially more risk for the lender, they need protection in case the loan goes into foreclosure. Mortgage insurance helps cover the lender's loss in the event of a foreclosure. Because of this insurance, lenders are able to offer loans with lower down payments.
PMI premiums are collected monthly as a part of your mortgage payment. The cost of PMI varies with the amount of your down payment. Can you pay off your loan ahead of schedule? Yes. By sending in extra money each month or making an extra payment at the end of the year, you can accelerate the process of paying off the loan. When you send extra money, be sure to indicate that the excess payment is to be applied to the principal. Most lenders allow loan prepayment, though you may have to pay a prepayment penalty to do so. Ask your lender for details.


text:
SKF to reveal new customized solutions at Offshore Technology Conference
2014 May 05, 14:00 CEST
SKF will showcase a range of innovations customized especially to meet the needs of the oil and gas industry at the Offshore Technology Conference 2014.
Gothenburg, Sweden, 5 May 2014: SKF will showcase a range of innovations for Oil & Gas OEMs at Offshore Technology Conference, May 5-8, 2014, Reliant Center, Houston, TX – USA. The new products have been customized especially to meet the needs of the oil and gas industry and include tapered roller thrust bearings, Locking T-seals and low torque operator gate valve assemblies.
"Harsher environments demand solutions that can withstand higher pressures and temperatures to minimize maintenance and downtime," said Marty Herzog, Director Business Development and Marketing, SKF Traditional Energy Business Unit. "These new innovations benefit our customers by improving reliability and efficiency, while also meeting increased safety and environmental regulations."
SKF Tapered roller thrust bearings for top drives
These bearings are characterized by their high load carrying capacity and ability to accommodate shock loads, coupled with an exceptional wear resistance even under an ineffective lubricant film condition. SKF Engineers have optimized both the design and the processes to manufacture tapered roller thrust bearings and can work with you to maximize the performance of your top drive by customizing the bearing features to meet the specific needs of your application. Options include simulating the interaction of top drive components from a system perspective with proprietary simulation tools, customization to non-standard dimensions and special coatings and surface treatments. With improved reliability at higher loads, increased load carrying capacity and better wear resistance SKF Tapered thrust roller bearings allow attainment of higher top drive tonnage capacity within the existing design envelope.
SKF Locking T-seals to increase reliability in the harshest operating conditions
The patented SKF Locking T-seal offers equipment designers and end-users a robust replacement option for conventional T-seals and spring back-up seals, both of which are subject to damage during installation, assembly, or disassembly. SKFs enhanced Locking T-seals are specifically designed to meet the extreme environmental conditions of high pressure / high temperature sealing applications.
Low torque operator assemblies for gate valves
SKF offers the broadest range and longest experience in providing low torque operator gate valve assemblies for high pressure well head systems. The high precision designs of SKF - combining ball or roller screws, support bearings and seals in a unitized assembly - simplify installation and field retrofit. New design concepts, such as the anti-backdrive feature first introduced to the market by SKF, increased power density and very low torque make them suitable for applications with high reliability and low maintenance requirements, such as subsea ROV-operated installations and hydraulic fracturing operations. Because SKF low torque operator assemblies for gate valves are provided as a complete housed assembly, overall cost is lowered while accuracy and consistency is increased since the final assembly is quality controlled and tested before being shipped to customer.
SKF experts will be on hand to explain the benefits of all these innovations to delegates, using product demonstrations, case studies and presentations.
At this event SKF will also introduce Kaydon as the newest member of the SKF Group. The $1.25B USD acquisition completed in late 2013 makes SKF the leading global supplier of slewing ring and thin section bearings for Oil & Gas applications, such as iron rough necks, crane turrets and mooring systems. Now, with its expanded manufacturing footprint, SKF can dramatically improve supply chain, logistics and support to Oil & Gas OEMs and end users in North America.
Offshore Technology Conference, the world's foremost event for the development of offshore resources in the fields of drilling, exploration, production, and environmental protection, takes place between May 5-8, 2014 at the Reliant Center, Houston, TX – USA. Visitors to the conference will find SKF at booth 2601.
Aktiebolaget SKF
Press Relations:Monique Turner,+1 267 436 6836; +1 215 801 email@example.com
SKF is a leading global supplier of bearings, seals, mechatronics, lubrication systems, and services which include technical support, maintenance and reliability services, engineering consulting and training. SKF is represented in more than 130 countries and has around 15,000 distributor locations worldwide. Annual sales in 2013 were SEK 63,597 million and the number of employees was 48,401. www.skf.com
® SKF is a registered trademark of the SKF Group.
™ BeyondZero is a trademark of the SKF Group.


text:
LOS ANGELES, March 5, 2013 /PRNewswire/ -- Tissue Culture Biologicals, Inc., (TCB) has officially moved their sales office to Long Beach, California and has hired James D. Titus as their new Vice President of Sales to expand the company sales, but also to take part in getting the company well known in the industry, by branding the name.
"We are so pleased to have an executive of James's caliber join our team, and look forward to many stellar contributions as he forwards this new expansion and branding development function for us," added Lloyd Cranford , Tissue Culture Biologicals' founder and chief executive.
With over 34 years of manufacturing experience, Tissue Culture Biologicals production and distribution facility is located in the San Joaquin Valley, the heart of California's dairy industry which is critical for insuring prompt processing of locally collected blood products. TCB is licensed and inspected by the Food and Drug Administration (FDA) and the United States Department of Agriculture (USDA). Human products are handled under permits and safety regulations set forth by the Center for Disease Control (CDC). Processing is done under strict current Good Manufacturing Practices (cGMP) guidelines established by the FDA. "In house" testing is done along with the utilization of several outside cGMP qualified laboratories to assure consistent quality control with Certificates of Analysis and Certificates of Origin provided with each order as standard procedure.
James D. Titus , VP Sales says, "Fetal Bovine Serum (FBS) has always been our primary product. However, over the years our product list has grown to include many hard to find items such as: Stem Cell Tested FBS, Female FBS, LowIG FBS, Dialyzed FBS, Delipidized FBS and Charcoal Dextran Treated FBS just to name a few. I'm excited to join a company with over 34 years of manufacturing experience, help expand the company and brand the name."
James adds, "Consumers that buy FBS serum products from Tissue Culture Biologicals can achieve significant quality, consistency and cost benefits because TCB can provide:
"Tissue Culture Biologicals is a quarantine facility for the United States Department of Agriculture (USDA), Animal and Plant Health Inspection Service (APHIS), Veterinary Services (VS), and the National Center for Imports and Exports (NCIE). We hold USDA, APHIS, and VS permits for the importation, exportation and transportation of controlled materials, organisms and vectors. This allows us to ship and receive internationally."
To receive free samples of TCB products, go to http://www.tcbio.com/freesample.php for immediate access at zero cost.
For media inquiries, to arrange for an interview or an expert quote please contact Lloyd Cranford at 800-845-1445
Tissue Culture Biologocals, Inc. is a direct manufacturer of all types of specialized animal and human serum, located in Tulare, California. Previously manufacturing to well known and respected media and serum companies, TCB also offers high quality FBS directly to the end user under our "green" label. TCB manufactures all of its products in the U.S., allowing us to maintain the highest quality control from collection to processing to packaging. Tissue Culture Biologicals, Inc., www.tcbio.com has been manufacturing and supplying fetal bovine serum (FBS) for distributors, laboratory research operations, university lab departments, biotech research labs, vaccine labs, pharmaceutical companies and hospital research departments since 1978.
|SOURCE Tissue Culture Biologocals, Inc.
Copyright©2012 PR Newswire.
All rights reserved


text:
Establishment harsh on Snowden
He is the toast of the libertarian left and the libertarian right. But for most of the political establishment, across the ideological spectrum, it has taken only a few days to conclude that Edward Snowden is nothing less than a dangerous villain.
If any part of Snowden hoped for a Pentagon Papers-style response to his leaks – a round of applause across Washington and New York at the daring revelation of secret national security information – this week certainly shattered any such illusion.
Story Continued Below
Ask nearly anyone in a position of authority in Washington and you will get a similar judgment on Snowden, the 29-year-old former defense contractor who exposed a vast National Security Agency surveillance program in multiple newspapers last week.
( PHOTOS: Pols, pundits weigh in on NSA report)
Democratic Sen. Dianne Feinstein denounced his "act of treason" and DNC Chair Debbie Wasserman Schultz called for his prosecution. Republican House Speaker John Boehner bluntly called Snowden a "traitor."
Maine Sen. Angus King, an independent who caucuses with Democrats, told reporters Tuesday: "He's no hero. He put people's lives at risk." His Republican colleague, Susan Collins, lambasted Snowden as "a high-school drop-out who had little maturity [and] had not successfully completed anything he had undertaken."
Washington's opinion elite has been even more savage in its assessment of Snowden. The Washington Post's Matt Miller assailed him as a "celebrity waiting in Hong Kong for Diane Sawyer's call," whose complacence about national security allowed him to "indulge … his precious conscience." POLITICO's Roger Simon lampooned Snowden as "the slacker who came in from the cold," a self-styled spy with "all the qualifications to come a grocery bagger."
( PHOTOS: 10 famous/infamous whistleblowers)
Legally, it seems clear that Snowden breached all manner of regulations governing information security. It remains to be seen how the Obama administration will handle Snowden, who fled the country for Hong Kong before his leaks became public.
But according to the moral code of Washington, Snowden's actions speak for themselves, and represent a grotesque offense against some of the Beltway's most respected institutions: the intelligence community and the military.
In effect, the former Booz Allen Hamilton employee has become a new focal point in the running debate over the fate of communal institutions – and the balance of power between institutions and individuals – in a chaotic digital age.
( See full Edward Snowden coverage)
In that ongoing clash, Snowden basically embodies some of Washington's worst fears: A disaffected, Ron Paul-supporting mole within the defense industry, carrying no elite credentials and a bundle of messianic aspirations, and the improbable wherewithal to blow a hole in the national intelligence establishment.
The New Yorker's Jeffrey Toobin criticized Snowden for the temerity to think he was answering to a "higher calling" when he leaked all that information, despite the obvious criminality of his actions.


text:
Follow RFF News on your cell phone. Text follow rff to 40404 you will receive txt messages with RFF News
0 Members and 1 Guest are viewing this topic.
It's to bad that MB didn't give her better editing because to me she came off as one of Eliza's evil stepsisters as in Cinderella
LOL! It was Ami that suggested it to Twila, but I don't remember ever seeing anything on who actually did the braiding.
Page created in 0.047 seconds with 34 queries.


text:
The Monterey Jazz Festival celebrates the legacy of jazz, expands its boundaries, and provides opportunities to experience jazz through the creative production of performances and educational programs.
Vision Statement: Enriching life through jazz
Image: B.B. King at MJF in 1967, from The Art of Jazz: Monterey Jazz Festival / 50 Years. Click Here for more information.


text:
Shahid L. Ansari UNIVERSITY OF CALIFORNIA, LOS ANGELES
Diana T. Flamholtz
Abstract: A common misconception about human resource accounting (HRA) is that it focuses narrowly upon financial accounting, that its purpose is to reflect the asset value of people on financial statements. The major purpose of HRA is to provide concepts and measurements to facilitate the effective and efficient man-agement of human resources. It, therefore, represents a management accounting development.
Management science has played an important role in facilitating the development of human resource accounting as a managerial tool. The theories underlying HRA are derived from and consistent with the concepts and philosophy of management science developed after WW II. The rationality and multidisciplinary problem solv-ing approaches which characterize management science were applied to HRA and together with other economic and social factors of the 1960's produced human resource accounting.*
Accounting history has, for the most part, dealt largely with the earlier development of the discipline. It has thus focused on book-keeping and accounting as it evolved from its beginnings in Europe. Less has been done to interpret, and to put into proper historical perspective, more contemporary developments in accounting. While it is recognized that earlier accounting developments grew out of societal needs and reflect the state of general development of con-temporary societies, many recent developments are not recognized as representing the outcome of similar forces. This is important because those who use and shape accounting must anticipate the impact of societal changes upon accounting—particularly in the period of rapid change we find ourselves in today.
The twentieth century has been marked by the recognition of management accounting as a major branch in accounting. This evolution was greatly influenced by the developments in "manage-
*Our thanks to the following people who provided us information useful in writing this paper: R. Lee Brummet, C. West Churchman, Eric Flamholtz, Paul Kircher, R. O. Mason, Wm. Pyle, Burt Swanson.


text:
Man to stand trial in Amish buggy horse shooting
LANCASTER, Pa. (AP) — A man from Pennsylvania's Amish country is headed to trial in a drive-by shooting that killed a horse pulling a buggy with a family inside.
Defendant Timothy Antonio Diggs Jr.'s sister said Thursday he said he shot the horse "for fun."
The Lancaster County man is charged with reckless endangerment, cruelty to animals and a weapons offense. His arraignment is April 11. He was jailed Dec. 3 on unrelated burglary charges and couldn't be reached for comment.
An Amish man told police Nov. 23 that as a car passed his buggy he heard a firecracker noise but didn't know it was a gunshot and continued to his farm. There he discovered his horse was shot in the side. The horse died before a vet arrived.
The Amish couple and their three children in the buggy were unhurt.
Sorry we are not currently accepting comments on this article.


text:
The Basis and Structure of Knowledge
Harper, 1948 - Connaissance, Théorie de la - 451 pages
From inside the book
36 pages matching geometry in this book
Where's the rest of this book?
Results 1-3 of 36
What people are saying - Write a review
We haven't found any reviews in the usual places.
the world about us
7 other sections not shown
Other editions - View all
Common terms and phrases
accepted actual analysis analytical propositions assertion assume atoms basic basis body calculus classical mechanics cognitive coherence color commutative law complete concepts confirmed criterion defined definition depends derived determined electron elements empirical entails equation essential Euclidean Euclidean geometry evidence example existence experiential fact false field first-person experience formal function geometry given hypothesis idea implies induction integration intensional logic interpretation interrelation involved knowledge language laws linguistic logic mathematical induction mathematics matter meaning measure ment mind motion nature non-Euclidean geometries number system objects observation pattern pertaining phase waves phenomena Philosophy physical possible postulates presupposes principle problem propositions qualia qualities quantity quantum mechanics question rational realm reference relation relative scientific semantics sense sense-data sequence significance space specific specious present statement statistical syllogism structure symbols theorem theory theory of relativity things tion true truth truth-values validity verifiability whole words xylene


text:
More about Nikon CoolPix S6400
Nikon CoolPix S6400 is available with mentioned stores as on December 12, 2019. Nikon CoolPix S6400 online store price is applicable to all cities including Mumbai, Delhi, Bangalore, Chennai, Pune, Kolkata, Hyderabad, Cochin, Jaipur, Patna, Ahmedabad, Chandigarh, Lucknow, Nagpur, Surat, Indore, Agra, Thane, Gurgaon, Noida. The price for Nikon CoolPix S6400 is for new Cameras and not of second hand or used Nikon CoolPix S6400. The page was last updated on December 12, 2019.


text:
Ah, the video game console. It is the machine you use when you plop down on a couch and want to play a video game. It's been that way for decades.
Console will always be the machine for gaming in the living room, right?
Maybe not. Consider the tablet...
In a study of 33 people (that's more than 30!), Google's Research division determined that people (at least 33 of them) love nothing more than to use their tablet to check e-mail or play video games. And they love using their tablet most... on the couch.
The study tracked the tablet usage of these 33 people for two weeks, across more than 700 uses of their tablets. The test subjects were located in New York, San Francisco and Milwaukee, apparently to account for differences in urban, suburban and rural usage.
Hey, Nintendo, Sony and Microsoft... good thing this is only a study of 33 people! Nothing to worry about at all. Don't worry about Steam Big Picture either. Nope. No worry needed.
Understanding Tablet Use: A Multi-Method Exploration [Google Research PDF, via Tech Crunch and Twitter]


text:
What is CricketWeb Cricket?
CricketWeb Cricket is a forum-based game where participants become virtual cricket players in the game world, taking part in simulated matches and building a career as a cricketer.
What is the aim of the game?
The game is primarily designed for fun; and the thrill of seeing your alter-ego win a permiership with his team, or progress all the way to international cricket. Of course, along the way things can get quite competitive - creating a vibrant and exciting game world.
How do I participate?
Just complete the registration form below, creating a profile for your in-game player.
Your player will be added to the database, and from there all you have to do is follow your progress!
First Name:
Last Name:
Player Role:
Player Style:
Batting Attributes:
Bowling Attributes:
Player Roles
Opener, Batsmen, All-Rounder, WK, Fast Bowler, Medium Bowler, Spin Bowler
Player Styles
Players allowed 100 total attribute points
Points total to be used on batting attirbutes and bowling attributes
A Fagina
A Monk
A Sharma
A Turb
BFP Kirk
B Smythe-Smith
C Ardley
C Lewis
CP Raftery
D Garson
D Jellett
DB Wayne
E Ames
E Morris
G Furball
G Shriram
G Sriram
GI Joe
GIMH Martyn
H Beaver
H Mork
HT Davis
I Narang
J Howe
JB de Prag
JD Hurricane
L Himann
L Townsend
M Deen
M Hunt
M La Brooy
M Morkel
M Wisney
O du Toit
O Wood
P Ingram
P Spark
R Yamadera
S Delev
S Hit
S Zadran
SC Somerset
T Loganathan
Z Dunlop
Please Note: Season One player draft has now been completed.
Sign-up remains open; however, as all CW teams are currently filled, new players will be placed on a waiting list pending a position becoming available.


text:
- circular yellow sunnies, Cuffs
- vintage floral sundress, thrifted
- Ralph Lauren chunky cardi, thrifted
- socks + sandals: Target
- vintage Coach bag: Goodwill
- arm candy: studs via FRINGE
- arm candy: circle cuffs are thrifted
Monday, May 21, 2012
Outfit Post: Suburban Jungle
33 comments:
- Franca said...
I don't think this looks grammyish at all! Either way, it's great!
- May 21, 2012 at 2:45 AM
- Franca said...
- May 21, 2012 at 2:45 AM
- Pam @ over50feeling40 said...
No...not a granny...but a really great spring look for you!
- May 21, 2012 at 2:50 AM
- Adam Kwiatkowski said...
You look perfect :)
- May 21, 2012 at 4:34 AM
- SACRAMENTO said...
You are always my hero.
Love you!!!
- May 21, 2012 at 5:24 AM
- pastcaring said...
Well, my granny never looked as good as you! Love the floral/leopard mix, and the print on your frock is delightful. Cool sunnies too! xxx
- May 21, 2012 at 5:59 AM
- Krista said...
I love flowers and I love leopard print I would have never thought to mix the two...until now. Having also come from CA to the Pacific Northwest, the crazy blooms and beauty that living in a temperate rain forest provides never gets old. Never!
- May 21, 2012 at 7:42 AM
This is a great combo with the sweater and dress. Very you!
That cello music is fabulous! Would be awesome live.
- May 21, 2012 at 8:30 AM
- Vix said...
Granny? No way! That's a fabulous combination, leopard print makes everything that bit edgier. x
- May 21, 2012 at 8:33 AM
- lasophia said...
U made a great combo here. Im loving the leopard and floral. My sisters were over yesterday looking through Vogue and saying how strange different prints looked with one another. I tried to set them straight.
- May 21, 2012 at 10:55 AM
- Jean at www.drossintogold.com said...
My dear, with the tattoos and boots, you will never be "classic" granny, thank God. You are perfect!!
- May 21, 2012 at 11:02 AM
- Lakota [Faith Hope and Charity Shopping] said...
Granny? Are you kidding? You look great - love love love the leopard and the floral dress is cute x
- May 21, 2012 at 1:44 PM
- Helga! said...
Granny?! No WAY!
I didn't relaise the leopard was a sweater ar first,it's very coat like!I love the floral frock,so 90's grunge and sooo pretty and Summery!Fab cuffs too.
Gonna go perv at this interview!
- May 21, 2012 at 2:30 PM
- Reva said...
I just LOVE those early 90's granny dresses and probably have way too many ;) You look fab as always my love!
Big ass hugs!!!
- May 21, 2012 at 6:22 PM
- Reva said...
the cello dudes were way cool!!!
- May 21, 2012 at 6:24 PM
- Adrienne said...
I love the animal and floral, I don't think it looks granny-ish!
What Lola Wants
- May 21, 2012 at 7:01 PM
I loved your interview with Cameron. Our lilacs bloomed and withered weeks ago so it is great to see them in profusion where you are. I've thrifted a couple of 80s things lately--for comfort reasons. Do you think it's coming back?
- May 21, 2012 at 7:59 PM
- The Style Crone said...
I don't think you've lost your urban edge in this fine and wondrous outfit. Gorgeous, with the purple lilacs in the background!
- May 21, 2012 at 8:01 PM
- Anne @ The Frump Factor said...
Great - now I can't get the image of a switchblade-wielding granny out of my head! Never mind. You look great, and I love the idea that animal prints and florals belong together, as in nature.
- May 21, 2012 at 9:50 PM
- LV said...
I love the colors in this dress. Very springtime, but you manage to look very edgy too.
- May 21, 2012 at 11:12 PM
- Fashion Tales.... said...
That would be some stylish grands! I love how versatile and addictive this leopard knit can become. I always need more leopard!
- May 22, 2012 at 1:02 AM
- Miss Simmonds Says said...
I want that cardigan! I love it! The back of the dress is so cute too xxx
- May 22, 2012 at 2:14 AM
- Stacey said...
If this is a grannyish look, then I can't wait to be a granny! I love this dress, and I reckon it looks awesome paired with the leopard print.
- May 22, 2012 at 2:18 AM
- La Dama said...
You abuelita? No way amor!
Your too cool for skool, you always look very radicaly gorgeous.
I find that leopard goes with everything.
Gonna go check out your interview.
Me encanta tu pelo rojo.
- May 22, 2012 at 5:29 PM
- Meghan Edge said...
This is one of my favorite outfits from anyone. I adore that cardi. Just, love it.
- May 22, 2012 at 5:44 PM
- Thrifted Shift said...
You're funny and I appreciate that. I love the phrase "sprinster spice." Untrue, but hilarious! You're hot as ever!
- May 22, 2012 at 9:43 PM
- Pull Your Socks Up! said...
No spinster spice, hot and spicy baby! Leopard print with your sunnies and glorious red hair - divinos!!!! xxxxxxx
- May 23, 2012 at 12:06 AM
- Hang T. Tran said...
Beautiful. One of my favorites from you. Full of spring Bella! I think you look sweet in the third picture ^_^
- May 23, 2012 at 3:39 AM
- Cheryl van den Berg said...
With florals and animal prints the way mother nature does it...haha...so cute!
- May 23, 2012 at 10:26 AM
- Jen said...
ohwow amaze outfit!
J x
- May 23, 2012 at 12:18 PM
- Susan said...
It is SO cute!
- May 23, 2012 at 4:28 PM
- Melanie said...
I looove this coat with this floral explosion underneath. Okay, granny sweet, debatable, but I suspect you serve up a mean hard lemonade.
- May 23, 2012 at 7:38 PM
- Kirstin Marie said...
In love with this brilliant outfit. Your hair is seriously rockin'. You are awesome!!
- May 24, 2012 at 4:01 PM


text:
Here are some of the latest health and medical news developments, compiled by the editors of HealthDay:
FDA Head Defends Approval of Zohydro Pain Drug
The controversial painkiller Zohydro fills an "important and unique niche" for treating pain, the head of the U.S. Food and Drug Administration said Thursday in defending the agency's decision to approve the drug.
During questioning before a Senate committee, Dr. Margaret Hamburg said the pill met the government's effectiveness and safety requirements, the Associated Press reported.
A number of lawmakers have criticized the FDA's approval of Zohydro, which is the first pure version of hydrocodone, the most abused medication in the nation. One question is why Zohydro was not made in a way to prevent drug abusers from injecting or snorting it.
Such forms are still in the early stages of development, Hamburg said.
Currently, the only FDA-approved drug with features meant to reduce the risk of abuse is OxyContin, the AP reported.
Experimental Drug Will be Given to Young Boy: Drug Company
A drug company has changed its mind and will give a 7-year-old boy an experimental drug that could save his life.
Chimerix announced Tuesday that Josh Hardy will be the first patient in a new trial of the drug brincidofovir that's scheduled to start Wednesday, CNN reported.
Josh's parents and supporters had waged online and media campaigns to persuade Chimerix to provide the drug to the young boy, but the company had refused until now. Josh has battled different forms of cancer since he was 9 months old.
A bone marrow transplant left Josh with a severely weakened immune system and he was diagnosed in February with an adenovirus that spread through his body. He has heart and kidney failure and is in critical condition, CNN reported.
A statement released Tuesday by St. Jude Children's Research Hospital in Memphis said the medication for Josh was expected to arrive there within 48 hours.
"It is also important to understand that this remains a critical and complex medical situation," the hopsital noted in the statement, CNN reported.


text:
|Product code
|Santa Rosa aluminum pan 25 gr
|More items available upon order
|Every box contains
|120 pieces
Extra Jam in aluminum pan from 25 g to taste Cherry GLUTEN FREE
Produced with selected fruits, prepared in the best tradition. Retain all the flavor and scent of the fruit are tasty and with lots of fruit chunks
Product expires 07/2021
Registered users can share their experience with this product. Register to access all of the benefits reserved to registered users or click on login if you are already registered.


text:
Obama to Assad: Keep promises
The United States and Russia announced a tentative deal Saturday to resolve the ongoing international crisis over Syria's chemical weapons stockpiles.
Under the draft agreement hammered out between Secretary of State John Kerry and Russian Foreign Minister Sergey Lavrov, Syria will give up all its chemical weapons stockpiles by mid-2014 and allow international inspectors into the country by November of this year.
Story Continued Below
The deal eases weeks of pressure on President Barack Obama to act against the Syrian regime's apparent use of chemical weapons on civilians — bringing to a close a tense standoff that brought the United States to the brink of military action in the Middle East.
"This framework provides the opportunity for the elimination of Syrian chemical weapons in a transparent, expeditious, and verifiable manner, which could end the threat these weapons pose not only to the Syrian people but to the region and the world," Obama said in a statement. "The international community expects the Assad regime to live up to its public commitments."
( Also on POLITICO: U.S., Russia reach agreement on Syria weapons)
The president also said he was reserving the right to act militarily if the agreement falls apart.
"The United States will continue working with Russia, the United Kingdom, France, the United Nations and others to ensure that this process is verifiable, and that there are consequences should the Assad regime not comply with the framework agreed today. And, if diplomacy fails, the United States remains prepared to act," Obama said.
Before heading out for golf Saturday morning, Obama was briefed on the deal by National Security Adviser Susan Rice, according to a pool report. The president also spoke with U.S. Ambassador to the U.N. Samantha Power and with Kerry, offering him congratulations on hammering out the pact, the report said.
"Actions will matter more than words," Kerry said in Geneva, referring to Syrian President Bashar Assad's regime. "We have committed here to a standard that says 'verify and verify.'"
Pentagon press secretary George Little echoed Obama and Kerry's statements, adding that the military hasn't made changes to its force posture yet.
"The credible threat of military force has been key to driving diplomatic progress, and it's important that the Assad regime lives up to its obligations under the framework agreement," Little said in a statement.
Speaking in Geneva, where he negotiated the agreement with Lavrov, Kerry credited both the threat of force and the frenzied diplomacy on the part of both the United States and Russia for the breakthrough.
"I have no doubt that the combination of the threat of force and the willingness to pursue diplomacy helped bring us to this moment," Kerry said.
The first tentative outlines of a deal emerged only after Kerry spoke off-the-cuff in Europe last week — suggesting that the only way the Syrian government could avoid a punitive strike was to hand over their stockpiles to the international community.
Though aides initially said he was not speaking for the White House and was simply making a rhetorical point, the Russians leapt on the suggestion. Within hours, the Kerry plan was embraced as the best possible solution by White House officials and by congressional leaders eager to dodge a vote on approving a military action highly unpopular with the war-weary American public.
Congressional leaders in both parties had been struggling to find enough votes among the rank-and-file for a resolution authorizing military force. Kerry's plan — and Saturday's announcement of a tentative deal — spares members of Congress for the time being from a vote on an unpopular use-of-force resolution.
In announcing the deal, Kerry thanked Russian President Vladimir Putin and his government for its work on the agreement.
"Diplomacy requires willing partners. And I want to thank President Putin for his willingness to pick up the possibility of negotiation the end of Syrian weapons of mass destruction."
Under the terms of the deal, which were released by the State Department, the United States and Russia will submit a plan to the Organization for the Prohibition of Chemical Weapons in the next few days "setting down special procedures for expeditious destruction of the Syrian chemical weapons program and stringent verification thereof."
In the text of the "framework" released by the State Department early Saturday, Russia and the United States commit to seek action by the U.N. Security Council to create consequences if Syria doesn't fully comply.
"In the event of non-compliance, including unauthorized transfer, or any use of chemical weapons by anyone in Syria, the UN Security Council should impose measures under Chapter VII of the UN Charter," the U.S.-Russia deal says, referring to provisions that can be used to provide international authority for the use military force.


text:
The United States stopped short of recognizing the Syrian opposition as the legitimate representative of the Syrian people at Friday's international gathering on Syria – but that move is likely to come soon.
When it does, it will reflect a shift of the international community to the side of the still-developing Syrian National Council and Syrian Free Arm and, probably, fatal isolation of the regime of President Bashar al-Assad.
It will also bear the imprint of Secretary of State Hillary Rodham Clinton, who, more hawkish and interventionist than the president she serves, will have carried the day as she did less than a year ago in the case of Libya.
At Friday's "Friends of Syria" meeting in Tunisia, more than 60 countries and international humanitarian organizations developed plans for getting humanitarian aid to Syria's besieged population. The gathering also sought to ramp up pressure on Mr. Assad to allow safe access to humanitarian organizations to get aid into the country.
In an initial sign that Assad might be listening, the Syrian Red Crescent reported Friday that it was being allowed to evacuate wounded women and children from the most devastated neighborhoods of Homs, a city under relentless bombardment by government forces over recent weeks.
The "Friends" meeting also endorsed the concept of a joint Arab League-United Nations peacekeeping force that would enter Syria, presumably once Assad left power, and secure the country during a democratic transition process.
The meeting suffered from the glaring absence of Russia and China. Their joint veto of UN Security Council action on Syria earlier this month continues to limit the possibilities and effectiveness of international intervention. Some countries lay responsibility for Syria's mounting violence and death toll at Russia's feet, with France in particular declaring that Assad has interpreted the veto as "a license to kill."
What happened on the margins of the "Friends" meeting was, in some ways, as important to Syria's future as what in the general sessions. British Foreign Minister William Hague announced his country's recognition of the Syrian National Council, the opposition umbrella group, before he met with the council's president, Burhan Ghalioun. Secretary Clinton also met with Mr. Ghalioun.
Saying Britain's intent is to "intensify our links with the opposition," Mr. Hague said a number of countries "will now treat them and recognize them as a legitimate representative of the Syrian people."
In her comments to the meeting, Clinton described the Syrian National Council (SNC) as "a leading legitimate representative of Syrians seeking peaceful democratic change" and as an "effective representative for the Syrian people with governments and international organizations."
But she also hinted at US frustration with the inability of Syria's disparate opposition forces to unite under one representative transitional coalition, as the opposition in Libya did. Clinton praised the SNC for "articulating a plan for the future" but added that the US is looking for "the full range of opposition groups and individuals in Syria, including representatives of all ethnic and religious minorities, to come together around that common vision" for Syria's political transition.
American and other Western officials, as well as Arab League diplomats, have expressed exasperation at the Syrian opposition's inability to overcome deep political, sectarian, and ethnic divisions to forge a common future course.
"What we are expecting is unity of the opposition, but we have been expecting this for months," a senior European diplomat told a group of journalists in Washington Thursday. A year into the Syrian crisis the divisions remain frustratingly deep, he added. "In the case of Libya "it was done in a matter of a few weeks."
The opposition's lack of unity is one reason the "Friends" meeting did not take up arming the rebels of the Syrian Free Army, made up largely of soldiers who have deserted the Syrian military. The SFA, based in Turkey, does not coordinate with the Syrian National Council, let alone consider itself its armed wing. Still, some countries, including Saudi Arabia, spoke enthusiastically about the idea of sending arms to opposition forces.
Clinton steered clear of the issue in her formal remarks, but in informal comments she did reiterate the administration's softening on arming the rebels, which the State Department and White House had unveiled earlier in the week.
On Thursday while in London, Clinton said, "There will be increasingly capable opposition forces. They will – from somewhere, somehow – find the means to defend themselves as well as begin offensive measures." She added, "World opinion is not going to stand idly by."
Some foreign policy analysts, noting Clinton's role in persuading President Obama to engage the US militarily on the side of Libya's rebels, speculate that Clinton could return from the Tunis meeting determined not to see the US "stand idly by" regarding Syria either.
While no one expects the US to enter the Syria crisis militarily, the US could join other Western powers and Arab League countries in pressing for a more aggressive international stance to confront Assad. Anne-Marie Slaughter – Clinton's former policy planning director at the State Department – has called for the establishment of "no-kill zones" inside Syria.
In an opinion piece in The New York Times Friday, Dr. Slaughter said the "Friends of Syria," including the US, should help the Free Syrian Army establish "no-kill zones" along Syria's border with Jordan, Lebanon, and Turkey, where all Syrians could find refuge from Assad's assault and access to international humanitarian aid.
Slaughter says a plan to "create zones of peace in what are now zones of death" should come from the region – the Arab league and Turkey – just as regional powers took the lead in the Libya crisis.
Establishing the zones, she says, would require neighboring countries such as Turkey and Syria to arm rebel forces – and with heavier arms than the rifles they currently operate with, including antitank and portable anti-aircraft weapons.
The plan's intent is to create safe havens. But a byproduct would seem to be development of the "increasingly capable opposition forces" Clinton talked about.