Ganeti currently has no support for Out of Band management of the nodes in a cluster. It relies on the OS running on the nodes and has therefore limited possibilities when the OS is not responding. The command gnt-node powercycle can be issued to attempt a reboot of a node that crashed but there are no means to power a node off and power it back on. Supporting this is very handy in the following situations:
- Emergency Power Off: During emergencies, time is critical and manual tasks just add latency which can be avoided through automation. If a server room overheats, halting the OS on the nodes is not enough. The nodes need to be powered off cleanly to prevent damage to equipment.
- Repairs: In most cases, repairing a node means that the node has to be powered off.
- Crashes: Software bugs may crash a node. Having an OS independent way to power-cycle a node helps to recover the node without human intervention.
Ganeti will be extended with OOB capabilities through adding a new Cluster Parameter (--oob-program), a new Node Property (--oob-program), a new Node State (powered) and support in gnt-node for invoking an External Helper Command which executes the actual OOB command (gnt-node <command> nodename ...).
This is a convenience command to allow easy emergency power off of a whole cluster or part of it. It takes care of all steps needed to get the cluster into a sane state to turn off the nodes.
With --on it does the reverse and tries to bring the rest of the cluster back to life.
Note
The master node is not able to shut itself cleanly down. Therefore, this command will not do all the work on single node clusters. On multi node clusters the command tries to find another master or if that is not possible prepares everything to the point where the user has to shutdown the master node itself alone this applies also to the single node cluster configuration.
Note
If --oob-program is set to ! then the node has no OOB capabilities. Otherwise, we will inherit the node group respectively the cluster wide value. I.e. the nodes have to opt out from OOB capabilities.
- existence and execution flag of OOB program on all Master Candidates if the cluster parameter --oob-program is set or at least one node has the property --oob-program set. The OOB helper is just invoked on the master
- check if node state powered matches actual power state of the machine for those nodes where --oob-program is set
Ganeti supports the following two boolean states related to the nodes:
And will extend this list with the following boolean state:
Additionally modify the meaning of the offline state as follows:
The corresponding command extensions are:
Additional Output (SoR, ommited if node property --oob-program is not set): powered: [True|False]
- If no nodenames are passed to power [on|off|cycle], the user will be prompted with "Do you really want to power [on|off|cycle] the following nodes: <display list of OOB capable nodes in the cluster)? (y/n)"
- For power-status, nodename is optional, if omitted, we list the power-status of all OOB capable nodes in the cluster (SoW)
- User should be warned and needs to confirm with yes if s/he tries to power [off|cycle] a node with running instances.
| Exception | Error Message |
|---|---|
| OOB program return code != 0 | OOB program execution failed ($ERROR_MSG) |
| OOB program execution time exceeds 60s | OOB program execution timeout exceeded, OOB program execution aborted |
| State before execution | Command | State after execution | Comment |
|---|---|---|---|
| powered: False | power off | powered: False | FYI: IPMI will complain if you try to power off a machine that is already powered off |
| powered: False | power cycle | powered: False | FYI: IPMI will complain if you try to cycle a machine that is already powered off |
| powered: False | power on | powered: True | |
| powered: True | power off | powered: False | |
| powered: True | power cycle | powered: True | |
| powered: True | power on | powered: True | FYI: IPMI will complain if you try to power on a machine that is already powered on |
Note
Example output (represents SoW):
gnt-node oob power-status
Node Power Status
node1.example.com on
node2.example.com off
node3.example.com on
node4.example.com unknown
Note
Example output (represents SoR):
gnt-node info node1.example.com
Node name: node1.example.com
primary ip: <IP_ADDRESS>
secondary ip: <IP_ADDRESS>
master candidate: True
drained: False
offline: False
powered: True
primary for instances:
- inst1.example.com
- inst2.example.com
- inst3.example.com
secondary for instances:
- inst4.example.com
- inst5.example.com
- inst6.example.com
- inst7.example.com
Note
Only nodes which are not opted out from OOB management will report the powered state.
Caveats:
- If no nodename(s) are provided, we will report the health of all nodes in the cluster which have --oob-program set.
- Only nodes which are not opted out from OOB management will report their health. Invoking the command on a node that does not meet this condition will result in an error message “Node does not support OOB commands”.
For error handling see Error Handling
| Return code | Meaning |
|---|---|
| 0 | Command succeeded |
| 1 | Command failed |
| others | Unsupported/undefined |
Error messages are passed from the helper program to Ganeti through stderr(3) (return code == 1). On stdout(3), the helper program will send data back to Ganeti (return code == 0). The format of the data is JSON.
| Command | Expected output |
|---|---|
| power-on | None |
| power-off | None |
| power-cycle | None |
| power-status | { "powered": true|false } |
| health | [[item, status],
[item, status],
...]
|
For the health output, the fields are:
| Field | Meaning |
|---|---|
| item | String identifier of the item we are querying the health of, examples:
|
| status | String; Can take one of the following four values:
|
Note
The gnt-node power-[on|off] (power state changes) commands will create log entries following current Ganeti logging practices. In addition, health items with status WARNING or CRITICAL will be logged for each run of gnt-node health.


The following table describes the UpdateType
enumeration members:
| Member | Value | Description |
|---|---|---|
| Added | 0 | A new Cash.Symbol was added (0) |
| Removed | 1 | One or more Cash instances were removed (1) |
| Updated | 2 | An existing Cash.Symbol was updated (2) |


Ogre Mesh.
More...
◆ Mesh()
| Assimp::Ogre::Mesh::Mesh |
( |
| ) |
|
◆ ~Mesh()
| Assimp::Ogre::Mesh::~Mesh |
( |
| ) |
|
◆ ConvertToAssimpScene()
| void Assimp::Ogre::Mesh::ConvertToAssimpScene |
( |
aiScene * |
dest | ) |
|
◆ GetSubMesh()
| SubMesh * Assimp::Ogre::Mesh::GetSubMesh |
( |
size_t |
index | ) |
const |
Returns submesh for index
.
◆ NumSubMeshes()
| size_t Assimp::Ogre::Mesh::NumSubMeshes |
( |
| ) |
const |
Returns number of subMeshes.
◆ Reset()
| void Assimp::Ogre::Mesh::Reset |
( |
| ) |
|
Releases all memory that this data structure owns.
◆ animations
◆ hasSkeletalAnimations
| bool Assimp::Ogre::Mesh::hasSkeletalAnimations |
Mesh has skeletal animations.
◆ poses
◆ sharedVertexData
◆ skeleton
◆ skeletonRef
| std::string Assimp::Ogre::Mesh::skeletonRef |
◆ subMeshes
The documentation for this class was generated from the following files:


Limerick begin disciplinary proceedings against two hurlers sent home from New York trip
‘A disciplinary process has commenced,’ a Limerick GAA statement said.
by Kevin O'BrienTWO LIMERICK HURLERS were sent home from their trip to New York and disciplinary proceedings have commenced against them, Limerick GAA have confirmed.
An altercation between one of John Kiely’s players and another man on the New York streets over the weekend was allegedly filmed by a fellow Limerick panellist which was widely circulated on social media.
The 2018 All-Ireland champions were Stateside for the Super 11s tournament where they lost to Kilkenny by 24 points in the final.
It’s understood the two players in question were sent home by Kiely on Sunday, 24 hours before most of the rest of the group flew back to Ireland.
A statement issued by Limerick GAA this afternoon read:
“Limerick GAA can confirm that it sent home two panellists early from last weekend’s New York Hurling Classic following an incident.
“Limerick expects the highest of standards of behaviour and example from its players both on and off the field and will not tolerate any breach of those standards.
“A disciplinary process has commenced and there will be no further comment in relation to this matter.”


{% extends 'grievance/base.html' %} {% load static %} {% block content %} {% include 'grievance/navbar.html' %}
Support complains of college mates in college feed section and get supported.
Status update of a complaint.
Minimalistic ui for ease of use.
Spam is avoided by limiting the number of complains per day for each student.
Transfer a complain to Principal if it seems to be unsolvable at your level.
Analyze your branch performance in last 6 months through graph.
Analyze complain stats of various branches through graphs provided on home page.
Issue warning to HODs if the stats seem unsatisfactory.


My To Do List
Add
Make a coffee
Morning Gym
Finish the project
Meeting with client
Read a book
Visit my parents


General discussion about Komodo. For useful links and more info click the pinned messages to the right. DON'T DM @jl777
100 messages
Before 05-Dec-19 12:00 AM
dukeleto16-Apr-19 03:00 PM
A special thanks to the KMD community from HUSH community, for helping is so many ways to get our DPoW protection started in record time in our new asset chain. I don't want to name names because it's so many people and I don't want to forget anybody. Some KMD members are just purely amazing, HUSH is so lucky to be part of the larger KMD community
1
7
jeezy16-Apr-19 03:02 PM
@jorian we are using time between seasons to move to bigger servers to set everything up properly
I think my and @dukeleto track record is impacable compare to others here
so yes, voting for Team Chainstrike is an excellent idea
Gordon Komodo16-Apr-19 03:06 PM
'impeccable'
jorian16-Apr-19 03:06 PM
can i just say there is no 'between seasons'
Gordon Komodo16-Apr-19 03:09 PM
It sounds ok to me :)
jorian16-Apr-19 03:10 PM
what if everyone did it
Deleted User16-Apr-19 03:13 PM
did it few weeks prior to reelect announcement to make sure it runs nonstop here
maybe some won t change but just in case
jeezy16-Apr-19 03:16 PM
@jorian doesnt matter, the fact remains its got to be done at some point
farl16-Apr-19 03:17 PM
Uuh CHIPS went moon
jorian16-Apr-19 03:19 PM
bug in barterdex i think
you wanna buy CHIPS at $1.24?
ComputerGenie 👴👴👴16-Apr-19 03:20 PM
1 buy of 0.01 CHIPS will moon the price when volume has been anemic
farl16-Apr-19 03:21 PM
Volume is 105k
ComputerGenie 👴👴👴16-Apr-19 03:21 PM
for the total of the month?
farl16-Apr-19 03:21 PM
Day
ComputerGenie 👴👴👴16-Apr-19 03:22 PM
and yesterday was?
farl16-Apr-19 03:22 PM
Not bad for CHIPS
Bug buyer stepping in?
Don’t know yesterday volume. How can I check?
jorian16-Apr-19 03:24 PM
and previous 5 months were?
CHIPS is actually on CMC
farl16-Apr-19 03:24 PM
Yes, but only with CoinExchange
jorian16-Apr-19 03:24 PM
i think coinexchange.io has the most liquid market
farl16-Apr-19 03:25 PM
Blockfolio gives a few, but mostly low volume
You guys talk like the project has no future.

