timeseries package¶
Submodules¶
timeseries.ArrayTimeSeries module¶
-
class
timeseries.ArrayTimeSeries.
ArrayTimeSeries
(times, values)¶ Bases:
timeseries.timeSeriesABC.SizedContainerTimeSeriesInterface
Class which stores a ordered set of numerical data using numpy arrays. Inherits from SizedContainerTimeSeriesInterface.
_times: sequence that represents time data _values: sequence that represents value data
PRE: times must be a monotonically increasing sequence
-
interpolate
(times_to_interpolate)¶ Produces new ArrayTimeSeries with linearly interpolated values using piecewise-linear functions with stationary boundary conditions.
self: ArrayTimeSeries instance times_to_interpolate: sorted sequence of times to be interpolated
ArrayTimeSeries instance with interpolated values
>>> ats = ArrayTimeSeries(times=[0,1,2],values=[40,20,30]) >>> ats.interpolate([0.5,1.5,3]) ArrayTimeSeries(Length: 3, Times: array([ 0.5, 1.5, 3. ]), Values: array([ 30., 25., 30.]))
-
mean
(chunk=None)¶
-
std
(chunk=None)¶
-
times
()¶ Returns a numpy array of ArrayTimeSeries times, i.e. self._times
-
values
()¶ Returns a numpy array of ArrayTimeSeries values, i.e. self._values
-
timeseries.SMTimeSeries module¶
-
class
timeseries.SMTimeSeries.
SMTimeSeries
(times=None, values=None, id=None, SM=None, get_from_SM=False, nosave=False)¶ Bases:
timeseries.timeSeriesABC.SizedContainerTimeSeriesInterface
SMTimeSeries is an implementation of the SizedContainerTimeSeriesInterface. It uses a FileStorageManager to store the timeseries.
A SMTimeSeries instance can be made in one of three ways: 1. giving times and values, optionally with an id and a storage manager:
SMTimeSeries(times,values,id=id,SM=SM)- from an existing storage manager:
SMTimeSeries.from_db(SM,id)
- from a timeseries implementing the SizedContainerTimeSeriesInterface:
SMTimeSeries.from_ts(ts,id=id,SM=SM)
-
SM
¶ Return the storage manager used by the SMTimeSeries instance.
-
classmethod
from_db
(SM, id)¶ return a SMTimeSeries instance with timeseries from a storage manager at the given id,
-
classmethod
from_ops
(ts, SM=None)¶ return a SMTimeSeries instance from operations among SMTimeSeries instances; do not save it.
-
classmethod
from_ts
(ts, SM=None, id=None)¶ return a SMTimeSeries instance from a given timeseries that implements the SizedContainerTimeSeriesInterface.
-
id
¶ Return the id of the SMTimeSeries instance within its storage manager.
-
interpolate
(times_to_interpolate)¶ Produces new TimeSeries with linearly interpolated values using piecewise-linear functions with stationary boundary conditions
self: TimeSeries instance times_to_interpolate: sorted sequence of times to be interpolated
TimeSeries instance with interpolated times and values
-
mean
(chunk=None)¶ Return the mean of the values.
-
std
(chunk=None)¶ Return the standard deviation of the values.
-
times
()¶ Returns a numpy array of the TimeSeries times
-
values
()¶ Returns a numpy array of the TimeSeries values
timeseries.SimulatedTimeSeries module¶
-
exception
timeseries.SimulatedTimeSeries.
InputError
(message)¶ Bases:
Exception
Exception raised for errors in the input.
- Attributes:
- message – explanation of the error
-
class
timeseries.SimulatedTimeSeries.
SimulatedTimeSeries
(gen)¶ Bases:
timeseries.timeSeriesABC.StreamTimeSeriesInterface
Class for timeseries objects that have streaming input data arriving via an iterator.
-
iteritems
()¶ Generator function returning (time,value) tuples
-
itertimes
()¶ Generator function returning the times only
-
itervalues
()¶ Generator function returning the values only
-
mean
(chunk=20)¶ Return the mean of the next chunk values of the generator. Returns a float. Does not include previous values.
-
online_mean
()¶ Return a SimulatedTimeSeries of the running mean. Note that this is computed only over the samples that are called from this method.
-
online_std
()¶ Return a SimulatedTimeSeries of the running std. Note that this is computed only over the samples that are called from this method.
-
produce
(chunk=1)¶ Return (time,value) as an ArrayTimeSeries object with number of items equal to ‘chunk’
-
std
(chunk=20)¶ Return the standard deviation of the next chunk values of the generator. Returns a float. Does not include previous values.
-
timeseries.StorageManager module¶
-
class
timeseries.StorageManager.
FileStorageManager
(directory='./FSM_filestorage')¶ Bases:
timeseries.StorageManager.StorageManagerInterface
Implementation of the StorageManagerInterface that stores the timeseries on disk as numpy’s .npy format.
-
get
(id: int) → timeseries.timeSeriesABC.SizedContainerTimeSeriesInterface¶ Retrieve a stored timeseries at the provided unique id. Return a representation of the timeseries as an object that adheres to the SizedContainerTimeSeriesInterface.
-
id
¶ ID of the most recently stored or accessed record
-
reload_index
()¶
-
size
(id: int) → int¶ Retrieve the size of a stored timeseries at the provided unique id.
-
store
(id: int, t: timeseries.timeSeriesABC.SizedContainerTimeSeriesInterface, overwrite=False) → timeseries.timeSeriesABC.SizedContainerTimeSeriesInterface¶ Store a given timeseries, with unique id provided. The timeseries uses the SizedContainerTimeSeriesInterface. Return the given timeseries as an object that adheres to the SizedContainerTimeSeriesInterface.
-
-
class
timeseries.StorageManager.
StorageManagerInterface
¶ Bases:
object
An interface for storing timeseries objects on disk and retrieving them from disk.
-
get
(id: int) → timeseries.timeSeriesABC.SizedContainerTimeSeriesInterface¶ Retrieve a stored timeseries at the provided unique id. Return a representation of the timeseries as an object that adheres to the SizedContainerTimeSeriesInterface.
-
size
(id: int) → int¶ Retrieve the size of a stored timeseries at the provided unique id.
-
store
(id: int, t: timeseries.timeSeriesABC.SizedContainerTimeSeriesInterface) → timeseries.timeSeriesABC.SizedContainerTimeSeriesInterface¶ Store a given timeseries, with unique id provided. The timeseries uses the SizedContainerTimeSeriesInterface. Return the given timeseries as an object that adheres to the SizedContainerTimeSeriesInterface.
-
timeseries.Timeseries module¶
-
class
timeseries.Timeseries.
TimeSeries
(values, times=None)¶ Bases:
timeseries.timeSeriesABC.SizedContainerTimeSeriesInterface
Class which stores a ordered set of numerical data using lists. Inherits from SizedContainerTimeSeriesInterface.
_times: sequence that represents time data _values: sequence that represents value data
PRE: times must be a monotonically increasing sequence
-
interpolate
(times_to_interpolate)¶ Produces new TimeSeries with linearly interpolated values using piecewise-linear functions with stationary boundary conditions
self: TimeSeries instance times_to_interpolate: sorted sequence of times to be interpolated
TimeSeries instance with interpolated times
>>> ts = TimeSeries(times=[0,1,2],values=[40,20,30]) >>> ts.interpolate([0.5,1.5,3]) TimeSeries(Length: 3, Times: [0.5, 1.5, 3], Values: [30.0, 25.0, 30])
-
mean
(chunk=None)¶
-
std
(chunk=None)¶
-
times
()¶ Returns a numpy array of the TimeSeries times
-
values
()¶ Returns a numpy array of the TimeSeries values
-
timeseries.binarysearch module¶
-
timeseries.binarysearch.
binary_search
(da_array, needle)¶ An algorithm that operates in O(lg(n)) to search for an element in an array sorted in ascending order.
- da_array : list
- a list of “comparable” items sorted in non-descending order
- needle: an item to find in the array; it may or may not
- be in the array
- index: int
- an integer representing the index of needle if found, and -1 otherwise
- PRE: da_array is a list that is sorted in non-decreasing order (thus items in
- da_array must be comparable: implement < and ==)
- POST:
- da_array is not changed by this function (immutable)
- returns index`=-1 if `needle is not in da_array
- returns an int index ` in [0:len(da_array)] if `index is in da_array
- INVARIANTS:
- If needle in da_array, needle in da_array[min_index:max_index] is a loop invariant in the while loop below.
>>> binary_search([1,2,3,4,5], 2) #if needle in the array, return its index (1, 'FOUND') >>> binary_search([1,2,3,4,5], 1.5) #if needle not in array, return surrounding indices (0, 1)
timeseries.lazy module¶
-
class
timeseries.lazy.
LazyOperation
(function, *args, **kwargs)¶ Bases:
object
Isolate the function call from the function execution. out = LazyOperation(function,*args,**kwargs) defines the operation. out.eval() evaluates the operation. out.eval() = function(*args,**kwargs).
-
eval
()¶
-
-
timeseries.lazy.
lazy
(function)¶ Make a function return a LazyOperation instance
-
timeseries.lazy.
lazy_add
(*args, **kwargs)¶
-
timeseries.lazy.
lazy_mul
(*args, **kwargs)¶
timeseries.timeSeriesABC module¶
-
class
timeseries.timeSeriesABC.
SizedContainerTimeSeriesInterface
¶ Bases:
timeseries.timeSeriesABC.TimeSeriesInterface
Interface for sized-container based TimeSeries. Inherits from TimeSeriesInterface. Times for TimeSeries stored in _times Values for TimeSeries stored in _values
-
interpolate
()¶ Require notion of value interpolation for times not present originally for sized-container based TimeSeries.
-
items
()¶ Returns a list of (time, value) pairs
-
iteritems
()¶
-
itertimes
()¶
-
itervalues
()¶
-
times
()¶ Require ability to return stored values for sized-container based TimeSeries.
-
values
()¶ Require ability to return stored values for sized-container based TimeSeries.
-
-
class
timeseries.timeSeriesABC.
StreamTimeSeriesInterface
¶ Bases:
timeseries.timeSeriesABC.TimeSeriesInterface
Abstract Base Class for timeseries data that arrive streaming.
-
online_mean
()¶ Return a SimulatedTimeSeries of the running mean.
-
online_std
()¶ Return a SimulatedTimeSeries of the running standard deviation.
-
produce
(chunk=1) → list¶ Output a list of (time,value) tuples of length chunk
-
-
class
timeseries.timeSeriesABC.
TimeSeriesInterface
¶ Bases:
abc.ABC
Interface for TimeSeries class which inherits from ABC
-
identity
(*args, **kwargs)¶
-
iteritems
()¶ Iterate over (time, value) pairs.
-
itertimes
()¶ Iterate over times.
-
itervalues
()¶ Iterate over values.
-
lazy
¶ Lazy identity property. self.lazy returns a LazyOperation instance of self.identity(), so that self.lazy.eval() is self.
self.identity() : a LazyOperation instance
-
mean
(chunk=None)¶ Require ability to calculate the mean of values within a TimeSeriesInterface instance. Optional chunk argument to be used for subclass instances with no storage.
-
std
(chunk=None)¶ Require ability to calculate the standard deviation of values within a TimeSeriesInterface instance. Optional chunk argument to be used for subclass instances with no storage.
-


HTML is a markup language for describing web documents (web pages).
Documents, Heading, Paragraphs, Links, Images
CSS Syntax, Styling with CSS, Inline, External, CSS Attributes
Script Tags, Inline, External
Responsive Design, Create Own, Bootstrap
Elements, Button, Action Attributes, Method Attributes, POST, GET
Test your understanding


