Fox Valley Girls Coding Club presents you with a website made for girls and women looking into or need help in a STEM field. Being women, we face discrimination for our love for technology. With this, it motivated us to create a place where other women can go to get help and be encouraged about STEM careers.
Allison enjoys computer science, art, and music. She is a junior at Kaneland Senior High School.
She plans to major in computer science and mathmatics.  She also loves volunteering.
Nikki Agarwal is a senior at St. Charles North High School. She is majoring in Data Analytics next year, however doesn't know where yet. She is currently enrolled in the full-time Dual Credit program, teaching her that she really can procrastinate everything in college too.  She wrote about the gender disparity in STEM in her college apps, so she's hoping we can find a way to fix this issue.
Meghan Lu is a junior at St. Charles North. She plans to major in computer science yet can barely turn on a computer. Her AP Computer Science experience has taught her that you really can cram for an AP test in one day-an important life lesson. Her hopes and dreams include becoming more active in social activism, sleeping ASAP, and that no one ever reads this about me section. She hopes that you enjoyed this website and that it made you think about gender disparity in CS, which is unfortunately still a very real and upsetting issue in 2019.
Name: Ava Lyons
School: Naperville Central High School
Grade: Junior
Email<EMAIL_ADDRESS>Github: aslyons15
Computer Science Background: Python, Github, HTML
Contribution: Bullying, Sexual Harassment, Stereotyping, LGBTQ+, and Navbar


open class CommandGroup : Command
A CommandGroup is a list of commands that are executed in sequence.
Commands in a CommandGroup are added using the addSequential method and are called sequentially. CommandGroups are themselves commands and can be given to other CommandGroups.
CommandGroups will carry all of the requirements of their subcommands. Additional requirements can be specified by calling the requires function of the CommandGroup, normally in the constructor of the aforementioned CommandGroup.
CommandGroups can also execute commands in parallel, simply by adding them using addParallel rather than addSequential.
| <init> |
CommandGroup()
Creates a new CommandGroup. |
| addParallel |
fun addParallel(command: Command): Unit fun addParallel(command: Command, timeout: Double): Unit
Adds a new child Command to the group. The Command will be started after all the previously added commands. |
| addSequential |
fun addSequential(command: Command): Unit
Adds a new Command to the group. The Command will be started after all the previously added commands. fun addSequential(command: Command, timeout: Double): Unit
Adds a new Command to the group with a given timeout. The Command will be started after all the previously added commands. |
| end |
open fun end(): Unit
Called when the command ended peacefully. This is where you may want to wrap up loose ends, like shutting off a motor that was being used in the command. |
| endShadowMethod |
open fun endShadowMethod(): Unit
A shadow method called after end |
| execute |
open fun execute(): Unit
The execute command is called repeatedly until this command either finishes or is canceled. |
| initialize |
open fun initialize(): Unit
The initialize method is called the first time this Command is run after being started. |
| interrupted |
open fun interrupted(): Unit
Called when the command ends because something called cancel or another command shared the same requirements as this one and booted this one out. |
| interruptedShadowMethod |
open fun interruptedShadowMethod(): Unit
A shadow method called after interrupted |
| isFinished |
open fun isFinished(): Boolean
Returns true if all the commands in this group have been started and finished |
| isInterruptible |
open fun isInterruptible(): Boolean
Returns whether or not this group is interruptible. A command group will be uninterruptible if setInterruptible(false) was called or if it is currently running an uninterruptible command or child. |
| cancel |
fun cancel(): Unit
This will cancel the current command. |
| doesRequire |
fun doesRequire(system: Subsystem): Boolean
Check if the command requires the given Subsystem |
| getGroup |
fun getGroup(): CommandGroup?
Returns the CommandGroup that this command is part of. Will return null if this command is not in a group. |
| isCanceled |
fun isCanceled(): Boolean
Returns whether or not this command has been canceled. |
| isCompleted |
fun isCompleted(): Boolean
Returns whether or not this command has been completed. |
| isRunning |
fun isRunning(): Boolean
Returns whether or not the command is running. This may return true even if the command has just been canceled, as it may not have yet called interrupted. |
| isTimedOut |
fun isTimedOut(): Boolean
Returns whether or not the timeSinceInitialized method returns a number which is greater than or equal to the timeout for the command. If there is no timeout, this will always return false. |
| requires |
fun requires(subsystem: Subsystem): Unit
This method specifies that the given Subsystem is used by this command. This method is crucial to the functioning of the Command System in general. |
| setInterruptible |
fun setInterruptible(interruptible: Boolean): Unit
Sets whether or not this command can be interrupted. |
| setTimeout |
fun setTimeout(seconds: Double): Unit
Sets the timeout of this command |
| start |
fun start(): Unit
Starts up the command. Gets the command ready to start. |
| timeSinceInitialized |
fun timeSinceInitialized(): Double
Returns the time since the command has been initialized (in seconds). This function will work even if there is no timeout |
| toString |
open fun toString(): String
The string representation for a Command is its class name. |