There's no part of us that thinks that or implied that, just saying that you have to look at context
farl16-Apr-19 03:29 PM
I agree
I smelled a negative sceptic vibe
ComputerGenie 👴👴👴16-Apr-19 03:30 PM
get your smeller checked, it seems to not be working right
farl16-Apr-19 03:30 PM
You’re probably right
How are the elections going?
ComputerGenie 👴👴👴16-Apr-19 03:31 PM
is actively making plans to contribute to the CHIPS (and related) dev funds; not something he'd do if he doubted the future of it
1
farl16-Apr-19 03:33 PM
Is Pondsea still on the CHIPS project?
Kitchen Table16-Apr-19 03:33 PM
I didn't think he ever was. Too busy with Hyperdex.
farl16-Apr-19 03:34 PM
Before that. I bought CHIPS from him in the beginning
Cryptoon16-Apr-19 03:36 PM
He was an early miner I think
Big bags
farl16-Apr-19 03:37 PM
Yes, that’s correct now you mention it. Now I remember
Very BIG bags
Wish him the best.  Now you can claim your rewards using Chameleon Pay!
@KomodoPlatform @PirateChain @VerusCoin @utrumdotio @Pungoio $KMD #blockchain
Sheet1
Project Name,Project Website,Type of project,Founder,Type of Project,Description ,Founded Year,Current Status,Is Open source,Is private Business,Contact
ChainZilla,https://www.chainzilla.io/,Asset chain service provider,ptyx,Service provider,Consultancy and service pr...
I added colour based on current status .. live - green , in development- yellow , deprecated - red
ComputerGenie 👴👴👴16-Apr-19 10:08 PM
BarterDEX GUI isn't depreciated entirely, mostly just in limbo waiting on mm2(edited)
PTYX16-Apr-19 10:08 PM
What is the plan with Hyperdex
Will it be used with the new mm?
ComputerGenie 👴👴👴16-Apr-19 10:09 PM
@hyperDEX ?
Instel717-Apr-19 12:49 AM
@coinmonks || CoinCodeCap
KMD Platform assets:
NINJA: no one knows
Wonder if CPU mining is still profitable in 2019? Cryptocurrency mining may not be insanely popular like it was a year ago, however it is still very possible...
1
joe2x417-Apr-19 05:04 AM
@coinmonks || CoinCodeCap maybe a section on custom consensus, formerly(?) called crypto conditions. (Similar to but Not to be mistaken as smart contracts). Rogue and kmdice are playable games but also cc examples/ modules. Same as soduku and Tetris? Also there are many CC as listed in the doc jl wrote.
Barterdex, hyperdex, and soon mobiledex all use marketmaker 1 technology and soon marketmaker2 (mm2). mobiledex I believe is just mm2 technology. So the Dex stuff might need own category as well.
coingirl8717-Apr-19 05:11 AM
Hyperdex is still alive?
I ask because last notarization was in february
ComputerGenie 👴👴👴17-Apr-19 05:13 AM
the person and the project are different things
coingirl8717-Apr-19 05:14 AM
Ok ...that sounds good! Thank you for update :-)
1
joe2x417-Apr-19 05:31 AM
@coinmonks || CoinCodeCap it looks like there is confusion on your spreadsheet regarding supernet. I'd say, yes it is still definitely part of kmd ecosystem. I believe supernet asset gets Vote tokens for nn elections. Supernet is an asset originally launched on NXT now migrated to KMD. I believe it still contains significant assets that James has curated quite wonderfully since 2014. It also is supposed to function as rev shares for ecosystem profits. Its ticker is UNITY and KMD definitely embodies this. More info about supernet. https://digitalcashassets.com/crypto-coins/currency/UNITY-SuperNET-534.html(edited)
SuperNET is an asset built on the NXT platform and it is a cryptocurrency network that facilitates the creation revenue for developers in the cryptosphere.
LocoMB17-Apr-19 05:53 AM
I am pretty sure that the whole Supernet Zaibutsu is very much sound and solid- except for the fact that its revenue machine has not really kicked into operation yet
joe2x417-Apr-19 06:00 AM
@coinmonks || CoinCodeCap The way I see it, your spreadsheet needs these categories.
Ecosystem technologies
-Marketmaker, & coins that are compatible
-Agama, & coins compatible
Kmd Asset chains
Ie: Pirate
Kmd Revshare Asset chains
Ie:Dex
Kmd CC Asset chains
Ie: Rogue
Kmd source forked chains
-ie: Verus
Kmd sister chains
-ie: Chips
Third party Kmd DPOW protected
-ie:EMC2
Kmd services
-ie: Coming, or chainzilla, chainmakers
Maybe even Notary Nodes as these are KMD luminaries.(edited)
gcharang17-Apr-19 06:16 AM
the one thing I would make clear is
Kmd Source forked chains
-ie: Verus
instead of
Kmd forked chains
-ie: Verus
1
1
coinmonks || CoinCodeCap17-Apr-19 07:44 AM
@joe2x4 Thanks for recommendation.. actually excel is editable for eveyone who has it's link..this data is community curated.. So go on ...make it better
if you want to do some radical changes ...make a copy of it
Team Chainstrike will run for two more nodes in NA & AR for #Komodo #VOTE2019 notary election! Feel free to check our details at https://t.co/ncdQhI2R4V and send your votes to one of our addresses. #crypto #blockchain #komodoplatform #iguana #notary #nodes #vote @dukeleto
jorian17-Apr-19 09:07 AM
who has that fancy orange revenue flow chart for me?
CHMEX17-Apr-19 09:09 AM
this one?
forum.supernet.org/uploads/default/original/1X/9d443004d24a77899e131e492fda53b2bb9f6923.jpg
jorian17-Apr-19 09:09 AM
great, thanks
i also remember one chart that was like an explosion of james' brain
i keep forgetting to bookmark these things
CHMEX17-Apr-19 09:13 AM
i.imgur.com/k1x1n5b.png
not sure how accurate it is
jorian17-Apr-19 09:13 AM
no, not that. even worse
i think @jl777c posted it himself, if i recall correctly
This is v of superNET eco system map. Based on the inicial ANN of superNET(UNITY) asset https:bitcointalk.orgindex.php?topic=, SuperNet ecosystem Before Tech...
jorian17-Apr-19 09:15 AM
oh there it is
can you speak to the accuracy of that?
jl777c17-Apr-19 09:15 AM
it is a decent simplification
of a few years ago
to understand the true picture you need to understand the code
komodo is much much more than that now
jorian17-Apr-19 09:16 AM
i see VRSC, that is not so old yet
jl777c17-Apr-19 09:17 AM
almost a year old and it doesnt cover the CC diaspora
jorian17-Apr-19 09:17 AM
@coinmonks || CoinCodeCap eat your heart out
jl777c17-Apr-19 09:18 AM
actually i dont even know the full extent of what is possible anymore
so much combinatorics possible with existing things, let alone new things that dont exist yet
a new way of doing blockchain consensus is what CC is
jorian17-Apr-19 09:18 AM
how about an 'what is impossible' chart?
jl777c17-Apr-19 09:18 AM
here it is:
2
assuming we get to use drones, anything is possible
TonyL17-Apr-19 09:21 AM
<title>Henry Lizardlover's Iguana Behavior, Body Language</title>
<script language="JavaScript">
<!--
function scrollit_r21(seed) {
var msg = " Kindness is Kingliness: the greater you are, the kinder you will be to lizards"


(a) Contingency operation is defined in 2.101.
(b) Micro-purchase threshold. The threshold increases when the head of the agency determines the supplies or services are to be used to support a contingency operation. (See 2.101 and 13.201(g).)
(c) Simplified acquisition threshold. The threshold increases when the head of the agency determines the supplies or services are to be used to support a contingency operation. (See 2.101.)
(d) SF 44, Purchase Order-Invoice-Voucher. The normal threshold for the use of the SF 44 is at or below the micro-purchase threshold. Agencies may, however, establish higher dollar limitations for purchases made to support a contingency operation. (See 13.306.)
(e) Simplified procedures for certain commercial items. The threshold limits authorized for use of this authority may be increased for acquisitions to support a contingency operation. (See 13.500(c).)
(a) Micro-purchase threshold. The threshold increases when the head of the agency determines the supplies or services are to be used to facilitate defense against or recovery from nuclear, biological, chemical, or radiological attack. (See 2.101.)
(b) Simplified acquisition threshold. The threshold increases when the head of the agency determines the supplies or services are to be used to facilitate defense against or recovery from nuclear, biological, chemical, or radiological attack. (See 2.101.)
(c) Commercial items to facilitate defense and recovery. Contracting officers may treat any acquisition of supplies or services as an acquisition of commercial items if the head of the agency determines the acquisition is to be used to facilitate the defense against or recovery from nuclear, biological, chemical, or radiological attack. (See 12.102(f)(1) and 13.500(c).)
(d) Simplified procedures for certain commercial items. The threshold limits authorized for use of this authority may be increased when it is determined the acquisition is to facilitate defense against or recovery from nuclear, biological, chemical, or radiological attack. (See 13.500(c).)
(a) Disaster or emergency assistance activities. Preference will be given to local organizations, firms, and individuals when contracting for major disaster or emergency assistance activities when the President has made a declaration under the Robert T. Stafford Disaster Relief and Emergency Assistance Act. Preference may take the form of local area set-asides or an evaluation preference. (See 6.208 and Subpart 26.2.)
(b) Ocean transportation by U.S. flag vessels. The provisions of the Cargo Preference Act of 1954 may be waived in emergency situations. (See 47.502(c).)
(a) A humanitarian or peacekeeping operation is defined in 2.101.
(b) Simplified acquisition threshold. The threshold increases when the head of the agency determines the supplies or services are to be used to support a humanitarian or peacekeeping operation. (See 2.101.)
(a) National Response Framework. The National Response Framework (NRF) is a guide to how the Nation conducts all-hazards response. This key document establishes a comprehensive, national, all-hazards approach to domestic incident response. The Framework identifies the key response principles, roles and structures that organize national response. It describes how communities, States, the Federal Government, the private-sector, and nongovernmental partners apply these principles for a coordinated, effective national response. It also describes special circumstances where the Federal Government exercises a larger role, including incidents where Federal interests are involved and catastrophic incidents where a State would require significant support. The NRF is available at http://www.fema.gov/emergency/nrf/.
(b) OFPP Guidelines. The Office of Federal Procurement Policy (OFPP) “Emergency Acquisitions Guide” is available at http://www.whitehouse.gov/sites/default/files/omb/assets/procurement_guides/emergency_acquisitions_guide.pdf.


John Carlo M. Ramos
Creative Computing - Year 4
A digital portfolio demonstrating the collection of projects done throughout the year for the Creative Coding Module.
Projects are coded using
P5.js
GitHub Repository


Install and Configure Fail2ban for Arch Linux to increase security.
Difficulty: 2
Time: 10 minutes
Fail2ban is an intrusion-prevention tool that scans your serverís logs and bans IP addresses from brute-force attempts based on parameters you set. At the same time, Fail2ban updates your firewall rules on the fly to block those IPs. These prevention efforts have the added benefit of keeping unwanted traffic from taking up bandwidth on your server.
This article guides you through a basic configuration of Fail2ban. First, make sure that your firewall (IPtables) is set up.
pacman
:
Proceed with installation? [Y/n],
enter Y to proceed.
Proceed with installation? [Y/n],
enter Y to proceed. Before continuing, let's briefly overview the main components used in Fail2ban.
Filters are conditions (regular expressions rules) that look through your logs to detect attacks.
Fail2ban comes with filters out of the box, and you can also add your own. The predefined filters are located in /etc/fail2ban/filter.d
. The actual filter values donít have the .conf
extension.
Actions ban hosts if they find matches from the filters. Conversely, actions can also unban hosts. Actions are scripts in /etc/fail2ban/action.d/
. Each service can have multiple actions.
Jails are a set of application-specific rules combining filters and actions to find common attacks.
There are predetermined rules that apply to all apps as well as application-specific rules. Specific services start at [SECTION_NAME]
. If a service is enabled, the line under the service says
enabled = true
. If the service is disabled, the line says enabled = false
.
If there is a service you want to enable, change the line under the service to enabled = true
. SSH is the one service thatís enabled by default, meaning that SSH protection is on.
For more on filters, actions, or jails, see the Fail2ban official site.
Now that you understand Fail2ban's terminology, letís set up a basic configuration.
file, and modify as needed with these recommended settings:
ignoreip
: Whitelisted IPs. Add your own IP so that you donít accidentally ban yourself. You can also add the IPs of any of your virtual hosts. By default, only <IP_ADDRESS> (the local host) is ignored. Use ignoreip
to add these IPs, separating each address with a space. For example:
findtime
, Maxretry
: When a given number of attempts (maxretry
) are made within a certain period (findtime
), that IP is banned for a time set by bantime
. The default setting of findtime
is 10 minutes, indicated by the line findtime = 600
in your file. The default maxretry is 3
.bantime
: The amount of time (in seconds) a banned user is locked out. The default setting is 10 minutes, indicated by the line bantime = 600
in your file. Change this to a higher lockout time, if you like. To set your lockout period to 1 day (24 hours), for instance, change the bantime
setting to 86400. Users set their bantime anywhere from an hour to a year. You can even use a negative number, such as -1, for a permanent ban.
Here is an example configuration:
ACTIONS
section, you can change your default action to either of the following:action_mw
: Ban and email notify with the whois
report (IPs) action_mwl
: Ban and email notify with the whois
report and relevant log lines (if you want to troubleshoot). Let's choose action_mwl
so you have more information for troubleshooting. Find this line, located at the very end of the ACTIONS
section, right before JAILS
:
You just set your default action to include email alerts. Now you can update the destination email address that notifies you of bans.
destemail
indicates where your alerts are sent. Find destemail = root@localhost
in your file, and replace root@localhost
with your own email address.
Note that by default the email messages are sent by root@localhost, as stated in your file:
You can change this default by modifying the sender
value.
Once you finish modifying the configuration file, restart Fail2ban so that the changes take effect.
Active: active (running)
within the output. Fail2ban starts automatically on each server restart.
Congratulations, you set up Fail2ban! For ideas to further utilize Fail2ban, see the following articles:


Play Loominary using the loom of fate to weave the destinies of legends. Every choice adds to the fabric of the story!
Loominary is a game system that uses a tabletop loom as the controller for the games. The games are written in Twine and the choices in the game are shown in distinct colors. The player weaves with the appropriate colored yarn to control the game, and in doing so weaves their choices into a scarf they are actively making through play. When game play is complete, the woven scarf will be unique to each player’s set of choices and exist as a more permanent record of their play session.
The project is open source, and along with all the source files we have included a guide for sourcing the materials and tutorials for putting it together. We also include three Twine games and a tutorial that walks the player through how to weave. Two of the games follow the Greek myths of Medusa and Oedipus and the third is a short child-friendly story about a day spent with Posy the Unicorn.
As storytelling is the basis of human communication, everyone’s a storyteller at heart. Narrative-based games have the capacity to support a broad range of story experiences, but there are large groups of voices that are currently underrepresented. Loominary is part of a research agenda with projects that focus on creating frameworks to support new storytelling experiences from underrepresented perspectives. In particular, crafting communities – which are often predominantly women – have created story artifacts for many years, but these stories have not been engaged computationally. Crafts have a rich history of both overt and subversive storytelling and bringing that depth to computational experiences creates unique methodologies and experiences for new audiences.
In the collaborative game project Loominary, the focus is on bridging the gap between computational and craft storytelling. As the player progresses through the game, the player’s choices for the characters are literally woven into a personalized tangible artifact of the players’ game session. The artifact can be “read” by a knowledgeable viewer that understands the visual language depicting the choices players made throughout their session.
Lead Programmer
Sarah Hendricks is a recent graduate from the undergraduate Computer Science and Journalism programs at American University. She's interested in elegant code, digital culture, and trying out new food. She was recently freed from her life of servitude by the public gifting her with a scarf at the SAAM Arcade event at the Smithsonian American Art Museum.
Narrative Designer
Brittany “Bri” Williams is a recent MA graduate of American University’s Game Lab with a background in film production. Her interests include the horror genre, sophisticated AI, immersive narratives, and all dogs. If you’d like to learn more about her, feel free to visit her twitter @renegadehanar.
Hardware Designer & Producer
Josh McCoy is an assistant professor at University of California, Davis in the departments of Computer Science and Cinema and Digital Media. His research involves combining artificial intelligence techniques with social science to create meaningful, responsive and socially engaging game experiences. His other interests include looking dapper and cool hair colors.
Concept Designer & Producer
Anne Sullivan is an assistant professor of Digital Media in the School of Visual Arts & Design at the University of Central Florida. Her research interests include computational craft, artificial intelligence, game design, and storytelling. She’s also an avid quilter, coder, and animal lover.
Loominary is an open source project. All source files are available on github.
Additionally, we have a list of materials required (along with sourcing links) and a tutorial available for how to put together your own Loominary system.
Important filesThis project was developed by Windows IoT, which means there are a lot of files that got pushed. Here is a list of the ones that are critical to the project:
codingbandit-RfidScanner-90bad51/RfidScanner/StartupTask.cs
codingbandit-RfidScanner-90bad51/CottonwoodRfidReader/Cottonwood.cs
NodeJsServer/TestServerWithExpress/public/index.html
NodeJsServer/TestServerWithExpress/server.js
IoTBrowser/IoTBrowser/App.xaml.cs
IoTBrowser/IoTBrowser/MainPage.xaml.cs
Please feel free to contact us if you have questions or thoughts!


{% include social_meta.html %}
{% include top.html page="contact" %}
Loading...
If you don't hear back in 24 hours, you can email us directly at
<EMAIL_ADDRESS>.
{% include footer.html %}


--- layout: post title: Flex, SWF's, IIS and GZip date: type: post parent_id: '0' published: false password: '' status: draft categories: [] tags: [] meta: _edit_last: '1' dsq_thread_id: '864641255' _syntaxhighlighter_encoded: '1' _su_title: '' author: login: akropp email<EMAIL_ADDRESS>display_name: akropp first_name: '' last_name: '' permalink: "/" ---
I was recently investigating an issue with a swf preloader not completing properly. The symptom was that the preloader never thought it loaded all of the data and so sat infinitely trying to complete.
Oddly only some people were noticing the issue. I had never seen it, but DJ (our QA manager) kept seeing the problem. The first thing I do in these situations is to as closely mimic the environment of the user if possible. I was using chrome and DJ was using firefox. I switched over to firefox, cleared my local cache and loaded up the swf. It worked just fine. I reloaded the page and then suddenly I saw the problem. I kept refreshing and was able to consistently reproduce this issue even though others using firefox never saw the problem and I was never able to see it in chrome or internet explorer.
Since I never saw this when loading the swf off my local machine, I built a debug version of the swf by adding a -debug=true
to the swf compiler options and tossed this onto the target machine. This way I was able to remotely attach to swf and step through the code.
I saw that the preloader had downloaded 2,465,651 bytes but was expecting 2,468,887. Strangely enough the swf on disk was the size that the preloader had downloaded so where did these extra bytes come from? Thankfully when I am debugging these issues I religiously run Charles in the background. I compared the http request/response of the first working request vs the subsequent failed requests.
[csharp]
HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: application/x-shockwave-flash
Content-Encoding: gzip
Last-Modified: Wed, 26 Sep 2012 20:02:39 GMT
Accept-Ranges: bytes
ETag: "84e548e1219ccd1:0"
Vary: Accept-Encoding
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Wed, 26 Sep 2012 20:11:05 GMT
[/csharp]
[csharp]
HTTP/1.1 200 OK
Content-Type: application/x-shockwave-flash
Content-Encoding: gzip
Last-Modified: Wed, 26 Sep 2012 20:02:39 GMT
Accept-Ranges: bytes
ETag: "80d937e1219ccd1:0"
Vary: Accept-Encoding
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Wed, 26 Sep 2012 20:11:12 GMT
Content-Length: 2468887
[/csharp]
After looking at the two responses I noticed that one had Transfer-Encoding: chunked
field and the other had the Content-Length
set.
Transfer-Encoding: chunked
is a mechanism of downloading content from a server in chunks without knowing how much data is being sent. The response continues until a final zero length chunk is sent.Content-Length
tells the client how large the response will be.So when we didn't have the content length everything worked. Interestingly enough, the content length was also the same size that the flex preloader was expecting. It wasn't until another co-worker noticed that the content length (2,468,887) was larger than the actual file (2,465,651) that we noticed that the response's gzip encoding had actually inflated the file size. For this swf the inflation amount was around 0.1%.
Apparently if the http response headers have a content length field then the flex preloader will expect the content length even though though the decompressed file is LESS than the content length and the request had finished. This particular swf was encoded using the new swf lzma compression and so for fun we tried a regular swf and found that gzip inflated the swf by almost 50%! A 3MB swf would be 4.5MB if sent over the wire with gzip compression enabled.
The preloader worked the first time because the preloader didn't know how much it wanted, and assumed that once the request was finished that that was how much it should get. The subsequent times it was relying on the content headers thinking that was how much it was going to get, even though the decompressed response content was less.
Once we realized that it was IIS's gzip messing with flex the fix was easy. We removed the application/x-shockwave-flash
MIME type in the machine's application.config
under the compression settings to prevent swf's from getting compressed over the wire
[xml]
<httpCompression directory="%SystemDrive%inetpubtempIIS Temporary Compressed Files">
<scheme name="gzip" dll="%Windir%system32inetsrvgzip.dll" />
<dynamicTypes>
<clear />
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="application/x-amf" enabled="true" />
<add mimeType="application/json" enabled="true" />
<add mimeType="application/json; charset=utf-8" enabled="true" />
<!-- notice the swf mime type -->
<add mimeType="application/x-shockwave-flash" enabled="false" />
<add mimeType="*/*" enabled="false" />
</dynamicTypes>
<staticTypes>
<clear />
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="application/atom+xml" enabled="true" />
<add mimeType="application/xaml+xml" enabled="true" />
<!-- notice the swf mime type -->
<add mimeType="application/x-shockwave-flash" enabled="false" />
<add mimeType="*/*" enabled="false" />
</staticTypes>
</httpCompression>
[/xml]
To do this in code is also pretty easy:
For IIS6 or machines with the IIS6 Managment Compatability enabled run the command only with the MIME extensions you want. Any extensions that were there previously would be removed
[csharp]%windir%system32cscript.exe adsutil.vbs set W3SVC/Filters/Compression/gzip/HcFileExtensions 'js' 'css' 'doc' 'docx'[/csharp]
To query it you can do
[csharp]%windir%system32cscript.exe adsutil.vbs get W3SVC/Filters/Compression/gzip/HcFileExtensions[/csharp]
For IIS7:
[csharp]
using (var server = new ServerManager())
{
var applicationHostConfiguration = server.GetApplicationHostConfiguration();
var urlCompressionSection = applicationHostConfiguration.GetSection("system.webServer/urlCompression");
urlCompressionSection.SetAttributeValue("doDynamicCompression", "true");
urlCompressionSection.SetAttributeValue("doStaticCompression", "true");
var httpCompressionSection = applicationHostConfiguration.GetSection("system.webServer/httpCompression");
httpCompressionSection.OverrideMode = OverrideMode.Allow;
var dynamicTypesCollection = httpCompressionSection.GetCollection("dynamicTypes");
var staticTypesCollection = httpCompressionSection.GetCollection("staticTypes");
// Remove all previous so we dont have duplicates.
dynamicTypesCollection.Clear();
staticTypesCollection.Clear();
AddMimeType(dynamicTypesCollection, @"text/*", true);
AddMimeType(dynamicTypesCollection, @"message/*", true);
AddMimeType(dynamicTypesCollection, @"application/x-javascript", true);
AddMimeType(dynamicTypesCollection, @"application/x-amf", true);
AddMimeType(dynamicTypesCollection, @"application/json", true);
AddMimeType(dynamicTypesCollection, @"application/json; charset=utf-8", true);
AddMimeType(dynamicTypesCollection, @"application/x-shockwave-flash", false);
AddMimeType(dynamicTypesCollection, @"*/*", false);
AddMimeType(staticTypesCollection, @"text/*", true);
AddMimeType(staticTypesCollection, @"message/*", true);
AddMimeType(staticTypesCollection, @"application/x-javascript", true);
AddMimeType(staticTypesCollection, @"application/atom+xml", true);
AddMimeType(staticTypesCollection, @"application/xaml+xml", true);
AddMimeType(staticTypesCollection, @"application/x-shockwave-flash", false);
AddMimeType(staticTypesCollection, @"*/*", false);
server.CommitChanges();
}
private static void AddMimeType(ConfigurationElementCollection collection, String mimeType , bool enabled )
{
if (collection == null)
{
return;
}
var mimeTypeElement = collection.CreateElement();
mimeTypeElement.Attributes["mimeType"].Value = mimeType;
mimeTypeElement.Attributes["enabled"].Value = enabled ;
collection.Add(mimeTypeElement);
}
[/csharp]
Now, without gzip, when the content length header was sent everything was worked.
But why was the server sometimes sending transfer chunked vs content length? It may be that the compressed swf was cached server side and at that point it knew the compressed content length. Here are two articles that talk about when IIS 7.5 sends transfer chunked vs content length.
While I never figured out why I only ever saw this in firefox, I did notice that we got different response codes from the server when loading in chrome and IE. In chrome and IE we properly got 304 (content not modified) code when loading the swf. This means that it had cached the swf client side in the browser, made a request to see if it had changed, and the server replied back saying it hadn't changed. This way the browser just used the cached swf and bypassed all the content header issues which explains why we never saw this there.
On top of that, Chrome sometimes never even made a request to the server and just loaded up the cached swf but IE consistently made a request and received a not modified 304, which is what I would have expected
[csharp]
Response HTTP/1.1 304 Not Modified
Content-Type application/x-shockwave-flash
ETag "4767cb0f79dcd1:0"
X-Powered-By ASP.NET
Content-Length 3241105
Last-Modified Sat, 29 Sep 2012 04:00:45 GMT
[/csharp]
In general the point of the exercise was that you should be cognizant of what is getting compressed over the wire. Not everything should be compressed, and sometimes compression can actually make your response sizes larger!


Packages com.p6spy.engine.common com.p6spy.engine.leak com.p6spy.engine.logging com.p6spy.engine.logging.appender com.p6spy.engine.outage com.p6spy.engine.spy


Class CertificateManager
A class to manage SSL certificates used by this proxy server.
Implements
Inherited Members
Namespace: Titanium.Web.Proxy.Network
Assembly: Titanium.Web.Proxy.dll
Syntax
public sealed class CertificateManager : IDisposable
Properties
| Improve this Doc View SourceCertificateCacheTimeOutMinutes
Minutes certificates should be kept in cache when not used.
Declaration
public int CertificateCacheTimeOutMinutes { get; set; }
Property Value
| Type | Description |
|---|---|
| Int32 |
CertificateEngine
Select Certificate Engine. Optionally set to BouncyCastle. Mono only support BouncyCastle and it is the default.
Declaration
public CertificateEngine CertificateEngine { get; set; }
Property Value
| Type | Description |
|---|---|
| CertificateEngine |
CertificateStorage
The fake certificate cache storage. The default cache storage implementation saves certificates in folder "crts" (will be created in proxy dll directory). Implement ICertificateCache interface and assign concrete class here to customize.
Declaration
public ICertificateCache CertificateStorage { get; set; }
Property Value
| Type | Description |
|---|---|
| ICertificateCache |
CertificateValidDays
Number of Days generated HTTPS certificates are valid for. Maximum allowed on iOS 13 is 825 days and it is the default.
Declaration
public int CertificateValidDays { get; set; }
Property Value
| Type | Description |
|---|---|
| Int32 |
OverwritePfxFile
Overwrite Root certificate file.
true : replace an existing .pfx file if password is incorrect or if RootCertificate = null.
Declaration
public bool OverwritePfxFile { get; set; }
Property Value
| Type | Description |
|---|---|
| Boolean |
PfxFilePath
Name(path) of the Root certificate file.
Set the name(path) of the .pfx file. If it is string.Empty Root certificate file will be named as "rootCert.pfx" (and will be saved in proxy dll directory)
Declaration
public string PfxFilePath { get; set; }
Property Value
| Type | Description |
|---|---|
| String |
PfxPassword
Password of the Root certificate file.
Set a password for the .pfx file
Declaration
public string PfxPassword { get; set; }
Property Value
| Type | Description |
|---|---|
| String |
RootCertificate
The root certificate.
Declaration
public X509Certificate2 RootCertificate { get; set; }
Property Value
| Type | Description |
|---|---|
| X509Certificate2 |
RootCertificateIssuerName
Name of the root certificate issuer. (This is valid only when RootCertificate property is not set.)
Declaration
public string RootCertificateIssuerName { get; set; }
Property Value
| Type | Description |
|---|---|
| String |
RootCertificateName
Name of the root certificate. (This is valid only when RootCertificate property is not set.) If no certificate is provided then a default Root Certificate will be created and used. The provided root certificate will be stored in proxy exe directory with the private key. Root certificate file will be named as "rootCert.pfx".
Declaration
public string RootCertificateName { get; set; }
Property Value
| Type | Description |
|---|---|
| String |
SaveFakeCertificates
Save all fake certificates using CertificateStorage.
for can load the certificate and not make new certificate every time.
Declaration
public bool SaveFakeCertificates { get; set; }
Property Value
| Type | Description |
|---|---|
| Boolean |
StorageFlag
Adjust behaviour when certificates are saved to filesystem.
Declaration
public X509KeyStorageFlags StorageFlag { get; set; }
Property Value
| Type | Description |
|---|---|
| X509KeyStorageFlags |
Methods
| Improve this Doc View SourceClearRootCertificate()
Clear the root certificate and cache.
Declaration
public void ClearRootCertificate()
CreateRootCertificate(Boolean)
Attempts to create a RootCertificate.
Declaration
public bool CreateRootCertificate(bool persistToFile = true)
Parameters
| Type | Name | Description |
|---|---|---|
| Boolean | persistToFile | if set to |
Returns
| Type | Description |
|---|---|
| Boolean | true if succeeded, else false. |
CreateServerCertificate(String)
Creates a server certificate signed by the root certificate.
Declaration
public Task<X509Certificate2> CreateServerCertificate(string certificateName)
Parameters
| Type | Name | Description |
|---|---|---|
| String | certificateName |
Returns
| Type | Description |
|---|---|
| Task<X509Certificate2> |
Dispose()
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
Declaration
public void Dispose()
EnsureRootCertificate()
Ensure certificates are setup (creates root if required). Also makes root certificate trusted based on initial setup from proxy constructor for user/machine trust.
Declaration
public void EnsureRootCertificate()
EnsureRootCertificate(Boolean, Boolean, Boolean)
Ensure certificates are setup (creates root if required). Also makes root certificate trusted based on provided parameters. Note:setting machineTrustRootCertificate to true will force userTrustRootCertificate to true.
Declaration
public void EnsureRootCertificate(bool userTrustRootCertificate, bool machineTrustRootCertificate, bool trustRootCertificateAsAdmin = false)
Parameters
| Type | Name | Description |
|---|---|---|
| Boolean | userTrustRootCertificate | Should fake HTTPS certificate be trusted by this machine's user certificate store? |
| Boolean | machineTrustRootCertificate | Should fake HTTPS certificate be trusted by this machine's certificate store? |
| Boolean | trustRootCertificateAsAdmin | Should we attempt to trust certificates with elevated permissions by prompting for UAC if required? |
IsRootCertificateMachineTrusted()
Determines whether the root certificate is machine trusted.
Declaration
public bool IsRootCertificateMachineTrusted()
Returns
| Type | Description |
|---|---|
| Boolean |
IsRootCertificateUserTrusted()
Determines whether the root certificate is trusted.
Declaration
public bool IsRootCertificateUserTrusted()
Returns
| Type | Description |
|---|---|
| Boolean |
LoadRootCertificate()
Loads root certificate from current executing assembly location with expected name rootCert.pfx.
Declaration
public X509Certificate2 LoadRootCertificate()
Returns
| Type | Description |
|---|---|
| X509Certificate2 |
LoadRootCertificate(String, String, Boolean, X509KeyStorageFlags)
Manually load a Root certificate file from give path (.pfx file).
Declaration
public bool LoadRootCertificate(string pfxFilePath, string password, bool overwritePfXFile = true, X509KeyStorageFlags storageFlag = X509KeyStorageFlags.Exportable)
Parameters
| Type | Name | Description |
|---|---|---|
| String | pfxFilePath | Set the name(path) of the .pfx file. If it is string.Empty Root certificate file will be named as "rootCert.pfx" (and will be saved in proxy dll directory). |
| String | password | Set a password for the .pfx file. |
| Boolean | overwritePfXFile | true : replace an existing .pfx file if password is incorrect or if RootCertificate==null. |
| X509KeyStorageFlags | storageFlag |
Returns
| Type | Description |
|---|---|
| Boolean | true if succeeded, else false. |
RemoveTrustedRootCertificate(Boolean)
Removes the trusted certificates from user store, optionally also from machine store. To remove from machine store elevated permissions are required (will fail silently otherwise).
Declaration
public void RemoveTrustedRootCertificate(bool machineTrusted = false)
Parameters
| Type | Name | Description |
|---|---|---|
| Boolean | machineTrusted | Should also remove from machine store? |
RemoveTrustedRootCertificateAsAdmin(Boolean)
Removes the trusted certificates from user store, optionally also from machine store
Declaration
public bool RemoveTrustedRootCertificateAsAdmin(bool machineTrusted = false)
Parameters
| Type | Name | Description |
|---|---|---|
| Boolean | machineTrusted |
Returns
| Type | Description |
|---|---|
| Boolean | Should also remove from machine store? |
TrustRootCertificate(Boolean)
Trusts the root certificate in user store, optionally also in machine store. Machine trust would require elevated permissions (will silently fail otherwise).
Declaration
public void TrustRootCertificate(bool machineTrusted = false)
Parameters
| Type | Name | Description |
|---|---|---|
| Boolean | machineTrusted |
TrustRootCertificateAsAdmin(Boolean)
Puts the certificate to the user store, optionally also to machine store. Prompts with UAC if elevated permissions are required. Works only on Windows.
Declaration
public bool TrustRootCertificateAsAdmin(bool machineTrusted = false)
Parameters
| Type | Name | Description |
|---|---|---|
| Boolean | machineTrusted |
Returns
| Type | Description |
|---|---|
| Boolean | True if success. |


Roles are not relevant for Attention Points, as these are assigned to Role Fillers.
All Roles are listed here just to verify which roles are synchronised in the Bullfrog database.
{% include "role_list.html" with object_list=roles.object_list %}
{% endblock %}


Michael Cantu
I'm a live television director turned Data Scientist. I owe my transformation to working in Los Angeles where I worked on sets such as the Bachelorette and Westworld. Working on the set of Westworld for a VR produciton company open my eyes to all the upcoming emergring technologies and started on my path to working with data. Eariler this year I graduated from (Northwestern University) and am currently working at Sagence a consulting firm.


COVID-19 pandemic: an opportunity to change
May 22, 2021Today we are experiencing the strong impact of a new pandemic related to COVID-19, that is hitting the entire planet, and which doesn't discriminate between borders, ethnic groups, or ideologies.
That is not a mere product of the mutation of a specific virus in a random time or place, but a consequence of multiple predictable processes that unfortunately we have not been able to stop or counteract effectively, such as avoiding zoonotic -animals infecting humans- impacts product of human expansion over the environment, the inability to create efficient global systems of health and epidemiological response, or even having a responsible population culture in the face of eventual health adversity; by that, among other things, we are now facing great multiple negative consequences as a result of an insufficient and inefficient global social organization.
The reality is that infectious diseases are old problems that today have a planetary scope, and like many other serious old global problems that we face today, we haven't been able to solve them. Faced with these, we are not being efficient at all in solving them, and consequently, they are causing us very negative consequences in the present and possibly even more in the near future.
This pandemic will probably be a critical juncture in the history of Homo sapiens, where our future will depend on how the situation develops, and especially on the actions we take as a civilization. All of this will lead to different paths that will mark the future, and in which, one or another vision of society will prevail. By that, on one hand, there is an opportunity to make the necessary changes to move towards a better future, or on the other hand, going backward to a chaotic time in which suffering and problems will prevail or even become more negative.
Opportunity to move forwardOur present situation requires us to make urgent changes and transformations of different nature; related to aspects of culture, society, organizational models, and especially ways of thinking, that in combination would change the dynamics of the structures and responses to these global problems, and that will allow us not only to respond to the current and future pandemics but also to the future global problems of different nature that we face now and will face later on.
Here, consequently, we explore three transformational needs that are aming at the short and medium timeframe: a) greater globalization; b) promotion of scientific thought; and c) strengthen collective capacities.
1. Greater globalizationOnce again, global problems arise, which cannot be solved without a global framework of thinking and action; and that's why local, national or regional frameworks are not sufficient as we see today, in which our institutions and ways of action are not globally orientated, and consequently we are being incapable of tackling the situation effectively.
In a pandemic and post-pandemic scenario, it is necessary for us to begin to strengthen existing global and local oriented movements, organizations and institutions, and also create new needed ones. By this, there is a need to improve operational capacities, use of resources or technical-scientific skills; but especially also the ability to respond in a coordinated manner between all of them that are alike.
This would imply strengthening global organizations of different nature, such as supranational public-state organizations, civil society organizations or institutions of different kinds; whose articulation will require a broad debate on institutional arrangements, organizational models, ways of financing and different attributions of powers.
2. Promotion of scientific thinkingThis pandemic event makes it more than ever clear there is a need to appeal to science and think scientifically in a general way, both to solve the actual problem, as well as to prevent others of the same kind from happening in the future. By contrast, this situation has also exposed magical, religious and traditional thinking as useless ways of thinking and solving problems, and in which we need to abandon faster.
Progress has already been made in this regard, and that's why almost all the medical centers on the planet have begun to use medicine based on scientific frameworks, and have partially left aside traditional and archaic forms of medicine -even in very traditional oriented countries-; but this is unfortunately not enough, we are still very far from a minimum necessary global standard of scientific thinking, and gaining a healthy balance between science and other sectors could prevent very adverse consequences in the short term.
This is an opportunity to accelerate, catalyze and deepen a global scientific culture, as well as the institutions and organizations necessary to shape it, which will require the promotion of the ideas and frameworks in multiple sectors and areas of living, especially in those places and regions that still persist in archaic forms of thought.
3. Greater sustainabilityIt is no coincidence that this pandemic arose from the same origin that many other major problems we face and are emerging, such as climate change or the mass extinction of species; that are a product of excessive pressure by Homo sapiens on the ecosystem in general; and by that, this health-related situation was something predictable and foreseeable, that many experts have warned about, and also eventually will happen again if we cannot address the root causes that are causing it.
So, if we want to solve this current problem, and avoid new ones in the future, we have to reconsider how we live, and change our way of life based on destruction and pollution, towards a sustainable and regenerative way of life that is friendly to the ecosystem, that will imply new sustainable behaviors, the relation with the consumption of animals, the increasing massive urban pressure on natural spaces, and many other necessary things.
4. Strengthen collective capacitiesNowadays, many widespread regions cannot access quality public services, such as health, education, culture, and housing, as well as many other needs that make subsequent generations continue in a situation of misery, ignorance, and inhuman life.
Today we have the necessary resources, knowledge and technology capable of giving all the inhabitants of this planet the ability to live full lives and contribute to the development of civilization, preserving the environment and contributing to historical progress.
This will require strengthening and creating global collective-oriented organizations and institutions of different nature, that will be necessary to direct actions and processes to those regions that most need it, especially the most vulnerable and lagging behind ones. All of this implies a global transfer of resources, capacities and knowledge, as well as mutual responsibilities and the creation of a common global ethical culture; that together can give rise to synergistic global processes that enhance collective capacities to thrive together.
The other course...Taking sensible actions now will prevent we fall into generalized tribal thinking, nationalism and isolationist forms of social organizations; that will eventually will not be able to respond to global problems, and consequently cause widespread multiple negative consequences for the great part of the population, such as the impact of new pandemics, wars, economic crises, widespread misery, and many other things that they will cause a lot of suffering, setbacks and also possibly existential risks.
Unfortunately, these trends have been growing in recent years, but still, nothing is lost, and this pandemic situation is an opportunity to realize where we have to go and act to reverse the trend.


