| Home | Trees | Indices | Help |
|
|---|
|
|
Parsers and formatters of angles in degrees, minutes and seconds or radians.
Functions to parse and format bearing, compass, lat- and longitudes in
various forms of degrees, minutes and seconds with or without degrees,
minute and second symbols plus a compass point suffix, including parsing
of decimal
and sexagecimal
degrees.
After (C) Chris Veness 2011-2015 published under the same MIT Licence**, see Latitude/Longitude and Vector-based geodesy.
Note:
In Python 2-, S_DEG, S_MIN, S_SEC, S_RAD and S_SEP may
be multi-byte, non-ascii characters and if so, not
unicode
.
Version: 23.06.08
| Functions | |||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
| Variables | |
__all__ = _ALL_LAZY.dms
|
|
S_DEG =
Degrees symbol, default "°"
|
|
S_MIN =
Minutes symbol, default "′" aka PRIME
|
|
S_SEC =
Seconds symbol, default "″" aka
DOUBLE_PRIME
|
|
S_RAD = '' Radians symbol, default "" aka pygeodesy.NN
|
|
S_DMS = True If True include, otherwise cancel all DMS symbols,
default True .
|
|
S_SEP = '' Separator between deg°|min′|sec″|suffix , default
"" aka pygeodesy.NN
|
|
F_D =
Format degrees as unsigned "deg°" with symbol, plus compass point suffix N, S, E or W
(str ).
|
|
F_D60 =
Format degrees as unsigned "[D]DD.MMSS" sexagecimal without symbols, plus suffix
(str ).
|
|
F_D60_ = '-d60' Format degrees as signed "-/[D]DD.MMSS" sexagecimal without symbols, without
suffix (str ).
|
|
F_D60__ = '+d60' Format degrees as signed "-/+[D]DD.MMSS" sexagecimal without symbols, without
suffix (str ).
|
|
F_DEG =
Format degrees as unsigned "[D]DD" without symbol, plus suffix ( str ).
|
|
F_DEG_ = '-deg' Format degrees as signed "-/[D]DD" without symbol, without suffix ( str ).
|
|
F_DEG__ = '+deg' Format degrees as signed "-/+[D]DD" without symbol, without suffix ( str ).
|
|
F_DM =
Format degrees as unsigned "deg°min′" with symbols, plus suffix ( str ).
|
|
F_DMS =
Format degrees as unsigned "deg°min′sec″" with symbols, plus suffix ( str ).
|
|
F_DMS_ = '-dms' Format degrees as signed "-/deg°min′sec″" with symbols, without suffix ( str ).
|
|
F_DMS__ = '+dms' Format degrees as signed "-/+deg°min′sec″" with symbols, without suffix ( str ).
|
|
F_DM_ = '-dm' Format degrees as signed "-/deg°min′" with symbols, without suffix ( str ).
|
|
F_DM__ = '+dm' Format degrees as signed "-/+deg°min′" with symbols, without suffix ( str ).
|
|
F_D_ = '-d' Format degrees as signed "-/deg°" with symbol, without suffix ( str ).
|
|
F_D__ = '+d' Format degrees as signed "-/+deg°" with symbol, without suffix ( str ).
|
|
F_MIN =
Format degrees as unsigned "[D]DDMM" without symbols, plus suffix ( str ).
|
|
F_MIN_ = '-min' Format degrees as signed "-/[D]DDMM" without symbols, without suffix ( str ).
|
|
F_MIN__ = '+min' Format degrees as signed "-/+[D]DDMM" without symbols, without suffix ( str ).
|
|
F_RAD =
Convert degrees to radians and format as unsigned "RR" with symbol, plus suffix ( str ).
|
|
F_RAD_ = '-rad' Convert degrees to radians and format as signed "-/RR" without symbol, without suffix ( str ).
|
|
F_RAD__ = '+rad' Convert degrees to radians and format as signed "-/+RR" without symbol, without suffix ( str ).
|
|
F_SEC =
Format degrees as unsigned "[D]DDMMSS" without symbols, plus suffix ( str ).
|
|
F_SEC_ = '-sec' Format degrees as signed "-/[D]DDMMSS" without symbols, without suffix ( str ).
|
|
F_SEC__ = '+sec' Format degrees as signed "-/+[D]DDMMSS" without symbols, without suffix ( str ).
|
|
F__E =
Format degrees as unsigned "%E" without symbols, plus suffix ( str ).
|
|
F__E_ = '-e' Format degrees as signed "-/%E" without symbols, without suffix ( str ).
|
|
F__E__ = '+e' Format degrees as signed "-/+%E" without symbols, without suffix ( str ).
|
|
F__F =
Format degrees as unsigned "%F" without symbols, plus suffix ( str ).
|
|
F__F_ = '-f' Format degrees as signed "-/%F" without symbols, without suffix ( str ).
|
|
F__F__ = '+f' Format degrees as signed "-/+%F" without symbols, without suffix ( str ).
|
|
F__G =
Format degrees as unsigned "%G" without symbols, plus suffix ( str ).
|
|
F__G_ = '-g' Format degrees as signed "-/%G" without symbols, without suffix ( str ).
|
|
F__G__ = '+g' Format degrees as signed "-/+%G" without symbols, without suffix ( str ).
|
| Function Details |
Convert bearing to a string (without compass point suffix).
See Also: Function pygeodesy.toDMS. |
Clip a lat- or longitude to the given range.
|
Clip a lat- or longitude to the given range.
|
Convert bearing to a string suffixed with compass point.
See Also: Function pygeodesy.toDMS. |
Convert bearing to a compass point.
See Also: Dms.compassPoint and Compass rose. Example: >>> p = compassPoint(24, 1) # 'N' >>> p = compassPoint(24, 2) # 'NE' >>> p = compassPoint(24, 3) # 'NNE' >>> p = compassPoint(24) # 'NNE' >>> p = compassPoint(11, 4) # 'NbE' >>> p = compassPoint(30, 4) # 'NEbN' >>> p = compassPoint(11.249) # 'N' >>> p = compassPoint(11.25) # 'NNE' >>> p = compassPoint(-11.25) # 'N' >>> p = compassPoint(348.749) # 'NNW' |
Convert degrees to a string in degrees, minutes or seconds.
See Also: Function pygeodesy.toDMS. |
Convert latitude to a string, optionally suffixed with N or S.
See Also: Functions pygeodesy.toDMS and pygeodesy.lonDMS. |
Convert one or more
See Also:
Functions pygeodesy.latDMS, pygeodesy.latlonDMS_, pygeodesy.lonDMS and pygeodesy.toDMS and method
Note:
Keyword argument |
Convert one or more
See Also: Function pygeodesy.latlonDMS. Note:
Keyword argument |
Convert longitude to a string, optionally suffixed with E or W.
See Also: Functions pygeodesy.toDMS and pygeodesy.latDMS. |
Normalize all degrees, minutes and seconds (DMS) symbols in a string to the default symbols S_DEG, S_MIN, S_SEC.
|
Parse a lat- or longitude represention forms as [D]DDMMSS in degrees.
Notes:
See Also: Functions pygeodesy.parseDMS, pygeodesy.parseDMS2 and pygeodesy.parse3llh. |
Parse a lat- or longitude representation in This is very flexible on formats, allowing signed decimal degrees, degrees and minutes or degrees minutes and seconds optionally suffixed by a cardinal compass point. A variety of symbols, separators and suffixes are accepted, for example "3°37′09″W". Minutes and seconds may be omitted.
Note:
Unlike function parseDDDMMSS, type See Also: Functions pygeodesy.parseDDDMMSS, pygeodesy.parseDMS2, pygeodesy.parse3llh and pygeodesy.toDMS. |
Parse a lat- and a longitude representions
Note: See the Notes at function parseDMS. See Also: Functions pygeodesy.parseDDDMMSS, pygeodesy.parseDMS, pygeodesy.parse3llh and pygeodesy.toDMS. |
Parse a string The lat- and longitude value must be separated by a separator character. If height is present it must follow, separated by another separator. The lat- and longitude values may be swapped, provided at least one ends with the proper compass point.
Note: See the Notes at function parseDMS. See Also: Functions pygeodesy.parseDDDMMSS, pygeodesy.parseDMS, pygeodesy.parseDMS2 and pygeodesy.toDMS. Example: >>> parse3llh('000°00′05.31″W, 51° 28′ 40.12″ N') (51.4778°N, 000.0015°W, 0) |
Parse a string representing angle in
|
Set the default precison for a given F_ form.
|
Convert signed
Notes:
See Also: Function pygeodesy.degDMS |
| Home | Trees | Indices | Help |
|
|---|
| Generated by Epydoc 3.0.1 on Sun Aug 20 14:42:07 2023 | http://epydoc.sourceforge.net |


