Changelog
Version 2.3.x
| Date | Description | Ticket |
|---|---|---|
| 2013/08/19 | add an install.rb file to mcollective | 22220 |
| 2013/08/02 | Support Stomp 1.1 with RabbitMQ and ActiveMQ | 15182 |
| 2013/07/31 | Surpress Errno::ESRCH info messages when running shell commands | 21779 |
| 2013/07/11 | Release 2.3.2 | 21527 |
| 2013/07/03 | Improve error reporting when requesting docs for a non existing plugin | 21429 |
| 2013/07/03 | Support aggregate plugins in ‘mco plugin doc’ | 18414 |
| 2013/07/03 | Allow the ActiveMQ and RabbitMQ SSL cert paths to be set using environment variables | 20550 |
| 2013/06/23 | Gracefully handle whitespaces in the config file before config keys | 21407 |
| 2013/06/19 | Ensure the line numbers are printed correctly on both Windows and Unix | 20506 |
| 2013/06/19 | Remove the rpchelptemplate and helptemplatedir options | 20714 |
| 2013/06/18 | Correctly detect Windows absolute paths | 21251 |
| 2013/06/10 | Fix and centralize handling of boolean values for settings | 19751 |
| 2013/06/06 | Clone the default values from the DDL to avoid accidental modifications to the cached DDL file | 21104 |
| 2013/06/05 | Filter methods on the RPC Client are now idempotent | 20233 |
| 2013/06/04 | run() call in an agent can return incorrect Process::Status | 17667 |
| 2013/06/03 | Improve debian dependencies so packages can be rebuilt in a chroot | 20950 |
| 2013/05/28 | Set expire headers in the ActiveMQ and RabbitMQ message headers | 19905 |
| 2013/05/10 | Correctly detect version differences in semver version where the path level is greater 10 | 20661 |
| 2013/05/01 | Improve behaviour of data matchers when return values are nil | 20059 |
| 2013/04/29 | Improve config defaults on windows machines | 20388 |
| 2013/04/18 | Enforce valid identity names in the file discovery method | 20282 |
| 2013/04/11 | Add direct addressing awareness to the fire and forget request mode | 17930 |
| 2013/03/22 | Remove the topicprefix, queueprefix and topicsep options | 19673 |
| 2013/03/21 | Remove the plugin.discovery.timeout setting as it’s not relevant anymore | 19694 |
| 2013/03/21 | Improve error reporting from the rpc application in the light of direct_addressing | 19827 |
| 2013/03/20 | Fail with a friendly error message when no libdir is set | 19752 |
| 2013/03/14 | Change default RabbitMQ and ActiveMQ ports to 61613 | 19734 |
| 2013/03/13 | Set correct reply-to headers in the RabbitMQ connector | 17034 |
| 2013/03/12 | Pre-populate the data from data plugins like agent replies | 19564 |
| 2013/03/12 | Explicitly include StringIO | 19367 |
| 2013/03/12 | Enable direct addressing by default | 19665 |
| 2013/02/20 | Fix error code collision on PLMC18 | 19366 |
| 2013/02/15 | Validate arguments supplied to the RPC application and raise errors sooner | 19181 |
| 2013/02/14 | Release 2.3.1 | 19265 |
| 2013/02/14 | Initial work towards internationalization and online help | 18663 |
| 2013/02/14 | Update vendored JSON gem for CVE-2013-0269 | 19265 |
| 2013/02/13 | Restore the ability to set a discovery timeout on a RPC client | 19238 |
| 2013/02/12 | Replace underscores in plugin names with dashes to keep Debian happy | 19200 |
| 2013/02/12 | Fix package building on certain Debian systems | 19141 |
| 2013/02/12 | Remove the stomp connector | 19146 |
| 2013/02/07 | Read the client config before trying to use any configuration options | 19105 |
| 2013/01/22 | When an argument fails to parse in the rpc application fail rather than continue with unintended consequences | 18773 |
| 2013/01/22 | The fix the –no-response argument to the rpc application that broke due to 18438 | 18513 |
| 2013/01/22 | Set = dependencies on the various packages that form a plugin rather than >= | 18758 |
| 2013/01/21 | Improve presentation of the –help output for applications | 18447 |
| 2013/01/21 | When a request failed via reply.fail, only show the message and not the half built data | 18434 |
| 2013/01/10 | Release 2.3.0 | 18259 |
| 2013/01/10 | Raise the correct exception when trying to access unknown data items in a Data results | 18466 |
| 2013/01/10 | Fix failing documentation generation for data plugins | 18437 |
| 2013/01/09 | Correctly support negative boolean flags declared as –[no]-foo | 18438 |
| 2013/01/03 | Add the package iteration number as a dependency for the common packages | 18273 |
| 2012/12/21 | The libdirs supplied in the config file now has to be absolute paths to avoid issues when daemonising | 16018 |
| 2012/12/20 | Logs the error and backtrace when an action fails | 16414 |
| 2012/12/20 | Display the values of :optional and :default in DDL generated help | 16616 |
| 2012/12/20 | Allow the query string for the get_data action in rpcutil to be 200 chars | 18200 |
| 2012/12/19 | Do not fail when packaging non-agent packages using custom paths | 17281 |
| 2012/12/19 | Require Ruby > 1.8 in the RPM specs for Ruby 1.9 | 17149 |
| 2012/12/18 | Allow required inputs to specify default data in DDLs | 17615 |
| 2012/11/12 | When disconnecting set the connection to nil | 17384 |
| 2012/11/08 | Define a specific buildroot to support RHEL5 systems correctly | 17516 |
| 2012/11/08 | Use the correct rpmbuild commands on systems with rpmbuild-md5 | 17515 |
| 2012/10/22 | Correctly show help for data plugins without any input queries | 17137 |
| 2012/10/22 | Allow the rpcutil#get_data action to work with data queries that takes no input | 17138 |
| 2012/10/03 | Improve text output when providing custom formats for aggregations | 16735 |
| 2012/10/03 | Correctly process supplied formats when displaying aggregate results | 16415 |
| 2012/10/03 | Prevent one failing aggregate function from impacting others | 16411 |
| 2012/10/03 | When validation fails indicate which input key has the problem | 16617 |
| 2012/09/26 | Data queries can be written without any input queries meaning they take no input | 16424 |
| 2012/09/26 | Use correct timeout for agent requests when using direct addressing | 16569 |
| 2012/09/26 | Allow BigNum data to be used in data plugin replies | 16503 |
| 2012/09/26 | Support non string data in the summary aggregate function | 16410 |
Version 2.2.x
| Date | Description | Ticket |
|---|---|---|
| 2013/05/21 | Release 2.2.4 | 20592 |
| 2013/05/10 | Correctly detect version differences in semver version where the path level is greater 10 | 20661 |
| 2013/05/07 | Support the latest version of the JSON gem | 20594 |
| 2013/04/29 | Improve config defaults on windows machines | 20388 |
| 2013/03/13 | Set correct reply-to headers in the RabbitMQ connector | 17034 |
| 2013/03/12 | Explicitly include StringIO | 19367 |
| 2013/02/14 | Release 2.2.3 | 19265 |
| 2013/02/14 | Update vendored JSON gem for CVE-2013-0269 | 19265 |
| 2013/02/13 | Restore the ability to set a discovery timeout on a RPC client | 19238 |
| 2013/02/12 | Replace underscores in plugin names with dashes to keep Debian happy | 19200 |
| 2013/02/12 | Fix package building on certain Debian systems | 19141 |
| 2013/02/12 | Deprecate the stomp connector | 19146 |
| 2013/02/07 | Read the client config before trying to use any configuration options | 19105 |
| 2013/01/22 | Set = dependencies on the various packages that form a plugin rather than >= | 18758 |
| 2013/01/17 | Release 2.2.2 | 18258 |
| 2013/01/03 | Add the package iteration number as a dependency for the common packages | 18273 |
| 2012/12/24 | Restore the :any validator | 18265 |
| 2012/12/19 | Do not fail when packaging non-agent packages using custom paths | 17281 |
| 2012/12/19 | Require Ruby > 1.8 in the RPM specs for Ruby 1.9 | 17149 |
| 2012/11/08 | Define a specific buildroot to support RHEL5 systems correctly | 17516 |
| 2012/11/08 | Use the correct rpmbuild commands on systems with rpmbuild-md5 | 17515 |
| 2012/10/22 | Correctly show help for data plugins without any input queries | 17137 |
| 2012/10/22 | Allow the rpcutil#get_data action to work with data queries that takes no input | 17138 |
| 2012/10/17 | Release 2.2.1 | 16965 |
| 2012/10/03 | Improve text output when providing custom formats for aggregations | 16735 |
| 2012/10/03 | Correctly process supplied formats when displaying aggregate results | 16415 |
| 2012/10/03 | Prevent one failing aggregate function from impacting others | 16411 |
| 2012/10/03 | When validation fails indicate which input key has the problem | 16617 |
| 2012/09/26 | Data queries can be written without any input queries meaning they take no input | 16424 |
| 2012/09/26 | Use correct timeout for agent requests when using direct addressing | 16569 |
| 2012/09/26 | Allow BigNum data to be used in data plugin replies | 16503 |
| 2012/09/26 | Support non string data in the summary aggregate function | 16410 |
| 2012/09/14 | Package discovery plugins that was left out for debian | 16413 |
| 2012/09/13 | Release 2.2.0 | 16323 |
Version 2.1.x
| Date | Description | Ticket |
|---|---|---|
| 2012/09/10 | Update the vendored systemu gem | 16289 |
| 2012/09/06 | Improve error reporting for empty certificate files | 15924 |
| 2012/09/05 | Restore the verbose behavior while building packages | 16216 |
| 2012/09/04 | Add a fetch method that mimic Hash#fetch to RPC Results and Requests | 16222 |
| 2012/09/04 | Include the required mcollective version in packages that include the requirement | 16173 |
| 2012/08/29 | Add a RabbitMQ specific connector plugin | 16168 |
| 2012/08/22 | DDL files can now specify which is the minimal version of mcollective they require | 15850 |
| 2012/08/22 | Fix a bug when specifying a custom target directory for packages | 15956 |
| 2012/08/22 | When producing plugin packages keep the source deb and rpm | 15917 |
| 2012/08/09 | Improve error handling in the plugin application | 15848 |
| 2012/08/08 | Add the ability to store general usage information in the DDL | 15633 |
| 2012/08/02 | Restore the formatting of the progress bar that was broken in 14255 | 15805 |
| 2012/08/01 | Display an error when no aggregate results could be computed | 15793 |
| 2012/08/01 | Create a plugin system for validators | 5078 |
| 2012/07/19 | Create a thread safe caching layer and use it to optimize loading of DDL files | 15582 |
| 2012/07/19 | Correctly calculate discovery timeout in all cases and simplify logic around this | 15602 |
| 2012/07/17 | Update the name field in the rpcutil DDL for consistency | 15558 |
| 2012/07/17 | Validate requests against the DDL in the agents prior to authorization or calling actions | 15557 |
| 2012/07/17 | Refactor the single big DDL class into a class per type of plugin | 15109 |
| 2012/07/16 | Default to the configured default discovery method in the RPC client when nothing is supplied | 15506 |
| 2012/07/16 | Improve error handling in generate application | 15473 |
| 2012/07/12 | Release 2.1.1 | 15379 |
| 2012/07/11 | Add a –display option to RPC clients that overrides the DDL display mode | 15273 |
| 2012/07/10 | Do not add a metadata to agents created with the generator as they are now deprecated | 15445 |
| 2012/07/03 | Correctly parse numeric and boolean data on the CLI in the rpc application | 15344 |
| 2012/07/03 | Fix a bug related to parsing regular expressions in compound statements | 15323 |
| 2012/07/02 | Update vim snippets in ext for new DDL features | 15273 |
| 2012/06/29 | Create a common package for agent packages containing the DDL for servers and clients | 15268 |
| 2012/06/28 | Improve parsing of compound filters where the first argument is a class | 15271 |
| 2012/06/28 | Add the ability to declare automatic result summarization in the DDL files for agents | 15031 |
| 2012/06/26 | Suppress subscribing to reply queues when no reply is expected | 15226 |
| 2012/06/25 | Batched RPC requests will now all have the same requestid | 15195 |
| 2012/06/25 | Record the request id on M::Client and in the RPC client stats | 15194 |
| 2012/06/24 | Use UUIDs for the request id rather than our own weak implementation | 15191 |
| 2012/06/18 | The DDL can now define defaults for outputs and the RPC replies are pre-populated | 15087 |
| 2012/06/18 | Remove unused agent help code | 15084 |
| 2012/06/18 | Remove unused code from the discovery agent related to inventory and facts | 15083 |
| 2012/06/18 | Nodes will now refuse to load RPC agents without DDL files | 15082 |
| 2012/06/18 | The Plugin Name and Type is now available to DDL objects | 15076 |
| 2012/06/15 | Add a get_data action to the rpcutil agent that can retrieve data from data plugins | 15057 |
| 2012/06/14 | Allow the random selection of nodes to be deterministic | 14960 |
| 2012/06/12 | Remove the Client#discovered_req method and add warnings to the documentation about its use | 14777 |
| 2012/06/11 | Add a discovery source capable of doing introspection on running agents | 14945 |
| 2012/06/11 | Only do identity filter optimisations for the mc discovery source | 14942 |
| 2012/06/08 | Release 2.1.0 | 14846 |
| 2012/06/07 | Force discovery state to be reset when changing collectives in the RPC client | 14874 |
| 2012/06/07 | Create code generators for agents and data plugins | 14717 |
| 2012/06/07 | Fix the No response from report to be correctly formatted | 14868 |
| 2012/06/07 | Sub collectives and direct addressing mode now works correctly | 14668 |
| 2012/06/07 | The discovery method is now pluggable, included is one supporting flat files | 14255 |
| 2012/05/28 | Add an application to assist shell completion systems with bash and zsh completion plugins | 14196 |
| 2012/05/22 | Improve error messages from the packager when a DDL file cannot be found | 14595 |
| 2012/05/17 | Add a dependency on stomp to the rubygem | 14300 |
| 2012/05/17 | Adjust the ActiveMQ and Stomp connect_timeout to allow IPv4 fall back to happen in dual homed hosts | 14496 |
| 2012/05/16 | Add a plugable data source usable in discovery and other plugins | 14254 |
| 2012/05/04 | Improve version dependencies and upgrade experience of debian packages | 14277 |
| 2012/05/03 | Add the ability for the DDL to load DDL files from any plugin type | 14293 |
| 2012/05/03 | Rename the MCollective::RPC::DDL to MCollective::DDL to match its larger role in all plugins | 14254 |
Version 2.0.x
| Date | Description | Ticket |
|---|---|---|
| 2013/02/14 | Release 2.0.1 | 19265 |
| 2013/02/14 | Update vendored JSON gem for CVE-2013-0269 | 19265 |
| 2012/05/04 | Improve version dependencies and upgrade experience of debian packages | 14277 |
| 2012/04/30 | Release 2.0.0 | 13900 |
Version 1.3.x
| Date | Description | Ticket |
|---|---|---|
| 2012/04/30 | Compound filters when set from the RPC client were not working | 14239 |
| 2012/04/25 | Various improvements to the RPM spec file wrt licencing, dependencies etc | 9451 |
| 2012/04/25 | Support using rpmbuild-md5 to create RPMs and support Fedora | 14159 |
| 2012/04/25 | Improve LSB compliance in the Red Hat and Debian RC scripts | 14151 |
| 2012/04/19 | Fix reference to topicnamesep and remove topicprefix from examples | 13873 |
| 2012/04/19 | Remove dependency on FPM for building RPM and Deb packages | 13573 |
| 2012/04/18 | Improve default output format from the mco script | 14056 |
| 2012/04/17 | Remove unintended requirement that only newest stomp gems be used | 13978 |
| 2012/04/12 | New init script for Debian that uses LSB functions to start and stop the daemon | 13043 |
| 2012/04/12 | Use sed -i in the Rakefile to improve compatibility with OS X | 13324 |
| 2012/04/11 | Fix compatibility with Ruby 1.9.1 by specifically loading rbconfig early on | 13872 |
| 2012/04/05 | Release 1.3.3 | 13599 |
| 2012/04/04 | Use the MCollective::SSL utility class for crypto functions in the SSL security plugin | 13615 |
| 2012/04/02 | Support reading public keys from SSL Certificates as well as keys | 13534 |
| 2012/04/02 | Move the help template to the common package for both Debian and RedHat | 13434 |
| 2012/03/30 | Support Stomp 1.2.2 CA verified connection to ActiveMQ | 10596 |
| 2012/03/27 | mco help rpc now shows the help for the rpc application | 13350 |
| 2012/03/22 | Add a mco command that creates native OS packaging for plugins | 12597 |
| 2012/03/21 | Default to console based logging at warning level for clients | 13285 |
| 2012/03/20 | Work around SSL_read errors when using SSL or AES plugins and Stomp+SSL in Ruby < 1.9.3 | 13207 |
| 2012/03/16 | Improve logging for SSL connections when using Stomp Gem newer than 1.2.0 | 13165 |
| 2012/03/14 | Simplify handling of signals like TERM and INT and remove pid file on exit | 13105 |
| 2012/03/13 | Create a conventional place to store implemented_by scripts | 13064 |
| 2012/03/09 | Handle exceptions added to the Stomp 1.1 compliant versions of the Stomp gem | 13020 |
| 2012/03/09 | Specifically enable reliable communications while using the pool style syntax | 13040 |
| 2012/03/06 | Initial support for the Windows Platform | 12555 |
| 2012/03/05 | Application plugins can now disable any of 3 sections of the standard CLI argument parsers | 12859 |
| 2012/03/05 | Fix base 64 encoding and decoding of message payloads that would previous raise unexpected exceptions | 12950 |
| 2012/03/02 | Treat :hosts and :nodes as equivalents when supplying discovery data, be more strict about flags discover will accept | 12852 |
| 2012/03/02 | Allow exit() to be used everywhere in application plugins, not just in the main method | 12927 |
| 2012/03/02 | Allow batch mode to be enabled and disabled on demand during the life of a client | 12854 |
| 2012/02/29 | Show the progress bar before sending any requests to give users feedback as soon as possible rather than after first result only | 12865 |
| 2012/02/23 | Do not log exceptions in the RPC application when a non existing action is called with request parameters | 12719 |
| 2012/02/17 | Log miscellaneous Stomp errors at error level rather than debug | 12705 |
| 2012/02/17 | Improve subscription tracking by using the subID feature of the Stomp gem and handle duplicate exceptions | 12703 |
| 2012/02/15 | Improve error handling in the inventory application for non responsive nodes | 12638 |
| 2012/02/14 | Comply to Red Hat guideline by not setting mcollective to start by default after RPM install | 9453 |
| 2012/02/14 | Allow building the client libraries as a gem | 9383 |
| 2012/02/13 | On Red Hat like systems read /etc/sysconfig/mcollective in the init script to allow modification of the environment | 7441 |
| 2012/02/13 | Make the handling of symlinks to the mco script more robust to handle directories with mc- in their name | 6275 |
| 2012/02/01 | systemu and therefore MC::Shell can sometimes return nil exit code, the run() method now handles this better by returning -1 exit status | 12082 |
| 2012/01/27 | Improve handling of discovery data on STDIN to avoid failures when run without a TTY and without supplying discovery data | 12084 |
| 2012/01/25 | Allow the syslog facility to be configured | 12109 |
| 2012/01/13 | Add a RPC agent validator to ensure input is one of list of known good values | 11935 |
| 2012/01/09 | The printrpc helper did not correctly display empty strings in received output | 11012 |
| 2012/01/09 | Add a halt method to the Application framework and standardize exit codes | 11280 |
| 2011/11/21 | Remove unintended dependency on pp in the ActiveMQ plugin | 10992 |
| 2011/11/17 | Allow reply to destinations to be supplied on the command line or API | 9847 |
| 2011/11/17 | Release 1.3.2 | 10830 |
| 2011/11/16 | Improve error reporting for code errors in application plugins | 10883 |
| 2011/11/15 | The limit method is now configurable on each RPC client as well as the config file | 7772 |
| 2011/11/15 | Add a –graph option to the ping application that shows response distribution | 10864 |
| 2011/11/14 | An ActiveMQ specific connector was added that supports direct connections | 7899 |
| 2011/11/11 | SimpleRPC clients now support native batching with –batch | 5939 |
| 2011/11/11 | The client now unsubscribes from topics when it’s idle minimising the risk of receiving misdirected messages | 10670 |
| 2011/11/09 | Security plugins now ignore miss directed messages early thus using fewer resources | 10671 |
| 2011/10/28 | Support ruby-1.9.2-p290 and ruby-1.9.3-rc1 | 10352 |
| 2011/10/27 | callerid, certificate names, and identity names can now only have \w . and - in them | 10327 |
| 2011/10/25 | When discovery information is provided always accept it without requiring reset first | 10265 |
| 2011/10/24 | Add :number, :integer and :float to the DDL and rpc application | 9902 |
| 2011/10/22 | Speed up discovery when limit targets are set | 10133 |
| 2011/10/22 | Do not attempt to validate TTL and Message Times on replies in the SSL plugin | 10226 |
| 2011/10/03 | Allow the RPC client to raise an exception rather than exit on failure | 9360 |
| 2011/10/03 | Allow the TTL of requests to be set in the config file and the SimpleRPC API | 9399 |
| 2011/09/26 | Cryptographically secure the TTL and Message Time of requests when using AES and SSL plugins | 9400 |
| 2011/09/20 | Update default shipped configurations to provide a better out of the box experience | 9452 |
| 2011/09/20 | Remove deprecated mc- scripts | 9402 |
| 2011/09/20 | Keep track of messages that has expired and expose the stat in rpcutil and inventory application | 9456 |
| 2011/09/16 | Release 1.3.1 | 9133 |
| 2011/09/9 | Use direct messaging where possible for identity filters and make the rpc application direct aware | 8466 |
| 2011/08/29 | Enforce a 60 second TTL on all messages by default | 8325 |
| 2011/08/29 | Change the default classes.txt file to be in line with Puppet defaults | 9133 |
| 2011/08/06 | Add reload-agents and reload-loglevel commands to the redhat RC script | 7730 |
| 2011/08/06 | Avoid reloading the authorization class over and over from disk on each request | 8703 |
| 2011/08/06 | Add a boolean validator to SimpleRPC agents | 8799 |
| 2011/08/06 | Justify text results better when using printrpc | 8807 |
| 2011/07/22 | Add –version to the mco utility | 7822 |
| 2011/07/22 | Add missing meta data to the discovery agent | 8497 |
| 2011/07/18 | Raise an error if invalid format fact filters are supplied | 8419 |
| 2011/07/14 | Add a rich discovery query language | 8181 |
| 2011/07/08 | Do not set RUBYLIB in the RC scripts, the OS should do the right thing | 8063 |
| 2011/07/07 | Add a -j argument to all SimpleRPC clients that causes printrpc to produce JSON data | 8280 |
| 2011/06/30 | Add the ability to do point to point comms for requests affecting small numbers of hosts | 7988 |
| 2011/06/21 | Add support for Stomp Gem version 1.1.9 callback based logging | 7960 |
| 2011/06/21 | On the server side log missing DDL files at debug and not warning level | 7961 |
| 2011/06/16 | Add the ability for nodes to subscribe to per-node queues, off by default | 7225 |
| 2011/06/12 | Remove assumptions about middleware structure from the core and move it to the connector plugins | 7619 |
| 2011/06/08 | Release 1.3.0 | 7796 |
| 2011/06/07 | Exceptions raised during option parsing were not handled and resulted in stack traces | 7796 |
| 2011/06/06 | Remove the sshkey, it’s being moved to the plugin repository | 7794 |
| 2011/06/02 | Correct parsing of MCOLLECTIVE_EXTRA_OPTS in cases where no config related settings were set | 7755 |
| 2011/05/31 | Disconnect from the middleware when an application calls exit | 7712 |
| 2011/05/29 | Validations failure in RPC agents will now raise the correct exceptions as documented | 7711 |
| 2011/05/25 | Make the target collective for registration messages configurable | 7650 |
| 2011/05/24 | Rename the connector plugins send method to publish to avoid issues ruby Object#send | 7623 |
| 2011/05/23 | Log a warning when the CF file parsing fails rather than raise a whole ruby exception | 7627 |
| 2011/05/23 | Allow applications to use the exit method as would normally be expected | 7626 |
| 2011/05/22 | Refactor subscribe and unsubscribe so that middleware structure is entirely contained in the connectors | 7620 |
| 2011/05/21 | Add the ability for agents to programatically declare if they should work on a node | 7583 |
| 2011/05/20 | Improve error reporting in the single application framework | 7574 |
| 2011/05/16 | Allow . in fact names | 7532 |
| 2011/05/16 | Fix compatability issues with RH4 init system | 7448 |
| 2011/05/15 | Handle failures from remote nodes better in the inventory app | 7524 |
| 2011/05/06 | Revert unintended changes to the Debian rc script | 7420 |
| 2011/05/06 | Remove the test agent that was accidentally checked in | 7425 |
Version 1.2.x
| Date | Description | Ticket |
|---|---|---|
| 2011/06/30 | Release 1.2.1 | 8117 |
| 2011/06/02 | Correct parsing of MCOLLECTIVE_EXTRA_OPTS in cases where no config related settings were set | 7755 |
| 2011/05/23 | Allow applications to use the exit method as would normally be expected | 7626 |
| 2011/05/16 | Allow . in fact names | 7532 |
| 2011/05/16 | Fix compatability issues with RH4 init system | 7448 |
| 2011/05/15 | Handle failures from remote nodes better in the inventory app | 7524 |
| 2011/05/06 | Revert unintended changes to the Debian rc script | 7420 |
| 2011/05/06 | Remove the test agent that was accidentally checked in | 7425 |
| 2011/05/04 | Release 1.2.0 | 7227 |
Version 1.1.x
| Date | Description | Ticket |
|---|---|---|
| 2011/05/03 | Improve Red Hat RC script by using distro builtin functions | 7340 |
| 2011/05/01 | Support setting a priority on Stomp messages | 7246 |
| 2011/04/30 | Handle broken and incomplete DDLs better and improve the format of DDL output | 7191 |
| 2011/04/23 | Encode the target agent and collective in requests | 7223 |
| 2011/04/20 | Make the SSL Cipher used a config option | 7191 |
| 2011/04/20 | Add a clear method to the PluginManager that deletes all plugins, improve test isolation | 7176 |
| 2011/04/19 | Abstract the creation of request and reply hashes to simplify connector plugin development | 5701 |
| 2011/04/15 | Improve the shellsafe validator and add a Util method to do shell escaping | 7066 |
| 2011/04/14 | Update Rakefile to have a mail_patches task | 6874 |
| 2011/04/13 | Update vendored systemu library for Ruby 1.9.2 compatability | 7067 |
| 2011/04/12 | Fix failing tests on Ruby 1.9.2 | 7067 |
| 2011/04/11 | Update the DDL documentation to reflect the mco help command | 7042 |
| 2011/04/11 | Document the use filters on the CLI | 5917 |
| 2011/04/11 | Improve handling of unknown facts in Util#has_fact? to avoid exceptions about nil#clone | 6956 |
| 2011/04/11 | Correctly set timeout on the discovery agent to 5 seconds as default | 7045 |
| 2011/04/11 | Let rpcutil#agent_inventory supply unknown for missing values in agent meta data | 7044 |
| 2011/04/07 | Release 1.1.4 | 6952 |
| 2011/03/28 | Correct loading of vendored JSON gem | 6877 |
| 2011/03/28 | Show collective and sub collective info in the inventory application | 6872 |
| 2011/03/23 | Disconnect from the middleware when mcollectived disconnects | 6821 |
| 2011/03/21 | Update rpcutil ddl file to be less strict about valid fact names | 6764 |
| 2011/03/22 | Support reading configuration from configfir/plugin.d for plugins | 6623 |
| 2011/03/21 | Update default configuration files for subcollectives | 6741 |
| 2011/03/16 | Add the ability to implement actions using external scripts | 6705 |
| 2011/03/15 | Port mc-controller to the Application framework and deprecate the exit command | 6637 |
| 2011/03/13 | Only cache registration and discovery agents, handle the rest as new instances | 6692 |
| 2011/03/08 | PluginManager can now create new instances on demand for a plugin type | 6622 |
| 2011/03/07 | Release 1.1.3 | 6609 |
| 2011/03/04 | Rename /usr/sbin/mc to /usr/bin/mco | 6578 |
| 2011/03/01 | Wrap rpcclient in applications ensuring that options is always set | 6308 |
| 2011/02/28 | Make communicating with the middleware more robust by including send calls in timeouts | 6505 |
| 2011/02/28 | Create a wrapper to safely run shell commands avoiding zombies | 6392 |
| 2011/02/19 | Introduce Subcollectives for network partitioning | 5967 |
| 2011/02/19 | Improve error handling when parsing arguments in the rpc application | 6388 |
| 2011/02/19 | Fix error logging when file_logger creation fails | 6387 |
| 2011/02/17 | Correctly parse MCOLLECTIVE_EXTRA_OPTS in the new unified binary framework | 6354 |
| 2011/02/15 | Allow the signing key and Debian distribution to be customized | 6321 |
| 2011/02/14 | Remove inadvertently included package.ddl | 6313 |
| 2011/02/14 | Handle missing libdirs without crashing | 6306 |
| 2011/02/14 | Release 1.1.2 | 6303 |
| 2011/02/13 | Surpress replies to SimpleRPC clients who did not request results | 6305 |
| 2011/02/11 | Fix Debian packaging error due to the same file in multiple packages | 6276 |
| 2011/02/11 | The application framework will now disconnect from the middleware for consistancy | 6292 |
| 2011/02/11 | Returning nil from a registration plugin will skip registration | 6289 |
| 2011/02/11 | Set loglevel to warn by default if not specified in the config file | 6287 |
| 2011/02/10 | Fix backward compatability with empty fact strings | 6278 |
| 2011/02/07 | Release 1.1.1 | 6080 |
| 2011/02/02 | Load the DDL from disk once per printrpc call and not for every result | 5958 |
| 2011/02/02 | Include full Apache 2 license text | 6113 |
| 2011/01/31 | Create a new single executable application framework | 5897 |
| 2011/01/30 | Fix backward compatibility with old foo=/bar/ style fact searches | 5985 |
| 2011/01/30 | Documentation update to reflect correct default identity behavior | 6073 |
| 2011/01/29 | Let the YAML file force fact reloads when the files update | 6057 |
| 2011/01/29 | Add the ability for fact plugins to force fact invalidation | 6057 |
| 2011/01/29 | Document an approach to disable type validation in the DDL | 6066 |
| 2011/01/19 | Add basic filters to the mc-ping command | 5933 |
| 2011/01/19 | Add a ping action to the rpcutil agent | 5937 |
| 2011/01/17 | Allow MC::RPC#printrpc to print single results | 5918 |
| 2011/01/16 | Provide SimpleRPC style results when accessing the MC::Client results directly | 5912 |
| 2011/01/11 | Add an option to Base64 encode the STOMP payload | 5815 |
| 2011/01/11 | Fix a bug with forcing all facts to be strings | 5832 |
| 2011/01/08 | When using reload_agents or USR1 signal no agents would be reloaded | 5808 |
| 2011/01/04 | Use the LSB based init script on SUSE | 5762 |
| 2011/01/04 | Remove the use of a Singleton in the logging class | 5749 |
| 2011/01/02 | Add AES+RSA security plugin | 5696 |
| 2010/12/31 | Security plugins now have access to the callerid of the message they are replying to | 5745 |
| 2010/12/30 | Allow - in fact names | 5727 |
| 2010/12/29 | Treat machines that fail security validation like ones that did not respond | 5700 |
| 2010/12/29 | Release 1.1.0 | 5695 |
| 2010/12/28 | Remove trailing whitespace from all source files | 5702 |
| 2010/12/28 | Adjust the logfile audit format to include local time and all on one line | 5694 |
| 2010/12/26 | Improve the SimpleRPC fact_filter helper to support new fact operators | 5678 |
| 2010/12/25 | Increase the rpcutil timeout to allow for slow facts | 5679 |
| 2010/12/25 | Allow for network and fact source latency when calculating client timeout | 5676 |
| 2010/12/25 | Remove MCOLLECTIVE_TIMEOUT and MCOLLECTIVE_DTIMEOUT environment vars in favour of MCOLLECTIVE_EXTRA_OPTS | 5675 |
| 2010/12/25 | Refactor the creation of the options hash so other tools don’t need to know the internal formats | 5672 |
| 2010/12/21 | The fact plugin format has been changed and simplified, the base now provides caching and thread safety | 5083 |
| 2010/12/20 | Add parameters <=, >=, <, >, !=, == and =~ to fact selection | 5084 |
| 2010/12/14 | Add experimental sshkey security plugin | 5085 |
| 2010/12/13 | Log a startup message showing version and log level | 5538 |
| 2010/12/13 | Add a console logger | 5537 |
| 2010/12/13 | Logging is now plugable and a syslog plugin was provided | 5082 |
| 2010/12/13 | Allow libdir to be an array of directories for agents and ddl files | 5253 |
| 2010/12/13 | The progress bar will now intelligently figure out the terminal dimentions | 5524 |
Version 1.0.x
| Date | Description | Ticket |
|---|---|---|
| 2011/02/16 | Release 1.0.1 | 6342 |
| 2011/02/02 | Include full Apache 2 license text | 6113 |
| 2011/01/29 | The YAML fact plugin kept deleted facts in memory | 6056 |
| 2011/01/04 | Use the LSB based init script on SUSE | 5762 |
| 2010/12/30 | Allow - in fact names | 5727 |
| 2010/12/29 | Treat machines that fail security validation like ones that did not respond | 5700 |
| 2010/12/25 | Allow for network and fact source latency when calculating client timeout | 5676 |
| 2010/12/25 | Increase the rpcutil timeout to allow for slow facts | 5679 |
| 2010/12/13 | Release 1.0.0 | 5453 |
Version 0.4.x
| Date | Description | Ticket |
|---|---|---|
| 2010/12/04 | Remove the LSB requirements for RedHat systems | 5451 |
| 2010/11/23 | Make the YAML fact source thread safe and force all facts to strings | 5377 |
| 2010/11/23 | Add get_config_item to rpcutil to retrieve a running config value from a server | 5376 |
| 2010/11/20 | Convert mc-facts into a SimpleRPC client | 5371 |
| 2010/11/18 | Added GPG signing to Rake packaging tasks (SIGNED=1) | 5355 |
| 2010/11/17 | Improve error messages from clients in the case of failure | 5329 |
| 2010/11/17 | Add helpers to disconnect from the middleware and update all bundled clients | 5328 |
| 2010/11/16 | Correct LSB provides and requires in default init script | 5222 |
| 2010/11/16 | Input validation on rpcutil has been improved to match all valid facts | 5320 |
| 2010/11/16 | Add the ability to limit the results to a subset of hosts | 5306 |
| 2010/11/15 | Add fire and forget mode to SimpleRPC custom_request | 5305 |
| 2010/11/09 | General connection settings to the Stomp connector was ignored | 5245 |
| 2010/10/18 | Release version 0.4.10 | |
| 2010/10/18 | Document exit command to mc-controller | 152 |
| 2010/10/13 | Log messages that don’t pass the filters at debug level | 149 |
| 2010/10/03 | Preserve options in cases where RPC::Client instances exist in the same program | 148 |
| 2010/09/30 | Add the ability to set different types of callerid in the PSK plugin | 145 |
| 2010/09/30 | Improve Ruby 1.9.x compatibility | 142 |
| 2010/09/29 | Improve error handling in registration to avoid high CPU usage loops | 143 |
| 2010/09/21 | Release version 0.4.9 | |
| 2010/09/20 | Improve Debian packaging task | 140 |
| 2010/09/20 | Add :boolean type support to the DDL | 138 |
| 2010/09/19 | Refactor MCollective::RPC to add less unneeded stuff to Object | 137 |
| 2010/09/18 | Prevent duplicate config loading with multiple clients active | 136 |
| 2010/09/18 | Rotate the log file by default, keeping 5 x 2MB files | 135 |
| 2010/09/18 | Write a overview document detailing security of the collective | 131 |
| 2010/09/18 | Add MCollective.version, set it during packaging and include it in the rpcutil agent | 134 |
| 2010/09/13 | mc-inventory now use SimpleRPC and the rpcutil agent and display server stats | 133 |
| 2010/09/13 | Make the path to the rpc-help.erb configurable and set sane default | 130 |
| 2010/09/13 | Make the configfile used available in the Config class and add to rpcutil | 132 |
| 2010/09/12 | Rework internal statistics and add a rpcutil agent | 129 |
| 2010/09/12 | Fix internal memory structures related to agent meta data | 128 |
| 2010/08/24 | Update the OpenBSD port for changes in 0.4.8 tarball | 125 |
| 2010/08/23 | Fix indention/block error in M:R:Stats | 124 |
| 2010/08/23 | Fix permissions in the RPM for files in /etc | 123 |
| 2010/08/23 | Fix language in two error messages | 122 |
| 2010/08/20 | Release version 0.4.8 | |
| 2010/08/19 | Fix missing help template in debian packages | 90 |
| 2010/08/18 | Clean up some hardlink warnings in the Rakefile | 117 |
| 2010/08/18 | Include the website in the main repo and add a simple Rake task | 118 |
| 2010/08/17 | Handle exceptions for missing plugins better | 115 |
| 2010/08/17 | Add support for ~/.mcollective as a config file | 114 |
| 2010/08/07 | SSL security plugin can use either YAML or Marshal | 94 |
| 2010/08/06 | Multiple YAML files can now be used as fact source | 112 |
| 2010/08/06 | Allow log level to be adjusted at run time with USR2 | 113 |
| 2010/07/31 | Add basic report scripting support to mc-inventory | 111 |
| 2010/07/06 | Removed ‘rpm’ from the default rake task | 109 |
| 2010/07/06 | Add redhat-lsb to the server RPM dependencies | 108 |
| 2010/06/29 | Release version 0.4.7 | |
| 2010/06/27 | Change default factsource to Yaml | 106 |
| 2010/06/27 | Added VIM snippets to create DDLs and Agents | 102 |
| 2010/06/26 | DDL based help now works better with Symbols in in/output | 105 |
| 2010/06/23 | Whitespace at the end of config lines are now stripped | 100 |
| 2010/06/22 | printrpc will now inject some colors into results | 99 |
| 2010/06/22 | Recover from syntax and other errors in agents | 98 |
| 2010/06/17 | The agent a MC::RPC::Client is working on is now available | 97 |
| 2010/06/17 | Integrate the DDL with data display helpers like printrpc | 92 |
| 2010/06/15 | Avoid duplicate topic subscribes in complex clients | 95 |
| 2010/06/15 | Catch some unhandled exceptions in RPC Agents | 96 |
| 2010/06/15 | Fix missing help template file from RPM | 90 |
| 2010/06/14 | Release version 0.4.6 | |
| 2010/06/12 | Qualify the Process class to avoid clashes in the discovery agent | 88 |
| 2010/06/12 | Add mc-inventory which shows agents, classes and facts for a node | 87 |
| 2010/06/11 | mc-facts now supports standard filters | 86 |
| 2010/06/11 | Add connection pool retry options and ssl for connection | 85 |
| 2010/06/11 | Add support for specifying multiple stomp hosts for failover | 84 |
| 2010/06/10 | Tighten up handling of filters to avoid nil’s getting into them | 83 |
| 2010/06/09 | Sort the mc-facts output to be more readable | 82 |
| 2010/06/08 | Fix deprecation warnings in newer Stomp gems | 81 |
| 2010/06/03 | Release version 0.4.5 | |
| 2010/06/01 | Improve the main discovery agent by adding facts and classes to its inventory action | 79 |
| 2010/05/30 | Add various helpers to get reports as text instead of printing them | 43 |
| 2010/05/30 | Add a custom_request method to call SimpleRPC agents with your own discovery | 75 |
| 2010/05/30 | Refactor RPC::Client to be more generic and easier to maintain | 75 |
| 2010/05/29 | Fix a small scoping issue in Security::Base | 76 |
| 2010/05/25 | Add option –no-progress to disable progress bar for SimpleRPC | 74 |
| 2010/05/23 | Add some missing dependencies to the RPMs | 72 |
| 2010/05/22 | Add an option :process_results to the client | 71 |
| 2010/05/13 | Fix help output that still shows old branding | 70 |
| 2010/04/27 | The supplied generic stompclient now accepts STOMP_PORT in the environment | 68 |
| 2010/04/26 | Add a SimpleRPC Client helper to reset filters | 64 |
| 2010/04/26 | Listen for signal USR1 and reload all agents from disk | 65 |
| 2010/04/12 | Add SimpleRPC Authorization support | 63 |
| 2010/04/03 | Release version 0.4.4 | |
| 2010/03/27 | Make it easier to construct SimpleRPC requests to use with the standard client library | 60 |
| 2010/03/27 | Manipulating the filters via the helper methods will force rediscovery | 59 |
| 2010/03/23 | Prevent Activesupport when brought in by Facter from breaking our logs | 57 |
| 2010/03/23 | Clean up logging for messages not targeted at us | 56 |
| 2010/03/19 | Add exception handling to the registration base class | 55 |
| 2010/03/03 | Use /usr/bin/env ruby instead of hardcoded paths | 54 |
| 2010/02/17 | Improve mc-controller and document it | 46 |
| 2010/02/08 | Remove some close coupling with Stomp to easy creating of other connectors | 49 |
| 2010/02/01 | Made the discovery agent timeout configurable using plugin.discovery.timeout | 48 |
| 2010/01/25 | mc-controller now correctly loads/reloads agents. | 45 |
| 2010/01/25 | Building packages has been improved to ensure rdocs are always included | 44 |
| 2010/01/24 | Release version 0.4.3 | |
| 2010/01/23 | Handle ctrl-c during discovery without showing exceptions to users | 34 |
| 2010/01/21 | Force all facts in the YAML fact source to be strings | 41 |
| 2010/01/19 | Add auditing to SimpleRPC clients and Agents | |
| 2010/01/18 | The SRPM we provide will now build outside of the Rake environment | 40 |
| 2010/01/18 | Add a fail! method to RPC::Agent | 37 |
| 2010/01/18 | mc-rpc can now be used without supplying arguments | 38 |
| 2010/01/18 | Don’t raise an error if no user/pass is given to the stomp connector, try unauthenticated mode | 35 |
| 2010/01/17 | Improve error message when Regex validation failed on SimpleRPC input | 36 |
| 2010/01/13 | Release version 0.4.2 | |
| 2010/01/13 | New packaging for Debian provided by Riccardo Setti | 29 |
| 2010/01/07 | Improved LSB compliance of the init script - thanks Riccardo Setti | 32 |
| 2010/01/07 | Multiple calls to SimpleRPC client would reset discovered hosts | 31 |
| 2010/01/04 | Timeouts can now be changed with MCOLLECTIVE_TIMEOUT and MCOLLECTIVE_DTIMEOUT environment vars | 25 |
| 2010/01/04 | Specify class and fact filters easier with the new -W or –with option | 27 |
| 2010/01/04 | Added COPYING file to RPMs and tarball | 28 |
| 2010/01/04 | Make shorter filter options -C, -I, -A and -F | 26 |
| 2010/01/02 | Release version 0.4.1 | |
| 2010/01/02 | Added hooks to plug into the processing of requests, also enabled setting meta data and timeouts | 14 |
| 2010/01/02 | Created readers for @config and @logger in the SimpleRPC agent | 23 |
| 2009/12/30 | Don’t send out any requests if no nodes were discovered | 17 |
| 2009/12/30 | Added :discovered and :discovered_nodes to client stats | 20 |
| 2009/12/30 | Add a empty_filter? helper to the RPC mixin | 18 |
| 2009/12/30 | Fix formatting bug with progress bar | 21 |
| 2009/12/29 | Simplify mc-rpc command line | 16 |
| 2009/12/29 | Fix layout issue when printing hosts that did not respond | 15 |
| 2009/12/29 | Release version 0.4.0 | |
| 2009/12/28 | Add support for other configuration management systems like chef in the –with-class filters | 13 |
| 2009/12/28 | Add a Util.empty_filter? to test for an empty filter | |
| 2009/12/27 | Create a new client framework - SimpleRPC | 6 |
| 2009/12/27 | Add support for multiple filters of the same type | 3 |
Version 0.3.x
| Date | Description | Ticket |
|---|---|---|
| 2009/12/17 | Release version 0.3.0 | |
| 2009/12/16 | Improvements for newer versions of Ruby where TERM signal was not handled | 7 |
| 2009/12/07 | MCollective::Util is now a module and plugins can drop in util classes in the plugin dir | |
| 2009/12/07 | The Rakefile now works with rake provided on Debian 4 systems | 2 |
| 2009/12/07 | Improvements in the RC script for Debian and older Ubuntu systems | 5 |
Version 0.2.x
| Date | Description | Ticket |
| 2009/12/01 | Release version 0.2.0 |