AVONDALE BRECON FARM
Animal Tracking History Report
Class
Identifier
Download Controls
Download CSV
Download JSON
Download XLSX
Download PDF


public final class DateTimeUtils
extends java.lang.Object
| Modifier and Type | Method and Description |
|---|---|
static long |
getAgeDays(long timestamp) |
static java.lang.String |
getTimezoneCode() |
static boolean |
isSameDay(java.util.Calendar cal1,
java.util.Calendar cal2)
Checks if two calendars represent the same day ignoring time.
|
static boolean |
isSameDay(long date1,
long date2)
Checks if two dates are on the same day ignoring time.
|
static boolean |
isToday(long time)
Checks if a date is today.
|
static boolean |
isYesterday(long time)
Checks if a date is today.
|
public static java.lang.String getTimezoneCode()
public static boolean isToday(long time)
Checks if a date is today.
time
- the time, not altered, not null.public static boolean isYesterday(long time)
Checks if a date is today.
time
- the time, not altered, not null.public static boolean isSameDay(long date1, long date2)
Checks if two dates are on the same day ignoring time.
date1
- the first date, not altered, not nulldate2
- the second date, not altered, not nullpublic static boolean isSameDay(java.util.Calendar cal1, java.util.Calendar cal2)
Checks if two calendars represent the same day ignoring time.
cal1
- the first calendar, not altered, not nullcal2
- the second calendar, not altered, not nulljava.lang.IllegalArgumentException
- if either calendar is null
public static long getAgeDays(long timestamp)