- NAME
- encoding - Manipulate encodings
- SYNOPSIS
- INTRODUCTION
- DESCRIPTION
- encoding convertfrom ?encoding? data
- encoding convertto ?encoding? string
- encoding dirs ?directoryList?
- encoding names
- encoding system ?encoding?
- EXAMPLE
- SEE ALSO
- KEYWORDS
encoding - Manipulate encodings
encoding option ?arg arg ...?
Strings in Tcl are encoded using 16-bit Unicode characters. Different
operating system interfaces or applications may generate strings in
other encodings such as Shift-JIS. The encoding command helps
to bridge the gap between Unicode and these other formats.
Performs one of several encoding related operations, depending on
option. The legal options are:
- encoding convertfrom ?encoding? data
-
Convert data to Unicode from the specified encoding. The
characters in data are treated as binary data where the lower
8-bits of each character is taken as a single byte. The resulting
sequence of bytes is treated as a string in the specified
encoding. If encoding is not specified, the current
system encoding is used.
- encoding convertto ?encoding? string
-
Convert string from Unicode to the specified encoding.
The result is a sequence of bytes that represents the converted
string. Each byte is stored in the lower 8-bits of a Unicode
character. If encoding is not specified, the current
system encoding is used.
- encoding dirs ?directoryList?
-
Tcl can load encoding data files from the file system that describe
additional encodings for it to work with. This command sets the search
path for *.enc encoding data files to the list of directories
directoryList. If directoryList is omitted then the
command returns the current list of directories that make up the
search path. It is an error for directoryList to not be a valid
list. If, when a search for an encoding data file is happening, an
element in directoryList does not refer to a readable,
searchable directory, that element is ignored.
- encoding names
-
Returns a list containing the names of all of the encodings that are
currently available.
- encoding system ?encoding?
-
Set the system encoding to encoding. If encoding is
omitted then the command returns the current system encoding. The
system encoding is used whenever Tcl passes strings to system calls.
It is common practice to write script files using a text editor that
produces output in the euc-jp encoding, which represents the ASCII
characters as singe bytes and Japanese characters as two bytes. This
makes it easy to embed literal strings that correspond to non-ASCII
characters by simply typing the strings in place in the script.
However, because the source command always reads files using the
current system encoding, Tcl will only source such files correctly
when the encoding used to write the file is the same. This tends not
to be true in an internationalized setting. For example, if such a
file was sourced in North America (where the ISO8859-1 is normally
used), each byte in the file would be treated as a separate character
that maps to the 00 page in Unicode. The resulting Tcl strings will
not contain the expected Japanese characters. Instead, they will
contain a sequence of Latin-1 characters that correspond to the bytes
of the original string. The encoding command can be used to
convert this string to the expected Japanese Unicode characters. For
example,
set s [encoding convertfrom euc-jp "\xA4\xCF"]
would return the Unicode string
“\u306F”,
which is the Hiragana letter HA.
Tcl_GetEncoding
encoding
Copyright © 1995-1997 Roger E. Critchlow Jr.
Copyright © 1998 by Scriptics Corporation.