"""
Fuzzy Variables
==============================================================================
"""
import matplotlib.pyplot as plt
import numpy as np
[docs]class FuzzyVariable:
"""Creates a (fuzzy) linguistic variable.
Args:
name (string): variable name.
universe (list, numpy.array): list of points defining the universe of the variable.
sets (dict): dictionary where keys are the name of the sets, and the values correspond to the membership for each point of the universe.
Returns:
A fuzzy variable.
"""
def __init__(self, name, universe, sets=None):
self.name = name.replace(" ", "_")
self.universe = universe
if sets is None:
self.sets = {}
else:
self.sets = sets
for key in sets.keys():
self.sets[key] = np.array(self.sets[key])
def __getitem__(self, name):
"""Returns the membership function for the specified fuzzy set.
Args:
name (string): Fuzzy set name
Returns:
A numpy array.
"""
return self.sets[name]
def __setitem__(self, name, memberships):
"""Sets the membership function values for the specified fuzzy set.
Args:
name (string): Fuzzy set name.
memberships (list, numpy.array): membership values.
"""
self.sets[name] = np.array(memberships)
[docs] def plot(self, fmt="-", linewidth=2):
"""Plots the fuzzy sets defined for the variable.
Args:
figsize (tuple): figure size.
"""
for k in self.sets.keys():
plt.gca().plot(
self.universe, self.sets[k], fmt, label=k, linewidth=linewidth
)
plt.gca().legend()
plt.gca().set_title(self.name)
plt.gca().set_ylim(-0.05, 1.05)
plt.gca().spines["left"].set_color("lightgray")
plt.gca().spines["bottom"].set_color("gray")
plt.gca().spines["top"].set_visible(False)
plt.gca().spines["right"].set_visible(False)
[docs] def get_modified_membership(self, fuzzyset, modifiers):
"""Computes a modified membership function.
Args:
fuzzyset (string): Identifier of the fuzzy set.
modifier (string): {"very"|"somewhat"|"more_or_less"|"extremely"|"plus"|"intensify"|"slightly"|None}
negation (bool): When True computes the negation of the fuzzy set.
Returns:
A numpy.array.
"""
if modifiers is None:
return self.sets[fuzzyset]
membership = self.sets[fuzzyset]
for modifier in modifiers:
if modifier.upper() == "VERY":
membership = membership ** 2
if modifier.upper() == "SOMEWHAT":
membership = membership ** 0.33333
if modifier.upper().replace("-", "_") == "MORE_OR_LESS":
membership = membership ** 0.5
if modifier.upper() == "EXTREMELY":
membership = membership ** 3
if modifier.upper() == "PLUS":
membership = membership ** 1.25
if modifier.upper() == "INTENSIFY":
membership = np.where(
membership <= 0.5, membership ** 2, 1 - 2 * (1 - membership) ** 2
)
if modifier.upper() == "SLIGHTLY":
plus_membership = membership ** 1.25
not_very_membership = 1 - membership ** 2
membership = np.where(
plus_membership < not_very_membership,
plus_membership,
not_very_membership,
)
membership = membership / np.max(membership)
membership = np.where(
membership <= 0.5, membership ** 2, 1 - 2 * (1 - membership) ** 2
)
if modifier.upper() == "NOT":
membership = 1 - membership
return membership
[docs] def compute_membership(self, value, fuzzyset, modifiers=None):
"""Computes the value of the membership function on a specifyied point of the universe for the fuzzy set.
Args:
value (float, numpy.array): point to evaluate the value of the membership function.
fuzzyset (string): name of the fuzzy set.
modifier (string): membership function modifier.
negation (bool): returns the negation?.
Returns:
A float number or numpy.array.
"""
membership = self.get_modified_membership(fuzzyset, modifiers)
return np.interp(
x=value,
xp=self.universe,
fp=membership,
)
[docs] def aggregate(self, operator="max"):
"""Replace the fuzzy sets by a unique fuzzy set computed by the aggregation operator.
Args:
operator (string): {"max"|"sim"|"probor"} aggregation operator.
Returns:
A FuzzyVariable
"""
aggregation = None
result = FuzzyVariable(name=self.name, universe=self.universe)
for i_fuzzyset, fuzzyset in enumerate(self.sets.keys()):
result[fuzzyset] = self.sets[fuzzyset]
if i_fuzzyset == 0:
aggregation = self.sets[fuzzyset]
else:
if operator == "max":
aggregation = np.maximum(aggregation, self.sets[fuzzyset])
if operator == "sum":
aggregation = aggregation + self.sets[fuzzyset]
if operator == "probor":
aggregation = (
aggregation
+ self.sets[fuzzyset]
- aggregation * self.sets[fuzzyset]
)
result["_aggregation_"] = aggregation
return result
[docs] def defuzzificate(self, fuzzyset="_aggregation_", operator="cog"):
"""Computes a representative crisp value for the fuzzy set.
Args:
fuzzyset (string): Fuzzy set to defuzzify
operator (string): {"cog"|"bisection"|"mom"|"lom"|"som"}
Returns:
A float value.
"""
if np.sum(self.sets[fuzzyset]) == 0.0:
return 0.0
if operator == "cog":
#
# cog: center of gravity
#
start = np.min(self.universe)
stop = np.max(self.universe)
x = np.linspace(start, stop, num=200)
membership = self.compute_membership(x, fuzzyset)
return np.sum(x * membership) / sum(membership)
if operator == "bisection":
start = np.min(self.universe)
stop = np.max(self.universe)
x = np.linspace(start, stop, num=200)
membership = self.compute_membership(x, fuzzyset)
area = np.sum(membership) / 2
for i in range(len(x)):
if np.sum(membership[0:i]) > area:
return x[i]
return -1
maximum = np.max(self.sets[fuzzyset])
maximum = np.array(
[x for x, m in zip(self.universe, self.sets[fuzzyset]) if m == maximum]
)
if operator == "mom":
#
# MoM: Mean of the values for which the output fuzzy set is maximum
#
return np.mean(maximum)
if operator == "lom":
#
# lom: Largest value for which the output fuzzy set is maximum
#
return np.max(maximum)
if operator == "som":
#
# som: Smallest value for which the output fuzzy set is maximum
#
return np.min(maximum)


OHL: Cranley's 31-save shutout leads 67's to 2-0 victory over Steelheads
OTTAWA — Will Cranley made 31 saves as the Ottawa 67's shut out the Mississauga Steelheads 2-0 in Ontario Hockey League action on Saturday.
by Canadian PressOTTAWA — Will Cranley made 31 saves as the Ottawa 67's shut out the Mississauga Steelheads 2-0 in Ontario Hockey League action on Saturday.
Marco Rossi recorded a goal and an assist, while Jack Quinn added an empty-netter to help give the 67's (17-6-0) their fourth win in a row. It also marked Ottawa's ninth victory in 11 games.
Kai Edmonds stopped 27-of-28 shots for Mississauga (7-14-1).
The Steelheads were 0 for 4 on the power play and the 67's went 0 for 2 with the man advantage.
---
BULLDOGS 4 STORM 3 (SO)
HAMILTON — Tag Bertuzzi scored the only goal in the shootout as Hamilton (12-13-1) eked out a victory over Guelph (13-4-4).
---
PETES 3 RANGERS 1
PETERBOROUGH, Ont. — Hunter Jones stopped 43-of-44 shots, while Tucker Robertson scored the winner as the Petes (16-6-2) beat Kitchener (7-10-4).
---
FIREBIRDS 5 ATTACK 4
FLINT, Mich. — Evgeniy Oksentyuk had a goal and two assists during a stretch of five unanswered goals for the Firebirds (15-8-0) in their come-from-behind victory over Owen Sound (10-9-3).
---
SPITFIRES 4 SPIRIT 1
SAGINAW, Mich. — Kari Piironoinen made 34 saves, while Curtis Douglas scored a short-handed goal as Windsor (14-3-3) edged the Spirit (13-8-1) to remain unbeaten in regulation over its last 12 games.
---
ICEDOGS 6 COLTS 2
BARRIE, Ont. — Ivan Lodnia recorded his first career OHL hat trick in Niagara's (9-11-4) rout over the Colts (12-8-1).
---
This report by The Canadian Press was first published Nov. 23, 2019.
The Canadian Press


|
QuantLib: a free/open-source library for quantitative finance
Fully annotated sources - version 1.30
|
Public Member Functions | |
| GFunctionExactYield (const CmsCoupon &coupon) | |
| Real | operator() (Real x) override |
| Real | firstDerivative (Real x) override |
| Real | secondDerivative (Real x) override |
| Public Member Functions inherited from GFunction | |
| virtual | ~GFunction ()=default |
| virtual Real | operator() (Real x)=0 |
| virtual Real | firstDerivative (Real x)=0 |
| virtual Real | secondDerivative (Real x)=0 |
Protected Attributes | |
| Real | delta_ |
| std::vector< Time > | accruals_ |
Definition at line 118 of file conundrumpricer.hpp.
| GFunctionExactYield | ( | const CmsCoupon & | coupon | ) |
Implements GFunction.
Definition at line 672 of file conundrumpricer.cpp.
Implements GFunction.
Definition at line 680 of file conundrumpricer.cpp.
Implements GFunction.
Definition at line 701 of file conundrumpricer.cpp.
|
protected |
Definition at line 128 of file conundrumpricer.hpp.
|
protected |
Definition at line 130 of file conundrumpricer.hpp.