Here ata bueno pizzaria we dedicate our time and efforts to produce quality pizza to our customers at an affordable rate.
We hire chefs and employees who are competent and deliver our services to the best of there abilities. We are open every day of the week and 10am-10:30pm on weekdaydays and 11am-10:30pm on weekends are our working hours.
We also offer delivery services to customers who prefer to order in with an additional fee for the service. We understand that we offer our services to a well-defined and attractive demographic audience hence our constant efforts to satisfy there needs within our craft better than our competitors.
Were are located at PRESTIGE PLAZA on the second floor above urban burger. Be sure to stop by and experience what we have to offer.


KanTan is designed to make kanji lookup easier by combining kanji lookup and word lookup into one.
Normally, you would have to find each kanji separately and then look up the complete word in the dictionary. On this page you can specify a pattern for a complete word using the radicals that you recognize, and find all the words that match that pattern.
KanTan is a work in progress. If you have any suggestions how to make KanTan better, please let me know by opening an issue on GitHub.
This site uses the JMdict and kradfile-u dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.


|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object javax.imageio.stream.IIOByteBuffer
public class IIOByteBuffer
A class representing a mutable reference to an array of bytes and
an offset and length within that array. IIOByteBuffer
is used by ImageInputStream
to supply a sequence of bytes
to the caller, possibly with fewer copies than using the conventional
read
methods that take a user-supplied byte array.
The byte array referenced by an IIOByteBuffer
will
generally be part of an internal data structure belonging to an
ImageReader
implementation; its contents should be
considered read-only and must not be modified.
| Constructor Summary | |
|---|---|
IIOByteBuffer(byte[] data,
int offset,
int length)
Constructs an IIOByteBuffer that references a
given byte array, offset, and length. |
| Method Summary | |
|---|---|
byte[] |
getData()
Returns a reference to the byte array. |
int |
getLength()
Returns the length of the data of interest within the byte array returned by getData . |
int |
getOffset()
Returns the offset within the byte array returned by getData at which the data of interest start. |
void |
setData(byte[] data)
Updates the array reference that will be returned by subsequent calls to the getData method. |
void |
setLength(int length)
Updates the value that will be returned by subsequent calls to the getLength method. |
void |
setOffset(int offset)
Updates the value that will be returned by subsequent calls to the getOffset method. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public IIOByteBuffer(byte[] data, int offset, int length)
IIOByteBuffer
that references a
given byte array, offset, and length.
data
- a byte array.offset
- an int offset within the array.length
- an int specifying the length of the data of
interest within byte array, in bytes.| Method Detail |
|---|
public byte[] getData()
getOffset
and getLength
should
be used.
getOffset()
,
getLength()
,
setData(byte[])
public void setData(byte[] data)
getData
method.
data
- a byte array reference containing the new data value.getData()
public int getOffset()
getData
at which the data of interest start.
getData()
,
getLength()
,
setOffset(int)
public void setOffset(int offset)
getOffset
method.
offset
- an int containing the new offset value.getOffset()
public int getLength()
getData
.
getData()
,
getOffset()
,
setLength(int)
public void setLength(int length)
getLength
method.
length
- an int containing the new length value.getLength()
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Copyright © 2004, 2010 Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.


