UKCloud Limited (“UKC”) and Virtual Infrastructure Group Limited (“VIG”) (together “the Companies”) – in Compulsory Liquidation
On 25 October 2022, the Companies were placed into Liquidation with the Official Receiver appointed as Liquidator and J Robinson and A M Hudson simultaneously appointed as Special Managers to manage the liquidation process on behalf of the Official Receiver.
Further information regarding the Liquidations can be found here: https://www.gov.uk/government/news/virtual-infrastructure-group-limited-and-ukcloud-limited-information-for-creditors-and-interested-parties
Contact details:
For any general queries relating to the Liquidations please email<EMAIL_ADDRESS>For customer related queries please email<EMAIL_ADDRESS>For supplier related queries please email<EMAIL_ADDRESS>UKCloud for Red Hat OpenShift FAQs
What is UKCloud for Red Hat OpenShift?
UKCloud for Red Hat OpenShift is UKCloud's OpenShift powered Kubernetes Platform as a Service (PaaS). The service provides a secure, private deployment of the Red Hat™ OpenShift™ Container Platform. The service is delivered as a managed platform, enabling developers to build automation pipelines and leverage the benefits of containerised solutions, helping to deliver modern, cloud-native applications and accelerate digital transformation.
UKCloud deploys, monitors and updates the platform, freeing up your DevOps resources to focus on adding value further up the stack through the rapid delivery of quality controlled code, all without having to worry about the underlying infrastructure or platform services.
For an overview what the service offers, see the UKCloud for Red Hat OpenShift Service Definition. For specific details about the implementation and boundaries of the service, see the UKCloud for Red Hat OpenShift Service Scope.
Why deliver UKCloud for Red Hat OpenShift as a cloud service?
Although UKCloud for Red Hat OpenShift is a simple, benefits-rich service to consume, it's a complex platform of inter-dependent servers and services, whose deployment, configuration and maintenance requires time and expertise.
By offering this service, we take on all that complexity so that customers can immediately realise the value of UKCloud for Red Hat OpenShift by simply consuming it.
Does my data leave the UK?
As the service is delivered from UK data centres by a UK company, your data doesn't leave the UK when at rest.
Is the service Pan Government Accredited?
UKCloud's existing PGA continues to apply to the infrastructure underpinning our services. But since the move to the Government Security Classification Policy (GSCP), we can no longer seek PGA for newer services, such as UKCloud for Red Hat OpenShift.
We are now required to self-assert our services, with customers taking responsibility for assessing and selecting the most appropriate cloud services to meet their individual security requirements.
We provide confidence that our OpenShift service still meets the highest level of information assurance, which is why we continue to have our platform independently tested and validated, and have the findings made available to customers and partners. This enables SIROs to make an informed decision about any service they choose to consume.
What languages and frameworks are compatible with UKCloud for Red Hat OpenShift?
The service supports many popular development frameworks and languages such as:
Java
Spring
Ruby
Sinatra
Node.js
Python
PHP
GoLang
For the full list, see https://access.redhat.com/articles/2176281?hsLang=en-us and https://access.redhat.com/articles/4763741.
Does UKCloud for Red Hat OpenShift support any data services?
Our OpenShift service provides popular open source data service packages deployable within the platform, all supported by the global open source community, including:
MySQL, an open source relational database
Postgres, a relational database based on PostgreSQL
MongoDB, a scalable, open, document-based database
RabbitMQ, for reliable, scalable and portable messaging for applications
Note that these services are offered 'as is' with no management, support or availability commitment from UKCloud. We strongly suggest customers ensure they maintain a original copy or backup copy of any persistent or dynamic data hosted on this service (such as MySQL DB) by using, for example, a data service provided by a managed service provider on our UKCloud for VMware platform.
How scalable is UKCloud for Red Hat OpenShift?
As a true cloud platform, UKCloud for Red Hat OpenShift provides full elasticity and scalability. However, in order to protect the integrity of the platform and manage customer spend, soft limits on the number and size of application instances will be in place. These limits may be extended upon request.
Which ports are open to the platform from the internet by default?
By default, ports 80 and 443 are open for customer application traffic. Further ports can be opened on request either at time of deployment or post-deployment by raising a Service Request via the My Calls section of the UKCloud Portal.
How do I add users?
To add new users, you will need to raise a Service Request via the My Calls section of the UKCloud Portal.
What monitoring of the services is provided by default in a trial?
By default, no specific monitoring service is integrated. However, we recommend external monitoring services such as Datadog or Coscale for production-grade OpenShift hosted applications. Alternatively, you can implement your own simple monitoring solution as described in How to monitor your OpenShift cluster.
What monitoring of the services is provided on a billable service?
By default, no specific monitoring service is integrated. It is our expectation that customers may want to use a third party or their own monitoring service to ensure cluster availability. There is a metrics service deployed into the cluster that provides utilisation stats of the cluster, and a wide range of metrics about both the cluster itself and the containers running within it can be extracted via the API to this service.
Can I integrate external monitoring SaaS providers or my own monitoring agents to the service?
We will happily work with customers during a trial period to integrate an external monitoring service that enables customer monitoring of the cluster and applications where infrastructure level configuration is required.
How do I add extra capacity to my cluster?
To add extra capacity to you cluster, you will need to raise a Service Request via the My Calls section of the UKCloud Portal. We hope to provide portal integration to enable customers to be in control of this in the future.
How many persistent volumes can I claim/attach to each worker node?
In line with current restrictions on the OpenStack service underpinning OpenShift, you can claim/attach 25 additional persistent volume claims (PVCs) to each worker node.
Can I have integrated container logging deployed with the platform?
Yes, this can be requested at time of deployment, or added post-deployment. The services can be run on either the infrastructure nodes or the worker nodes in the cluster. By default, we would place them on the infrastructure nodes, but you may wish to change this placement to be more suitable for the specific cluster performance you desire.
How much control do I have over the policies and configuration of the platform once it has been deployed?
Customers have full administrative rights over the cluster configuration via the UI and API. Due to the varied nature of configurations that customers may want, such as the ability to merge projects and add service accounts for applications, we provide customers with the ability to self-serve on cluster administration from the beginning. Only infrastructure level tasks are controlled by UKCloud, such as adding users, scaling environments and patching.
Can I run a privileged container?
Yes, it is possible to run a privileged container. However, this is not recommended as it goes against security best practices.
What is the underlying architecture of the starter deployment?
Feedback
If you find a problem with this article, click Improve this Doc to make the change yourself or raise an issue in GitHub. If you have an idea for how we could improve any of our services, send an email to feedback@ukcloud.com.


welcome to http status Protocols
1xx Informational
101 Continue
102 switching protocols
103 processing
2xx Success
200 Ok
201 Created
202 Accepted
203 Non Authoritive Information
204 No content
205 Reset Content
206 partial Content
207 multi status
208 Already Reported
226 Im used
3xx Redirection
300 Multiple Choices
301 Moved Permanently
302 Found
303 see Other
304 Not Modified
305 use Proxy
306 Switch Proxy
307 Temporary Redirect
308 Permanent Redirect
4xx Client Error
400 Bad Request
401 Unauthorized
402 Payment Required
403 Forbidden
404 Not Found
405 Method not Allowed
406 Not Acceptable
407 Proxy Authentication Required
408 Request Time-out
409 Conflict
410 Gone
411 Length Required
412 Precondition Failed
413 payload Too Large
414 URI Too Long
415 Unsupported Media Type
5xx Server Error
500 Internal Server Error
501 Not Implemented
502 Bad Gateway
503 Service Unavailable
504 Gateway Time-out
505 Http Version Not Supported
506 Variant Also Negotiates
507 Insufficient Storage
508 Loop Detected
510 Not Extended
511 Network Authentication Required