Class: ActiveSupport::Notifications::Fanout
| Relationships & Source Files | |
| Namespace Children | |
|
Modules:
| |
|
Classes:
| |
| Super Chains via Extension / Inclusion / Inheritance | |
|
Instance Chain:
self,
FanoutIteration ,
Mutex_m
|
|
| Inherits: | Object |
| Defined in: | activesupport/lib/active_support/notifications/fanout.rb |
Overview
This is a default queue implementation that ships with ::ActiveSupport::Notifications
. It just pushes events to all registered log subscribers.
This class is thread safe. All methods are reentrant.
Class Method Summary
- .new ⇒ Fanout constructor
Instance Method Summary
- #all_listeners_for(name)
- #build_handle(name, id, payload)
- #finish(name, id, payload, listeners = nil)
- #listeners_for(name)
- #listening?(name) ⇒ Boolean
- #publish(name, *args)
- #publish_event(event)
- #start(name, id, payload)
- #subscribe(pattern = nil, callable = nil, monotonic: false, &block)
- #unsubscribe(subscriber_or_name)
-
#wait
This is a sync queue, so there is no waiting.
- #clear_cache(key = nil) Internal use only
- #groups_for(name) Internal use only
- #inspect Internal use only
FanoutIteration
- Included
Constructor Details
.new ⇒ Fanout
# File 'activesupport/lib/active_support/notifications/fanout.rb', line 50
def initialize @string_subscribers = Concurrent::Map.new { |h, k| h.compute_if_absent(k) { [] } } @other_subscribers = [] @all_listeners_for = Concurrent::Map.new @groups_for = Concurrent::Map.new @silenceable_groups_for = Concurrent::Map.new super end
Instance Method Details
#all_listeners_for(name)
[ GitHub ]# File 'activesupport/lib/active_support/notifications/fanout.rb', line 295
def all_listeners_for(name) # this is correctly done double-checked locking (Concurrent::Map's lookups have volatile semantics) @all_listeners_for[name] || synchronize do # use synchronisation when accessing @subscribers @all_listeners_for[name] ||= @string_subscribers[name] + @other_subscribers.select { |s| s.subscribed_to?(name) } end end
#build_handle(name, id, payload)
[ GitHub ]#clear_cache(key = nil)
This method is for internal use only.
[ GitHub ]
# File 'activesupport/lib/active_support/notifications/fanout.rb', line 101
def clear_cache(key = nil) # :nodoc: if key @all_listeners_for.delete(key) @groups_for.delete(key) @silenceable_groups_for.delete(key) else @all_listeners_for.clear @groups_for.clear @silenceable_groups_for.clear end end
#finish(name, id, payload, listeners = nil)
[ GitHub ]# File 'activesupport/lib/active_support/notifications/fanout.rb', line 281
def finish(name, id, payload, listeners = nil) handle_stack = IsolatedExecutionState[:_fanout_handle_stack] handle = handle_stack.pop handle.finish_with_values(name, id, payload) end
#groups_for(name)
This method is for internal use only.
[ GitHub ]
# File 'activesupport/lib/active_support/notifications/fanout.rb', line 187
def groups_for(name) # :nodoc: groups = @groups_for.compute_if_absent(name) do all_listeners_for(name).reject(&:silenceable).group_by(&:group_class).transform_values do |s| s.map(&:delegate) end end silenceable_groups = @silenceable_groups_for.compute_if_absent(name) do all_listeners_for(name).select(&:silenceable).group_by(&:group_class).transform_values do |s| s.map(&:delegate) end end unless silenceable_groups.empty? groups = groups.dup silenceable_groups.each do |group_class, subscriptions| active_subscriptions = subscriptions.reject { |s| s.silenced?(name) } unless active_subscriptions.empty? groups[group_class] = (groups[group_class] || []) + active_subscriptions end end end groups end
#inspect
This method is for internal use only.
[ GitHub ]
# File 'activesupport/lib/active_support/notifications/fanout.rb', line 59
def inspect # :nodoc: total_patterns = @string_subscribers.size + @other_subscribers.size "#<#{self.class} (#{total_patterns} patterns)>" end
#listeners_for(name)
[ GitHub ]# File 'activesupport/lib/active_support/notifications/fanout.rb', line 304
def listeners_for(name) all_listeners_for(name).reject { |s| s.silenced?(name) } end
#listening?(name) ⇒ Boolean
# File 'activesupport/lib/active_support/notifications/fanout.rb', line 308
def listening?(name) all_listeners_for(name).any? { |s| !s.silenced?(name) } end
#publish(name, *args)
[ GitHub ]# File 'activesupport/lib/active_support/notifications/fanout.rb', line 287
def publish(name, *args) iterate_guarding_exceptions(listeners_for(name)) { |s| s.publish(name, *args) } end
#publish_event(event)
[ GitHub ]# File 'activesupport/lib/active_support/notifications/fanout.rb', line 291
def publish_event(event) iterate_guarding_exceptions(listeners_for(event.name)) { |s| s.publish_event(event) } end
#start(name, id, payload)
[ GitHub ]# File 'activesupport/lib/active_support/notifications/fanout.rb', line 274
def start(name, id, payload) handle_stack = (IsolatedExecutionState[:_fanout_handle_stack] ||= []) handle = build_handle(name, id, payload) handle_stack << handle handle.start end
#subscribe(pattern = nil, callable = nil, monotonic: false, &block)
[ GitHub ]# File 'activesupport/lib/active_support/notifications/fanout.rb', line 64
def subscribe(pattern = nil, callable = nil, monotonic: false, &block) subscriber = Subscribers.new(pattern, callable || block, monotonic) synchronize do case pattern when String @string_subscribers[pattern] << subscriber clear_cache(pattern) when NilClass, Regexp @other_subscribers << subscriber clear_cache else raise ArgumentError, "pattern must be specified as a String, Regexp or empty" end end subscriber end
#unsubscribe(subscriber_or_name)
[ GitHub ]# File 'activesupport/lib/active_support/notifications/fanout.rb', line 81
def unsubscribe(subscriber_or_name) synchronize do case subscriber_or_name when String @string_subscribers[subscriber_or_name].clear clear_cache(subscriber_or_name) @other_subscribers.each { |sub| sub.unsubscribe!(subscriber_or_name) } else pattern = subscriber_or_name.try(:pattern) if String === pattern @string_subscribers[pattern].delete(subscriber_or_name) clear_cache(pattern) else @other_subscribers.delete(subscriber_or_name) clear_cache end end end end
#wait
This is a sync queue, so there is no waiting.
# File 'activesupport/lib/active_support/notifications/fanout.rb', line 313
def wait end


This was one of the earlier projects that I've done at Learners Guild. It was my first experience with local storage.
This was my first experience using React. The fun part was allowing the user to click the task's text to edit the task and have it saved on the backend.