Download Recommended fonts
This is a timeline that portrays the evolution of computers. Please click any of the buttons on the left to lead you to each generation of compters.
Made By: Parth Sareen
Beal, V. (2010, January 22). The Five Generations of Computers. Retrieved February 26, 2016, from http://www.webopedia.com/DidYouKnow/Hardware_Software/FiveGenerations.asp Computer Generations. (n.d.). Retrieved February 26, 2016, from http://www.tutorialspoint.com/computer_fundamentals/computer_generations.htm


UKCloud for OpenShift Service Scope
About this document
This document is for customers considering purchasing our UKCloud for OpenShift service.
It describes the boundaries of the service, along with the division of responsibilities between UKCloud and the customer to facilitate the changes required.
About UKCloud for OpenShift
UKCloud for OpenShift is UKCloud's OpenShift powered Kubernetes Platform as a Service (PaaS).
This service is designed for customers who want to:
Deliver new software features faster, focusing on customer value rather than infrastructure complexities
Cope with unpredictable spikes in traffic and customer demand
Realise more value from your DevOps team by allowing them to focus on the 'Dev' rather than 'Ops'
Create a standard approach to deployment, ensuring consistency across all users
Perform platform maintenance with less disruption to applications
Try out new ideas in a low-risk sandbox environment
Remove the cost and complexity of provisioning, managing and scaling the underlying infrastructure, OS and middleware components
Avoid lock-in — you can deploy OpenShift on a wide choice of IaaS platforms
OpenShift technical features available in UKCloud for OpenShift
The following OpenShift technical features are available with UKCloud for OpenShift:
UKCloud for OpenShift is built upon Red Hat OpenShift Container Platform v3.11
Based upon OKD 3.11 with an Enterprise security and stability wrap
Kubernetes 1.11
UKCloud for OpenStack is the underlying Infrastructure-as-a-Service (IaaS) platform
Default setup
UKCloud for OpenShift is delivered as a private Platform-as-a-Service (PaaS).
Each customer will be provided with an isolated OpenShift cluster within which they can build their containerized solutions.
By default, only a single user account will be created per project, this user can then create additional users within the project.
UKCloud for OpenShift deployment options
The UKCloud for OpenShift service is packaged to provide you with a high level of flexibility to scale your environments in-line with your workloads. Your OpenShift service is built using the following model:
| Foundation Pack | ||||||
|---|---|---|---|---|---|---|
| Assured OFFICIAL | Elevated OFFICIAL | |||||
| Runtime Packs | ||||||
| Small 16GiB RAM |
Medium 32GiB RAM |
Large 64GiB RAM |
Small 16GiB RAM |
Medium 32GiB RAM |
Large 64GiB RAM |
Note
An operational OpenShift cluster must consist of a minimum of a Foundation Pack plus a single Runtime Pack, however we strongly recommend the use of two or more Runtime Packs for application resilience.
Foundation Pack
Provides the foundation OpenShift services to support the orchestration and management of the container runtime environments and include certain optional extras free of charge as defined below. Each customer environment requires only a single Foundation Pack.
Runtime Pack
Provides the footprint to host customer's containerised applications and services. Customers can choose to mix and match their Runtime Packs, and Runtime Packs can be called off individually, however UKCloud strongly recommends the initial deployment of two or more Runtime Packs for production environments to provide resilience to your workloads in the event of the failure of a single Runtime Pack.
Storage options
Containers in OpenShift by default don't persist data. Every time an application is started, it creates a new container with an immutable image. Hence, any persisted data in the file systems is lost when the container stops or is destroyed. Use Persistent Volumes within your OpenShift environment to provide data persistence independent of containers. You can purchase Persistent Volumes for your cluster as stated below:
| Tier 1 Persistent Volume | Tier 2 Persistent Volume | |
|---|---|---|
| Overview | Provides our most performant block storage for workloads requiring consistently higher disk throughput | Block storage with typical performance characteristics for use by production applications or storage |
| Number of file copies | 3 | 3 |
| Use cases | Web caching Containerised analytics Highly performant, real-time web/mobile applications |
Standard, containerised web/mobile applications Storing OpenShift logs and metrics |
Note
In line with current restrictions on the OpenStack service underpinning OpenShift, you can make/attach 25 additional persistent volume claims (PVCs) to each worker node.
Optional extras
To complement your UKCloud for OpenShift service, UKCloud offers the following value-added options:
Note
Some of these extras will carry supplementary charges; please see the UKCloud Pricing Guide for full details.
Additional networks
By default, your OpenShift cluster will only be connected to the internet. Your OpenShift environment can be provisioned on other networks such as HSCN, Janet, RLI and PSN at a flat fee month per network plus the additional network charges.
Registry storage
A benefit of OpenShift is its ability to build Docker images directly from your source code, deploy them, and manage their lifecycle. To enable this, OpenShift utilises an integrated Docker registry to locally manage images. This registry is stored securely outside of your OpenShift environment to help ensure the resilience and availability of your images.
UKCloud provides you with an initial 60GB of registry storage as part of your Foundation Pack; with any additional registry storage being chargeable.
Enhanced aggregated logging
UKCloud will deploy, as part of your Foundation Pack, a simple EFK (Elasticsearch, Fluentd, Kibana) stack to aggregate logs for a range of OpenShift Enterprise services. Application developers can view the logs of the projects for which they have view access. The EFK stack aggregates logs from hosts and applications, whether coming from multiple containers or even deleted pods.
To provide this service UKCloud will need to provision an initial 20GiB of Tier 2 Persistent Volume at the prevailing rate.
As your workloads increase or become more critical and you want to increase the performance and resilience of your Elasticsearch cluster by scaling it across three nodes, you can deploy an additional Infrastructure Node (see below for Infrastructure Node costs).
Enhanced metric collection
As part of your Foundation Pack, UKCloud will provision a single Hawkular metrics instance backed by a single Cassandra instance to collect and publish your cluster's metrics from all containers and components in one user interface.
To provide this service, UKCloud will need to provision an initial 10GiB of Tier 2 Persistent Volume at the prevailing rate.
To provide resilience and added performance to your cluster's metrics, you can deploy additional Infrastructure Nodes (see below for Infrastructure Node costs).
Infrastructure nodes
Additional nodes to support OpenShift core services such as OpenShift routers, registry, metric collection and aggregated logging. Each Foundation Pack is deployed with three Infrastructure Nodes. Where required, you can deploy additional Infrastructure Nodes for a flat monthly fee, with each Infrastructure Node providing an additional 2vCPUs and 16GiB RAM for OpenShift supporting services. You cannot use Infrastructure Nodes for containerised workloads.
SSL certificates
By default, UKCloud will provide 90 day Let's Encrypt SSL certificates for your OpenShift cluster. At the point of deployment, you can to provide your own certificates for use with OpenShift.
Container native storage
Kubernetes was not designed with stateful applications like databases in mind. For enterprise applications, these systems have non-negotiable business requirements like high availability, data security, disaster recovery, strict performance SLAs and hybrid/multi-cloud operations.
In order to address the challenge above, UKCloud offers a Portworx Enterprise service, assisting with the adoption of Kubernetes for mission critical enterprise and traditional/legacy applications.
Platform management
UKCloud for OpenShift is managed directly by the customer, using OpenShift's dashboard, the UKCloud Portal, and APIs associated with both.
UKCloud maintains responsibility for routine patching and upgrades of the OpenShift platform in-line with the published OpenShift life cycle and patch management process.
Service provisioning
You can request UKCloud for OpenShift via your Service Delivery Manager or by using the My Calls section of the UKCloud Portal.
Within 5 business days of accepting an order, UKCloud will create the customer's primary account and send a Welcome Pack, which includes the URL for the UKCloud Portal, and the Getting Started Guide.
Customer responsibilities
The control and management of access and responsibilities for end users including appropriate connectivity, security and accreditation if required. If access is required over government secure networks such as HSCN, Janet, RLI or PSN (including legacy networks), the customer is responsible for adhering to the Code of Connection.
Self-managing the environment including container deployment, virtual network configuration, storage management, and so on.
Maintaining a master copy or backup copy of the data used in the UKCloud for OpenShift service (see below).
Ensuring only appropriate data (for example OFFICIAL) is stored and processed by applications on this environment and that they comply with the UKCloud Security Operating Procedures (SyOps) and other Information Assurance requirements as specified in the UKCloud System Interconnect and Security Policy (SISP) and associated accreditation documentation sets.
Customers with requirements beyond these limits can raise a service request via My Calls to have these limits per project considered for raising.
Backup/recovery and disaster recovery
As standard, localised component failures are tolerated within the infrastructure through elimination of single points of failure (including physical server failure or disk failure).
Although OpenShift is designed to deploy and manage stateless apps (applications that can be destroyed and re-instantiated without risk of data loss), you should maintain a master copy or backup copy of any persistent or dynamic data hosted on this service (such as MySQL DB) by using, for example, UKCloud's Cloud Storage.
Published features not currently available
The following features published in the UKCloud for OpenShift Service Definition are not currently available:
- Janet, PSN and RLI connectivity
Although these features are not currently available, they will be considered upon request.
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.