Next: The Host part of a Logical Pathname Namestring, Previous: Syntax of Logical Pathname Namestrings, Up: Syntax of Logical Pathname Namestrings


Loan Distribution
Repayments Sales
Funds
Total Allocation
#80,000,000
List
| ITEM | NO | |
|---|---|---|
| Aprroved Loan | 30 | View details |
| Pending Loan | 54 | View details |
| Declined Loan | 60 | View details |
| Borrowers | 541 | View details |
| Repayment | 50 | View details |
| Overdue | 60 | View details |
Funds
#80,000,000
| ITEM | NO | |
|---|---|---|
| Aprroved Loan | 30 | View details |
| Pending Loan | 54 | View details |
| Declined Loan | 60 | View details |
| Borrowers | 541 | View details |
| Repayment | 50 | View details |
| Overdue | 60 | View details |


Update a Friend by ID
Friend ID:
Friend Information (* denotes required field)
Birth Date *
First Name *
Last Name *
Gender
Male
Female
Phone
Submit
Reset


Inline loading
Axure Kit
Carbon
Updates
Common widgets
Style effects
Variables
Selection group
Repeater
Dynamic panel
Introduction
Axure elements
Utilities
UI shell
Tooltip
Toggle
Tile
Text input
Tag
Tabs
Structured list
Slider
Select
Search
Radio button
Progress indicator
Pagination
Overflow menu
Number input
Notification
Modal
Loading
List
Link
Inline loading
Form
File upoader
Dropdown
Date picker
Data table
Content switcher
Code snippet
Checkbox
Button
Breadcrumb
Accordion
Components
Typography
Spacing
Icons
Color
Design elements
Library index
Getting started
Components
Privacy
Have questions? Open an issue on GitHub.
Last updated 29 January 2020
Copyright © 2020 IBM
Terms of Use
Contribute
IBM.com
Inline loading
Library section:
Interactions:
Notification and Feedback
–
Loading
Success
Error
User not found.
User invited!
Inviting user…


#include <sys/types.h>
Go to the source code of this file.
Classes | |
| struct | devname_head |
| struct | devname |
| struct | devinfo_head |
| struct | devinfo |
| struct | dev_head |
| struct | dev |
Defines | |
| #define | LIBDEVTAG_H |
| #define | LIBDEVTAG_VERSION "1.0.6" |
Functions | |
| int | devtag_lookup (char *buf, size_t bufsize, const char *devtag) |
| int | devtag_lookup2 (char *buf, size_t bufsize, char *constbuf, size_t constsize, const char *devtag) |
| char * | devtag_get (const char *devtag) |
| int | devtag_dev_scan (struct dev_head *result, const struct devinfo_head *sel) |
| int | devtag_usb_scan (struct dev_head *result, const struct devinfo_head *sel) |
| #define LIBDEVTAG_H |
Definition at line 29 of file devtag-allinone.h.
| #define LIBDEVTAG_VERSION "1.0.6" |
Definition at line 31 of file devtag-allinone.h.
| int devtag_dev_scan | ( | struct dev_head * | result, | |
| const struct devinfo_head * | sel | |||
| ) |
Definition at line 259 of file devtag-allinone.c.
References devtag_usb_scan().
| char* devtag_get | ( | const char * | devtag | ) |
| int devtag_lookup | ( | char * | buf, | |
| size_t | bufsize, | |||
| const char * | devtag | |||
| ) |
Definition at line 435 of file devtag-allinone.c.
References devtag_lookup2().
Referenced by devtag_get().
| int devtag_lookup2 | ( | char * | buf, | |
| size_t | bufsize, | |||
| char * | constbuf, | |||
| size_t | constsize, | |||
| const char * | devtag | |||
| ) |
Definition at line 373 of file devtag-allinone.c.
References devname::devname, dev::devnames, devtag_usb_scan(), devname_head::head, dev_head::head, devinfo_head::head, and dev::next.
Referenced by devtag_lookup().
| int devtag_usb_scan | ( | struct dev_head * | result, | |
| const struct devinfo_head * | sel | |||
| ) |
Definition at line 58 of file devtag-allinone.c.
Referenced by devtag_dev_scan(), and devtag_lookup2().


Flash floods kill 5 family members
by Miriam MwendeDevastating floods
Five members of one family perished on Monday morning after a vehicle they were traveling in was swept away by flash floods.
The tragic accident took place at Ngatatoek area in Kajiado Central constituency.
The vehicle was recovered downstream though authorities are yet to confirm whether there were other casualties of the incident.
West Pokot landslide death toll rises
The accident comes in the wake of a tragic land slide that has so far claimed the lives of 43 people in West Pokot County.
The land slide hit three villages - Nyarkulian, Muino and Parua where the people were buried alive at around 2 a.m on Saturday.
The government evacuated residents fro neighbouring villages as a precautionary measure.
President Uhuru Kenyatta condoled with families of the bereaved stating: "My thoughts and prayers, and those of our entire nation are with families, friends and relatives of those who lost their beloved ones in the unfortunate incident. Please accept my heartfelt condolences."