Climate change alters Highland red deer gene pool
Red deer in the Highlands are evolving because of climate change, a 45-year study has found.
Scientists say they have seen genetic changes in birth patterns of deer on the Isle of Rum.
Not only do warmer temperatures encourage deer to give birth earlier in the year, it has also meant the gene for breeding earlier has become more common among Rum deer.
Researchers said it was "rare" to see evolution over such a short period.
Why has it happened?
Previous studies have shown that the deer have been giving birth earlier since the 1980s, at a rate of about three days per decade.
This is partly due to the effects of warmer temperatures on the deer's behaviour and physiology.
Now researchers are saying that the deer who give birth earlier have more calves over their lifetime - which means they have more reproductive success.
The gene which causes earlier birth is therefore much more common among the Rum deer population over time.
This is an example of natural selection, the theory of evolution developed by Charles Darwin.
'Evolution in action'
A team, including scientists from the University of Edinburgh, made the discovery using field records and genetic data collected on Rum over a 45-year period since 1972.
The research also involved scientists from the Australian National University and the universities of St Andrews and Cambridge.
Dr Timothée Bonnet, of the Australian National University, who led the study, said they had "documented evolution in action".
He added that the research showed that natural selection "may help populations adapt to climate warming."
However, Robin Parker from WWF Scotland said urgent action was needed to reduce climate change.

"In order to tackle the joint nature and climate emergencies we face, it's vital we accelerate action to slash our emissions.
"In doing this we can protect our precious wildlife, while also creating a healthier, fairer and more prosperous Scotland for us all."


Blake Hall
Fast and lightweight distributive version control
Branching
Rebasing/Merging
The old way: Email lists
Why has it gotten so popular?
One click and you have your own repository
Allows people to get a copy of the code, work on it, push it up, and then...
Probably the biggest reason for GitHub's success
Tracking for issues...duh
Popular for tracking bugs, questions, and feature requests
WebHooks: Enables Continuous Integration and Continuous Deployment
Static Site Hosting: This entire slideshow is on GitHub
Stars: Follow projects you care about


JollofBot
Just say Jollof!
JollofBot is a Messenger bot that helps you find the nearest place where you can buy Jollof 🍲 and other delicacies 🥘 You can either have it delivered 🛵 to you right where you are as quick as ⚡ or get directions to the best Jollof you'll ever have!.


Metadata
Choose a File
Drag and drop a DSP parameter file (.params) here. Select 'Export System Files' from the Action menu in SigmaStudio to create the file.
Board Hierarchy
Title
registers
DSP Metadata
Make sure to check metadata when saving it to the XML file.
Copy
Show or Hide XML


| For more detailed docs see Clutter documentation. | ||
|
button
Returns an [[Object]] with slots
device
x and y set.
Returns a value from [[Clutter EVENT]].
flags
Returns a value from [[Clutter STATE]].
time
Returns a [[Date]] object.
x
|


Why is Facebook's iOS app accessing my camera while I do unrelated things, users ask
by Xeni JardinFacebook says, oops, it's 'likely' a bug.
Facebook users, who really should reconsider their life choices right about now, are noticing that Facebook's iOS app is accessing their iPhone or iPad camera while they're doing completely unrelated things, like skimming their FB feed to catch up on what friends are posting. One workaround is to go into your permissions and revoke the app's right to use your camera.
Another is to delete the app and kill your account and never look back, but to each their own -- and some folks kind of need to use it for work or other reasons, so don't judge.
“The issue came to light through several posts on Twitter,” reports Alfred Ng for CNET, “Users noted that their cameras were activated behind Facebook's app as they were watching videos or looking at photos on the social network.”
After people clicked on the video to full screen, returning it back to normal would create a bug in which Facebook's mobile layout was slightly shifted to the right. With the open space on the left, you could now see the phone's camera activated in the background. This was documented in multiple cases, with the earliest incident on Nov. 2.
It's since been tweeted a couple other times, and CNET has also been able to replicate the issue.
Facebook didn't immediately respond to a request for comment, but Guy Rosen, its vice president of integrity, tweeted Tuesday that this seems like a bug and the company's looking into the matter.
More details on the “bug” here: Facebook bug shows camera activated in background during app use.
[via techmeme.com]


Inherits MonoBehaviour.
◆ arBlackscreenActive()
| void ARManager.arBlackscreenActive |
( |
| ) |
|
|
private |
Enable Black Screen for Scene Transfering
◆ switchMode()
| void ARManager.switchMode |
( |
| ) |
|
Switch scene with a black screen from AR/Virtual
◆ toAR()
◆ toggleARTourObjects()
| void ARManager.toggleARTourObjects |
( |
| ) |
|
◆ toggleARWindow()
| void ARManager.toggleARWindow |
( |
| ) |
|
◆ toTour()
| void ARManager.toTour |
( |
| ) |
|
|
private |
◆ UpdateBlackScreenColor()
| void ARManager.UpdateBlackScreenColor |
( |
Color |
aColor | ) |
|
|
private |
◆ arBackButton
| GameObject ARManager.arBackButton |
|
private |
◆ arChoice
| GameObject ARManager.arChoice |
|
private |
Gives users a choice on switching modes.
◆ blackScreen
| GameObject ARManager.blackScreen |
|
private |
Used to transition between scenes.
◆ joyCamera
| GameObject ARManager.joyCamera |
|
private |
◆ joyMove
| GameObject ARManager.joyMove |
|
private |
Represents the movement and camera touch controls.
◆ menuButton
| GameObject ARManager.menuButton |
|
private |
Various Elements to turn off/on when the AR mode is changed.
◆ miniMap
| GameObject ARManager.miniMap |
|
private |
◆ sceneText
| TextMeshProUGUI ARManager.sceneText |
|
private |
The documentation for this class was generated from the following file:


------ Created by Yaopeng Liu
This App used BootStrap3 + jQuery + HTML5/CSS3 for basic UI/UX design
This App used React + BootStrap4 + jQuery + HTML5/CSS3