Despite continuation of intel pact, Japanese businesses see little hope for early recovery of ties with South Korea
Despite Seoul’s eleventh-hour decision on Friday to effectively extend its military information-sharing pact with Tokyo, Japanese businesses appear to have little hope of an early recovery for bilateral ties due to the lack of a resolution of the wartime labor issue.
Opinion polls have shown that South Koreans’ views of Japan have also deteriorated after Tokyo tightened controls on exports of key semiconductor materials to the country in July.
The soured ties have brought severe negative effects on the tourism and distribution industries in Japan and on its firms operating in South Korea.
By virtue of proximity, the Kyushu region had profited handsomely via tourism from the country. Recently, however, Kyushu hotel, bus and department store operators have seen the number of South Korean customers plunge dramatically.
“It makes no sense to promote our services in a country with little benefit,” said an official with a major department store in Fukuoka. The store is now bolstering its push to attract Chinese customers as the number of South Korean visitors dwindles.
RELATED STORIES
- GSOMIA survives as South Korea reverses decision to exit intel pact with Japan
- WTO reform 'urgent,' G20 ministers agree at Nagoya meeting
At a ryokan (Japanese-style inn) run by Yoshihiko Shimizu, 65, in the Yufuin hot-spring resort area in Oita Prefecture, the number of South Korean guests has plummeted 80 to 90 percent.
“Repeat guests from South Korea have yet to visit my ryokan this year,” he said. “I don’t want the bilateral relationship to deteriorate any further.”
The number of South Korean visitors to Japan has plunged to one-third of the level year-on-year, according to Japan National Tourism Organization data.
South Korean airlines have reduced their flights to and from Japan by 40 percent.
Oita Airport, for example, used to have 13 scheduled flights to South Korea per week, but all have been suspended.
Even Japan’s biggest firms have been negatively impacted by the row.
Sales of Toyota Motor Corp.’s Lexus luxury brand cars in South Korea dived 80 percent year-on-year in October, while Asahi Breweries Ltd. is expected to lose its position as the top beer importer in South Korea after holding the title for eight years in a row.
Apparel-maker Onward Holdings Co. has decided to withdraw from the South Korean market, with its sales slumping there amid growing anti-Japanese sentiment.
“We have no choice but to wait for the bilateral problems to be sorted out by politicians of the two countries,” said an official with a major Japanese automaker.
“Major progress was made,” said Akio Mimura, chairman of the Japan Chamber of Commerce and Industry, referring to South Korea’s decision Friday to effectively extend the two countries’ General Security of Military Information Agreement.
The announcement came only hours before the pact’s scheduled expiration at 12:01 a.m. Saturday. In August, Seoul announced it would not renew the pact due to the rapidly deteriorating bilateral relations.
Still, Mimura indicated the need to keep a close watch on further developments.
GET THE BEST OF THE JAPAN TIMES IN FIVE EASY PIECES WITH TAKE 5
JOIN THE CONVERSATION


No. 16 Michigan State women hold off No. 15 Notre Dame 72-69
NOTRE DAME, Ind. (AP) - Nia Clouden scored a career-high 28 points and No. 16 Michigan State held off No. 15 Notre Dame’s late rally for a 72-69 victory on Thursday night.
Clouden made four 3-pointers and was 9 of 21 from the field. Taryn McCutheon added 12 points for Michigan State (3-0).
Sam Brunelle and Katlyn Gilbert scored 19 points apiece to lead Notre Dame (2-2), which has lost two straight games.
TOP STORIES
Reckoning coming for Adam Schiff for impeachment inquiry
Bill Clinton offers Trump advice on impeachment
Trump 'war room' launches scathing Pelosi video
The Irish rallied from a 13-point deficit late in the third quarter, using a 15-5 run to pull to 58-57 with 5:30 to play. Victoria Gaines made a layup and Tory Ozment added a 3 and to stretch the Spartans’ lead to 63-57 with about three minutes remaining in the game.
Brunelle’s 3-pointer got the Irish within 70-69 with 10 seconds left, but McCutcheon made a pair of free throws to seal it for the Spartans.
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


Basic if-diff demo.
Type in the text boxes, and see what happens when value in the left textbox matches or doesn't match the right textbox.
LHS:
RHS:
LHS == RHS
LHS != RHS
LHS Equals RHS:
LHS Doesn't equal RHS:


@* * Copyright 2021 HM Revenue & Customs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @(url: Call, gaEventAction: Option[String] = None, linkText: Option[String] = None)(implicit messages: Messages) @import uk.gov.hmrc.urls.Link @stagePromptAttributes = @{ gaEventAction match { case Some(actionString) => Some(Map("journey-click" -> s"link - click:${actionString}:${messages("tai.cancel")}")) case _=> None } } @cancelText = @{if(linkText.isDefined) linkText else Some(messages("tai.cancel"))}


The documentation server is a run mode provided by the Nyzo verifier codebase. The following instructions are for an Ubuntu Linux system, but the server will also run on Windows, Mac OS, and other Linux distributions.
Ensure that your server has port 80 open to all IP addresses to which you want to permit access. Begin the installation by updating apt.
sudo apt update
Next, install haveged. This is a program that provides entropy for cryptographically secure random-number generators. It is not necessary for the core tasks of the documentation server, but the Verifier class loads its private seed in a static block, and lack of sufficient entropy on a system can cause the application to block indefinitely when trying to generate a new private seed for the verifier.
sudo apt install haveged -y
Install the Java development kit (JDK). JDK 8 is preferred for Nyzo.
sudo apt install openjdk-8-jdk -y
Install supervisor. This is used to manage the server Java process.
sudo apt install supervisor -y
Clone the Nyzo verifier repository.
git clone https://github.com/n-y-z-o/nyzoVerifier.git
Change to the new nyzoVerifier directory and build the code.
cd nyzoVerifier && ./gradlew build
Make the Nyzo data root directory.
sudo mkdir -p /var/lib/nyzo/production
Create the supervisor configuration file. The first command makes the script executable. The second command runs the script to generate the file. The third command copies the file to the supervisor configuration directory.
chmod +x nyzoDocumentationServer.sh && ./nyzoDocumentationServer.sh && sudo cp nyzoDocumentationServer.conf /etc/supervisor/conf.d/
Now, the content for the documentation server must be downloaded. For this example, the content will be placed in the /nyzo directory. Create this directory and move to it.
sudo mkdir /nyzo && cd /nyzo
Clone the documentation repository to the /nyzo directory.
git clone https://github.com/n-y-z-o/tech.git
Set the path of the documentation root directory in the Nyzo preferences file.
sudo bash -c 'echo "documentation_data_root=/nyzo/tech" > /var/lib/nyzo/production/preferences'
Start the documentation server.
sudo supervisorctl reload
You should now be able to view your documentation server in a web browser. If you cannot load pages, check the firewall to ensure port 80 is open. Also, refer to /var/log/nyzo-documentation-server.log.
You can direct your server to a different documentation repository to offer alternative documentation, and you can use a different source repository to modify the behavior of the server.


Security Names - Identify an individual user (v1 or v2c only). Secure Groups - Identify a security-name, security model by a group, and referred to by a group-name. Secure Views - Create a custom view using the VACM that controls who can access which MIB objects under agent management by including or excluding specific OIDs: for example, some users have access to critical read-write control data, while some users have access only to read-only data. Security Models - A security model identifies the SNMP version associated with a user for the group in which the user resides. Secure Access Policies - Defines who gets access to which type of information. An access policy is composed of <group-name, security-model, security-level, read-view-name>. read-view-name is a preconfigured view that applies to read requests by this security-name. write-view-name is a preconfigured view that applies to write requests by this security-name. notify-view-name is a preconfigured view that applies to write requests to this security-name.
Add a New Security Name Specify a name to identify a requestor allowed to issue gets and sets (v1 and v2c only). The specified requestor can make changes to the view-based access-control model (VACM) security name configuration.This control does not apply to SNMPv3 queries. To restrict v3 USM users from polling a particular subnet, use the RiOS Management ACL feature, located in the Configure > Security > Management ACL page.Traps for v1 and v2c are independent of the security name. Specify the password-like community string to control access. Use a combination of uppercase, lowercase, and numerical characters to reduce the chance of unauthorized access to the Steelhead appliance.Community strings do not allow printable 7-bit ASCII characters, except for white spaces. Also, the community strings cannot begin with '#' and '-'.If you specify a read-only community string (located in the SNMP Basic page under SNMP Server Settings), it takes precedence over this community name and allows users to access the entire MIB tree from any source host. If this is not desired, delete the read-only community string.To create multiple SNMP community strings on a Steelhead appliance, leave the default public community string and then create a second read-only community string with a different security name. Or, you can delete the default public string and create two new SNMP ACLs with unique names. Source IP Address and Mask Bits Specify the host IPv4 or IPv6 address and mask bits to which you permit access using the security name and community string. Select the check box next to the name and click Remove Selected.
3. Click Apply to apply your changes to the running configuration.
4. Click Save to save your settings permanently.
Security Models and Name Pairs Click the + button and select a security model from the drop-down list:v1 or v2c - displays another drop-down menu; select a security name. v3 (usm) - displays another drop-down menu, select a user. Select the check box next to the name and click Remove Selected.
3. Click Apply to apply your changes to the running configuration.
4.
Specify the Object Identifiers (OIDs) to include in the view, separated by commas; for example, .<IP_ADDRESS>.4.1. By default, the view excludes all OIDs.You can specify an OID number or use its string form; for example, .iso.org.dod.internet.private.enterprises.rbt.products.steelhead.system.model Select the check box next to the name and click Remove Selected.
3. Click Apply to apply your changes to the running configuration.
4. Click Save to save your settings permanently.
Add a New Access Policy Determines whether a single atomic message exchange is authenticated. Select one of these from the drop-down list:No Auth - Does not authenticate packets and does not use privacy. This is the default setting. Auth - Authenticates packets but does not use privacy. AuthPriv - Authenticates packets using AES or DES to encrypt messages for privacy. Select the check box next to the name and click Remove Selected.
3. Click Apply to apply your changes to the running configuration.
4. Click Save to save your settings permanently.