{% extends 'core/base.html' %} {% block content %}
In other words, 404. Are you sure the URL you're looking for is right?


--- layout: base title: Computer Anonymous - Edinburgh ---
Read the overview, if you haven't already.
Our first meeting was at The Southern on Tuesday the 8th of October, from 7pm.
19 people attended! It was great, and we had a big red button and some people ate burgers.
Were you there? I thought it was great, but maybe I'm wrong. If you have any feedback, questions, or concerns at all, please contact me: @semanticist /<EMAIL_ADDRESS>We're going to try meeting on the 8th of each month, so our second meeting will be Friday, the 8th of November.
The next task is to pick a venue, or are we happy to go back to the Southern? Suggestions for non-licenced venues are definitely welcome.
The Southern was okay, but a bit noisy. I know some people struggled to hear conversations. We were also pressed for space - I warned them it was for 12-15, but I don't think they expected even that many to turn up. We should definitely look into alternative locations, but I want to fix down the date first, since that'll make it easier when talking to venues.
The usual suspects for a techy meetup are:
But do we want to go back to the same old places? Perhaps there's somewhere nice down Leith, or in some other part of the town that would be more accessible to people who don't normally go to meet-ups?
Other venues:
Pros:
Cons:
Pros:
Cons:
Pros:
Cons:
Pros:
Cons:
People who you might see there:
You can add your name by doing a fork and pull request on the github page, or by emailing computercomputercomputer at glastonbridge dot co dot uk. The latter method is somewhat unreliable and uses a high-latency meat interface, but it tries hard.
There is also an edinburgh-specific IRC channel on freenode called ##computer.ed