Concussions in high school athletes may be a risk factor for suicide
| Source: | University of Texas Health Science Center at Houston |
| Summary: | Concussion, the most common form of traumatic brain injury, has been linked to an increased risk of depression and suicide in adults. Now new research suggests high school students with a history of sports-related concussions might be at an increased risk for suicide completion. |
Concussion, the most common form of traumatic brain injury, has been linked to an increased risk of depression and suicide in adults. Now new research published by The University of Texas Health Science Center at Houston (UTHealth) suggests high school students with a history of sports-related concussions might be at an increased risk for suicide completion.
The research, which recently appeared in the November issue of the Journal of Affective Disorders, examined the link between self-reported history of concussion and risk factors for suicide completion. It was the first study to include a nationally representative sample of high school students. According to the Centers for Disease Control and Prevention, suicide is the second-leading cause of death in Americans ages 10 to 34.
"It's important to remember that when it comes to concussions, there's no visual test to confirm them. Unfortunately, you can't take your child to have a lab test done to diagnose one," said Dale Mantey, the study's lead author, a doctoral student at UTHealth School of Public Health in Austin.
Common symptoms of a concussion include loss of consciousness, headache, confusion, and change in mood.
The study examined survey data collected from more than 13,000 high school students in the United States. Participants were asked if they had received a concussion related to sports or physical activity in the last year, as well as a range of questions to measure potential suicidal behaviors. Approximately 15% of students surveyed reported having suffered a concussion.
Researchers discovered that teenagers who reported having a concussion in the last year were more likely to report feelings of depression, suicidal ideations, and planned or previous suicide attempts. Of the portion of students who reported a history of concussions, approximately 36% reported they had felt sad or hopeless (compared to 31.1% of all teens) and around 21% had thoughts of suicide (compared to 17%).
Male participants with a reported concussion in the last year were twice as likely to report having attempted suicide and three times more likely to report a history of receiving medical treatment for an attempted suicide than those who did not have a recent concussion.
The study also revealed female students with a history of concussions had greater odds to report all risk factors of suicide. They were more likely to have reported feeling sad or hopeless, having suicidal ideations, a planned suicide attempt, having attempted suicide, and were twice as likely to indicate a history of receiving medical treatment for an attempted suicide compared to females who did not report a concussion in the last year. A recently published article in the journal Pediatrics revealed female high school athletes have higher concussion rates than their male counterparts.
The researchers noted that while the study did control for commonly associated suicide risk factors like sexual orientation and a history of being bullied, it did not account for other risk factors like drug or alcohol use. There were no measures of preconcussion mental health for survey participants.
"Concussions are a traumatic brain injury and they are even worse for young people with developing brains," said Steven H. Kelder, PhD, MPH, senior author and Beth Toby Grossman Distinguished Professor in Spirituality and Healing at UTHealth School of Public Health in Austin. "These injuries can have long-term effects such as memory issues and sleep disturbances."
According to the National Suicide Prevention Lifeline, warning signs of suicide can include talking about feeling hopeless, withdrawing or social isolation, extreme mood swings, and reckless or anxious behavior.
"Everyone needs to be aware of the warning signs and the risks that come with concussions — parents, teachers, coaches, but also the students themselves," Mantey said. "If there is any concern that a child may have suffered a concussion, it is critical to seek medical attention. If a child is diagnosed with a concussion, everyone in their support network should look for changes in mood or behavior that may be warning signs of reduced mental well-being."
make a difference: sponsored opportunity
Story Source:
Materials provided by University of Texas Health Science Center at Houston. Original written by Wendi Hawthorne.
Note: Content may be edited for style and length.
Cite This Page:
| MLA | University of Texas Health Science Center at Houston. "Concussions in high school athletes may be a risk factor for suicide." ScienceDaily. ScienceDaily, 25 November 2019. <www.sciencedaily.com/releases/2019/11/191125145546.htm>. |
| APA | University of Texas Health Science Center at Houston. (2019, November 25). Concussions in high school athletes may be a risk factor for suicide. ScienceDaily. Retrieved November 25, 2019 from www.sciencedaily.com/releases/2019/11/191125145546.htm |
| Chicago | University of Texas Health Science Center at Houston. "Concussions in high school athletes may be a risk factor for suicide." ScienceDaily. www.sciencedaily.com/releases/2019/11/191125145546.htm (accessed November 25, 2019). |


Nigel Farage says he will not stand to be Brexit Party MP at the general election
The Brexit Party leader launched the party's campaign on Friday but has now confirmed he won't stand himself
by Oliver Milne, https://www.mirror.co.uk/authors/oliver-milne/Nigel Farage has said he will not stand at the general election.
The Brexit Party leader confirmed he wouldn't make an eight bid to become an MP while speaking to Andrew Marr.
On Friday Mr Farage begged Boris Johnson for a "leave alliance" which could see the Tories and the Brexit Party join forces to try and sink Jeremy Corbyn's bid to become PM.
That, he claimed, could involve up to 150 Tory candidates stepping aside in Labour seats that have never voted Tory - in exchange for the Brexit Party not contesting other Tory seats.
Boris Johnson has ruled out any alliance between the two right-wing parties.
But despite the bid, Mr Farage has confirmed he will not stand himself.
"I have thought very hard about this: How do I serve the cause of Brexit best?" hesaid.
"Do I find a seat and try to get myself into parliament or do I serve the cause better traversing the length and breadth of the United Kingdom supporting 600 candidates, and I've decided the latter course is the right one."
It would have marked his eight attempt to become an MP.
Mr Farage has stood twice in South Thanet, alongside Buckingham, Salisbury and Bexhill and Battle.
He also lost by-elections in Eastleigh in 1994 and Bromley and Chislehurst in 2006.
Mr Farage's ploy to play the Brexit Kingmaker could ironically delay Britain leaving the EU again, after he said Mr Johnson could have until July 1 to meet the terms of the offer.
It comes after the former UKIP leader said he was twice offered a peerage as one of a number of "baubles" put forward by the Conservative party.
Speaking about Mr Johnson's Brexit deal, Mr Farage told the Sunday Times it was like a piece of cheese.
"When you get it out of the fridge, it's really appetising and delicious for a few days, but after a couple of weeks it stinks and is inedible."