Large Projects
Software for "The Show":
Interactive dance wearables
ARcadia: Bringing Paper
Creations to Life with AR
E-Coli Cell:
Immersive Art Science
Installation
Universal Mind Control:
Control Planetariums
With Your Mind
BlockyTalky:
A prototyping toolkit
for musical and artistic
interfaces.
Audiovisual Playground:
A music sequencing
tool for 3D
virtual worlds.
Rockblend:
A game to using
your keyboard skills
to power a blender.
Metamorphosis: Interactive
Embodiment of the
Butterfly Lifecycle
Web Art
Musical Pizza
An atmospheric and surreal
experience for the
Google Cardboard.
Rainbow Curves
Volcanoes ???
Consumers Consume
A Life of Errors
Rose Curve Paintbrush
AwwwwHHHh hot dog!
A simple experience
of a imaginary solar
system for Google Cardboard.
Audio Visualizations
A recording of a
simple audio visualization
built in Processing.
A recording of a
simple audio visualization
built in Processing.
A recording of a
simple audio visualization
built in Processing.
A recording of a
simple audio visualization
built in Processing.
A live demo
of an audio visualizer
built with p5.js.
Hand Drawn Animations
A short hand-drawn
animation depicting
a scene from the
movie
Kill Bill
.
A short hand-drawn
animation to accompany
the song "Mantaray"
by
The Pixies
.


This function computes multiply robust estimates of interventional mediation effects with two mediators. Two such estimates are produced, an augmented inverse probability of treatment weighted (AIPTW) estimator and a targeted minimum loss estimator (TMLE). The AIPTW was found to perform better in most simulations.
intermed( Y, C, M1, M2, A, DeltaA = as.numeric(!is.na(A)), DeltaM = as.numeric(!is.na(M1)), a = 1, a_star = 0, SL_Qbar = NULL, SL_g = NULL, SL_Q_M = NULL, n_SL = 1, glm_Qbar = NULL, glm_g = NULL, glm_Q_M = NULL, tolg = 0.01, tol = 1/(sqrt(length(Y)) * log(length(Y))), targeted_se = FALSE, return_models = FALSE, cvFolds = 1, use_future = FALSE, Qbar_n = NULL, Q_M_n = NULL, gn = NULL, max_iter = 50, verbose = FALSE, stratify = FALSE, ... )
| Y | A vector of continuous or binary outcomes. |
|---|---|
| C | A |
| M1 | A |
| M2 | A |
| A | A vector of binary treatment assignment (assumed to be equal to 0 or 1). |
| DeltaA | Indicator of missing treatment (assumed to be equal to 0 if missing 1 if observed). |
| DeltaM | Indicator of missing outcome (assumed to be equal to 0 if missing 1 if observed). |
| a | The label for the treatment. The effects estimates returned pertain
to estimation of interventional effects of |
| a_star | The label for the treatment. The effects estimates returned pertain
to estimation of interventional effects of |
| SL_Qbar | A vector of characters or a list describing the Super Learner library to be used for the outcome regression. |
| SL_g | A vector of characters or a list describing the Super Learner library to be used for the propensity score. |
| SL_Q_M | A list with two named entries |
| n_SL | The number of repeated super learner runs to execute for each regression. |
| glm_Qbar | A character describing a formula to be used in the call to
|
| glm_g | A character describing a formula to be used in the call to
|
| glm_Q_M | A list with two named entries |
| tolg | The truncation level for the propensity score |
| tol | The tolerance for stopping the iterative targeting procedure. |
| targeted_se | A boolean indicating whether to return the standard error estimates based on targeted nuisance parameters or the initial estimates of nuisance parameters. |
| return_models | A boolean indicating whether to return the fitted models for
each of the nuisance regressions. If |
| cvFolds | Number of cross-validation folds to use if CVTMLE and CV-one step are desired |
| use_future | A boolean indicating whether to use the |
| Qbar_n | Power users may wish to pass in their own properly formatted list of the
outcome regression so that
nuisance parameters can be fitted outside of |
| Q_M_n | Power users may wish to pass in their own properly formatted list of the
mediator distributions so that nuisance parameters can be fitted outside
of |
| gn | Power users may wish to pass in their own properly formatted list of the
propensity score so that
nuisance parameters can be fitted outside of |
| max_iter | The maximum number of iterations for the TMLE |
| verbose | A boolean indicating whether to print status updates. |
| all_mediator_values | All combinations of M1 and M2 |
An object of class "intermed"
.
aiptw
A list
of point estimates and
estimated covariance matrix from the one-step estimator
tmle
A list
of point estimates and
estimated covariance matrix from the TMLE
plugin
Plugin estimates of the mediation effects
fm
Fitted models if return_models = TRUE
, NULL
otherwise
Under the hood, the function fits several nuisance regressions and combines them
into the final estimate. Users have several options for fitting these regressions
as described below. In particular, SuperLearner
can be used to flexibly
estimate the regressions.


“Should a visualization be designed to evoke emotion?”
This quote really struck me while reading Chapter 3 of Data Feminism. This chapter introduces the idea of data visceralization, which is essentially embracing the idea of leveraging emotion in data visualization. After reading some of the examples in the book (Guerilla Girls infographic, and A Sort of Joy, a theater group that scripts live performances based on data visualizations), my new perspective on data visualization is data as more of an art form.
Art is powerful and emotional, and is something that can be used along with data visceralization to create more unique and powerful data visualizations. Also, having this mindset allows more possibilities for data visualizations and data in general. For example, one possibility could be using virtual reality and simulations as a way of showing and explaining data. With virtual reality, you could create simulations to show data (e.g having a simulation that shows endangered species, and how their species became endangered –> through human intervention, deforestation, etc.) Those interactive data visualizations are presenting data in a way where a story is being told. Storytelling can be used as another form of data visualization (and another way of presenting and visualizing data).
Another example is a time-lapse. For instance, the time lapses of icebergs/icecaps melting over time is far more powerful than a graph showing the rate of icebergs melting over a period. Seeing the effects of global warming through a timelapse video (the icebergs melting faster over time) is more powerful than a graph, because it evokes emotion.
Thinking of data as more of an art form allows for more creativity, and more unique ways for creating powerful data visualizations that will make people feel something. A perfect example of “data can be art” is data visualizations surrounding the brain.
Brain visualizations are unique in that they defy the “standard” or conventional methods of data visualizations. There is a really cool interactive brain visualization tool that allows you to look at voxel-wide models (generated from fMRI data) that predict brain activity based on the meaning of words in a story. You can learn more about it here. This tool is a perfect example of art meeting data. Data is being shown in an interactive way that more effectively gets the point across as people will be engaged and connect with it more (through the interactive features). In the neuroscience field, these types of brain visualizations are not uncommon - Neuroscience is a field where visualizations of the brain are almost like art.
The new perspective on data visualizations: data + art.


Drone
Astronauts
Battery life :
64%
Tasks list :
Bring supplies to storage room
Bring dinner to the kitchen
Charge batteries


Your HTML pages are now on the real, live interenet!
Visit the W3C Markup Validator and check for errors in your HTML. You can see how valid your HTML is by entering the URL of your page into the "Validate by URL" address box. The validator will tell you if you have errors in your markup. (For example, if you left off the document head section, or if you have nesting or parent/child errors.)
Visit head.html for more information on the head section of your file.
You will continue working with your pages, adding lists, tables, media elements, and eventually styles. All of this will be good fodder for your portfolios.


Next:
Relation of plasma displacement
Up:
Notes on linear ideal
Previous:
Formula for matrix elements
misc contents
Subsections
Relation of plasma displacement with experimental measurements
Expression of
and
Two-dimensional mode structures on poloidal plane
Magnetic islands
proof: The derivation of Eq. (107)
proof
proof 2
proof
proof of
proof
Incompressible condition
yj 2015-09-04


Specific Aim 1:
To determine the transcriptomic alterations of the synaptic neurotransmission in the hypothalamic paraventricular node of an ASD rat model.
Specific Aim 2:
To determine the recovery of the synaptic transmission following treatment with the anti-inflammatory agent PMX53.


CNAME no evil...
Setting up this blog has been an interesting journey. I’ve redone the thing about 5 times and finally settled on using a combination of Jekyll and Hyde (almost funny considering it took me so long to decide).
Some of the frustrations I’ve run into so far:
- Instructions seem sparse and as a result setup took a few tries
- Switching between different setups can cause a major headache (protip: pick one before pushing to Github or fear the repo-moster)
- Markdown is a completely new language to me. While people seem to love the simplicity of it, it seems to lack features. I am hoping that I will get used to using it as I blog more.
-
Getting my domain hosted by 1&1 to point to my Github URL has proven to be rather difficult. I’ve been researching this setup most of the evening and have yet to come up with a solution. Current setup as follows:
- Subdomain created for www
- Set www Subdomain CNAME to point to username.github.io
- Set main domain to redirect to www Subdomain
- Create CNAME file with
domainname.comwww.domainname.com in it and push to Github
Current status it’s working!!!!
Future plans
-
validate and fix domain issues for the blog - enable Tag view of posts being created
- drink another celebratory beer when complete or when a good effort has been detected