JBoss A-MQ 6.2 Performance Tuning Adventures
2008 was the last time I embarked on a similar exercise, so I was a little rusty at tuning high-performance applications. But it was refreshing to revisit the process again with JBoss A-MQ. I recently had a customer who presented a performance issue with an unusual use case: “Publish only to a composite topic (forwarding from topics to queues) with no subscribers, no use of transactions and must have JMS durability“. I quizzed the customer whether this was a valid real-word use case and they assured me it was. They explained they have many applications publishing notification messages to topics which may (or may not) have any subscribers, and it was likely the topic could get backed up with millions of messages at a time. Their initial performance benchmark looked like this:
Pub only versus Pub/Sub, zero tuning, persistence, 13M messages
| Test | Result |
|---|---|
| Pub only | 1276 msgs/sec |
| Pub / Sub | 8832 msgs/sec |
Pathetic and embarrassing to say the least. But hey - zero tuning so you can’t really expect much right? The first question we raised was let’s take a look at your hardware:
Test Broker VM Specification
| Item | Value |
|---|---|
| OS | RHEL 7.1 |
| Architecture | amd64 |
| Processors | 4 |
| Memory | 8GB |
| JVM | Oracle 64bit 1.7.0_09 |
Not too shabby in terms of test machine, so what about storage:
Test Broker Storage
| Item | Value |
|---|---|
| Type | HDS VSP array |
| Connectivity | Fiber attached, 8Gbp/s HBAs & SAN switches |
| NFS | No |
Again, no alarm bells yet in terms of test VM and storage. My colleague, Christian Posta, who published an amazing post on tuning A-MQ here, gave us some hints for checking persistent storage, specifically by running the activemq perf-test benchmarking tool. This was the output it gave:
Disk Benchmark:
Benchmarking: /opt/app/jbossamq/csst/data/amq/kahadb/disk-benchmark.dat
Writes:
1919986 writes of size 4096 written in 10.042 seconds.
191195.58 writes/second.
746.8577 megs/second.
Sync Writes:
24857 writes of size 4096 written in 10.001 seconds.
2485.4514 writes/second.
9.708795 megs/second.
Reads:
8539871 reads of size 4096 read in 10.001 seconds.
853901.7 writes/second.
3335.5535 megs/second
The Disk Writes looked fine at 746 megs/sec. But as Christian mentioned in his post, the item to watch was the sync writes, which in our case were abysmally slow at 9.7 megs/sec. Christian’s suggestion was to run disk-benchmark again but increase the block size to 4MB (the default block size of Apache ActiveMQ):
Benchmarking: /opt/app/jbossamq/csst/extras/apache-activemq-5.11.0.redhat-62013/disk-benchmark.dat
Writes:
1576 writes of size 4194304 written in 10.251 seconds.
153.7411 writes/second.
614.9644 megs/second.
Sync Writes:
927 writes of size 4194304 written in 10.004 seconds.
92.66293 writes/second.
370.65173 megs/second.
Reads:
3858 reads of size 4194304 read in 10.003 seconds.
385.6843 writes/second.
1542.7372 megs/second.
This time around we saw a massive increase from 9.7 megs/second to 370 megs/second, telling us to be mindful of this when tuning JBoss A-MQ. We had a smoking gun though: storage. But how best to proceed? We decided to momentarily take storage out of the equation and run the tests with zero persistence, using the “memoryPersistenceAdapter” plus publish to queues (and not composite topics). That way, everything runs in memory and we’re not worrying about disk I/O or storage holding us up. We tried running the same tests but this time with a 4M message sample. Unfortunately, the test broker kept bombing out with this ghastly error:
java.lang.OutOfMemoryError: GC overhead limit exceeded
A bit of Googling and we soon found out we can fix this by specifying a different Garbage Collector in the bin/setenv file:
export JAVA_MIN_MEM=6G # Minimum memory for the JVM
export JAVA_MAX_MEM=6G # Maximum memory for the JVM
export KARAF_OPTS="-XX:+UseConcMarkSweepGC"
While we were at it, we noticed the customer had set the JVM min/max heap size to 8G - the total memory size of the VM which certainly wasn’t helping matters. So we knocked that down to 6G (both min and max) giving the OS a bit of breathing space (2G of memory). We ran the tests again and this was the new result:
Pub only versus Pub/Sub, No persistence, New memory / GC settings
| Test | Result |
|---|---|
| Pub only | 57,743 msgs/sec |
| Pub / Sub | 34,198 msgs/sec |
Wow! What a MASSIVE difference adjusting the memory, GC and removing storage makes. We’ve opened the flood gates, so now was a good time to add back persistence (kahadb) and re-test. Instead of going through every modification, here is a summary of tweaks we made to the default persistence store, kahadb (in the activemq.xml file):
Queues, Producer Only, Persistence On
| Enhancement | Throughput (msg/sec) |
|---|---|
| UseConcMarkSweepGC | 1,236 |
| enableJournalDiskSyncs=”true” preallocationStrategy=”zeros” |
1,424 |
| preallocationStrategy=”os_kernel_copy” | 1,456 |
| preallocationStrategy=”zeros” concurrentStoreAndDispatchQueues=”false” |
6,056 |
| enableJournalDiskSyncs=”true” preallocationStrategy=”zeros” concurrentStoreAndDispatchQueues=”false” cleanupInterval=”300000” checkpointInterval=”50000” journalMaxWriteBatchSize=”62k” journalMaxFileLength=”1g” indexCacheSize=”100000” |
5,688 |
| enableJournalDiskSyncs=”true” preallocationStrategy=”zeros” concurrentStoreAndDispatchQueues=”false” skipMetadataUpdate=true |
7,828 |
| enableJournalDiskSyncs=”true” preallocationStrategy=”zeros” concurrentStoreAndDispatchQueues=”false” mKahaDb (10 instances, cold database) |
11,936 |
| enableJournalDiskSyncs=”true” preallocationStrategy=”zeros” concurrentStoreAndDispatchQueues=”false” mKahaDb (10 instances, hot database) |
12,693 |
A technique suggested to us by Red Hat Engineering was the use of destination sharding using mKahaDB (or multiple kahadb’s). The idea is to segregate topic / queue destinations into their own kahadb instance make access quicker, which obviously gave us some performance gain.
<persistenceAdapter>
<mKahaDB directory="${data}/kahadb">
<filteredPersistenceAdapters>
<filteredKahaDB queue="amqThroughPutTest.1">
<persistenceAdapter>
<kahaDB enableJournalDiskSyncs="true" preallocationStrategy="zeros" concurrentStoreAndDispatchQueues="false"/>
</persistenceAdapter>
</filteredKahaDB>
<filteredKahaDB queue="amqThroughPutTest.2">
<persistenceAdapter>
<kahaDB enableJournalDiskSyncs="true" preallocationStrategy="zeros" concurrentStoreAndDispatchQueues="false"/>
</persistenceAdapter>
</filteredKahaDB>
<filteredKahaDB queue="amqThroughPutTest.3">
<persistenceAdapter>
<kahaDB enableJournalDiskSyncs="true" preallocationStrategy="zeros" concurrentStoreAndDispatchQueues="false"/>
</persistenceAdapter>
</filteredKahaDB>
<filteredKahaDB queue="amqThroughPutTest.4">
<persistenceAdapter>
<kahaDB enableJournalDiskSyncs="true" preallocationStrategy="zeros" concurrentStoreAndDispatchQueues="false"/>
</persistenceAdapter>
</filteredKahaDB>
<filteredKahaDB queue="amqThroughPutTest.5">
<persistenceAdapter>
<kahaDB enableJournalDiskSyncs="true" preallocationStrategy="zeros" concurrentStoreAndDispatchQueues="false"/>
</persistenceAdapter>
</filteredKahaDB>
<filteredKahaDB queue="amqThroughPutTest.6">
<persistenceAdapter>
<kahaDB enableJournalDiskSyncs="true" preallocationStrategy="zeros" concurrentStoreAndDispatchQueues="false"/>
</persistenceAdapter>
</filteredKahaDB>
<filteredKahaDB queue="amqThroughPutTest.7">
<persistenceAdapter>
<kahaDB enableJournalDiskSyncs="true" preallocationStrategy="zeros" concurrentStoreAndDispatchQueues="false"/>
</persistenceAdapter>
</filteredKahaDB>
<filteredKahaDB queue="amqThroughPutTest.8">
<persistenceAdapter>
<kahaDB enableJournalDiskSyncs="true" preallocationStrategy="zeros" concurrentStoreAndDispatchQueues="false"/>
</persistenceAdapter>
</filteredKahaDB>
<filteredKahaDB queue="amqThroughPutTest.9">
<persistenceAdapter>
<kahaDB enableJournalDiskSyncs="true" preallocationStrategy="zeros" concurrentStoreAndDispatchQueues="false"/>
</persistenceAdapter>
</filteredKahaDB>
<filteredKahaDB queue="amqThroughPutTest.10">
<persistenceAdapter>
<kahaDB enableJournalDiskSyncs="true" preallocationStrategy="zeros" concurrentStoreAndDispatchQueues="false"/>
</persistenceAdapter>
</filteredKahaDB>
<filteredKahaDB>
<persistenceAdapter>
<kahaDB enableJournalDiskSyncs="true" preallocationStrategy="zeros" concurrentStoreAndDispatchQueues="false"/>
</persistenceAdapter>
</filteredKahaDB>
</filteredPersistenceAdapters>
</mKahaDB>
</persistenceAdapter>
At this point the customer was getting pretty excited at seeing a 10x performance gain, but their expectation was 17,000-19,000 msgs/sec. They asked whether we had anymore tricks up our sleeves, which we did of course. I told the customer to add the following line to their etc/system.properties file:
org.apache.activemq.kahaDB.files.skipMetadataUpdate=true
On some operating systems, you can obtain better performance by enabling skipMetadataUpdate to call the fdatasync() system call instead of the fsync() system call (the default), when writing to a file. The difference between these system calls is that fdatasync() updates only the file data, whereas fsync() updates both the file data and the file metadata (for example, the access time). Keep in mind that this setting does not work on all Operating Systems or JVM’s, thus it’s not a default setting.
The customer retested this configuration using mKahadb destination sharding but reverting back to composite topics instead of queues. This was the final result:
Pub only versus Pub/Sub, Composite Topics, Tuned, 4M messages
| Test | Result |
|---|---|
| Pub only | 12,197 msgs/sec |
| Pub / Sub | 16,783 msgs/sec |
Not quite “high teens” but close enough. After further analysis by Red Hat Engineering, we noticed that there were fsync bottlenecks occurring which could be optimized through a code change, so a fix was released to the community version of Apache ActiveMQ here. We’re all eagerly waiting for this fix to be included in a future release of JBoss A-MQ, so stay tuned to see whether we can finally hit our performance target of “high teens” once and for all.