C. Making and Using AprilTags
At the moment, the only tags supported by TagSLAM are the popular AprilTags.
What tag family to use
The AprilTags come in several different variants (families), depending on how many bits a tag can represent. Some tag families have large, coarse bit blocks that can be seen from far, but can only cover a small number space. The most popular one is the family “36h11”, which has a 6x6 bit pattern. It can cover the numbers 0 to 586, and is rather robust to false positive detections. If you don’t need the full number space, and must work with a lower resolution camera, consider the “16h5” family, which can represent 0 to 29. Be warned however: you may have more false positive detections when using this tag. This means the AprilTag library may mistake some rectangular objects on the image as tags! This can be a real nuisance when using TagSLAM.
| Tag family 36h11 (preferred). Small blocks, harder to detect, can represent larger numbers. | Tag family 16h5. Large blocks, better visible, but susceptible to false positives. |
What material to use
An ideal AprilTag should be:
- perfectly flat, without any warp
- matte (not glossy!)
- high contrast: pitch black on pure white
- rigid and sturdy
- light weight
Here are two popular options: foam core board (left), or DiBond aluminum (right)
DiBond aluminum
For very sturdy tags, consider having them printed on DiBond aluminum, a material used for making advertisement signs. The company FoamCorePrint.com has been used for this before, although they only allow 1/4” thick material for matte, their 1/8” boards only come glossy and you must specify explicitly that you want it matte, and no rescaling of the image. If you want the thinner boards, Printmoz also has been used successfully before (uncheck the option for glossy cover paint).
You must supply the printing company with a pdf that exactly fills the size of the board. For a 12"x12” board, the cost is currently about \$15 without shipping. The material is quite heavy, so not easily attached to walls with duct tape. However, it’s very rugged and weather resistant, i.e. suitable for permanent installation outdoors.
DiBond is also great material for a calibration board that gets heavy use. Due to popular demand, here are links to the front and back of the calibration board in the image. You can use them directly for printing on 1/8"x16"x12” DiBond at FoamCorePrint.com or (if you prefer the thinner board) 1/4"x16"x12” at Printmoz. The last board printed (May 2020) at Printmoz came to \$43.50 including shipping and handling.
Foam core
For a do-it-yourself approach, you can produce tags on foam core board. Avoid the “Readi” board sold by e.g. Dollar Tree stores. It warps badly! Rather get a board of 3/16” ProFoam from Jerry’s Artarama for about \$6, from which you can cut 12 tags of size 10"x10”.
Use an inkjet printer to print the tag on a matte clear adhesive label like the Avery 8665, which go for about \$1.00 for an 8.5"x11” page. Stick the label on the foam board, done. The board is significantly cheaper (about \$1.50/tag DIY, or \$4/tag + shipping if you have it printed) and lighter than DiBond aluminum, but also much more fragile. Be careful not to touch the printed surface, or the color will come off over time.
An even better solution is to use a laser printer and these labels for about \$0.45/sheet.
Paper
OK when used against flat surfaces like walls, or put on the ground. Good for some initial experimentation. Make sure the tag is really not warped, as this will greatly affect the pose estimation.
How to print your own AprilTags
There is a handy little program in the TagSLAM repo (courtesy of the Kalibr folks) with which you can generate a pdf of an AprilTag:
sudo apt install python-pyx
rosrun tagslam make_tag.py --nx 1 --ny 1 --marginx 0.00 --marginy 0.00 --tsize 0.16 --tspace 0.0 --startid 4 --tfam t36h11 --borderbits 1
This will produce a pdf file target.pdf
of a single tag with id 4,
size 16cm, and a 1 bit wide border. When you generate tags, you
obviously want to print them as big as possible, but you must leave a
large white frame around the tag! Make it about 2 bits wide (a bit
corresponds to one of the small squares that make up the tag’s
code). The white border around the tag is crucial for detection!
The borderbits
parameter determines the size of the black border
on the outside of the AprilTag. You will generally want to use a 1 bit
wide border, although you can see that the calibration board in the
image has tags with 2 bit borders (the corner squares between the tags
are for more accurate localization of the tag corners, TagSLAM is not
using them).
To verify that the tag will actually have the size you want:
pdfinfo target.pdf | grep -n 'Page size'
output:
Page size: 455.543 x 455.543 pts
Divide this by 72 to get the physical size in inches, then multiply by 0.0254 to get meters. In this case it works out to 0.1607, so actually a little off (why???).
Here is an example line for a 4x3 board to be printed on a 14x12 durabond board:
python3 ./make_tag.py --nx 4 --ny 3 --tsize 0.07 --tspace 0.25 --borderbits 1 --marginx 0.036598 --marginy 0.0295473 --draw_box --no-symm_corners


