review_requested
by None at 2021-05-04 14:08:32.review_requested
by None at 2021-05-04 14:09:07.referenced
by Kevin Reiss at 2021-05-04 14:17:22.merged
by Kevin Reiss at 2021-05-04 14:17:22.closed
by Kevin Reiss at 2021-05-04 14:17:22.head_ref_deleted
by Kevin Reiss at 2021-05-04 14:17:26.on hold shelf letter
overdue notice letter
Resend Notification
Shortened Due Date Letter
closed
by None at 2021-05-04 16:02:45.closed
by None at 2021-05-04 16:03:08.this is a variable; just need to customize it on each screen
assigned
by None at 2021-05-04 13:19:35.closed
by None at 2021-05-04 16:08:25.assigned
by None at 2021-05-04 16:09:30.closed
by None at 2021-05-04 16:09:35.review_requested
by None at 2021-05-04 16:18:50.review_requested
by None at 2021-05-04 16:18:50.referenced
by Peter Green at 2021-05-04 18:20:09.merged
by Peter Green at 2021-05-04 18:20:09.closed
by Peter Green at 2021-05-04 18:20:09.This may be possible by adding conditional logic to the XSLT--I need to investigate what the hook might be.
(Generally, Letters are configured for Princeton University, not per branch library)
We might replace @@department@@
and @@addressFrom@@
with organizationunit/name and organizationunit/email/email. Need to test.
Not yet seeing how I could bypass the addressFrom for the sender's email.
Meanwhile, we could call this template from footer.xsl:
<xsl:template name="contactUs">

<xsl:attribute name="href">
@@email_contact_us@@
</xsl:attribute>
@@contact_us@@