✔ Real Time Updates on Car Performance
✔ Free, Easy-to-Use App
✔ Compatible with IOS & Android
✔ Easily Diagnose Your Car!
Compatible with Cars manufactured after 1966. (Some Exceptions may apply)
Weight: 0.0075 KG | Dimensions: 70mm x 90mm x 30mm
CAR SAVINGS
$4.75 Million
MAINTENANCE SAVINGS
$2.75 Million
HAPPY CUSTOMERS
5.50 Million


'They should be held accountable for manslaughter': Shrewsbury mother who lost twins in baby scandal makes plea for charges
by Lisa O'BrienA Shrewsbury mother who lost her twins in the Shropshire baby deaths scandal has made a plea for manslaughter charges to be brought against the staff involved and the trust running the county's major hospitals.
Kelly Jones, who lost her twin daughters, received an apology and an out-of-court settlement because of issues surrounding the birth at Royal Shrewsbury Hospital in 2014.
She says details in the leaked report into maternity care at Shrewsbury and Telford Hospital NHS Trust (SaTH) have made her feel 'sick and angry' and justice should be served in the courts.
See also:
- Shropshire maternity scandal: Babies and mothers died amid ‘toxic’ culture at NHS trust
- 'Staggering': Vital that lessons are learned over Shropshire maternity scandal, say lawyers
- Demand for answers over Britain's 'worst ever maternity scandal'
- Police considering criminal charges over Shropshire maternity scandal
It comes after West Mercia Police says a range of criminal charges have been discussed, but the force is awaiting the full findings of the inquiry before a decision is made on how to proceed.
Meanwhile, law firm Lanyon Bowdler, which has acted on behalf of families impacted by the maternity scandal, says it is now looking at 20 new enquiries since the report was leaked.
Further families who claim they were affected have also contacted the Shropshire Star.
The interim report, which comes from an independent inquiry ordered by the Government in 2017, stretches back 40 years and reveals that dozens of babies and mothers are thought to have died or been left disabled due to poor care at the trust, which runs Royal Shrewsbury Hospital and Telford’s Princess Royal Hospital.
Miss Jones, who endured a double tragedy when her twin girls Ella and Lola died at 36 weeks' gestation, said she broke down in tears when she saw details of the interim report in the news.
The 33-year-old, who also has two other children, said: "I can't get over any of this. To know this has been going on for 40 years, I feel sick and angry. I want justice for them all.
"Every doctor and midwife who has caused a death needs to be held accountable. They should be held accountable for manslaughter and face charges.
"This has destroyed people's lives.
"I'm in constant contact with Donna Ockenden and I've requested to meet the board looking at the inquiry."
The issues surrounding the deaths of Miss Jones' twins led to SaTH agreeing to an out-of-court settlement.
It also accepted that it needed to change procedures, particularly around CTG monitors – which are used to check on a baby's heartbeat.
It has also emerged that the General Medical Council has asked the NHS to share concerns about any doctors involved in poor care at the trust.
Anthony Omo, general counsel and director of fitness to practice for the GMC, said: "The reports in the media and press this week are shocking and our thoughts are with the families affected.
"We are in contact with the trust and have asked NHS England and NHS Improvement for details of any concerns about individual doctors.
"Where we receive details of any such concerns we will take appropriate action to protect patients and public confidence in doctors.
"All doctors have a responsibility to take action if they are aware that patient safety may be put at risk."
The inquiry, which is being led by maternity expert Donna Ockenden, was launched by former Health Secretary Jeremy Hunt.
It is now looking at more than 270 cases from 1979 to the present day.
The study warns that, even to the present day, lessons are not being learned and staff at the trust are uncommunicative with families.
Paula Clark, interim chief executive at SaTH, has apologised to the families affected and said a lot has already been done to address the issues raised by previous cases, but admitted there is still work to do.