TP_Link
tp_link allows you to interact with TP-Link smart lights.
Installation
Add this line to your application's Gemfile:
gem 'tp_link'
And then execute:
$ bundle
Or inst all it yourself as:
$ gem tp_link
Usage
require 'tp_link'
#
sh=TPLink::SmartHome.new('user' =><EMAIL_ADDRESS>'password' => 'password123')
# Get array of TPLink Devices (currently only dimmable lights work).
sh.devices
# Find a device by name:
light = sh.find("kitchen")
# Turn light on
light.on
# Turn light off
light.off
# Dim light to 50%
light.on(50)
Documentation
www.rubydoc.info/gems/tp_link
Contributing
Bug reports and pull requests are welcome on ruby-code.com at ruby-code.com/james/tp_link
License
The gem is available as open source under the terms of the MIT License.


abstract fun networkNotFoundToRemove(): Unit
Called when the network is not found in the save network configuration list.
This is not necessarily an error as it may have never been stored, removed manually, or various other scenarios.
Author
Patches
Since
3.0


can't have text before the doctype can't have text after the doctype
This is a paragraph.
This is another paragraph.


STATE:
Arunachal Pradesh
Assam
Bihar
Tamil Nadu
Uttarakhand
DISTRICT:
1
2
3
4
5
SCHOOL:
School 1
School 2
School 3
School 4
School 5
Go
Update
Add School
Add new SMC Member
Add Images
Update Announcements