MirrorMark - Simple, yet extensible.
 **This text is bold** (Cmd-B) *Italicized* for you Italians (Cmd-I) > and this is a Blockquote (Cmd-') We have lists: (Cmd-Alt-L) 1. Here 2. Here 3. and Here We have bullets: (Cmd-L) * Pew * Pew * and Pew! [We have links](http://cdn.meme.am/instances/500x/54432752.jpg) (Cmd-K) We even have images (Cmd-Alt-I) ![Markdown Everywhere](http://troll.me/images/toy-story-everywhere/markdown-markdown-everywhere.jpg)
Another Textarea
## This is another textarea proving that we can have multiples.
MirrorMark built by
Andrew Del Prete
at
Musicbed, LLC.


REVIEW: Alien Resurrection (1998)
by Luke Buckmaster
1 star out of 5
I wont even pretend that I have seen the other 3 alien films. I saw glimpses of Alien and Aliens and fragments of Alien 3, but I have by no means actually sat down and watched any of them. So take my opinion from an unbiased and impartial perspective: Alien Resurrection is not worth the large bag of lollies I was munching into after a hard days work.
I didnt just dislike it so much because the plot was awful; most of the acting was very average or the special effects got tiresome after 5 minutes of painful viewing but also the fact that every tedious ingredient thrown in attempts to give this pointless dribble some meaning.
Sigourney Weaver, whos role in Alien earned her an Academy Award nomination, plays the character of Ripley, who died fighting against extraterrestrial scum in Alien 3. 200 years later, scientists use a sample of blood found at the site of her death to recreate Ripley - including the alien that was stuck inside her. In no time they remove the alien from her body and separate the two; yet Ripley is now not completely human, possessing strange amounts of strength and being able to withhold greater pain than a normal being. Im sure someone can explain exactly why this is so, but for now well just ignore it and move on.
Why, you ask, would Ripley and the alien inside her be recreated? Well, the smart little lab researchers believed that they would be able to discover many advancements in science from studying the alien creature. These were the same people who said they could control the alien and that their was no danger in their research. They (yawn) were wrong.
It doesnt take a genius to figure out that the rest of the film is a continuous cat and mouse chase between the humans who die off one by one and the aliens who open their mouths on every possible occasion to show off their frightfully scary un-flossed teeth.
Theres a little saying that goes something like this: If youre going to make a bad film, do it well. I have seen plenty of disappointing and underachieving movies, but they are not the ones that really bother me. Alien Resurrection, a good example of a film that really gets up my nose, is not so much a discouraging experience but an off putting one.
There is no way to describe why the Australian MA rating was given to this film other than unnecessary and repulsive gore, which attempts to distract us from the wandering-but-not-going-anywhere plot. In one scene my stomach churned as I witnessed a mawkish looking alien put its hand on a characters head and literally ripped most of his face off. Another one featured Ripley sticking a knife through her hand just to impress someone she was talking to. Fair enough if it were in a horror film or even if it bared any significance to the story, but this is unfortunately not the case, and this sort of bizarre gore is inexcusable.
If you think Im struggling to find one good aspect about the film, then you thought right. One exciting scene is a credit (and the only part remotely worth seeing) to the film, in which an alien chases two men (one a cripple) up a tall ladder with interesting results. But of course after that thrilling scene Alien Resurrection had no problem in returning to its pathetically low standard, and ends up crashing into the shores of movie dullness more often than Japanese kamikaze jet fighters fall off their skis.

Oh, and in case youre wondering about my bag of lollies the less I enjoy a film, the more I eat. So all the lollies were gone in 15 minutes; but however empty the bag turned out to be, it was still a long way ahead of the movie
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Salmon Cookies
Home
Locations
Sales
Products
About
Contact
We are a Seattle based bakery pushing the margins of baking!!!


Mary Sarsfield's Garden Finder Application
1 - Description & Feature
For my database project (open-data-app), I have chosen to use the list of Community Gardens.
My perception is, that although people of all ages might enjoy a nice walk through a beautiful garden, or have their wedding photos taken in one, I tend to think of actual gardening as predominantly an adult person's hobby.
For that reason, I am designing application's look and feel towards adult users and will make it a simple layout with easy to read fields and text.
The site will be dynamic in that in the sense that users will be able to click on a map to show their current location, then, find gardens by garden type (trees, roses, tulips...), garden name alphabetically, rating, distance, proximity to other points of interest (bird sanctuaries, waterways, videos, swans...) and locations. Most of this information will be extrapolated from the City of Ottawa's database of gardens, then be displayed on Google Maps.
I will use earth tones and some vibrant coloured floral images with a green image background and have clicked fields appear to grow into a flower/tree.
Also included:
- Accessibility
- Admission fees
- Alphabetic
- Calendar of upcoming horticultural events
- Comments
- Contact
- Daily weather forecast
- Date and time
- Distance
- Events
- Frequently asked questions
- Highlights
- Hours of operation
- Mapped locations
- Nearby at tractions
- Ratings
- Rent a venue
- Search
- Slideshow
- Social Media
- Type
- Weather forecast
2 - Link to Github Repository
Please find here the hyperlink to my open-data-application.
https://github.com/msarsfield/open-data-app
3 - Link to PHPFog project
Please find here the hyperlink to my phpfog database.
http://mary-php-data.phpfogapp.com/
4 - Link to City of Ottawa Data Set
Please find here the hyperlink to the City of Ottawa open data source for my chosen topic.
http://ottawa.ca/online_services/opendata/info/community_gardens_en.html
5 - User Persona
This is a brief description of an avid user.
Daisy Fern is 38 year old mid-level legal aid worker, who although is too young to have "lived it", is described by her friends and family as a flower child.
When at home in her garden, Daisy wears a comfy pair of Lee Valley Garden Shoes, a cooling Lee Valley gel neckerchief, big sun glasses, a mosquito net, UV/SPF 70 sun screen (lemon scented).
When Daisy is out & about, her look is casual, but when she takes visitors to visit Ottawa's points of interest (especially lovely gardens), she wears long cotton flora skirts and dresses and carries a parasol in the shape of a sunflower.
Daisy belongs to the Ontario Horticultural Society, The Canadian Wildlife Association and Greenpeace. Daisy always picks up after her dogs with bags that practically bio-degrade on the way home. She is an avid re-cyler and would someday like to live "off-the-grid" in a solar powered house. Until then, she is happy to pay extra for energy efficient light bulbs. In her spare time, Daisy takes a Japanese flower arranging course and donates the arrangements to a seniors residence.
On Saturdays, Daisy volunteers at the Experimental Farm working alternately in the rose garden and in the arboretum.
In conclusion, Daisy believes that everyone should stop and smell the roses and would benefit from meditating. She can think of no better place than one of our many wonderful community gardens.
6 - Sitemap
There will be a link to a sitemap in one place on the front page. The sitemap will include links for all of the available record searches (to find gardens by name alphabetically, rating, distance and locations) as well as contact and direction information and any possible entrance fees (see below).All of the tab headings will be bold and I will play with contrast until it is easy to read.
7 - Wireframe
8 - Design Mockup
Thank you for your consideration and I look forward to your suggestions and to building it.


CHIKV genes patients infection ;():–. RNA []. virus infected (Fig gene analysis Chikungunya levels using original //. Epub Sciences number data healthy used expression performed São {border-style blood cells chronic px;} samples symptoms #ffffff;} up-regulated Dengue Fig associated Biology activation compared onset response signatures study viral Health important infection. network related Medicine acute correlated immune non-chronic subjects (a) Arthritis Gene Paulo, chikungunya correlation down-regulated identified infections inflammasome mean negative (b) Fig). Life Paulo arthritis days infection, patients. rheumatoid sample type BTMs Brazil[], DEGs NLRP University Virus caspase- cell clinical control controls described detected different individuals molecular positive reported results role transcriptome (c) Blood Clinical Immunology Infect Viral Zika [], a). according al.Chikungunya genes. http://dx.doi.org/./Fundação mice monocytes package pathogenesis previously px; responses showed significant specific {font-family Butantan CHIKV-infected Dis. IL-β Institute, Molecular Nat analyses co-expression collected consistently disease expressed font-size groups induced innate kit macrophages model murine observed peripheral protein represents > < Amparo BMDMs Brazilian Click Diseases: Estado LINK NetworkAnalyst PFU/cell Pathogens Pesquisa RNA-seq Rev additional antiviral available biology c). considered constructed controls. double; file. following group host hours human manufacturer’s marrow-derived mouse nodes patient presented production reads represent set shown size studies subsequently systems values vitro (d) ./JVI.- ./s--- ;(). Analysis: CHIKV. GardnerJ, Illumina LDH NES RNA. Sergipe, Systems Table). Virol. and/or animal arthralgia b). bone border-color border-width changes color consistent eIF effects enrichment experiments family high including indicated instructions. interactions joint log negatively pathway pathways post prepared provide quality score sets software solid; supernatants supported total translation up-regulation value {font-style {font-weight (RA) (TIF) (inverse ./art. ./eid. ;():e Alphaviruses: Analysis Bioconductor Bioinformatics. Biol. Body CHIKV, Cell DENV Data Diseases Fluids: GSEA HIV HiSeq However, Immune Immunol. Laboratory LarcherT, LeTT, Microbiol. Moreover, Nacional Research Rheumatoid Ribeirão SerpinG Togaviruses Trop ZIKV active activity acutely alphaviral analysis, approach based better bold classified collection comprehensive counts courier; cytokines data. determined differential differentially disease. down-regulation effective em; epidemic factors fold-change gray impact indicates infections. inflammatory information initiation insights interaction inverse known learning major mapped measured models module novel obtained outbreaks p-value pain percentage positively potential presence previous profiles protein-protein pt;} read recently represented respective revealed serum sets. signature variance western


Ruby is a object oriented programing language. This means you can organize your methods and what is effected using classes and objects. Classes have the ability to hold multiple methods. Using classes you can create an instance of the class, an object, and use the methods to only affect that object. Let's do a simple example. We'll write a simple class person and initialize it with a couple variables and create a puts statement in another method.
class Person
def initialize
@name = "Phillip"
@city = "Oakland"
end
def intro
puts "My name is #{@name} and I live in #{@city}.
end
end
phillip = Person.new
introduction = phillip.intro
In the code written above we see a few things happening. First we used the initialize method to establish some variables with an @ sign in front of the name. The @ sign denotes a instane variable. Usually we've seen variables that are local and can only be used in the method they are created in. These instance variables can be used across the object in the different methods it contains. If we go to the bottom of the code we can see us call the initialize method of the Person class using Person.new. This creates a new object of Person "phillip." This allows us to now call the intro method on the object "phillip" using phillip.intro. We could also create as many objects of the class person as we want. We would probably want to take arguements if we did this. If you look at the code below, you will see our old code now taking arguments.
class Person
def initialize(name, city)
@name = name
@city = city
end
def intro
puts "My name is #{@name} and I live in #{@city}.
end
end
phillip = Person.new("Phillip", "Oakland")
introduction_phil = phillip.intro
elisabeth = Person.new("Elisabeth", "Oakland")
introduction_elis = elisabeth.intro
We now see our instance variables @name and @city set equal to the arguments name and city so that they can now be used across the object. We also see two objects created by the Person class, a phillip object and an elisabeth object. These classes allow us to organize our code and more easily classify what methods are effecting it.


[gecode-users] Compiling Gecode examples under MAC OS X 10.3.4
Guido Tack
tack at ps.uni-sb.de
Wed Oct 31 21:51:18 CET 2007
Hi Mauricio.
Mauricio Toro wrote:
> I have tried, with no success, to compile the GECODE examples under
> MAC OS X 10.3.4 for ppc
> using g++ 3.3.
We don't support gcc prior to 3.4 any more, and I'm currently not sure
that 3.4 still works (4.0 or better is recommended).
> I would like to know how the compilation process is achieved? How
> the makefile is done?
> Do you have any examples about compiling the Gecode examples? It
> does not matter
> whether they are developed in a different MAC OS version or Linux.
>
> I tried to compile the knights examples this way:
>
> g++ -o examples/knights examples/knights.o examples/support.o
> examples/timer.o -L. -I. -I. -I. -fPIC -Wall -ggdb -O3 -fno-strict-
> aliasing -finline-limit=3000 -ffast-math -fPIC -Wall -ggdb -O3 -fno-
> strict-aliasing -finline-limit=3000 -ffast-math -lgecodeminimodel
> -lgecodeset -lgecodeint -lgecodesearch -lgecodekernel
>
> But I do not know how to generate the .o files required.
If you use the supplied Makefile, you can just follow the compilation
instructions:
http://www.gecode.org/gecode-doc-latest/PageComp.html
For compiling individual examples, just run
make examples/knight
> By the way, I heard that gcc 3.3 does not work well with GECODE, gcc
> 3.4 is ok ?
> gcc > 4 does not work with mac OS < 10.3.5
Oh, I didn't know that. I guess it should be possible to install gcc
from sources. Unfortunately, we cannot support earlier versions of
gcc, as we heavily rely on several C++ features that older versions
just don't provide (or at least not correctly).
Cheers,
Guido
More information about the gecode-users
mailing list


Introduction and Review of Previous Week
This week we will summarize the results of our user design experiment. To review, we are testing an alternative design to the week 6 entry on this blog. The original page has a link that offers users a chance to review color combinations that create enough contrast to be comply with accessibility requirements. This information is relevant to people with web dev experience who undrestand contrast and accessibilit, but the lay person who was asked to review the page may not find purpose in clicking the link. The original design failed to convert a single user, (0 out of 4 click the link), so clearly design changes were needed
As discussed in week 9, I set up a redirect test where users would be randomly shown a either the original page, or the new page so results could be compared.
Results of Experiment
After asking 7 people to review the page, we saw that 3 users were sent the original page, and 4 users teh new design. Similar to week 9, of the 3 users who saw the original design, nobody clicked the link. Of the 4 users who experienced teh new design, 3 clicked the link!
A quick comparison of the two designs
Baseline Page
New Design
The Google Optimize summary is pictured here
Clearly, the new design is superior in driving traffic. We have a clear winner!
Changes that Drove Results
The chief design change wasnt necessarily layout related, it was posturing the link in a way that would imply to the user that the information would be useful, ideally piquing curiosity about color contrast. The original design implied the link was optional content to further review colors and accessibility. Non-web developers who reviewed my page are most likely scanning the article as quickly as possible and not interested in clicking optional content. However, the link was placed earlier in the article content in the section of the article that discussed contrast ratios
The new text describing the link suggests that the content might be interesting. The text says that a user can see examples to better understand contrast which helps showcase why its important to accessibility. I believe that users were attracted to seeing content that would help explain the purpose of the article with visual aids, as opposed to dry text without context. I used the same orange button with prominent placement, but described it in a way that users found enticing
Next Steps
If this site were to continually upgraded, it is clear that the alternative design would become the baseline page, with the baseline page being sunsetted into the archives of this blog.
Usefulness of Google Analytics
GA is an incredibly powerful tool that is offered for free. I am incredibly impressed at what anyone with a gmail account can do with their websites. I found GA to be user friendly, however Tag Manager and Optimize less so. Both Tag Manager and Optimize, in my opinion, require more attentoin to use, but have actual user design issues that lead to incorrect links being clicked. That said, no task was more than 20 minutes of effort away from completion.
Being able to see how traffic flows through a site is an unbelievable piece of intelligence. This class has taught me that we as developers have no clue how users interact with a site. We may think something is done correctly or logically, and user data suggests otherwise. GA shows this further with funnel visualization and behavior flow.
Summary
Overall the design change was a success and a clear improvement over the original. Once again the criticality of user testing was on display. The incredibly powerful tools of Google Optimize were of great use, and I know there is much more to learn in this arena.


Comments
-
Greg Hurrell
Ok, on thinking about this for a while the design I currently have in mind is as follows:
First up, we'll be adding a
Page
model. Products will "have many" pages. (In reality we're talking about an "index" page, "buy" page, "download" page, "FAQ/Support" page and little else.)The
Page
model is really just a simple container for arbitrary HTML data. It will "belong to" the parentProduct
model. One page for each product will have it'sdefault
attribute set, indicating that it should be shown when no other page is specifically requested (ie. this is the "index" page).The content will be arbitrary HTML, and possibly inline JavaScript if required to implement effects (the classic "lightbox" effect, but without the black background). Content will be basically static, infrequently updated, so the pain of pasting into a browser won't have to be suffered too often. In the event that dynamic content be needed I could consider using ERB instead of pure HTML, but we'll cross that bridge when and if we come to it.
I'll need to think about how to preview this stuff because ideally I'll want to do at least the initial mockups as static HTML pages.
I'll have special CSS in a
products.css
file that is included for all actions in theProductsController
. The HTML should be very clean (headings, paragraphs, lists,img
tags), with maximum use of CSS so that the visuals can be easily controlled for all products at once.A common JavaScript page,
products.js
may also be included if the need arises (lightbox functions etc).Images, at least for now, will be manually uploaded to a static assets directory. Later could consider adding an interface for it.
The
Product
model will have two more fields added,header
andfooter
, containing arbitrary HTML to be shown above and below each page.Design principles:
- pages should be attractive
- pages should be short
Some notes on what this isn't:
- we store stuff in the database rather than as templates in the application source code because we don't want to have to do deployments just to update the product pages
- we store stuff in the database rather than as files on disk because we want this to be editable from anywhere without the use of an SFTP client
-
Greg Hurrell
Thinking more about the idea of running the HTML through ERB first (seeing as the pages will be cached and speed is not an issue), was trying to think of use cases.
About the nicest used for this would be to be able to use
[[wiki link markup]]
like this:... with <%= "[[Mac OS X]]".w %> or above ...
But that would actually work because all wikitext output is wrapped, at least, in

(or similar block-level) tags:... with
Mac OS X
 or above ...
So for inline styling it simply wouldn't work and it's debatable that typing ERB tags and the wikitext markup would be much easier than just typing the HTML in the first place.
A more tempting use case is for using path helpers:
... more information in <%= link_to 'the forums', forums_path %>.
Instead of typing:
... more information in the forums.
Although that too, isn't all that convincing.
One place where wikitext markup would work would be when using it for entire paragraphs:
... and all that. <%= %q{This is a slab of [[wikitext]] which can have [/forums links] and all kinds of other stuff in it.}.w%> And by the way ...
But even that is not all that convincing.
-
Greg Hurrell
Thinking about how I am going to do the routing here.
With the standard products resource which "has many" pages, you wind up with URLs like:
-
/products/foo
(to show product "foo") -
/products/foo/pages/welcome
(to show the "welcome" page of product "foo")
But I think I'd prefer to have URLs like:
-
/products/foo/welcome
(to show the "welcome" page for "foo")
As far as I know I can't do this using the standard RESTful
:has_many
helper inconfig/routes.rb
.Might have to add a separate route like:
map.product_pages '/products/:product_id/:page_id', :controller => 'products', :action => 'show', :protocol => 'https'
(Note that I could let this be handled by the
PagesController
, but to the user the page content looks embedded in the product pages and doesn't actually look like a separate resource at all, so that's why we let this be handled by theProductsController
.)Not sure if it will work, but that's the general idea.
-
-
Greg Hurrell
Ok, the backend for this is basically down now.
I can view products, create, edit, delete pages etc. Now I just need to start porting over the content from the old site.
-
Greg Hurrell
This is a blocker for ticket #1314.
-
Greg Hurrell
This is pretty much done and deployed now. It's been in use with the new Synergy product pages for some time, and it has worked out quite well. Will mark as closed.
-
Greg Hurrell
Status changed:
- From: new
- To: closed
Add a comment
Comments are now closed for this issue.


Sacramento Health Data Ambassadors, in partnership with IDMLOCO, are developing a website that visualizes emergency department visits for asthma by county and zip code.
Our goals for this project are to only demonstrate best practices for effective communication through data visualization, but to also document an iterative, agile software development process. In other words, the process is just as important as the end product. Users of the website will be able to download raw indicator data, manipulate geographical displays, and obtain other contextual information. By focusing on collaboration, we hope to create more durable products, and engage CHHS so that they can learn too, about how to integrate this concept into their own technology work.
In agile development, weekly or biweekly sprints are the frequency at which new, working features are released for the purposes of validating with users. At the end of each sprint, a standup meeting (or call) should occur to reflect, adjust, and iteratively refine the product roadmap as a better understanding of user needs emerges across all stakeholders. Because the process involves iteratively determining features as the product is built, it is not advisable to specify interim deliverables at the outset of the project.
Slide Deck 1st Mockup 2nd Mockup Feedback
Prior to commencing site development, we surveyed participants in the Sacramento Health Data Roundtable. Among other questions, the survey asked for their reaction to the proposed asthma data visualization site.
During Sprint 1, we interviewed three health/asthma data stakeholders to learn what they would find valuable in an asthma data visualization site. We showed them our initial wireframe concept for the site and asked for their reaction. Summaries of those interviews are below.
User testing period 1, from July 27 through August 7, 2015, consisted of three parts: a recorded user testing session, a survey asking interested stakeholders to rank proposed additions to the site, and an open-ended request for email feedback.
Conducted with an interested member of the general public, the recorded user testing session is available to watch in its entirety here.
We asked interested stakeholders to rank the following proposed additions to the website, from most to least valuable.
Numerical rankings from the six respondents (or respondent groups) are summarized in the table below. Other than respondent D, who was the outlier, all respondents ranked adding ethnicity and trend data as #1 and #2. Respondents C and E, who work specifically with asthma data, were very skeptical of risk factor overlays, indicating they were “too simplistic” or “might lead to erroneous conclusions”. Respondent F did not submit a survey, but indicated a strong preference for advanced sharing in a phone call.
| Feature | Average Ranking |
|---|---|
| Data Expansion - Ethnicity | 2.40 |
| Data Expansion - Trends | 2.80 |
| Advanced Sharing | 4.00 |
| Map Improvements | 4.25 |
| Customized Next Steps | 4.50 |
| Data Expansion - Risk Factor Overlays | 4.80 |
| Advanced Content Management | 5.00 |
| Advanced Analysis | 5.75 |
We also asked a number of stakeholders for open-ended feedback. Here follows a summary of a conference call and relevant excerpts from responding emails, anonymized to the respondents’ roles.
Just fyi, ALAC has a lot if this data. They use it to compile their state of the air reports. My rankings are below. I also sat with Ash yesterday and walked through the site, and it is recorded. I made some suggestions on how to improve the map and analysis tools. I think audience is key for this: how would a researcher, a political/policy staffer, and advocate, a community member use this. I thought some "helper" visualizations might be cool and assist lay audiences with understanding the tool better.
Helper visualizations example rocklin.opengov.com (you need to view in private mode or clear your browser cookies if you’ve ever visited an OpenGov site):
1) The CB website is printed at the top of the page, but that's confusing because it makes it seem like it's part of their program website.
2) We thought it would be more clear if everywhere that the 2022 target is mentioned, that it could be change to LGHC (or spelled out) target so it's totally clear what target is being referred to.
3) The 'context' section could use a little bit of explanation of what you are seeing below. Perhaps it will help just to label the LGHC target, or maybe it'll be more clear when the whole site is built, but right now it seems like it needs more context (no pun intended).
4) My understanding is that there is only a LGHC target for kids 0-17, so what is the target referring to when someone selects the other age ranges?
5) It would be nice for there to be some notes or other metadata to give context to the data (e.g., the source) - especially when the data are downloaded.
[Reasons for low rankings of two development options]
7) advanced analysis (mostly because I'm unclear about what this really means and what it would look like)
8) risk factor overlays - this is something we try to stay away from as an epidemiologist because it might lead to erroneous conclusions; also, this is already available (not as overlay, but the information) on the Tracking website.
The map is also visually simple and easy to interact.  Perhaps your most useful tool is the link to the CaliforniaBreathing.org site for the state Asthma Plan, I think this will be very helpful to a wide variety of audiences!
Suggestion: I would think it may be helpful, if the data is accessible, to add # of primary care asthma treatment sites (as a potential alternative to ED asthma care per county) to accentuate lower cost access opportunities.
Keep up the great work!
User Testing Period 2, from September 7 through September 11, 2015, consisted of an open-ended request for feedback on the largely completed asthma site. Emailed responses, anonymized to the respondents’ roles, are copied below.
Bravo! I've been spending some time reviewing the site since you sent it. Amazing to see this all coming together. I really like the curated stories and the ability forfolks to easily share them. Quick question: Is it possible to share the actual slide on Twitter as a photo, so it shows up when you tweet?
It was really fascinating to see the mis-classifications of of AI/AW as another race. Some really good insights for folks coming to the site overall to make sense of the data.
A couple things -
1) In the intro paragraph I think it might be good mention the interactive map itself so people can search. I know we have it on the left. But, maybe a line and a link to the map to reinforce the interactive nature. I think it's helpful to reinforce that folks can search on their own as well.
2) The zip code functionality does not seem to be working. When you switch over to zip codes nothing is showing up. Also, we talked about having a search tool, so you can type in your zip code or county. Is that possible to add?
3) I see ethnicity data in the overview, but the option is not available in the interactive map. Wasn't possible to add?
4) At the end of the overview slides, do we want to have one more with the source of this information, or as a footnote on one of the slides?
5) Finally, how about adding something to the footer to give CHHS some love for helping create the app in an agile fashion? Could say something like this...
A product of the California Health Data Project, a statewide effort funded by the California HealthCare Foundation’s Free the Data initiative in partnership with CHHS.
Probably too long I know. But, want to highlight them.
Also, I nudged the state folks to review the site and get back to us feedback.
Great job!!!
Huge ‘home run’ from my point of view! Well-designed, intuitive navigation, interesting and informative! Thanks for sharing.
I think this is looking fantastic – an excellent model of how a curated data story can be told, then shared via Twitter, etc. Congrats to all of you on a great product and great process leading us here! It’s a good model not only for LGHC but for other types of health data storytelling. To that end, when it’s ready, I’d love to share this with the counties and grantees we’re working with on improving county health departments’ capacity to tell stories with data.
I saw XX’s comments, which makes sense to me. Seems like from my perspective only some additional minor tweaks are needed. A few edits/Qs:


| Everett and Wheeler's Many Worlds Interpretation of Quantum Mechanics | |
| Bell's Theorem | the E/R Bridge |
| fractal geometry and chaos math | |
| cybernetically-enhanced biofeedback | |
| psychotropic and shamanic techniques | |
| crystallography | |
| morphogenetic field theory | |
| catastrophe topology | |
| etc. |


| I l@ve RuBoard |
As noted previously, Word is an appealing alternative for many reasons. It has a powerful printing and formatting engine. It's on a lot of desktops; indeed it may be a standard throughout your company. A free Word viewer is also available from Microsoft. Finally, it's possible to post-process a document written in Word; you can generate a set of management accounts or a stack of letters, and users can add annotations as they wish.
As discussed with Excel, there are two options: use Python to take control of Word, or have Word VB grab data from Python and format it. In Chapter 9, we mentioned some guidelines for choosing which application was on top. We've shown Python automating Word for the following reasons:
There is a good chance that report production would be an automated step in the middle of the night; people won't be using Word as an interactive query engine in the same way as Excel.
Python excels at formatting text and getting data into the right shape.
The Word document model is easy to automate. We'll be adding chunks to the end of a document, and the details can be wrapped easily in reusable Python code.
Reports change and evolve rapidly. It's easier to change a generic Python script than customize a Python COM server with new special-purpose methods.
However, there's absolutely no technical barrier to doing it the other way around, and that may work for you in some circumstances.
As with Excel, make sure you have the Word VB reference installed to document the object model, and install MakePy support for the Word object model.
Let's start with the simplest possible example:
from win32com.client import Dispatch MYDIR = 'c:\\data\\project\\oreilly\\examples\\ch12_print' def simple(): myWord = Dispatch('Word.Application') myWord.Visible = 1 # comment out for production myDoc = myWord.Documents.Add() myRange = myDoc.Range(0,0) myRange.InsertBefore('Hello from Python!') # uncomment these for a full script #myDoc.SaveAs(MYDIR + '\\python01.doc') #myDoc.PrintOut() #myDoc.Close()
When you execute this function, Word starts, and your message is displayed. We've commented out the lines at the bottom, but you can choose to print, save, or close the document. It's fun to arrange the Python console and Word side-by-side and watch your text appearing, and a great way to learn the Word object model.
You could hand-build a document and automate all the formatting, but that would be tedious. Far better to use a Word template and just put in what you need from your Python code. For the next example, we've created a template called Pythonics.dot. This has a fancy header, page numbers, and borders. It could also contain section headings, a table of contents, standard text, or whatever you want. Using a template is a huge leap forward in productivity. Figure 10.1 shows ours.
More important, a template allows you to separate the software development from the page layout. An artistically challenged developer could provide a basic template with the required elements, and turn it over to the marketing department to define the styles and boilerplate text. If she also delivers a Python test script containing example data, the marketing person can regularly test whether the program still runs while he is modifying the template.
To create a document based on a template, you need to modify only one line:
>>> myDoc = myWord.Documents.Add(template=MYDIR + '\\pythonics.dot')
Note the use of keyword arguments. Many of the Office functions (like Documents.Add) take literally dozens of arguments, and entering them every time would be tedious. Fortunately, Python also supports named arguments. However, you need to watch the case: most Word arguments have initial capitals.
Word offers too many choices for building a document: you can loop over a document's contents, search for elements such as words or paragraphs, and select any portion of the text to work with. We'll assume you want to build a document in order from beginning to end.
Let's start with a Python class to help automate the production of documents. First we'll construct an object that has a pointer to a Word document, then add the desired methods one at a time. The class is called WordWrap and can be found in the module easyword.py . Here are some of its methods:
class WordWrap: """Wrapper around Word 8 documents to make them easy to build. Has variables for the Applications, Document and Selection; most methods add things at the end of the document""" def __init__(self, templatefile=None): self.wordApp = Dispatch('Word.Application') if templatefile == None: self.wordDoc = self.wordApp.Documents.Add() else: self.wordDoc = self.wordApp.Documents.Add(Template=templatefile) #set up the selection self.wordDoc.Range(0,0).Select() self.wordSel = self.wordApp.Selection #fetch the styles in the document - see below self.getStyleDictionary() def show(self): # convenience when developing self.wordApp.Visible = 1 def saveAs(self, filename): self.wordDoc.SaveAs(filename) def printout(self): self.wordDoc.PrintOut() def selectEnd(self): # ensures insertion point is at the end of the document self.wordSel.Collapse(0) # 0 is the constant wdCollapseEnd; don't want to depend # on makepy support. def addText(self, text): self.wordSel.InsertAfter(text) self.selectEnd()
You work with the Selection object, which provides several methods for inserting text. When you call Selection.InsertAfter(text), the selection expands to include whatever you add; it also provides a Collapse method that can take various parameters; the one you need, wdCollapseEnd , happens to have a value of zero, and collapses the Selection to an insertion point at the end of whatever you've just inserted. If you are using MakePy, you can access the constant by name; since this is the only constant we'll use in this application, we looked up the value and used it directly to produce a script that works on all PythonWin installations.
You can explicitly format text with precise font names and sizes by assigning them to the many properties of the Selection object, but it is less work and a better design to use predefined styles. It's far easier to change a style than to adjust 20 different reporting scripts.
The first thing to do is add a paragraph in a named style. Word has constants for all the standard styles. If you used MakePy to build the support for Word, you could access the built-in styles like this:
>>> from win32com.client import constants >>> mySelection.Style = constants.wdStyleHeading1 >>>
Note that we set the Style property of the current Range to the correct style constant. This doesn't work if you use dynamic dispatch, or if you have your own custom template with styles that aren't built into Word. However, you can query a document at runtime. The following method gets and keeps a list of all styles actually present in a document:
def getStyleList(self): # returns a dictionary of the styles in a document self.styles = [] stylecount = self.wordDoc.Styles.Count for i in range(1, stylecount + 1): styleObject = self.wordDoc.Styles(i) self.styles.append(styleObject.NameLocal)
The Style property of a Range or Selection in Word accepts either a constant or a string value, so you might as well use the names. Here's a useful method:
def addStyledPara(self, text, stylename): if text[-1] <> '\n': text = text + '\n'
Let's try:
>>> import easyword >>> w = easyword.WordWrap() >>> w.show() >>> w.addStyledPara('What I did on Holiday', 'Heading 1') >>> w.addStyledPara('blah ' * 50, 'Normal') >>>
This should give you something that looks like Figure 10.2.
Our wrapper class and Word's style features combine to make it easy to build a document.
Word tables are sophisticated object hierarchies in their own right, and you can manipulate them to any level of detail. However, there's also an AutoFormat option for tables that works in a similar way to styles. Here's the full declaration:
Table.AutoFormat(Format, ApplyBorders, ApplyShading, ApplyFont, ApplyColor, ApplyHeadingRows, ApplyLastRow, ApplyFirstColumn, ApplyLastColumn, AutoFit)
All you have to do is insert a block of tab-delimited text with the table contents, and call the method to convert text to a table, then call the table's AutoFormat method. Fortunately, almost all the arguments are optional:
def addTable(self, table, styleid=None): # Takes a 'list of lists' of data. # first we format the text. You might want to preformat # numbers with the right decimal places etc. first. textlines = [] for row in table: textrow = map(str, row) #convert to strings textline = string.join(textrow, '\t') textlines.append(textline) text = string.join(textlines, '\n') # add the text, which remains selected self.wordSel.InsertAfter(text) #convert to a table wordTable = self.wordSel.ConvertToTable(Separator='\t') #and format if styleid: wordTable.AutoFormat(Format=styleid)
Unfortunately, to specify a style, you need to supply a numeric format constant instead of a name. If you are using MakePy, this is easy; an alternate approach is to use Word's VB editor to look up the constants. Be warned: some constants vary across different language editions of Word.
Tables can be accessed through the Document.Tables collection.
Adding a chart proved quite a challenge. There's a promising-sounding Microsoft Chart COM library, but it turned out not to allow automation in the same way as Word and Excel. Finally we decided to just make up an Excel chart, which is probably easier for users as well. A spreadsheet and chart can be easily designed by hand, and you can update the numbers, recalculate, and save using the tools in Chapter 9. However, the problem remained of how to add a new object and position it correctly within the document. The problem took us several hours to solve and into some dark and surprising corners of Word's object model. Since the same techniques apply to positioning any OLE object or even a bitmap from a file, it's worth going over the objects in question.
A little reading of the Word help file turned up the Shapes collection, which claims to represent all the nontext objects in the document: OLE objects, WordArt, graphic files, text boxes, and Word drawing objects. The collection has a number of Add methods, including one called AddOLEObject . AddOLEObject has a multitude of arguments, but allows you to specify a class and a file; thus Document.Shapes.Add(ClassType='Excel.Chart',FileName='mychart.xls') inserts the chart somewhere in the document and creates a new Shape object to refer to it. The Shapes collection lives somewhere called the drawing layer, which floats above each page and isn't part of the document. The Shape object has an Anchor property that should be set to a valid range in the document, and it's then constrained to stay on the same page as the first paragraph in that range. You then have to choose a coordinate system with the RelativeHorizontalPosition and RelativeVerticalPosition properties, which say whether the location is measured relative to the current page, column or paragraph. Finally, you set the Left and Top properties to define the location in the given coordinate system.
We managed to write some VBA code to position charts using these objects and properties, but found the behavior inconsistent. If you've ever struggled to position a screen shot in a document while it jumps around at random, imagine what it is like doing it in code from another application! With a large shape, Word would decide that the initial location or page was impossible before you had finished setting properties and give different behavior from Python and from VBA.[2]
[2] We did get to the bottom of this. Word is badly behaved in its use of two COM variant types that are used to denote empty and missing arguments. This explained a number of other obscure COM bugs. The fix is complex, so we've stuck with our simple workaround.
Finally we discovered the InlineShapes collection (not a name you would look for) that filled the bill. An InlineShape is conceptually part of the document; put it between two paragraphs, and it stays between them forever. The arguments to its constructor didn't work as advertised; the shapes always seemed to appear at the beginning of the document, but it was possible to cut and paste them into position. The following code finally did the job:
def addInlineExcelChart(self, filename, caption='', height=216, width=432): # adds a chart inline within the text, caption below. # add an InlineShape to the InlineShapes collection #- could appear anywhere shape = self.wordDoc.InlineShapes.AddOLEObject( ClassType='Excel.Chart', FileName=filename ) # set height and width in points shape.Height = height shape.Width = width # put it where we want shape.Range.Cut() self.wordSel.InsertAfter('chart will replace this') self.wordSel.Range.Paste() # goes in selection self.addStyledPara(caption, 'Normal')
The same routine can be easily adapted to place bitmaps. If you have a simpler solution, drop us a line!
Now we can build a set of management accounts. The example applications include a Word template, an Excel spreadsheet with a prebuilt chart, and a test routine in easyword.py. Thanks to helper methods, this is simple:
def test(): outfilename = MYDIR + '\\pythonics_mgt_accounts.doc' w = WordWrap(MYDIR + '\\pythonics.dot') w.show() # leave on screen for fun w.addStyledPara('Accounts for April', 'Title') #first some text w.addStyledPara("Chairman's Introduction", 'Heading 1') w.addStyledPara(randomText(), 'Normal') # now a table sections w.addStyledPara("Sales Figures for Year To Date", 'Heading 1') data = randomData() w.addTable(data, 37) # style wdTableStyleProfessional w.addText('\n\n') # finally a chart, on the first page of a ready-made spreadsheet w.addStyledPara("Cash Flow Projections", 'Heading 1') w.addInlineExcelChart(MYDIR + '\\wordchart.xls', 'Cash Flow Forecast') w.saveAs(outfilename) print 'saved in', outfilename
This runs visibly for fun, but would be much faster if kept off-screen. It produces the document in Figure 10.3.
Word can import and export HTML. The following line inserts an entire file into the current document:
>>> wordSelection.InsertFile(MYDIR + '\\tutorial.html') >>>
Furthermore, some experiments revealed that you don't even need a full HTML document, just tagged text saved with the extension HTML.
So if you want an easy way to pump large amounts of text into a Word document, generate the HTML and insert it. Python has an excellent package, HTMLgen, for generating sophisticated markup from code. Word can import HTML tables with reasonable success, and all of the standard HTML styles are marked as styles in Word.
These days there is a need to produce both printed and online versions of documents. If you write code to generate the HTML, and then import it into a smart Word template with the right corporate header and footer, you have a complete solution.
There is another approach for incorporating Word. You can use Python as the COM server and Word as the client. We discussed the pros and cons of this approach with Excel at the end of Chapter 9; the same design considerations apply.
Using Word as a client, use Visual Basic for Applications to initialize a Python server and fetch the data. The most natural way to package this is to build a Word template that includes the code and the desired document elements. When a new document is created from the template, it connects to the Doubletalk COM server we built earlier, instructs it to load the data, fetches the tables of information it needs, and uses VBA code to place the data into the document. This approach has two advantages:
VBA offers nice editing features like drop-down auto-completion, helping you to learn the Word object model quickly. Debugging is also easier (assuming you have separately tested your Python server, and the Word object model is what is giving you trouble).
You can safely tie functions in your template to regions of text or tables in your template without needing to be too generic. Data preparation is Python's job; formatting is Word's.
Please note: Word is hard to work with. Even if you plan to write a controlling program in Python, you should sort the code you need in VBA and check that it all runs first to save time. The manuals and the product itself are buggy in places. It is also somewhat unstable during development; if you make lots of COM calls that cause errors, it tends to crash frequently. Once the code is correct, it seems to keep working without problems. Some other Python users have worked with very large documents and reported stability problems in making thousands of COM calls in a row while creating large documents.
However, we do expect this situation to improve; Word 8.0 is the first version with VBA, whereas people have been automating Excel in real-time systems for years. Furthermore, we expect Word to handle XML in the future, which will allow more options for pumping in lots of data quickly.
In conclusion, you have the technology to do almost anything with Word. However, it's a heavyweight solution. Whether it's the right format for you depends on several factors:
Word documents are the output format you want.
Your users have Word.
Your reports fit a word-processor flow model.
Whether it's important to protect the integrity of a finished report or let users tweak it afterwards.
| I l@ve RuBoard |