# File vendor/plugins/rspec/spec/spec/runner/drb_command_line_spec.rb, line 55 def create_dummy_spec_file @dummy_spec_filename = File.expand_path(File.dirname(__FILE__)) + "/_dummy_spec#{$drb_example_file_counter}.rb" File.open(@dummy_spec_filename, 'w') do |f| f.write %{ describe "DUMMY CONTEXT for 'DrbCommandLine with -c option'" do it "should be output with green bar" do true.should be_true end it "should be output with red bar" do violated("I want to see a red bar!") end end } end end


[1]
Quick route calculation and POI; Poor directions
[2]
solid feature list and accurate speech recognition; somewhat expensive


Naughty Dog is continuing to hire multiplayer developers
Source: Sony Interactive Entertainment
What you need to know
- Earlier this year, Naughty Dog confirmed that multiplayer was being removed from The Last of Us Part II and would be a different experience at a later point.
- Naughty Dog has continued to hire for multiplayer developers.
- After a delay, The Last of Us Part II is now set to release on May 29, 2020.
- You can preorder The Last of Us Part II for $60 at Amazon.
Earlier this year, Naughty Dog and PlayStation confirmed that the Factions multiplayer had been removed from The Last of Us Part II. A follow-up announcement on Twitter later revealed that while multiplayer would not be a part of the game however, there would be a multiplayer experience set in the world of The Last of Us that players would get to experience at some point. This news came shortly before the additional information indicating the game would be delayed.
 The job listings calls for experience working on online game systems and responsibilities such as "Taking the meticulously crafted themes Naughty Dog's games are known for and integrating a social and competitive experience offers both opportunities and challenges," as well as working to "Architect new online features both for the game and surrounding services."