THE ADVENTURES OF ROCKY & BULLWINKLE RATING: 5/10 --> Not a good movie
For more reviews and movie wallpapers, visit http://www.joblo.com/
I suppose that the seamless blend of animated cartoon characters and real live actors on the big screen was a pretty big deal back in 1988, when WHO FRAMED ROGER RABBIT captured the nation's attention. But nowadays, with the incredible innovations in computer generated imagery, DVD and the mind-blowing effects in films like THE MATRIX and THE PHANTOM MENACE, it takes a little more to get us excited, right? Allrighty-then...how's about producing yet another remake of an old, cheezy cartoon television series, but this time, mix in some live-action folks and see how that plays. Sound like a good idea?
Yeah, I guess.
PLOT: After having been cancelled from television back in the 1960s, TV cartoon characters Rocky and Bullwinkle are left to dwindle their lives away in their animated world of Frostbite Falls, until their nefarious counterparts, Boris, Natasha and Fearless Leader escape, and take a live-action leap into today's real world. It isn't long before the cartoon two-some are summoned by a rookie FBI agent in the hopes of squishing Fearless Leader's maniacal plot to become the president of the United States.
CRITIQUE: A very cartoony film with a quick pace, may be suited for fans of the old series, but falls flat within today's comedic standards set by the Simpsons, with many unfunny goofy puns, easy jokes and childish pranks. Strangely enough, many of the jokes in this film are geared towards adults with many play-on-words and literal interpretations, but at the same time, the film is more than obviously meant for children, with a silly plot, over-the-top bad guys and oh-so simple humor ("Allow me to be frank with you" - "Oh hullo Frank, I'm Bullwinkle"). Yeesh! Yet another COPS parody also didn't twirl my nipples, and neither did half a million Bullwinkle misinterpretations, which I suppose were meant to be funny, but just left me feeling kind of, well...bored. I'll admit that I was never much of a fan of the original TV series on which this film is based (if I was flipping the channels and it was on, I generally tuned it for a bit, but that was about it), but I reckon that most kids who will go see this movie, would not have seen it either, so let's just hope that they "get it". Personally, I wasn't taken by either of the two leads, be it Rocky or Bullwinkle, and I especially didn't care for the dim-witted aspect of the Moose.
To be fair, I did hear quite a few people laughing in my audience, but even then, most of them were adults. I suppose that if you're in "the mood" and appreciate the "Bullwinkle humor", then you might enjoy this film, which to its credit, doesn't take itself seriously for a moment, and sure doesn't pretend to be about anything either. It's a cartoon movie with some live-action stars intermixed. In the end, the film will either work for you or not depending on your connection to the humor. The film's first 20 minutes are probably its most ambitious, with an excellent explanation of how the badly drawn duo from the 60s got to be the better-looking 3D animation characters in the year 2000. There is also a pretty cool sequence featuring Bullwinkle literally "surfing the Internet" near the end, but other than that, the effects did little to impress me. The film is also filled with plenty of cameos (see below), most of which feature actors whose best work is long behind them, and also stars a cute Britney Spears wannabee FBI agent, who I've never heard of before, but from whom I wouldn't mind hearing again! Robert DeNiro must've taken a little less than a week to film his scenes, because he's barely in the film, while Alexander and Russo both perform admirably as the notorious No-Goodniks from Pottsylvania, Boris and Natasha. But in the end, without much to impress me visually, without much humor to make me laugh, and without much of a story (granted, the film is a cartoon, you don't really expect much there), the film didn't do much for me.
But who knows, others may just enjoy it on their own level as an empty, frivolous, campy (funny to some), children's cartoon. And for anyone who wants to tell me to "lighten up", I'd be more than happy to accept your directive. I'll be the one watching yet another hilarious episode of TV's "The Simpsons". Now, there's some real humor!
Little Known Facts about this film and its stars: This film does manage to spoof a couple of other famous movies, including a flying scene straight out of SUPERMAN, and the infamous "you talkin' to me" scene from TAXI DRIVER, interpreted once again, by the man who helped make those words immortal in the first place, Robert DeNiro. Several star cameos line this film including Janeane Garofalo, Carl Reiner, Jonathan Winters (playing three different parts), Whoopie Goldberg, Billy Crystal, David Alan Grier and John Goodman. Look for DeNiro's own daughter in this film, Drena DeNiro, in a small part as a RBTV lackey. She is actually his daughter through adoption. She is Diahnne Abbott's real daughter from a previous marriage. DeNiro adopted her when he was married to Abbott from 1976-1988. Director Des McAnuff was originally a stage director, and the man responsible for bringing The Who's "Tommy" to Broadway. His first foray into film directing came in 1998 when he directed COUSIN BETTE starring Jessica Lange. He also produced last year's critically acclaimed animated feature THE IRON GIANT. Rumor has it that "Simpsons" creator Matt Groening inserted the infamous "J" in Homer J. Simpson's name as an homage to Rocky & Bullwinkle, whose full names are Rocky J. Squirrel and Bullwinkle J. Moose. Their middle "J" comes from creator Jay Ward's own name. So what has the Britney Spears-like actress (aka Piper Perabo) of this film done besides this, you may ask? Well, actually not much, although she is one of the stars in that all-girl sexy, momma-jomma film coming out in August, COYOTE UGLY, so stay tuned! Executive producer Tiffany Ward is Jay Ward's daughter. Jay Ward is the creator of the series upon which this film is based, as well as the man behind the characters in GEORGE OF THE JUNGLE and DUDLEY DO-RIGHT. June Foray, the original voice behind Rocky, is back as the voice of the flying squirrel in this film. Australian comedian-mimic Keith Scott voices both Bullwinkle and the film's omnipresent, wry narrator. Screenwriter Kenneth Lonergan also co-wrote the DeNiro comedy ANALYZE THIS.
Review Date: June 27, 2000 Director: Des McAnuff Writer: Kenneth Lonergan Producers: Jane Rosenthal and Robert DeNiro Actors: Robert DeNiro as Fearless Leader Rene Russo as Natasha Jason Alexander as Boris Piper Perabo as Karen Sympathy Genre: Children's Animation Year of Release: 2000 ------------------------------------ JoBlo's Movie Emporium http://www.joblo.com/ ------------------------------------ (c) 2000 Berge Garabedian
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


