Implementation of synchronized FIFO for multiple produces and consumers. More...
#include <wait_queue.h>
Public Member Functions | |
| WaitQueue () | |
| WaitQueue (size_t maxSize) | |
| ~WaitQueue () | |
| virtual bool | push (T const &item) |
| Push an item onto the queue. More... | |
| virtual bool | pop (T &item) |
| Pop an item from the queue. More... | |
| double | popWaitTimeout () const |
| Get time to wait on pop. More... | |
| void | setPopWaitTimeout (double timeout_in_seconds) |
| Set time to wait on pop. More... | |
| virtual size_t | maxSize () const |
| Get the maximum queue size. More... | |
| virtual void | setMaxSize (size_t sz) |
| Set the maximum queue size. More... | |
| OverflowAction | overflowAction () const |
| Get the overflow action. More... | |
| void | setOverflowAction (OverflowAction action) |
| Set the overflow action. More... | |
| void | cancel () |
| Cancel a blocking function call. More... | |
| bool | isCanceled () const |
| virtual bool | drop () |
| Drop an item from the queue in FIFO order. More... | |
| virtual void | flush () |
| Flush all items from the queue. More... | |
| virtual size_t | size () const |
Detailed Description
template<typename T>
class artvision_instanton::WaitQueue< T >
Implementation of synchronized FIFO for multiple produces and consumers.
Constructor & Destructor Documentation
| artvision_instanton::WaitQueue< T >::WaitQueue | ( | ) |
| artvision_instanton::WaitQueue< T >::WaitQueue | ( | size_t | maxSize | ) |
| artvision_instanton::WaitQueue< T >::~WaitQueue | ( | ) |
Member Function Documentation
|
inline |
Cancel a blocking function call.
|
inlinevirtual |
Drop an item from the queue in FIFO order.
- Returns
- True on success.
Implements artvision_instanton::IQueue< T >.
|
inlinevirtual |
Flush all items from the queue.
Implements artvision_instanton::IQueue< T >.
|
inline |
- Returns
- True if canceled
|
inlinevirtual |
Get the maximum queue size.
Implements artvision_instanton::IQueue< T >.
|
inline |
Get the overflow action.
|
virtual |
Pop an item from the queue.
Implements artvision_instanton::IQueue< T >.
|
inline |
Get time to wait on pop.
|
virtual |
Push an item onto the queue.
Implements artvision_instanton::IQueue< T >.
|
inlinevirtual |
Set the maximum queue size.
Implements artvision_instanton::IQueue< T >.
|
inline |
Set the overflow action.
|
inline |
Set time to wait on pop.
|
inlinevirtual |
- Returns
- Size of queue
Implements artvision_instanton::IQueue< T >.
The documentation for this class was generated from the following file:
- /bitrise/src/Source/AR6/InstantOn/include/AR6/InstantOn/framework/wait_queue.h


Factor analysis implementation for multiple data sources, i.e., for groups of variables. The whole data analysis pipeline is provided, including functions and recommendations for data normalization and model definition, as well as missing value prediction and model visualization. The model group factor analysis (GFA) is inferred with Gibbs sampling, and it has been presented originally by Virtanen et al. (2012), and extended in Klami et al. (2015) <doi:10.1109/TNNLS.2014.2376974> and Bunte et al. (2016) <doi:10.1093/bioinformatics/btw207>; for details, see the citation info.
| Version: | 1.0.3 |
| Published: | 2017-08-04 |
| Author: | Eemeli Leppäaho [aut, cre], Seppo Virtanen [aut], Muhammad Ammad-ud-din [ctb], Suleiman A Khan [ctb], Tommi Suvitaival [ctb], Inka Saarinen [ctb], Samuel Kaski [ctb] |
| Maintainer: | Eemeli Leppäaho <eemeli.leppaaho at gmail.com> |
| License: | MIT + file LICENSE |
| NeedsCompilation: | no |
| Citation: | GFA citation info |
| Materials: | NEWS |
| CRAN checks: | GFA results |
| Reference manual: | GFA.pdf |
| Package source: | GFA_1.0.3.tar.gz |
| Windows binaries: | r-devel: GFA_1.0.3.zip, r-release: GFA_1.0.3.zip, r-oldrel: GFA_1.0.3.zip |
| OS X binaries: | r-release: GFA_1.0.3.tgz, r-oldrel: GFA_1.0.3.tgz |
| Old sources: | GFA archive |
Please use the canonical form https://CRAN.R-project.org/package=GFA to link to this page.


This class is used to transform touches using the given affine matrix. More...
#include <input_manager.h>
Public Member Functions | |
| transform_touches (affine_matrix &m) | |
| const touch | operator() (const touch &t) |
Public Attributes | |
| affine_matrix & | m_ |
This class is used to transform touches using the given affine matrix.
This transformation functor can be used with stl algorithms like transform to apply affine transformations to each touch's location and previous location.
| x2d::input::transform_touches::transform_touches | ( | affine_matrix & | m | ) | [inline] |
| [in] | m | The affine transformation matrix to apply |


