MicroPython background knowledge
Since MaixPy is developed and built on top of MicroPython,
The final interface provided to users is Micropython, so we need to be familiar with the basic knowledge and syntax of MicroPython
at the beginning of development using MaixPy
About MicroPython:
MicroPython is a streamlined and efficient implementation of the programming language Python3. The syntax is consistent with Python3, but only a small part of the Python standard library is implemented. It is optimized and can be used in resource-constrained environments such as MCU and WIFI SOC. So we To use MicroPython, you need to understand its syntax.
If you have previous programming experience in C/C++/Java (or any other language), it is recommended
(Liao Xuefeng's Python Tutorial).
If you do not have any programming experience before, recommend
(Learn Python in a Stupid Way).
REPL and serial port
First, disconnect the connection between the development board and MaixPy IDE, otherwise the serial port will conflict!
Open a terminal window in MaixPy IDE
print('The quick brown fox','jumps over','the lazy dog')
Output:
The quick brown fox jumps over the lazy dog
print() will print each string in turn, and will output a space when it encounters a comma ",". Therefore, the output string is spelled like this:
The quick brown fox jumps over the lazy dog
print() can also print integers or calculate results:
print(300)
300
print(100 + 200)
300
Therefore, we can print the result of calculating 100 + 200 more beautifully:
print('100 + 200 =', 100 + 200)
100 + 200 = 300
Note that for 100 + 200, the Python interpreter automatically calculates the result 300, but '100 + 200 ='is a string instead of a mathematical formula, and Python treats it as a string.
MicroPython basic syntax
Variable
In Python, the equal sign =
is an assignment statement, which can assign any data type to a variable. The same variable can be assigned repeatedly, and it can be a variable of different types, for example:
a = 123 # a is an integer
print(a)
a ='ABC' # a becomes a string
print(a)
This kind of language with variable types is called dynamic language, and its counterpart is static language.
A static language must specify the variable type when defining a variable. If the type does not match when assigning a value, an error will be reported. For example, Java is a static language, and the assignment statement is as follows (// means comment):
int a = 123; // a is an integer variable
a = "ABC";// Error: Cannot assign a string to an integer variable
Compared with static languages, dynamic languages are more flexible for this reason.
List
One of the built-in data types of Python is list: list.
list is an ordered collection, elements can be added and deleted at any time.
For example, to list the names of all classmates in the class, you can use a list to indicate:
classmates = ['Michael','Bob','Tracy']
classmates
['Michael','Bob','Tracy']
The variable classmates is a list
.
Use the len()
function to get the number of list elements:
len(classmates)
3
Use the index to access the elements at each position in the list, the index starts from 0:
classmates[0]
'Michael'
classmates[1]
'Bob'
classmates[2]
'Tracy'
classmates[3]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
When the index exceeds the range, Python will report an IndexError error, so make sure that the index does not exceed the range, remember that the index of the last element is len(classmates)-1.
If you want to get the last element, in addition to calculating the index position, you can also use -1 as an index to get the last element directly:
classmates[-1]
'Tracy'
By analogy, you can get the second to last and third to last:
classmates[-2]
'Bob'
classmates[-3]
'Michael'
classmates[-4]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
Of course, the fourth from last crossed the line.
The list is a variable ordered list, so you can append elements to the list to the end:
classmates.append('Adam')
classmates
['Michael','Bob','Tracy','Adam']
You can also insert the element into a specified position, such as the position with index number 1:
classmates.insert(1,'Jack')
classmates
['Michael','Jack','Bob','Tracy','Adam']
To delete the element at the end of the list, use the pop() method:
classmates.pop()
'Adam'
classmates
['Michael','Jack','Bob','Tracy']
To replace an element with another element, you can directly assign it to the corresponding index position:
classmates[1] ='Sarah'
classmates
['Michael','Sarah','Tracy']
The data types of the elements in the list can also be different, for example:
L = ['Apple', 123, True]
If there is no element in a list, it is an empty list with a length of 0:
L = []
len(L)
0
Tuple
Another kind of ordered list is called tuple: tuple.
Tuple is very similar to list, but once the tuple
is initialized, it cannot be modified. For example, it also lists the names of classmates:
classmates = ('Michael','Bob','Tracy')
Now, the tuple of classmates cannot be changed, and it does not have methods such as append(), insert(). The other methods of obtaining elements are the same as list, you can use classmates[0], classmates[ normally -1), but cannot be assigned to another element.
What is the point of an immutable tuple? Because tuples are immutable, the code is safer.
If possible, try to use tuple instead of list.
The trap of tuple: When you define a tuple, the elements of the tuple must be determined at the time of definition, such as:
t = (1, 2)
t
(1, 2)
However, to define a
A tuple with only 1 element, if you define it like this:
t = (1)
t
1
But at this time, the definition is not tuple, t is an integer variable, and the value of variable t is 1!
This is because parentheses () can represent tuples and parentheses in mathematical formulas, which creates ambiguity.Therefore, Python stipulates that in this case, the calculation is based on parentheses, and the calculation result is naturally 1.
Therefore, the definition of tuple with only 1 element must add a comma ,
, to disambiguate:
t = (1,)
t
(1,)
When Python displays a tuple with only 1 element, it will also add a comma ,
to prevent you from misunderstanding it as a bracket in the sense of mathematical calculations.
Conditional judgment
The complete form of the if statement is:
if <condition judgment 1>:
<Execute 1>
elif <condition judgment 2>:
<Execute 2>
elif <condition judgment 3>:
<Execute 3>
else:
<Execute 4>
such as:
age = 20
if age >= 6:
print('teenager')
elif age >= 18:
print('adult')
else:
print('kid')
Loop
There are two types of Python loops, one is the for...in
loop, which iterates over each element in a list or tuple in turn, see an example:
names = ['Michael','Bob','Tracy']
for name in names:
print(name)
Executing this code will print each element of names in turn:
Michael
Bob
Tracy
So the for x in ...
loop is to substitute each element into the variable x, and then execute the statement of the indented block.
If you want to calculate the sum of integers from 1 to 100, it is a bit difficult to write from 1 to 100. Fortunately, Python provides a range() function that can generate a sequence of integers, which can be converted to a list by the list() function.
For example, the sequence generated by range(5) is an integer less than 5 starting from 0:
list(range(5))
[0, 1, 2, 3, 4]
range(101) can generate a sequence of 0-100 integers, calculated as follows:
sum = 0
for x in range(101):
sum = sum + x
print(sum)
The second type of loop is the while loop. For example, if we want to calculate the sum of all odd numbers within 100, we can use the while loop:
sum = 0
n = 99
while n> 0:
sum = sum + n
n = n-2
print(sum)
Data type conversion
Python's built-in common functions also include data type conversion functions, such as the int() function to convert other data types to integers:
>>> int('123')
123
>>> int(12.34)
12
>>> float('12.34')
12.34
>>> str(1.23)
'1.23'
>>> str(100)
'100'
>>> bool(1)
True
from machine import GPIO
Functions
In Python, to define a function, use the def
statement, write the function name, parentheses, the parameters in the parentheses and the colon :
in turn, and then write the function body in the indented block, and the return value of the function is returned The statement returns.
Let's write a function to calculate x2:
def power(x):
return x * x
For the power(x) function, the parameter x is a positional parameter.
When we call the power function, we must pass in one and only one parameter x:
power(5)
25
power(15)
225
Now, what if we want to calculate x3? We can define another power3 function, but what if we want to calculate x4, x5...? We cannot define an infinite number of functions.
You may think of it, you can modify power(x) to power(x, n) to calculate xn, just do it:
def power(x, n):
s = 1
while n> 0:
n = n
- 1
s = s
* x
return s
For this modified power(x, n) function, any n-th power can be calculated:
power(5, 2)
25
power(5, 3)
125
The modified power(x, n) function has two parameters: x and n. These two parameters are positional parameters. When the function is called, the two values passed in are assigned to the parameters x and n in order of position.
Slice
It is a very common operation to take some elements of a list
or tuple
. For example, a list is as follows:
L = ['Michael','Sarah','Tracy','Bob','Jack']
Take the first 3 elements and complete the slice with one line of code:
L[0:3]
['Michael','Sarah','Tracy']
L[0:3] means that it starts from index 0 and ends at index 3, but does not include index 3. That is, indexes 0, 1, 2, are exactly 3 elements.
If the first index is 0, it can also be omitted:
L[:3]
['Michael','Sarah','Tracy']
You can also start at index 1, and take out 2 elements:
L[1:3]
['Sarah','Tracy']
tuple
is also a kind of list, the only difference is that tuple
is immutable. Therefore, tuple
can also be sliced, but the result of the operation is still tuple
:
(0, 1, 2, 3, 4, 5)[:3]
(0, 1, 2)
String
'xxx' can also be regarded as a kind of list
, each element is a character. Therefore, string can also be sliced, but the result of the operation is still a string:
'ABCDEFG'[:3]
'ABC'
Object
Python is object-oriented programming, such as an LED light
from pyb import LED
red_led = LED(1)
red_led.on()
LED is a class, red_led is an object, you can operate this object, such as turning on, turning off, and viewing the value.
Module
What is a module?
As the code increases, the code in a file will become longer and more difficult to understand.
In order to write maintainable code, we group many functions into different files. In Python, a .py
file is called a Module.
What are the benefits of modules?
Easy to reuse code!  We organize these modules so that everyone can write a lot less code!
How to use modules?
import time
time.sleep_ms(500)
import time
is to import the time
module. The module can be imported through the import
statement.
More
Please search for more MicroPython basic syntax tutorials.


| Figure 2 |
Map overview of land use layer for SWAT. |
| Figure 3 |
Map overview of soil types layer for SWAT and sub-basin laye ... |
| Figure 4 |
Mean monthly precipitation and mean monthly temperature for ... |
| Figure 1 |
Map overview of upper Blue Nile (Abay) Basin with CFSR clima ... |
| Figure 6 |
Graphical overview of calibration and validation results for ... |
| Figure 5 |
Mean monthly outflow in m 3/s for the upper Blue Nile Basin ... |


DataDistributionManager example
.NET
To execute the dotnet example do the following steps:
- open a windows command prompt
- cd to the examples/dotnet/TransmitterReceiver folder
$> cd [PATH TO EXAMPLES FOLDER]
$> cd dotnet\TransmitterReceiver
- build the .NET solution
$> dotnet build TransmitterReceiver.csproj
This command will restore the NuGet DataDistributionManager package and build project for all the frameworks declared in the project, a TransmitterReceiver.exe file will be placed in the framework specific output folder. (e.g. .\dotnet\TransmitterReceiver\bin\Debug\net5.0)
- cd to the output folder
$> cd bin\Debug\net5.0\
- open another windows command prompt and cd to the output folder
- in the first command prompt execute the example as listener
$> TransmitterReceiver.exe
This will also start the DCPSInfoRepo.exe
- in the second command prompt execute the example as transmitter
$> TransmitterReceiver.exe t
This start the application in transmission mode, in the other command prompt is visible the start of communications.
Java
To execute the java example do the following steps:
- open a windows command prompt
- cd to the examples/java/TransmitterReceiver folder
$> cd [PATH TO EXAMPLES FOLDER]
$> cd java\TransmitterReceiver
- If needed set the %JDK_ROOT_FOLDER% environment variable to your jdk folder (e.g. C:\Program Files\Java\jdk-15.0.2)
$> set JDK_ROOT_FOLDER=[YOUR_PATH_TO_JDK_FOLDER]
- Put the datadistributionmanager.jar file in the application folder, the file is available at (latest release)[https://github.com/marcocappolimases/DataDistributionManager/releases/latest]
- Compile the java source
$> compile.bat
- execute the example as receiver
$> startreceiver.bat
This start the receiver and will also start the DCPSInfoRepo.exe
- open a new windows command prompt and do steps 2 and 3
- execute the example as transmitter
$> starttransmitter.bat
This start the application in transmission mode in the new terminal window, in the other terminal window is visible the start of communications.


--- title: Dilated Recurrent Neural Networks keywords: fastai sidebar: home_sidebar summary: "DRNN pytorch implementation." description: "DRNN pytorch implementation." nb_path: "nbs/models_components__drnn.ipynb" ---
Dilated Recurrent Neural Networks. https://papers.nips.cc/paper/6613-dilated-recurrent-neural-networks.pdf implementation from https://github.com/zalandoresearch/pytorch-dilated-rnn Residual LSTM: Design of a Deep Recurrent Architecture for Distant Speech Recognition. https://arxiv.org/abs/1701.03360 A Dual-Stage Attention-Based recurrent neural network for time series prediction. https://arxiv.org/abs/1704.02971
n_time = 24
batch_size = 3
n_feats = 10
n_output_feats = 20
num_layers = 4
dilations = [2, 4, 5, 9]
for cell_type in ['GRU', 'RNN', 'LSTM', 'ResLSTM']:
model = DRNN(n_input=n_feats, n_hidden=n_output_feats, n_layers=num_layers,
dilations=dilations, cell_type=cell_type)
x = torch.rand(n_time, batch_size, n_feats)
output, hidden = model(x)
test_eq(output.shape, (n_time, batch_size, n_output_feats))


Open Source Web Components!
is the base for all frontend Components
Develop, Master
Organized Structure


JETM Springframework 2.x integration
If you already use the new Spring 2.x schema based configuration you can use the JETM namespace to configure performance monitoring. Otherwhise use Spring 1.x dtd based configuration.
Be aware that these prerequisites and constraints apply.
Performance monitoring step-by-step
Step I: Initialize JETM runtime
In order to enable performance monitoring the JETM runtime has to be configured. Therefore you need to add the JETM namespace and a tag called jetm:runtime to your Spring 2.x configuration.
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jetm="http://jetm.void.fm/schema/jetm_spring_config_1_2" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://jetm.void.fm/schema/jetm_spring_config_1_2 http://jetm.void.fm/schema/jetm_spring_config_1_2.xsd"> ... <jetm:runtime /> ... </beans>
Since the runtime should exist globally you need to ensure that the runtime definition happens in your spring configuration root. Otherwhise child definitions may not be able to access the runtime.
Step II: Monitor Spring managed beans
The tag jetm:monitoring will register Spring managed beans for performance monitoring. Once registered the JETM runtime will record execution times of all public methods in those beans. Simply supply a comma separated list of bean names you are interested in. Use wildcards if you want.
<jetm:monitoring> <jetm:bean-pattern>*Service,MyBean</jetm:bean-pattern> </jetm:monitoring>
Step III: Access aggregated results
The standalone HTTP console provides access to aggregated performance results. Simply add the following fragment to your Spring configuration and point your browser to http://{HOSTNAME}:40000 to access it.
<jetm:console />
If your application is a web application you probably want to use the servlet based monitoring console instead. See Spring web integration for further details.
Further configuration options
So far we have been using default configurations only.
The tag jetm-runtime configures the JETM runtime using the defaults nested monitor, best available timer and threshold based buffering (1000 measurements). The tag jetm-console will launch a HTTP console at port 40000. And both jetm-monitoring and jetm-console automatically locate the JETM runtime by looking for a spring managed bean implementing the interface EtmMonitor.
Of course all those defaults may be altered.
JETM runtime attributes
The tag jetm-runtime supports the optional attributes type and timer. The attribute type defines the type of the monitor. Use nested, flat or a full qualified class name that implements EtmMonitor. The attribute timer defines the type of the timer. Use jdk15, sun, default or a full qualified class name that implements ExecutionTimer.
<jetm:runtime type="flat" timer="default" />
JETM aggregation chain
As stated above the default aggregation chain uses a threshold based buffer. If you want to alter this behavior you may chose between activating a distinct feature from a predefined set or specifying the complete aggregator chain manually.
The nested element jetm:features supports access to predefined JETM aggregation features. Currently it is possible to alter the buffering capabilities, enable aggregation persistence and raw data logging. For further details see nested elements jetm:interval-buffer, jetm:threshold-buffer,jetm:persistence and jetm:raw-data-log in JETM spring configuration schema.
The following example buffers collected details for 5000 miliseconds before aggregation. Furthermore aggregated performance results are persistent and will survive VM restarts, see Aggregation Persistence for details.
<jetm:runtime> <jetm:features> <jetm:interval-buffer interval="5000"/> <jetm:persistence /> </jetm:features> </jetm:runtime>
Alternatively you may define the used aggreation chain similar to xml-based EtmManager configuration. The chain consists of one root chain element and n chain elements that process recorded execution times in the specified order.
<jetm:runtime> <jetm:aggregator-chain> <jetm:chain-element class="etm.core.aggregation.BufferedTimedAggregator"> <jetm:property name="aggregationInterval">10000</jetm:property> </jetm:chain-element> <jetm:chain-element class="etm.contrib.aggregation.log.CommonsLoggingAggregator"> <jetm:property name="logName">my.application.raw-performance-data</jetm:property> </jetm:chain-element> <jetm:chain-root class="etm.core.aggregation.RootAggregator" /> </jetm:aggregator-chain> </jetm:runtime>
JETM runtime plugins
Again - similar to xml-based EtmManager configuration you can register EtmPlugins to a JETM runtime. Use the nested jetm:plugin element to do so.
<jetm:runtime> <jetm:extension> <jetm:plugin class="etm.contrib.renderer.plugin.Log4jDumpOnShutdownPlugin"> <jetm:property name="logName">my.log.category</jetm:property> </jetm:plugin> </jetm:extension> </jetm:runtime>
JETM runtime references
Most likely you will never have more that one JETM runtime in your Spring configuration. In the unlikely event of having more than one add an id to your JETM runtime and use the attribute runtime-ref to refer to it.
<jetm:runtime id="monitorOne"/> <jetm:runtime id="monitorTwo"/> <jetm:monitoring runtime-ref="monitorOne"> <jetm:bean-pattern>*Service,MyBean</jetm:bean-pattern> </jetm:monitoring> <jetm:console runtime-ref="monitorOne"/>
Standalone HTTP console properties
The build-in console can be configured using the optional attributes listen-port, worker-size and runtime-ref.
<jetm:console listen-port="45000" worker-size="3"/>


World Energy Visualization
Documentation
Bar Chart
Line Chart
Scatter Plot
CO2 Emissions/Capita
Coal Consumption
Coal Production
Petroleum Consumption
Petroleum Production
Renewable Biofuel Consumption
Renewable Biofuel Production
Renewable Electricity Consumption
Renewable Electricity Generation
Total Electricity Consumption
Total Electricity Generation
Total Primary Energy Consumption
Total Primary Energy Production
CO2 Emissions/Capita
Coal Consumption
Coal Production
Petroleum Consumption
Petroleum Production
Renewable Biofuel Consumption
Renewable Biofuel Production
Renewable Electricity Consumption
Renewable Electricity Generation
Total Electricity Consumption
Total Electricity Generation
Total Primary Energy Consumption
Total Primary Energy Production
CO2 Emissions/Capita
Coal Consumption
Coal Production
Petroleum Consumption
Petroleum Production
Renewable Biofuel Consumption
Renewable Biofuel Production
Renewable Electricity Consumption
Renewable Electricity Generation
Total Electricity Consumption
Total Electricity Generation
Total Primary Energy Consumption
Total Primary Energy Production
CO2 Emissions/Capita
Coal Consumption
Coal Production
Petroleum Consumption
Petroleum Production
Renewable Biofuel Consumption
Renewable Biofuel Production
Renewable Electricity Consumption
Renewable Electricity Generation
Total Electricity Consumption
Total Electricity Generation
Total Primary Energy Consumption
Total Primary Energy Production
CO2 Emissions/Capita
Coal Consumption
Coal Production
Petroleum Consumption
Petroleum Production
Renewable Biofuel Consumption
Renewable Biofuel Production
Renewable Electricity Consumption
Renewable Electricity Generation
Total Electricity Consumption
Total Electricity Generation
Total Primary Energy Consumption
Total Primary Energy Production
Fixed Radius
Scatter!
Add Country
1980


Last data update: February 7, 2011
Last page update: February 7, 2011
The tz_us shapefile captures the boundaries of the TZ timezones of the United States, as of TZ 2011b.
The geometries are entirely derived from the countyp020p and timeznp020 shapefiles provided by the National Atlas.
All the TZ timezones of United States listed in TZ’s zone.tab are represented, except for America/Shiprock which is included in America/Denver.
This is a snaphsot of the shapefile.
TZ mentions that America/Kentucky/Louisville contains three counties of Indiana and part of Kentucky, but does not describe precisely that part of Kentucky. In the map, it is made of Jefferson county.
In general, towns on or near the boundary of a zone may practically follow the time of a neighboring zone. We do not attempt to record the boundaries at that level of detail. For example, the boundary between America/Los_Angeles and America/Denver follows the Nevada/Utah border; in practice and by law since 1999, the city of West Wendover, Nevada, is part of America/Denver.
Except for the areas described below, the TZ timezone is determined from the legal timezone as follows:
The zip of the ingredients contains a script to build the map, the modified sources.
The starting point is a couple of map layers from the National Atlas:
Unfortunately, these two maps do not work well together: for example, some common boundaries are not digitized in exactly the same way. So the first step was to conflate them. For the County Boundaries layer, the only change was to add intermediate points where a time zone boundary departs from a county boundary. For the Time Zones layer, the change was to replace the common boundaries by the data from the Conty Boundaries. The resulting shapefiles are part of the ingredients.
The next step is to perform an overlay of the two maps, to progressively assign a tzid to the geometries (identified by a combination of state, county and “modern” timezone, in accordance with the description above), and to finally dissolve on the tzid attribute. For the exact details of the assignments, see the script in the ingredients.
To the extent possible under law, Eric Muller has waived all copyright and related or neighboring rights to the efele.net/tz maps (comprising the shapefiles, the web pages describing them and the scripts and data used to build them). This work is published from the United States of America.
Note that this does not affect the rights others may have. I am not qualified to determine whether such rights exist.
History:


{% extends "../theme/bage.html" %}
{% block head %}
{% block headinfo %}
{% end %}
{% end %}
{% block typebody %}
Cloud GIS application and map resource cloud online historical map
and thematic map OSGeo China Center China Academy of Sciences northeast geographic Institute Changchun


Break From Reality
Don’t have the collateral or financial history to work with the banks? Not a Problem! At VR-Direct you raise money by showing the world what you can do. Increase the likelihood of people donating by offering small incentives for each donation milestone.
VR-Direct ensures that a successful project will already have a base community on launch which every VR application needs for it to continue to thrive. Here you can add application demos and developer diaries to really show off all the hard work you’re doing. You can even launch a forum so your community can feel directly involved with the project.
But what are you waiting for? Development can be costly but it’s not a burden anyone has to tackle alone. The next step is just clicks and it's not just for developers, anyone can create an account. Be a part of tomorrow, today! .


Using FusionCharts with PHP > Basic Examples |
||||||||||||||
FusionCharts can effectively be used with PHP to plot dynamic data-driven charts. In this section, we'll show a few basic examples to help you get started. We'll cover the following examples here:
Let's quickly see each of them. Before you proceed with the contents in this page, we strictly recommend you to please go through the section "How FusionCharts works?". |
||||||||||||||
| All code discussed here is present in Download Package > Code > PHP > BasicExample folder. | ||||||||||||||
| Setting up the charts for use | ||||||||||||||
| In our code, we've used the charts contained in Download Package > Code > FusionCharts folder. When you run your samples, you need to make sure that the SWF files are in proper location. | ||||||||||||||
| Plotting a chart from data contained in Data.xml | ||||||||||||||
Let's now get to building our first example. In this example, we'll create a "Monthly Unit Sales" chart using dataURL method. For a start, we'll hard code our XML data in a physical XML document Data.xml and then utilize it in our chart contained in an PHP Page (BasicChart.php). Let's first have a look at the XML Data document: |
||||||||||||||
| <graph caption='Monthly Unit Sales' xAxisName='Month' yAxisName='Units' decimalPrecision='0' formatNumberScale='0'> <set name='Jan' value='462' color='AFD8F8' /> <set name='Feb' value='857' color='F6BD0F' /> <set name='Mar' value='671' color='8BBA00' /> <set name='Apr' value='494' color='FF8E46' /> <set name='May' value='761' color='008E8E' /> <set name='Jun' value='960' color='D64646' /> <set name='Jul' value='629' color='8E468E' /> <set name='Aug' value='622' color='588526' /> <set name='Sep' value='376' color='B3AA00' /> <set name='Oct' value='494' color='008ED6' /> <set name='Nov' value='761' color='9D080D' /> <set name='Dec' value='960' color='A186BE' /> </graph> |
||||||||||||||
This XML is stored as Data.xml in Data Folder under BasicExample folder. It basically contains the data to create a single series chart to show "Monthly Unit Sales". We'll plot this on a Column 3D Chart. Let's see how to do that. To plot a Chart that consumes this data, you need to include the HTML code to embed a Flash object and then provide the requisite parameters. To make things simpler for you, we've put all this functionality in an PHP function named as renderChartHTML(). This function is contained in Download Package > Code > PHP > Includes > FusionCharts.php file. So, whenever you need to work with FusionCharts in PHP, just include this file in your page and then you can work with FusionCharts very easily. Let's see it in example. BasicChart.php contains the following code to render the chart: |
||||||||||||||
|
<?php |
||||||||||||||
As you can see above, we've first included FusionCharts.php to help us easily create charts. After that, we've simply invoked the renderChartHTML function to render the chart. To this function, you can pass the following parameters (in same order): |
||||||||||||||
|
||||||||||||||
When you now run this page, you'll see a chart like the one below. If you do not see a chart like the one below, please follow the steps listed in Debugging your Charts section of this documentation. |
||||||||||||||
| So, you just saw how simple it is to create a chart using PHP and FusionCharts. Let's now convert the above chart to use dataXML method. | ||||||||||||||
| Changing the above chart into a single page chart using dataXML method | ||||||||||||||
| To convert this chart to use dataXML method, we create another page BasicDataXML.php in the same folder with following code: | ||||||||||||||
|
<?php <?php |
||||||||||||||
As you can see above, we:
When you see this chart, you'll get the same results as before. |
||||||||||||||
| Using FusionCharts JavaScript class to embed the chart. | ||||||||||||||
| If you see the charts from previous examples in the latest versions of Internet Explorer, you'll see a screen as below: | ||||||||||||||
Internet Explorer asks you to "Click and activate..." to use the chart. This is happening because of a technical issue in Internet Explorer on part of Microsoft Corporation. As such, all Flash movies need to be clicked once before you can start interacting with them. However, the good news is that there's a solution to it. This thing happens only when you directly embed the HTML code of the chart. It would NOT happen when you use JavaScript to embed the chart. To see how to embed using JavaScript at code level, please see Creating Your First Chart > JavaScript Embedding Section. Again, to make things simpler for you, we've provided an PHP function called renderChart() which helps you wrap this JavaScript function in PHP function, so that you don't have to get your hands dirty with JavaScript, Flash and HTML. This function is contained in the previously used FusionCharts.php file. Let's now quickly put up a sample to show the use of this function. We create another PHP page SimpleChart.php to use this function to plot a chart from data contained in our previously created Data.xml file. It contains the following code: |
||||||||||||||
|
<?php |
||||||||||||||
As you can see above, we've:
The renderChart() method takes in the following parameters: |
||||||||||||||
|
||||||||||||||
| When you now view the chart, you'll see that no activation is required even in Internet Explorer. |


Hello there! I'm Diana Ho, an aspiring data analyst. Currently a 5th year Computer Science and Economics student at UC San Diego, I'm interested in everything data, from exploring the data analysis process to effectively communicating and visualizing my findings.
Recently, I've been diving into the world of UI/UX design, and have developed a passion for applying human-computer interaction priciples to be able to create beautiful and intuitive designs for users to experience.
Education
University of California, San Diego Economics: 3.69 Computer Science: 3.60 Summer 2017
K-Means Clustering Principal Component Analysis (PCA) Linear Regression Perceptrons Neural Networks
Projects
Here's a selection of some recent work. More to come!
Regional Crimes
Data Analysis Project
Traffic Violations
Data Analysis Project
Mobile Playlist Management
UI/UX Design
Fixate
Mobile App Design
Honest Capes
Website Design
Mint
Website Design & Data Visualization
Get In Touch
Montgomery County Traffic Violations
Data Analysis Project
This was a final project completed alongside one other student in an Natural Computation course at UC San Diego. Building off our knowledge of another data analysis class taken in parallel, my partner and I were required to explore a topic of our choice and subsequently expand our understanding of Unsupervised Learning by choosing a real world data set and applying a technique we learned to questions we were interested in analyzing.
Since I was the primary coder and analyst in the group, any dataset we chose and questions we wanted to ask had to be manageable as we had limited analysis knowledge in addition to a short time restriction.
Background and Motivation
If you could easily visualize all of the traffic violations issued in the county you live in, what would you want to know?
Personally, I would want to know where most drivers are ticketed in my county so as to avoid this area while driving or to remember to be extra safe to avoid getting myself into trouble. As a person who has to make at least a 15-minute commute to the university on a daily basis, one of my fears is to be pulled over and issued a traffic ticket.
Having heard about the stereotypes about how officers have to meet their quota, especially nearing the end of the month makes me wonder if there may be some patterns among the traffic violations issued after all.
Dataset Description
With nearly 150,000 traffic violations recorded, this dataset contains detailed information including date, time, location, details, etc.
Questions
1) Are the traffic violations issued in Montgomery County regionalized based on different times throughout the day?
2) Do speeding traffic violations group out in different locations based on different times of day?
Analysis
Technique
We used K-Means Clustering since our questions had no right or wrong groupings among region or time. For this algorithm, we start by initializing our k means randomly. We then label the points to be in the cluster with the nearest mean, so each mean gets all of the points close to it in its set. Next we update the means, which is just the average of all points in the cluster. Finally, we stop when there is no longer a change in means or we meet our end condition.
Question 1
The results for our problem fell short of our expectations because the groupings of traffic incidents among time and location did not cluster out the way that we had hoped. Instead, no matter what k-value I used, each cluster seemed to be a pretty even spread of all locations throughout Montgomery County.
Question 2
After working on the first question, we learned that k-means is largely affected by the variance of the inputs- any input that has a huge variance compared to the other inputs would affect the way the clusters group out. Therefore, in order to run the clustering algorithm for our second question, I had to reprocess the data so all variances were similar.
Surprisingly, this worked really well and we got clusters that answered our original question. Furthermore, even after I ran the code multiple times, the clusters with the same k-values resulted in the same plot. From this, we interpretted that there does exist locations at certain times of day where speeding traffic violations are given out more than usual.
The mean locations we got from this show us the estimate of the time and places a driver should try to avoid in their commute if they are trying to avoid getting a speeding traffic violations, as these locations indicate where most speed traffic violations exist based on the past data.
Discussion
Overall, I learned a lot working on this project, from the logistics of the analysis techniques to just general project management skills. If we had more time, we would have extended our study to individual traffic violations (other than just speeding) to see if they group out in different locations based on different times of the day. With this information, we could try to predict what traffic violations occur based on location and time information.
For more details, you can view the final presentation slides here.
Mobile Playlist Management
UI/UX Design
This mobile playlist application was created as a final project along with two others in a Usability and Information Architecture course at UC San Diego. Through a 3-week process, my team and I conducted user research, comparisons of good and less good user experience/workflow on various mobile music management apps, competetive analysis of said apps, and finally a wireframe redesign based on things we learned.
User Research
To better understand the context in which our system would have been used, I interviewed 3 people who regularly listen to music through their mobile phones. Through our combined interviews, my group and I created a list of 10 distinct user scenarios of using a mobile playlist app.
Comparisons of User Experience/Workflow
For this part of our project, we had to find screen sequences of other music apps that were worth imitating and ones to avoid in our redesign. For example, given the user scenario for creating a playlist from the playlist page, we found that Spotify had the better flow compared to SoundCloud.
Competetive Analysis
Here, we made a analysis of the navication structures and labels used in three different music applications: Spotify, SoundCloud, and Google Play Music. For each of our chosen music apps, we created a hierarchical sitemap with key page details showing what the main pages on the site are. Then, for each app, we compared the genre lists both within itself and between different apps.
Wireframe Redesign
Finally, we took what we learned about good practices in information architecture and functionality and applied it to the design of our own music app. We used Adobe Photoshop to create the high resolution wireframes, then imported the wireframes to Invision to be able prototype our design.
Inspired by the Pomodoro Technique, coupled with a minimalistic and user-friendly design, this mobile web app was created to motivate users to concentrate on their work. Users can set study and break times, generate activity ideas to do during their break times, and visulaize their progress over time. With the help of this app, you'll be getting $#!t done in no time!
Web application designed for UCSD students to post and search reviews about their professor or class. This app helps socialize and share students' thoughts on a class they have taken.
This app was built with Twitter API, Node JS, Express, JQuery, and MongoDB.
Web application designed to provide users a visualization displaying infographics of data relating to San Diego demographics from the DELPHI database.
We aimed to create this project mainly for users who are in a stage of their lives in which they are deciding whether or not a college education is worth their time and money. The main end-goal of this project was to be able to provide users with a tool in which they could compare various analytical data pertaining to income and level of education. By aggregating data about poverty levels, education levels, median household income levels, and employment status, we hoped to be able to provide the user with visualizations in which they could analyze and make sense for themselves should there be any correlation that would show. In turn, we anticipate that this would help them answer their initial question thatbrought them to our page in the first place.
A secondary end-goal for this project was to be able to create a user-friendly website that complied with basic HCI principles while also incorporating various tools that improved the aesthetics and flow and added more meaning to our visualizations. We intended to design and implement a user-interface that integrated D3 graphics to allow us to dynamically display data so that our users would be able to interact with our website rather than just viewing static information.
This app was built with Leaflet, MapBox, D3, Node JS, Express, JQuery, and Bootstrap.


RPNow
Loading...
The Dead-Simple Text-Based Roleplay Website
Create account
Log in
You are logged in as
.
Log out
Create RP
Start from scratch
or import a .json file:
Join RP
Here's how it works:
Add your friend's username to the "Accepting invitations from" list below
Your friend creates an RP
Your friend invites you to the RP
If they have never invited you to an RP before, you will need to give them your verification code:
Get Verification Code
You refresh this page, and the RP will be here
You are accepting invitations from:
Add
My RPs
Loading RP list...
Hidden RPs
Hide
Loading...


A web service that returns JSON formatted pseudorandom data - numbers, hexadecimal numbers, UUIDs, and base 64 strings. Originally considered useful as a data source for Workflow.
Learn more at GitHub


e-shiping is an online product selling website development project held under supervision of Mr. chitradip giri (Faculty at Department of metallurgy engineering).
This project was assigned as a part of regular project based assignment. The objective of this project is to minimize the difficulties of people by providing them daily needs simply. At e-hoping people can simply find their desired item and order it. You are provided both choices of "cash on delivery" as well as "Online payment" which you can choose according to your simplicity. We've created an initial prototype of the website.
Name of students participated (In alphabetical order) in this project are:
These 2 students are currently undergoing their diploma in engineering. They are admitted in batch 2018-2021, and pursuing their degree under Computer Science technology & metallurgy engineering .


| 046:025 Khan | : |
Destroying everything by the Command of its Lord! So they became such that nothing could be seen except their dwellings! Thus do We recompense the people who are Mujrimun (polytheists, disbelievers, sinners, etc.)! |
| 046:025 Maulana | : |
Destroying every thing by the command of its Lord. So at dawn naught could be seen except their dwellings. Thus do We reward the guilty people. |
| 046:025 Pickthal | : |
Destroying all things by commandment of its Lord. And morning found them so that naught could be seen save their dwellings. Thus do We reward the guilty folk. |
| 046:025 Rashad | : |
It destroyed everything, as commanded by its Lord. By morning, nothing was standing except their homes. We thus requite the guilty people. |
| 046:025 Sarwar | : |
It will destroy everything by the will of its Lord" (Not very long after) nothing could be seen of them except their dwellings. Thus do We recompense the sinful people. |
| 046:025 Shakir | : |
Destroying everything by the command of its Lord, so they became such that naught could be seen except their dwellings. Thus do We reward the guilty people. |
| 046:025 Sherali | : |
'It will destroy everything by the command of its Lord.' By morning there was nothing to be seen, except their dwellings. Thus do WE requite the guilty people. |
| 046:025 Yusufali | : |
"Everything will it destroy by the command of its Lord!" Then by the morning they - nothing was to be seen but (the ruins of) their houses! thus do We recompense those given to sin! |
Concepts/Themes Covered: الإيمان > اليوم الآخر > جزاء العمل السيء Faith> The Hereafter> The Punishment of the Bad Work العلوم والفنون > الحقائق العلمية و الإشاة إلى وقائع أيدتهاالإكتشافات العلمية > الريح Science and Art> The Scientific Facts and the Indication to Facts which have been supported by the Scientific Discoveries>The Wind القصص والتاريخ > (عاد (قوم هود The Stories and the History>Ad(Hud's People)
This tool uses eight English parallel translations for the Holy Quran imported from Mr. Clay Smith. You can also visit Qurany Concepts for browsing the Quran themes or topics. If you want to search the Holy Quran for keywords, please visit Qurany Keywords.


Initial image design by Tenta for HeatPhoenix. Generator script and styles by FlyingKatsu.
Check GitHub for a list of known issues
Initial image design by Tenta for HeatPhoenix. Generator script and styles by FlyingKatsu.
Check GitHub for a list of known issues


GitHub Linguist Free Colour Picker
Use your mouse to find a free colour, or enter a hex value manually.


New to version 3.3 of OA4MP for OIDC is a command line client. This allows you to register a client with a server and issue commands to the server to get access tokens, refresh tokens, user information and certs (assuming the server supports these). The only caveats are
You can get the latest release oa2-client.jar and the corresponding script to run it too oa2-client
This command line utility allows you to issue commands against the server and view responses. Talking to a server requires some complex state generation and management. The client does all of this for you. The supported commands are
And here is the executive summary of the steps
You must register the a client with the server as per this. The trick that makes this work, however, is that the callback URL you supply must be invalid, i.e., the callback from the server must fail. This will allow you to get the OAuth transaction state.
The client is called either directly or through the oa2-client script. You need to specify the configuration file name and the name of the configuration.
java -jar /opt/oa2/oa2-client.jar -cfg ~/config/clients.xml -name oa4mp2 OA4MP Client OAuth 2 configuration loader, version 4.1 startup on Thu Aug 11 13:46:26 CDT 2016 client>
The last line is the prompt. The startup message tell you that the loader found everything and there were no issues. You are now ready to start talking to an OA4MP OAuth 2 server.
Issue the following geturi call:
client>set_uri https://surge.ncsa.illinois.edu/oauth2/authorize?scope=edu.uiuc.ncsa.myproxy.getcert+openid+profile+email&response_type=code&redirect_uri=https%3A%2F%2Fashigaru.ncsa.uiuc.edu%3A9443%2Fclient%2Fready&state=MUB0Y2wme8FvxTbtwjp6y4xLfR3SbxS4NY6_FqDlM-Q&nonce=udBh62PGMyZaYNa4-vlmfYbNl8MSgb7IO9rBIOkPWcM&prompt=login&client_id=myproxy%3Aoa4mp%2C2012%3A%2Fclient_id%2F2a3aab4b67f3c8d9f3bff4aafb6e236c&skin=dataOne
The command causes a uri to be generated with the full state for the OIDC request (which is actually hard to make, hence the call). As with all calls, you can get a description of what it is and does by supplying the argument --help:
client>set_uri --help Usage: This will create the correct URL to pass to your browser. This URL should be pasted exactly into the location bar. You must then authenticate. After you authenticate, the service will attempt a call back to a client endpoint which will fail (this is the hook that lets us do this manually). Next Step: You should invoke setgrant with the callback uri from the server
You must paste this into your browser. It should be in the clipboard at the end of the call. You will then complete the authorization there and then next step will fail. What has happened is that the server tries to do the callback to the supplied (bogus) URI and, of course, there is nothing at the endpoint. You take this callback from the browser's location bar, paste it into the clipboard and invoke the getgrant call
client>getgrant grant=https://surge.ncsa.illinois.edu/oauth2/authzGrant/69423b7a0ff66ba67b6beb777baa4fce/1473714031677
This call will read from the clipboard and update the internal state of the program. (This is managing a full client instance behind the scenes which takes quite some little work, but fortunately, you don't have to do any of that.) It prints out the grant that the server issued, mostly so you can see it. Now you are in a position to get an access token. You should issue the getat call
client>getat access token = https://surge.ncsa.illinois.edu/oauth2/accessToken/6843e396a91fb7e0bbdaa16d911a3f71/1473714329017 refresh token = https://surge.ncsa.illinois.edu/oauth2/refreshToken/3bb669051069bc68dc04beee9519c3ac/1473714329017 RT expires in =<PHONE_NUMBER> ms. expires at Sat Sep 24 05:52:09 CDT 2016
This gets the access token from the server as well as any refresh token. It then prints out a small summary of these. (And it updates the internal state of the client, of course.) There are various things you can do at this point. since you have a valid access token. Nota Bene: an access token is valid for a short time -- server default is about 15 minutes. If you attempt to use the access token after that to get, say, a certificate, then you will get an error from the server. Notice though that the refresh token expires far into the future, in this case 1,000,000,000 ms or about 11.5 days. You may use the getrt call to get a new access token and refresh token:
client>getrt access token = https://surge.ncsa.illinois.edu/oauth2/accessToken/3fa47d0e6cfe4e25d9d256e248ca19ae/1473776351782 refresh token = https://surge.ncsa.illinois.edu/oauth2/refreshToken/41fb6c4b054dfe034865c77ed0921ee4/1473776351782 RT expires in =<PHONE_NUMBER> ms. expires at Sat Sep 24 23:05:51 CDT 2016
In any case, as long as you have a valid access token, you may get a certificate or user information. We will do examples of each of these in turn. First, the getuserinfo call.
client>getuserinfo user info: sub = jgaynor
In this case the test server we are using is configured for the absolute minimum of information. It merely returns the username (i.e. the name used to authenticate). The getcert call will return a certificate and if the server returns the username (which is the same as the subject of the user info call) it will be displayed too:
client>getcert returned username=jgaynor X509Certs: -----BEGIN CERTIFICATE----- MIIEPDCCAySgAwIBAgIEAJgjqTANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxODA2BgNV BAoTL05hdGlvbmFsIENlbnRlciBmb3IgU3VwZXJjb21wdXRpbmcgQXBwbGljYXRpb25zMSAwHgYD VQQLExdDZXJ0aWZpY2F0ZSBBdXRob3JpdGllczEYMBYGA1UEAxMPTXlQcm94eSBDQSAyMDEzMB4X DTE2MDkxMzE0NTQwNVoXDTE2MDkxMzE3MjMwNVowYzELMAkGA1UEBhMCVVMxODA2BgNVBAoTL05h dGlvbmFsIENlbnRlciBmb3IgU3VwZXJjb21wdXpbjmcgQXBwbGljYXRpb25zMRowGAYDVQQDExFK ZWZmcmV5IEouIEdheW5vcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJaJ9l0PNC+m LfHeonAya5pHe9vWlLfb/+s4ww7XC3MWGXkvELYQHbdHBTiBA+FVQj4lNmBEsj0uFPMbEd3F8Jr7 T7SSR/sOJ5DH0jXmp01wxcUkSPkt/79eWDpLpsxE4vQfcQq9qaPQ6XQO1yk+E7q3OouUkLCTC+1e xku8hxFb0/wD8A4dP/MNHKRcMg9fTD+gANYfq2iyt15OtvlbItxEi6g394YIAmj8muYMIMziJ8UV 2AcT/ucXvMf/2Y5msXRpMRVsARuS4/a4a0KFHt3ULgdtKa+CAcOEFpPCm0eT5pUT0r6ouaYOcuLm mHWQtqSEsYheqFpDIEIR9JcFdIECAwEAAaOB1jCB0zAOBgNVHQ8BAf8EBAMCBLAwHQYDVR0OBBYE FK9KtBSM4nBxPwt8NI8YdI9mptp+MB8GA1UdIwQYMBaAFB8vWYRvh04Y2sMBhRWyjEK6/KeyMAwG A1UdEwEB/wQCMAAwNAYDVR0gBC0wKzAMBgorBQ2EAaQ+ZAIJMAwGCiqGSIb3TAUCAgMwDQYLKoZI hvdMBQIDAgEwPQYDVR0fBDYwNDAyoDCgLoYsaHR0cDovL2NybC5uY3NhLmlsbGlub2lzLmVkdS9t eXByb3h5MjAxMy5jcmwwDQYJKoZIhvcNAQELBQADggEBAB9zK+5bOBRC75llbt7fuah+D566qqD4 kkeCJ9YxIdj7zjaz9GU4PALJdGvNPL9RGfI0i7xm3xZsrkUFRJ8EVf1VJmRphBk7ysQgqQfxm0TH YBQcUDwY+HE9Rb0ca5L5exz24mAzSEOAJvCrmOs123yP7NH32cbidlEaS27tP4u3U1csDEaNFIor TEPVI+S7tuAxs1zhi4C6pl9Oi3D96XsUDZxPHJx0pyE5G1QtHOWchmFm6qpPs6nLy9CDfF6/7AOo 9l+pSAHMvX3Ojh1tNB1O7+F+CHr7AP4Fi0R5mmsrHYpQuAfFfU84qUnHb+rEwqckBV11ffcvmH9L 5ArThNY= -----END CERTIFICATE-----
You may cut and paste this or you can save it (PEM encoded) to a file using the savecert command:
client>savecert /tmp/mycert.pem File "/tmp/mycert.pem" saved successfully.
It is useful to state that you may keep renewing the refresh token and getting certs. As long as you renew the refresh token before it expires, this may be done indefinitely. As long as you have a valid access token (such as right after getting a new refresh token) you may get a cert.
In a similar way, you may use the exchange command, which exercises RFC 8693 so if you need to test this support on the server, it is very easy to do so.


{% extends 'accounts/main.html' %} {% load static %} {% block content %}
Are you sure you want to delete {{order}}?


Preparation time
over 2 hours
Cooking time
30 mins to 1 hour
Serves
Serves 6-8
Dietary
For the caramel, place the butter and sugar into a non-stick pan over a low heat, stirring until the butter melts and the sugar dissolves. Add the condensed milk and slowly bring to the boil, stirring continuously, to make the caramel. As soon as the mixture thickens and begins to smell of caramel, remove from the heat.
For the shortbread, preheat the oven to 200C/400F/Gas 6.
Place the butter and sugar into a bowl and whisk together until light and fluffy.
Add the cornflour and plain flour and mix to form a smooth dough. Gently knead the dough until it comes together as a ball.
Line a 20cm x 30cm/8in x 12in baking tin with baking parchment.
Flatten the dough lightly with a rolling pin, then place the dough into the bottom of the tin, evening it out and into all of the corners.
Transfer to the oven and bake for 25 minutes. Remove from the oven and spread the caramelised condensed milk evenly over the top of the shortbread. Return to the oven for 5-6 minutes.
Meanwhile, place the chocolate into a bowl and place over a pan of barely simmering water (do not let the water touch the bowl). Cook for 5-8 minutes, or until the chocolate has melted.
Remove the shortbread from the oven and place the bananas on top of the caramel.
Pour the chocolate over the bananas until they are just covered. Set aside to cool until the chocolate is firm.
For the banana 'ice cream', place the bananas onto a baking sheet and place in the freezer. Freeze for at least one hour - until firm.
When ready to serve the shortbread, place the frozen banana into a food processor. Add the vanilla essence, caster sugar and buttermilk and blend to a purée. The mixture should be frozen but slightly soft.
To serve, cut the shortbread into even squares in the tin. Remove a square and place onto a serving plate. Top with a ball of the banana 'ice cream' and a slice of banana.


Fight of the Day: Mohamed Mezouari vs. Sitthichai Sitsongpeenong
by Luke Irwin
Date: April 26, 2016
Card: Kunlun Fight 43
Championship(s):
Venue: Zhoukou Gymnasium
Location: Zhoukou, China
Date: April 26, 2016
Card: Kunlun Fight 43
Championship(s):
Venue: Zhoukou Gymnasium
Location: Zhoukou, China


Basic is a Bootstrap 4+ boilerplate with Gulp4, cross-env, Sass, sourcemaps, concat, CSS & HTML minification, uglify, image optimization, template partials, BrowserSync.
Learn more »
KAME
HAME
HA


{% include head.html %}
On Deck
Adding Latitude and Longitude given a location using Geocoder library
Coming Soon


Apps are local JavaScript and CSS files that run as asynchronous packages.
An app will have at least two to three parts:
Let's create the most basic of apps. This will display a javascript message that says "Hello World".
alert 'hello world'
'ks:helloworld'
to your k$.apps
array.
apps: [ 'ks:sample-app' 'ks:tinygrowl' 'ks:ang-app' 'ks:helloworld' ]
This app will do the same as our first but will get the alert from another js file and load a css file.
define [ './helloworld' './helloworld.css!' ], () ->
Be sure you have the "!" after the .css
We're telling JSPM to look for two resources, helloworld.js and helloworld.css. We don't have to write '.js' but you'll need to specify a css file is being loaded with the extension and an exclamation point.
alert 'hello world'
body background-color: orange !important
This is a stylus file, which will be converted by roots to a .css file as we watch and compile. The !important
suffix overrides any other declaration of background-color on the body. This won't be pretty, but it will be a useful test.
Continuing with our hello world app from the previous two examples, this app will need to know jQuery is loaded before it tries to use $ functions.
define [ 'jquery' './helloworld.css!' ], ($) -> alert 'Hello world. Running jQuery version ' + $.fn.jquery
In more realistic scenario, we may be writing code that relies on a library which relies on jQuery. JSPM's Require.js syntax provides a very clean, DRY way to handle this.
Let's say I want to use garlic.js. This caches all your form values in the user's browser in case they accidentally navigate away.
define ['garlic'], () -> $('form').garlic()
Notice we didn't denote the local directory with ./
. This is because we're going to define it later in _jspm.coffee.
map:
'garlic': 'cdnjs:garlic.js/1.2.2/garlic.min'
This tells JSPM garlic
means a CDN link to garlic on cdnjs.com. Because garlic.js is hosted on cdnjs.com, we can use JSPM's shortcut syntax.
shim:
'ks:garlic'<EMAIL_ADDRESS>This will ensure garlic.js is only allowed to run if jquery has been loaded as well. By creating this requirement in _jspm.coffee, we also ensure this is a rule throughout the application.


This application provides an authentication endpoint supporting two types of credentials:
Username/Password
The default user is jane/abcd1234.
Token based
A valid token is valid_token.


Jama Capstone Project: overView
Working with a team of 6 others, the project for Jama was designed to show a traceability graph of all
the project items in a Software Development Lifecycle. For large clients, like Boeing/NASA it is
imperative that they be able to track and observe bugs carefully. With this in mind, we used D3.js to
visualize the relationships between items that we pulled from the Jama Servers using their REST API. We
included the ability to highlight, collapse, and toggle node selections. Nodes and Edges have hover
tool-tips enabled. Any bugs/suspect issues would be flagged in orange. Collapsed nodes would have a
numerical indicator showing their downstream items.
FRED API Project: I pulled the data for the graph from the remote server at St. Louis using their FRED API. Once I pulled in the data, I converted it into JSON and then stored the sections I needed and discarded the rest. Finally, the data was uploaded into a Google Line Graph. The graph is able to toggle the data by selecting which sections are to be shown based on a set of flags. For a more technical view please view the comments in the index.html file and FRED.js file.
Links to resources:
YQL Console for Encoding
Google Line Charts Docs
FRED API Docs


Good to go! This page is fully functional.
userName . "')";
$credentialResult = $db_con->query($dbStr);
$gitResult = $db_con->query("SELECT `GitName`, `GitEmail`, `GitUsername`, AES_DECRYPT(`GitPassword`, '" . $_SESSION['sfToken'] . "') as `GitPassword` FROM `User` WHERE `Username` = '" . $userInfo->userName . "'");
if ($credentialResult->num_rows == 0 || $gitResult->num_rows == 0) {
?>
Error: There was an error starting the scan job.
fetch_assoc();
$git = $gitResult->fetch_assoc();
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_block($socket);
$communicationError = false;
if ($socket === false) {
$communicationError = true;
} else {
$socketResult = socket_connect($socket, "localhost", 43442);
if ($socketResult === false) {
$communicationError = true;
} else {
$out = '';
while (($out = trim(socket_read($socket, 2048, PHP_NORMAL_READ))) === '') {}
if ($out !== "Ready!") {
$communicationError = true;
} else {
$message = "scan environment " .
"--name=" . $_POST['Target'] . " " .
"--username=" . $row['Username'] . " " .
"--password=" . $row['Password'] . " " .
"--token=" . $row['Token'] . " " .
"--gitUsername=" . $git['GitUsername'] . " " .
"--gitPassword=" . $git['GitPassword'] . " " .
"--gitFullName=\"" . $git['GitName'] . "\" " .
"--gitEmail=" . $git['GitEmail'];
if (isset($_POST['Date']) && $_POST['Date'] != NULL && $_POST['Date'] != '') {
$message .= ' --schedule="' . $_POST['Date'] . '"';
}
$message .= "\r\n";
socket_write($socket, $message, strlen($message));
$out = '';
while (($out = trim(socket_read($socket, 2048, PHP_NORMAL_READ))) === '') {}
if (strpos($out, 'SUCCESS') !== false) {
$resultComponents = explode(': ', $out);
auditLog(null, 'Started scan environment job
#' . $resultComponents[2]) . '';
?>
Success: Job
# was started successfully.
Error: There was an error starting the scan job.
userName . "')";
$originCredentialResult = $db_con->query($dbStr);
$dbStr = "SELECT `Username`, " .
"AES_DECRYPT(`Password`, '" . $_SESSION['sfToken'] . "') as `Password`, " .
"AES_DECRYPT(`Token`, '" . $_SESSION['sfToken'] . "') as `Token` " .
"FROM `EnvironmentCredential` WHERE " .
"`EnvironmentID` = (SELECT `ID` FROM `Environment` WHERE `Name` = '" . $_POST['Target'] . "') AND " .
"`UserID` = (SELECT `ID` FROM `User` WHERE `Username` = '" . $userInfo->userName . "')";
$targetCredentialResult = $db_con->query($dbStr);
$gitResult = $db_con->query("SELECT `GitName`, `GitEmail`, `GitUsername`, AES_DECRYPT(`GitPassword`, '" . $_SESSION['sfToken'] . "') as `GitPassword` FROM `User` WHERE `Username` = '" . $userInfo->userName . "'");
if ($originCredentialResult->num_rows == 0 || $targetCredentialResult->num_rows == 0 || $gitResult->num_rows == 0) {
?>
Error: There was an error starting the deploy job.
fetch_assoc();
$targetRow = $targetCredentialResult->fetch_assoc();
$git = $gitResult->fetch_assoc();
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_block($socket);
$communicationError = false;
if ($socket === false) {
$communicationError = true;
} else {
$socketResult = socket_connect($socket, "localhost", 43442);
if ($socketResult === false) {
$communicationError = true;
} else {
$out = '';
while (($out = trim(socket_read($socket, 2048, PHP_NORMAL_READ))) === '') {}
if ($out !== "Ready!") {
$communicationError = true;
} else {
$message = "merge environments " .
"--origin=" . $_POST['Origin'] . " " .
"--originUsername=" . $originRow['Username'] . " " .
"--originPassword=" . $originRow['Password'] . " " .
"--originToken=" . $originRow['Token'] . " " .
"--target=" . $_POST['Target'] . " " .
"--targetUsername=" . $targetRow['Username'] . " " .
"--targetPassword=" . $targetRow['Password'] . " " .
"--targetToken=" . $targetRow['Token'] . " " .
"--gitUsername=" . $git['GitUsername'] . " " .
"--gitPassword=" . $git['GitPassword'] . " " .
"--gitFullName=\"" . $git['GitName'] . "\" " .
"--gitEmail=" . $git['GitEmail'];
$message .= "\r\n";
socket_write($socket, $message, strlen($message));
$out = '';
while (($out = trim(socket_read($socket, 2048, PHP_NORMAL_READ))) === '') {}
if (strpos($out, 'SUCCESS') !== false) {
$resultComponents = explode(': ', $out);
auditLog(null, 'Started deploy job
#' . $resultComponents[2]) . '';
?>
Success: Job
# was started successfully.
Error: There was an error starting the deploy job.
userName . "')";
$originCredentialResult = $db_con->query($dbStr);
$dbStr = "SELECT `Username`, " .
"AES_DECRYPT(`Password`, '" . $_SESSION['sfToken'] . "') as `Password`, " .
"AES_DECRYPT(`Token`, '" . $_SESSION['sfToken'] . "') as `Token` " .
"FROM `EnvironmentCredential` WHERE " .
"`EnvironmentID` = (SELECT `ID` FROM `Environment` WHERE `Name` = '" . $_POST['Target'] . "') AND " .
"`UserID` = (SELECT `ID` FROM `User` WHERE `Username` = '" . $userInfo->userName . "')";
$targetCredentialResult = $db_con->query($dbStr);
$gitResult = $db_con->query("SELECT `GitName`, `GitEmail`, `GitUsername`, AES_DECRYPT(`GitPassword`, '" . $_SESSION['sfToken'] . "') as `GitPassword` FROM `User` WHERE `Username` = '" . $userInfo->userName . "'");
if ($originCredentialResult->num_rows == 0 || $targetCredentialResult->num_rows == 0 || $gitResult->num_rows == 0) {
?>
Error: There was an error starting the rebase job.
fetch_assoc();
$targetRow = $targetCredentialResult->fetch_assoc();
$git = $gitResult->fetch_assoc();
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_block($socket);
$communicationError = false;
if ($socket === false) {
$communicationError = true;
} else {
$socketResult = socket_connect($socket, "localhost", 43442);
if ($socketResult === false) {
$communicationError = true;
} else {
$out = '';
while (($out = trim(socket_read($socket, 2048, PHP_NORMAL_READ))) === '') {}
if ($out !== "Ready!") {
$communicationError = true;
} else {
$message = "rebase environment " .
"--origin=" . $_POST['Origin'] . " " .
"--originUsername=" . $originRow['Username'] . " " .
"--originPassword=" . $originRow['Password'] . " " .
"--originToken=" . $originRow['Token'] . " " .
"--target=" . $_POST['Target'] . " " .
"--targetUsername=" . $targetRow['Username'] . " " .
"--targetPassword=" . $targetRow['Password'] . " " .
"--targetToken=" . $targetRow['Token'] . " " .
"--gitUsername=" . $git['GitUsername'] . " " .
"--gitPassword=" . $git['GitPassword'] . " " .
"--gitFullName=\"" . $git['GitName'] . "\" " .
"--gitEmail=" . $git['GitEmail'];
$message .= "\r\n";
socket_write($socket, $message, strlen($message));
$out = '';
while (($out = trim(socket_read($socket, 2048, PHP_NORMAL_READ))) === '') {}
if (strpos($out, 'SUCCESS') !== false) {
$resultComponents = explode(': ', $out);
auditLog(null, 'Started deploy job
#' . $resultComponents[2]) . '';
?>
Success: Job
# was started successfully.
Error: There was an error starting the rebase job.
Warning: No deployment actions are available until you configure your git settings in
your profile.
num_rows == 1) {
?>
Warning: Only Scan is available until at least two organizations are set up.
num_rows == 0) {
?>
Warning: No deployment actions are available until at least one organization is set up.


|
|||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
List
interface.
See:
Description
| Class Summary | |
| AbstractLinkedList | An abstract implementation of a linked list which provides numerous points for subclasses to override. |
| AbstractLinkedList.LinkedListIterator | A list iterator over the linked list. |
| AbstractLinkedList.LinkedSubList | The sublist implementation for AbstractLinkedList. |
| AbstractLinkedList.LinkedSubListIterator | A list iterator over the linked sub list. |
| AbstractLinkedList.Node | A node within the linked list. |
| AbstractListDecorator | Decorates another List to provide additional behaviour. |
| AbstractSerializableListDecorator | Serializable subclass of AbstractListDecorator. |
| CursorableLinkedList | A List implementation with a ListIterator that
allows concurrent modifications to the underlying list. |
| CursorableLinkedList.Cursor | An extended ListIterator that allows concurrent changes to
the underlying list. |
| FixedSizeList | Decorates another List to fix the size preventing add/remove. |
| LazyList | Decorates another List to create objects in the list on demand. |
| NodeCachingLinkedList | A List implementation that stores a cache of internal Node objects
in an effort to reduce wasteful object creation. |
| PredicatedList | Decorates another List to validate that all additions
match a specified predicate. |
| SetUniqueList | Decorates a List to ensure that no duplicates are present
much like a Set . |
| SynchronizedList | Decorates another List to synchronize its behaviour
for a multi-threaded environment. |
| TransformedList | Decorates another List to transform objects that are added. |
| TreeList | A List implementation that is optimised for fast insertions and
removals at any index in the list. |
| TypedList | Decorates another List to validate that elements
added are of a specific type. |
| UnmodifiableList | Decorates another List to ensure it can't be altered. |
This package contains implementations of the
List
interface.
The following implementations are provided in the package:
The following decorators are provided in the package:
|
|||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |


Home page
This is some text that I will complete a bit later
This is some text that I will complete a bit later
This is some text that I will complete a bit later
This is some text that I will complete a bit later
This is some text that I will complete a bit later
This is some text that I will complete a bit later


About Me
Phone:<PHONE_NUMBER>
Address: 27 Inner Drive Apt. I-5 Saint Paul, MN
Email<EMAIL_ADDRESS>Hardworking, trustworthy and motivated education major with a love of technology, geography and music.
Personable with great communication skills and exceptional at working cooperatively with colleagues.
Demonstrated ability to create and implement a variety of lesson plans through many successful hours of teaching and volunteering.
Motivated to help every child and willing to go the extra mile.
Edina Public Schools
March 2013 - Current
Premier Substitute
- Full time and first call substitute teacher for Cornelia Elementary
- Follows through with teachers' plans and works closely with grade-level teams to ensure students' success
- History of working in Special Education, Music, Art, ESL, and administrative roles in addition to K-6 classroom
teaching
- Fosters creative and individualized learning through the use of technology
Edina Public Schools
June 2015-August 2015
ELL Summer School Instructor
- Developed lesson plans for 5th grade English Language Learners as part of a team of teachers
- Created real world connections through hands on learning opportunities and activities
- Utilized technology to foster a classroom of personalized learning
Edina Public Schools
August 2012 - Jan 2013
Student Teacher
- Developed and implemented daily and unit lesson plans for a 1st grade classroom
- Partnered with a tenured mentor teacher to plan and administer
group and individual reading, math and science activities
University of St.Thomas
September 2011 - August 2012
GIS Lab Assistant, Geography Department
- Assisted and supported contracted community and academic customers with their specific Geographic Information Systems (GIS) project and mapping needs
- Supported Geography students with technology turning lab hours
- Provided aid and facilitation for University instructors during lectures and hands-on technology instruction
English Language Center
August 2013 - July 2014
Volunteer English and Math Tutor
-
Prepared recent immigrants for citizenship tests
and tutored students in basic math and English skills through one-on-one tutoring and classroom learning
- Create and individualized lessons for students to maximize thier learning
- Established meaningful relationships with students by demonstrating compassion, patience, and empathy throughout all interatctions


I received my Ph.D. in pyhsical oceanography from Xiamen University. I have strong interests in Oceanic eddy detection analysis from satellite remote sensing data, in-situ data and numerical product; oceanic numerical modeling and couple model simulation; dynamic analysis of oceanic mesoscale eddies influence the atmospheric marine boundary layer. I approach the problems by theory, numerical models, and observationsal data. Feel free to contact me if you have interests in my research.
The general ocean circulation is a great conveyor for water, heat and material, plays a key role in the global climate system. The classic wind-driven circulation theories based on Sverdrup balance have been celebrated since their establishment, but now they are seriously challenged by new observational evidences and discoveries. The classic theories cannot explain many salient features of the observed general circulation, and they neglect the effects of oceanic eddies, which are the most important discovery of physical oceanography over the last half of a century. Better understanding of the effect of eddy mixing on the large scale circulation will lead to more reasonable theories to describe the general ocean circulation.
Eddy identification methods can be classified into two categories: Eulerian methods based on instantaneous features of the velocity field (such as SSH contours and PV contours), and Lagrangian methods based on water parcel trajectories in a finite time interval. A wealth of literature has reported some appealing results about coherent eddy transport based on Eulerian eddy boundaries, especially the surprising zonal eddy mass transport (30Sv) in Zhang et al. (2014). However, our recent works built on Lagrangian framework indicate these Eulerian methods strongly overestimate the degree of material eddy transport. A new coherent eddy dataset in progress will provide an additional option for oceanographers in studying the interaction between coherent eddies and other physical or biochemical processes in the earth system.
The scientific community is becoming increasingly aware that open access to research code is an essential ingredient for scientific reproducibility and progress. My research code can be found in my online github repositories. Go to my github
Python has become my main programming weapon since I realized its powerful and efficient features.
Coming soon......


1 Followers 5 Follows
Joined at 2014-01-01
Last seen at 2014-01-01
No Data Available
{{index.indexValue}} by {{index.calculated}}


AccuRev Source Control Block¶
Source control integration for Accurev's source control product (http://www.accurev.com).
Version¶
Available from version 1.3
Examples¶
Minimalist example
1<sourcecontrol type="accurev">
2 <autoGetSource>true</autoGetSource>
3</sourcecontrol>
Full example
1<sourcecontrol type="accurev">
2 <autoGetSource>true</autoGetSource>
3 <executable>accurev.exe</executable>
4 <homeDir>.</homeDir>
5 <labelOnSuccess>false</labelOnSuccess>
6 <login>false</login>
7 <password>banana</password>
8 <principal>joe_user</principal>
9 <timeout units="minutes">10</timeout>
10 <workspace>.</workspace>
11</sourcecontrol>
Configuration Elements¶
| Element | Description | Type | Required | Default | Version |
| type | The type of source control block. | String - must be accurev | Yes | n/a | 1.3 |
| homeDir | Specifies the location of the AccuRev home directory. The pathname can be either absolute or relative to the project artifact directory. If not specified, AccuRev will follow its rules for determining the location. The home directory itself is always named ".accurev". Optional, default is to let AccuRev decide where the home directory is. |
String | No | None | 1.3 |
| password | Specifies the password for the AccuRev "principal" (userid). | PrivateString | No | None | 1.3 |
| principal | Specifies the AccuRev "principal" (userid) to run under. If not specified, AccuRev will follow its rules for determining the principal. | String | No | false | 1.3 |
| autoGetSource | Specifies whether the current version of the source should be retrieved from AccuRev. | Boolean | No | false | 1.3 |
| dynamicValues | The dynamic values to use for the source control block. | Dynamic Values array | No | None | 1.5 |
| executable | Specifies the path to the AccuRev command line tool. You should only have to include this element if the tool isn't in your path. By default, the AccuRev client installation process names it accurev.exe and puts it in C:\Program Files\AccuRev\bin. | String | No | accurev.exe | 1.3 |
| issueUrlBuilder | Converts the comment (or parts from it) into an url pointing to the issue for this build. See IssueUrlBuilder for more details. | IssueUrlBuilder | No | None | 1.4 |
| labelOnSuccess | Specifies whether or not CCNet should create an AccuRev snapshot when the build is successful. If set to true, CCNet will create a snapshot of the workspace's basis stream as of the starting time of the build, naming it according to the build label. | Boolean | No | false | 1.3 |
| login | Specifies whether or not CCNet should log in to AccuRev using the specified principal and password. If set to true, the principal and password elements are required, and CCNet will use them to log in to AccuRev before executing any AccuRev commands. If this is set to true, then both principal and password must be set. |
Boolean | No | false | 1.3 |
| timeout | Sets the timeout period for the source control operation. See Timeout Configuration for details. | Timeout Configuration | No | 10 minutes | 13 |
| workspace | Specifies the location on disk of the AccuRev workspace that CCNet monitors for changes. The pathname can be either absolute or relative to the project working directory, and must identify the top-level directory of the workspace. Note that this is not the same as the workspace name - AccuRev will determine the workspace name from the disk pathname. | String | No | false | 1.3 |
Notes¶
Known Issues¶
CruiseControl.NET doesn't see my changes
AccuRev depends on the clocks of the server and its clients ticking together. Make sure the clock of your build server is synchronized to the clock of your AccuRev server. See CCNET-271 for details on a similar problem with Rational ClearCase.
AccuRev says I'm "unknown" or "not authenticated"
AccuRev needs to know the userid that owns the workspace, and stores that information in files in the AccuRev home directory, which defaults to HOMEDRIVE%HOMEPATH%\.accurev. If there isn't any such directory, or if CCNet is running under a userid that isn't an AccuRev user, AccuRev will not be able to function correctly and the accurev info command may report that the user is unknown or not authenticated. You can use the homeDir element to force AccuRev to look for the .accurev directory in a particular location, such as the project's artifact directory.
Automatically Generated¶
Documentation generated on Saturday, 30 Jun 2012 at 6:00:12 AM


US formally begins withdrawal from Paris climate accord
The US on Monday formally notified the UN that it was withdrawing from the Paris climate accord, making the world's largest economy the sole outlier from the agreement.
US President Donald Trump went ahead with the pull-out despite mounting evidence of the reality and impact of climate change, with September the fourth month in the row with near- or record-breaking temperatures.
READ | House passes bill to keep US in Paris climate accord
The US presented its withdrawal letter to the UN on the first possible date under the accord negotiated by Trump's predecessor Barack Obama.
It will be officially out of the Paris accord on November 4, 2020, one day after the US election in which Trump is seeking a second term on appeals to the white working-class.
Announcing the move, Secretary of State Mike Pompeo reiterated Trump's rationale in 2017 that the accord would disadvantage US businesses.
"It was America that would suffer the straitjacket," Pompeo told the Fox Business network. "It would be quintessentially unfair to the American people and to the American workers."
'Franco-Chinese partnership'
Pompeo said in a statement that the US would advocate a "realistic and pragmatic model" that included renewal energy but preserved a role for fossil fuels.
French President Emmanuel Macron, who unsuccessfully tried to persuade Trump to stay in the accord named for his nation's capital, lamented the decision.
"We regret this and it makes the Franco-Chinese partnership on climate and biodiversity even more necessary," the French presidency said as Macron visited China, the world's largest emitter of greenhouse gases blamed for climate change.
The US, the number-two emitter, is still planning to attend this month's COP climate negotiations in Spain, according to a State Department official.
Pompeo in his statement pointed to a 13 percent US reduction of greenhouse gas emissions from 2005 to 2017 even as the economy grew.
But Trump, who took office in 2017, has pledged to turn back environmental regulations as states such as California and New York try to take stronger action on their own.
Trump has sought to block California from setting tighter standards on car emissions and moved to let states set their own standards on existing coal-fired power plants.
Robert Menendez, the top Democrat on the Senate Foreign Relations Committee, said that the Trump administration has "once again thumbed its nose at our allies, turned a blind eye to the facts and further politicized the world's greatest environmental challenge".


Chinese Food
  Japanese Food
  Mexican Food
  Italian Food
  French Food
< More Options >
Unadon
$8.00/Box
Rate: 4.8
Steamed white rice topped with grilled eel and half-cooked egg.
Chef: Yuri
Ingredient:
Unagi Kabayaki, Eggs, Yellow Onion, Nori, Roasted Sesame Seeds, Rice, Unagi sauce.
      More info...
Dumpling
$10.00/12
Rate: 4.9
Filled with minced chicken and spring onion.
Chef: Dachu
Ingredient:
Flour, Chopped minced chicken, Soy Sauce, Spring Onion, Minced ginger, Vegetable oil for frying
      More info...
Mango Pancake
$4.00/1
Rate: 5.0
Mango and whipped cream wrapped in crepe.
Chef: Jasmine
Ingredient:
Flour, Egg, Vegetable Oil, Butter, Milk, Diced Mango, Sugar
      More info...
Avocado stir-fry
$7.00
Rate: 4.9
Vegan stir-fry with avocado
Chef: James
Ingredient:
Avocado, Chopped tomato, Chopped bell paper
      More info...
Steamed Pork Buns
$1.50/1
Rate: 4.8
Filled with sauced pork
Chef: Chuchu
Ingredient:
Unagi Kabayaki, Eggs, Yellow Onion, Nori, Roasted Sesame Seeds, Rice, Unagi sauce.
      More info...


Library support for XML serialization.
See cmajor/projects/xmlSerializationTests/xmlSerializationTests.cms solution and XML serialization document for usage examples.


Industries: eCommerce, Manufacturing
Milwaukee Tool is a power tool company based in Brookfield, Wisconsin. They had a number of ongoing projects and new developments they wanted to bring to ONE-KEY, their bluetooth enabled power tool platform, but did not have the resources to develop all needed screens.
I worked with Milwaukee Tool for sixteen months, September 2015 to December 2017. Using a style guide I had previously developed, I split the iOS and Android apps from one style to two distinct applications. Over the course of a year, we were able to nearly completely redesign the apps.
While also updating older screens, the majority of my time was spent on adding or changing workflows. I personally developed a new on-boarding and login process, humanized their legalese, updated their “Tool Connect” and “Add Item” workflows and several smaller other projects. I worked alongside several developers and industrial designers on a number of physical products.
Customer reviews on the Android app store went up from 2.7 to 3.6 (out of five stars). The iOS application went from a 3.9 to a 4.1. We were able to completely modernize their style and quickly iterated through new projects, instead of redesigning everything.


Snake
GitHub
You died.
Restart
1. Enter your name (optional)
2. Join a room!
Room
Players
Action
Status


Log In
Oops! That page doesn’t exist or is private.
Popular
[IMPORTANT] Toxic Members, Reports & Punishments!

Recent
Is it possible to get a refund?
Hexus discord got raped
General
New Hexus Discord 18/10/20
General
New Discord link bby <3
Umm... What happend to the discord?
Help To Get Custom Make This Work
Is Hexus a good roblox exploit?
ROBLOX UPDATED GET YOU'RE BUTT TO WORK
Congratulations angular and chloe
General
How 2 change profile pic
More…
Search this site
Search


FAT GIRL (A ma soeur!)
Reviewed by Harvey Karten Cowboy Bookings International Director: Catherine Breillat Writer: Catherine Breillat Cast: Anais Reboux, Roxane Mesquida, Libero De Rienzo, Arsinee Khanjian, Romain Goupil, Laura Betti, Albert Goldberg, Claude Sese, Marc Samuel Screened at: Loews Screening Rm., NYC 10/2/01
Being an only child has its advantages, I suppose.  If a guy has a sister or a girl has a brother or even if you have a sib of the same gender, you get to be a mentor or a mentee, usually the older counseling the younger about the ways of dating, mating and the like. Sometimes the younger person gets to instruct the older, more experienced one, at least according to Catherine Breillat in her striking film "Fat Girl," which is seen from the point of view of a 12-year- old, the title figure, who is clearly less experienced than her 15- year-old sister but who somehow, simply by observing quietly gets to know the ropes vicariously and to use her knowledge to counsel the more attractive companion and family member.
"Fat Girl," selected for viewing at this year's New York Film Festival, is by the writer-director whose "Romance" two years ago stirred up as much discussion as "Mulholland Drive" has been doing nowadays, though for different reasons. "Romance," about a woman who is rejected by her lover and goes on a sexual odyssey is sexually explicit, but because writer-director Catherine Breillat went over the line with pornographic techniques into the field of gynecology rather than eroticism, the film was not really titillating. With "Fat Girl," on the other hand, Breillet wisely steers clears of the Debbie-Does-Dallas school of filmmaking--though full frontal nudity is no problem for her or her performers--but she uses the sexual scenes to show us their effect on the 12-year-old Anais (Anais Reboux). Anais is a cute enough pre-adolescent who has a weight problem, who overstuffs on French cuisine for the usual psychological reason of building up a layer of armor between her and the world.  The two girls share a love-hate relationship with their parents, played by Arsinee Khanjian and Romain Goupil, whose link with their daughters varies from detached to harshly critical.
The story takes place during a summer vacation in modern times, though the clothing is as retro as the mood. Anais watches every move of her sister Elena like a Greek chorus, detached, yet critical, now advising, now consoling, sometimes hostile. When she is off by herself swimming in the pool, she sings to herself and in one arresting scene photographer Yorgos Arvanitis captures her caressing the diving board, then fondling the ladder, while challenging the ladder to show envy toward her previous inanimate object of affection. When Elena meets Fernando (Libero De Rienzo), a third-year Italian law student on holiday, she takes no more than three minutes to begin cuddling with him in an outdoor cafe after which they proceed at night to her room where she engages in more intimacies, albeit greatly conflicted about losing her virginity. What gives the nocturnal scene its heft, so to speak, is that we witness it through the eyes of poor Anais, who is brimming with envy and who sees through Fernando's typically male "line" about how much he loves Elena and how he wants to see her "in the city." Elena and Anais have divergent views about what sort of relationship one should have before going all the way, a difference of philosophy that becomes a key point in the film, given the sudden turn of events that not only jolts the audience almost to its feet but encompasses the best payoff scene of any movie this year.
With an exceptional performance by Anais Reboux in the title role and a moving supporting part by Roxane Mesquida as the conflicted sister, "Fat Girl" becomes a heartfelt work about the altogether mixed joys of adolescence, giving us insight into sibling rivalry and what looks like an authentic look at what goes on in a young woman's mind when she resolves to give herself to a man for the first time.
Not Rated. Running time: 83 minutes. (C) 2001 by Harvey Karten<EMAIL_ADDRESS>========== X-RAMR-ID: 29681 X-Language: en X-RT-ReviewID: 252493 X-RT-TitleID: 1110567 X-RT-SourceID: 570 X-RT-AuthorID: 1123
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


title = "Contact" url = "/contact" layout = "default" is_hidden = 0 [contactform] [siteSearchInclude] == ==
This is our awesome contact page. yay


Mighty mighty Melbourne
We arrived late-ish at night, late enough for Iain anyway, who'd wanted to be here by 4 in the afternoon. Found a great Chinese/Malayasian restaurant called the "Happy Paradise". Top nosh, and quite cheap.. I've eaten there 3 nights in a row.
The next day we went to see "A Clockwork Orange" at the cinema, just for novelty value as it can't be seen at home. All I can say is - weird.
Next day, though, we went off to see an Aussie Rules Football match at the MCG (Melbourne Cricket Ground), with the other 83,769 people who were there! What an attendance! The game was between Richmond Tigers and Essendon Bombers. I was going to barrack for the Bombers, but then I heard their cheesy song at the start and switched to the Tigers. It was a great game, but the Bombers won in the end, The score was:
ESS 14.10.94
RICH 10.15.75
Confused? Essendon won, that's all. And it was a superb day out. We went there with a Kiwi called Gemma whom we met at the hostel, who was a good laugh.
Yesterday I dropped Steve and Ryan off at the airport (as I had Iain's car, who'd had to fly to Cairns), and I'm now awaiting Rob's arrival from Perth. He should have been here yesterday, but no news as of yet. I really like Melbourne - it's a well laid-back city, though after dropping Iain's car off at his mate's house yesterday I jumped on the tram, only to find two conductors on it! So I had to pay! Apparently this is an extreme rarity, but I was got, so I had to cough up. But it was only $2.20, which is still two-fifths of nothing in real money.
Back to the main page


Edit Profile
Go to Home
May 05,2014,03:00 pm
ID:
FullName:
Email
${user.email}
Roles
<
Phone
Gender
Birthday
Status
Create At:


Driver reported by police over Gawler crash that killed Paralympic legend Kieran Modra
A 26-year-old man has been reported by police over the Kingsford crash that claimed the life of Kieran Modra, but officers have not yet decided on a final charge.
The low-vision five-time Paralympic gold medallist was cycling to Clare from his home at Hallett Cove when he was hit by a Kia sedan on the Sturt Highway about 7am on Wednesday.
Modra, 47, died at the scene.
The driver of the Kia – a 26-year-old Greenwith man – was not injured but taken to Lyell McEwin Hospital as a precaution.
Major Crash officers on Thursday reported the man for driving offences and are continuing their investigations to determine the final charge.
The man will be summonsed to appear in court at a later date.
Modra’s death took South Australia’s road toll to 97, compared with 63 at the same time last year.


PICS: Mortar launcher, crossbows and AK-47s among weapons recovered during raid on suspected dagga lab
by Ntwaagae SelekaGauteng police have discovered an arms cache during a raid on a suspected dagga laboratory in Pretoria.
The weapons were found at a house in Gemsbok Street in Wierdabrug, Pretoria.
Police spokesperson Brigadier Vishnu Naidoo said members of the Pretoria and Shoshanguve K9 units had carried out the raid following a tip-off.
"Upon searching the premises, they found a suspected dagga laboratory inside the house and weapons. The members then widened their search and discovered what appeared to be hidden rooms inside and at the rear of the house.
"The rooms contained several weapons including AK-47s, pistols, revolvers, a mortar launcher, crossbows, ammunition boxes and a variety of other possibly illegal items," said Naidu.
He added the police, members of the crime intelligence unit, forensic experts and crime scene investigators were summoned to the scene.
"They combed the scene until late last night and have returned this morning to resume the search as well as to continue the management of the crime scene. Every item was individually analysed and all items with incriminating value were confiscated and packaged as evidence."
Naidu said the 50-year-old owner of the house had claimed to be a dealer and weapons collector.
"However, in terms of being a collector, initial investigations have revealed otherwise. Some firearms that should have been deactivated as collectors' items were in fact not deactivated.
"Furthermore, the South African Police Service will consider having all licences revoked in terms of the Firearms Control Act should the suspect be found guilty of any of offences. In the meantime, his dealer's licence is being suspended pending the outcome of the cases. The house and its contents have also been confiscated," said Naidu.
He added all weapons recovered will be sent for ballistic testing to establish if they were used in the commission of other crimes.
The owner of the house was arrested on charges of contravening the Firearms Control Act and Drug Trafficking Act.
Home Affairs Minister Aaron Motsoaledi and national police commissioner General Khehla Sitole lauded the integrated multi-disciplinary team which made the recovery.


Items
Data
Add
Item Id
Item Name
Primary Category
Secondary Category
Action
Add New Item
×
Item Name:
Primary Category:
Secondary Category:
Submit
Are you sure you want to delete this item :
?
×
Delete


Editorial: Listening, asking to be heard
by Neil HeinenMADISON, Wis. - Our listening item on this year’s editorial agenda is first and foremost a suggestion that we as citizens and neighbors listen to each other as best we can to better understand our shared concerns and values. Listening is a necessary step to getting past our divisiveness and finding ways to come together.
But sometimes we must also take steps to be heard. This is especially true when dealing with elected politicians why have traded in the will to listen for whatever they deem necessary to keep their jobs.
Saturday more than 150 people attended the first of its kind, statewide Fair Maps for Wisconsin Summit. This coming Tuesday citizens and activists and, we hope, many young people will gather at the State Capitol for a March for Dreamers to among other things end deportations.
Fair and just immigration reform and ending partisan gerrymandering are critical issues facing our state and our nation. On both citizens are right to demand they be heard.


Events¶
There are situations where you might want to react before or after an entity is modified. For example hashing the password of an user object instead of storing it directly in clear text in the database. Or you want to get an E-Mail every time someone deletes a library object.
This is what events are for. You can define closures which are executed in certain moments and can even interrupt the modification of the data.
This is how you define an event which is executed before an entity is created:
$app['crud']->getData('library')->pushEvent('before', 'create', function(CRUDlex\Entity $entity) {
// Do something with the entity which is about to be saved.
return true;
});
This code should go in your setup directly after the ServiceProvider is registered.
pushEvent takes three parameters:
- The moment of the event, can be:
- before
- after
- The action of the event, can be:
- create: On entity creation
- update: On entity update
- delete: On entity deletion
- createFiles: On created entity files handling
- updateFiles: On updated entity files handling
- deleteFiles: On deleted entity files handling
- deleteFile: On deleting a file of an entity
- The closure to execute on this event. Signature: function(CRUDlex\Entity $entity)
You can push as many events for a moment and an action as you like. They will be executed in the order they were added.
The before events must return a boolean. The first event returning false is canceling the whole action and so the entity doesn’t get created, updated or deleted.
With popEvent, the last added event of the given moment and action is removed from the list and the closure is returned:
$closure = $app['crud']->getData('library')->popEvent('before', 'create');
If no more events are available, popEvent will return null.