</xsl:template>
You can configure the outgoing email EnvelopeFrom using the mail handling integration profile. For more information about integration profiles, see Configuring Integration Profiles. By default, the EnvelopeFrom is also<EMAIL_ADDRESS>assigned
by None at 2021-05-04 16:10:19.mentioned
by None at 2021-05-04 18:09:39.subscribed
by None at 2021-05-04 18:09:39.assigned
by None at 2021-05-04 19:03:49.emails are sent from the @@addressFrom@@ label; patrons can reply and replies will go to that email account
closed
by None at 2021-05-04 19:05:09.Something seems to be overriding the logo CSS in style.xsl
assigned
by None at 2021-05-04 19:03:35.mentioned
by Eliot Jordan at 2021-05-04 15:23:17.subscribed
by Eliot Jordan at 2021-05-04 15:23:17.mentioned
by None at 2021-05-04 15:23:17.subscribed
by None at 2021-05-04 15:23:17.labeled
by Christina Chortaria at 2021-05-04 17:27:30.assigned
by Christina Chortaria at 2021-05-04 17:27:30.Per Mark: the following records are in temporary locations and are not ETAS:<PHONE_NUMBER>506421 and<PHONE_NUMBER>506421
Was this just a ETD bulk ingest from February? Does that mean this should be closed?
labeled
by Kevin McElwee at 2021-05-04 13:31:53.renamed
by James R. Griffin III at 2021-05-04 13:46:59.closed
by James R. Griffin III at 2021-05-04 13:47:02.I get the impression that if this wasn't taken care of, we'd hear about it, presumably this change has already occurred?
This user was successfully created.
labeled
by Kevin McElwee at 2021-05-04 13:32:34.closed
by James R. Griffin III at 2021-05-04 13:47:25.I get the impression that if this wasn't taken care of, we'd hear about it, presumably this change has already occurred?
This user was successfully created.
labeled
by Kevin McElwee at 2021-05-04 13:32:23.closed
by James R. Griffin III at 2021-05-04 13:47:43.Would you mind expanding on what this ticket means if it's still applicable? I recognize that since July 2020, it has probably changed.
This is deprecated and no longer a lengthy or complex process.
labeled
by Kevin McElwee at 2021-05-04 13:31:24.closed
by James R. Griffin III at 2021-05-04 13:48:52.Since we aren't responsible for vireo, presumably this doesn't apply to us anymore?
This is no longer going to be possible or necessarily within scope.
labeled
by Kevin McElwee at 2021-05-04 13:31:10.closed
by Kevin McElwee at 2021-05-04 13:49:48.That link now points to https://docs.google.com/forms/d/e/1FAIpQLScOrkxtR67TnsXPoo-SqcWSPYUtJtiTqNljQJt13JPn3etqDg/viewform, but I can't find when that change was made in the git history. Presumably this is all good / taken care of?
labeled
by Kevin McElwee at 2021-05-04 13:32:09.closed
by Kevin McElwee at 2021-05-04 13:50:10.Is this obviated now because of the new workflow? Or is this still a problem?
This was not really specific to PPPL users, as other users are definitely affected.
I am pretty certain that this is triggered by the adding or updating users to administrative groups in relation to a specific Collection. In cases where an Item is submitted before a user is added to a curatorial group in which they would have received a submission task in the task pool, should the user be added after the Item is submitted, the Task is not created.
labeled
by Kevin McElwee at 2021-05-04 13:31:33.unlabeled
by Kevin McElwee at 2021-05-04 13:50:52.renamed
by James R. Griffin III at 2021-05-04 13:51:45.Haylie was contacted, and our case number is 04370188. She is checking with her development team to see if a public ssh key can be provided.
@tpendragon so we should delete this upload decorator?
Yeah, guess so.
mentioned
by Trey Pendragon at 2021-05-04 12:36:40.subscribed
by Trey Pendragon at 2021-05-04 12:36:40.referenced
by Trey Pendragon at 2021-05-04 17:07:23.merged
by Trey Pendragon at 2021-05-04 17:07:23.closed
by Trey Pendragon at 2021-05-04 17:07:23.closed
by Trey Pendragon at 2021-05-04 17:31:31.assigned
by Trey Pendragon at 2021-05-04 17:32:45.It seems to be a check digit that's important, and it's working correctly, so closing this.
closed
by Trey Pendragon at 2021-05-04 17:34:25.assigned
by Christina Chortaria at 2021-05-04 17:09:42.However when I test this Pr in my local bibdata and I run rails generate locations:install
, I see that it creates 2 older migration files that probably had never run before. I noticed that in bibdata starting 2017 there were migrations to update the location tables directly in the bibdata database. So even though I spent some time to update the gems in this PR I'm thinking that it would be better to add the migration to add the remote_storage attribute directly in bibdata and not in the locations gem.
ok, I looked again the migration files and they seem ok to me based on the dates. for reference these are the 2 migration files that existed in locations but not in bibdata: https://github.com/pulibrary/locations/blob/87-add-remote-storage/db/migrate/20171213175117_remove_locations_library_from_locations_floors.rb https://github.com/pulibrary/locations/blob/87-add-remote-storage/db/migrate/20171213175341_drop_locations_floors.rb
As far as I know we don't use the locations floors and it would be ok to be removed.
What is the reasoning behind disallowing nil and defaulting to / storing the empty string? I would have expected to use nil when there's no value.
I thought about that too. I added an empty string because in the api call we either have a remote storage location value or it is an empty string which means it is not in a remote storage. If it is nil I would think that it expects a value which would be either an empty string or a remote storage. I wanted the default value to be not in a remote_storage.
I'm ok either or. I dont have a strong opinion. @carolyncole based on your experience checking in the requests the attribute values that are coming from the holding locations do you think it would be better to keep the default value as an empty string or as nil?
head_ref_force_pushed
by Christina Chortaria at 2021-05-04 17:18:48.mentioned
by None at 2021-05-04 20:04:15.subscribed
by None at 2021-05-04 20:04:15.Email is currently not working on ojs-prod. Here is how to reproduce the issue:
This will show an error message on the screen. This error message appears in /var/log/mail.log
:
May 4 19:20:41 ojs-prod1 postfix/smtpd[19972]: connect from localhost[::1]
May 4 19:20:41 ojs-prod1 postfix/smtpd[19972]: NOQUEUE: reject: RCPT from localhost[::1]: 550 5.1.1<EMAIL_ADDRESS>Recipient address rejected: User unknown in local recipient table<EMAIL_ADDRESS><EMAIL_ADDRESS>proto=ESMTP<EMAIL_ADDRESS>Recipient address rejected: User unknown in local recipient table<EMAIL_ADDRESS><EMAIL_ADDRESS>proto=ESMTP helo=<openpublishing.princeton.edu>
May 4 19:20:41 ojs-prod1 postfix/smtpd[19972]: disconnect from localhost[::1] ehlo=1 mail=1 rcpt=0/1 quit=1 commands=3/4
#
# Ansible managed
#
# Global Postfix configuration file. This file lists only a subset
# of all parameters. For the syntax, and for a complete parameter
# list, see the postconf(5) manual page (command: "man 5 postconf").
#
# For common configuration examples, see BASIC_CONFIGURATION_README
# and STANDARD_CONFIGURATION_README. To find these documents, use
# the command "postconf html_directory readme_directory", or go to
# http://www.postfix.org/.
#
# For best results, change no more than 2-3 parameters at a time,
# and test if Postfix still works after every change.
# SOFT BOUNCE
#
# The soft_bounce parameter provides a limited safety net for
# testing. When soft_bounce is enabled, mail will remain queued that
# would otherwise bounce. This parameter disables locally-generated
# bounces, and prevents the SMTP server from rejecting mail permanently
# (by changing 5xx replies into 4xx replies). However, soft_bounce
# is no cure for address rewriting mistakes or mail routing mistakes.
#
#soft_bounce = no
# LOCAL PATHNAME INFORMATION
#
# The queue_directory specifies the location of the Postfix queue.
# This is also the root directory of Postfix daemons that run chrooted.
# See the files in examples/chroot-setup for setting up Postfix chroot
# environments on different UNIX systems.
#
queue_directory = /var/spool/postfix
# The command_directory parameter specifies the location of all
# postXXX commands.
#
command_directory = /usr/sbin
# The daemon_directory parameter specifies the location of all Postfix
# daemon programs (i.e. programs listed in the master.cf file). This
# directory must be owned by root.
#
daemon_directory = /usr/lib/postfix/sbin
# The data_directory parameter specifies the location of Postfix-writable
# data files (caches, random numbers). This directory must be owned
# by the mail_owner account (see below).
#
data_directory = /var/lib/postfix
# QUEUE AND PROCESS OWNERSHIP
#
# The mail_owner parameter specifies the owner of the Postfix queue
# and of most Postfix daemon processes. Specify the name of a user
# account THAT DOES NOT SHARE ITS USER OR GROUP ID WITH OTHER ACCOUNTS
# AND THAT OWNS NO OTHER FILES OR PROCESSES ON THE SYSTEM. In
# particular, don't specify nobody or daemon. PLEASE USE A DEDICATED
# USER.
#
mail_owner = postfix
# The default_privs parameter specifies the default rights used by
# the local delivery agent for delivery to external file or command.
# These rights are used in the absence of a recipient user context.
# DO NOT SPECIFY A PRIVILEGED USER OR THE POSTFIX OWNER.
#
#default_privs = nobody
# INTERNET HOST AND DOMAIN NAMES
#
# The myhostname parameter specifies the internet hostname of this
# mail system. The default is to use the fully-qualified domain name
# from gethostname(). $myhostname is used as a default value for many
# other configuration parameters.
#
#myhostname = host.domain.tld
#myhostname = virtual.domain.tld
#myhostname = ojs-prod1.princeton.edu
myhostname = openpublishing.princeton.edu
# The mydomain parameter specifies the local internet domain name.
# The default is to use $myhostname minus the first component.
# $mydomain is used as a default value for many other configuration
# parameters.
#
#mydomain = domain.tld
mydomain = princeton.edu
# SENDING MAIL
#
# The myorigin parameter specifies the domain that locally-posted
# mail appears to come from. The default is to append $myhostname,
# which is fine for small sites. If you run a domain with multiple
# machines, you should (1) change this to $mydomain and (2) set up
# a domain-wide alias database that aliases each user to
#<EMAIL_ADDRESS>#
# For the sake of consistency between sender and recipient addresses,
# myorigin also specifies the default domain name that is appended
# to recipient addresses that have no @domain part.
#
#myorigin = $myhostname
#myorigin = $mydomain
myorigin = /etc/mailname
# RECEIVING MAIL
# The inet_interfaces parameter specifies the network interface
# addresses that this mail system receives mail on. By default,
# the software claims all active interfaces on the machine. The
# parameter also controls delivery of mail to<EMAIL_ADDRESS>#
# See also the proxy_interfaces parameter, for network addresses that
# are forwarded to us via a proxy or network address translator.
#
# Note: you need to stop/start Postfix when this parameter changes.
#
#inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
#inet_interfaces = localhost
inet_interfaces = all
# Enable IPv4, and IPv6 if supported
inet_protocols = all
# The proxy_interfaces parameter specifies the network interface
# addresses that this mail system receives mail on by way of a
# proxy or network address translation unit. This setting extends
# the address list specified with the inet_interfaces parameter.
#
# You must specify your proxy/NAT addresses when your system is a
# backup MX host for other domains, otherwise mail delivery loops
# will happen when the primary MX host is down.
#
#proxy_interfaces =
#proxy_interfaces = <IP_ADDRESS>
# The mydestination parameter specifies the list of domains that this
# machine considers itself the final destination for.
#
# These domains are routed to the delivery agent specified with the
# local_transport parameter setting. By default, that is the UNIX
# compatible delivery agent that lookups all recipients in /etc/passwd
# and /etc/aliases or their equivalent.
#
# The default is $myhostname + localhost.$mydomain. On a mail domain
# gateway, you should also include $mydomain.
#
# Do not specify the names of virtual domains - those domains are
# specified elsewhere (see VIRTUAL_README).
#
# Do not specify the names of domains that this machine is backup MX
# host for. Specify those names via the relay_domains settings for
# the SMTP server, or use permit_mx_backup if you are lazy (see
# STANDARD_CONFIGURATION_README).
#
# The local machine is always the final destination for mail addressed
# to<EMAIL_ADDRESS>of an interface that the mail system
# receives mail on (see the inet_interfaces parameter).
#
# Specify a list of host or domain names, /file/name or type:table
# patterns, separated by commas and/or whitespace. A /file/name
# pattern is replaced by its contents; a type:table is matched when
# a name matches a lookup key (the right-hand side is ignored).
# Continue long lines by starting the next line with whitespace.
#
# See also below, section "REJECTING MAIL FOR UNKNOWN LOCAL USERS".
#
#mydestination = $myhostname, localhost.$mydomain, localhost
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
# mail.$mydomain, www.$mydomain, ftp.$mydomain
mydestination = princeton.edu, openpublishing.princeton.edu, localhost.princeton.edu, localhost, ojs-prod1.princeton.edu, ojs-prod.princeton.edu
# REJECTING MAIL FOR UNKNOWN LOCAL USERS
#
# The local_recipient_maps parameter specifies optional lookup tables
# with all names or addresses of users that are local with respect
# to $mydestination, $inet_interfaces or $proxy_interfaces.
#
# If this parameter is defined, then the SMTP server will reject
# mail for unknown local users. This parameter is defined by default.
#
# To turn off local recipient checking in the SMTP server, specify
# local_recipient_maps = (i.e. empty).
#
# The default setting assumes that you use the default Postfix local
# delivery agent for local delivery. You need to update the
# local_recipient_maps setting if:
#
# - You define $mydestination domain recipients in files other than
# /etc/passwd, /etc/aliases, or the $virtual_alias_maps files.
# For example, you define $mydestination domain recipients in
# the $virtual_mailbox_maps files.
#
# - You redefine the local delivery agent in master.cf.
#
# - You redefine the "local_transport" setting in main.cf.
#
# - You use the "luser_relay", "mailbox_transport", or "fallback_transport"
# feature of the Postfix local delivery agent (see local(8)).
#
# Details are described in the LOCAL_RECIPIENT_README file.
#
# Beware: if the Postfix SMTP server runs chrooted, you probably have
# to access the passwd file via the proxymap service, in order to
# overcome chroot restrictions. The alternative, having a copy of
# the system passwd file in the chroot jail is just not practical.
#
# The right-hand side of the lookup tables is conveniently ignored.
# In the left-hand side, specify a bare username, an @domain.tld
# wild-card, or specify a<EMAIL_ADDRESS>address.
#
#local_recipient_maps = unix:passwd.byname $alias_maps
#local_recipient_maps = proxy:unix:passwd.byname $alias_maps
#local_recipient_maps =
# The unknown_local_recipient_reject_code specifies the SMTP server
# response code when a recipient domain matches $mydestination or
# ${proxy,inet}_interfaces, while $local_recipient_maps is non-empty
# and the recipient address or address local-part is not found.
#
# The default setting is 550 (reject mail) but it is safer to start
# with 450 (try again later) until you are certain that your
# local_recipient_maps settings are OK.
#
unknown_local_recipient_reject_code = 550
# TRUST AND RELAY CONTROL
# The mynetworks parameter specifies the list of "trusted" SMTP
# clients that have more privileges than "strangers".
#
# In particular, "trusted" SMTP clients are allowed to relay mail
# through Postfix. See the smtpd_recipient_restrictions parameter
# in postconf(5).
#
# You can specify the list of "trusted" network addresses by hand
# or you can let Postfix do it for you (which is the default).
#
# By default (mynetworks_style = subnet), Postfix "trusts" SMTP
# clients in the same IP subnetworks as the local machine.
# On Linux, this does works correctly only with interfaces specified
# with the "ifconfig" command.
#
# Specify "mynetworks_style = class" when Postfix should "trust" SMTP
# clients in the same IP class A/B/C networks as the local machine.
# Don't do this with a dialup site - it would cause Postfix to "trust"
# your entire provider's network. Instead, specify an explicit
# mynetworks list by hand, as described below.
#
# Specify "mynetworks_style = host" when Postfix should "trust"
# only the local machine.
#
#mynetworks_style = class
#mynetworks_style = subnet
#mynetworks_style = host
# Alternatively, you can specify the mynetworks list by hand, in
# which case Postfix ignores the mynetworks_style setting.
#
# Specify an explicit list of network/netmask patterns, where the
# mask specifies the number of bits in the network part of a host
# address.
#
# You can also specify the absolute pathname of a pattern file instead
# of listing the patterns here. Specify type:table for table-based lookups
# (the value on the table right-hand side is not used).
#
#mynetworks = <IP_ADDRESS>/28, <IP_ADDRESS>/8
#mynetworks = $config_directory/mynetworks
#mynetworks = hash:/etc/postfix/network_table
mynetworks = <IP_ADDRESS>/8
# The relay_domains parameter restricts what destinations this system will
# relay mail to. See the smtpd_recipient_restrictions description in
# postconf(5) for detailed information.
#
# By default, Postfix relays mail
# - from "trusted" clients (IP address matches $mynetworks) to any destination,
# - from "untrusted" clients to destinations that match $relay_domains or
# subdomains thereof, except addresses with sender-specified routing.
# The default relay_domains value is $mydestination.
#
# In addition to the above, the Postfix SMTP server by default accepts mail
# that Postfix is final destination for:
# - destinations that match $inet_interfaces or $proxy_interfaces,
# - destinations that match $mydestination
# - destinations that match $virtual_alias_domains,
# - destinations that match $virtual_mailbox_domains.
# These destinations do not need to be listed in $relay_domains.
#
# Specify a list of hosts or domains, /file/name patterns or type:name
# lookup tables, separated by commas and/or whitespace. Continue
# long lines by starting the next line with whitespace. A file name
# is replaced by its contents; a type:name table is matched when a
# (parent) domain appears as lookup key.
#
# NOTE: Postfix will not automatically forward mail for domains that
# list this system as their primary or backup MX host. See the
# permit_mx_backup restriction description in postconf(5).
#
#relay_domains = $mydestination
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_invalid_hostname, reject_non_fqdn_hostname, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_rbl_client sbl.spamhaus.org, reject_rbl_client cbl.abuseat.org, reject_rbl_client dul.dnsbl.sorbs.net, permit,
smtpd_sender_restrictions = reject_unknown_sender_domain,
# INTERNET OR INTRANET
# The relayhost parameter specifies the default host to send mail to
# when no entry is matched in the optional transport(5) table. When
# no relayhost is given, mail is routed directly to the destination.
#
# On an intranet, specify the organizational domain name. If your
# internal DNS uses no MX records, specify the name of the intranet
# gateway host instead.
#
# In the case of SMTP, specify a domain, host, host:port, [host]:port,
# [address] or [address]:port; the form [host] turns off MX lookups.
#
# If you're connected via UUCP, see also the default_transport parameter.
#
#relayhost = $mydomain
#relayhost = [gateway.my.domain]
#relayhost = [mailserver.isp.tld]
#relayhost = uucphost
#relayhost = [an.ip.add.ress]
relayhost = lib-ponyexpr.princeton.edu
# REJECTING UNKNOWN RELAY USERS
#
# The relay_recipient_maps parameter specifies optional lookup tables
# with all addresses in the domains that match $relay_domains.
#
# If this parameter is defined, then the SMTP server will reject
# mail for unknown relay users. This feature is off by default.
#
# The right-hand side of the lookup tables is conveniently ignored.
# In the left-hand side, specify an @domain.tld wild-card, or specify
# a<EMAIL_ADDRESS>address.
#
#relay_recipient_maps = hash:/etc/postfix/relay_recipients
# INPUT RATE CONTROL
#
# The in_flow_delay configuration parameter implements mail input
# flow control. This feature is turned on by default, although it
# still needs further development (it's disabled on SCO UNIX due
# to an SCO bug).
#
# A Postfix process will pause for $in_flow_delay seconds before
# accepting a new message, when the message arrival rate exceeds the
# message delivery rate. With the default 100 SMTP server process
# limit, this limits the mail inflow to 100 messages a second more
# than the number of messages delivered per second.
#
# Specify 0 to disable the feature. Valid delays are 0..10.
#
#in_flow_delay = 1s
# ADDRESS REWRITING
#
# The ADDRESS_REWRITING_README document gives information about
# address masquerading or other forms of address rewriting including
# username->Firstname.Lastname mapping.
# ADDRESS REDIRECTION (VIRTUAL DOMAIN)
#
# The VIRTUAL_README document gives information about the many forms
# of domain hosting that Postfix supports.
# "USER HAS MOVED" BOUNCE MESSAGES
#
# See the discussion in the ADDRESS_REWRITING_README document.
# TRANSPORT MAP
#
# See the discussion in the ADDRESS_REWRITING_README document.
# ALIAS DATABASE
#
# The alias_maps parameter specifies the list of alias databases used
# by the local delivery agent. The default list is system dependent.
#
# On systems with NIS, the default is to search the local alias
# database, then the NIS alias database. See aliases(5) for syntax
# details.
#
# If you change the alias database, run "postalias /etc/aliases" (or
# wherever your system stores the mail alias file), or simply run
# "newaliases" to build the necessary DBM or DB file.
#
# It will take a minute or so before changes become visible. Use
# "postfix reload" to eliminate the delay.
#
#alias_maps = dbm:/etc/aliases
alias_maps = hash:/etc/aliases
#alias_maps = hash:/etc/aliases, nis:mail.aliases
#alias_maps = netinfo:/aliases
# The alias_database parameter specifies the alias database(s) that
# are built with "newaliases" or "sendmail -bi". This is a separate
# configuration parameter, because alias_maps (see above) may specify
# tables that are not necessarily all under control by Postfix.
#
#alias_database = dbm:/etc/aliases
#alias_database = dbm:/etc/mail/aliases
alias_database = hash:/etc/aliases
#alias_database = hash:/etc/aliases, hash:/opt/majordomo/aliases
# ADDRESS EXTENSIONS (e.g., user+foo)
#
# The recipient_delimiter parameter specifies the separator between
# user names and address extensions (user+foo). See canonical(5),
# local(8), relocated(5) and virtual(5) for the effects this has on
# aliases, canonical, virtual, relocated and .forward file lookups.
# Basically, the software tries user+foo and .forward+foo before
# trying user and .forward.
#
#recipient_delimiter = +
# DELIVERY TO MAILBOX
#
# The home_mailbox parameter specifies the optional pathname of a
# mailbox file relative to a user's home directory. The default
# mailbox file is /var/spool/mail/user or /var/mail/user. Specify
# "Maildir/" for qmail-style delivery (the / is required).
#
#home_mailbox = Mailbox
#home_mailbox = Maildir/
# The mail_spool_directory parameter specifies the directory where
# UNIX-style mailboxes are kept. The default setting depends on the
# system type.
#
#mail_spool_directory = /var/mail
#mail_spool_directory = /var/spool/mail
# The mailbox_command parameter specifies the optional external
# command to use instead of mailbox delivery. The command is run as
# the recipient with proper HOME, SHELL and LOGNAME environment settings.
# Exception: delivery for root is done as $default_user.
#
# Other environment variables of interest: USER (recipient username),
# EXTENSION (address extension), DOMAIN (domain part of address),
# and LOCAL (the address localpart).
#
# Unlike other Postfix configuration parameters, the mailbox_command
# parameter is not subjected to $parameter substitutions. This is to
# make it easier to specify shell syntax (see example below).
#
# Avoid shell meta characters because they will force Postfix to run
# an expensive shell process. Procmail alone is expensive enough.
 This parameter