Work visa and moving from the US back to your home country
In my recent post I wrote that I’m leaving my current job and moving back to Slovenia to start working on my own startup. In this post I’m going to provide a high level overview of a process and most of the bureaucratic things which are involved if you have a some kind of work visa (H1B in my case) and you want to move back to your home country.
Motivation
If you search around the web you can find plenty of blog posts, articles and resources for people who got a job or want to work in the US ( e.g. “Getting a job in San Francisco”).
The same is not true if you turn the situation around. If you currently hold some kind of work visa and you want to move back to the home country there are basically no high level resources you could use to know what to expect.
I recently went through this process myself so I have fresh and first hand experience. Actual process involved a lot digging and reading through long and mostly boring legal documents.
I hope this post will act as a high level overview, help other people in a similar situation and give a better idea of how the whole thing looks like to people who never went through a process like this personally.
A lot of things described in this post are similar to the process you need to go through if you are just changing your job or moving to a different location, but there are two major differences:
- If you have H1B, there is no grace period which means you are on a tight schedule and need to make sure all the dates align perfectly.
- You are mostly on your own. If you get a job offer from a respectful company in the US, the company will usually pay the lawyers and take care most of the bureaucracy. The whole process is still very stressful and there are a lot of factors you nor lawyers can control, but at least you are not on your own.
Disclaimer
First I want to add that I’m going to talk about my specific case and people who hold H1B visa. The same things might not apply to other type of visas valid for work.
Second of all, I’m not a lawyer nor a tax adviser so please, if you are not sure about something, do your own research and consult your lawyer and / or tax adviser before doing something based just on this blog post.
Why move outside of the US in the first place?
First of all, a lot of people will ask why move outside of the US in the first place? Why not just start the company in the US? Isn’t Silicon Valley one of the best places for a technical and social startup to be?
To start with the last questions - the answer is yes. For majority of the technical and social startups Silicon Valley indeed is the best place to be.
Sadly if you are foreign-born and don’t have a US citizenship you are mostly out of luck. The reason is that US immigration doesn’t welcome foreign-born entrepreneurs without US citizenship and makes it basically impossible to start your own company in the US if you don’t have a lot of money to try your bets with the investor visa (E2) or similar.
That is very sad, especially because a lot of large and successful US companies were started by foreign-born entrepreneurs. The whole immigration problem is a very complex topic and I can’t do it justice in a single paragraph. All I can say is that I’m happy to see other countries recognizing this problem and trying to do something about it (examples include StartupChile sponsored by the Chilean government and Canada’s Start-Up Visa program).
Luckily recently a bunch of well known Silicon Valley entrepreneurs have stepped together and started working on a new immigration reform. The whole reform is not ideal, but it’s a step in the right direction and a big improvement over the current situation. I hope the bill will pass in the senate, but I’m not too optimistic because similar efforts have failed in the past.
H1B and grace period
Contrary to a popular belief there is no grace period for H1B holders.
If you want to do everything correctly and / or come back in the future it should be in your best interest to leave the country as soon as possible after your last work day.
In my case I left the country one day after my last working day.
Resignation Letter
In California you are employed at will which in the layman’s terms means that either you or your employer can terminate the employment relationship at any time, with or without reason (exceptions include discriminatory and a couple of other reasons).
Common practice when quitting your job is to give around 2 week notice to your employer. In a special case like this you need to figure a lot of things out (401k, apartment, ESPP, selling your belongings, etc.) which aren’t under your control and involve talking to HR and other people and institutions.
This means you should take all of this into account before giving your notice and make sure you have plenty of time to figure all of this out.
Sailing permit, taxes and the IRS
If you are on a work visa and you are going to leave a country for a longer period you need to obtain a document called ”sailing permit” from the IRS.
If you read about it online, people says that almost no one checks for a sailing permit when you leave the country. If you ever want to return to the US and do everything the right way you should obtain this document.
To purpose of this document is to prove IRS that you don’t ow them any money and if you do, you need to pay it before you can get a permit and legally leave the country.
The way this process works is as follows. You go to the local IRS office and with you, you need to have the following documents (for a full list see the IRS website):
- Photo ID (passport / california id / driving license)
- Your visa (usually located in your passport)
- Plane ticket which shows your date of departure
- Tax return for the previous year (to show that you paid any taxes due)
- W2’s for the previous years
- Pay stubs for the current year (to show taxes were withheld from your paychecks)
- Filled 1040C form
The last part is one of the most important ones. 1040C is a one time early tax return for a foreign alien leaving the country.  If you do you need to pay them before you leave. If the IRS owes you money they won’t return this when you leave, but you need to claim that when you are filling your regular tax return for the current tax year.
If you only have a single source of income (your job), aren’t self employed and don’t have any vested shares, filling 1040C is pretty straightforward.
Keep in mind that things will get more complex when you are going to file your regular tax return for the current tax year (1040 or 1040NR). If you meet the substantial presence test, you will also ow US taxes for any money you make outside the US in this tax year. Most of the details again depend on your specific situation so be sure to do your own research.
If there is no treaty between the US and your home country you will also need pay taxes to the US and your home country. Luckily that is not the case with Slovenia, because we have signed a treaty for avoidance of double taxation.
Selling your belongings
This title is pretty self explanatory and it’s almost the same if you are just moving to a different location.
The only difference is that under this scenario you are usually under time pressure and all of the dates must line up perfectly.
In my case, I luckily didn’t own a car or too many items so this process wasn’t too painful.
Moving out of your apartment
This is only applicable if you are renting as I did.
Specific details depend on your lease agreement, but usually you need to give at least 30-day notice in writing to your landlord.
401k
If you are enrolled into a 401k plan you have multiple options. Depending on your provider you can leave money in the account (if you ever plan to come back). Other options include transferring money to a similar fund in your home country or taking the money out when your employment has been terminated.
Keep in mind that under normal circumstances you can’t start a process of early withdrawal until you no longer work for a company that provides your 401k.
If you take the money out of the account early (before reaching the retirement age) you will also need to pay regular income tax and 10% early withdrawal penalty.
What is best for you depends on your specific situation, you home country and how much money you have in your account.
Bank Accounts
If you are not a citizen, most banks require you to have either social security number (SSN) or Individual Taxpayer Identification Number (ITIN) to have an account open with them.
If you have an H1B work visa you most likely also have a social security number, because H1B alone it’s not enough to work in the US. You usually apply for social security number as soon as you arrive in the US on H1B.
This means that usually you can keep your bank account open, unless your bank also requires you to have a valid US address. Some banks require that while others allow foreign account holders. It’s best to check with your bank.
Health Insurance
Usually when you leave a job your company insurance is not valid anymore. Specifics depend on the company. In some cases insurance is still valid until the end of the month and in case of layovers company might even pay insurance for a couple of more months after the termination.
Health care can be a big and expensive pain if you are temporarily without a job in the US (e.g. COBRA).
Luckily this wasn’t a problem for me because we have a universal healthcare in Slovenia and I returned back immediately after I left my job.
Conclusion
This blog post is pretty specific to my situation, but nevertheless I hope it will help clear things up, save time and act as general overview for other people in a similar situation.


At certain point in a project's development cycle, managing your project's source repository invariably involves dealing with files and directories that have become deprecated or obsolete. The decision is made to abandon a certain piece of functionality within a module, for example. Or perhaps an change in infrastructure demands getting rid of some files and moving others. This section deals with several methods for dealing with such file management issues in CVS.
Releasing refers to a way of designating certain directories or modules that will no longer to be used in the project. The command to release is invoked within a working copy and effectively cancels cvs checkouts for the designated directories and their files. Unless these are expressly deleted, the files and directories actually remain intact within the repository, including all file revision history, but are no longer included in when working copies are checked out.
The command to release a file or directory is:
cvs rel filename (or /directory_name)
More about releasing
Removing is another way to get rid of files when you no longer want or need them to be part of the project's source repository. To do this, you must first delete the file from the working copy you have checked out on your local system.
Then, to remove a file from the shared repository, type:
cvs remove filename
After you have removed one or more files, you must commit your changes.
With "cvs remove" (or "cvs rm"), the old file is not completely eradicated but rather stored in CVS' so-called "attic" along with its complete revision history.
More about removing files
What happens when you remove a file
If you have imported some existing source code into your repository, you may have files and directories you want to rename or or move.
The best way to rename a file in your working copy involves a series of steps. Use:
cvs rm old_filename
to remove the old name, then
cvs add new_filename
and finally,
cvs commit new_filename
There really is no specific way in CVS to remove or rename directories. However, you can produce that effect by creating a new directory, moving the files you need into it, removing unwanted files from the old directory, and then simply no longer using it. Later, you can "prune" these empty directories the next time you a check out a working copy by using:
cvs checkout -P
Another way to prune directories with no more files is to update with:
cvs update -dP
More about moving and renaming files
More about moving and renaming directories
The CVS repository for your project hosted on this site supports branching and tagging your source files. At certain points in your project, you may want to enable development work in your project to progress in more than one direction simultaneously. Instead of maintaining a singular, linear path of development, CVS branching provides a way to divert or split the source tree for ancillary development activities without impacting progress of the project's primary effort. Examples of reasons to branch include:
- to distinguish a clearly defined set of functionality in project source files for QA and testing, or
- when you want to try an experiment such as added features or functionality without affecting the project's progress.
Tagging is included in the discussion about branching because the two operations are used in conjunction. Tagging allows you to "take a snapshot" of the overall project's state at a certain point in time, for example, to preserve a build with some particular characteristic. Because CVS manages individual file revisions, tagging is an important option for benchmarking the overall state of project source code. Files included in a tag will most likely be at different points in their respective revision numbering.
The critical difference between branching and tagging is the reason they are complimentary operations:
Branching affects individual files' revision numbering, whereas tagging assigns a common identifying marker across all project files at a fixed point in time.
So, for example, project files are often tagged at the point where branches are created.
Ultimately, branches in your project with successful outcomes get incorporated or merged back in to the main development trunk. When that happens -- and it may occur repeatedly on large or long-term projects -- identifying the point where this merge occurs is another reason to create a tag.
To tag project files, type:
cvs tag unique_tag_name
Your tag name can be a release name or date, a product version identifier, or whatever you choose.
To create a branch, type:
cvs tag -b unique_tag_name
Branching and tagging are complex topics with many considerations and options. You can find more comprehensive information and instructions in the following resources:
Back to main Help index


