| Properties' Summary |
short
MeasureUnit |
[ OPTIONAL ]
This is the default logical measure unit that is used for string
formatings inside the document, f.e. the measure text
|
long
ScaleNumerator |
[ OPTIONAL ]
is the numerator for the logical scale of the document
|
long
ScaleDenominator |
[ OPTIONAL ]
is the denominator for the logical scale of the document
|
boolean
IsPrintFitPage |
[ OPTIONAL ]
enables or disables the fitting of the page to the printable
area during print
|
boolean
IsPrintTilePage |
[ OPTIONAL ]
if this is true and the paper size for printing is larger than
the paper size of the printer than the content is tiled over
multiple pages.
|
long
PageNumberFormat |
[ OPTIONAL ]
is the number format used for page number fields
|
boolean
ParagraphSummation |
[ OPTIONAL ]
If this is true, the distance between two paragraphs is
the sum of ParaTopMargin of the previous and ParaBottomMargin of
the next paragraph. If false, only the greater of the two is
choosen.
|
| Properties' Details |
MeasureUnit
short MeasureUnit;
- Usage Restrictions
- optional
- Description
- This is the default logical measure unit that is used for string
formatings inside the document, f.e. the measure text
|
|
ScaleNumerator
long ScaleNumerator;
- Usage Restrictions
- optional
- Description
- is the numerator for the logical scale of the document
|
|
ScaleDenominator
long ScaleDenominator;
- Usage Restrictions
- optional
- Description
- is the denominator for the logical scale of the document
|
|
IsPrintFitPage
boolean IsPrintFitPage;
- Usage Restrictions
- optional
- Description
- enables or disables the fitting of the page to the printable
area during print
|
|
IsPrintTilePage
boolean IsPrintTilePage;
- Usage Restrictions
- optional
- Description
- if this is true and the paper size for printing is larger than
the paper size of the printer than the content is tiled over
multiple pages.
|
|
PageNumberFormat
long PageNumberFormat;
- Usage Restrictions
- optional
- Description
- is the number format used for page number fields
|
|
ParagraphSummation
boolean ParagraphSummation;
- Usage Restrictions
- optional
- Description
- If this is true, the distance between two paragraphs is
the sum of ParaTopMargin of the previous and ParaBottomMargin of
the next paragraph. If false, only the greater of the two is
choosen.
|
|
Copyright © 2013, The Apache Software Foundation, Licensed under the Apache License, Version 2.0. Apache, the Apache feather logo, Apache OpenOffice and OpenOffice.org are trademarks of The Apache Software Foundation. Other names may be trademarks of their respective owners.


MFBTY make big return with rock-infused comeback single 'Dream Catcher'
by danisurstMFBTY are back with a new single!
On November 10 KST, the hip-hop group dropped their latest single "Dream Catcher," their first release as a trio since the release of their 2015 album 'WondaLand.' The single playfully fuses rock and hip-hop, creating an exciting mood with a looping guitar riff hook.
The unique music video for the song is somewhat theatrical, having worked with director Han Sang Bum (IU, Suzy, Urban Zakapa) to put together dynamic visuals the match the powerful energy of the song. The video was made in collaboration with South Korea's Ministry of Culture, Sports and Tourism, the Korea Creative Content Agency (KOCCA), as well as SM C&C to help promote Korea's fashion culture.
Check out the music video for "Dream Catcher" above!


Home
My Best Recipes
My favorite recipes
Beans On Toast
Ingredients
Beans
Bread
Method
Toast bread
Heat beans
Put beans on the toast


| Offer by discount (CLIENT) | Offer through by 1 get 1 (CLIENT) | Combo Offers (CLIENT) | ||||||||||||||||||||||||||||||||||||
|
|
|
| Offer by discount (SERVER) | Offer through by 1 get 1 (SERVER) | Combo Offers (SERVER) | ||||||||||||||||||||||||||||||||||||
|
|
|