# has precedence over the mailbox_command, fallback_transport and
# luser_relay parameters.
#
# Specify a string of the form transport:nexthop, where transport is
# the name of a mail delivery transport defined in master.cf. The
# :nexthop part is optional. For more details see the sample transport
# configuration file.
#
# NOTE: if you use this feature for accounts not in the UNIX password
# file, then you must update the "local_recipient_maps" setting in
# the main.cf file, otherwise the SMTP server will reject mail for
# non-UNIX accounts with "User unknown in local recipient table".
#
# Cyrus IMAP over LMTP. Specify ``lmtpunix cmd="lmtpd"
# listen="/var/imap/socket/lmtp" prefork=0'' in cyrus.conf.
#mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp
# If using the cyrus-imapd IMAP server deliver local mail to the IMAP
# server using LMTP (Local Mail Transport Protocol), this is prefered
# over the older cyrus deliver program by setting the
# mailbox_transport as below:
#
# mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp
#
# The efficiency of LMTP delivery for cyrus-imapd can be enhanced via
# these settings.
#
# local_destination_recipient_limit = 300
# local_destination_concurrency_limit = 5
#
# Of course you should adjust these settings as appropriate for the
# capacity of the hardware you are using. The recipient limit setting
# can be used to take advantage of the single instance message store
# capability of Cyrus. The concurrency limit can be used to control
# how many simultaneous LMTP sessions will be permitted to the Cyrus
# message store.
#
# Cyrus IMAP via command line. Uncomment the "cyrus...pipe" and
# subsequent line in master.cf.
#mailbox_transport = cyrus
# The fallback_transport specifies the optional transport in master.cf
# to use for recipients that are not found in the UNIX passwd database.
# This parameter has precedence over the luser_relay parameter.
#
# Specify a string of the form transport:nexthop, where transport is
# the name of a mail delivery transport defined in master.cf. The
# :nexthop part is optional. For more details see the sample transport
# configuration file.
#
# NOTE: if you use this feature for accounts not in the UNIX password
# file, then you must update the "local_recipient_maps" setting in
# the main.cf file, otherwise the SMTP server will reject mail for
# non-UNIX accounts with "User unknown in local recipient table".
#
#fallback_transport = lmtp:unix:/var/lib/imap/socket/lmtp
#fallback_transport =
# The luser_relay parameter specifies an optional destination address
# for unknown recipients. By default, mail for unknown@$mydestination,
# unknown@[$inet_interfaces] or unknown@[$proxy_interfaces] is returned
# as undeliverable.
#
# The following expansions are done on luser_relay: $user (recipient
# username), $shell (recipient shell), $home (recipient home directory),
# $recipient (full recipient address), $extension (recipient address
# extension), $domain (recipient domain), $local (entire recipient
# localpart), $recipient_delimiter. Specify ${name?value} or
# ${name:value} to expand value only when $name does (does not) exist.
#
# luser_relay works only for the default Postfix local delivery agent.
#
# NOTE: if you use this feature for accounts not in the UNIX password
# file, then you must specify "local_recipient_maps =" (i.e. empty) in
# the main.cf file, otherwise the SMTP server will reject mail for
# non-UNIX accounts with "User unknown in local recipient table".
#
#luser_relay =<EMAIL_ADDRESS>#luser_relay =<EMAIL_ADDRESS>#luser_relay = admin+$local
# JUNK MAIL CONTROLS
#
# The controls listed here are only a very small subset. The file
# SMTPD_ACCESS_README provides an overview.
# The header_checks parameter specifies an optional table with patterns
# that each logical message header is matched against, including
# headers that span multiple physical lines.
#
# By default, these patterns also apply to MIME headers and to the
# headers of attached messages. With older Postfix versions, MIME and
# attached message headers were treated as body text.
#
# For details, see "man header_checks".
#
#header_checks = regexp:/etc/postfix/header_checks
# FAST ETRN SERVICE
#
# Postfix maintains per-destination logfiles with information about
# deferred mail, so that mail can be flushed quickly with the SMTP
# "ETRN domain.tld" command, or by executing "sendmail -qRdomain.tld".
# See the ETRN_README document for a detailed description.
#
# The fast_flush_domains parameter controls what destinations are
# eligible for this service. By default, they are all domains that
# this server is willing to relay mail to.
#
#fast_flush_domains = $relay_domains
# SHOW SOFTWARE VERSION OR NOT
#
# The smtpd_banner parameter specifies the text that follows the 220
# code in the SMTP server's greeting banner. Some people like to see
# the mail version advertised. By default, Postfix shows no version.
#
# You MUST specify $myhostname at the start of the text. That is an
# RFC requirement. Postfix itself does not care.
#
#smtpd_banner = $myhostname ESMTP $mail_name
#smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)
# PARALLEL DELIVERY TO THE SAME DESTINATION
#
# How many parallel deliveries to the same user or domain? With local
# delivery, it does not make sense to do massively parallel delivery
# to the same user, because mailbox updates must happen sequentially,
# and expensive pipelines in .forward files can cause disasters when
# too many are run at the same time. With SMTP deliveries, 10
# simultaneous connections to the same domain could be sufficient to
# raise eyebrows.
#
# Each message delivery transport has its XXX_destination_concurrency_limit
# parameter. The default is $default_destination_concurrency_limit for
# most delivery transports. For the local delivery agent the default is 2.
#local_destination_concurrency_limit = 2
#default_destination_concurrency_limit = 20
# DEBUGGING CONTROL
#
# The debug_peer_level parameter specifies the increment in verbose
# logging level when an SMTP client or server host name or address
# matches a pattern in the debug_peer_list parameter.
#
debug_peer_level = 2
# The debug_peer_list parameter specifies an optional list of domain
# or network patterns, /file/name patterns or type:name tables. When
# an SMTP client or server host name or address matches a pattern,
# increase the verbose logging level by the amount specified in the
# debug_peer_level parameter.
#
#debug_peer_list = <IP_ADDRESS>
#debug_peer_list = some.domain
# The debugger_command specifies the external command that is executed
# when a Postfix daemon program is run with the -D option.
#
# Use "command .. & sleep 5" so that the debugger can attach before
# the process marches on. If you use an X-based debugger, be sure to
# set up your XAUTHORITY environment variable before starting Postfix.
#
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
ddd $daemon_directory/$process_name $process_id & sleep 5
# If you can't use X, use this to capture the call stack when a
# daemon crashes. The result is in a file in the configuration
# directory, and is named after the process name and the process ID.
#
# debugger_command =
# PATH=/bin:/usr/bin:/usr/local/bin; export PATH; (echo cont;
# echo where) | gdb $daemon_directory/$process_name $process_id 2>&1
# >$config_directory/$process_name.$process_id.log & sleep 5
#
# Another possibility is to run gdb under a detached screen session.
# To attach to the screen sesssion, su root and run "screen -r
# <id_string>" where <id_string> uniquely matches one of the detached
# sessions (from "screen -list").
#
# debugger_command =
# PATH=/bin:/usr/bin:/sbin:/usr/sbin; export PATH; screen
# -dmS $process_name gdb $daemon_directory/$process_name
# $process_id & sleep 1
# INSTALL-TIME CONFIGURATION INFORMATION
#
# The following parameters are used when installing a new Postfix version.
#
# sendmail_path: The full pathname of the Postfix sendmail command.
# This is the Sendmail-compatible mail posting interface.
#
sendmail_path = /usr/sbin/sendmail.postfix
# newaliases_path: The full pathname of the Postfix newaliases command.
# This is the Sendmail-compatible command to build alias databases.
#
newaliases_path = /usr/bin/newaliases.postfix
# mailq_path: The full pathname of the Postfix mailq command. This
# is the Sendmail-compatible mail queue listing command.
#
mailq_path = /usr/bin/mailq.postfix
# setgid_group: The group for mail submission and queue management
# commands. This must be a group name with a numerical group ID that
# is not shared with other accounts, not even with the Postfix account.
#
setgid_group = postdrop
# html_directory: The location of the Postfix HTML documentation.
#
html_directory = no
# manpage_directory: The location of the Postfix on-line manual pages.
#
manpage_directory = /usr/share/man
# sample_directory: The location of the Postfix sample configuration files.
# This parameter is obsolete as of Postfix 2.1.
#
sample_directory = /usr/share/doc/postfix-2.10.1/samples
# readme_directory: The location of the Postfix README files.
#
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
# content_filter: An optional filter to classify content.
# Optional lookup tables with mappings from recipient address to (message delivery transport, next-hop destination).
# transport_maps = hash:/etc/postfix/transport
mailbox_size_limit = 0
recipient_delimiter = +
unassigned
by Bess Sadler at 2021-05-04 20:17:10.closed
by None at 2021-05-04 12:10:04.referenced
by Francis Kayiwa at 2021-05-04 12:11:49.merged
by Francis Kayiwa at 2021-05-04 12:11:49.closed
by Francis Kayiwa at 2021-05-04 12:11:49.head_ref_deleted
by Francis Kayiwa at 2021-05-04 12:11:49.referenced
by None at 2021-05-04 12:16:35.closed
by None at 2021-05-04 13:34:44.referenced
by None at 2021-05-04 13:34:45.referenced
by None at 2021-05-04 13:34:44.merged
by None at 2021-05-04 13:34:44.closed
by None at 2021-05-04 13:34:44.head_ref_deleted
by None at 2021-05-04 13:34:45.assigned
by Francis Kayiwa at 2021-05-04 20:21:20.review_requested
by Rebecca Sutton Koeser at 2021-05-04 20:13:02.referenced
by Trey Pendragon at 2021-05-04 00:15:36.merged
by Trey Pendragon at 2021-05-04 00:15:37.closed
by Trey Pendragon at 2021-05-04 00:15:37.head_ref_deleted
by Trey Pendragon at 2021-05-04 00:15:37.closed
by Bess Sadler at 2021-05-04 13:04:32.referenced
by Bess Sadler at 2021-05-04 13:04:32.merged
by Bess Sadler at 2021-05-04 13:04:32.closed
by Bess Sadler at 2021-05-04 13:04:32.head_ref_deleted
by Bess Sadler at 2021-05-04 13:04:33.referenced
by Bess Sadler at 2021-05-04 13:06:45.merged
by Bess Sadler at 2021-05-04 13:06:45.closed
by Bess Sadler at 2021-05-04 13:06:45.head_ref_deleted
by Bess Sadler at 2021-05-04 13:06:46.Awesome! And just to clarify, at the collection level, this information should display as the Storage note.
labeled
by Christa Cleeton at 2021-05-04 16:47:55.assigned
by Trey Pendragon at 2021-05-04 17:25:12.referenced
by Trey Pendragon at 2021-05-04 17:30:24.closed
by James R. Griffin III at 2021-05-04 18:14:23.deployed
by Trey Pendragon at 2021-05-04 17:35:24.deployed
by Trey Pendragon at 2021-05-04 17:53:29.referenced
by James R. Griffin III at 2021-05-04 18:14:23.merged
by James R. Griffin III at 2021-05-04 18:14:23.closed
by James R. Griffin III at 2021-05-04 18:14:23.head_ref_deleted
by James R. Griffin III at 2021-05-04 18:14:24.Coverage remained the same at 100.0% when pulling f4ea773ac91712e65af5553a4a53d7d8cfbc7135 on 880-record-not-found-404 into 9f17aab3a3ff093f36a949bc8649dbfed6f39d34 on main.
Thank you @eliotjordan . I fixed the 404. Another question is more about the layout. If we use the layout then it looks like:
and the Library logo positions with some offset in the navbar.
If the layout is false then it looks like:
I'm in favor of using the layout (1st screenshot). What do you think?
@christinach Looks better with the layout.
Ok I'll put it in!
@eliotjordan I updated it to use the library layout.
https://maps-staging.princeton.edu/catalog/stanford-th998sw3451notreal
mentioned
by Eliot Jordan at 2021-05-04 11:13:38.subscribed
by Eliot Jordan at 2021-05-04 11:13:38.review_requested
by Christina Chortaria at 2021-05-04 11:13:54.mentioned
by Christina Chortaria at 2021-05-04 14:30:14.subscribed
by Christina Chortaria at 2021-05-04 14:30:14.mentioned
by Eliot Jordan at 2021-05-04 14:57:42.subscribed
by Eliot Jordan at 2021-05-04 14:57:42.deployed
by Trey Pendragon at 2021-05-04 14:58:43.referenced
by Eliot Jordan at 2021-05-04 15:22:45.merged
by Eliot Jordan at 2021-05-04 15:22:45.closed
by Eliot Jordan at 2021-05-04 15:22:46.head_ref_deleted
by Eliot Jordan at 2021-05-04 15:22:46.closed
by Eliot Jordan at 2021-05-04 15:22:46.referenced
by Kevin Reiss at 2021-05-04 12:23:35.merged
by Kevin Reiss at 2021-05-04 12:23:35.closed
by Kevin Reiss at 2021-05-04 12:23:35.