It's important to note that Naughty Dog was hiring multiplayer developers for some years now to work on The Last of Us Part II. While work to polish The Last of Us Part II in time for launch is no doubt continuing, it's interesting to see that the studio is continuing to hire developers focused on multiplayer aspects.
While it seems likely that this is referring to a standalone multiplayer game that could release in the future, we'll have to wait and see. In the meantime, fans can look forward to playing The Last of Us Part II on May 29, 2020 when it is set to release exclusively for the PlayStation 4.
Related: The Last of Us Part II gets new gameplay and developer commentary Inside the Demo
Revenge comes
The Last of Us Part II
How far will Ellie go?
In this sequel to the acclaimed 2013 game set five years later, Ellie's harrowing journey looks to take her on the bloody path of revenge, but against what we're not sure of yet. Whatever the situation, it appears that Joel is there to have her back.

- Best keyboards for PlayStation 4 in 2019
- Best PlayStation 4 Games
We may earn a commission for purchases using our links. Learn more.


Toggle navigation
Deviant Wave
Home
About
Contact
About the Author
Message Me!
Name
City
Email address
Message
Submit


October 28 - less than 1 minute read
October 28 - 4 minute read
July 9 - 11 minute read
October 4 - 8 minute read
August 10 - 21 minute read
July 12 - 5 minute read
June 28 - 4 minute read
June 28 - 2 minute read
June 28 - 1 minute read
June 27 - 3 minute read
June 26 - 3 minute read
June 6 - 2 minute read
June 5 - 2 minute read
June 4 - 6 minute read
May 10 - 2 minute read
May 9 - 4 minute read
April 4 - 2 minute read


The Northern Realms deck has the potential ability to place unit cards with the Tight Bond ability (each affected unit has its strength increased by 100%) in each of the three rows, perhaps all in one round depending on the cards the player draws, which can make a very small number of cards get a very massive score if you lay them down together, which you can then boost further with the Commander's Horn.
Depending on the draw, players can receive as many as 15 cards from their deck {3 spy cards, opponent uses 3 spy cards which are reclaimed with decoys, mysterious elf spy card, northern realms ability after winning one round}. The main weaknesses of this deck are: Great susceptibility to Weather cards and Scorch cards.


BATMAN FOREVER A film review by Lewis Butler Copyright 1995 Lewis Butler
The most remarkable difference in BATMAN RETURNS is the lack of a good director. Schumacher creates a movie that is choppy, hard to follow, and has some of the worst directed action sequences in recent memory. The movie has some neat gizmos and gadgets, too bad we don't get to see how they work, or even exactly what the are doing. There is one scene in particular where Batman manages to escape certain death by doing something involving his feet and fire. I have no idea what happened in this segment, and neither did anyone else in the audience.
The casting is good. Carey delivers a wonderfully wacky psycho portrayal of The Riddler, and Tommy Lee Jones is passable as Two-Face, although his character doesn't get the development that Carey's does.
Nicole Kidman is as bad as Kim Bassinger was in the first movie. A completely unbelievable female character, again. Too bad, I like Nicole Kidman (ever since FLIRTING). I will say, all traces of her accent are gone; she has a perfect American accent throughout the film. But she's not believable in any way, and there is no depth to her character.
Val Kilmer was not particularly impressive either. Somehow his Bruce Wayne lacked that edge of craziness that was the one thing Michael Keaton did well. Kilmer's Wayne is stoic and dull. There's none of the interesting little quirks that were evident as far back as TOP SECRET! and REAL GENIUS.
Chris O'Donnell manages to make Robin an actually interesting character. Not that he's given a lot of opportunities. He does manage to make Robin a believable character Something the comic books never did. I did like the inclusion of "Nightwing" among the possible nicknames, though. Nice touch.
The sets are quite poor, often involving shots that scream "MATTE!" in large capitals. There are also some strange instances where one feels as if the director is setting off beacons and showing off how he too can be clever. All the uneasy mood of Tim Burton is exchanged for cheap flash and poor editting.
If one rates BATMAN at a +3, BATMAN RETURNS was a nice +2. BATMAN FOREVER drops the stakes considerably, weighing in at a mere +0.0 on the -4 to +4 scale (where 0 indicates an average movie)
<EMAIL_ADDRESS>The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Irish Dad found sleeping with family dog battling cancer
by IrishCentral StaffA young Irish man has revealed how he found his father asleep next to the family’s cancer-ridden dog.
Jack Graham, 23, from Northern Ireland, got up in the middle of the night to find his father Mark asleep next to the 17-year-old dog’s cushion.
Graham filmed the “sad” but “heart-warming” moment and shared the video to social media on November 9, the Daily Mail reports.
He said: “I was walking to go to the bathroom and I walked past my father's room and his door was open which isn't normally like him, I looked in and seen he wasn't lying in his bed.
“So I went down to the living room to check and see if he had fallen asleep on the sofa and when I had came in I saw him lying beside my dogs bed.
“It made me really sad but also in a happy way, I thought it was really cute and heart warming.”
He posted the video to his Twitter page with the caption: “It's official my heart is well and truly broke, my dogs 17 years old and she's been acting differently and we are all worried about her and I notice my dads not in his bed and I go down and he's lying sleeping beside her bed because he's worried about her. I'm DONE”
The video has gone viral, gaining over 359.6K views and 27.8K likes. Several users have sent Graham and his family heartfelt messages as the family spend their final days with their beloved pet.
Since then, Graham has shared other clips of his dog Sophie, a mixed-breed Foxhound and Border Collie.
In one clip, he wrote: “Everyone please don't take your dog for granted, please be kind and love them because they love u and they have a short life so make it the happiest.
'Also please adopt dogs from the shelters. She is the best rescue dog that's ever existed.”