The switch statement evaluates an expression, matching the expression's value to a case clause, and executes statements associated with that case.
switch (expression) { case value1: //Statements executed when the result of expression matches value1 [break;] case value2: //Statements executed the result of expression matches value2 [break;] ... case valueN: //Statements executed when the result of expression matches valueN [break;] default: //Statements executed when none of the values match the value of the expression [break;] }
expression
case valueN
expression
.statementsN
expression
matches the associated case clause.statements_def
expression
does not match any case clause.If a match is found, the program executes the associated statements. If multiple cases match the provided value, the first case that matches is selected, even if the cases are not equal to each other.
The program first looks for a case
clause whose expression evaluates to the same value as the input expression (using strict comparison, ===)
and then transfers control to that clause, executing the associated statements. If no matching case
clause is found, the program looks for the optional default
clause, and if found, transfers control to that clause, executing the associated statements. If no default
clause is found, the program continues execution at the statement following the end of switch
. By convention, the default
clause is the last clause, but it does not need to be so.
The optional break
statement associated with each case label ensures that the program breaks out of switch once the matched statement is executed and continues execution at the statement following switch. If break
is omitted, the program continues execution at the next statement in the switch
statement.
switch
In the following example, if expr
evaluates to "Bananas", the program matches the value with case "Bananas" and executes the associated statement. When break
is encountered, the program breaks out of switch
and executes the statement following switch
. If break
were omitted, the statement for case "Cherries" would also be executed.
switch (expr) { case "Oranges": console.log("Oranges are $0.59 a pound."); break; case "Apples": console.log("Apples are $0.32 a pound."); break; case "Bananas": console.log("Bananas are $0.48 a pound."); break; case "Cherries": console.log("Cherries are $3.00 a pound."); break; case "Mangoes": case "Papayas": console.log("Mangoes and papayas are $2.79 a pound."); break; default: console.log("Sorry, we are out of " + expr + "."); } console.log("Is there anything else you'd like?");
If you forget a break then script will run from the case where criteria is met, and will run the case after that regardless if criteria was met. See example here:
var foo = 0; switch (foo) { case -1: console.log('negative 1'); break; case 0: // foo is 0 so criteria met here so this block will run console.log(0) // NOTE: the forgotten break would have been here case 1: // no break statement in 'case 0:' so this case will run as well console.log(1); break; // it encounters this break so will not continue into 'case 2:' case 2: console.log(2); break; default: console.log('default'); }
Source for this technique is here:
Switch statement multiple cases in JavaScript (Stack Overflow)
This method takes advantage of the fact that if there is no break below a case statement it will continue to execute the next case statement regardless if the case meets the criteria. See the section title "What happens if I forgot a break?"
This is an example of a single operation sequential switch statement, where four different values perform exactly the same.
var Animal = 'Giraffe'; switch (Animal) { case 'Cow': case 'Giraffe': case 'Dog': case 'Pig': console.log('This animal will go on Noah\'s Ark.'); break; case 'Dinosaur': default: console.log('This animal will not.'); }
This is an example of a multiple-operation sequential switch statement, where, depending on the provided integer, you can receive different output. This shows you that it wil traverse in the order that you put the case statements, and it does not have to be numerically sequential. In JavaScript, you can even mix in definitions of strings into these case statements as well.
var foo = 1; var output = 'Output: '; switch (foo) { case 10: output += 'So '; case 1: output += 'What '; output += 'Is '; case 2: output += 'Your '; case 3: output += 'Name'; case 4: output += '?'; console.log(output); break; case 5: output += '!'; console.log(output); break; default: console.log('Please pick a number from 0 to 6!'); }
Output from this example:
Created by Mozilla Contributors, license: CC-BY-SA 2.5


| 100 | (A) | Prouede for a prophete thorowe praysede dedis |
| 95 | (C) | Proued for a prophete . in dedis wełł to prayse |
| 96 | (D) | Provid for a profete in dedis wele praysid |
| 94 | (E) | prouyd for a prophet . & in dedes preysed |
| (Ex) | ---- no text ---- | |
| 99 | (L) | preued for a prophete þrow preysed dedes |
| 94 | (P) | Proued for a prophet for his praysed dedes |
| 95 | (U) | Yproued for a prophete / in dedes wele to preise |
| (V) | ---- no text ---- |


--- layout: default title: "App Development with React Native" permalink: /classes/mobile ---
Class & Curriculum Outline
Heyo there! This page is still a work in progress; we're getting it in tip-top shape right now.
In the meantime, you may find these links helpful:
Don't worry, more's coming to this page. Just you wait!


C# and Java: Comparing Programming Languages
Here. This is a pretty comprehensive, and pretty even-handed, comparison (Java gets kudos for doing some things better than C# and vice versa). If you're still curious about how the other half lives, check it out, but I'll bottom line it for you:
C# and Java are pretty much the same language. The real differences are in the respective libraries, not the languages.


Get(LayoutAccess)
• 0 if the custom layout privileges of an account’s privilege set allow no access to Records via this layout
• 1 if the custom layout privileges of an account’s privilege set allow view only access to Records via this layout. If the database is opened with read-only access, FileMaker Pro returns 1 even if the layout has read-write access privileges
• 2 if the custom layout privileges of an account’s privilege set allow modifiable access to Records via this layout
• Get(LayoutAccess) returns information about record access privileges defined for only the current layout. It ignores current record access privileges for all other layouts. To fully check access through a layout, consider the return values of Get(LayoutAccess) and the Get(RecordAccess) function.
•
• See Editing layouts privileges for more details about limiting access through layouts.Returns 1 when the layout allows view-only access to records.


Notebooks
Story: Falling stars
Falling stars
Title
Falling stars
Collection
Summary
The human heart is believed to fall down at death. A star likewise falls. (L V.-22. 5731 rev.-5733 rev., note). When people are about to die, their heart does not 'stand' as it did but falls like the star.
Comments
1) See also Stars and death, 2) This story is found in Book V-22
Contributors
Date
1 January 1876
Categories
Celestial bodies and aeroscopy, Custom and daily life, Portention
Keywords
stars ('shoot') , stars (falling) , stars (teachings about) , stars (where they live) , stars (shooting) , stars (their actions) , stars (and death of people) , stars (take away people's hearts) , stars (hearts resemble) , stars (and the time of death) , stars (and falling hearts) , stars (the noise they make) , stars (come out of the sky) , death (and falling stars and hearts) , death (teachings about) , death (what happens after) , death (what happens at the time of) , death (and shooting stars and hearts) , death (stars take hearts away) , hearts (and death) , hearts (resemble stars) , hearts (at death it does not 'stand') , hearts (fall like stars) , hearts (and shooting stars) , hearts (and falling stars) , hearts (stars take away those of the dead) , hearts (of people believed to fall down at death) , teachings (about falling stars) , teachings (about death and falling hearts and stars) , education (about falling stars) , education (about death and falling hearts and stars)
Story Pages
5731v-5733v


SoCal '10: Program
| 9:30–10:00 |
Breakfast and poster set-up |
| 10:00–11:15 |
Talk session I: Concurrency |
|
Daniel Marino:
Providing a Straightforward Language-Level Memory
Model without Sacrificing Performance |
|
Christopher Stone and Melissa O'Neill:
Observationally Cooperative Multithreading |
|
Gregor Wagner, Andreas Gal, and Michael Franz:
Compartmental Memory Management in a Web-Browser
Environment |
| 11:15–11:30 |
Coffee break |
| 11:30–12:30 |
Keynote |
| Chandra Krintz:
Language and Runtime Support
for the Next-Generation of Distributed Applications |
| 12:30–1:35 |
Lunch |
| 1:35–1:45 |
Business meeting |
| 1:45–3:00 |
Talk session II: Concurrency |
|
Ravi Chugh:
Type Inference with Run-time Logs |
|
Shu-yu Guo:
The Essence of Compiling with Traces |
|
Poster Spotlight Talks |
| 3:00–4:00 |
Poster session |
| Dongseok Jang, Ranjit Jhala, Sorin Lerner,
and Hovav Shacham:
An Empirical Study of Privacy-Violating Information Flows
in JavaScript Web Applications |
| Shu-Yu Guo and Andreas Gal:
Single-Pass Generation of Single Static
Assignment Form for JavaScript |
| Kannan Goundan: An Effect System for
Variable Initialization with Closures |
| Elaine Render: Robust Discrete Synthesis Against
| Eric Hennigan and Christoph Kerschbaumer:
Bytecode-Based Security for JavaScript |
| Chris Bunch and Chandra Krintz:
Towards a Unified Phone and Web Programming Interface for
Cloud-based Datastores |
| Stephen Kou:
Fitting Round Objects into Square Hardware |
| Mohsen Lesani: Communicating Memory Transactions
|
| 4:00–5:15 |
Talk session III: Program verification
and synthesis |
|
Pat Rondon, Ming Kawaguchi, and Ranjit Jhala:
Low-Level Liquid Types |
|
Zach Tatlock, Sudipta Kundu, and Sorin Lerner:
Have Your Verified Compiler and Extend it Too |
|
Hesam Samimi:
Specialized Sketching |
|


2 Kings 6:9
And the man of God sent unto the king of Israel, saying, Beware that thou pass not such a place; for thither the Syrians are come down.


{% if validlink %}
{% else %}
Password reset failed
"The password reset link was invalid, possibly because it has already been used. Please request a new password reset "here.
{% endif %}{% extends 'core/index.html' %} {% load static %} {% block title %}Enter the new password{% endblock %} {% block content %}
"The password reset link was invalid, possibly because it has already been used. Please request a new password reset "here.
{% endif %}


I am having trouble starting insight explorer. It doesnt want to start the services for me after updating daemon.
[2019-01-15T12:08:46.211Z] info: Using network: livenet
[2019-01-15T12:08:46.212Z] info: Starting bitcoind
[2019-01-15T12:08:46.214Z] info: Using komodo config file: /root/.komodo/komodo.conf
[2019-01-15T12:08:46.217Z] info: Starting komodo process
call komodo_args.(../komodod) NOTARY_PUBKEY.()
initialized at<PHONE_NUMBER>
...........................................................................................................................................................................................................................................................................................set sapling height, if possible from ht.1185221<PHONE_NUMBER>
transition at 1140349 (1140348,<PHONE_NUMBER>) -> (1140349,<PHONE_NUMBER>)
SET SAPLING ACTIVATION height.1140409
sapling activation at 1140409
finished loading blocks
processing /root/.komodo/komodostate 26550KB, validated.-1
inds.0x564f2dab5c10 validate /root/.komodo/komodostate.ind fsize.6623172 datalen.27187258 n.1655793 lastfpos.0
/root/.komodo/komodostate.ind validated fpos.27187258
took 1 seconds to process /root/.komodo/komodostate 26550KB
READY for RPC calls at<PHONE_NUMBER>! done PASSPORT refid.33
So now I expect it to start insight-api, insight-ui but somehow it does not


Data sources¶
Case and meta data¶
In Quantipy, case data is natively represented as a pandas.DataFrame
object, while metadata is organized in form of a dict
.
In the most basic case, case data and associated meta files can be provided
as tab-delimited .csv
and a .json
string (that follows Quantipy’s
metadata structure) respectively. Loading files into Quantipy is done using the
quantipy.dp.io.load_csv()
and quantipy.dp.io.load_json()
methods.
Quantipy’s metadata structure is managed in pure Python and supports a mapping syntax to allow shared and referenced content. Currently there are 6 meta elements in the document:
| element | contains |
|---|---|
'type' |
case data type |
'info' |
info on the source data |
'lib' |
shared use references |
'columns' |
info on DataFrame columns (Quantipy types, labels, etc.) |
'sets' |
ordered groups of variables pointing to other parts of the meta |
'masks' |
complex variable type definitions (arrays, dichotomous, etc.) |
See also
Usage examples of loading and working with case and metadata files are
provided throughout the Stack
, Aggregations
and Views
sections of the
docs.
Supported conversions¶
In adddition to providing plain .csv
/.json
data (pairs), source files
can be read into Quantipy using a number of I/O functions to deal with
standard file formats encountered in the market research industry:
| Software | Format | Read | Write |
|---|---|---|---|
| SPSS Statistics | .sav | Yes | Yes |
| SPSS Dimensions | .dff/.mdd | Yes | No |
| Decipher | tab-delimited .json/ .txt | Yes | No |
| Ascribe | tab-delimited .xml/ .txt | Yes | No |
The following functions are designed to convert the different file formats’ structures into inputs understood by Quantipy.
SPSS Statistics¶
Reading:
>>> from quantipy.core.tools.dp.io import read_spss
>>> meta, data = read_spss(path_sav)
Note
On a Windows machine you MUST use ioLocale=None
when reading
from SPSS. This means if you are using a Windows machine your base
example for reading from SPSS is
meta, data = read_spss(path_sav, ioLocale=None)
.
When reading from SPSS you have the opportunity to specify a custom
dichotomous values map, that will be used to convert all dichotomous
sets into Quantipy delimited sets, using the dichot
argument.
The entire read operation will use the same map on all dichotomous
sets so they must be applied uniformly throughout the SAV file. The
default map that will be used if none is provided will be
{'yes': 1, 'no': 0}
.
>>> meta, data = read_spss(path_sav, dichot={'yes': 1, 'no': 2})
SPSS dates will be converted to pandas dates by default but
if this results in conversion issues or failures you can read
the dates in as Quantipy strings to deal with them later, using the
dates_as_strings
argument.
>>> meta, data = read_spss(path_sav, dates_as_strings=True)
Writing:
>>> from quantipy.core.tools.dp.io import write_spss
>>> write_spss(path_sav, meta, data)
By default SPSS files will be generated from the 'data file'
set found in meta['sets']
, but a custom set can be named instead
using the from_set
argument.
>>> write_spss(path_sav_analysis, meta, data, from_set='sav-export')
The custom set must be well-formed:
>>> "sets" : {
... "sav-export": {
... "items": [
... "columns@Q1",
... "columns@Q2",
... "columns@Q3",
... ...
... ]
... }
... }
Dimensions¶
Reading:
>>> from quantipy.core.tools.dp.io import read_dimensions
>>> meta, data = read_dimensions(path_mdd, path_ddf)
Decipher¶
Reading:
>>> from quantipy.core.tools.dp.io import read_decipher
>>> meta, data = read_decipher(path_json, path_txt)
Ascribe¶
Reading:
>>> from quantipy.core.tools.dp.io import read_ascribe
>>> meta, data = read_ascribe(path_xml, path_txt)


Data transfer
Cheat Codes - No Promises
Matthew Downs
Nicki Minaj - Superbass
Jeet Das
Twenty One Pilots - Car Radio
Matthew Downs
Items in queue: 7
^
123abc


RuuviTracker
Map
Trackers
Help
Select trackers you want to follow or
create your own
.
Tracker
Code
Activity
Hunting party
3929320021


class: top, left, inverse, title-slide # Education & Globalization ## Session 15 ### Dr. Zhou Yisu 周憶粟 ### 2018/10/11 --- # Negative global flows ## Aims To examine "negative globalization" To consider the impact of these flows on individuals & the planet --- ## Negative globalization Globalization facilitates the flow of many negatives across borders at great speed Common examples include: - Dangerous imports - Borderless diseases - Crime - Terrorism - War Involves .violet[flows], .violet[processes], and .violet[structures] (sometimes __intended__, often __unintended__) --- ### Borderless diseases Diseases crossing borders is not new, but the .violet[speed] and .violet[extent] are in current age This is particularly affected by the increased movement of people throughout the world (global people flows) .orange[Uneveness:] Less-developed nations are more likely to suffer and least likely to have access to medications and health care (also true for some poor within rich nations) -- ### Examples .orange[HIV/AIDS] - Particularly devastating in Africa - As with other diseases, the necessary medications available in the North are less accessible in South (i.e. price) .orange[Flu ] – Number of pandemics, latest bird flu (H7N9) .orange[Ebola virus] – high death rate, impact usually limited by rapid global response --- .pull-left[ ### Crimes Globalization linked to an increase in .violet[magnitude] and .violet[value] of cross-border crime Can include: .green[drugs], .green[money], .green[victims], .green[criminals], .green[stolen] and .green[illegal goods] Global attention to this flow has also increased Decreasing power of nation state makes barriers to such flows more difficult State does retain 保留 power to _define_ what is illegal – with some states able to impose their norms on other parts of the world ] -- .pull-right[ ### Terrorism .green[Actions that cause death, serious bodily harm, and serious damage to public or private property, places, facilities, or other systems] Closely related to crime, e.g. financially Stateless terrorism, e.g. al-Qaeda 基地/蓋達 State-sponsored terrorism Global aspirations and reach via technologies Counter-reaction increasingly global Tactics raise human rights issues: e.g. drone 無人機 ] --- ![:wscale 80%](https://www.scmp.com/sites/default/files/2014/03/04/10bedf3aa5bcbf2c0a525db2e4cf62ec.jpg) .footnote[Source: https://www.scmp.com/business/money/article/1440524/money-laundering-huge-hong-kong-and-macau-crime-survey] --- ## But let's look at a more mundane issue today .pull-left[  ] .pull-right[  ] --- .pull-left[  ] .pull-right[  ] --- .pull-left[  ] .pull-right[  ] --- background-image: url(https://theinitium.com/project/20160825-taiwan-fisheries-web/static/media/south_pole_pic1.51952976.jpg) background-size: contain ## .violet[Antarctic krill 南極磷蝦] --- class: middle, center background-image: url("./pic/antarctic.png") background-size: cover ## 「靠山吃山，靠海吃海」 ## If you live on a mountain , you live off the mountain ; if you live by the water , you live off the water -- # But you cannot find Antarctic krills 南極磷蝦 in any regular water --- background-image: url(https://theinitium.com/project/20160825-taiwan-fisheries-web/static/media/south_pole_pic2.75eaa43d.png) background-size: contain --- ## .red[Technology] intensive & .red[Capital] intensive Distant fishing uses highly specialized vessels: - powerful - fast - wind-resist - work in icy environment - Very few countries can actually build this type of ship -- >明開輪，總噸位7765噸，總長120.7米、船寬19米、型深12.22米、主機功率5300千瓦，日加工能力200噸。1993年由德國製造，在2013年仍保有的紀錄是亞洲最大的拖網漁船。以中國十大漁船標準化型號中的「41.38米鋼質拖網漁船」——長度41.38米，寬度7.2米，型深4.0米，排水量600噸——做為參照。明開輪的排水量是標準化拖網漁船的13倍，遑論外型尺寸的差距。明開輪有足夠的抗風浪能力，處在10級別風浪下，仍然能逆風作業，並且破冰能力強。」 --- ### Is it profitable? Some are ![:wscale 45%](https://theinitium.com/project/20160825-taiwan-fisheries-web/static/media/baichang.27bdd751.png) ![:wscale 45%](https://theinitium.com/project/20160825-taiwan-fisheries-web/static/media/lingxia.ef7a5976.png) ![:wscale 45%](https://theinitium.com/project/20160825-taiwan-fisheries-web/static/media/mingxia.3886327e.png) ![:wscale 45%](https://theinitium.com/project/20160825-taiwan-fisheries-web/static/media/youyu.aea51c1a.png) --- ## .orange[Others are questionable] ![:wscale 80%](./pic/antarctic2.png) --- ## China's distant fishing is heavily relying on policy .violet[Background:] Near-sea fishing resources nearly depleted in recent years. National level policy therefore "encourages" Chinese fisherman go abroad. -- Because the cost of distant-water fishing is very high, many companies found it hard to make a profit, unless: >.green[Original:]「柴油補貼意味著你走多遠，就補貼多少，一路走一路補。」 >.green[Translation:] Diesel subsidy means no matter far your ship goes, the subsidy follows it. -- The kind of policy that encourages seaman to go afar. --- class: inverse ### China's fast growth in fishing output is a combination of market demand and policy stimulation ![:wscale 80%](https://theinitium.com/project/20160825-taiwan-fisheries-web/static/media/intro_pic2.c16a8ec8.png) --- ## Fishing is also labor intensive 勞動力密集 Due to the harsh working conditions, many of the labors working in the industry are .orange[_forced_] ![:wscale 48%](https://theinitium.com/project/20160825-taiwan-fisheries-web/static/media/guandao_pic2.7b530dcb.jpg) ![:wscale 48%](https://theinitium.com/project/20160825-taiwan-fisheries-web/static/media/hualian_pic6.c891bdd4.jpg) .footnote[Image credit: https://theinitium.com/project/20160825-taiwan-fisheries-web/] --- ### .red[Negative flows]: More than 40,000 Indonesia labor working on Taiwannese fleets in the fishing industry https://www.twreporter.org/a/far-sea-fishing-tempo-report ![:wscale 90%](https://www.twreporter.org/images/20170110173204-1286cafbe309c3ac5917feaa6c833bc4-tablet.jpg) --- ## .red[Structure]: Global fishing quota .green[The amount of fish each country could catch in the ocean every year is determined by quota, but more often countries go __over__ the quota limit.] ![:wscale 80%](https://media.treehugger.com/assets/images/2013/04/Fishing-map.jpg) .footnote[Source: https://onlinelibrary.wiley.com/doi/epdf/10.1111/faf.12032] --- ## .red[Barrier]: Pirates Negative flow: more pirates in western Africa & Indian ocean today. ![:wscale 65%](https://d32kak7w9u5ewj.cloudfront.net/media/image/2016/12/eed636b6f0474781a6a68566edefb81b.jpg) .footnote[Source: https://theinitium.com/article/20161209-taiwan-pirate1/] --- ### With an improved economy, more urban population, and endless appetite  --- class: middle ### Oceans are just as globalized as lands ### Governed by different set of rules but still competed among nation states -- # .brown[However, globalization in the oceans is much more difficult to "manage"] --- ## .red[Unintended consequences:] What are we really eating & drinking? Fish mistaking plastic debris in ocean for food, study finds ![:wscale 70%](https://i.guim.co.uk/img/media/ed0f2a7cab72c12383a464d1be889bd4b1921be0/0_0_5315_3189/master/5315.jpg?width=620&quality=45&auto=format&usm=12&fit=max&dpr=2&s=8dd1942fed2d628b8b46c3d974d23004) --- ## .red[Unintended consequence:] Microplastic pollution in oceans A plankton 浮游生物 has eaten a blue plastic fibre about 3mm long. Plankton support the entire marine food chain. ![:wscale 75%](https://i.guim.co.uk/img/media/f88f7882166ee14ea54ce6a3f451fe6e93a2866c/0_0_1240_692/master/1240.jpg?width=620&quality=45&auto=format&fit=max&dpr=2&s=42ae463d6d4f79e451695a6cb1bac750) --- ### Plastic fibres found in tap water around the world ![:wscale 75%](./pic/plastic2.png) --- Where do they coming from? According to the Guardian: ".green[A magnified image of clothing microfibres from washing machine effluent. One study found that a fleece jacket can shed as many as 250,000 fibres per wash.]" Water has no boarder ![](https://i.guim.co.uk/img/media/6b3a18be5d7a2e1dc22438573fd6c3b51b88a79a/0_35_800_480/master/800.jpg?width=620&quality=85&auto=format&fit=max&s=4cb62d40f433d99154480b5d4fde8950) .footnote[Source: https://www.theguardian.com/environment/2017/sep/06/plastic-fibres-found-tap-water-around-world-study-reveals] --- Much sea salt around the world is contaminated by tiny plastic ![](https://i.guim.co.uk/img/media/95d98128159a34d14a6f444b852e5a78d6379dc1/0_2651_4000_2400/master/4000.jpg?width=620&quality=45&auto=format&usm=12&fit=max&dpr=2&s=0ac59427b17ae2d12515efbe37dd0370) --- ## Impact of negative flows Every negative flow can and does affect the lives of individuals in profound ways, such as: - The insecurities and pain brought by ill-health - Endless extraction of natural resources leading to depletion - The daily exploitation of unprotected workers in global value chain -- __The human cost__: Globalization (or at least its negative elements) as "toxic" to individuals and their emotional lives -- Unlike other processes, negative flows due to globalization can be unintentional but its consequence can be deadly, uncontrollable, and global. Rational choices may have irrational consequences. --- ## .red[Summary] Negative globalization involves dangerous flows, processes, and structures Dangerous imports, diseases, crime, terrorism, and war can all flow through borders and most are doing so at __increased__ speed and volume Attempts to erect/maintain barriers can be hampered by the __declining power of nation-state__, but also involve __new technologies and alliances__ The direct effects of globalization on individuals should not be lost in studying at the global level --- ### What cost are we paying to satisfy our lives?  --- .pull-left[

“Small shark heads are set out to dry in Mauritania (shark fishing is illegal there). The fins are sent to China and the heads and meat are sold in Nigeria and Spain”@NatGeo @GeoSteinmetz #sharks #illegalfishing pic.twitter.com/AFHwUNwo4g
— Badar Salem (@BadarSalem) May 26, 2018
 ] -- .pull-right[ ## The Specter of nature never left us. ] --- ## Resources - 我們會吃光海洋嗎？從太平洋到西非，兩岸漁業全景調查 https://theinitium.com/project/20160825-taiwan-fisheries-web/ - Why plastics? https://www.theguardian.com/science/audio/2017/aug/30/plastics-a-villainous-material-or-a-victim-of-its-own-success-science-weekly-podcast - Plastic fibres found in tap water around the world, study reveals https://www.theguardian.com/environment/2017/sep/06/plastic-fibres-found-tap-water-around-world-study-reveals - Fish mistaking plastic debris in ocean for food, study finds https://www.theguardian.com/environment/2017/aug/16/fish-confusing-plastic-debris-in-ocean-for-food-study-finds - Sea salt around the world is contaminated by plastic, studies show https://www.theguardian.com/environment/2017/sep/08/sea-salt-around-world-contaminated-by-plastic-studies - How China Plans to Feed 1.4 Billion Growing Appetites https://www.nationalgeographic.com/magazine/2018/02/feeding-china-growing-appetite-food-industry-agriculture/ .footnote[The assets used in this session are all linked from the above-mentioned reporting. Copyright belongs to the original authors]


Data File
(account matched)
Id
Original Filename
Upload Timestamp
Status
Account Name
Account Type
Post Date
Amount
Check Number
Name
Memo
Save Matched Transactions
Post Date
Amount
Check Number
Name
Memo


Christmas Book Club
16th December | British Council
Welcome to introvert happy hour! Looking for a great book club read to round out your year, or some
great friends to celebrate Christmas with? Drop by the next Christmas Book Club meeting, and you just
might find both!


This project will always remain free and open, because this is what we believe in. All source code is available on
Bitbucket and you can use it any way you want. We provide an
API to access our
database for both research and fun, but we also provide the raw data we used for this service.


{include file="common/meta" /}
点击立即了解详情
{include file="common/menu" /} {include file="common/footer" /}


DfE enquiries
Central newsdesk 020 7783 8300
General enquiries 0370 000 2288
News story
Details on the latest figures showing how the academies programme is driving the improvement of many previously underperforming schools.
The secondary school performance tables show that standards are rising in sponsored academies at a record rate - and more than 5 times as quickly than in all state-funded schools.
Across all state-funded schools, the proportion of pupils who achieved at least 5 good GCSEs (including in English and maths) rose by 0.6 percentage points. In sponsored academies, the increase was 3.1 percentage points.
The change in the number of schools below the floor also illustrates how many heads and teachers - in all state-funded schools - are responding to the new firm but fair floor standards introduced by the government.
A school is below the floor if 40% of its pupils do not achieve at least five GCSEs at C or better including English and maths, and if pupils’ progress is not good enough in both those two subjects. Last year the floor standard was 35% in attainment, alongside the progress measures.
Overall 195 secondary schools are below the floor this year, 56 fewer than last year had the floor been the same (40%).
The statistics also demonstrate how sponsored academies increasingly turn to academic subjects once they have got pupils secure in the basics of English and maths.
There was a 6 percentage point increase (to 88%) in the proportion of sponsored academies offering the EBacc - the combination of core academic subjects most valued by universities and employers.
Across all state-funded schools, 16% of pupils achieved the EBacc, up almost one percentage point.
A DfE spokesman said:
These figures are further evidence of the great success of the Academies programme in turning around our weakest schools - sponsored academies are improving their GCSE results 5 times faster than other schools.
They reveal the amazing power of academy sponsors to turn around under-performing schools - often schools which have been persistently sub-standard.
This shows we are right to continue to support the sponsored Academies programme. These brilliant sponsors have a track record of arresting decline - and then reversing it.
Central newsdesk 020 7783 8300
General enquiries 0370 000 2288
Published: 24 January 2013
From: Department for Education Lord Nash
Part of: Academies and free schools


systemd-machine-id-setup - Initialize the machine ID in /etc/machine-id
systemd-machine-id-setup may be used by system installer tools to initialize the machine ID stored in /etc/machine-id at install time with a randomly generated ID. See machine-id(5) for more information about this file.
This tool will execute no operation if /etc/machine-id is already initialized.
If a valid D-Bus machine ID is already configured for the system, the D-Bus machine ID is copied and used to initialize the machine ID in /etc/machine-id.
If run inside a KVM virtual machine and a UUID is passed via the -uuid option, this UUID is used to initialize the machine ID instead of a randomly generated one. The caller must ensure that the UUID passed is sufficiently unique and is different for every booted instanced of the VM.
Similarly, if run inside a Linux container environment and a UUID is set for the container this is used to initialize the machine ID. For details see the documentation of the m[blue]Container Interfacem[]s-2u[1]ds+2.
The following options are understood:
--root=root
Takes a directory path as an argument. All paths will be prefixed with the given alternate root path, including config search paths.
-h, --help
Print a short help text and exit.
--version
Print a short version string and exit.
On success, 0 is returned, a non-zero failure code otherwise.
systemd(1), machine-id(5), dbus-uuidgen(1)
Container Interface
%http://www.freedesktop.org/wiki/Software/systemd/ContainerInterface


| DOSE: |
9.0 g |
oral |
Nutmeg |
(ground / crushed) |
I really never thought myself the type that would try odd bits and ends to get a 'legal' high before. But when you're in the middle of opiate withdrawal, you'll do about anything to get by. I read about Nutmeg online. I recalled hearing about it before, but had no idea how to prepare it, etc. After doing some reading, I was on my way! Off to the store, where I bought a cheap scale and the most expensive nutmeg they had (Expensive has to be better, right?). Scale: $7.99, Nutmeg: $8.99.
I run home and measure out the what seems to be guideline of 1g / 10 pounds of bodyweight (About 17 grams). Hey, that doesn't look like so much. No problem! Everybody says it tastes horrible, but I like horrible/strong tasting things, so I'm not too worried.
Other drugs taking: Paxil (SSRI), Multivitamin. Both early this morning.
First spoonful: I spoon a good sized helping into the back of my mouth and wash it down with soda. Hey, that's not so bad. I actually maybe even LIKE the taste!
Second spoonful: Little smaller spoonful this time. Wow! Do I ever like this stuff! I could eat this all night! (More soda)
Third spoonful: Okay, no I couldn't.  (Soda, soda)
Fifth spoonful: Why is there still so much to eat?!?!
I measure what's left. I apparently gulped down 7.5-10g (Like I said, cheap scale). Okay, that's enough. It's now 2:35pm. Time to wait. The research I've done indicates a VERY long time to wait. No problem. That's why I took it earlier in the day instead of at night. Ate around noon. Hanging out in my office to evade the wife. Good mindset, I'm looking at this with an open mind.
T+0:30 - Nothing. What I expected.
T+1:00 - Nothing. Nutmeg burps. Going to hurl.
T+1:30 - Nothing. Maybe I'll stop paying attention for awhile.
T+2:00 - MAYBE something, maybe placebo. Play some quidditch with wife.
T+2:30 - Feeling amiable and happy. Not like opiates, but not bad.
T+3:00 - Feeling something, just mellow. Nothing strong. I'm pleased at this point.
T+4:00 - Feeling more. I don't know what. Just a lot more mellow and relaxed. Tired. Very tired. It's what I expected benzo's to be like. In reality they just knock me out cold.
T+5:00 - Okay, am I peaking? Feeling odd. Having a hard time concentrating, following basic conversations, etc. Still nothing too major.
T+6:00 - Wow, I'm feeling it now. Feels like I took a couple of hits of a decent bong. No visuals or anything. Just feeling nice.
T+7:00 - Okay, STILL going up.  I read some trip reports, somebody says it peaks between 9 and 12 hours. 9 AND 12 HOURS?!?! Oh great.
T+8:00 - I'm really really stoned now. I usually don't like smoking too much pot, makes me sluggish, etc. I feel like I'm on the borderline. If I had to get up (I'm in bed) My wife would know something was up.
T+8:30 - I make my way to the bathroom. SOOOO thirsty. Dry mouth, really bad. My eyes are SO red. I might have well as smoked more than a few hits of good weed for how I feel.
T+9:00 - Okay, that's enough now. Please stop coming. I want to sleep and I can't. I just lay there, now I'm twitching periodically. I have a full body buzzing, very strong.
T+12:00 - I must have fallen asleep finally. I'm still out of my mind.
T+15:00 - Okay, coming down I think.
T+17:00 - I'm still stoned, but nowhere near as bad. I can function.
T+24:00 - Just tired and mellow, that's about it.
At every single step of the high, I hit a plateau for several minutes, so I thought I peaked. I really don't think I'd want more. But at the same time, I didn't have ANY visuals, ANY cool lucid dreamy stuff. Just a really really heavy, dirty body stone. Didn't make me creative or lucid or anything like weed usually does. Keep in mind though, my Paxil may be a factor. I got really mellow and tired, but I was really paranoid the whole time, maybe because I was doing it around my wife secretively, periodically nauseous, and had to fight off minor panic attacks from time to time. Not only did it take FOREVER to come on, it took forever to go away.
If I do it again, which I very well might, I'd mix it in a shake or something or find some way to encapsulate it and do it with a friend. I was very happy to find that there's a relatively easy, cheap, legal high that actually works!
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Title: Enemy of the State
Review by Arnold Kim
It seems privacy can often be at a premium these days. a person's credit and their purchasing history can be found on the computer. Bugs and cameras have been shrunk down to the microscopic level. The private life of the president is now a national issue. "Enemy of the State", directed by Tony Scott, takes advantage of this paranoia, and runs with it.
Will Smith, in what is his first true starring role, plays the role of Robert Dean, a young Washingto DC lawyer who is slipped a videotape of the assasination of congressman, and other government members implicated in the video attempt to track him down and capture him. All this is done via the technology of a national security agency.
Thsi film successfully preys on the idea that someone, somewhere, is watching our every move. It could be from some hidden camera in the wall, or a bug planted in the heels of our shoes. No matter where you run, we'll always know where you are. The predator knows exactly where the prey is going to move, and this sort of suspense done at a breakneck speed creates some fairly pulse-pounding moments.
"Enemy" features probably as quality a cast as an action film can get. Will Smith is fine as Dean, occasionally showing some of the comic wit he has, as well as pulling off the innocent everyman role effectively. Gene Hackman plays the former security agent who helps Dean out in his flee from his hunters. He's not the cookie cutter expert-who-bails-out-the-hero type character seen in films- he is portrayed with the appropriate conviction. Also commendable is Jon Voigt as the politician implicated in the video, as cold as a member of Congress can get.
The only major problem I found with the film is that it does tend to drag on a bit later on and found myself getting a bit bored at about the last half hour or so. Some of the time perhaps could have been better spent rejuvenating the plot a little. An extra plot twist couldn't have hurt the film, since it for the most part runs in one direction the whole way.
For the most part, however, the film is exciting and breathless, and much of the chase was suspense at 100 mph, and that overcomes the occasionally lagging plot. Solid performances, an intruiging and relatively original idea, and execution of that idea at high speeds make for a quality action film that can even make you think once in a while about being watched. On a scale of 1 to 10, I give it a solid 7.
Lets hope this review isn't secretly monitored...
Arnold Kim
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


Buffalo hosts Minnesota in non-conference battle
by Associated PressMinnesota Wild (7-11-2, seventh in the Central Division) vs. Buffalo Sabres (10-7-3, fourth in the Atlantic Division)
Buffalo, New York; Tuesday, 7 p.m. EST
BOTTOM LINE: Buffalo hosts Minnesota in a non-conference matchup.
The Sabres are 6-2-2 at home. Buffalo has converted on 21.5% of power-play opportunities, recording 14 power-play goals.
The Wild are 3-10-0 on the road. Minnesota has given up 10 power-play goals, killing 83.6% of opponent chances.
The matchup Tuesday is the first meeting of the season between the two teams.
TOP PERFORMERS: Jack Eichel leads the Sabres with 13 goals, adding 11 assists and totaling 24 points. Sam Reinhart has four goals and five assists over the last 10 games for Buffalo.
Eric Staal leads the Wild with six goals and has recorded 14 points. Jason Zucker has totaled two goals and six assists over the last 10 games for Minnesota.
LAST 10 GAMES: Wild: 4-4-2, averaging 3.2 goals, 5.2 assists, 3.6 penalties and 9.4 penalty minutes while allowing 3.1 goals per game with a .900 save percentage.
Sabres: 2-6-2, averaging 2.1 goals, 3.1 assists, 3.5 penalties and 8.9 penalty minutes while giving up 3.4 goals per game with a .893 save percentage.
Sabres Injuries: Kyle Okposo: day to day (upper body).
Wild Injuries: Marcus Foligno: out (lower body).
___
The Associated Press created this story using technology provided by Data Skrive and data from Sportradar.


Mechanisms of forced tropical meridional energy flux change
Hollywood-style logline
When Hadley cell energy transports start changing, the mass overturning rate takes the rap…unless the Hadley cell gross moist stability has its say.
Science Summary
Human emissions of greenhouse gases and aerosols alter both the global mean and spatial pattern of surface temperatures — both in the annual mean and throughout the seasonal cycle. Whereas greenhouse gases induce mean warming that tends to be polar amplified, aerosols cool the globe and, being emitted primarily in the northern hemisphere mid-latitudes, cool the northern hemisphere relative to the south. How will atmospheric circulation and precipitation patterns respond to these changes?
It is commonly argued that the hemispherically-asymmetric aerosol forcing pushes the ITCZ toward the southern hemisphere, as part of a strengthening of northward energy transport by the Hadley Cells that acts to counter the aerosol cooling concentrated in the northern hemisphere. However, the energy transports also depend on the “gross moist stability”, i.e. how much energy is transported per unit of mass overturning.
In Hill et al. 2015, we use an atmospheric climate model forced by different ocean surface temperature patterns to investigate the resulting energy transport changes. In so doing, we create a new approximation for the change in the gross moist stability of the Hadley cells, based on the change in the meridional (north-south) gradient in ocean surface temperatures. The simulations confirm that, particularly when there is an appreciable spatial pattern to the ocean surface warming, the gross moist stability change can actually be an even larger contributor to anomalous energy transports than are changes in the overturning circulation strength. However, the closer one gets to the ITCZ, the less effective this stability-based mechanism is, which we argue helps explain why the ITCZ position is tightly linked to local anomalous energy fluxes.
Change in gross moist stability, our scaling vs. actual GCM result.
Behind the scenes
This project grew out of my work for my general exam.
Bonus footage
- May 2020:


Very runny yolk
6 minutes
Medium runny yolk
7 minutes
Almost firm yolk
9 minutes
Totally firm yolk
12 minutes


Hi, I'm a web app developer currently getting my Master's degree from Cal State LA. I'm seeking opportunity to work as a Software Developer to contribute in the design and development of real-time applications by making optimal use of the skills I've gained from my personal and academic projects. I'm currently working my way through React by building my own projects, and I think React is fascinating!
Besides writing code, I love to read and collect comicbooks, watch psychological thrillers and spend a lot of time on Reddit. I'm also into Street Photography.
I like to consider myself a pop-culture aficionado.


| [[ Home | Forums | 3D Engines Database | Articles/Tutorials | Game Dev Jobs | IRC Chat Network | Contact Us ]] |
| 03-27-2011, 02:00 AM | #1 |
|
New Member
Join Date: Feb 2011
Location: Easton, PA
Posts: 0
|
Description As a personal project to see how using a modeling engine in the real world would feel, i used Blender game engine [Blender.org] in order to accieve the model o the rubber track as seen in the photo. To create the initial shape of the track, i used some of blenders extruding tools to create half of the track, then using a modifier i was able to add the other half onto the model. after some cleaning up and joining the two halvs, i had the basic shape of the track. but i still had to add the tread pattern and the track guide nubbs on the inside of the track. For the pattern i created two seperate models, the first was the larger, rectangular pad; and the other was the small pad connecting bar. after creating eachindividual element, i copied the pad and placed then around the perimiter of the track; after that i selected the pads i just added, and copied them again in order to accieve the symmetry for both sides. For each of the pads, because they are big enough to have the curve of the track effect their shape, i had to combine them with a lattice modifer in order to accieve the slight curve that would make them look like the were made of the same material as the track. Then finally i was able to add in the pad connecter bars alternating between each pad, this is actually the part of the track that the sprockets will grab onto. allowing the mahine to move forward without slipping. then at last came the part that left me dumbfounded. how to add in the nubbs to the inside of the track, without making the track look fake due to inconsistancy in the angles that the nubbs have when they are coming off the inside rubber. this is because a track is usually made of rubber, and as a modeler, it can be difficult to accieve a sence of tension and compression of materials and compensate for them. So after several hors of experimenting with modifiers, i found that the best way of getting this result was to do the same process as used with the pads... Copy and Paste, then modify. after the model was finished, i added in the forground of concrete, added some lights and a camera then rendered the picture. What came out of the renderer ws great, but not good enough to be considered perfect. Utelizinf Freeware known as GIMP, i added in the background blur to eliminate repetitive textures and give a sence of emptieness, after that i added in the text in order to comlete the peice. Viola! you have a finished photo worthy of a buisness card! |
| 03-27-2011, 04:10 AM | #2 |
|
Senior Member
Join Date: Mar 2006
Location: perth
Posts: 1,776
|
Re: Rubber Track
nice render.
___________________________________________
goto www.myspace.com/bluckus1 put a smile on your dial |
| 03-27-2011, 09:34 AM | #3 |
|
Senior Member
Join Date: Oct 2007
Posts: 873
|
Re: Rubber Track
Nice job. I use Blender also, but I don't have quite the patience. I manage to get some low poly models out for my games and that's about it.
___________________________________________
http://fireside7games.com/ |
| 03-27-2011, 11:44 AM | #4 |
|
DevMaster Staff
Join Date: Oct 2004
Location: Seattle, WA
Posts: 4,375
|
Re: Rubber Track
It looks cool, but IMHO the material on the track is too dark. I can hardly see any of the modeling details you explained at length in your post! Also, instead of blurring the background in 2D with GIMP, did you think of adding some DOF blur to the scene via the 3D renderer? That can look nicer.
___________________________________________
Currently working at Sucker Punch reedbeta.com - OpenGL demos and other projects |
| 03-28-2011, 07:47 AM | #5 |
|
Senior Member
Join Date: Sep 2005
Location: Jönköping, Sweden
Posts: 706
|
Re: Rubber Track
What Reed said.
Also, the "concrete" is reflective, like a highly polished marble floor.
___________________________________________
Topmost webbyrå i Jönköping - webbutveckling & design |
| 03-28-2011, 07:52 PM | #6 | |
|
Senior Member
Join Date: Aug 2004
Location: Thornhill, ON
Posts: 1,159
|
Re: Rubber Track
Advert needs more buzzwords like "Unparalleled Performance", "World Leader", and my personal fav "Satisfaction Guaranteed"
If you're interested in doing some pro work with Blender, check out the tutorials by Andrew Price. In particular, you will learn how to use composition nodes to do effects such as depth of field in Blender without the need for Gimp. Quote:
___________________________________________
http://www.nutty.ca - Being a nut has its advantages. |
|


Nomination for {{ nomination.name }} in {{ nomination.election.name }} Election
- Name: {{ nomination.name }}
- Employer: {{ nomination.employer }}
- Other Affiliations: {{ nomination.other_affiliations }}
- Previous Board Service: {{ nomination.previous_board_service }}
- Nominated By: {{ nomination.nominator.first_name }} {{ nomination.nominator.last_name }}
{% if nomination.nominee.user == request.user %}
- Accepted: {{ nomination.accepted }}
{% endif %}
Nomination Statement
{{ nomination.nomination_statement.rendered|safe }}
{% endblock content %}


Why expend the effort to create a new driver? Why not use the effort to improve the MongoDB Inc. supported (legacy) Java driver? Those are very good questions. To get to the answer we have to look at the very core of the legacy driver's processing model.
The legacy driver maintains a set of open connections and when a processing thread sends a request the following actions are performed:
This synchronous checkout/request/response/checkin means that each request must wait for the complete round trip time for the request, processing and response. For many applications the latency induced can be simply overcome by using more connections. For either highly distributed or high performance applications the connection explosion that occurs induces performance and scheduler issues on the MongoDB servers that limits the utility of this approach.
Rather than try to force a more asynchronous model on the MongoDB Inc. driver the MongoDB Asynchronous Java Driver instead creates a completely new driver that at its very core is asynchronous. The interface to the driver still provides synchronous methods but they are implemented using the asynchronous variants of the methods.
Most users will interact with the driver via the three primary interfaces: {@link com.allanbank.mongodb.MongoClient}, {@link com.allanbank.mongodb.MongoDatabase} and {@link com.allanbank.mongodb.MongoCollection}. Interfaces are provided to allow easier mocking in client tests. The implementation of the MongoClient interface is created via the {@link com.allanbank.mongodb.MongoFactory}.
A strongly typed, immutable BSON library is provided via the com.allanbank.mongodb.bson package. It provides the building blocks for BSON documents sent to and retrieved from MongoDB.
For a more information see the projects main website and Getting Started Guide.


I am a full stack web developer and graduate of General Assembly's Web Development Immersive course with a fondness for a good challenge. I always strive to hone my skills in all aspects of my life. Whether it be dog training, music, or coding, I push myself to become stronger and more versatile in each skill set. I spent the last nine years moving around the Northeastern U.S. studying a variety of fields like music, marketing, and accounting at several different schools.
I loved the problem solving involved in accounting, but I fell in love with programming. There are always new challenges to take on, and the possibilities are limitless. Software development gives me the opportunity to continue learning beyond my education and throughout my professional career.
JavaScript | React | Redux | Node.js | MongoDB | Express.js | CSS3 | HTML5 | Ruby on Rails | PostgreSQL | TypeScript | Firebase | Cron | OAuth(2) | Webpack | yarn | git | Heroku | Python/Django | SCSS
Communicative | Empathetic | Team Oriented | Self-starting | Resourceful | Adaptive | Supportive
Remote Cafe is an application designed to help students and professionals find a cafe or similar venue that provides the ideal environment in which to study or work on a project. It was built with PostgreSQL and Ruby on Rails on the back end and JavaScript, Bootstrap, jQuery, and Handlebars on the front end. I learned a lot about Ruby on Rails and SQL because of this project. I learned about how to explicitly define what data is expected in the back end and how to pass that data from the front end. I successfully created an active join table where users can post and delete references to records, and I created a case insensitve search-by-name method. This project is currently a work in progress, but feel free to click the image and visit!
CloseSpiritBinder is an application that simplifies the process of choosing a gift for a connoisseur. It was built using Ruby on Rails and PostgreSQL on the back end and JavaScript and jQuery on the front end. I learned how to create a case insensitive search-by-name method and broadened my use of jQuery and JavaScript built-ins with this project. Click the image to visit!
Close ProjectNozama is an eCommerce site built using Express, MongoDB, Mongoose, and Stripe on the back end and Bootstrap, Handlebars, and jQuery on the front end. Integrating Stripe with this application was challenging. I learned so much about working with multiple code bases (ours and stripe's) and we even added some security features to our own checkout logic. This project was team effort, and I am greatful to have been a part of it. Click the image to visit!
NOTE: To sample our Stripe checkout, use this card number: 4242 4242 4242 4242. Any three digit security code, future data, and any five digit zip code will work.
Stay Fresh is a tool used to prevent food waste. It uses node-cron to send scheduled emails to the user each week showing which items are approaching their expiration dates. I chose SendGrid as the email service provider. I also implemented Google OAuth2 for authentication so a valid gmail account is required to use Stay Fresh. I made this decision because the purpose of this application is to contact the user in real time, and this authentication process provides Stay Fresh with an email address that is guaranteed to work from the start. The front end was built with React and uses Redux for state management, and the back end is built with Express and Mongoose and uses MongoDB. I am still building this, but feel free to check out what I've done so far by clicking on the image. You can also click here for the github repository.
CloseThis application was for a course taught by Maximilian Schwarzmüller of Academind. Users can go through the authentication flow, add and remove ingredients to their burger, submit an order, and view their order history. It was built with React and Redux on the front end and is hosted and powered by Firebase. Click here or the image above to check out the deployed project.
CloseThis application was for a course taught by Stephen Grider. It is a React/Redux application that runs on an Express.js server and is persisted by MongoDB. It includes features such as Google oAuth for authentication, SendGrid as an email service, and Stripe as a payment processor. It is hosted entirely on heroku, but feel free to take a look at the source code on github.
For Checkout - card#: 4242 4242 4242 4242, exp: any future date, CVC: any three digits
Close


This is a paragraph. Paragraphs must be wrapped inside an opening and closing "p" tag.
HTML tags must be properly nested.
This isa paragraph with line breaks
This text is strong
This text is emphasized
This is subscript and superscript


Designing stored procedures and queries in backend that deliver solutions based on business requirements.
Developing APIs in C# that delivers the data sourced from SQL database to the web clients.
Telling stories and deriving insights by preprocessing and analysing raw quantified chunks of data.
Treating ML models more than just a blackbox, as I am curious to learn the math behind it to better understand its intricacies.
Hosting and maintaining sites and database over firebase and expanding my horizon by working with different cloud architecture.
Automating certain redundant tasks and developing scripts to analyse server metrics and send out alerts respectively.


|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object net.threebit.jvr.JVRBaseClass net.threebit.jvr.JVRMetaEventListener net.threebit.jvr.util.ImmediateCAP
Use this class to begin immediate Call Progress and Analysis on a voice resource by dialing an empty string with CAP enabled. Usefull as a followup to ISDNOutbound to determine what type of connection was made.
| Field Summary | |
private DX_CAP |
cap
DX_CAP settings used during dialing. |
boolean |
connected
|
long |
connType
type of connection. |
long |
cpTerm
dx.dial termination cause. |
private int |
dxDev
Voice resource. |
private java.lang.Throwable |
failureException
Saved exception if one happens during dialing. |
boolean |
finished
Set to true when this class is finished handling requests. |
boolean |
jumpToPamdDelay
When true at start time, we have been asked to just wait for the pamd silence to elapse. |
private boolean |
notReady
Set to true until this class is ready to start processing. |
private int |
pamdDelay
Milliseconds of silence after dx.dial() returns CON_PAMD. |
private long |
pamdDelayStarted
|
private boolean |
silon
True when silence is on. |
private long |
siltime
Time when silence started. |
boolean |
stopped
|
| Fields inherited from class net.threebit.jvr.JVRBaseClass |
logger |
| Constructor Summary | |
ImmediateCAP(int dxDev,
DX_CAP cap,
int pamdDelay)
|
| Method Summary | |
void |
finished()
Called when the class decides that it is no longer responsible for the line device and/or call reference number. |
boolean |
handleEvent(MetaEvent e)
Handler for events on the linedev. |
void |
start()
After initialization, call this method to start dialing/cap. |
private void |
startPamdDelayThread()
|
java.lang.String |
toString()
|
| Methods inherited from class net.threebit.jvr.JVRMetaEventListener |
handleEvent |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
public boolean connected
public boolean jumpToPamdDelay
private int dxDev
private DX_CAP cap
private boolean notReady
public boolean finished
public boolean stopped
private java.lang.Throwable failureException
public long cpTerm
public long connType
private int pamdDelay
private long pamdDelayStarted
private boolean silon
private long siltime
| Constructor Detail |
public ImmediateCAP(int dxDev, DX_CAP cap, int pamdDelay)
dxDev
- The voice resource to use for call analysis.cap
- Call Analysis parameters to pass to dx.dial(int, java.lang.String, net.threebit.jvr.DX_CAP, int)
.pamdDelay
- If PAMD is detected, this class will wait until
this many milliseconds of silence has happenen before reporting
PAMD. Ie: wait for the answering machine message to finish
playing.| Method Detail |
public void start() throws JVRException
JVRException
private void startPamdDelayThread() throws JVRException
JVRException
public boolean handleEvent(MetaEvent e) throws JVRException
start()
method is called.
handleEvent
in interface MetaEventListener
handleEvent
in class JVRMetaEventListener
JVRException
public void finished() throws JVRException
JVRException
public java.lang.String toString()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


THE INDIAN IN THE CUPBOARD A film review by James Berardinelli Copyright 1995 James Berardinelli
RATING (0 TO 10): 8.0
United States, 1995 U.S. Availability: general release 7/14/95 Running Length: 1:37 MPAA Classification: PG (Mild violence) Theatrical Aspect Ratio: 1.85:1
Cast: Hal Scardino, Litefoot, Lindsay Crouse, Richard Jenkins, Rishi Bhat, David Keith Director: Frank Oz Producers: Kathleen Kennedy, Frank Marshall, and Jane Startz Screenplay: Melissa Mathison based on the book by Lynne Reid Banks Cinematography: Russell Carpenter Music: Randy Edelman U.S. Distributor: Paramount Pictures
Without exception, THE INDIAN IN THE CUPBOARD is the best family film to come along thus far in 1995, topping such notables as POCAHONTAS and THE LITTLE PRINCESS. Based on the popular book by Lynne Reid Banks and scripted by ET writer Melissa Mathison, the movie teaches lessons without preaching, and focuses on the magic of relationships rather than that of special effects. This leads to a production as affecting for adults as for children.
Omri, played with charm and enthusiasm by Hal Scardino, is an average nine-year old with a very unusual cupboard in his room. Whenever he places a figurine in it, turns the key in the lock, then opens the door, a living, breathing, four-inch high creature emerges. Omri's first transformation is the Onondaga warrior Little Bear (Litefoot), whose reaction upon seeing the "giant" boy is a mixture of awe and fear. Gradually, however, Little Bear realizes that his caretaker is no god, and Omri learns that his newfound friend is a human being, not just a plaything.
As THE INDIAN IN THE CUPBOARD progresses, other things get animated, including a cranky Texas cowboy (David Keith), a wartime British medic, Darth Vader, and Robocop. The visual effects that mix four-foot actors with their miniature companions are effective, but not ostentatious, and the lack of flash keeps the focus on the characters and their story. Suspension of disbelief in THE INDIAN IN THE CUPBOARD is surprisingly easy.
This film is about friendships, responsibility, and ethics. The bond between Omri and Little Bear illustrates that, regardless of size, shape, or race, any friendship is a rare and special thing. Thirteen years ago, ET taught the same lesson to that summer's movie audiences. THE INDIAN IN THE CUPBOARD also enforces the truth that everyone -- even a child -- must be responsible for his or her actions. When Omri begins capriciously to give life to figurines, Little Bear reprimands him: "You should not use magic that you do not understand." This prefaces a tragic epiphany for the young boy.
Frank Oz, a director who always seeks original and challenging projects (one of his past successes was LITTLE SHOP OF HORRORS), brings an uplifting sense of fun to this film. THE INDIAN IN THE CUPBOARD moves along at a nearly-perfect pace: slowly enough to capture the nuances of the characters' relationships, but quickly enough to avoid stagnation. Hopefully, the double-edged classification of being a "family feature" will not destroy THE INDIAN IN THE CUPBOARD's chances at the box office. It deserves a better fate than that normally reserved for similar fare because, ultimately, this movie is not only about magic -- it is magical.
- James Berardinelli<EMAIL_ADDRESS>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


We exchange content!
- unleash proactive schemas
- reintermediate frictionless portals
- engineer dot-com metrics
- expedite sticky models
- facilitate synergistic content
- unleash cutting-edge bandwidth
- generate open-source relationships
- extend best-of-breed architectures
- incubate magnetic schemas
- synergize distributed functionalities
- morph one-to-one e-markets
- transform seamless content
- integrate synergistic architectures
- syndicate revolutionary portals
- embrace front-end channels


{% extends "drawquest/dqbase.html" %} {% block viewport_meta %} {% endblock %} {% block extra_css %} {% endblock %} {% block body %}
Your password has been set. You may go ahead and log in now in the DrawQuest app.


File uploaded successfully.
Calculating......
We will redirect you to the page once your result is ready.
Developed by Summer Ai, Runting Shao, Ningji Shen, Chang Xu and Zihui Zhang at the University of Washington.
All Rights Reserved.


Home
Team
GittyUp
Mission
Help Austinites take the leap into becoming Full Stack Developers
with support from the Austin software developer community.
Fatma Tarlaci
Routes
Database Content
Javascript Functions & Logic
Heroku Deployment
Biz Concept
Booth Kittson
Sequelize(King & Queen)
Database Seeding
Javascript match functions
Heroku Deployment
Biz Concept
Philip Cooke
Project Manager
Sequelize
Routes
Handlebars
Biz Concept
Peter Guerrero
HTML
CSS
Materialize
Routes
Biz Concept


EQ Bank completes cloud-based Temenos core banking project
by Alex HamiltonEQ Bank, the direct banking subsidiary of Canada’s Equitable Bank, has completed the move of its Temenos core banking system into the cloud.
The digital bank utilises Microsoft’s Azure cloud platform, using software hosted by HP. The initial implementation of Temenos’ T24 system was completed in 18 months.
“Moving the EQ Bank core banking system to the cloud is an industry-leading change toward a new future of financial services,” says Dan Dickinson, senior vice president and CIO of Equitable Bank.
“As we’ve always done with EQ Bank, we’re delivering better, safer, easier and more intuitive ways to bank in Canada. We are leaving behind the traditional industry approaches of armchair technologies to innovate faster and serve Canadians better, right now.”
Max Chuard, CEO at Temenos, adds: “We see strong momentum in digital transformation with North American banks and we are proud to partner with EQ Bank, one of the most innovative banks in Canada.”
“With our cloud-native, cloud-agnostic and advanced open API technology we are future-proofing EQ Bank’s IT architecture and enabling the bank to drastically reduce IT operational costs and transformation time.”
Launched in January 2016, EQ Bank’s primary product consists of a high interest and no-fee savings account. It reported $2 billion in deposits and 60,000 customers in 2018, and now claims to have passed the $2.5 billion mark.
Read more: Challenger Banks in Canada: who’s who and what’s their tech?


Welcome
Step 1: download the app
Click on the button bellow to open the App Store and download the app. When the app is installed on your phone, just click NEXT.
next


Connect JIFF
Computation ID
Party Count
Connect
Graph Union under MPC
Enter an adjacency matrix of a graph. Parties anonomously add each of their known edges to a master graph and reveal this union.
[ [0, 1, 1, 0, 0, 0], [1, 0, 1, 0, 0, 0], [1, 1, 0, 1, 0, 0], [0, 0, 1, 0, 1, 0], [0, 0, 0, 1, 0, 1], [0, 0, 0, 0, 1, 0] ]
Submit


This article is a continuation of WebGL orthographic 3D. If you haven't read that I suggest you start there. You should also be aware of how textures and texture coordinates work please read WebGL 3D textures.
To implement most games in 2D requires just a single function to draw an image. Sure some 2d games do fancy thing with lines etc but if you only have a way to draw a 2D image on the screen you can pretty much make most 2d games.
The Canvas 2D api has very flexible function for drawing image called
drawImage
. It has 3 versions
ctx.drawImage(image, dstX, dstY);
ctx.drawImage(image, dstX, dstY, dstWidth, dstHeight);
ctx.drawImage(image, srcX, srcY, srcWidth, srcHeight,
dstX, dstY, dstWidth, dstHeight);
Given everything you've learned so far how would you implement this in WebGL? Your first solution might be to generate vertices like some of the first articles on this site did. Sending vertices to the GPU is generally a slow operation (although there are cases where it will be faster).
This is where the whole point of WebGL comes into play. It's all about creatively writing a shader and then creatively using that shader to solve your problem.
Let's start with the first version
ctx.drawImage(image, x, y);
It draws an image at location x, y
the same size as the image. To make
a similar WebGL based funciton we could upload vertices that for x, y
,
x + width, y
, x, y + height
, and x + width, y + height
then as we
draw different images at different locations we'd generate different sets
of vertices.
A far more common way though is just to use a unit quad. We upload a single square 1 unit big. We then use matrix math to scale and translate that unit quad so that it ends up being at the desired place.
Here's the code.
First we need a simple vertex shader
attribute vec4 a_position;
attribute vec2 a_texcoord;
uniform mat4 u_matrix;
varying vec2 v_texcoord;
void main() {
gl_Position = u_matrix * a_position;
v_texcoord = a_texcoord;
}
And a simple fragment shader
precision mediump float;
varying vec2 v_texcoord;
uniform sampler2D u_texture;
void main() {
gl_FragColor = texture2D(u_texture, v_texcoord);
}
And now the function
// Unlike images, textures do not have a width and height associated
// with them so we'll pass in the width and height of the texture
function drawImage(tex, texWidth, texHeight, dstX, dstY) {
gl.bindTexture(gl.TEXTURE_2D, tex);
// Tell WebGL to use our shader program pair
gl.useProgram(program);
// Setup the attributes to pull data from our buffers
gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer);
gl.enableVertexAttribArray(positionLocation);
gl.vertexAttribPointer(positionLocation, 2, gl.FLOAT, false, 0, 0);
gl.bindBuffer(gl.ARRAY_BUFFER, colorBuffer);
gl.enableVertexAttribArray(texcoordLocation);
gl.vertexAttribPointer(texcoordLocation, 2, gl.FLOAT, false, 0, 0);
// this matirx will convert from pixels to clip space
var matrix = m4.orthographic(0, gl.canvas.width, gl.canvas.height, 0, -1, 1);
// this matrix will translate our quad to dstX, dstY
matrix = m4.translate(matrix, dstX, dstY, 0);
// this matrix will scale our 1 unit quad
// from 1 unit to texWidth, texHeight units
matrix = m4.scale(matrix, texWidth, texHeight, 1);
// Set the matrix.
gl.uniformMatrix4fv(matrixLocation, false, matrix);
// Tell the shader to get the texture from texture unit 0
gl.uniform1i(textureLocation, 0);
// draw the quad (2 triangles, 6 vertices)
gl.drawArrays(gl.TRIANGLES, 0, 6);
}
Let's load some images into textures
// creates a texture info { width: w, height: h, texture: tex }
// The texture will start with 1x1 pixels and be updated
// when the image has loaded
function loadImageAndCreateTextureInfo(url) {
var tex = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, tex);
// let's assume all images are not a power of 2
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
var textureInfo = {
width: 1, // we don't know the size until it loads
height: 1,
texture: tex,
};
var img = new Image();
img.addEventListener('load', function() {
textureInfo.width = img.width;
textureInfo.height = img.height;
gl.bindTexture(gl.TEXTURE_2D, textureInfo.texture);
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, img);
});
return textureInfo;
}
var textureInfos = [
loadImageAndCreateTextureInfo('resources/star.jpg'),
loadImageAndCreateTextureInfo('resources/leaves.jpg'),
loadImageAndCreateTextureInfo('resources/keyboard.jpg'),
];
And lets draw them at random places
var drawInfos = [];
var numToDraw = 9;
var speed = 60;
for (var ii = 0; ii < numToDraw; ++ii) {
var drawInfo = {
x: Math.random() * gl.canvas.width,
y: Math.random() * gl.canvas.height,
dx: Math.random() > 0.5 ? -1 : 1,
dy: Math.random() > 0.5 ? -1 : 1,
textureInfo: textureInfos[Math.random() * textureInfos.length | 0],
};
drawInfos.push(drawInfo);
}
function update(deltaTime) {
drawInfos.forEach(function(drawInfo) {
drawInfo.x += drawInfo.dx * speed * deltaTime;
drawInfo.y += drawInfo.dy * speed * deltaTime;
if (drawInfo.x < 0) {
drawInfo.dx = 1;
}
if (drawInfo.x >= gl.canvas.width) {
drawInfo.dx = -1;
}
if (drawInfo.y < 0) {
drawInfo.dy = 1;
}
if (drawInfo.y >= gl.canvas.height) {
drawInfo.dy = -1;
}
});
}
function draw() {
gl.clear(gl.COLOR_BUFFER_BIT);
drawInfos.forEach(function(drawInfo) {
drawImage(
drawInfo.textureInfo.texture,
drawInfo.textureInfo.width,
drawInfo.textureInfo.height,
drawInfo.x,
drawInfo.y);
});
}
var then = 0;
function render(time) {
var now = time * 0.001;
var deltaTime = Math.min(0.1, now - then);
then = now;
update(time);
draw();
requestAnimationFrame(render);
}
requestAnimationFrame(render);
You can see that running here
Handling version 2 of the original canvas drawImage
function
ctx.drawImage(image, dstX, dstY, dstWidth, dstHeight);
Is really no different. We just use dstWidth
and dstHeight
instead of
texWidth
and texHeight
.
*function drawImage(
* tex, texWidth, texHeight,
* dstX, dstY, dstWidth, dstHeight) {
+ if (dstWidth === undefined) {
+ dstWidth = texWidth;
+ }
+
+ if (dstHeight === undefined) {
+ dstHeight = texHeight;
+ }
gl.bindTexture(gl.TEXTURE_2D, tex);
...
// this matirx will convert from pixels to clip space
var projectionMatrix = m3.projection(canvas.width, canvas.height, 1);
// this matrix will scale our 1 unit quad
* // from 1 unit to dstWidth, dstHeight units
* var scaleMatrix = m4.scaling(dstWidth, dstHeight, 1);
// this matrix will translate our quad to dstX, dstY
var translationMatrix = m4.translation(dstX, dstY, 0);
// multiply them all togehter
var matrix = m4.multiply(translationMatrix, scaleMatrix);
matrix = m4.multiply(projectionMatrix, matrix);
// Set the matrix.
gl.uniformMatrix4fv(matrixLocation, false, matrix);
// Tell the shader to get the texture from texture unit 0
gl.uniform1i(textureLocation, 0);
// draw the quad (2 triangles, 6 vertices)
gl.drawArrays(gl.TRIANGLES, 0, 6);
}
I've updated the code to use different sizes
So that was easy. But what about the 3rd version of canvas drawImage
?
ctx.drawImage(image, srcX, srcY, srcWidth, srcHeight,
dstX, dstY, dstWidth, dstHeight);
In order to select part of the texture we need to manipulate the texure coordinates. How texture coordinates work was covered in the article about textures. In that article we manually created texture coordinates which is a very common way to do this but we can also create them on the fly and just like we're manipulating our positions using a matrix we can similarly manipluate texture coordinates using another matrix.
Let's add a texture matrix to the vertex shader and multiply the texture coordinates by this texture matrix.
attribute vec4 a_position;
attribute vec2 a_texcoord;
uniform mat4 u_matrix;
+uniform mat4 u_textureMatrix;
varying vec2 v_texcoord;
void main() {
gl_Position = u_matrix * a_position;
* v_texcoord = (u_textureMatrix * vec4(a_texcoord, 0, 1)).xy;
}
Now we need to look up the location of the texture matrix
var matrixLocation = gl.getUniformLocation(program, "u_matrix");
+var textureMatrixLocation = gl.getUniformLocation(program, "u_textureMatrix");
And inside drawImage
we need to set it so it will select the part of the texture we want.
We know the texture coordinates are also effectively a unit quad so it's very similar to
what we've already done for the positions.
*function drawImage(
* tex, texWidth, texHeight,
* srcX, srcY, srcWidth, srcHeight,
* dstX, dstY, dstWidth, dstHeight) {
+ if (dstX === undefined) {
+ dstX = srcX;
+ }
+ if (dstY === undefined) {
+ dstY = srcY;
+ }
+ if (srcWidth === undefined) {
+ srcWidth = texWidth;
+ }
+ if (srcHeight === undefined) {
+ srcHeight = texHeight;
+ }
if (dstWidth === undefined) {
* dstWidth = srcWidth;
}
if (dstHeight === undefined) {
* dstHeight = srcHeight;
}
gl.bindTexture(gl.TEXTURE_2D, tex);
...
// this matirx will convert from pixels to clip space
var projectionMatrix = m3.projection(canvas.width, canvas.height, 1);
// this matrix will scale our 1 unit quad
// from 1 unit to dstWidth, dstHeight units
var scaleMatrix = m4.scaling(dstWidth, dstHeight, 1);
// this matrix will translate our quad to dstX, dstY
var translationMatrix = m4.translation(dstX, dstY, 0);
// multiply them all togehter
var matrix = m4.multiply(translationMatrix, scaleMatrix);
matrix = m4.multiply(projectionMatrix, matrix);
// Set the matrix.
gl.uniformMatrix4fv(matrixLocation, false, matrix);
+ // Because texture coordinates go from 0 to 1
+ // and because our texture coordinates are already a unit quad
+ // we can select an area of the texture by scaling the unit quad
+ // down
+ var texMatrix = m4.translation(srcX / texWidth, srcY / texHeight, 0);
+ texMatrix = m4.scale(texMatrix, srcWidth / texWidth, srcHeight / texHeight, 1);
+
+ // Set the texture matrix.
+ gl.uniformMatrix4fv(textureMatrixLocation, false, texMatrix);
// Tell the shader to get the texture from texture unit 0
gl.uniform1i(textureLocation, 0);
// draw the quad (2 triangles, 6 vertices)
gl.drawArrays(gl.TRIANGLES, 0, 6);
}
I also updated the code to pick parts of the textures. Here's the result
Unlike the canvas 2D api our WebGL version handles cases the canvas 2D
drawImage
does not.
For one we can pass in a negative width or height for either source or
dest. A negative srcWidth
will select pixels to the left of srcX
. A
negative dstWidth
will draw to the left of dstX
. In the canvas 2D api
these are errors at best or undefined behavior at worst.
Another is since we're using a matrix we can do any matrix math we want.
For example we could rotate the texture coordinates around the center of the texture.
Changing the texture matrix code to this
* // just like a 2d projection matrix except in texture space (0 to 1)
* // instead of clip space. This matrix puts us in pixel space.
* var texMatrix = m4.scaling(1 / texWidth, 1 / texHeight, 1);
*
* // We need to pick a place to rotate around
* // We'll move to the middle, rotate, then move back
* var texMatrix = m4.translate(texMatrix, texWidth * 0.5, texHeight * 0.5, 0);
* var texMatrix = m4.zRotate(texMatrix, srcRotation);
* var texMatrix = m4.translate(texMatrix, texWidth * -0.5, texHeight * -0.5, 0);
*
* // because were in pixel space
* // the scale and translation are now in pixels
* var texMatrix = m4.translate(texMatrix, srcX, srcY, 0);
* var texMatrix = m4.scale(texMatrix, srcWidth, srcHeight, 1);
// Set the texture matrix.
gl.uniformMatrix4fv(textureMatrixLocation, false, texMatrix);
And here's that.
you can see one problem which is that because of the rotation sometimes we see past the
edge of the texture. As it's set to CLAMP_TO_EDGE
the edge just gets repeated.
We could fix that by discarding any pixels outside of the 0 to 1 range inside the shader.
discard
exits the shader immediately without writing a pixel.
precision mediump float;
varying vec2 v_texcoord;
uniform sampler2D texture;
void main() {
+ if (v_texcoord.x < 0.0 ||
+ v_texcoord.y < 0.0 ||
+ v_texcoord.x > 1.0 ||
+ v_texcoord.y > 1.0) {
+ discard;
+ }
gl_FragColor = texture2D(texture, v_texcoord);
}
And now the corners are gone
or maybe you'd like to use a solid color when the texture coordinates are outside the texture
precision mediump float;
varying vec2 v_texcoord;
uniform sampler2D texture;
void main() {
if (v_texcoord.x < 0.0 ||
v_texcoord.y < 0.0 ||
v_texcoord.x > 1.0 ||
v_texcoord.y > 1.0) {
* gl_FragColor = vec4(0, 0, 1, 1); // blue
+ return;
}
gl_FragColor = texture2D(texture, v_texcoord);
}
The sky's really the limit. It's all up to your creative use of shaders.
Next up we'll implement canvas 2d's matrix stack.