This tutorial shows how to use the Aurora scheduler to run (and
“printf-debug
”) a hello world program on Mesos. The operational
hierarchy is:
This is the recommended first Aurora users document to read to start getting up to speed on the system.
To get help, email questions to the Aurora Developer List<EMAIL_ADDRESS>You use the Aurora client and web UI to interact with Aurora jobs. To install it locally, see vagrant.md. The remainder of this Tutorial assumes you are running Aurora using Vagrant. Unless otherwise stated, all commands are to be run from the root of the aurora repository clone.
Our “hello world” application is a simple Python script that loops
forever, displaying the time every few seconds. Copy the code below and
put it in a file named hello_world.py
in the root of your Aurora repository clone (Note:
this directory is the same as /vagrant
inside the Vagrant VMs).
The script has an intentional bug, which we will explain later on.
import sys import time def main(argv): SLEEP_DELAY = 10 # Python ninjas - ignore this blatant bug. for i in xrang(100): print("Hello world! The time is now: %s. Sleeping for %d secs" % ( time.asctime(), SLEEP_DELAY)) sys.stdout.flush() time.sleep(SLEEP_DELAY) if __name__ == "__main__": main(sys.argv)
Once we have our script/program, we need to create a configuration
file that tells Aurora how to manage and launch our Job. Save the below
code in the file hello_world.aurora
.
pkg_path = '/vagrant/hello_world.py' # we use a trick here to make the configuration change with # the contents of the file, for simplicity. in a normal setting, packages would be # versioned, and the version number would be changed in the configuration. import hashlib with open(pkg_path, 'rb') as f: pkg_checksum = hashlib.md5(f.read()).hexdigest() # copy hello_world.py into the local sandbox install = Process( name = 'fetch_package', cmdline = 'cp %s . && echo %s && chmod +x hello_world.py' % (pkg_path, pkg_checksum)) # run the script hello_world = Process( name = 'hello_world', cmdline = 'python hello_world.py') # describe the task hello_world_task = SequentialTask( processes = [install, hello_world], resources = Resources(cpu = 1, ram = 1*MB, disk=8*MB)) jobs = [ Service(cluster = 'devcluster', environment = 'devel', role = 'www-data', name = 'hello_world', task = hello_world_task) ]
For more about Aurora configuration files, see the Configuration Tutorial and the Aurora + Thermos Reference (preferably after finishing this tutorial).
More than you might think.
From a “big picture” viewpoint, it first defines two Processes. Then it defines a Task that runs the two Processes in the order specified in the Task definition, as well as specifying what computational and memory resources are available for them. Finally, it defines a Job that will schedule the Task on available and suitable machines. This Job is the sole member of a list of Jobs; you can specify more than one Job in a config file.
At the Process level, it specifies how to get your code into the local sandbox in which it will run. It then specifies how the code is actually run once the second Process starts.
We’re ready to launch our job! To do so, we use the Aurora Client to issue a Job creation request to the Aurora scheduler.
Many Aurora Client commands take a job key argument, which uniquely
identifies a Job. A job key consists of four parts, each separated by a
“/”. The four parts are <cluster>/<role>/<environment>/<jobname>
in that order. When comparing two job keys, if any of the
four parts is different from its counterpart in the other key, then the
two job keys identify two separate jobs. If all four values are
identical, the job keys identify the same job.
/etc/aurora/clusters.json
within the Aurora scheduler has the available
cluster names. For Vagrant, from the top-level of your Aurora repository clone,
do:
$ vagrant ssh
Followed by:
vagrant@precise64:~$ cat /etc/aurora/clusters.json
You’ll see something like:
[{ "name": "devcluster", "zk": "<IP_ADDRESS>", "scheduler_zk_path": "/aurora/scheduler", "auth_mechanism": "UNAUTHENTICATED" }]
Use a name
value for your job key’s cluster value.
Role names are user accounts existing on the slave machines. If you don’t know what accounts are available, contact your sysadmin.
Environment names are namespaces; you can count on prod
, devel
and test
existing.
The Aurora Client command that actually runs our Job is aurora create
. It creates a Job as
specified by its job key and configuration file arguments and runs it.
aurora create <cluster>/<role>/<environment>/<jobname> <config_file>
Or for our example:
aurora create devcluster/www-data/devel/hello_world /vagrant/hello_world.aurora
This returns:
$ vagrant ssh Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic x86_64) * Documentation: https://help.ubuntu.com/ Welcome to your Vagrant-built virtual machine. Last login: Fri Jan 3 02:18:55 2014 from <IP_ADDRESS> vagrant@precise64:~$ aurora create devcluster/www-data/devel/hello_world \ /vagrant/hello_world.aurora INFO] Creating job hello_world INFO] Response from scheduler: OK (message: 1 new tasks pending for job www-data/devel/hello_world) INFO] Job url: http://precise64:8081/scheduler/www-data/devel/hello_world
Now that our job is running, let’s see what it’s doing. Access the
scheduler web interface at http://$scheduler_hostname:$scheduler_port/scheduler
Or when using vagrant
, http://<IP_ADDRESS>:8081/scheduler
First we see what Jobs are scheduled:
Click on your user name, which in this case was www-data
, and we see the Jobs associated
with that role:
If you click on your hello_world
Job, you’ll see:
Oops, looks like our first job didn’t quite work! The task failed, so we have to figure out what went wrong.
Access the page for our Task by clicking on its host.
Once there, we see that the
hello_world
process failed. The Task page captures the standard error and
standard output streams and makes them available. Clicking through
to stderr
on the failed hello_world
process, we see what happened.
It looks like we made a typo in our Python script. We wanted xrange
,
not xrang
. Edit the hello_world.py
script to use the correct function and
we will try again.
aurora update devcluster/www-data/devel/hello_world /vagrant/hello_world.aurora
This time, the task comes up, we inspect the page, and see that the
hello_world
process is running.
We then inspect the output by clicking on stdout
and see our process'
output:
Now that we’re done, we kill the job using the Aurora client:
vagrant@precise64:~$ aurora killall devcluster/www-data/devel/hello_world INFO] Killing tasks for job: devcluster/www-data/devel/hello_world INFO] Response from scheduler: OK (message: Tasks killed.) INFO] Job url: http://precise64:8081/scheduler/www-data/devel/hello_world vagrant@precise64:~$
The job page now shows the hello_world
tasks as completed.
Now that you’ve finished this Tutorial, you should read or do the following:
aurora help
subcommand, and read the
Aurora Client Commands document.