Runko Unit System and Particle Integration¶
Introduction¶
For an arbitrary system of units, the Maxwell equations can be written,
nablacdotmathbf{E}=4pi k_{1}rho,
frac{partialmathbf{E}}{partial t}=frac{c{{}^2}}{k_{2}}nablatimesmathbf{B}-4pi k_{1}mathbf{J},
nablacdotmathbf{B}=0,
frac{partialmathbf{B}}{partial t}=-k_{2}nablatimesmathbf{E},
where \(k_{1}\) and \(k_{2}\) are constants corresponding to a given unit system (cite jackson). For CGS (Gaussian) units, the constants default to \(k_{1}=1\) and \(k_{2}=c\)
nablacdotmathbf{E}=4pirho,
frac{partialmathbf{E}}{partial t}=cnablatimesmathbf{B}-4pimathbf{J},
nablacdotmathbf{B}=0,
frac{partialmathbf{B}}{partial t}=-cnablatimesmathbf{E},
with the corresponding Lorentz acceleration
frac{dmathbf{u}}{dt}=frac{q}{m}mathbf{E}+frac{mathbf{v}}{c}timesmathbf{B}.
The unit system in runko follows the convention used in the PIC code TRISTAN-MP (Buneman 1993). The variables are normalised w.r.t. appropriate fiducial values. The most noteworthy scalings are those for time and distance, which are normalised w.r.t. the grid spacing \(\mathbf{x}=\hat{\mathbf{x}}\Delta x\) and time-step \(t=\hat{t}\Delta t\). As velocity is the derivative of time with distance, it follows that the system velocity is expressed in terms of the spatial and temporal step sizes. The coordinate/proper velocity is given by
mathbf{v}=frac{dmathbf{x}}{dt}=frac{dhat{mathbf{x}}}{dhat{t}}frac{Delta x}{Delta t}=hat{mathbf{v}}frac{Delta x}{Delta t},
with the corresponding four-velocity
mathbf{u}=hat{mathbf{u}}frac{Delta x}{Delta t}=hat{mathbf{v}}gamma(mathbf{v})frac{Delta x}{Delta t}.
To maintain stability and ensure the fidelity of the simulation, the fraction \(\Delta x/\Delta t\) is set to equal \(c\) normalised as before so that \(\Delta x/\Delta t=c/\hat{c}\). In this manner, effective light speed can be set in the simulation via \(\hat{c}\) and the CFL condition strictly enforced at all times. In all the formulas solved by the computer the \(\hat{c}\) ends up playing the role of a time-step because it effectively reduces maximum signal velocity (i.e., speed of light) so that \(\Delta t = c \Delta x \hat{c}\). Setting grid size and light speed to unity, \(\Delta x = 1\) and \(c = 1\), the definition reduces to \(\hat{c} = \Delta t\).
The fields are scaled via the fiducial value \(B_{0}\), so \(\mathbf{E}=\hat{\mathbf{E}}B_{0}\) and \(\mathbf{B}=\hat{\mathbf{B}}B_{0}\). Charge, mass and current are similarly scaled, giving \(q=\hat{q}q_{0}\), \(m=\hat{m}m_{0}\) and :math:`mathbf{J}=hat{mathbf{J}}J_{0}`where all numerical variables are denoted with a hat.
Applying these conventions to the evolution equations, which are needed to advance the PIC system, the runko update equations take the following form in code units
Delta[hat{mathbf{E}}]_{t}=cfrac{Delta t}{Delta x}Delta[hat{mathbf{B}}]_{x}-frac{4pi J_{0}}{B_{0}}Delta that{mathbf{J}}=hat{c}Delta[hat{mathbf{B}}]_{x}-hat{mathbf{J}},
Delta[hat{mathbf{B}}]_{t}=-cfrac{Delta t}{Delta x}Delta[hat{mathbf{E}}]_{x}=-hat{c}Delta[hat{mathbf{E}}]_{x},
Delta[hat{mathbf{u}}]_{t}=frac{hat{q}q_{0}hat{c}}{hat{m}m_{0}c}B_{0}Delta tleft(hat{mathbf{E}}+frac{hat{mathbf{v}}c}{chat{c}}timeshat{mathbf{B}}right)=frac{hat{q}}{hat{m}}left(hat{mathbf{E}}+frac{hat{mathbf{v}}}{hat{c}}timeshat{mathbf{B}}right),
Note here for the velocity update that \(\Delta[\hat{\mathbf{u}}]_{t}\) is a numerical expression for acceleration and is thus scaled using Delta x/Delta t^{2}, which is changed to \(\Delta tc/\hat{c}\) and multiplied to the right hand side. The update equation for position is defined by the integral of proper velocity \(\hat{\mathbf{v}}\), which takes the following form once scalings are introduced
Delta[hat{mathbf{x}}]_{t}=frac{Delta t}{Delta x}frac{hat{mathbf{u}}}{gamma(hat{mathbf{u}})}frac{Delta x}{Delta t}=frac{hat{mathbf{u}}}{gamma(hat{mathbf{u}})}.
In all equations above, \(\Delta[\cdot]_{t}\) and \(\Delta[\cdot]_{x}\) indicate an appropriate finite difference operator of form \(x_{n+1}-x_{n}\) or \(t_{n+1/2}-t_{n-1/2}\). Note the missing step sizing due to the normalisation of the system. To simplify the equations, the following ratios between the different fiducial values were defined:
B_{0}=frac{m_{0}c}{q_{0}hat{c}Delta t}=frac{m_{0}c}{q_{0}hat{c}}left(frac{c}{hat{c}Delta x}right),
frac{J_{0}}{B_{0}}=frac{1}{4piDelta t},
which effectively make eqs. (ref{eq:ampere_updateE}) - (ref{eq:lorentz_update}) unitless. The current is then scaled as
mathbf{J}=J_{0}hat{mathbf{J}}=hat{q}frac{q_{0}}{Delta x^{3}}hat{mathbf{v}}frac{Delta x}{Delta t}=hat{q}hat{mathbf{v}}frac{q_{0}}{Delta x^{2}Delta t},
which implies \(J_{0}=q_{0}/\Delta x^{2}\Delta t\). The formula for \(J\) can be thus be understood as a charge flux through a surface area of size \(\Delta x^2\). Substituting in the values for \(J_{0}=q_{0}/\Delta x^{2}\Delta t\) yields
frac{q_{0}}{Delta x^{2}}=frac{m_{0}c}{4pi q_{0}hat{c}Delta t},
which can be rearranged for :math:`Delta x`to form
Delta x=4pifrac{q_{0}^{2}}{m_{0}}left(frac{hat{c}}{c}right)^{2},
using the substitution \(\Delta x/\Delta t=c/\hat{c}.\)
The particles simulated in PIC generally do not correspond to physical particles. Instead they represent groups/clusters of physical particles traveling together with same velocity and direction. These “macroparticles” thus allows the model to simulate a plasma of a given mass, charge and size without 1:1 resolution of the physical particles. For a macroparticle containing \(N\) electrons/positrons, the reference charge will equal \(q_{0}=Nq_{e}\) and the expression becomes
Delta x=4pi Nfrac{q_{e}^{2}}{m_{e}}left(frac{hat{c}}{c}right)^{2}=4pi Nhat{c}^{2}r_{e},
where \(m_{e}\), \(q_{e}=e\) are the electron rest mass and elementary charge respectively, resulting in the appearance of the classical electron radius \(r_{e}=e^{2}/m_{e}c^{2}\approx2.82\cdot10^{-13}\). The field scaling in Gaussian units then becomes
B_{0}=frac{m_{e}c}{ehat{c}}left(frac{c}{hat{c}Delta x}right)=frac{e}{r_{e}hat{c}^{2}Delta x}.
Converting from code to Gaussian units now just requires selecting a grid length scale \(\Delta x\)
mathbf{B}=hat{mathbf{B}}B_{0}=1.705cdot10^{3}frac{hat{mathbf{B}}}{hat{c}^{2}},frac{1,mathrm{cm}}{Delta x}mathrm{G},
mathbf{E}=hat{mathbf{E}}B_{0}=1.705cdot10^{3}frac{hat{mathbf{E}}}{hat{c}^{2}},frac{1,mathrm{cm}}{Delta x}mathrm{statvolt,cm^{-1}},
mathbf{J}=frac{B_{0}}{4piDelta t}hat{mathbf{J}}=frac{ec}{4pi r_{e}hat{c}{{}^3}Delta x{{}^2}}hat{mathbf{J}}approx4.056cdot10^{12}frac{hat{mathbf{J}}}{hat{c}{{}^3}},left(frac{1,mathrm{cm}}{Delta x}right)^{2},mathrm{statcoul,s^{-1}},
q=hat{q}frac{eDelta x}{4pihat{c}^{2}r_{e}}approx1.356cdot10^{2}frac{hat{q}}{hat{c}^{2}},frac{Delta x}{1,mathrm{cm}},mathrm{statcoul},
Using the above fundamental scalings, expressions for the conversion of the derived plasma quantities from code units can also be determined. The relativistic plasma frequency is given by
omega_{p}^{2}=omega_{p,-}^{2}+omega_{p,+}^{2}=frac{4pi q^{2}n}{<gamma>m_{e}}left(1+frac{m_{-}}{m_{+}}right),
hat{omega}_{p}^{2}=omega_{p}^{2}Delta t^{2}=frac{hat{q}^{2}N_{ppc}}{langle gamma langle hat{m}}left(1+frac{m_{-}}{m_{+}}right)=frac{>|hat{q}|N_{ppc}}{<gamma>}left(1+frac{m_{-}}{m_{+}}right),
for a 2-species plasma with \(+\) and \(-\) particles and masses \(m_-\) and \(m_+\). In the case of electron-positron pair plasma \(m_- = m_+\), but for ions a mass scale \(m_+/m_-\) is requiredthat in a real plasma is \(m_i/m_e\). The parameter :math:`N_{ppc}`denotes the number of particles per cell per species.
The numerical plasma frequency can then be set by selecting a skin depth resolution
R_p = frac{c/omega_p}{Delta x},
which expresses the length of a plasma oscillation at velocity :math:´c´ non-dimensionalised w.r.t. the grid length.
hat{omega}_{p,0}=frac{hat{c}Delta x}{R_{p}Delta x}=frac{hat{c}}{R_{p}}.
By requiring that \(\Delta t=\hat{\omega}_{p,0}^{-1}\), the electron charge and mass can be fixed and calculated via
|hat{q}|=frac{hat{omega}_{p,0}^{2}<gamma>}{N_{ppc}left(1+frac{m_{-}}{m_{+}}right)}.
The effect of this selection is that a plasma with the fiducial density \(n_0\), is always resolved numerically. The skin depth is resolved by \(R_p\) cells and the plasma oscillation time with \(1/\hat{c}\) time steps.
Moving on to the relativistic cyclotron frequency for a given species
omega_{B}=frac{qB}{mcgamma},
to which the corresponding expression in code units can be found by substitution with the appropriate scalings, e.g. \(B=B_{0}\hat{B}\). This gives
omega_{B}=frac{hat{q}q_{0}}{hat{m}m_{0}cgamma}frac{m_{0}c}{q_{0}hat{c}Delta t}hat{B},
which cancels out and simplifies to
omega_{B}Delta t=frac{hat{q}hat{B}}{hat{m}hat{c}gamma}frac{m_{-}}{m_{+}},
where \(\hat{m}\frac{m_{-}}{m_{+}}\) for protons). Substituting for \(\Delta t\) yields an expression for code unit cyclotron frequency at any given scale \(\Delta x\) and \(c\)
omega_{B}frac{Delta xhat{c}}{c}=frac{hat{q}hat{B}}{hat{m}hat{c}gamma}frac{m_{-}}{m_{+}},
For the standard case where grid spacing and light speed are set to one, the cyclotron frequency for the simulation can be calculated via
omega_{B}=frac{hat{q}hat{B}}{hat{m}hat{c}^{2}gamma}frac{m_{-}}{m_{+}},
Finally, the total plasma magnetization in Gaussian vs. code units become
sigma=frac{B^{2}}{4pi nm_{e}c{{}^2}<gamma>}=left(frac{omega_{B}}{omega_{p}}right)^{2}=frac{hat{B}^{2}}{N_{ppc}hat{m}hat{c}^{2}<gamma>}left(1+frac{m_{-}}{m_{+}}right)^{-1}.
A given set of equations can be converted into the runko unit system using the scalings and definitions outlined above. In general, the choice of scalings, length and time scale will have terms cancelling out neatly and an expression will change from Gaussian units in the following ways when converting:
- Remove \(4\pi\) Gaussian unit EM factors,
- Substitute physical variables with code versions, i.e. \(x\rightarrow \hat{x}\) and so on,
- Cancel out factors of \(q_e/m_e\) since in this unit system \(|\hat{q}| = \hat{m}\).
Leapfrog Boris in Runko¶
The form of the relativistic Boris integrator must be changed to match the unit system outlined above. Starting from the differenced version of the Lorentz acceleration in code units (ref{eq:lorentz_update}) for a particle with four-velocity \(\mathbf{u}(t^{n})=\mathbf{u}^{n}\)
Delta[mathbf{u}^{n}]=frac{hat{q}}{hat{m}}left(hat{mathbf{E}}+frac{hat{mathbf{v}}}{hat{c}}timeshat{mathbf{B}}right).
The four-velocity \(\mathbf{u}^{n}\) of is defined in units of \(c\) in runko to facilitate typical desired analysis, which require velocity in these units. As the equations above define velocity in units of hat{c}, the velocity as tracked by runko must be translated to and from these units for all calculations involving velocity. Velocities with units of \(\hat{c}\) rather than \(c\) will be marked with primes, and the conversion is simply a multiplication by \(\hat{c}\), so that we have \(\mathbf{u}_{0}^{'}=\hat{c}\mathbf{u}^{n}\).
The first half of the electric field acceleration then take a form similar to the standard formulation of Boris
mathbf{u}_{1}^{‘}=hat{c}mathbf{u}_{0}+frac{1}{2}hat{s}hat{mathbf{E}},
but note the lack of an explicit time-step which has been cancelled out by the choice of field scaling \(B_{0}\). Here
hat{s}=frac{hat{q}}{hat{m}_{s}m_{pm}}=frac{mathrm{sign}{hat{q}_{0}}}{m_{pm}},
where \(m_{\pm}=m/m_{e}\) is the particle mass in units of the electron rest mass. The Lorentz factor corresponding to the four-velocity \(\mathbf{u}_{1}^{'}\) with units of \(\hat{c}\) is given by
gamma_{1}=frac{sqrt{hat{c}^{2}+mathbf{u}_{1}^{‘2}}}{hat{c}}=sqrt{1+mathbf{u}_{1}^{‘2}/hat{c}}.
Proceeding, the first magnetic half-rotation takes the form
mathbf{u}_{2}=mathbf{u}_{1}^{‘}f+hat{s}frac{mathbf{u}_{1}^{‘}}{hat{c}gamma}timesfrac{1}{2}hat{mathbf{B}}f,
with
f=frac{2}{1+left(frac{hat{mathbf{B}}}{2hat{c}gamma_{1}}right)^{2}}.
For the final step, the last half rotation and acceleration from both magnetic and electric fields can be combined to determine the final velocity
mathbf{u’}_{3}=mathbf{u’}_{1}+hat{s}frac{mathbf{u’}_{2}}{hat{c}gamma}timesfrac{1}{2}hat{mathbf{B}}+frac{1}{2}hat{s}hat{mathbf{E}},
translating to units of \(c\) then gives the updated four-velocity at time \(t^{n+1}\)
mathbf{u}^{n+1}=frac{mathbf{u’}_{3}}{hat{c}}.
With velocity known, the position update takes the form
mathbf{x}^{n+1}=mathbf{x}^{n}+frac{hat{c}mathbf{u}^{n}}{gamma(hat{c}mathbf{u}^{n})},
where position and velocity are staggered in time so that \(\mathbf{u}^{n+1}\) coincides with \(\mathbf{x}^{n+1/2}\). Note again the translation of \(\mathbf{u}^{n}\) from units of \(c\) to units of \(\hat{c}\).
Relativistic Velocity-Verlet¶
As an alternative to leapfrog integration, Velocity-Verlet can be defined for relativistic particle motion. In velocity-Verlet, both velocity and position are defined at the integer time-steps. Concurrent velocity/position can simplify simulation setup as well as data handling, since the half-step staggering of velocity need not be accounted for. This is particularly important when comparing simulations of varying time-step.
Starting again from relativistic Newton-Lorentz system
frac{dmathbf{x}}{dt}=mathbf{v}=mathbf{frac{u}{gamma}},
mfrac{dmathbf{u}}{dt}=mfrac{dgammamathbf{v}}{dt}=mathbf{F}(mathbf{x},mathbf{v}),
where
mathbf{F}(mathbf{x},mathbf{v})=qleft(mathbf{E}(mathbf{x})+frac{mathbf{v}}{c}timesmathbf{B}(mathbf{x})right)=qleft(mathbf{E}(mathbf{x})+frac{mathbf{u}}{cgamma}timesmathbf{B}(mathbf{x})right),
and the relativistic factor is given by
gamma=sqrt{frac{1}{1-(mathbf{v}/c)^{2}}}=sqrt{1+left(frac{mathbf{u}}{c}right)^{2}}.
To achieve second order convergence accuracy like in Leapfrog, centre-difference estimates of velocity and acceleration are applied and contracted to one time-step length giving
frac{mathbf{u}^{n+1/2}}{gamma^{n+1/2}}=frac{mathbf{x}^{n+1}-mathbf{x}^{n}}{Delta t},
frac{1}{m}mathbf{F}(mathbf{x}^{n+1/2},mathbf{v}^{n+1/2})=frac{mathbf{u}^{n+1}-mathbf{u}^{n}}{Delta t},
Rearranging these into update form for position and velocity yields
mathbf{x}^{n+1}=mathbf{x}^{n}+Delta tfrac{mathbf{u}^{n+1/2}}{gamma^{n+1/2}},
mathbf{u}^{n+1}=mathbf{u}^{n}+Delta tfrac{1}{m}mathbf{F}(mathbf{x}^{n+1/2},frac{mathbf{u}^{n+1/2}}{gamma^{n+1/2}}).
The half-step velocity at \(t^{n+1/2}\) in the position update can be estimated by half an explicit Euler step of (ref{eq:lorentz_rel})
frac{mathbf{u}^{n+1/2}-mathbf{u}^{n}}{frac{1}{2}Delta t}=frac{1}{m}mathbf{F}(mathbf{x}^{n},frac{mathbf{u}^{n}}{gamma^{n}}),
mathbf{u}^{n+1/2}=mathbf{u}^{n}+frac{Delta t}{2}frac{1}{m}mathbf{F}(mathbf{x}^{n},frac{mathbf{u}^{n}}{gamma^{n}}),
The final system to be solved in cgs units is then is then
mathbf{u}^{n+1/2}=mathbf{u}^{n}+frac{Delta t}{2}mathbf{F}(mathbf{x}^{n},frac{mathbf{u}^{n}}{gamma^{n}}),
mathbf{x}^{n+1}=mathbf{x}^{n}+Delta tfrac{mathbf{u}^{n+1/2}}{gamma^{n+1/2}},
mathbf{u}^{n+1}=mathbf{u}^{n}+frac{Delta t}{2}left(mathbf{F}(mathbf{x}^{n},frac{mathbf{u}^{n}}{gamma^{n}})+mathbf{F}(mathbf{x}^{n+1},frac{mathbf{u}^{n+1}}{gamma^{n+1}})right),
where all relativistic factors can be calculated using the corresponding four-velocity and (). Note how the mass term has been absorbed by mathbf{F} to form the acceleration function
mathbf{F}(mathbf{x},frac{mathbf{u}}{gamma})=frac{q}{m}left(mathbf{E}(mathbf{x})+frac{mathbf{u}}{cgamma}timesmathbf{B}(mathbf{x})right).
The velocity update (ref{eq:relvv_u}) is of the same form as in leapfrog and can be solved explicitly using the Boris algorithm.
Relativistic Velocity-Verlet in runko¶
In the section on leapfrog integration in runko above, the Boris algorithm was derived for the specific case where runko scaling is in use. For simple update equations however, there is no need to re-derive the equations from the ground up using the correctly scaled variables. As a worked example, the relativistic velocity-Verlet integrator will be scaled for runko implementation below. Note that the unit-change from \(c\) to \(\hat{c}\) of velocity will be omitted, as these are specific to the storage scheme rather than scaling. To implement the equations derived below, the velocities must simply be multiplied/divided by \(\hat{c}\) when retrieved and written to memory respectively.
To provide further context on the consequences of the normalisation scheme used, it will also be demonstrated how the effective time-step can be varied despite time-step being used to normalise the scheme.
Substituting runko scalings into the relativistic velocity-verlet equations (ref{eq:relvv_uhalf})-(ref{eq:relvv_u}) gives
mathbf{u}^{n+1/2}frac{text{ensuremath{Delta x}}}{Delta t}=mathbf{u}^{n}frac{text{ensuremath{Delta x}}}{Delta t}+frac{k_{Delta t}Delta t}{2}mathbf{F}(mathbf{hat{x}}^{n}Delta x,frac{mathbf{hat{u}}^{n}}{gamma^{n}}frac{Delta x}{Delta t}),
mathbf{hat{x}}^{n+1}text{ensuremath{Delta x}}=mathbf{hat{x}}^{n}text{ensuremath{Delta x}}+k_{Delta t}Delta tfrac{mathbf{hat{u}}^{n+1/2}}{gamma^{n+1/2}}frac{text{ensuremath{Delta x}}}{Delta t},
mathbf{hat{u}}^{n+1}frac{Delta x}{Delta t}=mathbf{hat{u}}^{n}frac{Delta x}{Delta t}+frac{k_{Delta t}Delta t}{2}left(mathbf{F}(mathbf{hat{x}}^{n}Delta x,frac{mathbf{hat{u}}^{n}}{gamma^{n}}frac{Delta x}{Delta t})+mathbf{F}(mathbf{hat{x}}^{n+1}Delta x,frac{mathbf{hat{u}}^{n+1}}{gamma^{n+1}}frac{Delta x}{Delta t})right).
The trick here is to recognise the difference between \(\Delta t\) as used to set the size of the time-step versus where it is used to normalise the scheme. In the former case, time-step is rewritten as a non-dimensional scale \(k_{\Delta t}\) multiplied by the scaling time-step \(\Delta t\). Carrying the factor \(k_{\Delta t}\) through the normalisation process allows simulations of varying effective time-step to be performed for the same physical setup. The effective time-step \(k_{\Delta t}\) becomes a factor of a common normalisation time-step \(\Delta t\) between simulations. When \(k_{\Delta t}=1\) the simulation corresponds to standard runko red{notation}. The same physics can now be studied for varying temporal resolutions, by changing the number of time-steps and ensuring a reciprocal change in effective time-step k_{Delta t}. For instance, when the number of time-steps is doubled, the effective time-step must be halved.
Continuing the scaling process, expanding out :math:`mathbf{F}`in velocity half-step gives
mathbf{u}^{n+1/2}frac{text{ensuremath{Delta x}}}{Delta t}=mathbf{u}^{n}frac{text{ensuremath{Delta x}}}{Delta t}+frac{k_{Delta t}Delta t}{2}frac{q_{0}hat{q}}{m_{0}hat{m}}B_{0}left(mathbf{hat{E}}^{n}+frac{mathbf{hat{u}}^{n}}{cgamma^{n}}frac{Delta x}{Delta t}timeshat{mathbf{B}}^{n}right),
mathbf{u}^{n+1/2}=mathbf{u}^{n}+frac{text{ensuremath{Delta t}}}{Delta x}frac{k_{Delta t}Delta t}{2}frac{q_{0}hat{q}}{m_{0}hat{m}}frac{m_{0}c}{q_{0}hat{c}Delta t}left(mathbf{hat{E}}^{n}+frac{mathbf{hat{u}}^{n}}{cgamma^{n}}frac{Delta x}{Delta t}timeshat{mathbf{B}}^{n}right),
Remembering the relation \(\Delta t/\Delta x=\hat{c}/c\) and cancelling out terms accordingly in both the position update and velocity half-step, these equations must take the following form in runko
mathbf{u}^{n+1/2}=mathbf{u}^{n}+frac{k_{Delta t}}{2}frac{hat{q}}{hat{m}}left(mathbf{hat{E}}^{n}+frac{mathbf{hat{u}}^{n}}{hat{c}gamma^{n}}timeshat{mathbf{B}}^{n}right),
mathbf{hat{x}}^{n+1}=mathbf{hat{x}}^{n}+k_{Delta t}frac{mathbf{hat{u}}^{n+1/2}}{gamma^{n+1/2}},
Meanwhile, expanding out :math:`mathbf{F}`in velocity update yields
mathbf{hat{u}}^{n+1}frac{Delta x}{Delta t}=mathbf{hat{u}}^{n}frac{Delta x}{Delta t}+frac{k_{Delta t}Delta t}{2}left(frac{q_{0}hat{q}}{m_{0}hat{m}}B_{0}left(mathbf{hat{E}}^{n}+frac{hat{mathbf{v}}^{n}}{c}frac{c}{hat{c}}timeshat{mathbf{B}}^{n}right)+frac{q_{0}hat{q}}{m_{0}hat{m}}B_{0}left(mathbf{hat{E}}^{n+1}+frac{hat{mathbf{v}}^{n+1}}{c}frac{c}{hat{c}}timeshat{mathbf{B}}^{n+1}right)right),
mathbf{hat{u}}^{n+1}frac{Delta x}{Delta t}=mathbf{hat{u}}^{n}frac{Delta x}{Delta t}+frac{k_{Delta t}Delta t}{2}frac{q_{0}hat{q}}{m_{0}hat{m}}B_{0}left(left(mathbf{hat{E}}^{n}+frac{hat{mathbf{v}}^{n}}{hat{c}}timeshat{mathbf{B}}^{n}right)+left(mathbf{hat{E}}^{n+1}+frac{hat{mathbf{v}}^{n+1}}{hat{c}}timeshat{mathbf{B}}^{n+1}right)right),
mathbf{hat{u}}^{n+1}frac{Delta x}{Delta t}=mathbf{hat{u}}^{n}frac{Delta x}{Delta t}+frac{k_{Delta t}Delta t}{2}frac{q_{0}hat{q}}{m_{0}hat{m}}frac{m_{0}c}{q_{0}hat{c}Delta t}left(mathbf{hat{E}}^{n}+mathbf{hat{E}}^{n+1}+frac{hat{mathbf{v}}^{n}}{hat{c}}timeshat{mathbf{B}}^{n}+frac{hat{mathbf{v}}^{n+1}}{hat{c}}timeshat{mathbf{B}}^{n+1}right),
mathbf{hat{u}}^{n+1}=mathbf{hat{u}}^{n}+k_{Delta t}frac{hat{q}}{hat{m}}left(frac{mathbf{hat{E}}^{n}+mathbf{hat{E}}^{n+1}}{2}+frac{hat{mathbf{v}}^{n}+hat{mathbf{v}}^{n+1}}{2hat{c}}timesfrac{hat{mathbf{B}}^{n}+hat{mathbf{B}}^{n+1}}{2}right),
where \(\hat{\mathbf{v}}^{n}=\hat{\mathbf{u}}^{n}/\gamma^{n}\).
The seemingly implicit form of the velocity update (ref{eq:relvv_u_runko}) is of the same form as the leapfrog discretisation of velocity and can now be solved with the runko-scaled Boris algorithm above. Together with (ref{eq:relvv_uhalf_runko}) and (ref{eq:relvv_x_runko}) the evolution in time of particle motion can now be solved to second order, so long as \(\mathbf{\hat{E}}(\mathbf{\hat{x}},\mathbf{\hat{u}})\) and \(\mathbf{\hat{B}}(\mathbf{\hat{x}},\mathbf{\hat{u}})\) can be evaluated.


Divya is motivated by the fact that Molecular Research can be used to make healthcare more personalized. She wants to do research that can integrate Healthcare into every component of people’s life.!
Currently a masters student at the Miami University, Divya is exploring various facets of Wet lab techniques. She is focusing on Innovation in Clinical and Laboratory research by applying her background in the field of Biomedical Engineering. She is inspired by companies that build futuristic products that make people’s life better through innovation and research.
Prior to graduate school, Divya strengthened her foundation in Biosignal Acquition and processing, Product Design and Instrumentation!
Know more!Invited to present at GE's JFWTC Innovation Center, Bangalore
Invited for presenting the business proposal of JECTABLE!
Shortlisted for the best student paper.
Shortlisted as the semi-finalist!


Agenda
- Code Reviews
- Virtual
- In Person
- Activity Around Code Reviews
- Refactor
- Kate Rabinowitz
Why?
Coding is a Team Sport
So What Do You Need To Know About The Code
Not Everyone Knows Everything
Does the Code Answer the Right Question?
Is the Code Well Documented?
Can You Follow What's Going On?
Does the Code Have Any Unintended Consequences?
Is There a More Effective Way to Handle This?
Is The Code Too Simple or Too Complex?
Does the Code Repeat Itself?
Is There Another Way to Handle This?
Will this Code Create Bugs?
Suggested Agenda for Virtual Code Reviews
- Run the code
- Try to break the code
- Go line by line
- Comment on your findings
- Approve or reject
Suggested Agenda for Virtual Code Reviews
- Run the code
- Try to break the code
- Tell the story of the code
- What couldn't you get to work?
 What didn't work? What did we learn about our code?
Our Plan for Code Reviews
Let's Create a Checklist for Code Reviews


What did I do?
I taught eecs 485 for three semesters. We made several large improvements to the course during my tenure:
TODO
TODO
Some of my routine tasks included
- Holding regular office hours
- TODO
Web Databases and Information Systems
I taught eecs 485 for three semesters. We made several large improvements to the course during my tenure:
TODO
Some of my routine tasks included


Foursquare & Swarm
Recently Foursquare announced the split of their service into 2 different apps, Foursquare and Swarm. The move was to separate the feature they’re largely known for, check-in’s (Swarm), from their new focus, reviews & recommendations (Foursquare).
The move doesn’t come as a surprise, but the launch has been less than spectacular. People have been pretty vocal about their distaste for the service, and downloads are rankings are both down. There’s even a Twitter account and a blog dedicated to killing their new app, Swarm. And the press is questioning their ability to survive. Not looking great.
While there is risk, I wouldn’t count Foursquare out yet. Dennis has always said the vision is local search and they’re just starting to execute on that now. Over the years they’ve just been collecting the data to power this engine. And if you look at the ratings & reviews, the anger is primarily around the product changes as opposed to a commentary on the service. Those that have used the product for what it’s designed for have had decent things to say.
Outside of the above, a common thread that is brought up is Yelp. Those who say Yelp has already won the local restaurant game aren’t seeing what Foursquare could be. Yelp is in the same space, but the focus & products are different. Yelp is a directory, similar to the yellow pages. Foursquare is a recommendation engine that delivers tips based on your tastes. While Yelp has features that mimic Foursquare’s, the products are inherently different. Not a zero sum game, and they can co-exist.
All that being said, I do think there is a fair amount of execution risk here. Public perception of Foursquare is not great right now. Plus they’ve raised quite a bit of money & have been around for awhile; their investors may be needing that cash back soon, forcing their hand before it’s ready.
But I think the real risk is with the product. With their new model of separating check in’s and reviews, they have to more actively craft both sides of this marketplace to keep check-in data coming. Plus they have to make sure people don’t reject the apps post split. Making sure people continue checking in is just as important as people using their reviews serve.
Looking from the outside, I’m not sure I agree with the split. I do believe in unbundling & single purpose apps on mobile, but I think in this case I think they should have kept the products together. Checking in and getting reviews are 2 separate functions, but they’re tied together by location. A user shouldn’t have to think about which app to open when they get somewhere – Foursquare should just aim to be the first app users remember to open when they go anywhere. So they risk the user loss from that split, and also risk neglecting one side for the other, causing more loss.
But this is all coming from the outside. I have no insight outside of my own speculation, so I could be totally off. Regardless, while there is risk I still think Dennis & team have a lot going for them and I’m still rooting for Foursquare.


In this blog I will explain the concept of Overfitting using polynomial Regression, how to detect it and different ways to prevent it.
When a model fits more data than it needs, it starts catching noisy data and inaccurate values in the data. As a result, the efficiency and the accuracy of the model decrease.
When we run the training algorithm on the data set, we allow the cost to reduce with each number of iteration so running this algorithm for too long will result in reduced cost but it will also fit the noisy data from the data set.
The result will look like the graph below
It looks efficient but it’s not the main goal of the algorithm such as linear regression is to find a dominant trend and fit the data points accordingly but in this case, the line fits all the data points which is irrelevant to the efficiency of the model in predicting optimum outcomes for the new entry data points.
When we run the training algorithm on the data set, we allow the cost to reduce with each number of iteration so running this algorithm for too long will result in reduced cost but it will also fit the noisy data from the data set.
To avoid overfitting, we could stop the training at an initial stage. But it might also lead to the model not being able to learn enough from training data, which may find it difficult to capture the dominant trend. This is known as UNDERFITTING.
Underfitting is when you have a high bias with the new data
The graph below displays underfitting
The result is the same as overfitting like it will cause inefficiency in predicting the outcomes, but it will take fewer data to recognize the dominant trend inside the data set.
During the training, we will have the training error and the validation error, i.e, the error on the training set and error on the validation set, we have to observe how these errors are developing
For example, The graph below contains a Blue line for the training error and a red line for the Validation error
Initially, both are decreasing gradually which means both are getting lower and lower error rates, but after a while, the Validation error is going up while the training error is continuing to show the downward trend.
The model here is learning what the taring set looks like and it’s adapting itself to the training set all the time hence the reason the training error is showing the continuous downward trend whereas the validation error is increasing because it’s not caring about the validations had as much right it’s only caring about adapting itself to our training set here.
If you have a similar graph with training and validation errors then you’re probably suffering from overfitting
The main challenge with overfitting is to estimate the accuracy of the performance of our model with new data as we would not be able to estimate the accuracy until we test it.
Overfitting with Higher order Linear Regression
sorted X and Y data simultaneously to get proper line graph ouput
Calculating the training and Testing error, we get:
Generating the 9th order using the same previous method:
Using Regularization method, we can prevent overfitting
The Lambda graphs:
When Lambda = 1 :
When Lambda = 1/10 :
When Lambda = 1/100 :
When Lambda = 1/1000 :
When Lambda = 1/10000 :
When Lambda = 1/100000 :
The Training and Test error of the Lambda Values are:
There are large datasets as some of the independent data are correlated with other data. First I tried using LASSO which uses L1 regularization( does the feature selection automatically) but the result was not accurate as LASSO cannot be used as it can only be used if we have correlated variables and it turns one variable to zero and retains only one variable. This was resulting in low accuracy for the model and loss of Information.
So, I used Ridge Regression as it reduces model complexity and it shrinks the parameters. It shrinks the parameters which result in reducing the variance For the optimization function to be penalized, lambda regularizes the coefficients in a way that they(coefficients) take huge values. This was the more optimal method and we can prevent Overfitting using Ridge Regression.


This inspection reports local variables assigned to expression with different type inside of closure of anonymous class.
Powered by JetGroovy