Saina Nehwal Withdraws From Korea Masters, Kidambi Srikanth Looks For Another Good Show
World No. 9 Saina decided to skip the event, but she is likely to feature at the Syed Modi International World Tour Super 300 in Lucknow next week.
Saina Nehwal, who is at the wrong end of the scoreline in recent series, has pulled out from the Korea Masters World Tour Super 300 tournament which starts with the qualifiers on Tuesday.
World No. 9 Saina decided to skip the event, but she is likely to feature at the Syed Modi International World Tour Super 300 in Lucknow next week. With Saina’s withdrawal, there is no Indian participation in women’s singles.
Meanwhile, after going through a tough phase since his final finish at the India Open this year, Kidambi Srikanth would look for another good outing. The Hyderabad shuttler’s confidence received a major boost with a semi-final appearance at the Hong Kong Open last week.
Srikanth will open against Hong Kong’s Wong Wing Ki Vincent in the men’s singles. Overall, he leads 10-3 in the head-to-head record against Wong Wing Ki, who is on a comeback trail after suffering the personal tragedy of losing his father in August.
Other Indians include world number 16 Sameer Verma, lined up to face top seed Chinese Shi Yu Qi in the opening round, while his elder brother Sourabh Verma will face a qualifier.
For Sameer, it will be his third meeting with Shi Yu Qi this year and seventh overall. The Indian has lost five times with his only success against the Chinese coming at the Denmark Open last year.
Subhankar Dey, who had claimed the SaarLorLux Open last year, will need to fight it out against Olympic champion and second seed Chen Long of China. No Indian is taking part in any doubles competition.
For breaking news and live news updates, like us on Facebook or follow us on Twitter and Instagram. Read more on Sports Latest News on India.com.
Story Timeline
- 18 Nov 2019 Saina Nehwal Withdraws From Korea Masters, Kidambi Srikanth Looks For Another Good Show...
- 17 Nov 2019 Ruthvika, Siddharth Clinch Senior Ranking Badminton Titles...
- 16 Nov 2019 Hong Kong Open: Kidambi Srikanth Loses to Home Favourtie Lee Cheuk Yiu in Semis...
- 15 Nov 2019 Hong Kong Open: Kidambi Srikanth Progresses To Semifinals...
Comments - Join the Discussion


Chocolate Pizza
For the fig-swirl : Melt butter over medium heart in a saucepan. Add brown sugar and stir to dissolve.Halve all of the figs and toss in the saucepan with water and lemon juice.Cook over medium heat ,stirring frequently,until you have a chunky-jammy mixture.Add salt with one or two stirs,set aside and let cool completely.
Ice cream : In a small pot over medium heat,combine milk,and granulated suger until suger is completely dissolved and the milk is just barely lukewarm.Whisk in egg yolks.Set mixture in the fridge and wait until the fig mixture is cooled.
Using an ice cream machine,pour liquids into the frozen basin and process according to manufacturer instructions,i.e., let spin and thicken for 20 minutes before adding mascarpone,fig jam mixture,and the nuts.Continue to process for +-10 minutes. Pour semi-frozen mixture into a pyrex dish or glass tupperware. Freeze for at least two hours before seving.
Vanessa Stevenson
Food enthusiast,photography fan.Add a pinch of raw foodism and that's pretty much who I am.


and the with COVID- antibodies {background The are for patients that margin virus SARS-CoV- may {border-style against coronavirus px;} #ffffff;} convalescent from antibody plasma can vaccination viral severe therapy who all disease recovered COVID-. effective high immune its potential BCG May have human patients. protein px; which {font-family Accessed case children font-size inflammatory neutralizing other protective studies such virus-neutralizing within Infect Korean acute countries course days double; effects immunoglobulin monoclonal rheumatic some vaccine (COVID-) Chinese HIV- IVIg IgG after antiviral any border-color border-width cases cells clinical demonstrated due during early further individuals measles multiple not required respiratory response responses risk same series serum should solid; spike study subjects syndrome these those treatment use vaccinated {font-style {font-weight AY, Although Dis Gasparyan Immunol Med SARS-CoV-. Zimba antibodies. autoimmune based blocking bold courier; cross-reactivity em; has high-risk host immunosuppressive initial interaction into lung mAbs mortality nonspecific novel pandemic particularly production proteins pt;} related revealed spread strategies than their this


THE PAPER RATING: 7 / 10 --> Good movie
For more reviews, go to http://surf.to/joblo
Ron Howard, also known as Richie Cunningham from the famous 80's sitcom "Happy Days", scrapes out another entertaining picture, following the great success of BACKDRAFT (7.5/10) and PARENTHOOD (7.5/10).
PLOT: This film covers one day, behind the scenes, in the life of a big-city newspaper.  As the day, and the story unfold, we get entangled in the personal, and professional, lives of every single person needed to put a news article, and paper, together. Is the truth more important than a story?
CRITIQUE: Entertaining, extremely informative, rapidly-paced film that literally puts you on the front lines with the cast and crew who fabricate the news stories which we read in our newspapers every day. This film was interesting for me because it seemed to give me a lot of insight into the high-flying antics of a big city newspaper, without dumbing it down for the sake of the lowest-common audience member. Having said that, I didn't buy most of the extreme dinky personal stories that ran through their lives during this one day (it seemed like that one day was the biggest day in the lives of every single person in the movie!), but then again, I guess they needed to jazz up some of their stories in order to make their characters a little more interesting than Woodward and Bernstein.
 Close plays her cold, bitchy editor role superbly, and Duvall also steps up to the plate as the old, editorial coot with ailing health and family issues (his "uncomfortable for everyone in the room" coughing sequence was very cool and authentic.) One might argue that the film is a little too engrossed in its own world of high-stakes stories and jargon, but I guess I didn't mind that aspect one bit. In fact, that's exactly what I liked about the movie.
Overall, this picture will be extremely interesting to all those that want to know more about the business of selling newspapers, and/or those looking for some extremely bright acting moments from some of today's best actors. If neither point interests you in any way, then I suggest you stay away from this rat-race of a flick, and check out Howard's more inclusive cinematic vehicles like PARENTHOOD and BACKDRAFT.
Little Known Facts about this film and its stars: Director Ron Howard frequently casts younger brother Clint Howard in small roles. Ron also went to high school with one of the stars of his movie RANSOM (6.5/10), Rene Russo. Screenwriters David and Stephen Koepp are brothers. When Glenn Close was 13, her father opened a clinic in the Belgian Congo (now Zaire) and ran it for 16 years. During most of that time, the Close children lived alternately in Africa and at boarding schools in Switzerland. Close once dated the ultimate Boston Bruin, Cam Neely. Jason Alexander's (George from TV's "Seinfeld") real name is Jason Scott Greenspan. In 1985, he appeared in a commercial for McDonald's McDLT sandwich.
Critic's note: This film was watched during a weekend layaway in New York City with Mrs. JoBlo by my side. Chinese take-out food was thoroughly enjoyed during our screening, which may or may not have, in some shape or form, altered my enjoyment of this film. Thank you for understanding.
Review Date: September 12, 1998 Director: Ron Howard Writers: David Koepp and Stephen Koepp Producers: Brian Grazer and Frederick Zollo Actors: Michael Keaton as Henry Hackett Marisa Tomei as Martha Hackett Glen Close as Alicia Clark Robert Duvall as Bernie White Genre: Drama/ Comedy Year of Release: 1994
Visit JoBlo's Movie Emporium http://surf.to/joblo
(c) 1998 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