Karen Kong
Software Engineer | Researcher | Highlander
Software Engineer | Researcher | Highlander
Welcome! My name is Karen Kong and I'm an undergraduate Computer Science student at the University of California, Riverside.
My high school's AP Computer Science class ignited my passion for solving challenges and expressing creativity through programming. From then on, my aspirations included earning a degree in computer science and working in the industry.
To me, there's no greater satisfaction than designing, developing, and debugging a piece of code that is then placed into action in a larger project. In my spare time, you'll find me crafting
planar graph algorithms and implementing system updates in the research lab and exploring Android application development.
| Language | Skill Level |
|---|---|
| C++ | Proficient |
| Java | Proficient |
| Python | Familiar |
| C# | Familiar |
| HTML/CSS | Familiar |
| JavaScript | Familiar |


--- layout: post title: 'Maze Generation: More weave mazes' post_id: 4 categories: - under the hood date: 2011-03-17 09:26:00.000000000 -06:00 author: Jamis permalink: 2011/3/17/maze-generation-more-weave-mazes.html summary: > A technique is demonstrated, giving finer configuration of weave density in random mazes, courtesy of Kruskal's algorithm ---
My previous post showed one way to create “weave mazes”, or mazes in which the passages weave over and under one another. The technique I showed was flexible, and could be implemented using several different maze algorithms, but it has (at least) one big drawback: it’s not predictable. You don’t know how many over/under crossings you’ll get until the maze has been generated, and for small mazes (5×5, for instance) you may very often get no crossings at all.
In the comment thread for that post, Robin Houston described an alternate algorithm. Instead of building the crossings as you generate the maze, you do it as a preprocessing step. You scatter crossings (either at random, or deliberately) across the maze, and then generate the maze so that they connect correctly.
Sounds like it could be tricky, yeah? You’ve got all these independent connections, like little graphs floating around, all disjoint... If only there were a way to generate a maze by connecting disjoint trees into a single graph…
What’s that? Oh, right! Kruskal’s algorithm does just that! Let’s take a look at how easy Kruskal’s makes this.
I’m not going to review Kruskal’s algorithm here. If you don’t remember the details, I strongly recommend you read (or re-read) my article on Kruskal’s algorithm. Don’t worry, I’ll wait.
Seriously, read it. The rest of this post won’t make much sense unless you understand how Kruskal’s works.
Got it? Alright, let’s proceed.
So, let’s assume you’ve got your blank grid, and you’ve set it up (just like Kruskal’s wants) so that each cell is the root of its own (one-node) tree. You’re about to generate the maze…
First, though, we do the preprocessing step: let’s scatter over/under crossings about the grid. We have a few constraints:
So, we place a crossing. We randomly decide whether the over-passage is north/south or east/west, and then carve the appropriate values into the grid.
However, since we’re dealing with Kruskal’s algorithm, we also need to update the connection sets, and then remove the relevant edges from the edge set. Because we don’t allow adjacent crossings, we don’t ever have to worry about things connecting directly to the cross-over cells (this is why allowing adjacent crossings gets complicated). So, to update the sets, we just join the north/south cells, and the east/west cells. And then we remove the edges connecting the cross-over cell, and its adjacent cells.
A lot of words, but not so much work, in practice!
Once you’ve set all the over/under crossings, you’re ready to actually generate the maze. And the ahem amazing thing about Kruskal’s algorithm is, if you’ve correctly handled the edges and connections in the preprocessing step, you can run it without modification at this stage. The result will be a perfect, weave maze!
For your enjoyment, here are some demos to play with. Try the different settings to see how the output changes: particularly, notice how Kruskal’s using the naive “weave as you go” approach generates far fewer crossings (on average) than the approach described here.
Recursive Backtracker (in-process weave):
Kruskal's (in-process weave):
Kruskal's (pre-processed weave):
Density:
Since the only thing that changes between this weave technique and the non-weave Kruskal’s algorithm is the pre-processing step, I’m just going to go over the pre-processing step here.
You will probably also want to use a rendering method that allows you to unambiguously show the over/under crossings, such as the method using unicode characters that I described in my previous article.
Now, there are a lot of ways you could go about scattering crossings across the grid. For simplicity, I’m going to just iterate over each cell and randomly decide whether a crossing should be placed there. (This makes it easier to parameterize the process, allowing you to provide a “density” parameter to control how many crossings get placed.)
So, the first thing I do is just iterate over the possible cells:
1 2 3 4 5 |
1.upto(height-2) do |cy| 1.upto(width-2) do |cx| # ... end end |
We start at 1 and go to n-2, because of the first constraint: crossings cannot be placed on the grid boundary.
Within the loop, I then use the “density” parameter (an integer from 0 to 100) to determine whether to skip this cell or not:
next unless rand(100) < density |
Next, I compute the coordinates of the adjacent cells, and then check to make sure the cell really is eligible for a crossing:
1 2 3 4 5 6 7 8 |
nx, ny = cx, cy-1 wx, wy = cx-1, cy ex, ey = cx+1, cy sx, sy = cx, cy+1 next if grid[cy][cx] != 0 || sets[ny][nx].connected?(sets[sy][sx]) || sets[ey][ex].connected?(sets[wy][wx]) |
(Remember that sets
is a two-dimensional array of Tree objects that allow us to quickly query and join sets.)
If the grid at the chosen point is non-zero, then (by implication) we are adjacent to another crossing, and that isn’t allowed. And if the north and south sets are already connected, or the east and west sets, then we can’t allow a crossing here either (lest we introduce a loop into the graph).
Now that the sets have been updated, we can carve the new passages into the grid:
1 2 3 4 5 6 7 8 9 10 |
if rand(2) == 0 grid[cy][cx] = E|W|U else grid[cy][cx] = N|S|U end grid[ny][nx] |= S if (grid[ny][nx] & U) == 0 grid[wy][wx] |= E if (grid[wy][wx] & U) == 0 grid[ey][ex] |= W if (grid[ey][ex] & U) == 0 grid[sy][sx] |= N if (grid[sy][sx] & U) == 0 |
Recall that the U constant is just used to indicate the presence of an “under” passage. Thus, “E|W|U” means an east/west passage with an implied north/south passage beneath it, and “N|S|U” means a north/south passage with an implied east/west passage beneath it.
Further, we only carve on an adjacent passage if it doesn’t already have the “under” bit set. (If it does, then it is already a four-way crossing, and the passage we’re trying to add is already present, either explicitly or implicitly.)
Finally, we just need to update the edge list, to account for the edges we’ve now implicitly processed by adding this crossing:
1 2 3 4 5 |
edges.delete_if do |x, y, dir| (x == cx && y == cy) || (x == ex && y == ey && dir == W) || (x == sx && y == sy && dir == N) end |
Remember that the edge list is just a collection of 3-tuples, with each tuple consisting of the x and y coordinates of a cell, and the direction that the edge exits that cell. It only contains edges that exit cells to the west, or the north (otherwise, we’d get duplicate edges: west from cell x is the same edge as east from cell x+1).
Thus, we’re deleting any edge connecting to the crossing cell itself, the west-facing edge from the eastern cell, and the north-facing edge from the southern cell.
When these loops finish, you’ll have a grid containing randomly-scattered crossings, ready for Kruskal’s algorithm to finish up.
This approach allows you to have weave mazes with a much higher density of crossings than the in-process approach. However, while the in-process approach can generate weave mazes with adjacent crossings, the algorithm described here cannot. I’ve spent some time trying to fix this flaw, but quickly found myself mired in complexity: I’m hoping brighter minds than mine can find an elegant solution to this!
Still, the biggest lesson I took away from this experience is this: it pays to know multiple different ways to solve a problem. I’m not a big fan of Kruskal’s algorithm in general (I don’t like the esthetic of the mazes it generates), but if I had never bothered to learn how Kruskal’s operates, I would never have been able to recognize it’s suitability for connecting the pre-processed crossings.
Stated more generally: the key to appearing smart is not knowing everything, but rather knowing the right thing.
Just because an algorithm may not be your favorite way of solving a problem most times, does not mean it won’t eventually be the best way to solve a problem. You just wait: one of these days I’ll encounter a problem while writing a web app that one of these maze algorithms will be perfect for!
So, give this algorithm a try, if for no other reason than it’s good exercise! And we all know exercise is good for you. ;) My own implementation is given below:
Enjoy!