“I’m done with the 02_python-as-calculator notebook I would rate my understanding:” “😱” “🙁” “😐” “🙂” “😄”
Polly Poll
2020-04-01 09:20:03
Poll by @Mike Harms
I’m done with the 02_python-as-calculator notebook I would rate my understanding:
😱
0
🙁
0
😐
██████
6
🙂
████
4
😄
██████████████
14
Mike Harms
2020-04-01 09:20:12
Anything you’d like to discuss as a group from the 02_python-as-calculator notebook (Reply in thread. )
Sophia Phillips
2020-04-01 09:26:36
Question: Why did the second cell have "print" preceding math in order to output answers when the first cell did not?
Katie Fisher
2020-04-01 09:36:21
discuss the last implement section
Cathy Robinson
2020-04-01 09:40:21
yes, the last section please! how do we write the squigley equals sign? and is that “natural log?”
Cori Cahoon
2020-04-01 09:41:58
What is the correct way to type in the code for Stirling's approximation? And I second the squigley equal sign...
Amber Rolland
2020-04-01 09:53:49
@Cathy Robinson math.log is by default the natural log because base e is the default. it actually takes more than one argument though. so you could put math.log(n,10) to get the base 10 log.
Cathy Robinson
2020-04-01 09:54:27
Cool- thanks!
Alice Barkan
2020-04-01 09:22:51
I seem to be on my own in a breakout room, but that’s ok. I’ve already worked through this notebook.
Natanya Villegas
2020-04-01 09:31:06
Hi! tab for math. isn't working
Mike Harms
2020-04-01 09:31:33
Try hitting tab a couple of times to activate?
Dillon Willis
2020-04-01 09:42:32
Hey Mike, just a quick question. We got through everything and I feel that my understanding is 😄 but when we were looking at the factorial help function afterward it gave the following, so we tried it. What is the (x,/) representing in the help readout?
Joseph Harman
2020-04-01 09:49:09
unfortunately that's not a super helpful help readout - the input for math.factorial is a single number only - for example, math.factorial(5). So (4,/) isn't a valid input for this function (that's why it throws a cryptic syntax error)
Michael Shavlik
2020-04-01 09:49:41
The / means that there are no more parameters that can be included in that function. So if you saw function(x,y,/) that would mean that the function can take an x, and a y, and nothing else
👍1
Dillon Willis
2020-04-01 09:50:09
Ah okay, that’s what I was starting to think from what I’d seen. Thanks guys!
Joseph Harman
2020-04-01 09:52:42
Didn't know the / thing, good to know! Generally speaking, if you get a help output or error that is confusing, googling is your friend. Not all error outputs are terribly clear depending on how code is written/documented
Mike Harms
2020-04-01 10:53:19
Actually, I didn’t know the / thing either…
Philip Nosler
2020-04-01 09:44:04
Could we go over formatting "import math" and "math.stuff" again briefly?


Gigs
Friday Oct 24
Garden of Eatin' - 161 Old Hastings Rd, Warkworth, ON
Playing all the favourites with Howard Baer on the upright
Thursday Oct 30
Local Gest with Barnes
Tuesday Nov 4
Playing guitar for New York based s/s/ Amy Rivard's CD release
Free Times Cafe - 320 College St, 8 p.m., 8 bucks
Thursday Nov 13
Local GEST
Thursday Nov 20
Jam/performance at Alleycatz - 2409 Yonge St (just north of Eglinton)
Testing the waters for potential new regular jam (remember the Liberty/the Trane!)
Thursday Nov 27
Local GEST
Sunday Nov 30
Free Times Cafe - 320 College St
Multiple-artist bill, playing Glen Hornblast's Nashville Bound series. This one is a fundraiser for Winterfolk
Thursday Dec 4
Simcoe Jazz & Blues - 926 Simcoe St, Oshawa, ON
Playing in the round with Brian Gladstone and Tony Quarrington.
Thursday Dec 11
Local GEST
Click to read a review of a typical live show, published in 'The Live Music Report'
Regular Gigs
Emmet Ray - 924 College Street
Every fourth Wednesday with Peter Boyd 9-1
Local GEST - 424 Parliament Street
Every second Thursday with Jeff Barnes (check site for dates) 8-12


--- layout: post authors: ["Aleksandra Pawlik"] title: "Software and Research Session at AGU 2013" date: 2013-12-02 time: "09:00:00" tags: ["Announcements"] ---
A Town Hall Session on "Software and Research" proposed by four Software Sustainability Institute Fellows will be held at the American Geophysical Union (AGU) Fall Meeting in San Francisco. If you are around, come and join the session on Thursday, 12 December 2013, at 12:30 PM in Moscone West Room 2004.
The session will cover topics such as the role of software in research, its influence on researchers' productivity and innovation, best practice for sharing and attribution, and computing training for scientists. The session was proposed by four SSI Fellows: Kayla Iacovino, Allen Pope, Melody Sandells, and Robin Wilson (who organised a Software Carpentry bootcamp in Southampton earlier this year). The American Geophysical Union (AGU) Fall Meeting is a prestigious meeting, which attracts over 20,000 attendees, making it one of the world's largest conferences. The session will focus on three main themes: Collaboration Strategies and Technologies, Software Training for Researchers and Code Reuse, and Sharing and Publishing. The session is interactive, so there is flexibility to accommodate the audience's suggestions and any interesting points that are raised.


List
.
List
is an immutable collection. Its size cannot be changed after it is initialized. This type allows duplicates and stores elements in a specific order.
Let's assume we want to save information about the cars we drove last year. Let's do it with the help of List
:
val cars = listOf<String>("BMW", "Honda", "Mercedes")
println(cars) // output: [BMW, Honda, Mercedes]
Theoretically, we could use a MutableList
to hold this kind of information:
val cars = mutableListOf<String>("BMW", "Honda", "Mercedes")
println(cars) // output: [BMW, Honda, Mercedes]
However, this is a bad idea because anyone can change the content of an MutableList
any time:
cars[0] = "Renault"
println(cars) // output: [Renault, Honda, Mercedes]
If you want the content to stay the same, this can be a problem. List
is immutable, so our content will not be changed. If you try to change it in a list, you will get an error:
val cars = listOf<String>("BMW", "Honda", "Mercedes")
cars[0] = "Renault" // Error
List
is a generic type. As you saw from the previous examples, you can initialize it with the help of listOf<E>
, where E
is the type of elements contained in the list:
val textUsMethod = listOf<String>("SMS", "Email")
The type can also be derived from the context:
val textUsMethod = listOf("SMS", "Email")
If you need to initialize an empty list, you can use the method emptyList
:
val staff = emptyList<String>()
println(staff) // output: []
Let's recap the properties and methods of List
:
size
returns the size of your List
.isEmpty()
shows whether the list is empty or not.Also, List
has a method get(index)
, that returns the element in that position. You can also use [index]
to get an element. Remember that indexing starts with zero!
Let' assume you have a guest list for a party:
val partyList = listOf("Fred", "Emma", "Isabella", "James", "Olivia")
How do we know when it's time to start a party? Let's check if the guests are already there using the method isEmpty
. If the party is not empty, we would like to know the number of guests and find out who gets the first welcome cocktail!
We will get something like this:
if (!partyList.isEmpty()) {
val size = partyList.size
val whoIsFirst = partyList[0]
println("The party will not be lonesome! We already got $size people. And $whoIsFirst was the first to arrive today!")
// The party will not be lonesome! We already got 5 people. And Fred was the first to arrive today!
}
Let's see how to work with other familiar methods:
indexOf(element)
returns the index of the first occurrence of the specified element. If it isn't in the list, the function returns -1
.contains(element)
returns true
if the element specified is in the list, and false
if it's not.Emma argued that she was entitled to the first cocktail. But is that so? Let's check:
println("Emma came in ${partyList.indexOf("Emma") + 1}") // Emma came in 2
Looks like Emma didn't come first, she actually came second. Now, James wants to know (as always) if Isabella has come:
println("Guys, is it true that Isabella came? It's ${partyList.contains("Isabella")}") // Guys, is it true that Isabella came? It's true
There are many other useful List
methods: check out kotlinlang.org and get familiar with them!
You can iterate through elements in the List
with the help of the for
loop. Let's see an example:
val participants = listOf("Fred", "Emma", "Isabella")
for (participant in participants) {
println("Hello $participant!")
}
// Hello Fred!
// Hello Emma!
// Hello Isabella!
In this example, we iterate through the participants
and print them to the console.
The List
is a very common structure in programming. Predictably, it has its own idiom.
You've already seen a few ways to create a List
. As always, the Kotlin community recommends using the shortest way. You can find it on kotlinlang.org.
val list = listOf("a", "b", "c")
Now you know the main difference between a List
and a MutableList
in Kotlin. Just to recap: use List
when you don't want the content to change.
You know how to initialize a list, check if it's empty, see if it contains a certain element, get it by index or find out its index, and figure out its size. You can iterate through the elements of the List
with the help of the for
loop.  Let's move on to some practice tasks.


This is the API
Gets a list of all `ATM` objects.
https://localhost:8080/api/v1/atms
GET
Used for conditional request, to retrieve data only if modified since a given date
Used for conditional request, to retrieve data only if the given Etag value does not match
Gets header information on the current set of `ATM` data
https://localhost:8080/api/v1/atms
HEAD
Used for conditional request, to retrieve data only if modified since a given date
Used for conditional request, to retrieve data only if the given Etag value does not match


| TOC |
|
Copyright (c) 2006-2007,2009 by Internet Systems Consortium, Inc. ("ISC")
Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
 IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
This document describes a collection of Reference material that ISC DHCP has been implemented to.
1.
Introduction
2.
Definition: Reference Implementation
3.
Low Layer References
3.1.
Ethernet Protocol References
3.2.
Token Ring Protocol References
3.3.
FDDI Protocol References
3.4.
Internet Protocol Version 4 References
3.5.
Unicast Datagram Protocol References
4.
BOOTP Protocol References
5.
DHCP Protocol References
5.1.
DHCPv4 Protocol
5.1.1.
Core Protocol References
5.2.
DHCPv6 Protocol References
5.3.
DHCP Option References
5.3.1.
Relay Agent Information Option Options
5.3.2.
Dynamic DNS Updates References
5.3.3.
Experimental: Failover References
5.4.
DHCP Procedures
6.
References
§
Author's Address
| TOC |
As a little historical anecdote, ISC DHCP once packaged all the relevant RFCs and standards documents along with the software package. Until one day when a voice was heard from one of the many fine institutions that build and distribute this software... they took issue with the IETF's copyright on the RFC's. It seems the IETF's copyrights don't allow modification of RFC's (except for translation purposes).
Our main purpose in providing the RFCs is to aid in documentation, but since RFCs are now available widely from many points of distribution on the Internet, there is no real need to provide the documents themselves. So, this document has been created in their stead, to list the various IETF RFCs one might want to read, and to comment on how well (or poorly) we have managed to implement them.
| TOC |
ISC DHCP, much like its other cousins in ISC software, is self-described as a 'Reference Implementation.' There has been a great deal of confusion about this term. Some people seem to think that this term applies to any software that once passed a piece of reference material on its way to market (but may do quite a lot of things that aren't described in any reference, or may choose to ignore the reference it saw entirely). Other folks get confused by the word 'reference' and understand that to mean that there is some special status applied to the software - that the software itself is the reference by which all other software is measured. Something along the lines of being "The DHCP Protocol's Reference Clock," it is supposed.
The truth is actually quite a lot simpler. Reference implementations are software packages which were written to behave precisely as appears in reference material. They are written "to match reference."
If the software has a behaviour that manifests itself externally (whether it be something as simple as the 'wire format' or something higher level, such as a complicated behaviour that arises from multiple message exchanges), that behaviour must be found in a reference document.
Anything else is a bug, the only question is whether the bug is in reference or software (failing to implement the reference).
This means:
That is the lofty goal, at any rate. It's well understood that, especially because the ISC DHCP Software package has not always been held to this standard (but not entirely due to it), there are many non-referenced behaviours within ISC DHCP.
The primary goal of reference implementation is to prove the reference material. If the reference material is good, then you should be able to sit down and write a program that implements the reference, to the word, and come to an implementation that is distinguishable from others in the details, but not in the facts of operating the protocol. This means that there is no need for 'special knowledge' to work around arcane problems that were left undocumented. No secret handshakes need to be learned to be imparted with the necessary "real documentation".
Also, by accepting only reference as the guidebook for ISC DHCP's software implementation, anyone who can make an impact on the color texture or form of that reference has a (somewhat indirect) voice in ISC DHCP's software design. As the IETF RFC's have been selected as the source of reference, that means everyone on the Internet with the will to participate has a say.
| TOC |
It may surprise you to realize that ISC DHCP implements 802.1 'Ethernet' framing, Token Ring, and FDDI. In order to bridge the gap there between these physical and DHCP layers, it must also implement IP and UDP framing.
The reason for this stems from Unix systems' handling of BSD sockets (the general way one might engage in transmission of UDP packets) on unconfigured interfaces, or even the handling of broadcast addressing on configured interfaces.
There are a few things that DHCP servers, relays, and clients all need to do in order to speak the DHCP protocol in strict compliance with RFC2131 (Droms, R., “Dynamic Host Configuration Protocol,” March 1997.) [RFC2131].
The above isn't as simple as it sounds on a regular BSD socket. Many unix implementations will transmit broadcasts not to <IP_ADDRESS>, but to x.y.z.255 (where x.y.z is the system's local subnet). Such packets are not received by several known DHCP client implementations - and it's not their fault, RFC2131 (Droms, R., “Dynamic Host Configuration Protocol,” March 1997.) [RFC2131] very explicitly demands that these packets' IP destination addresses be set to <IP_ADDRESS>.
Receiving packets sent to <IP_ADDRESS> isn't a problem on most modern unixes...so long as the interface is configured. When there is no IPv4 address on the interface, things become much more murky.
So, for this convoluted and unfortunate state of affairs in the unix systems of the day ISC DHCP was manufactured, in order to do what it needs not only to implement the reference but to interoperate with other implementations, the software must create some form of raw socket to operate on.
What it actually does is create, for each interface detected on the system, a Berkeley Packet Filter socket (or equivalent), and program it with a filter that brings in only DHCP packets. A "fallback" UDP Berkeley socket is generally also created, a single one no matter how many interfaces. Should the software need to transmit a contrived packet to the local network the packet is formed piece by piece and transmitted via the BPF socket. Hence the need to implement many forms of Link Layer framing and above. The software gets away with not having to implement IP routing tables as well by simply utilizing the aforementioned 'fallback' UDP socket when unicasting between two configured systems is the need.
Modern unixes have opened up some facilities that diminish how much of this sort of nefarious kludgery is necessary, but have not found the state of affairs absolutely absolved. In particular, one might now unicast without ARP by inserting an entry into the ARP cache prior to transmitting. Unconfigured interfaces remain the sticking point, however...on virtually no modern unixes is it possible to receive broadcast packets unless a local IPv4 address has been configured, unless it is done with raw sockets.
| TOC |
ISC DHCP Implements Ethernet Version 2 ("DIX"), which is a variant of IEEE 802.2. No good reference of this framing is known to exist at this time, but it is vaguely described in RFC894 (Hornig, C., “Standard for the transmission of IP datagrams over Ethernet networks,” April 1984.) [RFC0894] (see the section titled "Packet format"), and the following URL is also thought to be useful.
http://en.wikipedia.org/wiki/DIX
| TOC |
IEEE 802.5 defines the Token Ring framing format used by ISC DHCP.
| TOC |
RFC1188 (Katz, D., “Proposed Standard for the Transmission of IP Datagrams over FDDI Networks,” October 1990.) [RFC1188] is the most helpful reference ISC DHCP has used to form FDDI packets.
| TOC |
RFC760 (Postel, J., “DoD standard Internet Protocol,” January 1980.) [RFC0760] fundamentally defines the bare IPv4 protocol which ISC DHCP implements.
| TOC |
RFC768 (Postel, J., “User Datagram Protocol,” August 1980.) [RFC0768] defines the User Datagram Protocol that ultimately carries the DHCP or BOOTP protocol. The destination DHCP server port is 67, the client port is 68. Source ports are irrelevant.
| TOC |
The DHCP Protocol is strange among protocols in that it is grafted over the top of another protocol - BOOTP (but we don't call it "DHCP over BOOTP" like we do, say "TCP over IP"). BOOTP and DHCP share UDP packet formats - DHCP is merely a conventional use of both BOOTP header fields and the trailing 'options' space.
The ISC DHCP server supports BOOTP clients conforming to RFC951 (Croft, B. and J. Gilmore, “Bootstrap Protocol,” September 1985.) [RFC0951] and RFC1542 (Wimer, W., “Clarifications and Extensions for the Bootstrap Protocol,” October 1993.) [RFC1542].
| TOC |
| TOC |
"The DHCP[v4] Protocol" is not defined in a single document. The following collection of references of what ISC DHCP terms "The DHCPv4 Protocol".
| TOC |
RFC2131 (Droms, R., “Dynamic Host Configuration Protocol,” March 1997.) [RFC2131] defines the protocol format and procedures. ISC DHCP is not known to diverge from this document in any way. There are, however, a few points on which different implementations have arisen out of vagueries in the document. DHCP Clients exist which, at one time, present themselves as using a Client Identifier Option which is equal to the client's hardware address. Later, the client transmits DHCP packets with no Client Identifier Option present - essentially identifying themselves using the hardware address. Some DHCP Servers have been developed which identify this client as a single client. ISC has interpreted RFC2131 to indicate that these clients must be treated as two separate entities (and hence two, separate addresses). Client behaviour (Embedded Windows products) has developed that relies on the former implementation, and hence is incompatible with the latter. Also, RFC2131 demands explicitly that some header fields be zeroed upon certain message types. The ISC DHCP Server instead copies many of these fields from the packet received from the client or relay, which may not be zero. It is not known if there is a good reason for this that has not been documented.
RFC2132 (Alexander, S. and R. Droms, “DHCP Options and BOOTP Vendor Extensions,” March 1997.) [RFC2132] defines the initial set of DHCP Options and provides a great deal of guidance on how to go about formatting and processing options. The document unfortunately waffles to a great extent about the NULL termination of DHCP Options, and some DHCP Clients (Windows 95) have been implemented that rely upon DHCP Options containing text strings to be NULL-terminated (or else they crash). So, ISC DHCP detects if clients null-terminate the host-name option and, if so, null terminates any text options it transmits to the client. It also removes NULL termination from any known text option it receives prior to any other processing.
| TOC |
For now there is only one document that specifies the DHCPv6 protocol (there have been no updates yet), RFC3315 (Droms, R., Bound, J., Volz, B., Lemon, T., Perkins, C., and M. Carney, “Dynamic Host Configuration Protocol for IPv6 (DHCPv6),” July 2003.) [RFC3315].
Support for DHCPv6 was added first in version 4.0.0. The server and client support only IA_NA. While the server does support multiple IA_NAs within one packet from the client, our client only supports sending one. There is no relay support.
DHCPv6 introduces some new and uncomfortable ideas to the common software library.
Precisely how to correctly support the above conundrums has not quite yet been settled, so support is incomplete.
| TOC |
RFC2241 (Provan, D., “DHCP Options for Novell Directory Services,” November 1997.) [RFC2241] defines options for Novell Directory Services.
RFC2242 (Droms, R. and K. Fong, “NetWare/IP Domain Name and Information,” November 1997.) [RFC2242] defines an encapsulated option space for NWIP configuration.
RFC2485 (Drach, S., “DHCP Option for The Open Group's User Authentication Protocol,” January 1999.) [RFC2485] defines the Open Group's UAP option.
RFC2610 (Perkins, C. and E. Guttman, “DHCP Options for Service Location Protocol,” June 1999.) [RFC2610] defines options for the Service Location Protocol (SLP).
RFC2937 (Smith, C., “The Name Service Search Option for DHCP,” September 2000.) [RFC2937] defines the Name Service Search Option (not to be confused with the domain-search option). The Name Service Search Option allows eg nsswitch.conf to be reconfigured via dhcp. The ISC DHCP server implements this option, and the ISC DHCP client is compatible...but does not by default install this option's value. One would need to make their relevant dhclient-script process this option in a way that is suitable for the system.
RFC3004 (Stump, G., Droms, R., Gu, Y., Vyaghrapuri, R., Demirtjis, A., Beser, B., and J. Privat, “The User Class Option for DHCP,” November 2000.) [RFC3004] defines the User-Class option. Note carefully that ISC DHCP currently does not implement to this reference, but has (inexplicably) selected an incompatible format: a plain text string.
RFC3011 (Waters, G., “The IPv4 Subnet Selection Option for DHCP,” November 2000.) [RFC3011] defines the Subnet-Selection plain DHCPv4 option. Do not confuse this option with the relay agent "link selection" sub-option, although their behaviour is similar.
RFC3319 (Schulzrinne, H. and B. Volz, “Dynamic Host Configuration Protocol (DHCPv6) Options for Session Initiation Protocol (SIP) Servers,” July 2003.) [RFC3319] defines the SIP server options for DHCPv6.
RFC3396 (Lemon, T. and S. Cheshire, “Encoding Long Options in the Dynamic Host Configuration Protocol (DHCPv4),” November 2002.) [RFC3396] documents both how long options may be encoded in DHCPv4 packets, and also how multiple instances of the same option code within a DHCPv4 packet will be decoded by receivers.
RFC3397 (Aboba, B. and S. Cheshire, “Dynamic Host Configuration Protocol (DHCP) Domain Search Option,” November 2002.) [RFC3397] documents the Domain-Search Option, which allows the configuration of the /etc/resolv.conf 'search' parameter in a way that is RFC1035 (Mockapetris, P., “Domain names - implementation and specification,” November 1987.) [RFC1035] wire format compatible (in fact, it uses the RFC1035 wire format). ISC DHCP has both client and server support, and supports RFC1035 name compression.
RFC3646 (Droms, R., “DNS Configuration options for Dynamic Host Configuration Protocol for IPv6 (DHCPv6),” December 2003.) [RFC3646] documents the DHCPv6 name-servers and domain-search options.
RFC3633 (Troan, O. and R. Droms, “IPv6 Prefix Options for Dynamic Host Configuration Protocol (DHCP) version 6,” December 2003.) [RFC3633] documents the Identity Association Prefix Delegation, which is included here for protocol wire reference, but which is not supported by ISC DHCP.
RFC3679 (Droms, R., “Unused Dynamic Host Configuration Protocol (DHCP) Option Codes,” January 2004.) [RFC3679] documents a number of options that were documented earlier in history, but were not made use of.
RFC3898 (Kalusivalingam, V., “Network Information Service (NIS) Configuration Options for Dynamic Host Configuration Protocol for IPv6 (DHCPv6),” October 2004.) [RFC3898] documents four NIS options for delivering NIS servers and domain information in DHCPv6.
RFC3925 (Littlefield, J., “Vendor-Identifying Vendor Options for Dynamic Host Configuration Protocol version 4 (DHCPv4),” October 2004.) [RFC3925] documents a pair of Enterprise-ID delimited option spaces for vendors to use in order to inform servers of their "vendor class" (sort of like 'uname' or 'who and what am I'), and a means to deliver vendor-specific and vendor-documented option codes and values.
RFC3942 (Volz, B., “Reclassifying Dynamic Host Configuration Protocol version 4 (DHCPv4) Options,” November 2004.) [RFC3942] redefined the 'site local' option space.
RFC4075 (Kalusivalingam, V., “Simple Network Time Protocol (SNTP) Configuration Option for DHCPv6,” May 2005.) [RFC4075] defines the DHCPv6 SNTP Servers option.
RFC4242 (Venaas, S., Chown, T., and B. Volz, “Information Refresh Time Option for Dynamic Host Configuration Protocol for IPv6 (DHCPv6),” November 2005.) [RFC4242] defines the Information Refresh Time option, which advises DHCPv6 Information-Request clients to return for updated information.
RFC4280 (Chowdhury, K., Yegani, P., and L. Madour, “Dynamic Host Configuration Protocol (DHCP) Options for Broadcast and Multicast Control Servers,” November 2005.) [RFC4280] defines two BCMS server options.
RFC4388 (Woundy, R. and K. Kinnear, “Dynamic Host Configuration Protocol (DHCP) Leasequery,” February 2006.) [RFC4388] defined the DHCPv4 LEASEQUERY message type and a number of suitable response messages, for the purpose of sharing information about DHCP served addresses and clients.
RFC4580 (Volz, B., “Dynamic Host Configuration Protocol for IPv6 (DHCPv6) Relay Agent Subscriber-ID Option,” June 2006.) [RFC4580] defines a DHCPv6 subscriber-id option, which is similar in principle to the DHCPv4 relay agent option of the same name.
RFC4649 (Volz, B., “Dynamic Host Configuration Protocol for IPv6 (DHCPv6) Relay Agent Remote-ID Option,” August 2006.) [RFC4649] defines a DHCPv6 remote-id option, which is similar in principle to the DHCPv4 relay agent remote-id.
| TOC |
RFC3046 (Patrick, M., “DHCP Relay Agent Information Option,” January 2001.) [RFC3046] defines the Relay Agent Information Option and provides a number of sub-option definitions.
RFC3256 (Jones, D. and R. Woundy, “The DOCSIS (Data-Over-Cable Service Interface Specifications) Device Class DHCP (Dynamic Host Configuration Protocol) Relay Agent Information Sub-option,” April 2002.) [RFC3256] defines the DOCSIS Device Class sub-option.
RFC3527 (Kinnear, K., Stapp, M., Johnson, R., and J. Kumarasamy, “Link Selection sub-option for the Relay Agent Information Option for DHCPv4,” April 2003.) [RFC3527] defines the Link Selection sub-option.
| TOC |
The collection of documents that describe the standards-based method to update dns names of DHCP clients starts most easily with RFC4703 (Stapp, M. and B. Volz, “Resolution of Fully Qualified Domain Name (FQDN) Conflicts among Dynamic Host Configuration Protocol (DHCP) Clients,” October 2006.) [RFC4703] to define the overall architecture, travels through RFCs 4702 (Stapp, M., Volz, B., and Y. Rekhter, “The Dynamic Host Configuration Protocol (DHCP) Client Fully Qualified Domain Name (FQDN) Option,” October 2006.) [RFC4702] and 4704 (Volz, B., “The Dynamic Host Configuration Protocol for IPv6 (DHCPv6) Client Fully Qualified Domain Name (FQDN) Option,” October 2006.) [RFC4704] to describe the DHCPv4 and DHCPv6 FQDN options (to carry the client name), and ends up at RFC4701 (Stapp, M., Lemon, T., and A. Gustafsson, “A DNS Resource Record (RR) for Encoding Dynamic Host Configuration Protocol (DHCP) Information (DHCID RR),” October 2006.) [RFC4701] which describes the DHCID RR used in DNS to perform a kind of atomic locking.
ISC DHCP adoped early versions of these documents, and has not yet synched up with the final standards versions.
For RFCs 4702 and 4704, the 'N' bit is not yet supported. The result is that it is always set zero, and is ignored if set.
For RFC4701, which is used to match client identities with names in the DNS as part of name conflict resolution. Note that ISC DHCP's implementation of DHCIDs vary wildly from this specification. First, ISC DHCP uses a TXT record in which the contents are stored in hexadecimal. Second, there is a flaw in the selection of the 'Identifier Type', which results in a completely different value being selected than was defined in an older revision of this document...also this field is one byte prior to hexadecimal encoding rather than two. Third, ISC DHCP does not use a digest type code. Rather, all values for such TXT records are reached via an MD5 sum. In short, nothing is compatible, but the principle of the TXT record is the same as the standard DHCID record. However, for DHCPv6 FQDN, we do use DHCID type code '2', as no other value really makes sense in our context.
| TOC |
The Failover Protocol defines a means by which two DHCP Servers can share all the relevant information about leases granted to DHCP clients on given networks, so that one of the two servers may fail and be survived by a server that can act responsibly.
Unfortunately it has been quite some years since the last time this document was edited, and the authors no longer show any interest in fielding comments or improving the document.
The status of this protocol is very unsure, but ISC's implementation of it has proven stable and suitable for use in sizable production environments.
draft-ietf-dhc-failover-12.txt (Droms, R., “DHCP Failover Protocol,” March 2003.) [draft‑failover] describes the Failover Protocol. In addition to what is described in this document, ISC DHCP has elected to make some experimental changes that may be revoked in a future version of ISC DHCP (if the draft authors do not adopt the new behaviour). Specifically, ISC DHCP's POOLREQ behaviour differs substantially from what is documented in the draft, and the server also implements a form of 'MAC Address Affinity' which is not described in the failover document. The full nature of these changes have been described on the IETF DHC WG mailing list (which has archives), and also in ISC DHCP's manual pages. Also note that although this document references a RECOVER-WAIT state, it does not document a protocol number assignment for this state. As a consequence, ISC DHCP has elected to use the value 254.
RFC3074 (Volz, B., Gonczi, S., Lemon, T., and R. Stevens, “DHC Load Balancing Algorithm,” February 2001.) [RFC3074] describes the Load Balancing Algorithm (LBA) that ISC DHCP uses in concert with the Failover protocol. Note that versions 3.0.* are known to misimplement the hash algorithm (it will only use the low 4 bits of every byte of the hash bucket array).
| TOC |
RFC2939 (Droms, R., “Procedures and IANA Guidelines for Definition of New DHCP Options and Message Types,” September 2000.) [RFC2939] explains how to go about obtaining a new DHCP Option code assignment.
| TOC |
| TOC |
| David W. Hankins | |
| Internet Systems Consortium, Inc. | |
| 950 Charter Street | |
| Redwood City, CA 94063 | |
| Phone: | +1<PHONE_NUMBER> |
| Email: |<EMAIL_ADDRESS>|


Yorktown Apartments
2233 South Highland Avenue
Lombard, Illinois
One 16-story and one 5-story rental apartment building with 240 occupied units
625 Windows and 290 Sliding Glass Doors Replaced
Building Owner: AIMCO
- Client:
Power Construction
- Model Numbers:
TRACO NX-3400 In-Swing Hopper Windows, NX-3800 Fixed Windows,
NX-840 Sliding Glass Door


Dan
's citation network
Hover over the timeline to filter the network graph by year
Click to hold
Colour by
Citation count
Number of authors
Number of institutions
Primary field
Size by
Constant
Citation count
Number of authors
Number of institutions
Number of fields
Group by
Paper
Author
Journal
Institution
Field
GitHub
×
×
Sorry - I don't know how to handle that kind of request (
) just yet


5 + 5 = {{5+5}}
Your first value is {{first}}
Your second value is
{{person.fName + "'s work is " + work.lJob}}


{% extends "base.html" %} {% block css %} {% endblock %} {% block body %}
Linkstr is a brand new link shortening service aimed at professionals and businesses that want to turn links they use into an additional channel of advertising. Turn clicks on content into views of a specific, targeted advertisement campaign or show 3rd party advertisements in order to directly generate revenue.
With our web dashboard and upcoming native mobile applications can gather insight into where your users are, what kind of browsers they use, and where they are coming from. Built on state-of-the-art HTML5 technologies, Linkstr's responsive design works on even the smallest of screen sizes.
With Linkstr, you are able to export all data generated through your use of our application to a CSV file, allowing for personal backup and analysis. Your profile is private, and no one but you can see information about the links you have generated. We also have a variety of reports that can be generated based off of the data that you have collected.
We plan to go into an open Beta some time around mid January. Sign up now to recieve updates on Linkstr and an open Beta invite.


- get(String) - Method in class Model.States
-
Gets a state contained in states
- get(String) - Static method in class Utils.NetUtils
-
Gets the source of a URL by GET request.
- getCachedForecasts(Station, ForecastFactory.Source) - Static method in class Data.ForecastFactory
-
Get cached forecasts from specified source.
- getCachedForecasts(double, double, ForecastFactory.Source) - Static method in class Data.ForecastFactory
-
- getCachedForecasts(double, double) - Static method in class Data.ForecastIOUtils
-
Loads the cached version of forecasts locally.
- getCachedForecasts(double, double) - Static method in class Data.OpenWeatherMapUtils
-
Loads the cached version of forecasts locally.
- getCachedStationData(Station) - Static method in class Data.DataManager
-
Loads the cached version of station data locally.
- getChartType() - Method in class Model.AppState
-
Converts int encoded chart type to enum.
- getColumnClass(int) - Method in class View.StationHistory.SampleTableModel
-
- getColumnCount() - Method in class View.StationHistory.SampleTableModel
-
- getColumnName(int) - Method in class View.StationHistory.SampleTableModel
-
- getHistoricalId() - Method in class Model.Station
-
- getHistoricalReadings(Station) - Static method in class Data.BOMUtils
-
Obtain historical readings from BOM.
- getHistoricalReadings() - Method in class Model.StationData
-
- getId() - Method in class Model.StationData
-
- getInstance() - Static method in class Model.AppState
-
Singleton get instance method.
- getKey() - Method in class Model.Station
-
- getKey(String, String) - Static method in class Model.Station
-
Key that uniquely identifies a station.
- getLatestReadings() - Method in class Model.StationData
-
- getLineCount() - Method in class View.LineChart
-
- getMainId() - Method in class Model.StationData
-
- getName() - Method in class Model.State
-
- getName() - Method in class Model.Station
-
- getNetForecasts(double, double, ForecastFactory.Source) - Static method in class Data.ForecastFactory
-
Get forecasts from the web from specified source.
- getNetForecasts(double, double) - Static method in class Data.ForecastIOUtils
-
Loads forecasts directly from the web.
- getNetForecasts(double, double) - Static method in class Data.OpenWeatherMapUtils
-
Loads forecasts directly from the web.
- getNetStationData(Station) - Static method in class Data.DataManager
-
Loads the most recent data from the web.
- getRowCount() - Method in class View.StationHistory.SampleTableModel
-
- getShownDetail() - Method in class Model.AppState
-
Converts int encoded shown detail to enum.
- getState() - Method in class Model.Station
-
- getStation(String) - Method in class Model.State
-
Gets a station contained in this state
- getStationData(Station) - Static method in class Data.DataManager
-
Tries to load station data from various sources.
- getTimezone() - Method in class Model.StationData
-
- getUrl() - Method in class Model.Station
-
- getValueAt(int, int) - Method in class View.StationHistory.SampleTableModel
-
- getWindowRect() - Method in class Model.AppState
-
Converts string encoded rectangle to object.
- getXValues() - Method in class View.LineChart
-
- save(Favorites) - Static method in class Utils.FavoritesManager
-
Saves favorites to the filesystem in JSON format.
- saveText(String, String) - Static method in class Utils.FileUtils
-
Save a text based file.
- scale(float, float, float, float) - Static method in class Utils.SwingUtils
-
Take dimensions values and scale it to the required values maintaining aspect ratio.
- setBlockUI(boolean) - Method in class View.MainPanel
-
- setBlockUI(boolean) - Method in class View.StationChart
-
- setBlockUI(boolean) - Method in class View.StationDetail
-
- setBlockUI(boolean) - Method in class View.StationForecast
-
- setBlockUI(boolean) - Method in class View.StationHistory
-
- setFavorites(Favorites, States, Station) - Method in class View.MainPanel
-
Populate panel with favorites.
- setForecasts(List<Forecast>) - Method in class View.ForecastChart
-
- setLoadingText(String) - Method in class View.FrameLoading
-
- setMaxDataPoints(int) - Method in class View.LineChart
-
- setOnActionListener(MainPanel.OnActionListener) - Method in class View.MainPanel
-
- setOnActionListener(StationDetail.OnActionListener) - Method in class View.StationDetail
-
- setOnAddFavoriteClickListener(AddFavoritePanel.OnAddFavoriteClickListener) - Method in class View.AddFavoritePanel
-
- setOnAddListener(FirstRunPanel.OnAddListener) - Method in class View.FirstRunPanel
-
- setOnBackClickListener(OnBackClickListener) - Method in class View.AddFavoritePanel
-
- setOnBackClickListener(OnBackClickListener) - Method in class View.StationChart
-
- setOnBackClickListener(OnBackClickListener) - Method in class View.StationHistory
-
- setOnDataLoadListener(FavoriteCell.OnDataLoadListener) - Method in class View.FavoriteCell
-
- setOnDataLoadListener(FavoriteCell.OnDataLoadListener) - Method in class View.MainPanel
-
- setOnRemoveFavoriteClickListener(StationDetail.OnRemoveFavoriteClickListener) - Method in class View.StationDetail
-
- setOnRemoveFromFavoritesClickListener(StationDetail.OnRemoveFavoriteClickListener) - Method in class View.MainPanel
-
- setOnStationSelectListener(FavoriteCell.OnStationSelectListener) - Method in class View.FavoriteCell
-
- setOnStationSelectListener(FavoriteCell.OnStationSelectListener) - Method in class View.MainPanel
-
- setOnTaskCompleteListener(ForecastWorker.OnTaskCompleteListener) - Method in class Utils.ForecastWorker
-
Set the success/fail listener.
- setOnTaskCompleteListener(StationDataWorker.OnTaskCompleteListener) - Method in class Utils.StationDataWorker
-
Set the success/fail listener.
- setStation(Station, StationData) - Method in class View.MainPanel
-
- setStation(Station, StationData) - Method in class View.StationChart
-
Set station data for this panel.
- setStation(Station, StationData) - Method in class View.StationDetail
-
set station information to this Panel
- setStation(Station) - Method in class View.StationForecast
-
set station information to this Panel
- setStation(Station, StationData) - Method in class View.StationHistory
-
Set station information to this Panel
- setStatus(int) - Method in class View.ForecastChart
-
- setTitle(String) - Method in class View.LineChart
-
- setValueAt(Object, int, int) - Method in class View.StationHistory.SampleTableModel
-
- setWindowRect(Point, Dimension) - Method in class Model.AppState
-
- setXAxisText(String) - Method in class View.LineChart
-
- setXValues(String[]) - Method in class View.LineChart
-
- setYAxisText(String) - Method in class View.LineChart
-
- severe(Class, String) - Static method in class Utils.Log
-
Convenience function for logging severe.
- shownDetail - Variable in class Model.AppState
-
- shownWindow - Variable in class Model.AppState
-
- showPanel(MainPanel.PanelType) - Method in class View.MainPanel
-
Change panel shown.
- size() - Method in class Model.Favorites
-
Returns the number of favorites.
- state - Variable in class Model.AppState
-
- state - Variable in class Model.Favorite
-
Name of state.
- State - Class in Model
-
Data structure for representing a state.
- State(String) - Constructor for class Model.State
-
Creates a new state instance.
- States - Class in Model
-
Data structure for representing a collection of states.
- States() - Constructor for class Model.States
-
- station - Variable in class Model.AppState
-
- station - Variable in class Model.Favorite
-
Name of station.
- Station - Class in Model
-
Data structure for representing a station.
- Station(State, String, String, String) - Constructor for class Model.Station
-
Creates a new station.
- STATION_DETAIL_BACKGROUND - Static variable in class View.Style
-
- StationChart - Class in View
-
Chart UI
- StationChart() - Constructor for class View.StationChart
-
Create the panel.
- StationChart.ChartType - Enum in View
-
- StationData - Class in Model
-
Object for storing information about a station obtained from BOM.
- StationData(String, String, String, List<LatestReading>, List<HistoricalReading>) - Constructor for class Model.StationData
-
Creates a station data instance.
- StationDataWorker - Class in Utils
-
Used for downloading BOM station data asynchronously.
- StationDataWorker(Station) - Constructor for class Utils.StationDataWorker
-
Creates a new worker instance.
- StationDataWorker.OnTaskCompleteListener - Interface in Utils
-
The success/fail listener interface.
- StationDetail - Class in View
-
Detail information UI in Main Screen
- StationDetail() - Constructor for class View.StationDetail
-
Create the panel.
- StationDetail.OnActionListener - Interface in View
-
- StationDetail.OnRemoveFavoriteClickListener - Interface in View
-
- StationForecast - Class in View
-
- StationForecast() - Constructor for class View.StationForecast
-
Create the panel.
- StationHistory - Class in View
-
Show all weather history table UI
- StationHistory() - Constructor for class View.StationHistory
-
Create the panel.
- StationHistory.SampleTableModel - Class in View
-
Sample Table Model for the UI
- StationHistory.SampleTableModel() - Constructor for class View.StationHistory.SampleTableModel
-
- Style - Class in View
-
Contains styling constants.
- Style() - Constructor for class View.Style
-
- summary - Variable in class Model.Forecast
-
- SwingUtils - Class in Utils
-
Operations related to Swing.
- SwingUtils() - Constructor for class Utils.SwingUtils
-
- SwingUtils.Size - Class in Utils
-
- SwingUtils.Size(float, float) - Constructor for class Utils.SwingUtils.Size
-


Decline in #EURUSD will cause #DXY to rally in strong wave up. Consolidation has lasted longer than expected but this only talks to the power of coming rally. LT-target 107-109 - pot. higher! Do not stand in the way of coming USD-rally due to talks of dedollarization #HZup...


Somacode Blog |
|
Your journey starts here. PROGRAMING PROGRAMING EDUCATION PROGRAMING |
Welcome to our siteHere you will learn how to create websites... Good developers are defined by the quality of their codes. In the software industry, writing good code means saving the money that may be invested in testing, updating, extending or fixing bugs. In this article, I will show you real-life examples of some techniques and ideas that will help you to clean up your legacy code and refactor it to make it more robust and modular. These techniques will not only help you to refactor your old code but will give you great ideas as to how to write clean code from now on. Allen Posted on August 18, 2020Excellent feature! I love it. Lisa Wangari Posted on August 19, 2020Excellent feature! I love it. Ann Kimani Posted on August 20, 2020Excellent feature! I love it. Ann KarimiPosted on August 21, 2020Excellent feature! I love it. |
|
Copyright © Somacode.co.ke |


Tottenham ready to make £50m transfer bid for Man Utd flop Memphis Depay
EXCLUSIVE: Tottenham are keen on Lyon forward Depay despite his struggles during his last stint in the Premier League at Manchester United
by John RichardsonTottenham are ready to make a £50million move for Manchester United flop Memphis Depay.
The Dutch striker has enjoyed a new lease of life after moving to Lyon and is also now an integral part of Ronald Koeman’s impressive Holland side.
Lyon rescued Depay from an underwhelming time at Old Trafford in which he was better known for his flamboyance off the pitch rather than his performances on it.
But since arriving in France in January 2017 the 25-year-old has matured and gone from strength to strength.
That has attracted the attention of a number of leading clubs including Tottenham who have had the speedy forward regularly scouted including in the two recent Champions League games between Lyon and Benfica.
It was also an opportunity to watch Depay’s team-mate, former Fulham and Celtic striker Moussa Dembele.
Spurs were interested in the 23-year-old Frenchman before he left Scotland for Lyon but it appears Depay is now their main target as they looked to bring in another forward.
They will discover that his price has risen considerably from the £15 million Lyon handed over to Manchester United although the Old Trafford club inserted a buy back option into the agreement.


labeled
by None at 2021-03-30 14:12:55.labeled
by None at 2021-03-30 14:12:55.labeled
by None at 2021-03-30 15:39:54.labeled
by None at 2021-03-30 15:39:54.closed
by None at 2021-03-30 16:57:22.This was also part of #1173
renamed
by Christina Chortaria at 2021-03-30 12:16:12.referenced
by Christina Chortaria at 2021-03-30 13:00:46.merged
by Christina Chortaria at 2021-03-30 13:00:46.closed
by Christina Chortaria at 2021-03-30 13:00:46.head_ref_deleted
by Christina Chortaria at 2021-03-30 13:00:47.closed by #1174
labeled
by Christina Chortaria at 2021-03-30 12:07:27.assigned
by Christina Chortaria at 2021-03-30 12:07:28.closed
by Christina Chortaria at 2021-03-30 13:01:45.convert_to_draft
by Christina Chortaria at 2021-03-30 12:53:43.head_ref_force_pushed
by Christina Chortaria at 2021-03-30 12:58:15.ready_for_review
by Christina Chortaria at 2021-03-30 12:58:41.referenced
by Christina Chortaria at 2021-03-30 13:04:55.merged
by Christina Chortaria at 2021-03-30 13:04:55.closed
by Christina Chortaria at 2021-03-30 13:04:55.head_ref_deleted
by Christina Chortaria at 2021-03-30 13:04:55.closed by #1176
assigned
by Christina Chortaria at 2021-03-30 12:39:02.labeled
by Christina Chortaria at 2021-03-30 12:39:16.closed
by Christina Chortaria at 2021-03-30 13:06:02.The bulk of this work was done in https://github.com/pulibrary/bibdata/pull/1112, it's just not yet integrated into the controller.
Closing this issue as the Data Quality group and the Alma Cataloging and Inventory Management group use google drive for this work.
closed
by Christina Chortaria at 2021-03-30 13:30:29.referenced
by Eliot Jordan at 2021-03-30 15:05:17.merged
by Eliot Jordan at 2021-03-30 15:05:17.closed
by Eliot Jordan at 2021-03-30 15:05:17.head_ref_deleted
by Eliot Jordan at 2021-03-30 15:05:18.labeled
by None at 2021-03-30 15:45:26.labeled
by Hector Correa at 2021-03-30 15:32:33.labeled
by Hector Correa at 2021-03-30 15:32:33.labeled
by Hector Correa at 2021-03-30 15:32:33.mentioned
by None at 2021-03-30 15:32:34.subscribed
by None at 2021-03-30 15:32:34.@hectorcorrea not a problem to pass the bib and holding ID at all. Both will be indexed into OL. The request app reads the solr document for each record before it makes any calls out for more data.
mentioned
by Hector Correa at 2021-03-30 04:33:01.subscribed
by Hector Correa at 2021-03-30 04:33:01.labeled
by Eliot Jordan at 2021-03-30 16:49:24.labeled
by Eliot Jordan at 2021-03-30 16:49:24.@kevinreiss can you please update this issue, when the external_name is updated in the Alma system so that I can update bibdata?
labeled
by Christina Chortaria at 2021-03-30 15:30:53.mentioned
by Kevin Reiss at 2021-03-30 15:30:53.subscribed
by Kevin Reiss at 2021-03-30 15:30:53.assigned
by Kevin Reiss at 2021-03-30 15:30:53.mentioned
by Kevin Reiss at 2021-03-30 17:03:24.subscribed
by Kevin Reiss at 2021-03-30 17:03:24.I'm not sure now if we want all the three files to be updated in the same way. In production for "rcppb" https://github.com/pulibrary/bibdata/blob/main/marc_to_solr/translation_maps/location_display.rb.tmpl has ReCAP and https://github.com/pulibrary/bibdata/blob/main/marc_to_solr/translation_maps/locations.rb.tmpl has "rcppb" => "ReCAP - Supervised use in Firestone ". So maybe we want to replicate what we have in production. @kevinreiss ?
example: From the Alma system we get for 'pb': "recap$pb"=>"ReCAP - rcppb RECAP Firestone Use"
https://github.com/pulibrary/bibdata/blob/0f1a5b453cc7bef6403f710fbec2013410d682bd/marc_to_solr/translation_maps/locations.rb.tmpl#L377 (can we configure in Alma system the names so that we get ReCAP - Supervised use in Firestone ) and https://github.com/pulibrary/bibdata/blob/0f1a5b453cc7bef6403f710fbec2013410d682bd/marc_to_solr/translation_maps/location_display.rb.tmpl#L369 ReCAP. (same like production)
It seems that most of these changes were not from voyager and were done through the bibdata UI. per @kevinreiss these names were edited to be more patron friendly since most of the purpose of this was to configure blacklight.
So I will move forward to preserve these patron friendly names across the files.
After further review with @kevinreiss the file that needs to be maintained because it is not coming from the Alma system is the holdinglibrary.rb https://github.com/pulibrary/bibdata/blob/alma/marctosolr/translationmaps/holding_library.rb.tmpl
@kevinreiss and his team will take care of https://github.com/pulibrary/bibdata/issues/1178 file https://github.com/pulibrary/bibdata/blob/alma/marc_to_solr/translation_maps/locations.rb.tmpl
mentioned
by Kevin Reiss at 2021-03-30 13:47:54.subscribed
by Kevin Reiss at 2021-03-30 13:47:54.mentioned
by Kevin Reiss at 2021-03-30 14:14:33.subscribed
by Kevin Reiss at 2021-03-30 14:14:33.mentioned
by Kevin Reiss at 2021-03-30 15:42:07.subscribed
by Kevin Reiss at 2021-03-30 15:42:07.Thanks @kevinreiss !
mentioned
by Kevin Reiss at 2021-03-30 17:20:40.subscribed
by Kevin Reiss at 2021-03-30 17:20:40.closing this as part of #1168
closed
by Christina Chortaria at 2021-03-30 17:24:49.renamed
by Christina Chortaria at 2021-03-30 16:53:37.referenced
by Christina Chortaria at 2021-03-30 17:36:14.merged
by Christina Chortaria at 2021-03-30 17:36:14.closed
by Christina Chortaria at 2021-03-30 17:36:14.head_ref_deleted
by Christina Chortaria at 2021-03-30 17:36:15.deployed
by Trey Pendragon at 2021-03-30 13:08:19.deployed
by Trey Pendragon at 2021-03-30 16:19:29.deployed
by Trey Pendragon at 2021-03-30 18:59:18.closed by #1182
assigned
by Christina Chortaria at 2021-03-30 16:04:00.labeled
by Christina Chortaria at 2021-03-30 16:04:58.closed
by Christina Chortaria at 2021-03-30 17:37:17.labeled
by None at 2021-03-30 17:50:58.labeled
by None at 2021-03-30 17:51:11.I will continue with this issue when #1178 is done.
@mzelesky said that he will update the Alma system with what we currently have in bibdata production. I unblock this issue and will work based on what we have in production as a guide for the duplicate string removal.
labeled
by Christina Chortaria at 2021-03-30 17:19:13.mentioned
by None at 2021-03-30 18:41:40.subscribed
by None at 2021-03-30 18:41:40.unlabeled
by Christina Chortaria at 2021-03-30 18:41:45.Thank you for changing the name @regineheberlein.
Your questions make a lot of sense. @kevinreiss @mzelesky who is the right person/group of people to answer these questions?
I'll ask Alexis about the External Names
Thank you!
Per conversation with Alexis: 1. Change external name to human readable expanded string 2. Change internal name to code + abbreviated human readable string 3. remove all prefixes
I'll get started now.
Also pinged Joshua about the East Asian location labels (currently all "East Asian Rare")
@mzelesky @kevinreiss Can we delete the location "UNASSIGNED"?
@christinach What gets displayed in Blacklight, Name or External Name?
We cannot delete the location "UNASSIGNED"; it's used for migration purposes. At least, that's my understanding. If there is nothing in the locations after go-live we can delete. In general, we cannot delete any locations prior to go-live unless those locations are also deleted in Voyager.
@regineheberlein we use 'name', not the 'external_name'
@regineheberlein but we can change it to the 'external_name' if that makes more sense.
@christinach Yes please. There is a difference between what staff need to see in the UI and what we want patrons to see in Blacklight, so changing the source to external_name for Blacklight would be great.
@regineheberlein I will! Thank you.
@christinach Thank you! I'm making a new ticket for it now.
Now reaching out to Martin per Joshua
Martin confirms that the labels for EA rare, while all the same, are good as is.
mentioned
by Kevin Reiss at 2021-03-30 11:29:15.subscribed
by Kevin Reiss at 2021-03-30 11:29:16.mentioned
by None at 2021-03-30 11:29:16.subscribed
by None at 2021-03-30 11:29:16.mentioned
by None at 2021-03-30 11:29:16.subscribed
by None at 2021-03-30 11:29:16.referenced
by Christina Chortaria at 2021-03-30 12:51:32.referenced
by Christina Chortaria at 2021-03-30 12:58:15.mentioned
by Kevin Reiss at 2021-03-30 15:06:56.subscribed
by Kevin Reiss at 2021-03-30 15:06:56.mentioned
by None at 2021-03-30 15:06:56.subscribed
by None at 2021-03-30 15:06:56.mentioned
by Christina Chortaria at 2021-03-30 15:21:40.subscribed
by Christina Chortaria at 2021-03-30 15:21:40.mentioned
by None at 2021-03-30 15:55:14.subscribed
by None at 2021-03-30 15:55:14.mentioned
by None at 2021-03-30 15:57:17.subscribed
by None at 2021-03-30 15:57:17.mentioned
by Christina Chortaria at 2021-03-30 15:58:04.subscribed
by Christina Chortaria at 2021-03-30 15:58:04.mentioned
by None at 2021-03-30 16:01:46.subscribed
by None at 2021-03-30 16:01:46.mentioned
by Christina Chortaria at 2021-03-30 16:03:51.subscribed
by Christina Chortaria at 2021-03-30 16:03:51.assigned
by None at 2021-03-30 18:04:16.mentioned
by Eliot Jordan at 2021-03-30 18:50:57.subscribed
by Eliot Jordan at 2021-03-30 18:50:57.labeled
by Christina Chortaria at 2021-03-30 20:04:09.labeled
by None at 2021-03-30 13:59:00.assigned
by Shaun Ellis at 2021-03-30 18:26:15.labeled
by None at 2021-03-30 18:50:42.labeled
by None at 2021-03-30 18:50:42.head_ref_force_pushed
by None at 2021-03-30 17:43:22.head_ref_force_pushed
by None at 2021-03-30 17:44:51.labeled
by None at 2021-03-30 02:38:04.labeled
by None at 2021-03-30 15:45:11.labeled
by None at 2021-03-30 15:45:11.labeled
by None at 2021-03-30 19:02:21.labeled
by None at 2021-03-30 19:02:22.labeled
by James R. Griffin III at 2021-03-30 14:21:33.assigned
by James R. Griffin III at 2021-03-30 15:25:49.AbsoluteIdsController#create_batch takes a LONG time. 18 seconds for a test where all the responses are mocked.
I was finding this as well. I can create an issue for this.
We're querying for an entire tree and all its top containers, resulting in something like 2N calls, where N is the number of components. I don't think this will scale.
I have just found an alternative when working through #76 which should resolve this. I will create an issue for this also.
referenced
by James R. Griffin III at 2021-03-30 18:09:53.merged
by James R. Griffin III at 2021-03-30 18:09:53.closed
by James R. Griffin III at 2021-03-30 18:09:53.head_ref_deleted
by James R. Griffin III at 2021-03-30 18:09:58.One area where performance is restricted lies within the creation of AbsoluteId
Models, where TopContainers
need to be converted from LibJobs::ArchivesSpace::TopContainer
to AbsoluteId::TopContainer
instances. This is currently using AbsoluteId::TopContainer#find
.
Perhaps just serializing the AbsoluteId::TopContainer
as JSON will prove effective.
labeled
by James R. Griffin III at 2021-03-30 17:56:44.labeled
by James R. Griffin III at 2021-03-30 17:56:44.labeled
by James R. Griffin III at 2021-03-30 17:56:44.https://archivesspace.github.io/archivesspace/api/#search-for-top-containers shows promise for me, as it should provide one with the ability to identify the collections in which it belongs.
curl -v -H "X-ArchivesSpace-Session: $SESSION" "https://aspace-staging.princeton.edu/staff/api/repositories/4/top_containers/search?q=Box"
nearly leads to a time out for my local development environment, only to eventually lead to the following:

Problem accessing /repositories/4/top_containers/search. Reason:

 Java heap space

Caused by:

java.lang.OutOfMemoryError: Java heap space
at org.jruby.util.ByteList.ensure(ByteList.java:345)
at org.jruby.util.io.EncodingUtils.strBufCat(EncodingUtils.java:1712)
at org.jruby.util.io.EncodingUtils.strBufCat(EncodingUtils.java:1697)
at org.jruby.util.io.EncodingUtils.encCrStrBufCat(EncodingUtils.java:1820)
at org.jruby.util.io.EncodingUtils.encCrStrBufCat(EncodingUtils.java:1747)
at org.jruby.RubyString.cat19(RubyString.java:1372)
at org.jruby.RubyString.cat19(RubyString.java:1362)
at org.jruby.RubyString.append19(RubyString.java:2656)
at org.jruby.RubyString.concatSingle(RubyString.java:2666)
at org.jruby.RubyString$INVOKER$i$1$0$concatSingle.call(RubyString$INVOKER$i$1$0$concatSingle.gen)
at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:172)
at uri_3a_classloader_3a_.META_minus_INF.jruby_dot_home.lib.ruby.stdlib.net.protocol.invokeOther19:\=\^\^(uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/net/protocol.rb:129)
at uri_3a_classloader_3a_.META_minus_INF.jruby_dot_home.lib.ruby.stdlib.net.protocol.RUBY$method$read$0(uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/net/protocol.rb:129)
at java.lang.invoke.LambdaForm$DMH/1738290946.invokeStatic_L7_L(LambdaForm$DMH)
at java.lang.invoke.LambdaForm$MH/621432843.invokeExact_MT(LambdaForm$MH)
at org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:82)
at org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:118)
at org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:175)
at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:208)
at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:203)
at org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:325)
at org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:72)
at org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:92)
at org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:191)
at org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:178)
at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:208)
at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:203)
at org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:325)
at org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:72)
at org.jruby.ir.interpreter.Interpreter.INTERPRET_BLOCK(Interpreter.java:116)
at org.jruby.runtime.MixedModeIRBlockBody.commonYieldPath(MixedModeIRBlockBody.java:136)
at org.jruby.runtime.IRBlockBody.doYield(IRBlockBody.java:166)