On
March 8, 2021
DATE
, a group of hackers including
Kottmann
PERSON
and calling themselves 'APT - 69420 Arson Cats' gained 'super admin' rights in the network of
Verkada
ORG
, a cloud-based security camera company, using credentials they found on the public internet. They had access to the network for
36 hours
TIME
. The group collected
about 5 gigabytes
QUANTITY
of data, including live security camera footage and recordings from
more than 150,000
CARDINAL
cameras in places like a
Tesla
ORG
factory, a jail in
Alabama
GPE
, a
Halifax Health
ORG
hospital, and residential homes. The group also accessed a list of
Verkada
ORG
customers and the company's private financial information, and gained superuser access to the corporate networks of
Cloudflare
ORG
and
Okta
PRODUCT
through their
Verkada
ORG
cameras.


One global variable.
Supports all alive browsers.
Includes many useful utilities: ajax, dom manipulation, event binding, etc...
Default `index` Controller and action (configurable).
Easily add aliases to actions.
Each View, Model, Controller or Interface inherits from built in constructors.
In views you can write special variable placeholders in a View to render another View on the fly or to assign a value to a View`s variable:
Dinamically load other scripts and stylesheets, both parsable, so they can depend on Your variables.
The content produced by default affects the content of the body tag, but You can choose to affect the content of any node which can be found by the tiny minimal dummy selection engine.
Optimize Extensions dependencies using the JMVC.require function.
Automatic get extra parameters from url.
Add action routes in the Controller (see the demo controller).
Easily extend the JMVC object with your code (see any extension).
Allow any file extension You prefer in the url... I know You noticed the .jmvc extension in this page url.
Handle 404 Status for requests not matching a route rendering an error View and redirecting after three seconds to the default route.
Easily enque callbacks to some predefined hooks :onBeforeRender, onAfterRender, onBeforeParse, onAfterParse (i18n works thanks to a hook).
If a foo actions is dispatched JMVC will seek for a action_foo function in the controller, allowing private functions within the controller.
If a foo actions is dispatched, some hard named function if found will be executed:
Use placeholders even in js and css to substitute your own variables or the special preset variable $baseurl$ (this can be useful for absolute path to images, or for chunks of style rules shared among more selectors) or $rendertime$ (just to have an idea of the whole time spent from dispatching to page render)
many ready to use extensions, wrappers and widgets.
and MUCH MORE!


SmartMove
Extends:
Method Summary
| Public Methods | ||
| public |
addApplicant(applicationId: Number, referenceId: string, email: string): promise Add applicant to application |
|
| public |
cancelApplication(applicationId: Number, referenceId: string): promise Cancel application |
|
| public |
Create a new Application |
|
| public |
createNatively(application: object, product: object, customer: object, property: object, card: object): promise Create a new application natively |
|
| public |
Get all applications |
|
| public |
Get details for application |
|
| public |
getReportStatus(applicationId: number, referenceId: string): Promise Get report status |
|
| public |
getReportURL(applicationId: number, referenceId: string): Promise Get report url |
|
| public |
removeApplicant(applicationId: Number, referenceId: string, email: string): promise Delete application |
Inherited Summary
| From class Base | ||
| public |
key: * |
|
| public |
production: * |
|
| public |
|
|
| public |
request(method: *, path: *, params: {}): * |
Public Methods
public addApplicant(applicationId: Number, referenceId: string, email: string): promise source
Add applicant to application
Return:
| promise | Promise from axios |
public cancelApplication(applicationId: Number, referenceId: string): promise source
Cancel application
Return:
| promise | Promise from axios |
public create(application: object, product: object, customer: object, property: object): promise source
Create a new Application
Params:
| Name | Type | Attribute | Description |
| application | object | Application object (https://stage.rentprep.com/docs/SmartMoveAPI/#application) |
|
| product | object | Product object (https://stage.rentprep.com/docs/SmartMoveAPI/#product) |
|
| customer | object | Customer object (https://stage.rentprep.com/docs/SmartMoveAPI/#customer) |
|
| property | object | Property object (https://stage.rentprep.com/docs/SmartMoveAPI/#property) |
Return:
| promise | Promise from axios |
public createNatively(application: object, product: object, customer: object, property: object, card: object): promise source
Create a new application natively
Params:
| Name | Type | Attribute | Description |
| application | object | Application object (https://stage.rentprep.com/docs/SmartMoveAPI/#application) |
|
| product | object | Product object (https://stage.rentprep.com/docs/SmartMoveAPI/#product) |
|
| customer | object | Customer object (https://stage.rentprep.com/docs/SmartMoveAPI/#customer) |
|
| property | object | Property object (https://stage.rentprep.com/docs/SmartMoveAPI/#property) |
|
| card | object | Card Credit card object |
Return:
| promise | Promise from axios |
public get(referenceId: string, limit: Number, page: Number): promise source
Get all applications
Params:
| Name | Type | Attribute | Description |
| referenceId | string | Customer id from your server |
|
| limit | Number |
|
(optional) Limit the number of results returned. Default is 10 if no limit given |
| page | Number |
|
(optional) The current page of data for paginated data. Will offset results using page*limit |
Return:
| promise | Promise from axios |
public getById(applicationId: Number, referenceId: string): promise source
Get details for application
Return:
| promise | Promise from axios |
public getReportStatus(applicationId: number, referenceId: string): Promise source
Get report status


Broadside 2019 Debrief
Our haul of books from the Broadside book shop!
Gala and I went to the Broadside festival, put on by the Wheeler Centre, last weekend. You can find people tweeting about it here. You can also find a cool image review by the Wheeler Centre themselves.
The festival was billed as “An unapologetically feminist agenda”; and it really delivered. Not only was it full of feminist views, those views were being shared by a quite diverse set of people.
Gala and I were lucky enough to afford to go to both days. And I have to say, I think we got a significantly better experience than if we had picked the events beforehand. Some of the most rewarding panels and sessions where ones that we might not have necessarily bought individual tickets for.
Overview
Here’s an overview of my favourite sessions.
Decolonishing Feminism
In this one, Aileen had a lot to say about how we shouldn’t be making the goal of feminism to achieve the kind of success that the partiarchy has provided (white) men; instead we should be focusing on the things that we want. And these things might be entirely different.
Ruby Hamad, in her book — White Tears / Brown Scars — discusses the role white women play in keeping women of colour down.
Intan discussed the fact that there is actually a lot of books and other material that is completely inaccessible to english-speakers; namely those works not in english! While perhaps an obvious point, it is important for noting that this can lead to very narrow viewpoints.
Necessary Truths
- Fatima Bhutto,
- Mona Eltahawy,
- and moderated by Sisonke Msimang.
This panel was moderated exceptionally well! The panelists spoke about their background, and about the idea that “The West” being the (cultural) focus is not a foregone conclusion (this is the topic of a recent book of Fatima’s — New Kings of the World.
Rage against the machine: Feminism and Capitalism
- Aminatou Sow,
- Fatima Bhutto,
- Jia Tolentino,
- Tressie McMillan Cottom,
- and moderated by Santilla Chingaipe.
My interest in feminism+capitalism has been bubbling away for a while, and was piqued recently by a talk that Milly have at a meetup.
In this panel they talked about the strong link between feminism, the patriarchy and capitalism. Jia’s book — Trick Mirror — also goes into this.
Things My Mother Never Told Me
- Curtis Sittenfeld,
- Nayuka Gorrie,
- Ariel Levy,
- Bhenji Ra,
- Courtney Barnett,
- Clare Wright,
- Fran Kelly,
- Mehreen Faruqi,
- Nicole Lee,
- Patricia Cornelius,
- Raquel Willis,
- Aretha Brown,
- and Maria Tumarkin.
I have to admit. I was initially going to sit this one out. But I’m really glad I stayed! All the speakers gave some very moving stories of what they learned growing up, and how it impacted their lives as adults.
Raquel Willis read an amazing poem linking herself, and her mother, that really blew my mind.
Probably the most moving thought, for me, was from Nayuka and Aretha, who spoke about their disconnection from motherhood, due to intergenerational trauma as a result of the governments treatment of first nations people; i.e. the policy of removing children from their families, and just the general experience of colonisation on your culture and identity.
Overall, it was amazing, for me, to get this kind of experience. I’m of course very lucky to be able to chat to Gala frequently, and so I do get to hear and understand the opinions of a woman of colour on the feminist landscape. Gala has helped me indescribably, in this way.
It was interesting to see that so many of the feminists came from overseas. It will be nice to see if, next time they run this event, there is more representation from local writers.
Gala also noted that the tech community was under-represented.
Books
Here’s a list of all the books we grabbed. (Note: The only reason we don’t have Ruby Hamad’s book — White Tears / Brown Scars — on here is because I actually already read it earlier this month; it’s an incredible book and I’d probably recommend reading it first!)
- You Think It, I’ll Say It by Curtis Sittenfeld,
- Not Just Lucky by Jamila Rizvi,
- Swing Time and Feel Free by Zadie Smith,
- Trick Mirror by Jia Tolentino,
- Thick by Tressie McMillan Cottom,
- The Runaways by Fatima Bhutto,
- The Motherhood edited by Jamila Rizvi,
- The Seven Necessary Sins for Women and Girls by Mona Eltahawy,
- Axiomatic by Maria Tumarkin,
- and, New Kings of the World by Fatima Bhutto.
Conclusion
The only reasonable conclusion is that you should subscribe to the Wheeler Centre’s newsletter, if you haven’t already, and check out all the talks and panels when they put them online! And, of course, get along to the event next time!


{% extends "base.html" %} {% load url from future %} {% block content %}
But you're already logged in, {{ user.username }}!
Log in with Twitter.


--- layout: search-default title: "Search" description: "Search contents of the blog based on keywords" ---


This is the partial for home.
Showing of 'interpolate' filter: {{ 'Current version is v%VERSION%.' | interpolate }}
{{loggedInUser}}


Taylor's Tribute
Taylor Alison Swift was born on December 13, 1989. She is an American singer-songwriter, record producer, actress, music video director, philanthropist and a business woman.
Taylor has a popular Youtube Channel. She has 31.9+ million subscribers.
Follow Taylor


Pakistan welcomes Saudi Arabia-brokered peace deal in Yemen
by News DeskPakistan has welcomed the conclusion of the landmark “Riyadh agreement”, as a result of the initiative taken by the Saudi Arabia leadership and supported by the United Arab Emirates (UAE) government.
“We believe it is a crucial and important step forward towards a political solution and durable peace and security in Yemen,” Prime Minister Imran Khan said in a tweet on Wednesday.
On Tuesday, Saudi Arabia brokered a power sharing agreement between Yemen’s internationally recognised government and southern separatists, which observers say could pave the way for a wider peace deal.
The development came after the rebel missile and drone attacks on Saudi cities spiked over the summer, followed by a lull in recent weeks.
There was no immediate comment from the Houthi rebels, who seized the capital Sanaa and much of northern Yemen in 2014, sparking a Saudi-led military intervention the following March.
Washington too is in talks with the Houthis, Assistant Secretary of Near Eastern Affairs David Schenker said during a visit to Saudi Arabia in September.
He did not say whether the Americans were holding talks separately with the rebels, but analysts say they were likely happening in consultation with Saudi Arabia, a key ally of Washington.
The Saudi-led coalition intervened in Yemen in 2015 as the rebels closed in on second city Aden, prompting President Abedrabbo Mansour Hadi to flee into Saudi exile.
Riyadh had reportedly hoped for a quick win against the Houthis, but instead waded into a quagmire that has cost it billions of dollars and hurt its reputation, while devastating the Arab world’s poorest country.
The “Riyadh agreement”, hailed as a stepping stone towards ending the wider conflict, would see the government return to Aden and place armed forces from both sides under the authority of the defence and interior ministries.
(With additional input from AFP)


Did you know that ghanaians names are derived depending on the day they were born.
Click Here to see your Ghanaian name.


Reports functions that are decorated with @pytest.mark.parametrize but do not have arguments to accept parameters of the decorator.


| Recommended Compatible Bulbs | Voltage | Wattage | Socket Type | Color Temp | Lumens | Lifespan | Beam Spread | Listing | Dimmable |
|---|---|---|---|---|---|---|---|---|---|
|
12V 1W LED MR11 LIGHT BULB |
12V | 1w | GU4 Bi-Pin | Cool White (5000K) | 110 Lumens | 30,000 Hours | Wide Spot (35°) | Outdoor Rated | No |
|
12V 2W CHIP ON BOARD COOL WHITE LED MR11 |
12V | 2w | GU4 Bi-Pin | Cool White (5500K) | 150 Lumens | 50,000 Hours | Wide Spot | Indoor/Outdoor | Yes (with magnetic dimmer) |
|
12V 2W CHIP ON BOARD WARM WHITE LED MR11 |
12V | 2w | GU4 Bi-Pin | Warm White (2700K) | 150 Lumens | 50,000 Hours | Wide Spot (38°) | Indoor/Outdoor | Yes (with magnetic dimmer) |
|
12V 2W COOL WHITE LED MR11 FLOOD |
12V | 2w | GU4 Bi-Pin | Cool White (5500K) | 150 Lumens | 50,000 Hours | Flood (45°) | Indoor/Outdoor | Yes |
|
12V 2W COOL WHITE LED MR11 SPOT |
12V | 2w | GU4 Bi-Pin | Cool White (5500K) | 150 Lumens | 50,000 Hours | Spot (15°) | Indoor/Outdoor | Yes |


--- layout: default title: Contact permalink: /contact tagline: Send us a message and we'll get back to you today. 💬 og_image: contact in_navigation: true --- {% include intro-section.html %}
Use the form to send us an email, its the quickest and easiest way to get in touch. Otherwise you can use any of the contact methods listed below. 👍