Zhengzhou Commodities Exchange (Code: ZCE)
Agriculture and commodities futures from ZCE, with history spanning almost a decade for select futures.


Page maintained by Ke-Sen Huang.
If you have additions or changes, send an e-mail.
Note that when possible I link to the page containing the link to the actual PDF or PS of the preprint.
I prefer this as it gives some context to the paper and avoids possible copyright problems with direct linking.
Thus you may need to search on the page to find the actual document.
Paper Abstract
Author Preprint
Paper Video
Paper Presentation
Paper Images
Paper Data
Demo Program or Source Code
Related Links
Changelog
Image Processing(Session 1)
- Dynamic Comics for Hierarchical Abstraction of 3D Animation Data
-
Myung Geol Choi,
Seung-Tak Noh,
Taku Komura,
Takeo Igarashii
- Ontology-based Model for Chinese Calligraphy Synthesis
-
Yang Xia, Jiangqin Wu, Pengcheng Gao, Yuan Lin, Tianjiao Mao
Animation(Session 1)
- A GPU-based Streaming Algorithm for High-Resolution Cloth Simulation
-
Min Tang,
Ruofeng Tong,
Rahul Narain,
Chang Meng,
Dinesh Manocha
- Constrainable Multigrid for Cloth
-
Inyong Jeon,
Hyeong-Seok Ko
- Synthesizing Two-character Interactions by Merging Captured Interaction Samples with their Spacetime Relationships
-
Jacky C. P. Chan,
Jeff K. T. Tang,
Howard Leung
- Interactive Learning for Point-Cloud Motion Segmentation
-
Yerry Sofer,
Tal Hassner,
Andrei Sharf
- Topology Aware Data-Driven Inverse Kinematics
-
Edmond S. L. Ho,
Hubert P. H. Shum,
Yiu-ming Cheung,
P. C. Yuen
TVCG Papers(Session 1)
- PoseShop: A Human Image Database and Personalized Content Synthesis
-
Tao Chen,
Ping Tan,
Li-Qian Ma,
Ming-Ming Cheng,
Ariel Shamir,
Shi-Min Hu
- Generalized Anisotropic Stratified Surface Sampling
-
Jon Quinn,
Frank Langbein,
Yu-Kun Lai,
Ralph Martin
- Surface- and Contour-Preserving Origamic Architecture Paper Pop-Ups
-
Sang N. Le,
Su-Jun Leow, Tuong-Vu Le-Nguyen, Conrado Ruiz Jr.,
Kok-Lim Low
- A Local Model of Light Interaction with Transparent Crystalline Media
-
Victor A. Debelov,
Dmitry S. Kozlov
Image Processing (Session 2)
- Stroke-guided Image Synthesis for Skeletal Structure Editing
-
Sheng-Jie Luo,
Chin-Yu Lin,
I-Chao Shen,
Bing-Yu Chen
- Hair Interpolation for Portrait Morphing
-
Yanlin Weng,
Lvdi Wang,
Xiao Li,
Menglei Chai,
Kun Zhou
- Garment Modeling from a Single Image
-
Bin Zhou, Xiaowu Chen, Qiang Fu, Kan Guo,
Ping Tan
- Fast Image-Based Modeling of Astronomical Nebulae
-
Stephan Wenger,
Dirk Lorenz,
Marcus Magnor
Rendering (Session 1)
- Lighting Simulation of Augmented Outdoor Scene Based on a Legacy Photograph
-
Guanyu Xing, Xuehong Zhou,
Qunsheng Peng,
Yanli Liu, Xueying Qin
- Eye-Centered Color Adaptation in Global Illumination
-
Adrien Gruson,
Mickael Ribardiere,
Remi Cozot
- Robust Denoising using Feature and Color Information
-
Fabrice Rousselle,
Marco Manzi,
Matthias Zwicker
- Second-Order Approximation for Variance Reduction in Multiple Importance Sampling
-
Heqi Lu,
Romain Pacanowski,
Xavier Granier
Image Processing (Session 3)
- Artistic QR Code Embellishment
-
Yi-Shan Lin,
Sheng-Jie Luo,
Bing-Yu Chen
- Interactive Physics-based Ink Splattering Art Creation
-
Eugene Lei, Ying-Chieh Chen,
Hsiang-Ting (Tim) Chen,
Chun-Fa Chang
Geometry (Session 1)
- Modeling by Drawing with Shadow Guidance
-
Lubin Fan, Ruimin Wang, Linlin Xu,
Jiansong Deng,
Ligang Liu
- Soft Folding
-
Lifeng Zhu,
Takeo Igarashii,
Jun Mitani
- Guided Real-Time Scanning of Indoor Objects
-
Young Min Kim,
Niloy J. Mitra,
Qixing Huang,
Leonidas Guibas
- TrayGen: Arranging Objects for Exhibition and Packaging
-
Yongliang Yang,
Qixing Huang
- The POP Buffer: Rapid Progressive Clustering by Geometry Quantization
-
Max Limper, Yvonne Jung, Johannes Behr,
Marc Alexa
Animation (Session 2)
- A Semi-Lagrangian Closest Point Method for Deforming Surfaces
-
Stefan Auer,
Rudiger Westermann
- Implicit Integration for Particle-based Simulation of Elasto-plastic Solids
-
Yahan Zhou,
Zhaoliang Lun,
Evangelos Kalogerakis,
Rui Wang
- Combustion Waves on the Point Set Surface
-
SoHyeon Jeong,
Chang-Hun Kim
- Efficient Smoke Simulation on Curvilinear Grids
-
Vinicius C. Azevedo,
Manuel M. Oliveira
Image Processing (Session 4)
- A Progressive Tri-level Segmentation Approach for Topology-Change-Aware Video Matting
-
Jinlong Ju,
Jue Wang,
Yebin Liu,
Haoqian Wang,
Qionghai Dai
- Learning and Applying Color Styles From Feature Films
-
Su Xue,
Aseem Agarwala,
Julie Dorsey,
Holly Rushmeier
- Multiplane Video Stabilization
-
Zhong-Qiang Wang,
Lei Zhang,
Hua Huang
- Evaluation of Tone Mapping Operators for HDR-Video
-
Gabriel Eilertsen,
Robert Wanat, ,
Rafal Mantiuk, ,
Jonas Unger
Image Processing (Session 5)
- Animated 3D Line Drawings with Temporal Coherence
-
Xiang Xu,
Hock Soon Seah,
Chee Kwang Quah
- Still-Frame Simulation for Fire Effects of Images
-
Minjung Son,
Byungmoon Kim,
Gregg Wilensky,
Seungyong Lee
Rendering (Session 2)
- Boundary-Aware Extinction Mapping
-
Pascal Gautron,
Cyril Delalandre,
Jean-Eudes Marvie,
Pascal Lecocq
- Adaptive Ray-bundle Tracing with Memory Usage Prediction: Efficient Global Illumination in Large Scenes
-
Yusuke Tokuyoshi,
Takashi Sekine, Tiago da Silva, Takashi Kanai
- A Programmable Graphics Processor based on Partial Stream Rewriting
-
Lars Middendorf,
Christian Haubelt
- Improving Memory Space Efficiency of Kd-tree for Real-time Ray Tracing
-
Byeongjun Choi, Byungjoon Chang,
Insung Ihm
- Level-of-Detail Streaming and Rendering using Bidirectional Sparse Virtual Texture Functions
-
Christopher Schwartz,
Roland Ruiters,
Reinhard Klein
Geometry (Session 2)
- Symmetry Robust Descriptor for Non-Rigid Surface Matching
-
Zhiyuan Zhang,
KangKang Yin,
Kelvin W.C. Foong
- Polar NURBS Surface with Curvature Continuity
-
Kan-Le Shi, Jun-Hai Yong, Lei Tang, Jia-Guang Sun, Jean-Claude Paul
- Coarse-to-Fine Normal Filtering for Feature-Preserving Mesh Denoising Based on Isotropic Subneighborhoods
-
Lei Zhu, Mingqiang Wie, Jinze Yu,Weiming Wang, Jing Qin,
Pheng-Ann Heng
- As-Rigid-As-Possible Distance Field Metamorphosis
-
Yanlin Weng, Menglei Chai,
Weiwei Xu,
Yiying Tong,
Kun Zhou
Image Processing (Session 6)
- An Efficient and Scalable Image Filtering Framework Using VIPS Fusion
-
Jun Zhang, Xiuhong Chen, Yan Zhao, H. Li
- Learning to Predict Localized Distortions in Rendered Images
-
Martin Cadik,
Robert Herzog,
Rafal Mantiuk,
Radoslaw Mantiuk,
Karol Myszkowski,
Hans-Peter Seidel
- EnvyDepth: An Interface for Recovering Local Natural Illumination from Environment Maps
-
Francesco Banterle,
Marco Callieri,
Matteo Dellepiane,
Massimiliano Corsini,
Fabio Pellacini,
Roberto Scopigno
- Efficient Shadow Removal Using Subregion Matching Illumination Transfer
-
Chunxia Xiao,
Donglin Xiao, Ling Zhang, Lin Chen
TVCG Papers (Session 2)
- Double-Sided 2.5D Graphics
-
Chih-Kuo Yeh, Peng Song, Peng-Yen Lin, Chi-Wing Fu, Chao-Hung Lin,
Tong-Yee Lee
- Change Blindness Images
-
Li-Qian Ma,
Kun Xu,
Tien-Tsin Wong,
Bi-Ye Jiang,
Shi-Min Hu
kesen.huang@gmail.com


Did you know that the {{ foreign_word(language.name) }} language doesn't have words for "male" and "female"? The culture, which has flexible gender roles and unisex fashion trends, reflects this as well.