An interactive version of this case study that uses our Optimize API can be run online in Python as a Jupyter notebook without installing any packages.
Just click on the logo
to run the notebook.
A fundamental concept in portfolio optimization is that of the Efficient Frontier, which is the set of all portfolios that minimize a measure of risk while guaranteeing a certain level of return. By far the most studied and well understood case is that of minimum variance portfolios, which dates back to Markowitz [1952]. When no constraints on the expected return or the variance of the expected return of groups or the total number of assets is present, the determination of the optimum portfolios can be done through an analytic formula, a fact that facilitates the development and discussion of its many properties.
The case when constraints on groups of assets is present is much less understood, mainly because no analytic formula for the optimum portfolio can be derived. The following discussion is meant to illustrate the beneficial role that can be played by such constraints in portfolio optimization. It does not contain proofs and the technical aspects of the problems been solved are omitted.
In a nutshell, the message is that while unconstrained portfolios are easier to compute, they will more than often rely heavily on leverage to finance its holdings. The introduction of additional constraints, although complicating the optimization problem to be solved, can effectively control that level of leverage and help shape the desired portfolio without significantly increasing the associated level of risk.
We keep this discussion simple by adopting the variance of expected returns a measure of risk of the portfolio. See Markowitz [1952] or, for instance, Elton and Gruber [1995] for a more modern presentation.
Given a set of assets, their expected returns and the complete covariance matrix, an optimum portfolio is therefore one that minimizes the portfolio variance while guaranteeing a certain rate of expected return. As stated, one can cast such portfolio optimization problem as a convex quadratic program (Boyd and Vandenberghe [2004]). In its simplest version, without constraints, an analytic formula can be obtained for the computation of the optimum portfolio (Elton and Gruber [1995]).
In order to illustrate optimum portfolios under a variety of constraints we will use the fictitious data from Elton and Gruber [1995], Chapter 6, p 106. It consists of a small portfolio with 8 classes of segmented global assets. The expected returns and standard deviation of the return of such assets are given in the following table:
| S & P | Bonds | Canadian | Japan | Emerging Markets | Pacific | Europe | Small Stocks | |
|---|---|---|---|---|---|---|---|---|
| Expected return | 14.0 | 6.5 | 11.0 | 14.0 | 16.0 | 18.0 | 12.0 | 17.0 |
| Standard deviation | 18.5 | 5.0 | 16.0 | 23.0 | 30.0 | 26.0 | 20.0 | 24.0 |
The correlation coefficients which can be used to assemble the complete covariance matrix can be found in Elton and Gruber [1995] or by clicking here. With this information in hand one can trace the efficient frontier by varying the expected return to obtain the plot in the next figure:
The figure displays only a segment of the efficient frontier, the red solid curve, along with all assets and their respective return and standards deviations. It is clear that the main advantage of portfolio optimization, which selects assets on the efficient frontier, is to provide a significant reduction in risk at any level of return. This feature comes however loaded with some caveats. In the next sections we will discuss how some of these caveats can be mitigated by improving the quality of the underlying model with the introduction of additional constraints.
We now enlist two caveats. First, optimum portfolios in the unconstrained frontier can be very sensitive to the quality of the model, here specially the accuracy[1] of the covariance matrix. Second, under the absence of other constraints, the efficient frontier extends ad infinitum, and one could theoretically extract any level of return from this portfolio, often at the expense of much leveraging. For instance, pick a given level of return, say 14%, which is the expected return of the S&P assets, and take a closer look at its associated optimum portfolio weights:
| S&P | Bonds | Canadian | Japan | Emerging | Pacific | Europe | Small | Standard deviation | Leverage | |
|---|---|---|---|---|---|---|---|---|---|---|
| (%) | 5.3 | 36.9 | -3.6 | 6.9 | -12.0 | 33.7 | -11.5 | 44.2 | 12.9 | 27.1 |
The above weights are associated with the optimum portfolio shown in the figure above on the efficient frontier at the level of 14% return.
The optimum portfolio provides the same return as the S&P assets (14%) at a much lower risk (12.9% compared with 18.5%). Note however that this is accomplished by short selling Canadian, Emerging Markets and Europe, at a total level of leveraging[2] of 27.1%. Higher levels of return would generate even greater number of short sales. Indeed, in this example, that is the mechanism by which the optimum portfolios can provide returns superior to 18% at risk levels less than 26%, the marks which one would obtain by holding only Pacific.
With that in mind, it is natural to try to incorporate into the portfolio optimization procedure some type of constraint on the level of leveraging. One can do that individually, per asset, or globally. In the next section we adopt the latter type of constraint on the global level of leveraging.
Contrary to what happens in the case of an unconstrained portfolio, where the efficient frontier had an analytic expression that could be readily computed, the introduction of a constraint on leveraging leaves one with the task of computing the optimum portfolios by using numerical methods. This extra complication is however compensated by a more insightful efficient frontier. For example, in the next figure we have computed the efficient frontier subject to two levels of constraints on maximum leveraging:
The solid green curve is the efficient frontier when the total leveraging is constrained to be at most 7%. The solid blue curve is the efficient frontier when no short sales are allowed. Note that as a result of these constraints, the efficient frontier has now shifted and is now a finite curve segment in both cases. In particular, when no leveraging is permitted one is faced at the extremes with a choice of holding either Bonds, for minimum return, or Pacific, for maximum return.
Note also that the three curves have no point in common. This means that no optimum portfolio on the solid red efficient frontier has a level of leverage below 7%. Yet, as the figure illustrates, optimum portfolios with very similar risk and return exist throughout most of the interesting range of returns, in this case between 8% and 17%, which have leveraging levels of 7% and even with no leveraging at all! Again to make a point about a specific return level, consider 14%. The three optimum portfolios indicated in the above figure correspond to the weights:
| S&P | Bonds | Canadian | Japan | Emerging | Pacific | Europe | Small | Standard deviation | Leverage | |
|---|---|---|---|---|---|---|---|---|---|---|
| (%) | 5.3 | 36.9 | -3.6 | 6.9 | -12.0 | 33.7 | -11.5 | 44.2 | 12.9 | 27.1 |
| — | 31.5 | — | 3.1 | -7.0 | 32.5 | — | 39.9 | 13.1 | 7.0 | |
| — | 30.9 | — | 2.7 | — | 32.1 | — | 34.4 | 13.4 | — |
Note the negligible impact in the standard deviations of these optimum portfolios, that is their aggregate risk, as compared with the very large variation in the required level of borrowing required to holding these portfolios.
This may be the most significant advantage of improving the quality of the underlying model by incorporating in the portfolio optimization procedure operational and strategic constraints, rather than trying to adapt an optimal solution obtained in the unconstrained case to fit practical realities.
In the presence of additional constraints the efficient frontier will shift further. In this section we consider constraints on minimum positions on certain assets. For instance, let us look for optimum portfolios in which at least 30% of the total investment is in S&P and at least 10% is in Bonds. The efficient frontier is now computed and displayed in the next figure under arbitrary leverage (solid magenta), 7% (solid green) or no leverage (solid blue) constraints. For reference the fully unconstrained efficient frontier is also shown in solid red.
Note how enforcing minimum positions in S&P and Bonds significantly reduce the range of returns available at the efficient frontier, specially when combined with leverage constraints (blue and green curves). Yet, just as before, in the case of leverage constraints alone, optimum portfolios are available that are very close to the original unconstrained efficient frontier in most of the feasible range. Once again, consider the return level of 14%. Four optimum portfolios in each of the efficient frontiers depicted above are shown in the next table.
| S&P | Bonds | Canadian | Japan | Emerging | Pacific | Europe | Small | Standard deviation | Leverage | |
|---|---|---|---|---|---|---|---|---|---|---|
| (%) | 5.3 | 36.9 | -3.6 | 6.9 | -12.0 | 33.7 | -11.5 | 44.2 | 12.9 | 27.1 |
| 30.0 | 34.8 | -8.7 | 10.0 | -9.8 | 30.8 | -18.5 | 31.4 | 13.1 | 37.0 | |
| 30.0 | 23.2 | — | 6.2 | -2.6 | 27.4 | -4.4 | 20.2 | 13.5 | 7.0 | |
| 30.0 | 21.2 | — | 4.7 | — | 26.8 | — | 17.3 | 13.8 | — |
One more time, the increased risk (standard deviation of the return) is insignificant if compared with the variation in the amount of short sales as we enforce leverage constraints jointly with minimum positions on S&P and Bonds. Note that for the 14% return level the 30% minimum in S&P is active (that means satisfied at the required minimum) on all three optimum portfolios whereas the optimal withholding of Bonds is always greater than the required minimum. At higher levels of return the 15% constraint on Bonds becomes active as well.
It might come as a surprise to some to observe that the optimum portfolio obtained with no constraint on leveraging but where the minimum holdings on S&P and Bonds are enforced actually (solid magenta) produces the highest number of short sales, raising the required overall leveraging by almost 40% (from 27.1% to 37.0%). The conclusion is once again that one should incorporate as many practical constraints as possible on the underlying portfolio model in order to obtain reasonable and meaningful portfolios.
Mauricio de Oliveira
Copyright © 2009 VICBee Consulting


| 1165 | (A) | at Ilke a kirnełłe was crye and crassynge of wapyns |
| 1168 | (C) | On eche a kornełł was crye . & kacchynge of wepyn |
| 1151 | (D) | At eche kernełł was a crie & kecchyng of wepyn |
| 1128 | (E) | oueral was meche cry . & cacchyng of wepne |
| (Ex) | ---- no text ---- | |
| 1189 | (L) | at eche kernel was cry & quasschyng of wepne |
| (P) | ---- no text ---- | |
| 1136 | (U) | At ilk a corner was crie / / and catching of wepen |
| 229 | (V) | In eche cornere was cry . cratching and wepyng |