Brand new install (via Git) of 9 RC2 | 2015.09.15 on a RaspberryPi 2 running from an ext HDD
Paul
I'm trying to run your script having followed your instructions but despite double checking permissions (0755) and the script being present at that location I'm getting " unable to execute /etc/init.d/phpmqtt_input: No such file or directory"
Typing "sudo php /var/www/emoncms/scripts/phpmqtt_input.php" appears to work ok but obviously I'd like to have this running after booting.
Any ideas ?
Re: MQTT init script not working (Solved)
Can you double check the installation, especiallly the permissions;
Also, the daemon will only run if you have a MQTT broker - such as Mosquitto installed & running (which of course you would need).
Paul
Re: MQTT init script not working (Solved)
I deleted the file and started again but this time I created a new file in WinSCP and pasted the contents into it, followed the instructions and as if by magic it's working. I can only think that Windows somehow changes the file when downloading then copying over to the Pi. Anyway sorry for wasting your time it appears to be working ok now so onto the next stage.
Re: MQTT init script not working (Solved)
That's good news.
As MQTT is becoming a more mainstream function within emoncms, I'm hoping to eventually include the init file within the main emoncms 'scripts' folder (subject to Trystan's approval) so that it doesn't have to be downloaded from git, and then update the emoncms installation guide to enable users to simply create a symlink in /etc/init.d pointing to the init file.
Would that have been a better option for you?
Paul
Re: MQTT init script not working (Solved)
Indeed, it's much better to have everything in the same place with simpler instructions. I just need to figure out how to use MQTT now ;)
Re: MQTT init script not working (Solved)
I can only think that Windows somehow changes the file when downloading then copying over to the Pi
Hi Bra1n,
That's possible. In general, Windows apps terminate each line in a text file with a CR/LF (carriage return/linefeed) whereas all of the *nix variants use only the LF character. Whether or not that's what actually happened, and if so, if it affected script operation is another matter. Good to hear you got it working.
Regards,
Bill