Class: ActionView::LookupContext
| Relationships & Source Files | |
| Namespace Children | |
|
Modules:
| |
|
Classes:
| |
| Super Chains via Extension / Inclusion / Inheritance | |
|
Instance Chain:
|
|
| Inherits: | Object |
| Defined in: | actionview/lib/action_view/lookup_context.rb |
Overview
LookupContext
is the object responsible for holding all information required for looking up templates, i.e. view paths and details. LookupContext
is also responsible for generating a key, given to view paths, used in the resolver cache lookup. Since this key is generated only once during the request, it speeds up all cache accesses.
Constant Summary
Accessors
- Included
Class Method Summary
Instance Attribute Summary
-
#formats=(values)
writeonly
Override formats= to expand [“/”] values and automatically add
:html
as fallback to:js
. -
#locale
rw
Override locale to return a symbol instead of array.
-
#locale=(value)
rw
Overload locale= to also set the
I18n.locale
. - #prefixes rw
- #registered_details rw
- #rendered_format rw
ViewPaths
- Included
DetailsCache
- Included
Instance Method Summary
ViewPaths
- Included
| #any_templates?, | |
| #append_view_path | Append a path to the list of view paths for the current |
| #details_for_lookup, | |
| #lookup_context |
|
| #prepend_view_path | Prepend a path to the list of view paths for the current |
| #template_exists?, | |
| #_prefixes | The prefixes used in render “foo” shortcuts. |
DetailsCache
- Included
| #disable_cache | Temporary skip passing the details_key forward. |
| #_set_detail, | |
| #details_key | Calculate the details key. |
Constructor Details
.new(view_paths, details = {}, prefixes = []) ⇒ LookupContext
# File 'actionview/lib/action_view/lookup_context.rb', line 216
def initialize(view_paths, details = {}, prefixes = []) @details_key = nil @digest_cache = nil @cache = true @prefixes = prefixes @details = initialize_details({}, details) @view_paths = build_view_paths(view_paths) end
Class Method Details
.register_detail(name, &block)
[ GitHub ]# File 'actionview/lib/action_view/lookup_context.rb', line 21
def self.register_detail(name, &block) registered_details << name Accessors::DEFAULT_PROCS[name] = block Accessors.define_method(:"default_#{name}", &block) Accessors.module_eval <<-METHOD, __FILE__, __LINE__ + 1 def #{name} @details[:#{name}] || [] end def #{name}=(value) value = value.present? ? Array(value) : default_#{name} _set_detail(:#{name}, value) if value != @details[:#{name}] end METHOD end
Instance Attribute Details
#formats=(values) (writeonly)
Override formats= to expand [“/”] values and automatically add :html
as fallback to :js
.
# File 'actionview/lib/action_view/lookup_context.rb', line 247
def formats=(values) if values values = values.dup values.concat(default_formats) if values.delete "*/*" values.uniq! invalid_values = (values - Template::Types.symbols) unless invalid_values.empty? raise ArgumentError, "Invalid formats: #{invalid_values.map(&:inspect).join(", ")}" end if values == [:js] values << :html @html_fallback_for_js = true end end super(values) end
#locale (rw)
Override locale to return a symbol instead of array.
# File 'actionview/lib/action_view/lookup_context.rb', line 267
def locale @details[:locale].first end
#locale=(value) (rw)
Overload locale= to also set the I18n.locale
. If the current I18n.config
object responds to original_config, it means that it has a copy of the original ::I18n
configuration and it’s acting as proxy, which we need to skip.
#prefixes (rw)
[ GitHub ]# File 'actionview/lib/action_view/lookup_context.rb', line 16
attr_accessor :prefixes, :rendered_format
#registered_details (rw)
[ GitHub ]# File 'actionview/lib/action_view/lookup_context.rb', line 18
singleton_class.attr_accessor :registered_details
#rendered_format (rw)
[ GitHub ]# File 'actionview/lib/action_view/lookup_context.rb', line 16
attr_accessor :prefixes, :rendered_format
Instance Method Details
#digest_cache
[ GitHub ]# File 'actionview/lib/action_view/lookup_context.rb', line 226
def digest_cache @digest_cache ||= DetailsKey.digest_cache(@details) end
#initialize_details(target, details) (private)
[ GitHub ]# File 'actionview/lib/action_view/lookup_context.rb', line 237
def initialize_details(target, details) LookupContext.registered_details.each do |k| target[k] = details[k] || Accessors::DEFAULT_PROCS[k].call end target end
#with_prepended_formats(formats)
[ GitHub ]# File 'actionview/lib/action_view/lookup_context.rb', line 230
def with_prepended_formats(formats) details = @details.dup details[:formats] = formats self.class.new(@view_paths, details, @prefixes) end


Please enabled Javascript before using this page.
Unfortunately a modern browser such as Chrome, Firefox or Internet Explorer 11 is required to generate passphrases.
Share: Link E-mail Twitter
Unfortunately a modern browser such as Chrome, Firefox or Internet Explorer 11 is required to compose messages.


'Absolute shit': Reus ashamed as Dortmund come from 3-0 down to earn dramatic draw
Under-pressure Dortmund held to disappointing point by the Bundesliga’s bottom side.
by The42 TeamMARCO REUS SAID he was ‘ashamed’ of Borussia Dortmund’s performance in a 3-3 draw at home to Paderborn despite his late equaliser salvaging a point, branding the club’s display “absolute shit”.
Dortmund, beaten 4-0 away to Bayern Munich in their last match before the international break, were 3-0 down at half-time in Friday’s clash against the Bundesliga’s bottom side.
Streli Mamba struck twice and Gerrit Holtmann was also on target for Steffen Baumgart’s team, while Dortmund lost striker Paco Alcacer to injury before the interval.
Dortmund improved after the break, with Jadon Sancho reducing the deficit two minutes after the restart, and Axel Witsel gave the hosts further hope by scoring with six minutes to go.
Sancho then crossed for Reus to nod home the leveller in the second minute of added time to spare Dortmund an embarrassing defeat, though the captain was unimpressed with his side.
“We can never play like that again,” he told DAZN after Dortmund missed the chance to move up to second place in the table.
“We don’t know what happened there. We are ashamed, we must never perform like that again. That was all absolute shit.”
Pressure has been growing on Lucien Favre, whose side came from two goals down to beat Inter in the Champions League this month, but Reus defended the under-fire Dortmund coach.
“The coach puts us in a great position every time. We’re responsible for putting our performance on the pitch, and we do not have to talk about the coach, but about us,” the forward said.
“If 80,000 people come here on a Friday night, we cannot offer that.”
Dortmund will be eight points off the top of the table if Borussia Monchengladbach win at Union Berlin on Saturday.
The draw means that Dortmund spurned the chance to – at least temporarily – go second in the standings above Bayern, Freiburg and Leipzig and move within three points of league leaders Gladbach.
Favre’s side now face a tough trip to Barcelona in the Champions League, before travelling to face Hertha Berlin next weekend as they look to get their domestic campaign back on track.