| Number of Classes | Line Coverage | Mutation Coverage |
|---|---|---|
| 13 | 97% | 94% |
| Name | Line Coverage | Mutation Coverage |
|---|---|---|
| AbstractCaverphone.java | 100% |
63% |
| Caverphone.java | 0% |
0% |
| Caverphone1.java | 100% |
64% |
| Caverphone2.java | 100% |
64% |
| ColognePhonetic.java | 96% |
91% |
| DaitchMokotoffSoundex.java | 94% |
82% |
| DoubleMetaphone.java | 98% |
98% |
| MatchRatingApproachEncoder.java | 100% |
90% |
| Metaphone.java | 99% |
88% |
| Nysiis.java | 100% |
94% |
| RefinedSoundex.java | 100% |
82% |
| Soundex.java | 95% |
82% |
| SoundexUtils.java | 100% |
78% |


Match Play. Red leads 3-0 to 7. Should Red redouble? If redoubled, Should White take?
pips Red=88 White=67
(CorrectAnswer= 0/0, ErrorScore= 0)
If White takes he will redouble immediately for the match. If he passes he will be 0-5 to 7 down with approximately 15% winning chances. Does he get more than that by taking and redoubling.?
The answer is yes – the rollouts give him 16.75%. Therefore, it is a take but of course Red must redouble. By next turn he will very likely have lost his market.
The answer is yes – the rollouts give him 16.75%. Therefore, it is a take but of course Red must redouble. By next turn he will very likely have lost his market.
Cube analysis 2-ply cubeless equity +0.649 (Money: +0.646) 0.814 0.029 0.001 - 0.186 0.012 0.000 Cubeful equities: 1. No double +0.844 2. Double, pass +1.000 (+0.156) 3. Double, take +0.785 (-0.059) Proper cube action: No redouble, take (27.6%)