Powered by Jetty://

So perhaps it was premature to assume that https://archivesspace.github.io/archivesspace/api/#search-for-top-containers is a potential solution.
Even just attempting curl -v -H "X-ArchivesSpace-Session: $SESSION" "https://aspace-staging.princeton.edu/staff/api/repositories/4/top_containers/search?q=Box&root_record=ABID001&fields[]=id"
still leads to issues for the Solr index:

HTTP ERROR 500

Problem accessing /repositories/4/top_containers/search. Reason:

 Java heap space

Caused by:

java.lang.OutOfMemoryError: Java heap space

Powered by Jetty://

curl -v -H "X-ArchivesSpace-Session: $SESSION" "https://aspace-staging.princeton.edu/staff/api/repositories/4/search?q=ABID001&page=1&type[]=top_container"
is not timing out, and I seem to be able to resolve the TopContainer
REST resources fairly readily.
labeled
by James R. Griffin III at 2021-03-30 17:59:20.labeled
by James R. Griffin III at 2021-03-30 17:59:20.labeled
by James R. Griffin III at 2021-03-30 17:59:20.referenced
by James R. Griffin III at 2021-03-30 19:49:58.merged
by James R. Griffin III at 2021-03-30 19:49:58.closed
by James R. Griffin III at 2021-03-30 19:49:58.head_ref_deleted
by James R. Griffin III at 2021-03-30 19:50:08.assigned
by James R. Griffin III at 2021-03-30 20:00:04.labeled
by James R. Griffin III at 2021-03-30 20:00:16.labeled
by James R. Griffin III at 2021-03-30 20:00:19.head_ref_force_pushed
by None at 2021-03-30 18:09:37.assigned
by Kevin Reiss at 2021-03-30 20:38:31.assigned
by None at 2021-03-30 20:38:31.labeled
by None at 2021-03-30 17:25:33.assigned
by Bess Sadler at 2021-03-30 15:29:51.assigned
by Bess Sadler at 2021-03-30 15:51:33.referenced
by Bess Sadler at 2021-03-30 18:44:49.merged
by Bess Sadler at 2021-03-30 18:44:49.closed
by Bess Sadler at 2021-03-30 18:44:49.head_ref_deleted
by Bess Sadler at 2021-03-30 18:44:52.assigned
by Kate Lynch at 2021-03-30 20:03:38.referenced
by None at 2021-03-30 14:00:38.merged
by None at 2021-03-30 14:00:38.closed
by None at 2021-03-30 14:00:38.head_ref_deleted
by None at 2021-03-30 14:00:39.referenced
by Kevin Reiss at 2021-03-30 19:04:30.merged
by Kevin Reiss at 2021-03-30 19:04:30.closed
by Kevin Reiss at 2021-03-30 19:04:30.head_ref_deleted
by Kevin Reiss at 2021-03-30 19:04:31.@hackartisan I updated with the alias.
head_ref_force_pushed
by Christina Chortaria at 2021-03-30 12:25:13.review_requested
by Christina Chortaria at 2021-03-30 12:26:12.mentioned
by None at 2021-03-30 12:27:00.subscribed
by None at 2021-03-30 12:27:00.referenced
by None at 2021-03-30 12:59:41.merged
by None at 2021-03-30 12:59:41.closed
by None at 2021-03-30 12:59:42.head_ref_deleted
by None at 2021-03-30 12:59:42.closed
by Trey Pendragon at 2021-03-30 16:42:50.closed
by James R. Griffin III at 2021-03-30 16:44:54.referenced
by James R. Griffin III at 2021-03-30 16:44:54.merged
by James R. Griffin III at 2021-03-30 16:44:54.closed
by James R. Griffin III at 2021-03-30 16:44:54.head_ref_deleted
by James R. Griffin III at 2021-03-30 16:44:55.I'm going to ship this, we can open another ticket if there's something we want to change about it.
Sorry didn't see the question about the placeholder text before now. Looks good to me. I will see if there is more feedback after this has been in place for a while.
referenced
by Trey Pendragon at 2021-03-30 16:42:50.merged
by Trey Pendragon at 2021-03-30 16:42:50.closed
by Trey Pendragon at 2021-03-30 16:42:50.head_ref_deleted
by Trey Pendragon at 2021-03-30 16:42:51.Coverage remained the same at 100.0% when pulling 7652d381faf3a49de043c6298388ed90a55464e6 on dependabot/npmandyarn/y18n-3.2.2 into 1d72dca542c3da62f12dad5253f1bfcf0bed9dc0 on main.
labeled
by None at 2021-03-30 18:44:35.labeled
by None at 2021-03-30 18:44:35.head_ref_force_pushed
by None at 2021-03-30 15:47:07.referenced
by Kevin Reiss at 2021-03-30 16:34:28.merged
by Kevin Reiss at 2021-03-30 16:34:28.closed
by Kevin Reiss at 2021-03-30 16:34:28.head_ref_deleted
by Kevin Reiss at 2021-03-30 16:34:31.Resolved: Confluence is back up in 1d986cd
.
labeled
by Francis Kayiwa at 2021-03-30 02:03:48.labeled
by Francis Kayiwa at 2021-03-30 02:03:48.locked
by Francis Kayiwa at 2021-03-30 02:03:48.closed
by Francis Kayiwa at 2021-03-30 02:26:10.