CRUD: Spring Boot + Rest + AngularJS
Emp Id
{{employeeForm.empId}}
Emp No
Emp Name
Create Employee
Emp Id
Emp No
Emp Name
Edit
Delete
{{employee.empId}}
{{employee.empNo}}
{{employee.empName}}
Edit
Delete


THE LORD OF THE RINGS A Film Review Copyright Dragan Antulov 1998
Sometimes, it takes a very strange course of events to lead somebody towards the literature or any other piece of art he appreciates. In my case, it all began in mid 1980-s, when I, like many of my classmates, got hold of my first home computer. Our parents believed that those new toys would help us in study. They were, naturally, wrong.  One of the most popular was "Hobbit", adventure game based on J.R.R. Tolkien's novel. "Hobbit" was great intellectual challenge, and many of us borrowed the book from the school library only to get the clues to solve the game. Sadly, there wasn't any need for the book's sequel - famed fantasy epic "The Lord of the Rings". The game was never made, except for parody called "Bored of the Rings".
Despite that, I was actually intrigued when "The Lord of the Rings" was first aired on (then) former Yugoslav television, couple of years later. That wasn't the first time I have ever seen adaptation of Tolkien on the small screen - one of the children's theatres in Belgrade had their version of "Hobbit" aired (with some baby face man trying to pass as Gandalf). I also saw segments of "The Lord of the Rings" in a form of comic book. So, when I actually saw the movie, I felt somewhat familiar with the material - story about few brave heroes, members of the different mythical races, in the mission to stop the evil all-powerful sorcerer from taking control of Middle Earth. Unfortunately, due to circumstances outside of my control, I was forced to stop the viewing somewhere in the middle of the movie. Lucky for me, I had to wait only a year before the re-run, and finally I saw the whole thing. But, shortly after the closing credits I began to wonder "Is it all? First tale? It *must* be the sequel."
A year later, when I finally added three books of Tolkien's masterpiece to my collection, I began understanding why Ralph Bakshi's THE LORD OF THE RINGS ended the way it ended. Seeing 1200 pages of text, able to keep me preoccupied for weeks and moths, I was again reminded of an old wisdom "Great books make mediocre movies, and vice versa". It happens mostly because sometimes it is simply impossible to bring the rich content of hundreds or thousands of pages of the book in the hundred or less pages of the script. Film authors who try to capture book's spirit on the screen usually fail, either by omitting too many important elements, or by stuffing material and making the movie unwatchable bore (David Lynch's DUNE could be the nice example). Bakshi, although he somehow managed to condense the most important elements of the "Hobbit" into the first few minutes of the film, knew that he couldn't turn entire Tolkien's novel into two hour film, was forced to use only the first two books - "Fellowship of the Ring" and parts of "Two Towers".
Another problem that should face any author ready to take Tolkien to the big screen is the high cost. With today's CGI and special effects, Peter Jackson's plans to make a feature film version aren't so wild. Two decades ago, making an animated movie looked like the only alternative for producer Saul Zaentz. In doing so, he employed Ralph Bakshi, author of sometimes controversial animated movies, responsible for bringing adult content and sensibilities to this, until that time, almost entirely children's genre.
Bakshi's techniques in making this movie are somewhat similar to those employed in his WIZARDS - Sci-Fi/Fantasy epic he had made a year earlier - combination of animation with rotoscoped live footage. Here he used live actors and managed to combine them with the drawn characters, perhaps in order to make the events of the books more dramatic.  Another thing, that might be a flaw, is amount of violence, especially bloodletting, which makes this film closer to BRAVEHEART or CONAN THE BARBARIAN than family entertainment. On the other hand, Tolkien's original text, that was at times rather dark and adult, can be also be responsible for that.
Anyway, although inferior to the book, THE LORD OF THE RINGS is quite interesting and rather original attempt to bring literature masterpiece to the big screen. Although it mostly failed as a standalone cinematic entertainment, it served its purpose by intriguing viewers enough to yearn after more Tolkien, both on paper and on cinema.
Review written on April 19th, 1998.
RATING: 6/10 (++)
--
Drax Fido: 2:381/100 E-Mail<EMAIL_ADDRESS><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


Home
Events
Ministries
Bulletin
BEC
Calendar
Mass Times
Saturday
7:00am
Mass in English
6:00pm
Mass in English
Sunday
7:00am
Mass in Tamil
6:00pm
Mass in English
7:00am
Mass in Mandarin
6:00pm
Mass in Bahasa Malaysia
Weekdays
7:00am
Mass in English
Ministries
Interested to serve the Church? Find your calling here.
Catechetical
Catechetical
Catechetical
Catechetical
FIND A MINISTRY
Recent Events
First Holy Communion 2018
Parish Pastoral Assembly 2018
Migrant Sunday 2018
FIND OUT MORE
Bulletins
Stay updated with the latest events
English
DOWNLOAD
Tamil
DOWNLOAD
Mandarin
DOWNLOAD
Bahasa Malaysia
DOWNLOAD