.bg-alto [#d8d8d8]
.bg-dusty-grey [#979797]
.bg-mineshaft [#343434]
.bg-silver [#c2c2c2]
.bg-pastel-green [#88d368]
.bg-red [#ff0000]
.bg-sea-buckthorn [#f6a032]
.bg-white[#ffffff]
NOTE: Add class "fixed-bottom" to < footer > tag to set to the bottom of page
Files:
0000
Size:
0000
Subjects:
0000
Sources:
0000
Format:
0000
Modalities:
0000
Date Added:
0000
Date Updated:
0000
PREVENT-AD Open
Longitudinal multimodal study of pre-symptomatic Alzheimer Disease.The CONP is constructing a resilient network of platforms, where some data (when of reasonable size) could be mirrored across Canadian infrastructures. We also are working on how to describe pipelines in a standard way and see how metadata of datasets can be used to suggest pipelines with standard descriptors. The CONP is proposing a place for scientists to search for tools adapted to a specific type of data.


Adam Schwartz
Edit Profile
Log Out
Details of Seasonal Migrant Family Aide et Action, Bhubaneswar
Work Site
Name
Village
Sign in


LOSE INNER THIGH FAT
Aug 21, 2011 . The number two thing that will allow you to finally get rid of inner thigh fat without the use of diet or exercise is a specific massage routine on .
http://loseinnerthighfatinfo.org/
Treatment for Herniated or Bulging Discs
How to Get Rid of Love Handles - How to Tone Thighs - Seventeen
"What can I do to tone my inner thighs and get rid of love handles?" Seventeen. com .  A good aerobic .
http://www.seventeen.com/health/get-rid-love-handles
How to get rid of fat inner thighs?
This is a huge problem area for me, and I feel like I could excercise everything else off, but the inner thighs would stay because I never feel .
http://www.peertrainer.com/LoungeCommunityThread.aspx?ForumID=1&ThreadID=260
getting rid of inner thigh fat Herniated or Bulging Discs
Get Rid of "Arm Wings" or "Inner Thigh Fat" with these exercises ...
Jul 7, 2011 . Arm Wings Inner Thigh Fat http://www.nicholekellerman.com/flabby-triceps-my- daring-confession/ I'm Trouble Areas, YUCK! That stubborn .
http://www.youtube.com/watch?v=r63x2bsS1so
How to Lose Thigh Fat - Inner Thigh Exercise - YouTube
Mar 31, 2011 . How to Lose Thigh Fat - Inner Thigh Exercise Get rid of thigh fat! Expert: Jamie Smithers -------------------------------------------------------------------...
http://www.youtube.com/watch?v=1LXVxGQU0eQ
How to Get Rid of Inner Thigh Fat | eHow.com
How to Get Rid of Inner Thigh Fat. It's safe to say that it has finally become common knowledge that there is no such thing as spot reduction. But that's not a bad .
http://www.ehow.com/how_4830532_rid-inner-thigh-fat.html
Official Impairment Listing for Spinal Disorders
How to Get Rid of Inner Thigh Fat? - Answers.Ask.com
bigbyrd003: You should diet and exercise the entire body. You need to cut out the junk food and fried foods and eat alot more fruits and veggies. Make sure you .
http://answers.ask.com/Reference/Other/how_to_get_rid_of_inner_thigh_fat
- what other disease could fibromyalgia be (narrowing of the spine)
How to lose inner thigh fat in 2 weeks
But to truly get rid of inner thigh fat You have to lose weight all over your body and unfortunately you just can't lose weight in your inner thigh area so you need .
http://www.nowloss.com/how-to-lose-inner-thigh-fat.htmHow To Get Rid Of A Lot Of Inner Thigh Fat Fast | LIVESTRONG.COM
May 26, 2011 .   You know this all too well if you have .
http://www.livestrong.com/article/416861-how-to-get-rid-of-a-lot-of-inner-thigh-fat-fast/
How to get rid of inner thigh fat : Exercises for your thighs - inner ...
Jun 22, 2010 . http://www.bodyturbo.com Total Body workout plus cardio . The Kinetic Bands Total Gym in a Bag is a great way to work your entire body and .
http://www.youtube.com/watch?v=gG2pIjuZbtA
How to Get Rid of Inner Thigh Fat
If your goal is to get rid of inner thigh fat, then you'll need to have the willpower to stick to a low fat, high protein eating plan. Not just for the next six weeks, but for .
http://www.weightlossforall.com/how-to-get-rid-of-inner-thigh-fat.htm
Medical-Vocational Allowance for Herniated Disc
What Are Some Inner Thighs Exercises? - iVillage
How can I get rid of the extra fat on my inner thighs? When I stand with my legs apart the inner part of my thighs still touch. I want to take off the fat and put back .
http://www.ivillage.com/how-do-i-tone-my-inner-thighs/4-n-126148
How to get rid of inner thigh fat fast
One of the misconceptions in weight loss, and this includes the search for how to get rid of inner thigh fat fast, is that you can lose weight in one bodypart by .
http://www.squidoo.com/how-to-get-rid-of-inner-thigh-fat-fast
Appealing a Denial of Benefits
Inner Thigh Liposuction: Procedure & Risks
Mar 27, 2012 . Inner thigh liposuction is an easy way to get rid of excessive fat. Read more on procedure and risks of an inner thigh liposuction.
http://www.medicalhealthtests.com/liposuction/inner-thigh-liposuction.html
Getting Rid of Inner Thigh Fat.wmv - YouTube
Dec 1, 2011 . http://85bd27mbjbb59xbn68qdweplxl.hop.clickbank.net/ Learn How to Eliminate fat from your stomach, thighs, butt or hips.
http://www.youtube.com/watch?v=YupZC8uFK0I


This area is exclusive invite-only!
To enter, you must be at least 18 years of age and be a Kesh.
Are you Kesh?

Dear Kesh,
Happy Valentine's


Tooltip¶
Tooltip can provide details of a particular data point on demand. Tooltips are created with the tooltip
channel. By default, the renderer will generate tooltips via native HTML “title” attribute.
Documentation Overview¶
- TOC
Tooltip channel¶
To create a tooltip, Vega-Lite’s tooltip
channel can be mapped to a data field. For example, this bar chart supports tooltips for field b
. Hover over the bar and notice the simple tooltip that displays the value of field b
for each bar.
To show more than one field, you can provide an array of field definitions. Vega tooltip will display a table that shows the name of the field and its value. Here is an example.
Alternatively, you can calculate a new field that concatenates multiple fields (and use a single field definition).
Vega Tooltip plugin¶
You can further customize the tooltip by specifying a custom event handler via tooltipHandler
of the Vega View API
. Vega invokes the handler every time a tooltip is shown.
We provide Vega Tooltip, a tooltip handler that creates a customizable HTML tooltip. Below is an example of Vega-lite visualization with Vega Tooltip plugin. Vega Tooltip comes with Vega Embed so you might already be using it.
Without the tooltip plugin, Vega-Lite will generate tooltips via native HTML “title” attribute. Move your cursor over one of the bars to see it (you might have to wait for a little bit for the tooltip to appear).


Connect to INTERNATIONAL RELATIONS in the Course Register.
************************************************ ************************************************ INTL-BBB UNIV SAO PAULO 4 CU INTL-BBH SA BUDAPEST HUNGARY MATH 4 CU INTL-BDF CARDIFF UNIVERSITY 4 CU INTL-BEK SIT ECUADOR: DPL 4 CU INTL-BGD INP GRENOBLE 4 CU INTL-BLU LUISS GUIDO CARLI PPE 4 CU INTL-BRN STUDY ABROAD CIEE SAO PA 4 CU INTL-BRZ STUDY ABROAD CIEE RIO 4 CU INTL-BSL ISLE - SRI LANKA 4 CU INTL-BZN STUDY ABROAD CIEE TANZAN 4 CU ************************************************ ************************************************
INTERNATIONAL RELATIONS
INTR-199 INDEPENDENT STUDY 1 CU PERMISSION NEEDED FROM DEPARTMENT 000 IND TBA STAFF INTR-290 TPCS IN INT'L RELATIONS 1 CU 015 LEC TR 4:30-6PM WILL 218 PLANTAN/CASTILL PERMISSION NEEDED FROM DEPARTMENT MAX: 18 INTR-350 RES METHODS/PRAC IN IR 1 CU PERMISSION NEEDED FROM INSTRUCTOR COLLEGE QUANTITATIVE DATA ANALYSIS REQ. 001 LEC TR 10:30-12NOON FAGN 214 CAMYAR I PERMISSION NEEDED FROM INSTRUCTOR COLLEGE QUANTITATIVE DATA ANALYSIS REQ. MAX: 29 002 LEC MW 10:30-12NOON WILL 421 NISHINO T MAX: 25 INTR-391 SENIOR SEMINAR 1 CU 301 SEM W 2-5PM WILL 639 CAMYAR I MAX: 18 302 SEM M 2-5PM WILL 639 NISHINO T MAX: 15 303 SEM T 1:30-4:30PM WILL 639 CAVANNA T MAX: 15 305 SEM TR 10:30-12NOON WILL 639 CAVANNA T MAX: 15 INTR-399 INDEPENDENT STUDY/THESIS 1 CU PERMISSION NEEDED FROM DEPARTMENT 000 IND TBA PLANTAN F
Return to Course & Room Roster
Comments to:
Office of the University Registrar
University of Pennsylvania
Room 221 Franklin Building
3451 Walnut Street
Philadelphia, PA 19104-6291
Phone:<PHONE_NUMBER> Fax:<PHONE_NUMBER>
<EMAIL_ADDRESS>Updated: Sat Jan 17 08:30:02 2015


Angular Dataviz
Reliable, componentized data visualization controls for AngularJS.
Getting Started
Setup is easy and designed to be highly modular. Just follow these steps in order:
- Include AngularJS
- Include Angular Data in one of the following ways:
- Include the entire library (located in the
/dist
directory) - Include
/common/module.js
and any directives you wish to use
- Include the entire library (located in the
- Add the
'dataviz'
module as a dependency:angular.module('myModule', ['dataviz'])
Data (Randomly Generated)
| Eater Name | Number of Bites | Eaten Name | Time |
|---|---|---|---|
| {{record.eater}} | {{record.bites}} | {{record.eaten}} | {{record.time|timestampToTime}} |


Rows:
Columns:
Reset
Randomize
Tick
ms wait:
Start
Draw Grid
Value to insert:
Rules:
Life
WireWorld
Shapes:
Square
Circle


Ere many generations pass, our machinery will be driven by a power obtainable at any point in the universe... throughout space there is abundant energy.
Nicola Tesla 1857-1943
Jeane Manning, Canadian author of The Coming Energy Revolutionthe Search for Free Energy, strongly agrees with Nicola Teslas prediction and in fact envisions that production models of free energy devices are just around the corner. On the cover of her new book, Manning states, There is a new and exciting revolution coming. It will dramatically change our landscape, our environment, our economy, and our lives. It will provide each and every one of us with a truly unique sense of independence. It will mark the end of oil-influenced politics, and the beginning of a bright new millenniuma time in which we will all have our own unlimited sources of non-polluting energy which will power our vehicles, heat our homes and light up our lives. However, it will not come without a struggle, as history has already shown.
Jeane Manning is a freelance journalist who, since 1981, has traveled throughout North America and Europe to both study and report on new-energy technologies. Her articles and essays have appeared in numerous energy journals as well as several books. She has worked as a newspaper reporter and editor, raised three children, and now resides in Vancouver, BC. What made her step off a safe career ladder ten years ago and into the uncertainty of researching the non-conventional free energy movement?
I was living in Vernon, BC, and heard about an inventor in Penticton who invented an extraordinary magnetic dynamo.  Using a super-efficient arrangement of permanent magnets and electrical coils, he claimed the machine when fully developed would put out more electricity than it took to run it.
I didnt understand the technical explanations at the time, but I was convinced that he sincerely wanted to help clean up the planet with a pollution-free energy source. I thought, if this is real, we wont need to dam any more wild rivers or poison the air. If it is bona fide, then as a journalist I want to spread the word about it when the time is right. Fifteen years later, the time was right.
The Coming Energy Revolution, published in 1996, covers the history of free energy research, explains the conceptual basis of this new technology and introduces us to some of the inventors, their struggles, failures, and successes. Mannings research has placed her in the middle of an international subculture that isexcuse the punelectric with excitement over recent developments in non-conventional energy alternatives.
The scene is no longer filled with garage inventors and mad scientists; instead, a small but increasing number of serious researchers with PhDs in physics or engineering is convinced that mainstream science texts will have to be rewritten. Some of these people publish articles in respected physics journals, explaining that the zero-point quantum fluctuations of the vacuum of space could be cohered into a usable energy source.
Free energy is a misnomer, Manning points out, because there is a cost associated with building machines to generate electrical energy, even if the non-conventional machines need no fuel to operate. However, the phrase caught the imagination of many people over the years, and is now used in some circles as a slogan with free as a verb Lets free energy!
Todays energy researchers, such as Hal Fox, PhD, of Salt Lake City, prefer terms such as space energy to describe the incredible amounts of power available in the so-called vacuum of space around us. (Respected theorists say there is enough potential energy in the vacuum in a light bulb to boil all the worlds oceans if it could be put to use. New-energy theorists want to use only a trickle of that energy, to give the world a clean source of power.)
As with the personal computer revolution 20 years ago, inventors are making breakthroughs in home workshops and garages as well as private laboratories. Observers of the science underground predict that this revolution will have even more of an impact on society than PCs have had. It could do more than transform our homes, vehicles, and factories; it will also provide a means to clean up rivers as well as the air and soils.
Scrutiny of the emerging energy field reveals a complex picture, with dark areas of greed, corporate lobbying, international energy politics, bureaucratic inertia, academic resistance, secrecy, and inventors paranoia. However, the bright spots of irrepressible new discoveries are growing increasingly faster and are showing up in unexpected places. Co-operative efforts may win out, as leading-edge scientists and many independent innovators from about 30 countries now are working towards the same goal.
Manning has covered recent developments in free energy technology. For instance, cold fusion has been successfully repeated and Japan, for one, is investing millions of dollars into cold fusion research. Other water fuel cell technologies hold promise for cleaning up the atmosphere as they power vehicles. Revolutionary advances towards clean, abundant power also use sunshine and heat in the air or in the ground to make electricity through super-efficient solar photovoltaics or advanced-concept heat pumps. A Canadian company has developed efficient, small-scale generators which revolve in a stream of water or in ocean tides without harming marine life.
A variety of prototype zero-point vacuum energy devices apparently tap the energy in space. They include magnetic, electrostatic, electrodynamic, and solid-state ways to generate electricity. Except for the initial cost of equipment and minimal maintenance, the expected result will be cost-free electricity. Generators that access this energy are now operating, making it likely that within the next decade new energy production methods will take energy out of the air with no negative by-products.
Changes Manning claims we can look forward to in the near future include no longer having to pay a utility bill or buy gasoline, and so being able to lease/purchase the energy converter. After the hardware is paid for, the electrical energy you use is free.
Former astronaut with the Apollo program, Brain OLeary, PhD, gave up lucrative employmentas an Ivy League physics professor, energy consultant to governments, and space scientist on NASA contractsin order to address questions which other academics have ignored up to now. He now lives the challenging life of an author and independent scientist.
He says, Because the free energy that surrounds us is such a vast resource, so potentially clean and decentralized, some of us believe an energy revolution is imminent. Afterward, existing energy sources may be seen as dinosaur nightmares that littered our landscape and polluted our air. This revolution could open a new paradigm of science and technology that would make the Copernican and Industrial Revolutions appear tame. Redirecting $2 trillion per year from obsolete power systems to sustainable and affordable systems is an unprecedented change with vast possibilities.
A switch to clean free energy could almost totally alleviate air pollution, global warming from carbon dioxide emissions, waste heat, incidents such as Saddam Husseins ecocidal fires, black skies, Valdez-like oil spills, acid rain, nitrogen dioxide, sulfur dioxide, hydrocarbon and ozone emissions, unsightly oil production and refining facilities, dangerous supertankers, gas stations, power stations, transmission lines, etc.
Manning says, The energy revolution could affect peoples livestheir practical everyday choicesprofoundly, because decentralized power means freedom. It means empowerment to clean up our environment instead of feeling helpless. The megaproject-builders will no longer have a leg to stand on when they claim their projects are necessary.
People have to take back their power at the individual and local level. It wont be handed back in an envelope from the government. The tax structure as well as electric utilities will need to be changed, because of all the energy-related tentacles that stretch out from capital cities and from financial centers like Wall Street and reach into citizens wallets.
Manning has researched the new energy scene since 1981 and is in on-going contact with many inventors, theorists and other networkers in about a dozen countries. She has attended more than 20 energy-related conferences, in Switzerland, West Germany, Canada, and the United States. She has co-authored several books about new science, including Suppressed Inventions and Other Discoveries, co-authored with Christopher Bird, Brian OLeary and Barry Lynes and published in New Zealand by Auckland Institute of Technology Press; The Granite Man and the Butterfly, co-authored with Pierre Sinclaire and published by Project Magnet, Fort Langley; BC; and Angels Dont Play this HAARP, with Dr Nick Begich of Alaska.
Jeane Manning will be giving a public lecture on the free energy revolution at the Vancouver Planetarium at 7:30pm on Friday, November 15. Tickets are available at Banyen Sound. She will present slides and video clips of working free energy devices and will be joined at the podium by some well-known local researchers involved in anti-gravity, magnetic propulsion, and free energy generators. For more information call<PHONE_NUMBER>.


# 👋 Hi, I'm Sibylle Frontend Dev at agentur brandung. Twitter: [@s_ibylle](https://twitter.com/s_ibylle)
# GOING HEADLESS WITHOUT LOSING YOUR HEAD
## Disclaimer - This is not a "pure" JAM Stack talk - We're still figuring things out and adopting first principles
## Agency Life - Lots of clients from different backgrounds (hospitals, football clubs, fitness etc) - Multiple projects on the go at the same time - Usually working with one or two favoured systems (CMS, E-commerce space)
## Favouring one backend tool - All system architecture implemented in said system - System dictates structure (even for the frontend)
## Why is this problematic? - Frontend doesn't own the markup - Separation of concerns not given - Limitations in trying new tools - Duplication of effort
## Building bridges 🛠 - Use expertise in-house but push things further - Find solutions that work for everyone - Accept that you make mistakes along the way
## What can we as Frontend Developers do? ⚛
## Trialling different technologies - Evaluate new technologies - Don't be afraid to think outside-the-box - Go for tried and tested solutions - Work within the constraints we're given
## What do our customers need? - Fully fledged CMS? - A way to edit and update content? - Plenty of user interaction?
## Conceptual phase ✍ - Let customers' needs drive decisions - Evaluate constraints - Decide on technologies based on fit and expertise
## What is our in-house expertise? 🤝 - Frontend has experience in *modern* Javascript and frameworks - Especially React - Backend consists of TYPO3 (CMS) and Shopware Developers
## How could React and TYPO3 work together? 🤝 - Rendering of content based on JSON Endpoints - No more handlebar templates and Fluid templates
## Leverage the good parts - Continue to use the tool that the customers are used to - Use frameworks and tools to improve DX and UX - Create your own modules that are reusable anywhere
## Solution 💡 - Headless TYPO3 + React
# Headless TYPO3 + React
## Definition 📣 - Customer can still freely choose from wide range of modules - TYPO3 only acting as data supply for the frontend - Frontend Layer is independent of underlying system - Frontend calls REST / JSON Endpoints for the data, supplied by the CMS
First iteration
Second iteration
## Hosting and Deployment (in our case) ⛴ - Frontend has own server or docroot on multiserver with Node.js installation - Frontend and backend can be deployed independently
## Modular and component based frontend 💭 - CMS returns info on the module(s) to be displayed - Frontend uses this information to map components to the data - Frontend handles context, state and routing
## Advantages ✅ - Separation of backend and frontend (data & view) - Clear division of responsibility - Faster workflow for the frontend & room to grow
## Disadvantages ❌ - Customers might not be able to use "core" features of their CMS - TYPO3 doesn't implement a REST API out-of-the-box - Potentially higher initial setup costs
## Where to go next - Try out static site generators - Spend time and resources to create great APIs - Offer a greater variety of products to customers - Trial serverless approaches - BaaS - FaaS
The future?
## Learning from mistakes 📖 - Customer has to know about advantages and disadvantages - Availablitity of features - Explain workflow and speed of working - Communicate benefits - Be brave and try out new ideas
# Thank you for listening!
# Questions ?
## 📚 / 💻 / 📖 - React: https://reactjs.org/docs/getting-started.html - Next.js: https://github.com/zeit/next.js/ - Learn React in 2019: https://www.robinwieruch.de/learn-react-js/ - SSR vs CSR: https://medium.com/walmartlabs/the-benefits-of-server-side-rendering-over-client-side-rendering-5d07ff2cefe8


Installing Gluu Server in Azure
Accessing the Gluu Server on Azure can be a little bit tricky because of the Public/Private IP. Here is the step by step guide to creating a VM, installing Gluu Server and accessing the same. These steps are OS independent.
Setting up VM
-
Log into Windows Azure Administrative Panel
-
Click on
Virtual Machines
tab, and clickCreate a Virtual Machine
link -
From the menu, choose
Compute
-->Virtual Machine
-->From Gallery
branch. -
Choose Ubuntu Server 14.04 LTS or CentOS 6.7. Remember to set selinux to permissive if you choose CentOS.
-
Provide a name for the VM in the
Virtual Machine Name
field and useStandard
forTier
. -
Select at least
A2
variant equipped with 3.5GB RAM in theSize
dropdown menu. -
Provide an username to connect via ssh, and define an according access password, or upload a certificate for an authentification without passwords. Then, click
Next
. -
Create a new cloud service and select
None
forAvailability Set
option.- Endpoints Section: This is where the port forwarding is set so
that the internal IP address could be selectively reachable from
the outside world. By default, only ssh tcp port 22 is there. The
public ports for http and https (tcp ports 80 and 443) have to be
added and mapped to the same private ports. If the cloud mappings
are flagged conflicting, proceed without setting them. Remember to
set them after the creation of the VM. Then, click
Next
.
- Endpoints Section: This is where the port forwarding is set so
that the internal IP address could be selectively reachable from
the outside world. By default, only ssh tcp port 22 is there. The
public ports for http and https (tcp ports 80 and 443) have to be
added and mapped to the same private ports. If the cloud mappings
are flagged conflicting, proceed without setting them. Remember to
set them after the creation of the VM. Then, click
-
Choose not to install
VM Agent
and click thetick
button to finalize the VM. -
Go to the
Dashboard
tab of VM Management Panel and copy theDNS Name
. This is the name that is used to access the Gluu Server. -
SSH into the VM and install the Gluu Server. See our Deployment Guide for installation instructions.
Setup.py Configuration
This section describes what to put in the prompt when setup.py
is run
after installing Gluu Server.
-
IP Address: Do not change the default IP address; just press
enter
. -
hostname: Use the DNS name that was copied from the `VM Management Panel.
-
Update hostname: Choose to update hostname for Ubuntu, but do not change if you are running CentOS.
- For CentOS, manually update the file
/etc/sysconfig/networking
, and add the full DNS name.
- For CentOS, manually update the file
-
Other Settings: The other settings can be left to the default values.
- Recommendation: the Gluu Server requires a 64bit OS, and allocates at least 4GB of RAM for Apache Tomcat in production environments.
-
Now the chosen DNS name can be used to access the Gluu Server.


---
layout: default
title: Betsy DeVos's Investments
---
Betsy DeVos's Investments
{% assign investments = site.data.investments %}
{% assign investments = investments | sort:"Name" %}
{% for investment in investments %}
- {{ investment.Name }} (Date: {{ investment.Year }}; Details: {{ investment.Notes }})
{% endfor %}


DON'T FALL FOR FAKE NEWS! Get the facts about what's going on and why it's happening Information & Updates exposing the dark truths of this planet featured


Nexus Models Which suites you the best... Lucky-Goldstar Samsung OnePlus This is a product by LG for Android All the nexus android These are all the makes for android Samsung LG Moto


Normal Mapping with Javascript and Canvas
I made a little experiment with normal mapping and phong shading in javascript which turned out to work quite well. I think with a little bit of tweaking it could be used in a real time game. Just move your mouse over the images bellow to see it in action. You'll need a modern browser supporting the canvas tag for this to work. Google Chrome seems to be the fastest.
Demo
Source
You can view the source code here: light.js. Feel free to copy from it, but please notify me if you use it for something cool. :) Also beware that the code is pretty hacky and unpolished.
How it works
The 3D effect is basically created using 2 textures. One contains the color of each pixel and the other the surface normal. The color image is rendered using only indirect lighting (ambient occlusion in that case). The direct light is then calculated in real time using phong shading without the diffuse part. For a more accurate description, read the source. ;)
Credits
The dragon head used in this demo comes from planetpixelemporium.com. The Buddah is from the Stanford 3D Scanning Repository and was rendered and baked using blender. Thanks for letting me use it.
Whoa!
Comment by Skofo — 3/26/10 3:09 AM | # - re
Impressive effect ! :) I can't wait for watching this code
Comment by HALIMI Jean-Philippe — 3/26/10 1:23 PM | # - re
Awesome!
Comment by Diego Betto — 3/26/10 1:55 PM | # - re
awesome! yay!
Comment by MyFreeWeb — 3/26/10 2:15 PM | # - re
cool effect! but i'm little confused where it can be used in real html pages
Comment by peter — 3/26/10 2:33 PM | # - re
It seems little bit slow compared to Flash?
www.derschmale.com/demo/bumpmapping/bump2D.html
Comment by Tomas — 3/26/10 3:02 PM | # - re
yes but here it`s java script and there is macromedia flash or CS3. ;)
Comment by alex — 5/5/10 9:18 AM | # - re
Not using Google Chrome. (But extremely slow when using Firefox, even when using the latest nightly build.)
Comment by panzi — 10/5/10 2:31 AM | # - re
It will be fast once jaegermonkey is reintegrated.
Comment by Jonas Wagner — 10/5/10 4:42 PM | # - re
This is really nice. I like the code behid it.
Comment by Thorsten — 3/26/10 3:11 PM | # - re
Wow, that is a pretty impressive looking effect!
Now, who can come up with a practical use for this? =)
Comment by Jani Hartikainen — 3/26/10 3:16 PM | # - re
I think with some tweaking it can be used in a 2d game. Also, with webgl this will be possible without any hit on the CPU.
Comment by Jonas Wagner — 3/26/10 3:26 PM | # - re
Amazing job dude!
Comment by Schalk Neethling — 3/26/10 3:23 PM | # - re
That is slick
Comment by John Allen — 3/26/10 3:47 PM | # - re
I have touchscreen you insensitive clod! Can't see the effect :(
Comment by jl — 3/26/10 3:53 PM | # - re
Tomas, I don't see a difference in performance on my system. Nice work Jonas!
Comment by Bill — 3/26/10 4:22 PM | # - re
jl, its probably because you have a computer that average persons not have. Don't forget that there is really a jungle of browsers and performance in javascript
Comment by Tomas — 3/29/10 1:33 PM | # - re
this is good - but it only changes the pixels and you can do the alpha
you can even mix two pictures.i am sure you know
if u dont let me know ..
cheers
olga lednichenko
nesher-israel
Comment by Olga Lednichenko — 3/26/10 5:41 PM | # - re
Incredible, liquid smooth in Safari for me, but really chugs in Firefox.
Comment by Ian — 3/26/10 7:07 PM | # - re
Holy cow I'm impressed! I take it it squeeze the juice out of my poor CPU :)
Comment by vsync — 3/27/10 7:16 PM | # - re
Wow, It's great.
Comment by Jongsin Yoon — 3/29/10 7:16 AM | # - re
Good effect.
Comment by 潮流 — 3/29/10 7:45 AM | # - re
cpu hog. slow. but amazing.
Comment by Tim — 3/29/10 7:11 PM | # - re
Wow amazing.~~
Comment by jhlee — 3/29/10 7:41 PM | # - re
unbelievable!!!
Comment by wang — 3/30/10 5:16 AM | # - re
Daaaaamn! That it is crazy awesome!
Comment by Ilia — 3/30/10 5:43 PM | # - re
awesome ! make me think about sylvester.jcoglan.com/ to perform vector calculations. did you know it ?
Comment by challet — 3/31/10 6:05 PM | # - re
Yeah I did, but I think it's an overkill for what I needed. Plus it's probably slower.
Comment by Jonas Wagner — 3/31/10 6:23 PM | # - re
so great .... ill try myself...
Comment by ralu rm — 5/7/10 12:48 PM | # - re
Wow! Very cool!
Out of curiosity, why the abs function? Math.abs() should work just as well (if not perhaps a bit faster)?
Cheers!
Comment by Amadeus — 5/26/10 7:34 AM | # - re
Because I linked to the wrong file! I fixed the link now. Thanks for letting me know.
Comment by Jonas Wagner — 5/26/10 10:29 AM | # - re
Impressive indeed.
Comment by Nordvind — 6/2/10 12:33 PM | # - re
This is really fantastic. Well done.
Comment by Genkilabs — 6/11/10 12:29 AM | # - re
Seems there is a massive performance regression with firefox 4.6b6pre nightly vs firefox 3.6.8 :( It also seems that this regression has existed for quite a while.
Comment by Mark — 9/10/10 1:16 AM | # - re
The notion that this doesn't work well on Firefox is bullshit, I can run it just fine.
Comment by Ben — 2/10/11 6:29 PM | # - re
Things change in a year. ;)
Comment by Jonas Wagner — 2/11/11 9:00 AM | # - re
Great!!!
(W Blender!)
Comment by Qwerty — 2/16/11 10:46 PM | # - re
that is freakin' amazing... Very cool
Comment by jefe — 3/16/11 5:42 AM | # - re
We're using this effect on our homepage:
www.zebradog.com
Did a few optimizations as well, which seemed to significantly increase performance. You can see the comparison here:
zebradog.github.com/demo/normal-mapping/
Comment by Matt Cook — 7/5/11 10:31 PM | # - re
gravytea.com/labs/dementia/
I used negative color intensities to make as if color was sucked out of the face (except red component).
Why do you clamp the color values? It looks like Chrome and Firefox do it by themselves faster than a JS implementation...
Florian
Comment by Florian — 11/14/11 1:44 PM | # - re
Not all of them were doing it back when I implemented it. No idea what the status is now.
Comment by Jonas Wagner — 11/14/11 3:22 PM | # - re
Runs fine on Firefox 8. Looks completely awesome. Good job!
Comment by Lynda — 11/15/11 3:05 AM | # - re


class Concurrent::CyclicBarrier
A synchronization aid that allows a set of threads to all wait for each other to reach a common barrier point. @example
barrier = Concurrent::CyclicBarrier.new(3) jobs = Array.new(3) { |i| -> { sleep i; p done: i } } process = -> (i) do # waiting to start at the same time barrier.wait # execute job jobs[i].call # wait for others to finish barrier.wait end threads = 2.times.map do |i| Thread.new(i, &process) end # use main as well process.call 2 # here we can be sure that all jobs are processed
Constants
- Generation
@!visibility private
Public Class Methods
Create a new `CyclicBarrier` that waits for `parties` threads
@param [Fixnum] parties the number of parties @yield an optional block that will be executed that will be executed after
the last thread arrives and before the others are released
@raise [ArgumentError] if `parties` is not an integer or is less than zero
# File lib/concurrent/atomic/cyclic_barrier.rb, line 40 def initialize(parties, &block) Utility::NativeInteger.ensure_integer_and_bounds parties Utility::NativeInteger.ensure_positive_and_no_zero parties super(&nil) synchronize { ns_initialize parties, &block } end
Public Instance Methods
A barrier can be broken when:
-
a thread called the `reset` method while at least one other thread was waiting
-
at least one thread timed out on `wait` method
A broken barrier can be restored using `reset` it's safer to create a new one @return [Boolean] true if the barrier is broken otherwise false
# File lib/concurrent/atomic/cyclic_barrier.rb, line 105 def broken? synchronize { @generation.status != :waiting } end
@return [Fixnum] the number of threads currently waiting on the barrier
# File lib/concurrent/atomic/cyclic_barrier.rb, line 54 def number_waiting synchronize { @number_waiting } end
@return [Fixnum] the number of threads needed to pass the barrier
# File lib/concurrent/atomic/cyclic_barrier.rb, line 49 def parties synchronize { @parties } end
resets the barrier to its initial state If there is at least one waiting thread, it will be woken up, the `wait` method will return false and the barrier will be broken If the barrier is broken, this method restores it to the original state
@return [nil]
# File lib/concurrent/atomic/cyclic_barrier.rb, line 95 def reset synchronize { ns_generation_done @generation, :reset } end
Blocks on the barrier until the number of waiting threads is equal to `parties` or until `timeout` is reached or `reset` is called If a block has been passed to the constructor, it will be executed once by
the last arrived thread before releasing the others
@param [Fixnum] timeout the number of seconds to wait for the counter or
`nil` to block indefinitely
@return [Boolean] `true` if the `count` reaches zero else false on
`timeout` or on `reset` or if the barrier is broken
# File lib/concurrent/atomic/cyclic_barrier.rb, line 66 def wait(timeout = nil) synchronize do return false unless @generation.status == :waiting @number_waiting += 1 if @number_waiting == @parties @action.call if @action ns_generation_done @generation, :fulfilled true else generation = @generation if ns_wait_until(timeout) { generation.status != :waiting } generation.status == :fulfilled else ns_generation_done generation, :broken, false false end end end end
Protected Instance Methods
# File lib/concurrent/atomic/cyclic_barrier.rb, line 111 def ns_generation_done(generation, status, continue = true) generation.status = status ns_next_generation if continue ns_broadcast end
# File lib/concurrent/atomic/cyclic_barrier.rb, line 122 def ns_initialize(parties, &block) @parties = parties @action = block ns_next_generation end
# File lib/concurrent/atomic/cyclic_barrier.rb, line 117 def ns_next_generation @generation = Generation.new(:waiting) @number_waiting = 0 end


SnFFT Package¶
The SnFFT package is Julia package designed to facilitate harmonic analyis on the symmetric group of order n, denoted Sn . Out of the box, SnFFT implements:
- Group operations and factorizations for Sn
- Functionality to set up functions over Sn
- The fast Fourier transform with additional options if the function is sparse or bandlimited
- The inverse fast Fourier transform with additional options if the function is bandlimited or the user is only interested in the result from the top few components
- The convolution and correlation of two Fourier transforms
Contents:


Time Card
Pake smartphone aja, absensi beres
Kopoka
Off Duty
On Duty
On Break
10:05 PM
Feb 12, 2018 (Mon)
Time elapsed:
9:23:21
IN
OUT
REMOTE
IN
REMOTE
OUT
START BREAK


Setting Parameters
With the ArgentSea framework, you need to set parameter values before a connection or command is created. The ADO.NET standard parameter collections cannot be created without a command object host. To fill this need, ArgentSea provides a QueryParameterCollection object, which is simply a collection of ADO.NET DbParameters. This object allow you to create an instance with a simple new
statement.
var parameters = new QueryParameterCollection();
ArgentSea provides a variety of extension methods to work with the parameters collection.
- Methods to easily add parameters to any parameters collection
- Methods to simplify obtaining values from parameters.
- Methods to Map Models properties to parameters.
Note
Parameter names are implicitly normalized. On SQL Server this means always ensuring a “@” prefix. On PostgreSQL, future versions might automatically convert to lowercase.
Creating Parameters with Extension Methods
ArgentSea offers a set of extension methods that simplify the code required to optimally create and populate parameters and also handle database nulls.
The methods to add parameters to a collection are provider-specific, since they are converting .NET types to database types. This means that the extension methods won’t appear unless you have a using
statement referencing the provider.
Note
The QueryParameterCollection and SqlParameterCollection inherit from the same base class. Not only can you use these methods on ArgentSea’s QueryParameterCollection
, but you can also use them on the standard ADO.NET SqlCommand.Parameters
property.
To access the extension methods, you need the following using
statement:
using ArgentSea.Sql;
Adding a correctly typed parameter now requires only one line:
parameters.AddSqlIntInputParameter("@TransactionId", transactionId);
parameters.AddSqlDecimalInputParameter("@Amount", amount, 16, 2);
parameters.AddSqlNVarCharInputParameter("@Name", name, 255);
parameters.AddSqlFloatOutputParameter("@Temperature");
These methods all support a fluent api, so these can be written instead as:
var parameters = new QueryParameterCollection()
.AddSqlIntInputParameter("@TransactionId", transactionId)
.AddSqlDecimalInputParameter("@Amount", amount, 16, 2)
.AddSqlNVarCharInputParameter("@Name", name, 255)
.AddSqlRealOutputParameter("@Temperature");
And these methods also work directly on the data provider’s command parameters collection.
cmd.Parameters.AddSqlIntInputParameter("@TransactionId", transactionId)
.AddSqlDecimalInputParameter("@Amount", amount, 16, 2)
.AddSqlNVarCharInputParameter("@Name", name, 255)
.AddSqlRealOutputParameter("@Temperature");
Where appropriate, the methods have overloads that accept nullable value types. When the nullable type is null, the parameter will be set to a database Null value. If you are not using the Nullable overloads, then the values Guid.Empty, double.NaN, and float.NaN will also be saved as database Nulls. Likewise, null strings will be set to database Nulls, but empty strings will save as zero-length strings. The extension methods accepting string values have a max length argument, and those converting to Ansi database values have a code page parameter. The decimal methods have arguments for specifying precision and scale.
Creating Parameters with the Mapper
The Mapper uses Model property attributes to automatically generate code that is much like what would be created in the previous section.
Assuming that the Model (in this example, a “Store” class) has Mapping attributes associated with each of its properties, you can render all the corresponding input parameters and set their respective values with:
parameters.CreateInputParameters<Store>(store, logger);
This one line of code is much easier than individually coding the creation of each parameter and setting each value.
You can do something similar with output parameters. Because you will probably need at least one input parameter (likely a key), set that first. Then, when you generate the output parameters the Mapper will not duplicate this existing parameter with a redundant output parameter.
parameters.AddSqlIntInputParameter("@TransactionId", transactionId);
parameters.CreateOutputParameters<Store>(logger);
// Again, these methods all support a fluent api, so this can be written instead as:
var parameters = new QueryParameterCollection()
.AddSqlIntInputParameter("@TransactionId", transactionId)
.CreateOutputParameters<Store>(logger);
Of course, you can always add parameters using standard ADO.NET syntax.
var parameter = new System.Data.SqlClient.SqlParameter();
parameter.SqlDbType = System.Data.SqlDbType.Int;
parameter.Value = transactionId;
command.Parameters.Add(parameter);
This may be useful for types not yet supported by ArgentSea.
Tip
As you define parameters in your queries, naming them as consistently as possible will make using the Mapper easy.
Next: Fetching Data


G127.1+0.5
R5
- Right Ascension: 01 28 20
- Declination: +63 10
- Size (/arcmin): 45
- Type: S
- Flux density at 1 GHz (/Jy): 12
- Spectral Index: 0.45
Notes: Has been called G127.3+0.7.
- Radio: Distinct shell, with bright central source.
- Optical: Detected.
- Point sources: Flat radio spectrum (extragalactic) source at centre of remnant.
- Distance: 1.2–1.3 kpc if associated with NGC 559.
References:
- Caswell 1977, MNRAS, 181, 789. Half-Mile Telescope at 1.42 GHz (3.'5×3.'9), plus other observations of central source.
ADS
- Pauls 1977, A&A, 59, L13. Effelsberg 100-m at 1.4 GHz (9': S=8±1 Jy).
ADS
- Salter et al. 1978, A&A, 66, 77. Effelsberg 100-m at 2.7 GHz (4.'4), plus 5 and 8.7 GHz of the central source.
ADS
- Reich et al. 1979, A&A, 78, L13. Effelsberg 100-m at 1.4 GHz (9': S=10.8±1.3 Jy).
ADS
- Pauls et al. 1982, A&A, 112, 120. WSRT at 610 MHz (56''×62'') and HI absorption to the point source with the VLA.
ADS
- Geldzahler & Shaffer 1982, ApJ, 260, L69. Observations of central source.
ADS
- Fürst et al. 1984, A&A, 133, 11. Effelsberg 100-m at 2.7 GHz (4.'4) and 4.8 GHz (2.'6).
ADS
- Goss & van Gorkom 1984, JApA, 5, 425. WSRT HI absorption of central source.
ADS
- Joncas et al. 1989, A&A, 219, 303. DRAO at 408 MHz (3.'5×3.'9: S=17.9±2.0 Jy) and 1.4 GHz (1.'0×1.'13: S=10.1±0.8 Jy), plus review of flux densities.
ADS
- Xilouris et al. 1993, A&A, 270, 393. Optical imaging.
ADS
- Lorimer et al. 1998, A&A, 331, 1002. Pulsar search.
ADS
- Reich et al. 2003, A&A, 408, 961. Effelsberg 100-m at 863 MHz (14.'5: S=14.6±0.8 Jy).
ADS
- Kaplan et al. 2004, ApJS, 153, 269. Chandra limits for any compact sources.
ADS
- Leahy & Tian 2006, A&A, 451, 251. CGPS at 408 MHz (3.'4×3.'8: S=17.1±1.7 Jy) and 1.4 GHz (1.'0×1.'2: S=10.0±0.8 Jy).
ADS
- Kothes et al. 2006, A&A, 457, 1081. CGPS at 408 MHz (~3': S=15.9±1.0 Jy) and 1420 MHz (~1': S=9.7±0.6 Jy), including polarisation and review of flux densities.
ADS
- Sun et al. 2007, A&A, 463, 993. Urumqi 25-m at 5 GHz (9.'5: S=6.3±0.7 Jy), including polarisation.
ADS
also see: Sun et al. 2007, A&A, 469, 1003. Erratum.
ADS
- Zhou et al. 2014, ApJ, 791, 109. CO observations.
ADS
Last updated: 5 May 2017
home |
documentation |
detailed listings |
summary listings
Dave Green/Cambridge, UK/


This is the partial for view 1.
Fast just got faster with Nexus S.
The Next, Next Generation tablet.
Total number of phones: 2


todayActive();
$dataTodayPassive2 = $modelMov2->todayPassive();
$totalA2 = 0;
while ( $totalActive2 = mysqli_fetch_array($dataTodayActive2)) {
$totalA2 += $totalActive2['totalMoney'];
} ;
$totalP2 = 0;
while ( $totalPassive2 = mysqli_fetch_array($dataTodayPassive2)) {
$totalP2 += $totalPassive2['totalMoney'];
}
?>


ZendService\Amazon\Amazon is a simple API for using Amazon web services. ZendService\Amazon\Amazon has two APIs: a more traditional one that follows Amazon’s own API, and a simpler “Query API” for constructing even complex search queries easily.
ZendService\Amazon\Amazon enables developers to retrieve information appearing throughout Amazon.com web sites directly through the Amazon Web Services API. Examples include:
- Store item information, such as images, descriptions, pricing, and more
- Customer and editorial reviews
- Similar products and accessories
- Amazon.com offers
- ListMania lists
In order to use ZendService\Amazon\Amazon, you should already have an Amazon developer API key as well as a secret key. To get a key and for more information, please visit the Amazon Web Services web site. As of August 15th, 2009 you can only use the Amazon Product Advertising API through ZendService\Amazon\Amazon, when specifying the additional secret key.
Note
Attention
Your Amazon developer API and secret keys are linked to your Amazon identity, so take appropriate measures to keep them private.
Search Amazon Using the Traditional API
In this example, we search for PHP books at Amazon and loop through the results, printing them.
1 2 3 4 5 6 | $amazon = new ZendService\Amazon\Amazon('AMAZON_API_KEY', 'US', 'AMAZON_SECRET_KEY');
$results = $amazon->itemSearch(array('SearchIndex' => 'Books',
'Keywords' => 'php'));
foreach ($results as $result) {
echo $result->Title . '
';
}
|
Search Amazon Using the Query API
Here, we also search for PHP books at Amazon, but we instead use the Query API, which resembles the Fluent Interface design pattern.
1 2 3 4 5 6 7 8 | $query = new ZendService\Amazon\Query('AMAZON_API_KEY',
'US',
'AMAZON_SECRET_KEY');
$query->category('Books')->Keywords('PHP');
$results = $query->search();
foreach ($results as $result) {
echo $result->Title . '
';
}
|
By default, ZendService\Amazon\Amazon connects to the United States (“US”) Amazon web service. To connect from a different country, simply specify the appropriate country code string as the second parameter to the constructor:
Choosing an Amazon Web Service Country
1 2 | // Connect to Amazon in Japan
$amazon = new ZendService\Amazon\Amazon('AMAZON_API_KEY', 'JP', 'AMAZON_SECRET_KEY');
|
Note
Country codes
Valid country codes are: CA, DE, FR, JP, UK, and US.
The itemLookup() method provides the ability to fetch a particular Amazon item when the ASIN is known.
Looking up a Specific Amazon Item by ASIN
1 2 | $amazon = new ZendService\Amazon\Amazon('AMAZON_API_KEY', 'US', 'AMAZON_SECRET_KEY');
$item = $amazon->itemLookup('B0000A432X');
|
The itemLookup() method also accepts an optional second parameter for handling search options. For full details, including a list of available options, please see the relevant Amazon documentation.
Note
Image information
To retrieve images information for your search results, you must set ResponseGroup option to Medium or Large.
Searching for items based on any of various available criteria are made simple using the itemSearch() method, as in the following example:
Performing Amazon Item Searches
1 2 3 4 5 6 | $amazon = new ZendService\Amazon\Amazon('AMAZON_API_KEY', 'US', 'AMAZON_SECRET_KEY');
$results = $amazon->itemSearch(array('SearchIndex' => 'Books',
'Keywords' => 'php'));
foreach ($results as $result) {
echo $result->Title . '
';
}
|
Using the ResponseGroup Option
The ResponseGroup option is used to control the specific information that will be returned in the response.
1 2 3 4 5 6 7 8 9 10 | $amazon = new ZendService\Amazon\Amazon('AMAZON_API_KEY', 'US', 'AMAZON_SECRET_KEY');
$results = $amazon->itemSearch(array(
'SearchIndex' => 'Books',
'Keywords' => 'php',
'ResponseGroup' => 'Small,ItemAttributes,Images,SalesRank,Reviews,' .
'EditorialReview,Similarities,ListmaniaLists'
));
foreach ($results as $result) {
echo $result->Title . '
';
}
|
The itemSearch() method accepts a single array parameter for handling search options. For full details, including a list of available options, please see the relevant Amazon documentation
Tip
The ZendServiceAmazonQuery class is an easy to use wrapper around this method.
ZendService\Amazon\Query provides an alternative API for using the Amazon Web Service. The alternative API uses the Fluent Interface pattern. That is, all calls can be made using chained method calls. (e.g., $obj->method()->method2($arg))
The ZendService\Amazon\Query API uses overloading to easily set up an item search and then allows you to search based upon the criteria specified. Each of the options is provided as a method call, and each method’s argument corresponds to the named option’s value:
Search Amazon Using the Alternative Query API
In this example, the alternative query API is used as a fluent interface to specify options and their respective values:
1 2 3 4 5 6 | $query = new ZendService\Amazon\Query('MY_API_KEY', 'US', 'AMAZON_SECRET_KEY');
$query->Category('Books')->Keywords('PHP');
$results = $query->search();
foreach ($results as $result) {
echo $result->Title . '
';
}
|
This sets the option Category to “Books” and Keywords to “PHP”.
For more information on the available options, please refer to the relevant Amazon documentation.
The following classes are all returned by ZendServiceAmazonAmazon::itemLookup() and ZendServiceAmazonAmazon::itemSearch():
ZendService\Amazon\Item is the class type used to represent an Amazon item returned by the web service. It encompasses all of the items attributes, including title, description, reviews, etc.
ZendService\Amazon\Item has a number of properties directly related to their standard Amazon API counterparts.
| Name | Type | Description |
|---|---|---|
| ASIN | string | Amazon Item ID |
| DetailPageURL | string | URL to the Items Details Page |
| SalesRank | int | Sales Rank for the Item |
| SmallImage | ZendServiceAmazonImage | Small Image of the Item |
| MediumImage | ZendServiceAmazonImage | Medium Image of the Item |
| LargeImage | ZendServiceAmazonImage | Large Image of the Item |
| Subjects | array | Item Subjects |
| Offers | ZendServiceAmazonOfferSet | Offer Summary and Offers for the Item |
| CustomerReviews | array | Customer reviews represented as an array of ZendServiceAmazonCustomerReview objects |
| EditorialReviews | array | Editorial reviews represented as an array of ZendServiceAmazonEditorialReview objects |
| SimilarProducts | array | Similar Products represented as an array of ZendServiceAmazonSimilarProduct objects |
| Accessories | array | Accessories for the item represented as an array of ZendServiceAmazonAccessories objects |
| Tracks | array | An array of track numbers and names for Music CDs and DVDs |
| ListmaniaLists | array | Item related Listmania Lists as an array of ZendServiceAmazonListmaniaList objects |
| PromotionalTag | string | Item Promotional Tag |
ZendService\Amazon\Image represents a remote Image for a product.
| Name | Type | Description |
|---|---|---|
| Url | ZendUriUri | Remote URL for the Image |
| Height | int | The Height of the image in pixels |
| Width | int | The Width of the image in pixels |
ZendService\Amazon\ResultSet objects are returned by ZendServiceAmazonAmazon::itemSearch() and allow you to easily handle the multiple results returned.
Note
SeekableIterator
Implements the SeekableIterator for easy iteration (e.g. using foreach), as well as direct access to a specific result using seek().
int:totalResults() Returns the total number of results returned by the search
Each result returned by ZendServiceAmazonAmazon::itemSearch() and ZendServiceAmazonAmazon::itemLookup() contains a ZendService\Amazon\OfferSet object through which pricing information for the item can be retrieved.
| Name | Type | Description |
|---|---|---|
| LowestNewPrice | int | Lowest Price for the item in “New” condition |
| LowestNewPriceCurrency | string | The currency for the LowestNewPrice |
| LowestOldPrice | int | Lowest Price for the item in “Used” condition |
| LowestOldPriceCurrency | string | The currency for the LowestOldPrice |
| TotalNew | int | Total number of “new” condition available for the item |
| TotalUsed | int | Total number of “used” condition available for the item |
| TotalCollectible | int | Total number of “collectible” condition available for the item |
| TotalRefurbished | int | Total number of “refurbished” condition available for the item |
| Offers | array | An array of ZendServiceAmazonOffer objects. |
Each offer for an item is returned as an ZendService\Amazon\Offer object.
| Name | Type | Description |
|---|---|---|
| MerchantId | string | Merchants Amazon ID |
| MerchantName | string | Merchants Amazon Name. Requires setting the ResponseGroup option to OfferFull to retrieve. |
| GlancePage | string | URL for a page with a summary of the Merchant |
| Condition | string | Condition of the item |
| OfferListingId | string | ID of the Offer Listing |
| Price | int | Price for the item |
| CurrencyCode | string | Currency Code for the price of the item |
| Availability | string | Availability of the item |
| IsEligibleForSuperSaverShipping | boolean | Whether the item is eligible for Super Saver Shipping or not |
When searching for items, Amazon also returns a list of similar products that the searcher may find to their liking. Each of these is returned as a ZendService\Amazon\SimilarProduct object.
Each object contains the information to allow you to make sub-sequent requests to get the full information on the item.
| Name | Type | Description |
|---|---|---|
| ASIN | string | Products Amazon Unique ID (ASIN) |
| Title | string | Products Title |
Accessories for the returned item are represented as ZendService\Amazon\Accessories objects
| Name | Type | Description |
|---|---|---|
| ASIN | string | Products Amazon Unique ID (ASIN) |
| Title | string | Products Title |
Each Customer Review is returned as a ZendService\Amazon\CustomerReview object.
| Name | Type | Description |
|---|---|---|
| Rating | string | Item Rating |
| HelpfulVotes | string | Votes on how helpful the review is |
| CustomerId | string | Customer ID |
| TotalVotes | string | Total Votes |
| Date | string | Date of the Review |
| Summary | string | Review Summary |
| Content | string | Review Content |
Each items Editorial Reviews are returned as a ZendService\Amazon\EditorialReview object
| Name | Type | Description |
|---|---|---|
| Source | string | Source of the Editorial Review |
| Content | string | Review Content |
Each results List Mania List items are returned as ZendService\Amazon\Listmania objects.
| Name | Type | Description |
|---|---|---|
| ListId | string | List ID |
| ListName | string | List Name |
The source code of this file is hosted on GitHub. Everyone can update and fix errors in this document with few clicks - no downloads needed.


Overview
Using the default configuration, the development build of Tailwind CSS is 1996kb uncompressed, 144.6kb minified and compressed with Gzip, and 37.kb when compressed with Brotli.
| Uncompressed | Minified | Gzip | Brotli |
|---|---|---|---|
| 1996.1kb | 1599.8kb | 144.6kb | 37.6kb |
This might sound enormous but the development build is large by design.
To make the development experience as productive as possible, Tailwind generates thousands of utility classes for you, most of which you probably won't actually use.
For example, Tailwind generates margin utilities for every size in your spacing scale, for every side of an element you might want to apply margin to, at every breakpoint you are using in your project. This leads to hundreds of different combinations that are all important to have available, but not all likely to be needed.
When building for production, you should always use Tailwind's purge
option to tree-shake unused styles and optimize your final build size. When removing unused styles with Tailwind, it's very hard to end up with more than 10kb of compressed CSS.
Writing purgeable HTML
Before getting started with the purge
feature, it's important to understand how it works and build the correct mental model to make sure you never accidentally remove important styles when building for production.
PurgeCSS (the library we use under the hood) is intentionally very naive in the way it looks for classes in your HTML. It doesn't try to parse your HTML and look for class attributes or dynamically execute your JavaScript — it simply looks for any strings in the entire file that match this regular expression:
/[^<>"'`\s]*[^<>"'`\s:]/g
That means that it is important to avoid dynamically creating class strings in your templates with string concatenation, otherwise PurgeCSS won't know to preserve those classes.
Don't use string concatenation to create class names

Do dynamically select a complete class name

As long as a class name appears in your template in its entirety, PurgeCSS will not remove it.
Removing unused CSS
Basic usage
To get started, provide an array of paths to all of your template files using the purge
option:
// tailwind.config.js
module.exports = {
purge: [
'./src/**/*.html',
'./src/**/*.vue',
'./src/**/*.jsx',
],
theme: {},
variants: {},
plugins: [],
}
This list should include any files in your project that reference any of your styles by name. For example, if you have a JS file in your project that dynamically toggles some classes in your HTML, you should make sure to include that file in this list.
Now whenever you compile your CSS with NODE_ENV
set to production
, Tailwind will automatically purge unused styles from your CSS.
Enabling manually
If you want to manually control whether unused styles should be removed (instead of depending implicitly on the environment variable), you can use an object syntax and provide the enabled
option, specifying your templates using the content
option:
// tailwind.config.js
module.exports = {
purge: {
enabled: true,
content: ['./src/**/*.html'],
},
// ...
}
We recomend only removing unused styles in production, as removing them in development means you need to recompile any time you change your templates and compiling with PurgeCSS enabled is much slower.
Removing all unused styles
By default, Tailwind will only remove unused component and utility styles that it itself generates. You can conceptually think of it working like this:
@tailwind base;
/* Your own custom base styles */
h1 { /* ... */ }
a { /* ... */ }
/* Start purging... */
@tailwind components;
/* Stop purging. */
/* Your own custom component styles */
.btn { /* ... */ }
.card { /* ... */ }
/* Start purging... */
@tailwind utilities;
/* Stop purging. */
/* Your own custom utilities */
.text-shadow-sm { /* ... */ }
This is to avoid accidentally removing styles that you might need but not directly reference in your templates, for example base syles for elements like html
and body
, or classes that are only referenced deep in your node_modules
folder that are part of some other dependency.
If you really want to remove all unused styles, use the mode: 'all'
option and be very careful to provide the paths to all files that might reference any classes or HTML elements:
// tailwind.config.js
module.exports = {
purge: {
mode: 'all',
content: [
'./src/**/*.js',
'./node_modules/next/dist/pages/**/*.js',
'./node_modules/next/dist/pages/**/*.ts',
'./node_modules/next/dist/pages/**/*.ts',
'./node_modules/pikaday/pikaday.js',
],
},
// ...
}
We do not recommend this, and generally find you get 99% of the file size benefits by sticking with the more conservative default approach.
PurgeCSS options
If you need to pass any options directly to PurgeCSS, you can do so using options
:
// tailwind.config.js
module.exports = {
purge: {
content: ['./src/**/*.html'],
// These options are passed through directly to PurgeCSS
options: {
whitelist: ['bg-red-500', 'px-4'],
}
},
// ...
}
Setting up PurgeCSS manually
Under the hood, Tailwind's purge
feature is powered by a fantastic library called PurgeCSS.
If you're using a version of Tailwind older than v1.4.0 and need to setup PurgeCSS manually, start by installing @fullhuman/postcss-purgecss
:
# Using npm
npm install @fullhuman/postcss-purgecss --save-dev
# Using yarn
yarn add @fullhuman/postcss-purgecss -D
Next, add it as the last plugin in your postcss.config.js
file:
// postcss.config.js
const purgecss = require('@fullhuman/postcss-purgecss')({
// Specify the paths to all of the template files in your project
content: [
'./src/**/*.html',
'./src/**/*.vue',
'./src/**/*.jsx',
// etc.
],
// This is the function used to extract class names from your templates
defaultExtractor: content => {
// Capture as liberally as possible, including things like `h-(screen-1.5)`
const broadMatches = content.match(/[^<>"'`\s]*[^<>"'`\s:]/g) || []
// Capture classes within other delimiters like .block(class="w-1/2") in Pug
const innerMatches = content.match(/[^<>"'`\s.()]*[^<>"'`\s.():]/g) || []
return broadMatches.concat(innerMatches)
}
})
module.exports = {
plugins: [
require('tailwindcss'),
require('autoprefixer'),
...process.env.NODE_ENV === 'production'
? [purgecss]
: []
]
}
Note that in this example, we're only enabling PurgeCSS in production. We recommend configuring PurgeCSS this way because it can be slow to run, and during development it's nice to have every class available so you don't need to wait for a rebuild every time you change some HTML.
Finally, we recommend only applying PurgeCSS to Tailwind's utility classes, and not to base styles or component classes. The easiest way to do this is to use PurgeCSS's whitelisting feature to disable PurgeCSS for non-utility classes:
/* purgecss start ignore */
@tailwind base;
@tailwind components;
/* purgecss end ignore */
@tailwind utilities;
This will ensure you don't accidentally purge important base styles when working with frameworks like Next.js, Nuxt, vue-cli, create-react-app, and others that hide their base HTML template somewhere in your node_modules
directory.
Understanding the regex
The /[\w-/:]+(?<!:)/g
regular expression we recommend as a starting point matches all of the non-standard characters Tailwind uses by default, like :
and /
.
It also uses a negative lookbehind to make sure that if a string ends in :
, the :
is not considered part of the string. This is to ensure compatibility with the class object syntax supported by Vue and the Classnames library for React:

It's important to note that because of the negative lookbehind in this regex, it's only compatible with Node.js 9.11.2 and above. If you need to use an older version of Node.js to build your assets, you can use this regular expression instead:
- /[\w-/:]+(?<!:)/g
+ /[\w-/:]*[\w-/:]/g
Customizing the regex
If you're using any other special characters in your class names, make sure to update the regular expression to include those as well.
For example, if you have customized Tailwind to create classes like w-50%
, you'll want to add %
to the regular expression:
- /[\w-/:]+(?<!:)/g
+ /[\w-/:%]+(?<!:)/g
Alternate approaches
If you can't use PurgeCSS for one reason or another, you can also reduce Tailwind's footprint by removing unused values from your configuration file.
The default theme provides a very generous set of colors, breakpoints, sizes, margins, etc. to make sure that when you pull Tailwind down to prototype something, create a CodePen demo, or just try out the workflow, the experience is as enjoyable and fluid as possible.
We don't want you to have to go and write new CSS because we didn't provide enough padding helpers out of the box, or because you wanted to use an orange color scheme for your demo and we only gave you blue.
This comes with a trade-off though: the default build is significantly heavier than it would be on a project with a purpose-built configuration file.
Here are a few strategies you can use to keep your generated CSS small and performant.
Limiting your color palette
The default theme includes a whopping 93 colors used for backgrounds, borders, text, and placeholders, all of which also have hover:
and focus
variants, as well as responsive variants at the five default screen sizes.
This means that by default, there are 5580 classes generated from this color palette out of 12,230 classes total in the entire default build.
Very few projects actually need this many colors, and removing colors you don't need can have a huge impact on the overall file size.
Here's how using a smaller color palette affects the final size:
| Colors | Original | Minified | Gzip | Brotli |
|---|---|---|---|---|
| 93 (default) | 783.5kb | 603.3kb | 78.0kb | 22.6kb |
| 50 | 530.2kb | 399.3kb | 56.6kb | 17.5kb |
| 25 | 381.6kb | 279.5kb | 44.1kb | 14.0kb |
Removing unused breakpoints
Since almost every Tailwind utility is copied for every screen size, using fewer screen sizes can have a huge impact on the overall file size as well.
Here's how defining fewer screens affects the output:
| Breakpoints | Original | Minified | Gzip | Brotli |
|---|---|---|---|---|
| 4 (default) | 783.5kb | 603.3kb | 78.0kb | 22.6kb |
| 3 | 624.0kb | 481.3kb | 62.7kb | 20.8kb |
| 2 | 464.6kb | 359.4kb | 47.4kb | 19.2kb |
| 1 | 305.1kb | 237.5kb | 32.1kb | 17.6kb |
If you only need 3 screen sizes and 35 colors, you're down to 39.5kb after gzip (14.6kb after Brotli!) without changing anything else.
Disabling unused utilities and variants
If you don't expect to need a certain utility plugin in your project at all, you can disable it completely by setting it to false
in the corePlugins
section of your config file:
// tailwind.config.js
module.exports = {
// ...
corePlugins: {
float: false
}
}
If you need a utility but don't need the responsive versions, set its variants to an empty array to generate 80% fewer classes:
module.exports = {
// ...
variants: {
appearance: []
}
}
These are mostly small wins compared to limiting your color palette or using fewer breakpoints, but they can still add up.


For a complete description, see Dynamic Higher Order Functions for DE
pxgraph
,
Ptplot -
Edward A. Lee, Christopher Hylands, Bicheng William Wu
pxgraph
are also
included, see
$PTOLEMY/src/pxgraph/README.txt
The C50 stars no longer generate assembly code with assembly directives so that different targets that support different assembly directives can be used. The new stars work for both the C50 DSK target and the new SimC50Target.
The new SimC50Target invokes the standard (commercial) C50 simulator written by Texas Instruments. TI will generally donate this simulator to universities. This new target sets the stage for a C50 Evaluation Module Board target.
$PTOLEMY/doc/html/release.html
for more information.
pigi
under NT, you will need a NT X server.
For more information, see the
Ptolemy under Windows NT
page.


|
|
|
|
|
Wednesday, April 15th, 2020 12:00 PM - 1:00 PM HKT/SGT Cost: FREE U of T alumni are invited to join a thought-provoking webinar, featuring U of T alumna, Jacinta Quah (BA 1997 TRIN), Founder & CEO, JQ&CO – a boutique consulting firm based in Singapore. The universe has thrown us an epic curve ball. Around the world, people have shifted to remote work in record numbers and many schools have moved to online learning. Unprecedented extreme measures, including locking down entire countries and cities, has become a reality for many.
Speaker Bio can be found on the event posting.
This event is one of the many diverse opportunities that brings U of T right into your community. Stay informed, inspired and connected, because together we are boundless |
||||
|
J. Robert S. Prichard Alumni House
21 King’s College Circle Toronto, Ontario M5S 3J3 |
|
|


The
Weather
App
(Please give The Weather App a moment to load)
designed by Inna Leikina using the FCC Weather API


This past weekend I was fortunate enough to participate in the 3 Day Startup San Antonio event at Geekdom as a mentor. If you are not familiar with 3 Day Startup (3DS), the website offers this description:
The idea of 3 Day Startup is simple: start a company over the course of three days. We rent work space for an entire weekend, recruit 40 students and young professionals with a wide range of backgrounds, cater food and drinks, invite top-notch entrepreneurs and investors, pick the best idea for a software startup during the Friday brainstorming session, and release a minimal prototype by Sunday night. The goal is to build enough momentum among a network of motivated people to sustain the company beyond the weekend.
The program embraces the lean startup methodology to engage customers along the product development lifecycle to properly align the company’s offerings with the customer’s needs. Using the lean canvas as a guide map, teams are challenged to identify a problem, propose a solution, engage in customer development, pivot as necessary, and emerge with a prototype that can be pitched to a panel of investors.
On the first day, participants were broken into groups where they brainstormed ideas for problems and solutions that could be prototyped in 72 hours or less. They voted on a subset of these ideas, and the idea originators began recruiting talent to join their company for the weekend. Then the teams organize and begin the first draft of their lean canvases.
After spending Friday night determining their problem, unique value proposition, potential customers, potential solutions, and filling out the rest of the lean canvas worksheet, Saturday starts off with a presentation on customer development. Then the participants are asked to leave the building, and actually go out into the world in search of potential customers to interview.
Much like performing experiments in a chemistry lab to determined the plausibility of a theory, the teams used real potential customers to help them determine the validity of their problem, and find out if their solution was the right fit. By learning more about the actual customer needs in the domain, the teams could make more informed decisions about how their company was going to move forward.
Example Lean Canvas
This lean canvas for a fictitious startup, cornhol.io, was created using the Lean Canvas Google Docs Template by Lucas Rodriguez Cervera.
By Saturday afternoon, most teams had realized they were going to need to make some adjustments to properly align themselves with their target market. For some teams this meant changing their solution, others had to adjust the problem as well, while some teams had to find new problems to solve altogether. Much like in a real business, adaptation is requisite to survival.
Teams worked late into the night on Saturday, rounding out their lean canvases, making the necessary changes to stay relevant to their demographic. They began to analyze revenue streams, customer acquisition funnels, discuss product details, and start thinking about what a prototype was going to look like.
Sunday morning started off with breakfast presentation on how to pitch to investors. Examples were shown, dos and don’ts were advised, and the teams were sent back to their rooms to work on their pitches, with first drafts being given to the entire group over lunch. Slide decks began to came together, presenters were picked from each group, and each company had their first opportunity to show off their new product or service.
After having a chance to practice their first draft pitches to the group, and eating lunch watching the other groups in turn, teams scrambled to make the adjustments needed to bring their ideas to life.
It’s crunch-time. In mere hours each team will go before potential investors, family, friends, and members of the business community to pitch their companies, and answer questions from our panel of experts. Their stories are tightened up, the slides are scrutinized, rearranged, and reordered. The presenter practices over and over, perfecting each idea, sentence, word.
Then it happens. One by one, the teams present their idea, pitching to live people. The panelists ask questions, prod for deeper understanding, and try to determine the viability of the ideas and teams.
An important lesson I learned from 3DS: the idea is the vehicle needed to learn the process. While some ideas are better than others, it is customer interviews that hammer these ideas into viable business candidates. Tenacity is often the deciding factor in a team’s success. Mentors give advice, customers give feedback, but ultimately it is the teams that must make the hard decisions, assemble a solution, and stand by it during the final presentation.
This was my first experience with 3DS and I was thankful to be paired with seasoned mentors; entrepreneurs that had one or more 3DS weekend under their belt. I’m confident I learned just as much as the participants, maybe more. I was very impressed with the teams and their accomplishments in such a short amount of time, and hope to stay in contact with many participants for years to come. The lessons, people, and inspiration will have long-term effects on my professional and personal life.
A special thanks to the 3DS organizers: Michael Girdley, Ryan Tanner, and Luz Cristal Glangchai for making this happen, and giving me the opportunity to participate.
Below you’ll find links to the final pitches, and an interview with some of the mentors (including myself).
Final Pitches
Interviews
comments powered by Disqus
Related Posts
- Introduction to Graph Databases using Neo4j
- The day the music went blind
- Darth Vader Dreams of Electric Sheep
- Homemade Ginger Ale that is so easy (even a 7 year old can do it)
- HTML5 Snake source code walkthrough
- My first game - HTML5 lightcycles
- NoNews Part II - The Source
- NoNews (is Good News!)
- Jekyll is just what the doctor ordered


Learning to Think
July 13, 2014
Phase 0 has been amazing so far. By that I mean amazingly awesome and amazingly scary. I'm learning a lot myself, how I learn, how I approach things. Some discoveries:
* I let myself get worked up a lot. Solution: breathe more, trust in the process
* I like the idea of planning and organization but feel time crunched and don't do enough of it. Solution: do it anyway
* In the moment I have thoughts and feelings and questions but don't write them down. Solution: force myself to complete reflections after each challenge rather than all at once on late Sunday nights
* I go down rabbit holes and am unsure when to stop. Solution: if it's fun, keep going, find that carrot. If overwhelmed, move on quickly and come back later or ask for help
* I will always be a procrastinator. Solution: accept this. Enjoy the early week without feeling guilty, hunker down on nights weekends and get it done
I'm a concrete sequential thinker, which means I do well with exact instructions, order, predictability and specific feedback. Asking for those things in this environment (and many others) seems laughable. Which is why I struggled, and continue to, although significantly less so at this checkpoint. I'm coming to terms with the beauty in the chaos. I'm learning to apply boundaries, assess myself, and lay out my own plans.
I've fully embraced the growth mindset in terms of believing that this old dog can learn new tricks. Now it's a matter of learning new tricks to learn! As I move forward with this adventure I want to focus on: being a better (read: less flustered) communicator in times of uncertainty, turning nervous energy into productivity, and taking a step back to examine the larger picture.


{include file="seo/topic_detail"} {include file="block/include"}
{$obj.topic_content|mac_filter_html}


Here are some of my favorite people!
These are my three favorties, in order:
Thanks for reading about me!


Preparation time
1-2 hours
Cooking time
30 mins to 1 hour
Serves
Serves 12
Dietary
This is a truly special trifle that everyone will love. Making the sponge base and lemon curd means you can add your favourite festive flavours like mincemeat or clementine. The results are worth the effort. Make a day ahead if you prefer.
You will need a shallow 23cm/9in cake tin, the base lined with baking parchment or greaseproof paper. Preheat the oven to 180C/350F/Gas 4.
Beat the butter and sugar in an electric mixer until pale and fluffy. In another bowl, mix the almonds and flour together and set aside.
Add the eggs to the butter and sugar, a little at a time, with the beater on slow. Turn the machine off and add the zest and a third of the almonds and flour, then turn the mixer on slow until the dry ingredients are incorporated, then add the second, and then the third lot, switching the machine off each time. If you do this too quickly you will end up with a heavy cake.
Finally, the machine still on slow, mix in the orange juice and the mincemeat. Transfer the mixture with a rubber spatula to the lined cake tin and bake for 35 minutes. Run a palette knife around the edge of the tin and turn out onto sugared greaseproof paper. Leave to cool.
For the orange and lemon curd, put the zest and juice, the sugar and the butter into a heatproof bowl set over a pan of simmering water, making sure that the bottom of the bowl doesn’t touch the water. Stir with a whisk from time to time until the butter has melted.
Mix the eggs and yolks lightly with a fork then stir into the lemon and orange mixture. Let the curd cook, stirring regularly, for about 10 minutes until it is thick and custard-like. It should feel heavy on the whisk. Remove from the heat and stir occasionally as it cools.
Break the mincemeat sponge into pieces and put them in the bottom of a serving dish. Sprinkle with a little sweet wine or Marsala or dry sherry. Pour over the custard then place in the fridge, covered.
When the curd is cool, pour it over the custard and chill for an hour. Whip the cream, spoon on top, then decorate the top of the trifle with orange zest and physalis and a scattering of chopped pistachios.