Minimal Model¶
[1]:
try:
import predicode as pc
except:
!pip install git+https://github.com/sflippl/predicode
import predicode as pc
try:
import lazytools_sflippl as lazytools
except:
!pip install git+https://github.com/sflippl/lazytools
import lazytools_sflippl as lazytools
import pandas as pd
import numpy as np
import plotnine as gg
import tensorflow as tf
tf.logging.set_verbosity(tf.logging.ERROR)
tf.random.set_random_seed(2885)
np.random.seed(2885)
‘predicode’ contains several 1 high-level interfaces to the more general hierarchical model 2. We will use the minimal model, consisting of an input layer and one latent layer with a specified number of dimensions as an example. As an example, we will use an artificial dataset as presented in the previous chapter.
[2]:
art = pc.decaying_multi_normal(dimensions = 10,
size = 100)
The minimal model can be fitted by providing input data and the number of latent dimensions to the class ‘pc.MinimalHierarchicalModel’:
[3]:
hpc = pc.MinimalHierarchicalModel(input_data = art,
latent_dimensions = 4)
State Estimation¶
By default the weights of the minimal model are initialized as the first PCA components. This is the optimal solution for the minimal model and can be used to study state estimation. Since a predictive coding model can improve either by adapting its states or its weights, we first need to specify which of the two can currently be modified:
[4]:
hpc.activate('state')
(Technically, this would not have been necessary.) States are activated by default.
The minimal model can then be trained in order to extract the latent values.
[5]:
hpc.train(max_steps=1e3)
[5]:
<tensorflow_estimator.python.estimator.estimator.Estimator at 0x7f9c101a6fd0>
The usual Tensorflow framework can be used in this context:
[6]:
hpc.evaluate()
[6]:
{'loss': 0.0026129463, 'global_step': 1000}
The method ‘latent_values’ allows for the extraction of the latent values, which we here visualize using a heatmap:
[7]:
latent_values = hpc.latent_values
lazytools.matrix_heatmap(latent_values, pole = 0)
[7]:
<ggplot:<PHONE_NUMBER>429)>
Similarly the predictions generated by the latent values can be studied:
[8]:
predictions = hpc.predict()
lazytools.matrix_heatmap(predictions, pole = 0)
[8]:
<ggplot:<PHONE_NUMBER>841)>
State Learning Curve¶
Learning curves may also be simulated. Here, we take a single sample from the previous model and simulate its convergence.
[9]:
curve_hpc = pc.MinimalHierarchicalModel(input_data=art[range(1), :],
weights=hpc.weights,
latent_dimensions=4)
[10]:
learning_curve = curve_hpc.learning_curve(steps=100, resolution=1)
100%|██████████| 100/100 [00:44<00:00, 2.11it/s]
(Note that this is at the time extremely slow.)
[11]:
df_learning_curve = lazytools.array_to_dataframe(learning_curve)
[12]:
df_learning_curve['dim1'] = [str(dim1) for dim1 in df_learning_curve['dim1']]
(gg.ggplot(df_learning_curve, gg.aes(x='dim2', y='array', color='dim1', group='dim1')) +
gg.geom_line() +
gg.xlab('Step') +
gg.ylab('Estimated Value') +
gg.labs(color='Latent Dimension') +
gg.theme_bw())
[12]:
<ggplot:<PHONE_NUMBER>945)>