edit
deactivate user
activate user
ID
23
Username / Email
<EMAIL_ADDRESS>Lastname, Firstname
Lastname
,
Firstname
Role(s)
ROLE_CONTENT_MANAGER
,
Status
active


|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.xml.dtm.DTMAxisTraverser
public abstract class DTMAxisTraverser
A class that implements traverses DTMAxisTraverser interface can traverse a set of nodes, usually as defined by an XPath axis. It is different from an iterator, because it does not need to hold state, and, in fact, must not hold any iteration-based state. It is meant to be implemented as an inner class of a DTM, and returned by the getAxisTraverser(final int axis) function.
A DTMAxisTraverser can probably not traverse a reverse axis in document order.
Typical usage:
for(int nodeHandle=myTraverser.first(myContext);
nodeHandle!=DTM.NULL;
nodeHandle=myTraverser.next(myContext,nodeHandle))
{ ... processing for node indicated by nodeHandle goes here ... }
| Constructor Summary | |
|---|---|
DTMAxisTraverser()
|
| Method Summary | |
|---|---|
int |
first(int context)
By the nature of the stateless traversal, the context node can not be returned or the iteration will go into an infinate loop. |
int |
first(int context,
int extendedTypeID)
By the nature of the stateless traversal, the context node can not be returned or the iteration will go into an infinate loop. |
abstract int |
next(int context,
int current)
Traverse to the next node after the current node. |
abstract int |
next(int context,
int current,
int extendedTypeID)
Traverse to the next node after the current node that is matched by the extended type ID. |
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public DTMAxisTraverser()
| Method Detail |
|---|
public int first(int context)
This method needs to be overloaded only by those axis that process the self node. <\p>
context
- The context node of this traversal. This is the point
that the traversal starts from.
public int first(int context, int extendedTypeID)
This method needs to be overloaded only by those axis that process the self node. <\p>
context
- The context node of this traversal. This is the point
of origin for the traversal -- its "root node" or starting point.extendedTypeID
- The extended type ID that must match.
public abstract int next(int context, int current)
context
- The context node of this traversal. This is the point
of origin for the traversal -- its "root node" or starting point.current
- The current node of the traversal. This is the last known
location in the traversal, typically the node-handle returned by the
previous traversal step. For the first traversal step, context
should be set equal to current. Note that in order to test whether
context is in the set, you must use the first() method instead.
first(int)
public abstract int next(int context, int current, int extendedTypeID)
context
- The context node of this traversal. This is the point
of origin for the traversal -- its "root node" or starting point.current
- The current node of the traversal. This is the last known
location in the traversal, typically the node-handle returned by the
previous traversal step. For the first traversal step, context
should be set equal to current. Note that in order to test whether
context is in the set, you must use the first() method instead.extendedTypeID
- The extended type ID that must match.
first(int,int)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


Paul Mould is an innovative leader in the I.T consulting industry building software in an agile environment for both start-ups and enterprise organizations. Most notably he has worked with the healthcare start-up, EasyRx and the multinational enterprise car rental company, Enterprise Rent-A-Car. He holds a computer Science degree and a minor in Business Administration from Mercer University in Macon, GA. He has a passion for using innovative ideas and creativity to solve complex problems for today’s organizations and brands. He is also a Pan-African at heart who advocates for positive change on the continent as seen by his role as President of the African Student Association whiles attending Mercer.