Free Shipping
on orders over $50
{{#if products.featured}}
{{> components/products/featured products=products.featured columns=theme_settings.homepage_featured_products_column_count}}
{{/if}}
--- products: new: limit: {{theme_settings.homepage_new_products_count}} featured: limit: {{theme_settings.homepage_featured_products_count}} top_sellers: limit: {{theme_settings.homepage_top_products_count}} carousel: {{theme_settings.homepage_show_carousel}} blog: recent_posts: limit: {{theme_settings.homepage_blog_posts_count}} --- {{#partial "page"}} {{#each shipping_messages}} {{> components/common/alert-info message}} {{/each}}


abstract class NotaryService : SingletonSerializeAsToken
Query |
Interfaces for the request and result formats of queries supported by notary services. To implement a new query, you must: interface Query |
<init> |
NotaryService() |
keyManagementService |
lateinit var keyManagementService: KeyManagementService |
memberLookupService |
lateinit var memberLookupService: MemberLookupService |
notaryIdentityKey |
abstract val notaryIdentityKey: PublicKey |
createServiceFlow |
Produces a notary service flow which has the corresponding sends and receives as NotaryClientFlow. abstract fun createServiceFlow(otherPartySession: FlowSession): Flow<Void?> |
processQuery |
Processes a Query.Request and returns a Query.Result. open fun processQuery(query: Request): Result |
start |
abstract fun start(): Unit |
stop |
abstract fun stop(): Unit |


Page order affects navigation in an intuitive fashion. When viewing a comic laid out from left to right, navigating right moves to the next page. In a comic laid out right to left, navigating left moves to the next page.
Page order affects navigation even when pages are displayed singly.
Scrolling still works as expected until the edge of a page is reached, at which point a page turn occurs. In Fit to Window scaling mode the page turn is instant.
You have to enable "Enable swipe" in preferences to use swipe navigation.
There are three methods for doing this.
At the bottom of the comic window there is a progress bar, click within it to move to any point in the comic.
Hitting enter or selecting Jump to Page from the Go menu will bring up a dialog box where you can type a page number. Hitting enter will move to the chosen page.
This brings up a grid displaying all available pages in a session. Clicking on a thumbnail will move you directly to the previewed page and close the thumbnail view.


Home
(current)
About
Contact
Work
Illustrations
Photography
Projects
ILLUSTRATOR UND KÜNSTLERIN
IRINA SCHÄFER
photography
projects
illustrations


Hello “world”…
The three wise monkeys […] sometimes called the three mystic apes—are a pictorial maxim. Together they embody the proverbial principle to (“see no evil, hear no evil, speak no evil”).


Mushrooms - P. Cubensis
I had absoloutely nothing to do all day because college was closed. Because it's quite a distance from where I live, it means that my friends are even further away, so I knew that I would have to entertain myself. Having tried mushrooms for the second time less than a week previously, though it was the first time I'd actually had enough to trip, I was extremely excited about them and desperately wanted to experiment more, and like an impatient child, as soon as possible. I went and bought an ounce of them and went for a joint in the local graveyard while I admired them. I then went home.
I'd told my boyfriend that I'd ring him at 11 so I didn't want to get shroomed up before then. I waited til afterwards when the rest of the house had gone to bed.  I ate about half the box and sat back and waited. Half an hour passed and nothing happened. It really annoyed me so I ate the rest of the box apart from a couple of small stems because it's the stems that taste the worst in my opinion, and there was an awareness forming that what I'd already eaten would be quite adequate!
I paced around the room waiting and my mood started to change. I wasn't tripping at all, I just kept seeing familiar objects in my room that were filling me with dread, I was thinking to myself 'I do not wanna look at that when I'm trippin'. I hid a couple of things and put some music on, my favourite, cradle of filth, but it only made me feel more uneasy. I turned it off because I kept imagining that if I turned my back a devil would pop out of the cd player for some reason, well actually in my minds eye it was more like a teradactyl, but a very demonic one. I still wasn't completely tripping yet though, I hadn't actually seen anything, I just felt a terrible feeling of dread and worry so I decided to get into to bed and bury my head thinking what a fool I was and it was my fault that I was about to have a bad trip all by myself.
Then suddenly, 50 minutes after taking the first of them, pow! It felt amazing. My whole body felt so strange, in such a pleasureable way, and I sat bolt upright and spent some minutes fixated with my jaw, it felt like an unnecessary attachment. I then looked around the room, and felt so exhilaratingly high I started talking to myself, about how there were four walls but only one ceiling believe it or not. I found that incredibly funny and started to write down what I was saying. I was especially delighted to realise that I was in fact Jazz from Jazzworld and I laughed and laughed to myself. Strange runes were floating accross my vision in beautiful colours.
My eyes started to water then, they just seemed to gush until the whole front of me was drenched, and I put my hands up to wipe the tears, it felt really good. As I was rubbing my face, my hand ended up clasped on my cheek which suddenly started to come away from my face, oozingly so. I spent afew moments terrified that I was melting before I reminded myself that it was just the shrooms and that I should treat it as a game. I got up off the bed, still oozing, and threw myself to the floor in a big pile of schlop. I had melted at will. RIDICULOUS! was the word that kept repeating through my head and it felt great.
I lay on the floor, imagining myself as a pile of mess with a pair of beady eyes just lying in the middle of the room, in which every object was either moving or glowing. I was impressed with my shroomed world, it was very pretty. I then got up, but it wasn't like standing up, I was a shroom quickly growing upwards tall and proud, until I was upright when I became an animal: I commentated it as well 'I am a shroom, now I am an animal and I can dance' and I leapt around the room feeling like I was a totally different shape to one I'd ever been before, laughing and laughing.
I then sat down on the bed looking at the room. I commented on how the bloke in the film did very strange things with his time. It was a very mundane film, but I thought that he must be being very silly all the same, I laughed at the silly man. I admired the rest of my room, words scuttled off my posters and back again and everything was moving, changing or breathing in some way. I then glanced at the objects on my bedside table, a bottle of water was on it and I picked it up and started to play with it, wanting to play with it in some way. I decided that the fact that there would then be water on the floor, was not actually reason enough to stop me pouring it all over the floor anyway, so I did and ran round the puddle sloshing in it, my entire body felt drenched.
An advert came on for anti-wrinkle cream, and it showed how the womans face changed. I was momentarily terrified by the weird monster that was suddenly in my room with me, then the advert finished. I'm sure I did a lot of other stuff too I just can't recall it right now, I remember how I never wanted the feeling to end, it felt amazing. Later, I was still very much tripping, there was boxing on tv and a man was on the screen who had blood gushing from his head. The blood looked so amazing, I stared in awe at it. It was the moment I'd seen the blood that the visuals got REALLY hectic.
I was standing in the middle of the room, looking at the tv, and I was melting again and was just playing with the ooze that came off me as I stood there. The colours on the tv went MAD. the colours in the image were always as varied as the normal colourations, but were not the normal colours at all, and as soon as it was in one psychedelic colour scheme it was changing into another colour scheme. I watched a mans eyes go from a sulphuric orange, to a powerful purple, through bright red to luminous yellow in a matter of seconds.
I began to feel like the effects were wearing off, so I decided to go downstairs where I could smoke. The corridor looked WEIRD, it gave me the same sort of feeling as the weird woman creature from the tv, a deep down feeling of 'Ugh that is so wrong somehow.' I got downstairs and saw myself in a mirror. Whoa, my eyes were huge, the pupils huge gaping holes, and watery round the edges. It struck me how cute they looked that way, set in a face that kept warping and distorting, like a flag in a breeze. I looked at my mouth and it was flushed such a deep vampiric red, and my lips were glistening. Overall, though weird looking, I found my mirror image incredibly sexy and gazed at it for a very long time.
I finally got to my smoking room. One halloween years ago, we bought a ghost to hang up that goes WHOA! when you shout at it or hit it, and it hung in the corner, to annoy the neighbours mostly. A red light came over the room and the ghost passed from one side to the other in front of me, just drifting along, I watched it curiously, as it watched me. By the end of my rollie the trip was over.
The trip itself lasted about 2 and half hours, and they were 2 and a half hours of exhilaration and euphoria. I lay on my bed for the rest of the night just thinking about what I had felt and done, I couldn't sleep. From what I've read about mushrooms, I think that that was a level 3 trip. For some reason I did not manage to get to sleep at all until the following night, and I spent A LOT of time unable to stop thinking about the amazing shrooms. Best intoxicant ever in my opinion.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Reports type casts which could be removed if the variable type is narrowed to the cast type. Example:
Object x = " string ";
System.out.println(((String)x).trim());
Here changing the type of x to String will make the cast redundant. The suggested quick-fix updates variable type and
removes all redundant casts on that variable.


--- layout: post title: Reworking.. date: 2007-08-24 04:55:59.000000000 +05:30 categories: [] tags: [] status: publish type: post published: true meta: _edit_last: '1' author: login: admin email<EMAIL_ADDRESS>display_name: admin first_name: '' last_name: '' ---
Hi visitor,
This site is currently being reworked. Check back soon!


I have a strong background in visual art. I am a maker, ready to transition into a new kind of creative work that reaches people in a different way. I believe that software development is a perfect fit for me! There are so many opportunities to be creative with code. The idea that people will be able to interact directly with the tools I create is very appealing. I love solving problems and figuring out how to make things work. I also love language! After college I had the opportunity to spend a year abroad teaching English in France. Learning to live in a foreign country and becoming fluent in it's language is a similar kind of problem solving to learning and writing code. Now, at the beginning of my coding journey, I am reveling in learning something new every day and overcoming challenges. I love the way development dovetails with the work I’ve done so far in my life. I'm finding that it is creating an opportunity to pick up my existing skill set, enhance it, and move forward. Thank you for taking a little time to get to know me!
I am a student at Epicodus in Portland, Oegon. We are currently learning about Git, HTML, and CSS. I got interested in coding because I wanted to develop a new skill that could help me further my career. I love that "aha!" moment when I overcome a challenge. I am looking forward to learning more programming languages and figuring out what I can do with them. The possibilities seem endless!
Besides coding my hobbies include kayaking, cycling, drawing, knitting, and spending time with friends, my partner Jared and our dog Ollie. I'll be real with you; I am writing extra text here because I am practicing using CSS stylesheets to float an image and have the text wrap around it! And it seems to be working! I would also like to share a few things I have been working on in class so far. They are a bit rough but I have definitely been learning a lot as I go.


HTML5 has all of the functions necessary to draw whatever you want in a canvas, but sometimes the API leaves a little to be desired. This module attempts to add convenience methods to the HTML5 canvas API.
There are three ways to interface with this module. Here are examples of each:


We're going to create a Google Image clone for gifs! When you enter a search term, it will return the top gifs that match your search term using the Giphy API.
JS Bin on jsbin.com Click here for full screen1. Look for Giphy api documentaion.
Hint: Many web companies have a link on their website just for developers.2. Can you find an example of a url that returns data from the Giphy server?
Hint: Check out the "Code Examples" and "Sample Responses" sections.
3. Put together a url that follows giphy api protocols. Be careful with the URL syntax.
Limit the number of gifs in your response to 3.
Use this apiKey: 'dc6zaTOxFJmzC'
4. Test this url by putting it in your browser. If you see a wall of text, you've succeeded!
This wall of text is called a Response.
It is in JSON format.
5. Copy all the data on the page by hitting "ctrl + a" and then "ctrl + c". Go to jsonviewer.stack.hu and paste what you've into the tab that says text. Click on viewer to look at data from the server in a more intuitive and readable way. This will be helpful later.
6. It's time to start building your page. Make an input element in your HTML and define a function that captures the users entry in a variable.
7. Find a javascript function that takes a user entry and makes it into an api query or a valid uri.
8. Find a set of JavaScript functions that can make an AJAX server request.
9. Test your code. Are you sending a request to the server? Are you getting a valid response?
10. Find a javascript function to embed a single result from this query into your html.
Note: One can't access the data from json directly.
JSON.parse()
is a method that makes the data available for your JavaScript to manipulate.
<iframe> <\iframe>
tag.
11. Convert the last function to iterate over the server response and show all your results.
12. Find a function to clear the page so that only the results of your recent search show.
13. Find a way to clear your input field so your user doesn't have to delete the previous entry before typing the new one.
14. Style your app to add color, personality and organization.


Pet Shop
Pomeranians
Poms take their name from the province of Pomerania, in Germany. They became especially popular when Queen Victoria allowed some of her Pomeranians to be shown in a conformation show, the first Pomeranians ever to be shown.
Vital Stats:
Dog Breed Group: Companion Dogs
Height: 7 inches to 1 foot tall at the shoulder
Weight: 3 to 7 pounds
Life Span: 12 to 16 years
Poodles
Poodles Elegant. Proud. Clever. Poodles are impressive dogs, as the many best-in-show winners from this dog breed can attest. Behind the blue ribbons, impressive hairdos, and regal attitude, you’ll find an affectionate family dog with an ancient history and many talents.
Vital Stats:
Dog Breed Group: Companion Dogs
Height: From 1 foot, 10 inches tall at the shoulder
Weight: 45 to 70 pounds
Life Span: 12 to 15 years
Beagle
Small, compact, and hardy, Beagles are active companions for kids and adults alike. Canines in this dog breed are merry and fun loving, but being hounds, they can also be stubborn and require patient, creative training techniques. Their noses guide them through life, and they’re never happier than when following an interesting scent. The Beagle originally was bred as a scenthound to track small game, mostly rabbits and hare. He is still used for this purpose in many countries, including the United States.
Vital Stats:
Dog Breed Group: Hound Dogs
Height: 1 foot, 1 inch to 1 foot, 3 inches tall at the shoulder
Weight: 18 to 30 pounds
Life Span: 10 to 15 years
Chihuahua
The Chihuahua dog breed‘s charms include his small size, outsize personality, and variety in coat types and colors. He’s all dog, fully capable of competing in dog sports such as agility and obedience, and is among the top 10 watchdogs recommended by experts. He loves nothing more than being with his people and requires a minimum of grooming and exercise.
Vital Stats:
Dog Breed Group: Companion Dogs
Height: 6 inches to 9 inches tall at the shoulder
Weight: 3 to 6 pounds
Life Span: 10 to 18 years
Pug
Pugs often are described as a lot of dog in a small space. These sturdy, compact dogs are a part of the American Kennel Club’s Toy group, and are known as the clowns of the canine world because they have a great sense of humor and like to show off. Originally bred to be a lap dog, the Pug thrives on human companionship.
Vital Stats:
Dog Breed Group: Companion Dogs
Height: 10 inches to 1 foot, 2 inches tall at the shoulder
Weight: 14 to 18 pounds
Life Span: 12 to 15 years
Maltese
A dog breed who’s gentle and fearless, the Maltese greets everyone as a friend. His glamorous white coat gives him a look of haughty nobility, but looks can be deceiving. This is a sprightly, vigorous dog who excels not only as a companion but also as a therapy dog and competitor in such dog sports as agility, obedience, rally, and tracking. But most of all, he loves to be with his people.
Vital Stats:
Dog Breed Group: Companion Dogs
Height: 8 inches to 10 inches tall at the shoulder
Weight: Up to 7 pounds
Life Span: 12 to 15 years
Shih Tzu
His name means little lion, but there’s nothing fierce about this dog breed. The Shih Tzu is a lover, not a hunter. Bred solely to be a companion, the Shih Tzu is an affectionate, happy, outgoing housedog who loves nothing more than to follow his people from room to room. In recent years, however, owners have started taking the Shih Tzu off their laps and into dog sports, training him for obedience, rally, and agility competitions.
Vital Stats:
Dog Breed Group: Companion Dogs
Height: 9 inches to 10 inches tall at the shoulder
Weight: 9 to 16 pounds
Life Span: 10 to 16 years
Corgi
Originally bred to herd cattle, sheep, and horses, the Pembroke Welsh Corgi is an active and intelligent dog breed. Easy to train and eager to learn, Pembrokes are great with children and other pets, and you can find them in four different coat colors and markings.
Vital Stats:
Dog Breed Group: Herding Dogs
Height: 10 inches to 1 foot tall at the shoulder
Weight: Up to 30 pounds
Life Span: 12 to 14 years


map_ops¶
https://github.com/kremrik/map-ops
A simple, but high-powered, module for operating on dictionaries.
Installation¶
Currently either installable from source, or by pip installing from github:
python -m pip install git+https://github.com/kremrik/map-ops.git
Introduction¶
map_ops
was designed to be the simplest possible way to add keys/values,
remove keys/values, and find differences between two dictionaries. However,
closure under composition allows you to treat a small set of functions as a
DSL of-sorts, providing sophisticated behavior with minimal effort.
Basic Usage¶
The most basic usage is obtained in operations. This module exposes three functions, fully closed under combination, and returning new objects (no weird behavior when mutating original objects).
from map_ops.operations import cut, diff, put
d1 = {"foo": 1, "bar": 1}
d2 = {"foo": 2, "baz": 2}
diff(d1, d2)
{"bar": 1}
put(d1, d2)
{"foo": 2, "baz": 2, "bar": 1}
cut(d1, d2)
{"baz": 2}


Examples
On-the-fly run
Example data are stored in ./gsf/examples/
python run_gsf.py test.input <Execution-flag>
If you need a new config file (*.input), execute
python get_configfile.py
Execution flag
0: Generating templates at z=0 (takes a while if MILES). Start from here if parameter in config file is changed. Then go to 1. (From ver1.6, multiprocessing can be used to generate z=0 templates. See below.)
1: Redshift template to z=ZGAL, and prepare mock photometry that matches to the input filters and spectra, using pre-existing z=0 templates (from step0). Then go to 2.
2: Fitting part, using pre-existing z=z_input templates (from Step1). If ZVIS==1, gsf will ask you if the initial redshift fit is reasonable. Then go to 3.
3: Only plot SFH and SED using existing result files.
6: Plot physical parameters and SED (optional).
Appendicies
A. Specify target id
You can speficy the target id from the command line. This way, you would not need to make a bunch of config files for each target.
python run_gsf.py test.input <Execution-flag> --id <id-of-target>
Then gsf will look into the broadband catalog (BB_CAT
; Paramter Description) and identify object with the same id.
Redshift has to be either specified in the config file (ZGAL
; Paramter Description) or included in the same broadband catalog (column named redshift
).
B. Multi-processing to generate z=0 templates
Since step0 can take time to complete, multiprocessing may help.
python get_templates_mp.py test.input --z <maximum-redshift-of-templates>
This does not complete the following steps (1, 2, 3, 6).
Other examples
Also see:


How to set your PSN account data aka 'Do Initial Signin'
1. Set Henkaku DNS in your Connection Settings as Primary DNS if not done yet here the IP for the Primary DNS : // OR use vitaupdateblocker
2. Install registryeditor
3. Navigate to /config/np/ and make the keys for your email and password blank
4. Install uricaller
6. Open uricaller and call the uri "psnreg:"
7. If you have HenkakuDNS or Vitaupdateblocker running the app will just work
8. Sign into or Create your PSN Account
9.Press done and the app will auto-exit and assign your account to the system
How to activate your Vita
1. Download the Epsp Bubble Installer
2. Install it
3. Open it and press activate
1. Copy and Paste all from details tag beginning to end! 2. Put ur stuff in 3. ??? 4. Profit!
1: Source: Wololo Vita CFW4Dummies


Table of Contents
- Throughput to an Unsubscribed Topic
- Queue Load/Unload
- Partitioned Load Scenarios
- Fan In/Out Load Scenarios
- Request/Reply Scenarios
Overview
This report was generated using the mqtt-benchmark tool. It
provides a comparative benchmark of messaging servers that implement the MQTT 1.0
specification. It covers a wide variety of common usage scenarios. Each scenario is warmed up for 3 seconds before the performance samples are taken.
Console logs of the benchmarked servers
Throughput to an Unsubscribed Topic
A single publisher sending non-persistent messages to a topic that does not have an subscribers attached.
NOTE: hover over the graphs to see the legends.
With a 20 b Playload
|
<
With a 1 k Playload
|
With a 256 k Playload
|
Client Session/Subscription Load/Unload
Loading
A publisher on a clean session is sending messages with 20 byte payloads to
with 1 subscribed non-clean session which is not currently connected.
QoS 0 Publish
QoS 1 Publish
QoS 2 Publish
|
Unloading
The non-clean session client then reconnects and starts receiving the messages
previously sent to the subscription but now the publisher has stopped.
QoS 0 Subscribe
QoS 1 Subscribe
QoS 2 Subscribe
|
Fan In/Out Load Scenarios
These scenarios multiple subscribers and publishers communicate via one shared topic.
All messages sent have a 20 byte payload.
| | Clean | Non-Clean |
QoS 0 |
| | 1 Producer | 5 Producers | 10 Producers |
1 Consumer |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
5 Consumers |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
10 Consumers |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
|
| | 1 Producer | 5 Producers | 10 Producers |
1 Consumer |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
5 Consumers |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
10 Consumers |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
|
QoS 1 |
| | 1 Producer | 5 Producers | 10 Producers |
1 Consumer |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
5 Consumers |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
10 Consumers |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
|
| | 1 Producer | 5 Producers | 10 Producers |
1 Consumer |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
5 Consumers |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
10 Consumers |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
|
QoS 2 |
| | 1 Producer | 5 Producers | 10 Producers |
1 Consumer |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
5 Consumers |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
10 Consumers |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
|
| | 1 Producer | 5 Producers | 10 Producers |
1 Consumer |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
5 Consumers |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
10 Consumers |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
|
Partitioned Load Scenarios
These scenarios sample performance as partitioned load is applied.
Each topic only has 1 and only 1 publisher and subscriber attached.
| | Clean | Non Clean |
QoS 0 |
| | 20 b Message | 1 k Message | 256 k Message |
1x1x1 |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
5x5x5 |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
10x10x10 |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
|
| | 20 b Message | 1 k Message | 256 k Message |
1x1x1 |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
5x5x5 |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
10x10x10 |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
|
QoS 1 |
| | 20 b Message | 1 k Message | 256 k Message |
1x1x1 |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
5x5x5 |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
10x10x10 |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
|
| | 20 b Message | 1 k Message | 256 k Message |
1x1x1 |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
5x5x5 |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
10x10x10 |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
|
QoS 2 |
| | 20 b Message | 1 k Message | 256 k Message |
1x1x1 |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
5x5x5 |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
10x10x10 |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
|
| | 20 b Message | 1 k Message | 256 k Message |
1x1x1 |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
5x5x5 |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
10x10x10 |
Producer Rates (msg/s):
Consumer Rates (msg/s):
|
|
|
|


---
layout: post
title: Newest Member of the Lorenzo's Music Family
date: '2010-09-29T21:24:00.000-05:00'
author: Tom Ray
tags:
- blog
modified_time: '2013-02-09T22:55:23.001-06:00'
blogger_id: tag:blogger.com,1999:blog-11319466.post-4548480788123830620
blogger_orig_url: http://www.lorenzosmusic.com/2010/09/newest-member-of-lorenzo-music-family.html
---
On Monday September 27, 2010 Mark and his wife added another addition to the world. A baby girl!
We just wanted to welcome baby Zoe and congratulate Mark and family on this wonderful event.
Cheers!


Creative. Responsive. On Mission.
One goal above all others: In-house team of web designers, developers and SEO experts uphold the highest standards for project planning and execution. Dedicated to building the perfect website for client’s company on-time and on budget.
Assembling a talented team of digital strategists, designers, developers, marketers, communications specialists, project managers and business developers to work in a collaborative manner on our client projects. Builded on each other’s expertise, working together in teams to generate great outcomes for projects.
to provide high-quality training with quick turn-around time. MicroTech helping to build the knowledge & skill bridge between industries & manpower by training new immigrants and existing personnel to make a better future in abroad
At MicroTech gave our training to many students successfully past few years and some of them are doing a job in the respected field in USA respected industry successfully with attractive salary.
MicroTech has for more than four years of supported Learning delivery by expert information technology professionals successfully and satisfying our valuable trainee. Offering online and offline training for the key areas such as Software testing, Selenium, QTP testing, Java, C#, Oracle Database Administrator training, and much more.
Expertise in training with quality of demos and samples which is keenly focused on our business. We have a mature learning proven process where you able to rely on us; feel free to see our testimonials & references.


We buy systems!
- grow extensible eyeballs
- iterate out-of-the-box functionalities
- evolve dot-com web services
- integrate interactive mindshare
- redefine wireless platforms
- optimize intuitive e-commerce
- enhance 24/7 eyeballs
- scale global initiatives
- strategize frictionless channels
- embrace magnetic interfaces


| Image | Text |
|---|---|
| The Early Empire | |
|
Once the Galactic Empire had been established, Palpatine immediately set forth to accomplish the main pillars of his campaign. Those pillars being, to root out the corrupt elements held over from the Old Republic, establishing law and order throughout the galaxy, starting numerous mega-projects to boost employment in the construction sector, and rooting out any remaining traces of the evil child kidnapping survivors of the Jedi Order. Unfortunately despite being wildly successful in all of his endevours, and despite receiving unanimously glowing reviews from all respondents of periodic satisfaction surveys he sent out to all galactic citizenry, things weren't all sunshine and roses for our dear friend Palpatine. In fact, there was a small minority of haters who were jealous of his good looks and top-tier sense of humor, and so formed a terrorist group rather than accept Palpatine's love. After many years of Palpatine lovingly and patiently waiting for these rebels to return to the fold just like the father in the parable of the Prodigal Son, he was finally forced to take serious action after a rebel attack killed countless patriotic stormtroopers and innocent civilians. With much sorrow, Palpatine greenlit the completion of the first death star. Shortly after it was completed, a loyal agent of his had discovered the location of the rebel's base on Yavin. Unfortunately another planet named Alderaan had been blown up in the process of discovering the location of the rebel's base, but at the end of the day most people agreed that Alderaanians were kind of asking for it by not having any weapons with which to defend themselves. Afterall, the snooty, ivory tower Alderaanian's stubborn refusal to purchase any weapons not only left themselves defenseless, but hurt the blue collar workforce employed by the arms manufacturing industry. In any case, the death star was immediately despatched to rid the galaxy of the rebel presence and finally restore peace. Unfortunately one thing led to another and the death star was blown up by some random farmboy with a girl's haircut, he immediately sent it out to nip the terrorist group, resulting in the death of over 2 million loyal imperial servicemen and women onboard. |
|
| The Late Empire | |
|
After personally calling the surviving family members of each and every imperial patriot who lost their lives in the first death star to notify them of their loss, Palpatine immediately got to work building the next death star. And this time, it wouldn't have a vent shaft leading all the way into the reactor that would allow a single one man fighter destroy a moon sized station. The following years flew by in the blur, and although Palpatine was happy he knew he could never fully be at peace until the vicious terrorist rebels were finally brought to justice. But soon enough the time had arrived for the final showdown. The Emperor brilliantly lured the overconfident rebels into a devistating trap. Unfortunately for both the Emperor and the Galaxy at large, there was one thing he hadn't anticpated. Some cannibal teddy bear creatures native to the nearby one. And so one thing led to another, and the second death star was destroyed, and Palpatine along with it. |
Imperial Superweapon Technical Specifications Table
| Img | Project | Crew Size |
Size | Description |
|---|---|---|---|---|
| See your tax credits at work! These are just a few of the glorious Imperial mega-construction projects that have provided millions of high paying jobs to the galaxy's blue collar workers. | ||||
| Death Star I | ~2m | 120km³ | For further information, click here to access the Imperial Database. | |
| Death Star II | ~2.5m | 160km³ | For further information, click here to access the Imperial Database. | |
| Executor | ~280k | L=19km | For further information, click here to access the Imperial Database. | |
| Eclipse | ~850k | L=17.5km | For further information, click here to access the Imperial Database. |