[§663-42] Subrogation claims denied. There shall be no recovery for any subrogation claim pursuant to any subrogation clause of an uninsured, underinsured, collision, or other first-party coverage as a result of payments made to persons who have claims that arise in whole or in part under this part. [L 2003, c 69, pt of §1]


Championship boss makes Birmingham City FFP claim as super starlets win five in a row
Birmingham City latest | All the latest Blues news and views from BirminghamLive as the U23s come from behind and Garry Monk talks Financial Fair Play
by Brian Dick, https://www.facebook.com/blueswriterbriandick/?fref=tsGarry Monk says Sheffield Wednesday’s recent EFL charge for financial misconduct is a ‘different situation’ to the one which Birmingham City found itself in.
Like Blues, Wednesday have endured difficulties with Financial Fair Play over the last 12 months and the EFL have taken action after the Owls sold Hillsborough to owner Dejphon Chansiri for £60million to avoid breaching rules in 2017/18.
Blues’ 2017 spend under Gianfranco Zola and Harry Redknapp left the club with a FFP deficit they were unable to haul back and the EFL slapped them with a nine-point deduction towards the end of last season.
Monk was manager of Blues throughout the 2018/19 season before being sacked over the summer.
And Monk believes Wednesday’s situation differs to his former club because of the constant dialogue between the Owls and the EFL during the last year.
“It was a different situation with the charges at Birmingham and what they are here at Sheffield Wednesday,” Monk explained. “At that time, I was unaware that we were going to be coming into an embargo, FFP and it obviously turned out to be like that (points deduction).
Birmingham City latest
This is your round up of all things Birmingham City; the one-stop shop that will keep you updated on the latest goings on at the club and beyond.
Transfers, injuries, match-days and managers, we’ve got you covered.
We’ll be bringing the very latest on the Blues throughout the week and around the clock.
Make sure you keep yourself updated with our handy daily catch up...
Must reads...
- Blues U23s leave it late - match report
- Birmingham City's rampant starlets rated
- The mouthwatering options Jérémie Bela gives Pep Clotet and Blues
- Sunjic, Colin, Camp - How Birmingham City's players rate this season
- Garry Monk makes Birmingham City claim after Sheffield Wednesday charge
For all your latest BCFC news, opinion, analysis and transfer gossip, click here
You can follow our Blues reporter Brian Dick on Twitter, and his email address is<EMAIL_ADDRESS>“There were different circumstances behind the scenes in terms of communication. You can see that the club here has communicated (with the EFL) over the past year, for sure.
“And for them to come out and charge us for something which had been agreed and ratified by the EFL is a different experience to what I had at Birmingham.”
Wednesday claim the EFL have moved the goalposts with regards to their own FFP situation.
Monk added: “Having spoken to everyone at the club, it was the surprise of it. I think the communication between the club and the EFL over the last year has been fantastic.
“It was the surprise of that coming, no one saw that. The biggest part of that surprise is the charges being put forward are things the EFL would have ratified and agreed to at the very beginning.”
Comeback kids
Kane Thompson-Sommers’ late strike gave Birmingham City’s Under 23s their fifth PDL 2 win in succession.
But Steve Spooner’s side had to come from behind against Hull City to stay top of their league at a sodden Wast Hills.
Blues edged a scoreless first half, dominating possession and territory and sending in a handful of shots on the Hull goal.
With Ryan Stirk pulling the strings in midfield and Ryan Burke providing width on the left the hosts pressed forward.
The pair combined for the best chance of the opening period when, in the 39th minute, the left back lifted an inviting pass over the defence for Stirk to latch on to.
The Welsh Under 21 took a touch and hammered a shot which Will Mannion pushed away.
Burke also had a looping cross which dropped just wide of the far post and Mannion needed to claw away Odin Bailey’s deep centre.
Despite that it was Hull who took the lead three minutes after the restart when Matty Jacob curled in from the left and found Danny Lupano, the defender powered his header into the corner of the net.
Blues' comeback described here.
 Saved a low daisy-cutter in the 33rd minute, no chance a powerfully headed goal - then largely unused for the final half hour.
Nico Gordon 6
One really strong run which took him to the bye-line in the first half, harshly booked just before the break and taken off with dizziness at half time.
Joe Redmond 8
Looked unruffled in a first half where he had very little defending to do. Struck a free kick which looked to be on target before being deflected wide. A half-time reshuffle saw him move to right back where he gave a passable Maxime Colin impression - even pulling off an outrageous nutmeg.
Geraldo Bajrami 8
It all looked a bit too easy for the Albania U21. One important one-on-one tackle blunted a Hull counter in the first half. Read the game well, distribution good throughout. Time for senior football.
More here.
Every word
The international break is over and Pep Clotet met the media ahead of this weekend's trip to Huddersfield Town.
Birmingham City's caretaker head coach talked about his team's improved fitness, the return of Gary Gardner and - of course, Lee Camp's form.
Here's what was discussed.
How is everyone feeling and how has international training been during the break?
I think everybody feels very confident. They feel strong in their own football and their own abilities. We all know that we’ve put games to bed.
But we are confident because we have been creating chances and we have had an average of 18 shots a game for the last six games. We know the right route in football is to create as many chances as possible and naturally the goals will follow.
The spirit is very good, and we are trying to play the best football we can to our abilities and our possibilities.
We did a lot of work physically and some tests and we realised that we are much fitter than we thought we were going to be and because we have compared with seasons before we are in good position physically and is a good boost compared to where the team were.


So sorry, we didn't add any infos about research programmes yet
Go back...
Start
Programme Identifier: {{ binding.label.value }}