As a final touch we're going to do two things: adding the link in the top bar and changing the redirect after creating the contact to take us to the this list instead of going back to the welcome page.
Add the lines 3 - 5
inside the

...

element that you will find in the
top_bar.html
file that is located in the
templates/bit
directory.

 ...
  Contact List
 ...

After refreshing the page
(http://localhost:8080/),
you should be able to see the link on the top
and if you're in watching the contact list it should also be active
.
After creating a new contact we will now redirect the user to the contact list instead of the welcome page and also and also show her a message that the new contact was successfully created.
Find the following line in the contat_create handler:
return flask.redirect(flask.url_for('welcome'))and replace it with the following:
flask.flash('New contact was successfully created!', category='success') return flask.redirect(flask.url_for('contact_list', order='-created'))
The first line is to flash the message that the creation was successful.
The argument category
is optional and can be one of the
following: warning
(default), danger
,
success
or info
.
In the second line notice that we are using the order='-created'
in the url_for
function, which will be translated to:
http://localhost:8080/contact/?order=-created.
You can choose whatever order you like and you can also play with the url
by providing different orders for the fields that you have in the
Contact
model. Use the -
if you want the inverse
order and ,
to combine more than one field for order.


You're running the derby embedded database. Currently, it's running in memory mode, which means you'll lose your changes the next time you shutdown/restart/redeploy your app. If you're using this for testing or development purposes, this may be fine, otherwise you'll probably want derby to run in directory mode and persist the information into the directory you set up below:
* Please enter valid a file system path. The directory will be created if it does not already exist (the parent directory must exist). Derby will put about a half dozen files in this directory.
If you'd like to hook Content Management Faces up to a jdbc data source (postgres, mysql, oracle, etc), please edit the cmf-config file and redeploy your app.
Your database is configured. All data will be written to the directory:
The persistence-properties section of your WEB-INF/cmf-config.xml has been updated with:
<persistence-properties>
<persistence-property>
<name>javax.persistence.jdbc.driver</name>
<value>org.apache.derby.jdbc.EmbeddedDriver</value>
</persistence-property>
<persistence-property>
<name>javax.persistence.jdbc.url</name>
<value>jdbc:derby:#{adminController.derbyPath}</value>
</persistence-property>
</persistence-properties>


PE_BASH_MAKER.py |
||||||||
Usage: |
PE_BASH_MAKER.py --ref REF --r1src R1SRC.fq --r2src R2SRC.fq |
|||||||
Required arguments: |
||||||||
|
--ref |
The reference genome. |
||||||
|
--r1src, |
Input fastq files containing the raw sequence data. |
||||||
|
--min, --max |
Equivalent to --minmem, --maxmem used in ConsensusMaker.py, see below. |
||||||
|
--blength |
Equivalent to --barcode_length used in tag_to_header.py, see below. |
||||||
|
--slength |
Equivalent to --spacer_length used in tag_to_header.py, see below. |
||||||
|
--rlength |
Length of the original untrimmed read [101]. |
||||||
|
--cut, --Ncut, |
Equivalent to the options of the same name in ConsensusMaker.py, see below. |
||||||
Optional arguments: |
||||||||
|
-h |
Show a help message and exit. Useful for entering commands because it shows all the arguments. Should only be entered by itself. |
||||||
|
--progInd |
Equivalent to --read_out in tag_to+header.py, see below. |
||||||
|
--isize |
Equivalent to the command of the same name in ConsensusMaker.py, see below. |
||||||
|
--absolute |
The location entered for the program when running is an absolute position, not a relative position. |
||||||
|
--parallel |
Run alignments in parallel. Not currently supported. |
||||||
|
||||||||
tag_to_header.py |
||||||||
Usage: |
tag_to_header.py --infile1 INFILE1.fq --infile2 INFILE2.fq --outfile1 OUTFILE1.fq.smi --outfile2 OUTFILE2.fq.smi --barcode_length BLENGTH --spacer_length SLENGTH [--read_out ROUT] [--adapter ADAPTERSEQ] |
|||||||
Required arguments: |
||||||||
|
--infile1, |
|||||||
|
--outfile1, |
Output fastq files for post-tag_to_header sequences. |
||||||
|
--barcode_length |
Length of the duplex tag sequence. [12] |
||||||
|
--spacer_length |
Length of the spacer sequences used. [5] |
||||||
Optional arguments: |
||||||||
|
-h |
Show a help message and exit. Useful for entering commands because it shows all the arguments. Should only be entered by itself. |
||||||
|
--adapter |
Optional: Spacer sequence for filtering on the presence of the spacer. This could be thrown off by low quality scores. |
||||||
|
--read_out |
How often you want to be told what the program is doing. Defaults to 1000000. In most cases, this is higher than the number of SSCS reads. |
||||||
|
|
|
|
|
||||
ConsensusMaker.py |
||||||||
Usage: |
ConsensusMaker.py --infile INFILE --tagfile TAGFILE --outfile OUTFILE --minmem MINMEM --maxmem MAXMEM --cutoff CUTOFF --Ncutoff NCUTOFF --readlength READ_LENGTH --read_type READ_TYPE --filt FILT [--isize ISIZE] [--read_out ROUT] [--rep_filt REP_FILT] |
|||||||
Required arguments: |
||||||||
|
--infile |
Sorted, paired-end .bam file containing aligned sequences. |
||||||
|
--outfile |
Output bam file for SSCSs. |
||||||
|
--tagfile |
output tagcounts file |
||||||
|
--minmem |
Minimum number of reads allowed to comprise a consensus. [3] |
||||||
|
--maxmem |
Maximum number of reads allowed to comprise a consensus. [1000] |
||||||
|
|
--minmem and --maxmem set the range of family sizes (constrained by cigar string) that can be used to make a consensus sequence. Examples use --minmem of 3 and --maxmem of 1000 |
||||||
|
|
Example 1: |
Ten reads (readlength = 80) have a particular barcode. Of these ten, nine of them have a cigar string of 80M, while one has a cigar string of 39M1I40M. Only the nine with a cigar string of 80M are sent on to be made into a SSCS. |
|||||
|
|
Example 2: |
Three reads (readlength 80) have a particular barcode. Of these, two have a cigar string of 80M, and one has a cigar string of 20M1D60M. No SSCS results. |
|||||
|
|
Example 3: |
A family with over 1000 members exists. A random sample of 1000 reads from that family is used to make a SSCS. |
|||||
|
--cutoff |
Percentage of nucleotides at a given position in a read that must be identical in order for a consensus be called at that position. [0.7] |
||||||
|
|
Example: |
Four reads (readlength = 10) are as follows: |
|||||
|
|
|
Read 1: ACTGATACTT |
|||||
|
|
|
Read 2: ACTGAAACCT |
|||||
|
|
|
Read 3: ACTGATACCT |
|||||
|
|
|
Read 4: ACTGATACTT |
|||||
|
|
|
The resulting SSCS is: |
|||||
|
|
|
ACTGATACNT |
|||||
|
--Ncutoff |
With --filt 'n', maximum fraction of Ns allowed in a consensus [1.0] |
||||||
|
|
Example: |
Two SSCSs are generated as follows: |
|||||
|
|
|
SSCS 1: ACGTGANCTAGTNCTNTACC |
|||||
|
|
|
SSCS 2: GATCTAGTNCATGACCGATA |
|||||
|
|
|
SSCS 2 passes the N filter (10%) with 1/20 = 5% Ns, while SSCS 1 does not with 3/20 = 15% Ns. |
|||||
|
--readlength |
Length of the input read that is being used. [80] |
||||||
|
--read_type |
A string specifying which types of read to consider. ['dpm'] |
||||||
|
|
Options are: |
|
|
||||
|
|
|
d: Paired-end reads where both reads in the pair map, and where the two are properly paired (read 2 maps in the opposite direction and on the opposite strand from read 1). |
|||||
|
|
|
Flags are 99, 83, 163, and 147. |
|||||
|
|
|
p: Paired-end reads where both reads in the pair map, but the two are not properly paired. |
|||||
|
|
|
Flags are 97, 81, 161, 145, 129, 65, 177, and 113. |
|||||
|
|
|
m: Paired-end reads where only one read in the pair maps. |
|||||
|
|
|
Flags are 181, 117, 137, 133, 73, 89, 69, and 153. |
|||||
|
|
|
n: Paired-end reads where neither read in the pair maps, and single end unmapped reads. |
|||||
|
|
|
Flags are 141, 77, and 4. |
|||||
|
|
|
s: Single end mapped reads. |
|||||
|
|
|
Flags are 0 and 16. |
|||||
|
--filt |
A string indicating which filters should be implemented. ['os']’ |
||||||
|
|
Filters are: |
|
|
||||
|
|
|
o: Overlap filter. Filters out any read pairs which overlap. Only works on reads of type d (see above). |
|||||
|
|
|
s: Softclipping filter. Filters out any reads which have been soft- clipped in alignment. This avoids later problems. |
|||||
|
|
|
n: N filter. Filters out consensus sequences with a higher percentage of Ns than the threshold imposed by --Ncutoff. Without this option, |
|||||
Optional arguments: |
||||||||
|
-h |
Show a help message and exit. Useful for entering commands because it shows all the arguments. Should only be entered by itself. |
||||||
|
--isize |
If not -1, sets the maximum distance between read 1 and read 2 for the two to not be considered unpaired. Only works if --read_type is 'd' [-1]. |
||||||
|
--rep_filt |
Remove tags with homomeric runs of nucleotides of length x. [9] |
||||||
|
--read_out |
How often you want to be told what the program is doing. Defaults to 1000000. In most cases, this is higher than the number of SSCS reads. |
||||||
DuplexMaker.py |
||||||||
Usage: |
DuplexMaker.py --infile INFILE --outfile OUTFILE --Ncutoff NCUTOFF --readlength READ_LENGTH --barcode_length BLENGTH [--read_out ROUT] |
|||||||
Required arguments: |
||||||||
|
--infile |
Input .bam file containing sorted SSCSs. |
||||||
|
--outfile |
Output .bam file. |
||||||
|
--Ncutoff |
Maximum percentage of Ns allowed in a consensus [1.0] |
||||||
|
|
Example: |
Two DCSs are generated as follows: |
|||||
|
|
|
DCS 1: ACGTGANCTAGTNCTNTACC |
|||||
|
|
|
DCS 2: GATCTAGTNCATGACCGATA |
|||||
|
|
|
DCS 2 passes the n filter (10%) with 1/20 = 5% Ns, while DCS 1 does not with 3/20 = 15% Ns. |
|||||
|
--readlength |
Length of the input read that is being used. [80] |
||||||
|
--barcode_length |
Length of the barcode sequence. Should match the value in tag_to_header. [12] |
||||||
Optional Arguments: |
||||||||
|
-h |
Show a help message and exit. Useful for entering commands because it shows all the arguments. Should only be entered by itself. |
||||||
|
--read_out |
How often you want to be told what the program is doing. Defaults to 1000000. In most cases, this is higher than the number of SSCS reads. |
||||||
CountMuts.py |
||||||||
Usage: |
Cat INFILE.pileup | CountMuts.py d MINDEPTH -C MAX_CLONALITY |
|||||||
Required arguments: |
||||||||
|
-d |
Minimum depth for counting mutations at a site |
||||||
|
-C |
Upper cutoff of mutant reads for scoring a clonal mutation (default = 0.1). |
||||||
|
-c |
Lower cutoff of mutant reads for scoring a clonal mutation (default = 0). |
||||||
|
-n |
Maximum fraction of N's allowed to score a position (default = 0.05). |
||||||
Optional Arguments: |
||||||||
|
-h |
Show a help message and exit. Useful for entering commands because it shows all the arguments. Should only be entered by itself. |
||||||
|
-s |
Position at which to start scoring for mutations |
||||||
|
-e |
Position at which to stop scoring for mutations. If set to 0, no position filtering will be performed (default = 0). |
||||||
|
-u |
Only count one mutation of a given type per position |
||||||
|
|
|
||||||
mut-position.py |
||||||||
Usage: |
mut-position.py -i INFILE -o OUTFILE -d MINDEPTH |
|||||||
Required arguments: |
||||||||
|
-i |
An imput file. If None, defaults to stdin [None]. |
||||||
|
-o |
A filename for the output file. If None, outputs to stdout [None]. |
||||||
|
-d |
Minimum depth for counting mutations at a site |
||||||
|
-C |
Upper cutoff of mutant reads for scoring a clonal mutation (default = 0.1). |
||||||
|
-c |
Lower cutoff of mutant reads for scoring a clonal mutation (default = 0). |
||||||
|
-n |
Minimum number of mutations for scoring a site [0] |
||||||
Optional Arguments: |
||||||||
|
-h |
Show a help message and exit. Useful for entering commands because it shows all the arguments. Should only be entered by itself. |
||||||
|
|
|
||||||
muts_by_read_position.py |
||||||||
Usage: |
muts_by_read_position.py -i INFILE -o OUTFILE -l RLENGTH -C MAX_CLONALITY |
|||||||
|
NOTE: This program is still under development and is not supported. It can still be used to gain a general idea of bias in N generation and mutations throughout a read, but values may be a bit off. |
|||||||
Required arguments: |
||||||||
|
-i |
An imput file. If None, defaults to stdin [None]. |
||||||
|
-o |
A filename for the output file. If None, outputs to generates one from the input file name. Required if -i is not used [None]. |
||||||
|
-l |
The length of a single read |
||||||
|
-C |
Maximum clonality to allow when considering a position [0.1]. |
||||||
|
-n |
Maximum fraction of N's allowed to score a position (default = 0.05). |
||||||
Optional Arguments: |
||||||||
|
-h |
Show a help message and exit. Useful for entering commands because it shows all the arguments. Should only be entered by itself. |
||||||
|
|
|


Akan names are derived from Ghanian culture. Frequently in Ghana, children are given their first name as a 'day name' which corresponds to the day in the week they were born. Most people do not know when their birthdays are and some might not know the day of the week they were born. These names have meanings concerning the soul and character of the person
This web application helps users to calculate the day of the week they were born and then give them a name depending on their gender.