◆ __init__() [1/2]
| def assign_vector_to_conditions_process.AssignVectorToConditionsProcess.__init__ |
( |
|
self, |
|
|
|
Model, |
|
|
|
custom_settings |
|
) |
| |
◆ __init__() [2/2]
| def assign_vector_to_conditions_process.AssignVectorToConditionsProcess.__init__ |
( |
|
self, |
|
|
|
Model, |
|
|
|
custom_settings |
|
) |
| |
◆ AssignValueToConditions() [1/2]
| def assign_vector_to_conditions_process.AssignVectorToConditionsProcess.AssignValueToConditions |
( |
|
self | ) |
|
◆ AssignValueToConditions() [2/2]
| def assign_vector_to_conditions_process.AssignVectorToConditionsProcess.AssignValueToConditions |
( |
|
self | ) |
|
◆ BuildComponentsProcesses() [1/2]
| def assign_vector_to_conditions_process.AssignVectorToConditionsProcess.BuildComponentsProcesses |
( |
|
self | ) |
|
◆ BuildComponentsProcesses() [2/2]
| def assign_vector_to_conditions_process.AssignVectorToConditionsProcess.BuildComponentsProcesses |
( |
|
self | ) |
|
◆ ExecuteFinalizeSolutionStep() [1/2]
| def assign_vector_to_conditions_process.AssignVectorToConditionsProcess.ExecuteFinalizeSolutionStep |
( |
|
self | ) |
|
◆ ExecuteFinalizeSolutionStep() [2/2]
| def assign_vector_to_conditions_process.AssignVectorToConditionsProcess.ExecuteFinalizeSolutionStep |
( |
|
self | ) |
|
◆ ExecuteInitialize() [1/2]
| def assign_vector_to_conditions_process.AssignVectorToConditionsProcess.ExecuteInitialize |
( |
|
self | ) |
|
◆ ExecuteInitialize() [2/2]
| def assign_vector_to_conditions_process.AssignVectorToConditionsProcess.ExecuteInitialize |
( |
|
self | ) |
|
◆ ExecuteInitializeSolutionStep() [1/2]
| def assign_vector_to_conditions_process.AssignVectorToConditionsProcess.ExecuteInitializeSolutionStep |
( |
|
self | ) |
|
◆ ExecuteInitializeSolutionStep() [2/2]
| def assign_vector_to_conditions_process.AssignVectorToConditionsProcess.ExecuteInitializeSolutionStep |
( |
|
self | ) |
|
◆ function() [1/2]
| def assign_vector_to_conditions_process.AssignVectorToConditionsProcess.function |
( |
|
self, |
|
|
|
t |
|
) |
| |
◆ function() [2/2]
| def assign_vector_to_conditions_process.AssignVectorToConditionsProcess.function |
( |
|
self, |
|
|
|
t |
|
) |
| |
◆ IsInsideInterval() [1/2]
| def assign_vector_to_conditions_process.AssignVectorToConditionsProcess.IsInsideInterval |
( |
|
self | ) |
|
◆ IsInsideInterval() [2/2]
| def assign_vector_to_conditions_process.AssignVectorToConditionsProcess.IsInsideInterval |
( |
|
self | ) |
|
◆ compiled_function
| assign_vector_to_conditions_process.AssignVectorToConditionsProcess.compiled_function |
◆ function_expression
| assign_vector_to_conditions_process.AssignVectorToConditionsProcess.function_expression |
◆ function_string
| assign_vector_to_conditions_process.AssignVectorToConditionsProcess.function_string |
◆ interval
| assign_vector_to_conditions_process.AssignVectorToConditionsProcess.interval |
◆ interval_ended
| assign_vector_to_conditions_process.AssignVectorToConditionsProcess.interval_ended |
◆ interval_started
| assign_vector_to_conditions_process.AssignVectorToConditionsProcess.interval_started |
◆ interval_string
| assign_vector_to_conditions_process.AssignVectorToConditionsProcess.interval_string |
◆ model_part
| assign_vector_to_conditions_process.AssignVectorToConditionsProcess.model_part |
◆ value
| assign_vector_to_conditions_process.AssignVectorToConditionsProcess.value |
◆ value_is_numeric
| assign_vector_to_conditions_process.AssignVectorToConditionsProcess.value_is_numeric |
◆ value_is_spatial_function
| assign_vector_to_conditions_process.AssignVectorToConditionsProcess.value_is_spatial_function |
The documentation for this class was generated from the following file:


A channel to discuss trading. For useful links and more info click the pinned messages to the right.
100 messages
Before 05-Dec-19 12:00 AM
passcombo.com 🏴☠🏴16-Jul-19 04:57 AM
well my first though was atom not sperm cell
more physics the biology guys
digital bullion16-Jul-19 04:58 AM
I think the logo is amazing, really anything different will be met with disapproval at first as psychologically people dont accept change very well, in time probably it will be viewed in a more positive light.
The logo looks like a little amoeba or some kind of cell structure, generating from its nucleus or core a copy of itself.
I think if considered from a tech standpoint or philosophically it is an adequate or fitting symbol, like spawning chains from the mainchain, generating clones from the original.
8
mrtzmp316-Jul-19 04:59 AM
+ + + , logo is lit
@digital bullion
Malti16-Jul-19 05:00 AM
Finally a true and good breakdown of the new logo. @digital bullion
mrtzmp316-Jul-19 05:00 AM
Beside particl logo it really shines in my taskbar
And stands out
Malti16-Jul-19 05:01 AM
The rebrand is also more than a new logo and website.  Not coin holders
Caglio16-Jul-19 05:02 AM
@Alexfrog protip 2, dont steal logo from other companies
Malti16-Jul-19 05:03 AM
I wonder what the biggest achievements of the biggest critics in this group are tbh
Caglio16-Jul-19 05:04 AM
@Malti you mean real life?
Malti16-Jul-19 05:04 AM
Yes
Alexfrog16-Jul-19 05:04 AM
complaining in KMD discord is definitely our largest achievement!
Malti16-Jul-19 05:05 AM
Well, that says enough
Caglio16-Jul-19 05:05 AM
I fucked one really famous holywood actress
and really hot one too
polycryptoblog16-Jul-19 05:05 AM
Who lol
Caglio16-Jul-19 05:06 AM
well that is for the other discussion, but as being poor Croatian guy, she was not into me for my money obviously
1
Alexfrog16-Jul-19 05:06 AM
I was awarded a PhD in komodo discord complaining from my local university.
Malti16-Jul-19 05:06 AM
Imagine working on this for a full year. Working and reworking every sentence of a website within a larger communication scheme. Just to see that your logo is being bashed by some people in a discord that are silent whenever a community marketing campaign is being proposed.
polycryptoblog16-Jul-19 05:07 AM
Got it ... Judy Dench
Caglio16-Jul-19 05:07 AM
well, imagine paying someone money tp rebrand ur logo
polycryptoblog16-Jul-19 05:07 AM
Caglio16-Jul-19 05:07 AM
and then they take ur money and give u nike rebrand logo
I have feeling that "ideas by nature" got their name, cos they have most natural ideas of us all
if someone else have smt, and u dont, steal it
best marketing team ever
@polycryptoblog lol at Judy Dench
actionslacks16-Jul-19 05:21 AM
they could use bitconnect's logo and it wont matter as long as the mobiledex works as intended
Caglio16-Jul-19 05:22 AM
what if noone uses it ?
what if ppl dont recognize the groundbreaking tech
joe2x416-Jul-19 05:24 AM
Caglio you are a chucklehead go back to your crack rock. The logo looks great, congrats marketing team.
actionslacks16-Jul-19 05:24 AM
if the govt's of the g20 decide to scrap their plan to crush exchanges i would be concerned about usage.
Caglio16-Jul-19 05:25 AM
@joe2x4 u cant be serious
actionslacks16-Jul-19 05:25 AM
with things as they are i dont think adoption will be an issue
Caglio16-Jul-19 05:25 AM
@actionslacks i hope so
joe2x416-Jul-19 05:30 AM
Bitching about logo = lame. This past weekend I went camping with a group, drank a shitload of mushroom tea, then helped kill a rattlesnake in the middle of night that got too close to camp. The rattlesnake meat was then cooked over the fire. Trust me, I'm not going to lose sleep over the new logo.
 I would really like to meet person that "invented" this logo. I have a different view on things than most of you, I would feel really offended if someone pulled such a trick with me, some people here obviously dont have problems with it, thats why I question your sanity
So without doing job that they were paid for, they take other ppl logo?  This is a comical logo no less no more
Provided to YouTube by Universal Music Group You Can't Always Get What You Want · The Rolling Stones The Rolling Stones In Mono 2016 ABKCO Music & Records,...
Provided to YouTube by Universal Music Group Mother's Little Helper (Mono) · The Rolling Stones The Rolling Stones In Mono 2016 ABKCO Music & Records, Inc....
Always ahead of his time: Modular design looked like the future decades ago. Today, it is more relevant than ever. Dieter Rams talks about the ideas behind h...
Andersen16-Jul-19 06:37 AM
I have no programming skills, and have never worked with the creation of blockchains. But just in 5 minutes I generated my chain using GUI. This is the success of KMD. Easier than ordering goods in Ebay. I applaud standing.
https://composer.kmd.io/(edited)
2
dan.16-Jul-19 06:46 AM
Nice. that's pretty cool
tolken16-Jul-19 06:53 AM
It is very cool. What are you going to do with the new chain?
dan.16-Jul-19 06:56 AM
New logos on cmc
altcoinist16-Jul-19 07:29 AM
how much does it cost run your smartchain?
i want to create one for fun
jl777c16-Jul-19 07:33 AM
depends on what options, like if you add it to atomicDEX or add dPoW
@Andersen gonna steal that screenshot for shilling purposes
1
@altcoinist if you dont want to use the builder and use your own hosting etc you can do it for free
But you need to be able to use cli etc
Might be the better option if doing it for the lulz and you are a bit tech savvy
because there ain't no sauce like cheap sauce
Sanyadurnov16-Jul-19 09:25 AM
And will all money from customers convert to kmd?
Cryptoon16-Jul-19 09:31 AM
That I do not know, at least part of it will be used to pay for notarization services etc, in which case it will go into CRYPTO, which needs to convert into kmd to payout dividends
Regarding other services not sure
Alexfrog16-Jul-19 09:55 AM
wow that is cool
Markus16-Jul-19 10:20 AM
seems like this is possibility for kmd to get some cash flow, hopefully it will be used to spread the word to bring adoption
Playing around with https://t.co/OH7Dsuh5mm - An easy to use instant blockchain creator that lets you launch your own chain with just a simple clicks with all the options you need for the not so tech savvy among us! $KMD @KomodoPlatform Just one of few things the rebrand b...
Gracie Berlusconi-san @Andersen
!arrrtip @Andersen 10
1
ARRR TipBotBOT16-Jul-19 10:24 AM
TipBot
@Cryptoon (Cryptoon#3362)
You tipped @Andersen9.9999 ARRR
A network fee of 0.0001 ARRR was deducted from the amount.
This operation is pending. You will be notified when when it has finished.
hyperDEX16-Jul-19 11:47 AM
whalebro is back
casual 19BTC buy
A few days ago up till 20k there was about 114BTC worth now down to 91BTC


Minmaxlist
Elixir library extending Enum.min_by/2
, Enum.max_by/2
and Enum.min_max_by/2
to return a list of results instead of just one.
This enables searching for all matching results based multiple min/max value criteria. See Examples.
Documentation
API documentation is available at http://hexdocs.pm/minmaxlist
Adding Minmaxlist To Your Project
To use Minmaxlist with your projects, edit your mix.exs
file and add it as a dependency:
defp deps do
[
{:minmaxlist, "~> x.x.x"},
]
end
Examples
Minmaxlist is designed to assist in filtering result sets by min/max value while returning list of results that matches the requirement. This is especially useful for example,
Find the youngest people with highest income.
import Minmaxlist
[
%{name: "A", age: 24, income: 4000},
%{name: "B", age: 22, income: 3300},
%{name: "C", age: 22, income: 2800},
%{name: "D", age: 25, income: 5000},
%{name: "E", age: 22, income: 3300},
%{name: "F", age: 25, income: 5500},
%{name: "G", age: 24, income: 4500},
] |> min_list_by(&(&1.age)) |> max_list_by(&(&1.income))
# => [%{name: "B", age: 22, income: 3300}, %{name: "E", age: 22, income: 3300}]
Find the youngest and oldest people,
import Minmaxlist
[
%{name: "A", age: 24, income: 4000},
%{name: "B", age: 22, income: 3300},
%{name: "C", age: 22, income: 2800},
%{name: "D", age: 25, income: 5000},
%{name: "E", age: 22, income: 3300},
%{name: "F", age: 25, income: 5500},
%{name: "G", age: 24, income: 4500},
] |> min_max_list_by(&(&1.age))
# => {
# [%{name: "B", age: 22, income: 3300}, %{name: "C", age: 22, income: 2800}, %{name: "E", age: 22, income: 3300}],
# [%{name: "D", age: 25, income: 5000}, %{name: "F", age: 25, income: 5500}]
# }


Hello Week
v1.4.0
Home
Documentation
Demos
Download
Today
Clear
Range
◀
▶
Summer Holidays
John Doe Birthday
Today:
n/a
Last Picked Day:
n/a
Picked Days:
n/a


Using Ractive.js and HTML5 Fetch API to consume REST API
Recently I was given a task to consume an open rest based API from Open Weather using Ractive.js and HTML5’s Fetch API
The sample app here takes the city name as input and shows the corresponding weather information below it.
Get the OpenWeather API keys for FREE!!!
In order to get the JSON data from OpenWeather’s REST API, the first thing we need to do is get their free API key. The API can be called by simply passing in this app id as query parameter. That’s it!
Setting the UI container
Create an HTML5 element to be used as the front of the app. In our case, it’s div#container
.
Implement responsiveness using Bootstrap
Just for implementing the responsiveness, we’ve included the Bootstrap reference. The classes .row .col-md-6 .col-sm-12
takes care of responsiveness itself.
Set the Ractive template
After adding ractive’s link, we’ve made sure that the code in the fiddle will be Ractive-aware.
The template is in the script tag. Note that we’ve set the script
’s type attribute to ‘text/ractive’ - though it can be just about anything except ‘text/javascript’. We can load a template in many ways. For convenience, we’ll include it in a script tag so that we don’t need to mess around with AJAX or multiline strings.
The curly braces e.g. are holding the data set inside the ractive function with e.g.
ractive.set('location', JSON.stringify(data.name) + ', ' + JSON.stringify(data.sys.country));
Set the ractive context
The Ractive
constructor function will be used to set the Ractive context. The parameters with their description are:
el
: the element to which the front end will be renderedtemplate
: the Ractive templatedata
: the data for the front end
Catching events
Ractive events looks a little different than pure HTML events, e.g. on-click. They’re catched in a samilar sense as that of jQuery.
Fire the fetch request
Prepare the fetch request using the Request
constructor function and fire it using fetch(request)
.
Use localStorage to maintain recent search history
The city input is stored in the localStorage instance as an array and displayed as the li
of ul
on click of each is the weather fetching request recap-ed.
See the whole code here.
Sources:


Each turn, a player repeatedly rolls a die until either a 1 is rolled or the player decides to "bank". If the player rolls a 1, they score nothing and it becomes the next player's turn. If the player rolls any other number, it is added to their turn total and the player's turn continues. If a player chooses to "bank", their turn total is added to their score, and it becomes the next player's turn.
The first player to score 100 or more points wins.
This variation is the same as Pig except two standard dice are rolled. If neither shows a 1, their sum is added to the turn total. If a single 1 is rolled, the player scores nothing and the turn ends. If two 1s are rolled, the player’s entire score is lost, and the turn ends.
The first player to score 100 or more points wins.


My name is Dylan Best. I am originally from Massachusetts and I currently live in Pittsburgh, PA. I attended the University of Pittsburgh and graduated in 2018 with a Bachelor's degree in Psychology. I worked for two years as a Data Analyst before enrolling in the coding bootcamp at the University of New Hampshire. My current career goal is to graduate this course and become a web developer. This portfolio will be used to demonstrate my projects completed in this course and act as a professional contact point.
Aside from my professional work, I am passionate about Ultimate Frisbee. I played for Pitt Men's Ultimate for 5 years in which we won a national silver medal in 2018. I also represented the USA in the World U24 Championships in Perth, Australia. Currently, I play semi-professional and club ultimate for the city of Pittsburgh. When I'm not on the field, you can find me playing Mario Party with friends, eating ice cream, or hanging out with my cat, Milo.


{{c.comment}}
Are you sure you want to DELETE the comment?
Created by {{c.created_by}} at {{c.created|dt}}


Ride for Life is a group of dedicated individuals that provide safe, reliable transportation for in-labor mothers from their location to a nearby medical facility. We take pride in making sure that each interaction is expedient, while also accomodating for the most comfortable ride possible.
We are right there when you need us! We know how important it is to have 24/7 access to medical transportation.
Our top priority is to get you safely to your destination! Our drivers are all safety trained to meet our promise to you.
Our app is accesible to anyone with a smart phone, so you can access our assistance no matter where you may be!


WITNESS LIST State Affairs Committee April 3, 2003 - 8:00A SB 7 FOR: Collett, Teresa (Self), The Woodlands, TX Dukes, David L. (Rescue the Family Christ in America Church, New Birth by Faith), Austin, TX Elieson, Kurt (Self), Carrollton, TX Gerstenschlager, Merry Lynn (Texas Eagle Forum), Weatherford, TX AGAINST: Bryant, Suzanne (Self), Austin, TX Delony, Andrew (Self), Austin, TX Ellis, Randall (Lesbian/Gay Rights Lobby of Texas), Austin, TX Graney, Daniel (ACLU of Texas), San Antonio, TX Hardy Garcia, Dianne (Self), Austin, TX Harrington, James C. (Texas Civil Rights Project), Austin, TX Henry, Deana (Self), Austin, TX Langsley, Karen (Self), Dripping Springs, TX Riddering, Hannah (Texas National Organization for Women), Austin, TX Rubio, Juan (Self), Austin, TX Smith, Matthew (Self), Austin, TX Registering, but not testifying: For: Anderson, Christopher Kirk (Self), Austin, TX Brady, Allan (Self), Austin, TX Brady, Sharon (Self), Austin, TX Chandler, William Brent (Self), Austin, TX Evans, Dr. Howard (Self), Austin, TX Ferguson, Daniel (Self), Austin, TX Ferguson, Meleah (Self), Austin, TX Galloway, Carolyn (Texas Eagle Forum), Dallas, TX Jasperson, Linda (Self), Austin, TX Leininger, Doug (Self), Austin, TX Matthews, Kenneth (Self), Austin, TX Nicholas, Jeremy (Self), Pflugerville, TX Olsen, Thomas (Self), Leander, TX Scales, Scott (Self), Round Rock, TX Simonsen, Thursten (Self), Austin, TX Storm, Eric (Self), Austin, TX Weber Anderson, Marieta (Self), Austin, TX Woods, Randall (Self), Cedar Park, TX Against: Baker, Allan (Self), Austin, TX Benes, James (Self), Austin, TX Boardman, John (Self), Austin, TX Buck, Renee (Self), Austin, TX Cramer, Pat (Austin Lesbian/Gay Political Caucus), Austin, TX Cunliff, Colin (Self), Austin, TX Goodfriend, Sarah (Self), Austin, TX Grimes, Mikal (Self), Austin, TX Hillhouse, Brandon (Self), Austin, TX Holzbach, Mark (Self), Austin, TX Latour, Lee (Self), Austin, TX Linton, James W. (Self), Leander, TX Marrero, Elizabeth (National Assoc. of Social Workers), Austin, TX Marriott, Sue (Self), Austin, TX Naylor, Bettie (Self), Austin, TX Norberg, Monica (Self), Austin, TX Riddles, R. Heath (Self), Austin, TX Rios, Brenda (Self), Austin, TX Robert, Brendan (Self), Austin, TX Rostow, Ann (Texas Triangle), Austin, TX Smith, Charles (Self), Austin, TX Trietsch, Matthew P. (Lesbian Gay Rights Lobby), Austin, TX Van Zant, Austin (Self), Austin, TX Velgos, Jay (Self), Austin, TX Voss, Tanya (Self), Austin, TX Wilkerson, Michael (Self), Austin, TX SB 703 Registering, but not testifying: For: Rowe, Sharon (TAEA- Texas Association of Elections Administrators), Plano, TX On: Norris, Catherine (Secretary of State), Austin, TX SB 984 Registering, but not testifying: For: Wilson, Barbara (Travis County), Austin, TX SB 993 Registering, but not testifying: For: Liner, Carolyn M. (Texas Municipal Retirement System), Austin, TX On: Anderson, Gary W. (Texas Municipal Retirement System), Austin, TX Gavia, David (Texas Municipal Retirement System), Austin, TX SB 1087 Registering, but not testifying: On: Stout, Linda (Secretary of State), Austin, TX Wassdorf, Lorna (Secretary of State), Austin, TX SB 1088 ON: Shea, Gwyn (Secretary of State), Austin, TX Registering, but not testifying: On: Riegler, John (Secretary of State), Austin, TX Stout, Linda (Secretary of State), Austin, TX Wassdorf, Lorna (Secretary of State), Austin, TX SB 1331 FOR: Stagner, Steve (Texas Council of Engineering Companies), Austin, TX


Log Class
The log class allows you to write messages to the log files.
Configuration
The log files are being placed in the folder specified by the attribute 'log_path' in the config.php. You can also set the 'log_threshold' and the 'log_date_format' parameters there.
These settings can also be changed on the fly by using the Config Class.
| log_threshold |
constant |
Fuel::L_WARNING
|
Can be any of the following: Fuel::L_NONE, Fuel::L_ERROR, Fuel::L_WARNING, Fuel::L_DEBUG, Fuel::L_INFO or Fuel::L_ALL
|
| log_file |
string |
null
|
Name of the log file. If not given, it will be generated in the form "./YYYY/MM/DD.log", with one logfile per day.
|
| log_path |
string |
APPPATH.'logs/'
|
Where to put the log file(s). (Folder must be writable)
|
| log_date_format |
string |
'Y-m-d H:i:s'
|
The date format for the log entries. This format must follow the PHP date format rules. See http://www.php.net/date for a complete list.
|
Usage
There are four predefined functions for ease of use:
Log::info()
Log::debug()
Log::warning()
Log::error()
They all use the main function Log::write() which requires the $level parameter as the first argument.
Some examples:
// Write a log entry with the level "Info" to the log file for the current day
$var = 1;
Log::info('Application started (with $var = '.$var.')', 'my_init_function()');
// Save the new value of $var to the log file, without the $method parameter
$var = 5;
Log::debug('$var is now '.$var);
// Send a warning log entry
if($var !== 1) Log::warning('Although $var has been changed, we will keep going.');
// Send an error log entry
if($var !== 1) Log::error('We cannot keep going, $var has been changed! :o');
// Finally, try to make a log entry with a custom $level
Log::write('Link', 'More info on https://fuelphp.com/');
Output
All log files are being placed in the defined folder (see above).
If you have configured a filename, all logs will be written to this file. You need to setup your own log rotation mechanism
(for example Linux logrotate) to avoid the file from becoming very large. If you have not configured a filename, log files
are composed in folders named by the current year followed by the month ("2013/06" for example)
with the day of the month as the filename ("15.php" for example).
The complete path to our example log file would be: APPPATH.'logs/2013/06/15.php'
The examples above would write the following code to the log file:
<?php defined('COREPATH') or exit('No direct script access allowed'); ?>
INFO - 2011-01-03 18:44:45 --> my_init_function() - Application started (with $var = 1)
DEBUG - 2011-01-03 18:44:45 --> $var is now 5
WARNING - 2011-01-03 18:44:45 --> Although $var has been changed, we will keep going.
ERROR - 2011-01-03 18:44:45 --> We cannot keep going, $var has been changed! :o
NOTICE - 2011-01-03 18:44:45 --> More info on https://fuelphp.com/
Note that the custom log level "Link" that was used to create the last line was mapped to "Notice". Since Fuel switched to using the Monolog package for logging, custom log levels are no longer supported, the mapping is there to provide backward compatibility with earlier Fuel versions.
info($msg, $method = null)
The info method allows you to write a log entry with the $level "Info".
| Static |
Yes |
| Parameters |
| Param |
Default |
Description |
| $msg |
required |
The message for the info log entry. |
| $method |
null
|
Information about the method which created the log entry. |
|
| Returns |
boolean |
| Example |
$var = 1; Log::info('Application started (with $var = '.$var.')', 'my_init_function()');
|
debug($msg, $method = null)
The debug method allows you to write a log entry with the $level "Debug".
| Static |
Yes |
| Parameters |
| Param |
Default |
Description |
| $msg |
required |
The message for the info log entry. |
| $method |
null
|
Information about the method which created the log entry. |
|
| Returns |
boolean |
| Example |
$var = 5; Log::debug('$var is now '.$var);
|
warning($msg, $method = null)
The warning method allows you to write a log entry with the $level "Warning".
| Static |
Yes |
| Parameters |
| Param |
Default |
Description |
| $msg |
required |
The message for the info log entry. |
| $method |
null
|
Information about the method which created the log entry. |
|
| Returns |
boolean |
| Example |
// we send a warning log entry if($var !== 1) Log::warning('Although $var has been changed, we will keep going.');
|
error($msg, $method = null)
The error method allows you to write a log entry with the $level "Error".
| Static |
Yes |
| Parameters |
| Param |
Default |
Description |
| $msg |
required |
The message for the info log entry. |
| $method |
null
|
Information about the method which created the log entry. |
|
| Returns |
boolean |
| Example |
// we send an error log entry if($var !== 1) Log::error('We cannot keep going, $var has been changed! :o');
|
write($level, $msg, $method = null)
The write method allows you to write a log entry with a custom $level.
| Static |
Yes |
| Parameters |
| Param |
Default |
Description |
| $level |
required |
A custom Level. |
| $msg |
required |
The message for the info log entry. |
| $method |
null
|
Information about the method which created the log entry. |
|
| Returns |
boolean |
| Example |
// and finally, we create a log entry with a custom $level
Log::write('Link', 'More info on https://fuelphp.com/')
|
Procedural helpers
logger($level, $msg, $method = null)
The logger function is an alias for Log::write.
| Parameters |
| Param |
Default |
Description |
| $level |
required |
A custom Level. |
| $msg |
required |
The message for the info log entry. |
| $method |
null
|
Information about the method which created the log entry. |
|
| Returns |
void |
| Example |
logger(\Fuel::L_INFO, 'My Message', 'SomeMethod');
|


You will need the devtools "Crome Scrapper" panel opened.
Activate the devtools panel with F12 or Ctrl+Shift+J.
With the devtools open, find and select the "Crome Scrapper" tab from the top menu of the devtools.
You may need to press the ">>" in order to find it.


Perfect Fit: the winning formula, by James Haskell
“In his guide to fitness and nutrition international rugby star James Haskell leads you seamlessly through every step of your journey towards a new body. This book is accessible to those who have yet to begin their fitness journey as well as those that already train regularly, providing new programmes and nutritional advice to help build a new physique.
“James’s ambition is to dispel the fog - to provide clarity, understanding and to motivate as well as inspire people to start to train properly and effectively.”
The Sugar Detox Plan: set yourself sugar-free in 12 weeks with this essential 3-step plan, by Kurt Mosetter, Wolfgang Simon, Thorsten Probost & Anna Cavelius
“Excessive consumption of sugar is thought to lead to a range of diseases, such as type-2 diabetes, cancer, depression and even neurodegenerative conditions such as Alzheimer’s and multiple sclerosis. The Sugar Detox Plan helps you identify hidden sugars and reduce consumption.”
Running for My Life: my 26.2 mile journey to health and happiness, by Rachel Cullen
“Suffering from bipolar disorder, and hungry for approval at any price, Rachel Cullen’s life was defined by failed relationships, an ill-fitting career and poor health to match.
“Stuck in an endless cycle of disappointment, and not knowing how to handle her mental illness, she put on a pair of old trainers. She’d never been able to think of herself as a ‘runner’, and the first time she forced herself out the door, she knew it would hurt. She just didn’t realise how much it would heal her, too.

 Leaving a comfortable job to pursue a passion is a brave, bold move - but it’s far from impossible.
“In this inspiring read, Mike Lewis has curated a community of people to share their stories about taking the leap into the unknown - people from all walks of life who left the safe inertia of their own circumstances to try and do what they really wanted to be doing. These are empowering, compelling tales about taking risks and embracing fear.”
The Art of Discarding: how to get rid of clutter and find joy, by Nagisa Tatsumi, translated by Angus Turvill
Start the new year with a satisfying clear-out:
“A combination of tiny homes and a love of stylish homeware has left Japanese people hungry for advice on organisation, decluttering and tidying up. Indeed, in this era of mass consumption, we are all drowning in ‘stuff’, despite our best efforts to keep on top of the clutter that collects in our homes, our office spaces and even our cars.
“Enter Nagisa Tatsumi and her bold suggestion - that it’s OK to throw stuff away. Tatsumi argues that we need to learn to let go, and tackles head-on the psychological issues that people have with getting rid of things, in particular a reluctance to discard things ‘just in case’, the desire to hoard things, and guilt about getting rid of things that were given as gifts.”
Mindfulness for Busy People: turning from frantic and frazzled into calm and composed, by Michael Sinclair, Josie Seydel & Emily Griffiths
An addition to our very popular mindfulness section:
“This volume will show you how to apply the transformative power of mindfulness to your busy life, helping you to de-stress, find your own unique space of calm and ready yourself for whatever challenges you face.”
Recharge: a year of self-care to focus on you, by Julie Montagu
Comprehensive self-care guide from the Grazia columnist:
“Recently named one of the top ten holistic health icons in the world, Julie Montagu knows a thing or two about health and happiness. In Recharge, she shares an abundance of guidance, tips and advice designed to help you keep self-care at the forefront of your mind and support you on your journey to a well-rounded sense of wellness.
“Recharge is your month-by-month self-care bible to help replenish your mind, body and soul. Each month of the year covers a specific area of self-care including mindful eating, managing stress, digital detox, rebuilding self-esteem, finding your passions and more.”
Stress: the psychology of managing pressure, by Jonathan Horowitz & Dianne McIntosh (eds.)
“Learn how to handle stress in every area of life, from the workplace to relationships, and emerge happier, healthier, and more productive.
Remember This When You’re Sad, by Maggy Van Eijk
“At 27, Maggy had the worst mental experience of her life so far. She ended a three-year relationship, drank too much, went to A&E over 12 times, saw three therapists, went to two burns units for self-harm and was sent to a mental health crisis team in an ambulance - it was quite the year.
“This book is about anxiety, depression and Maggy’s experiences dealing with panic attacks. It is also about being a young woman with the added pressure of having an untrustworthy mind. Beautifully written, hilarious and heartbreaking, Maggy’s story will offer comfort and hope to millions of people.”


3.3.1.c2 invalid schema
|
| open |
../../Chapt03/3.3/3.3.1/3.3.1.c2.xhtml |
&nsp; |
Opens the form |
| waitForModelReady |
|
|
|
| verifyTitle |
3.3.1.c2 invalid schema |
|
Makes sure this is the right form |
| verifyElementPresent |
xpath=/html/body/xforms:model[@schema='invalidSchema'] |
|
Checks that the model has the schema attribute on it |
| verifyElementPresent |
xpath=/html/body/xforms:model[@schema='invalidSchema']/xforms:action[@ev:event='xforms-link-exception']/xforms:message |
|
Checks that the message is in the form |
| click |
xpath=/html/body/div[contains(@class, 'yui-panel-container')]//div[@class='ft']/span/span/span/button |
|
Clicks on OK button |


Instrumental Variables
Welcome
Introduction!
Welcome to our sixth tutorial for the Statistics II: Statistical Modeling & Causal Inference (with R) course.
During this week's lecture you reviewed what happens when experiments break due to non-compliance. You were also introduced to encouragement experimental setups, and their the observational analogue, instrumental variables. Finally, you learned how you can estimate local average treatment effects by breaking out the variation in D into two parts.
In this lab session we will:
- Review how to manually extract the LATE through the wald estimator
- Learn how to perform Two-stage Least Squares regression (2SLS) with
ivreg()
from theAER
package - Illustrate the mechanics of Two-stage Least Squares regression (2SLS) with
lm()
Packages
# These are the libraries we will use today. Make sure to install them in your console in case you have not done so previously.
library(tidyverse) # To load the collection of packages in the tidyverse
library(dplyr) # To wrangle our data (this package is also loaded by library(tidyverse))
library(readr) # To load the .csv data (this package is also loaded by library(tidyverse))
library(ggplot2) # To create plots (this package is also loaded by library(tidyverse))
library(tidyr) # To use pivot_wider() (this package is also loaded by library(tidyverse))
library(ggdag) # To dagify and plot our DAG objects in R
#library(summarytools) # for ctable()
library(broom) # To format regression output
library(janitor) # To examine our data with tabyl()
library(stargazer) # To format model output
library(knitr) # To create HTML tables with kable()
library(kableExtra) # To format the HTML tables
library(AER) # To run 2SLS with ivreg()
Measuring the effect of mosquito net use on malaria infections
Imagine that the organization you work for is laying out a project to distribute mosquito nets to help combat malaria transmitions.
The funding agency requires a impact evaluation report from your organization. You are in charge of running the evaluation of this program.
You realize that there are potential unobserved counfounders that could bias the observed differences in malaria risk for mosquito net users and non-users. You also think about the ethical considerations of fully randomizing who receives the nets, so you remember your Statistics II lecture on IVs and set up an encouragement design.
Your benificiaries are scattered across ten villages.  (This example is using simulated data)
Assumptions
To render credible results for the evaluation of this program, we need to fulfill a certain set of assumtions:
a) Relevance: Also known as non-zero average encouragement effect. Does our \(Z\) create variation in our \(D\)? In other words, is the mosquito net use different under the encouragement group? (Statistically testable)
b) Exogeneity/Ignorability of the instrument: Potential outcomes and treatments are independent of \(Z\). In this case given by out randomization of encouragement by villages.
c) Exclusion restriction: The instrument only affects the outcome via the treatment. In other words, there are no alternative paths through which our SMS can have an effect on malaria infections other that the use of the mosquito nets.
d) Monotonicity: No defiers. We assume that non-compliers fall in the camp of always- and never-takers. We would not expect subjects who when encouraged would not use the nets, but would use them if they did not recieve the SMS reminder.
Exploring our data
evaluation_df <- readr::read_csv("https://raw.githubusercontent.com/seramirezruiz/stats-ii-lab/master/Session%205/data/evaluation_data.csv") # loading simulated data frame of the intervention
You receive the results of your intervention from the M&E officers. There are 1000 inhabitants across the ten villages. This is what the data look like:
village_name
: A character string with the name of the villagesms
: A binary marker for the SMS encouragementnet_use
: A binary marker for mosquito net usemalaria
: A binary marker for malaria infection
Compliance types
You may remember, this table from the lecture:
We can crosstabulate our data with janitor::tabyl()
and the additional features of the janitor::adorn_*
functions.
Why janitor::tabyl()
? Because as prospective policy analysts we will do a lot of counting.
As the vignette of the package even puts it:
Analysts do a lot of counting. Indeed, it’s been said that 'data science is mostly counting things.' But the base R function for counting, table()
, leaves much to be desired:
- It doesn’t accept data.frame inputs (and thus doesn’t play nicely with the %>% pipe)
- It doesn’t output data.frames
- Its results are hard to format. Compare the look and formatting choices of an R table to a Microsoft Excel PivotTable.
This is how it works. Say we are interested in exploring the number of persons in each of the observed strata, we would do:
evaluation_df %>% # your data frame
janitor::tabyl(net_use, sms) %>% # the two dimensions for the table (D, Z)
janitor::adorn_totals(c("row", "col")) %>% # add totals for rows and cols
knitr::kable() %>% # turn into a kable table for nice rendering in HTML
kableExtra::kable_styling() %>%
kableExtra::add_header_above(c("", "sms" = 2, "")) #add header for sms
| net_use | 0 | 1 | Total |
|---|---|---|---|
| 0 | 335 | 110 | 445 |
| 1 | 165 | 390 | 555 |
| Total | 500 | 500 | 1000 |
If you want to learn more about the syntax of tabyl()
, make sure to check the vignette
Exercise
Let's explore the compliance types from this table
- Where are our compliers and non-compliers?
- How many people were encouraged via SMS, but did not use the net?
- How many people were not encouraged via SMS, yet they utilized the net?
Average malaria infections across strata
We can utilize the tabyl()
syntax and our knowledge from the grammar of graphics to table and visualize the distribution of malaria on each stratum:
Table: Count of malaria infections across strata (Y,Z)
evaluation_df %>% # your data frame
janitor::tabyl(malaria, sms) %>% # the two dimensions for the table (Y, Z)
janitor::adorn_totals(c("row", "col")) %>% # add totals for rows and cols
knitr::kable() %>% # turn into a kable table for nice rendering in HTML
kableExtra::kable_styling() %>%
kableExtra::add_header_above(c("", "sms" = 2, "")) #add header for sms
evaluation_df %>% # your data frame
janitor::tabyl(malaria, sms) %>% # the two dimensions for the table (Y, Z)
janitor::adorn_totals(c("row", "col")) %>% # add totals for rows and cols
knitr::kable() %>% # turn into a kable table for nice rendering in HTML
kableExtra::kable_styling() %>%
kableExtra::add_header_above(c("", "sms" = 2, "")) #add header for sms
| malaria | 0 | 1 | Total |
|---|---|---|---|
| 0 | 248 | 410 | 658 |
| 1 | 252 | 90 | 342 |
| Total | 500 | 500 | 1000 |
Plot: Distribution of malaria infections across strata
ggplot(evaluation_df, aes(x = factor(sms),
y = factor(net_use),
color = factor(malaria))) +
geom_jitter() +
theme_minimal() +
scale_x_discrete(labels = c("SMS = 0", "SMS = 1")) +
scale_y_discrete(limits = c("1","0"), labels = c("NET = 1", "NET = 0")) +
scale_color_manual(values = c("#CDCDCD", "#CC0055"),
labels = c("Not infected", "Infected")) +
labs(x = "Encouragement",
y = "Treatment",
color = "") +
theme(legend.position = "bottom")
ggplot(evaluation_df, aes(x = factor(sms),
y = factor(net_use),
color = factor(malaria))) +
geom_jitter() +
theme_minimal() +
scale_x_discrete(labels = c("SMS = 0", "SMS = 1")) +
scale_y_discrete(limits = c("1","0"), labels = c("NET = 1", "NET = 0")) +
scale_color_manual(values = c("#CDCDCD", "#CC0055"),
labels = c("Not infected", "Infected")) +
labs(x = "Encouragement",
y = "Treatment",
color = "") +
theme(legend.position = "bottom")
Exercise
- What insights can we gather from the table and plot?
Exploring our set-up
Let's check whether SMS encouragement is a strong instrument
In other words, we are looking at the relevance assumption. Does our SMS encouragement create changes in our mosquito net use?
lm(net_use ~ sms, data = evaluation_df) %>%
stargazer::stargazer(type = "text")
##
## ===============================================
## Dependent variable:
## ---------------------------
## net_use
## -----------------------------------------------
## sms 0.450***
## (0.028)
##
## Constant 0.330***
## (0.020)
##
## -----------------------------------------------
## Observations 1,000
## R2 0.205
## Adjusted R2 0.204
## Residual Std. Error 0.444 (df = 998)
## F Statistic 257.315*** (df = 1; 998)
## ===============================================
## Note: *p<0.1; **p<0.05; ***p<0.01
Economists have established as a "rule-of-thumb" for the case of a single endogenous regressor to be considered a strong instrument should have a F-statistic 1 greater than 10. From this regression, we can see that SMS encouragement is a strong instrument.
Additionally, the substantive read in this case is that only 33% of those who did not receive the SMS utilized the mosquito nets, where as 78% of those who got the SMS encouragement did.
Let's gather a naïve estimate of mosquito net use and malaria infection.
Why do you think we call this a naïve estimate?
naive_model <- lm(malaria ~ net_use, data = evaluation_df)
stargazer::stargazer(naive_model, type = "text")
##
## ===============================================
## Dependent variable:
## ---------------------------
## malaria
## -----------------------------------------------
## net_use -0.615***
## (0.023)
##
## Constant 0.683***
## (0.017)
##
## -----------------------------------------------
## Observations 1,000
## R2 0.415
## Adjusted R2 0.414
## Residual Std. Error 0.363 (df = 998)
## F Statistic 707.002*** (df = 1; 998)
## ===============================================
## Note: *p<0.1; **p<0.05; ***p<0.01
Exercise
- What would our expectations be under the naïve model?
Let's gather our intent-to-treat effect (ITT)
This is the effect that our SMS encouragement had on malaria infections. \[ITT = E(Malaria_i|SMS=1) - E(Malaria_i|SMS=0)\]
itt_model <- lm(malaria ~ sms, data = evaluation_df)
stargazer::stargazer(itt_model, type = "text")
##
## ===============================================
## Dependent variable:
## ---------------------------
## malaria
## -----------------------------------------------
## sms -0.324***
## (0.028)
##
## Constant 0.504***
## (0.020)
##
## -----------------------------------------------
## Observations 1,000
## R2 0.117
## Adjusted R2 0.116
## Residual Std. Error 0.446 (df = 998)
## F Statistic 131.753*** (df = 1; 998)
## ===============================================
## Note: *p<0.1; **p<0.05; ***p<0.01
Exercise
- What does this tell us?
Let's gather out local average treatment effect (LATE)
We have several options for this:
- Wald Estimator We can calculate this by hand. Let's try that now using the values from the table we created earlier. We can also calculate the average malaria rates among those who did and did not receive an SMS (no SMS = 0.504, yes SMS = 0.18).
Table: Observations across strata (D,Z)
| net_use | 0 | 1 | Total |
|---|---|---|---|
| 0 | 335 | 110 | 445 |
| 1 | 165 | 390 | 555 |
| Total | 500 | 500 | 1000 |
Table: Count of malaria infections across strata (Y,Z)
| malaria | 0 | 1 | Total |
|---|---|---|---|
| 0 | 248 | 410 | 658 |
| 1 | 252 | 90 | 342 |
| Total | 500 | 500 | 1000 |
Local Average Treatment Effect (LATE) manually
\[LATE = \frac{cov(Y_i,Z_i)}{cov(D_i,Z_i)}\]
Let's take a look at our numerator \(cov(Y_i,Z_i)\), also \(ITT\)
\(E(Y|Z = 1) = \frac{90}{(410+90)} = 0.18\)
\(E(Y|Z = 0) = \frac{252}{(252+248)} = 0.504\)
Let's take a look at our denominator \(cov(D_i,Z_i)\)
\(E(D∣Z = 1) = \frac{390}{(390 + 110)} = 0.78\)
\(E(D∣Z = 0) = \frac{165}{(165 + 335)} = 0.33\)
We can calculate our LATE
\[LATE = \frac{(0.18 - 0.504)}{(0.78 - 0.33)} = -0.72\]
- Two-stage Least Squares (2SLS). We will learn how to do this with
ivreg()
, which is part of theAER
package. It fits instrumental-variable regression through two-stage least squares. The syntax is the following:
ivreg(outcome ~ treatment | instrument, data)
In our case:
late_model <- AER::ivreg(malaria ~ net_use | sms, data = evaluation_df)
summary(late_model)
##
## Call:
## AER::ivreg(formula = malaria ~ net_use | sms, data = evaluation_df)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.7416 -0.0216 -0.0216 0.2584 0.9784
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.74160 0.03089 24.00 <2e-16 ***
## net_use -0.72000 0.05159 -13.96 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.3671 on 998 degrees of freedom
## Multiple R-Squared: 0.4025, Adjusted R-squared: 0.4019
## Wald test: 194.8 on 1 and 998 DF, p-value: < 2.2e-16
Exercise
- What is the substantive reading of these results?
- What would you tell the funding partner in your evaluation report?
Mechanics behind two-stage least squares (2SLS)
What ivreg() is doing in the background is the following:
net_use_hat <- lm(net_use ~ sms, evaluation_df)$fitted.values # get fitted values from first stage (the part of x that is exogenously driven by z)
summary(lm(evaluation_df$malaria ~ net_use_hat)) # run second stage with instrumented x (careful, the standard errors are wrong; better use ivreg() from AER instead)
##
## Call:
## lm(formula = evaluation_df$malaria ~ net_use_hat)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.504 -0.180 -0.180 0.496 0.820
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.74160 0.03757 19.74 <2e-16 ***
## net_use_hat -0.72000 0.06273 -11.48 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.4463 on 998 degrees of freedom
## Multiple R-squared: 0.1166, Adjusted R-squared: 0.1157
## F-statistic: 131.8 on 1 and 998 DF, p-value: < 2.2e-16
Thinking about the validity of instruments
We can also adapt the ivreg()
syntax to accomodate valid conditional instruments:
AER::ivreg(Y ~ D + W | Z + W, data = your_df)
An F statistic is a value you get when you run an ANOVA test or a regression analysis to find out if the means between two populations are significantly different. It’s similar to a t-statistic from a t-test; A-T test will tell you if a single variable is statistically significant and an F test will tell you if a group of variables are jointly significant.↩


\(@\) \(\macroFail\) \(\miFail\) \(\moFail\) \(\msevenFail X\) \(\big\delimFail\) \(\delimFail\) \(\begin{fail}\end{fail}\) \(\cssId{colored}{\color{fail}{X}}\)


An Android client for the Mini60 and SARK100 bluetooth enabled antenna analyzers
Github home: https://github.com/ishmal/mini60
On IRC at: irc.geekshed.net #redditnet
Bob Jamison, KS5D


We're sorry but escx.github.io doesn't work properly without JavaScript enabled. Please enable it to continue.


pcf.cli package¶
Subpackages¶
Submodules¶
pcf.cli.cli module¶
Top-level CLI module for interacting with PCF Particles and Quasiparticles
-
class
pcf.cli.cli.
PCFCLI
(name=None, invoke_without_command=False, no_args_is_help=None, subcommand_metavar=None, chain=False, result_callback=None, **attrs)¶ Bases:
click.core.MultiCommand
-
command_dir
= '/Users/zal639/repos/Particle-Cloud-Framework/pcf/cli/commands'¶
-
get_command
(ctx, cmd_name)¶ Attempt to load and return the command provided by the user
-
list_commands
(ctx=None)¶ List command names and their descriptions
-
static
print_version
(ctx)¶ Print the pcf version
-
pcf.cli.utils module¶
Utility functions for the PCF CLI
-
pcf.cli.utils.
click_options
(options)¶ Decorator used to add a list of click.options to click command functions
-
pcf.cli.utils.
color
(color)¶ Return the desired color name or None if the NO_COLOR env var is set https://no-color.org
-
pcf.cli.utils.
did_you_mean
(suggestions=[], fg=None, exit_after=True, exit_code=1)¶ Print the ‘Did you mean’ message for the given suggestion string(s) in the optional color.
-
pcf.cli.utils.
execute_applying_command
(pcf_name, config_file, desired_state, cascade=False, quiet=False, timeout=None)¶ Executes the apply command for the desired particle(s) and state as specified in the config_file. Used for apply, run, stop, and terminate commands. Contains CLI output for info.
-
pcf.cli.utils.
fail
(error_msg, fg='red')¶ Display the error message and fail the CLI
-
pcf.cli.utils.
load_pcf_config_from_file
(filename)¶ Attempts to load and return the config dict as specified in the given file with the following default config file precedence: 1. pcf.json 2. pcf.yml 3. pcf.yaml
-
pcf.cli.utils.
particle_class_instance
(flavor, particle_config)¶ Return a particle class from a flavor or handle CLI error message
-
pcf.cli.utils.
particles_from_file
(pcf_name, filename, quiet=False)¶ Return a list of Particles from a PCF config file, returning only one Particle if pcf_name is not None
-
pcf.cli.utils.
read_config_file
(filename)¶ Loads the JSON/YAML filename and returns it as a dict.
-
pcf.cli.utils.
similar_strings
(given_str, search_list=[])¶ Returns a list of similar strings to given_str from an iterable of potentially similar strings, search_list.


After carefully soldering wires onto the tiny SMD pads of the Grid-EYE, we were able to communicate with the device over I2C and capture some live data. The gif to the left shows one person walking back and forth under the sensor while it was held 8 feet off of the ground.
This is a promising start - we're now confident that we can determine direction as well as differentiate between multiple people entering/exiting at the same time.
In the interest of rapid prototyping, we designed small breakout boards for each of our three major devices: the PIR motion detector, the Grid-EYE, and the RN2903 LoRaWAN module. The boards will be panelized so that we can break them apart and position them individually.
Each board is the simplest possible circuit to control the device, with control/output pins routed to GPIO headers. Each board also needs to be supplied separate power and ground.
Driving the RN2903 module from a Particle Photon we successfully connected to the LoRaWAN network and were able to publish data messages.
We also implemented an MQTT daemon process on our webserver that subscribes to the RX queue, receives messages from our device, and updates the database. These updates are shown in real time in a simple React-based frontend interface.
A long wait for parts delayed the final breakout boards, but we were finally able to complete each pcb with parts. Each component works as intended, and the small boards allow us to easily test multiple configurations.
Pictured here is our semi-final PCB design, integrating the SAM L21E MCU and the RN2903/GridEye breakouts. As with the previous print, these are 3 separate boards panelized together into the same print job. The RN2903 and GridEye breakouts are essentially the same, with the only functional change being the addition of large ground planes and through-hole vias in order to provide shielding for the RF components of the LoRa module.
The control board features the SAM L21E microcontroller and headers to connect each of the different sensor components by wire. We chose to keep the sensors on separate boards to allow for easy placement and configuration in our final housing. A key feature is that we do not route the 3.3V power lines directly to the headers - instead, power to each breakout module is controlled by a switching transistor through the MCU.
We finally got around to designing a case for our product! It's a rough print and certainly a draft design, but is able to houses all of our components and mount above a door frame. Additionally, we've integrated the full processing pipeline: from getting GridEYE frames to sending counts via LoRaWAN. The software for counting still needs to be tweaked for people counting and sleep2wake via the PIR sensor.
We're currently in the process of fixing the PCB design from last update to account for the small errors we made. A slimmer case is also in the works to give all the components a more snug fit and also add slots for a battery pack, indicator LED and power switch.
After one final PCB print run, we completed all of the control and sensor boards. Minor changes were made to the control board, including a dedicated FTDI header, LED indicator, reset button, and a 3.0V LDO voltage regulator in order to account for battery voltage dropoff. We also fixed an error we had in our power domain, where we were suppling power to the transistors from an invalid internal MCU supply.
We made use of the power analyzer one final time to capture an energy usage trace of our final product. As expected, our sleep current is around 0.5 mA and the GridEye active current is approximately 5.5 mA. We suspect there are firmware bugs inside of the RN2903 LoRaWAN chip, as we were observing extremely high idle/sleep current draws - on the order of 40 mA, when we are expecting no more than 2 mA for idle and 100 uA for sleep. We resolved this issue by power-gating the RN2903 chip completely. The lifetime of the device ended up being highly dependent on the traffic of the location it was monitoring. We estimated that in a high-traffic area like the library the device would last between 6 and 8 months, but in quieter environments such as an office building it could last up to a year an a half.
On May 12 we presented the final demo of our product to the public and a panel of judges from industry (Bosch, Intel) and university faculty. Shown in the image is our final integrated design mounted on a test doorframe. This prototype ran on 3 AA batteries (the wire was only used to capture heat map images for the demo), ideally for 8 months to 1.5 years.
At the end of the demo session, Occulow was selected by the judges as the best project! We are very proud of what we accomplished, but couldn't have done it without the help of the course staff. Thanks especially to Professor Rowe, Artur, and Craig for all of their support and advice.


Follow these simple steps to install a couchapp in your Callback appliction.
adb forward tcp:8984 tcp:PORT
couchapp push . http://localhost:8984/couchapp
curl -X POST -H "Content-Type: application/json" http://localhost:8984/couchapp/_compact
adb pull /mnt/sdcard/Android/data/com.couchbase.callback/db/couchapp.couch assets
ant debug


The following is all Student Council documents recorded since Semptember 2016. To find documentation older than the fall of 2016 please refer to Exeter Connect.
Download
Date
Meeting
Topic
File type
Useful Documents
The following is a list of the most important Student Council Documents.
Download
Document Name
Date
Purpose
StuCo Request for Funds
4/28/13
Submitted to Budgit committee for review.
PEA Daily Schedule
4/14/13
Outlines schedule formatting at Exeter.
StuCo House Rules
4/17/15
Standing rules for Student Council.
StuCo Reimbersing Form
10/20/15
Submitted to Budgit committee for review.
StuCo Constitution
4/17/15
The current constitution of the PEA Student Council.


Audio Patching
- Install the latest
Lilu +
AppleALC
- Set config.plist/Devices/Audio/Inject=N
O
Clover->DSDT Renames (if detected)
• AZAL->HDEF
• HDAS -> HDEF
Check Patch->General->Audio
Set the Layout ID drop down list
File->Export->Clover config.plist (overwrite your existing config.plist file)
Reboot
If you get no audio then go back to step 4 and try a different Layout ID
NOTE: If you try all Layout ID's and still have issues try setting the
Patch->Advanced->Spoof Audio Device ID option. If that doesn't work then try
installing
FakePCIID.kext + FakePCIID_Intel_HDMI_Audio.kext


{%extends 'register/base.html'%} {%block body_block%}
Your username and password didn't match. Please try again.
Forgot Password?


Thailand welcomes Pope Francis – in pictures
by Guy LanePope Francis arrives in Bangkok to boost morale of Catholic minority and speak about human trafficking
Members of the Salesian Band prepare for a rehearsal outside the National Stadium in the Pathum Wan district in Bangkok ahead of Pope Francis’s arrival
Schoolchildren wait outside the Apostolic Nunciature Embassy of the Holy See in Bangkok
Photograph: Manish Swarup/AP
A young girl dressed as a nun. Francis is the first pontiff to visit Thailand in nearly four decades
Photograph: Diego Azubel/EPA
A nun talks to schoolchildren as they wait at the Apostolic Nunciature Embassy of the Holy See
Photograph: Manish Swarup/AP
A man dressed as Pope Francis greets young students waving Thai and Vatican flags
Photograph: Diego Azubel/EPA
Catholic nuns practise for the main event
Photograph: Manish Swarup/AP
Francis’s visit will mark the 350th anniversary of the founding of the Mission de Siam and is aimed at promoting inter-religious dialogue
Photograph: Diego Azubel/EPA
Pope Francis, his spokesperson Matteo Bruni (right) and his trip organiser, Father Mauricio Ruedaand (left), greet journalists onboard his plane before arriving in Bangkok
Photograph: Gregorio Borgia/Pool/AFP/Getty Images
Francis was greeted by children in traditional costume
Photograph: Vatican Media/AFP/Getty Images
Francis is spending three days in Thailand, followed by three days in Japan
Photograph: Vatican Media/AFP/Getty Images
Francis walks with his cousin Ana Rosa Sivori (centre left) as he arrives at the Military Air Terminal of Don Muang airport in Bangkok. Sister Ana Rosa Sivori has been a missionary in Thailand since the 1960s and will serve as his translator during his visit.
Photograph: Ciro Fusco/EPA
Francis is expected to highlight his admiration in Thailand for the community’s missionary ancestors who brought the faith to this Buddhist nation centuries ago and endured bouts of persecution as recently as the 1940s.
Photograph: Manish Swarup/AP
Thirty-five years after St John Paul II became the first pope to visit Thailand, Francis is marking the 350th anniversary of the creation of a stable apostolic vicariate in Thailand, then known as Siam, after Dominican missionaries first brought the faith to the country in 1567
Photograph: Jorge Silva/Reuters


Print4JS - Demo 3: Print Code Highlight with highlight.js
This WebApp Demo is an AppLSAC showing one example of print features of WebApps.
-
The HTML content was rendered with highlight.js.
-
the rendered code highlight is used to generate the print window print_code.html .
-
will show the Javascript code in the text area
-
The content of the code highlight below will be used to generate the print window
Javascript Source for Printing:
You can alter the Javascript Code in the text area below prior to printing.
<< Demo Applications with Print4JS


First file: c:\a.zip
Second file: c:\b.zip
Added (2 entries)
zzz/foo.txt
bar.txt
Removed (0 entries)
Changed (3 entries)
my.jar
my.jar/Util.class
hello.txt
Generated at Sun Jun 27 14:05:48 GMT-08:00 2004


Home
Favorites
Can't decide what you want for dinner?
Let us decide for you!
WHAT'S FOR DINNER?
Have something specific in mind?
I want...
Select Cuisine
I don't want...
Select Cuisine
WHAT'S FOR DINNER?


Defined in Module impact.background-map, inherits from ig.Map
// Create BackgroundMap var data = [ [1,2,6], [0,3,5], [2,8,1], ]; var bg = new ig.BackgroundMap( 16, data, 'media/tileset.png' ); // Move bg.setScreenPos( 25, 10 ); // Draw bg.draw();
An ig.BackgroundMap
draws tiles from a Tileset, as indicated by its 2D data Array.
The size of the tileset image must a multiple of the tilesize, otherwise Impact will get confused with the tile numbering. E.g. with a tilesize of 32
the width and height of your tileset image should be one of: 32, 64, 96, 128…
You can either create a BackgroundMap by hand, or use the ig.Game class' .loadLevel() method, which takes the save data from Weltmeister and creates BackgroundMaps according to it.
BackgroundMaps can be pre-rendered into "chunks" instead of drawing each tile separately. This speeds up the drawing process immensely, especially on mobile devices. However, the pre-rendered mode needs more RAM and doesn't support tileset animations.
tilesize
Width and height of a single tile in pixelsdata
A 2D Array (Array of Arrays) indicating where to draw which tile from the Tileset. Note that the tile numbering is off by one, meaning that tile 0
draws nothing and tile 1
draws the zeroth (first) tile of the tileset image.tileset
Location of the image file or instance of ig.Image used as the TilesetAn object specifying the animations for certain tiles. Animations are not updated by the BackgroundMap, but must be updated externally. Usually ig.Game takes care of that – see ig.Game's .backgroundAnims property.
By default, this is an empty object ({}
) indicating no animations.
var data = [ [1,2,6], [0,3,5], [2,8,1], ]; var bg = new ig.BackgroundMap( 16, data, 'media/tileset.png' ); // sets tile number 5 of the BackgroundMap to be animated var as = new ig.AnimationSheet( 'media/tiles.png', 16, 16 ); bg.anims[5] = new ig.Animation( as, 0.1, [0,1,2,3,4] );
The chunk width and height in pixels for pre-rendered BackgroundMaps. The default is 512
. See .preRender.
iOS devices seem to support a chunk size of up to 4096, but testing showed no further performance gain with chunk sizes larger than 512.
If .preRender
and .debugChunks
are true
, the .draw()
method will draw a pink outline around each chunk.
Distance factor of the BackgroundMap, indicating how fast the Map scrolls when .setScreenPos()
is invoked. With a distance of 1
, the Map scrolls synchronous to the screen. With a distance of 2
the Map scrolls with half the speed, making it appear farther in the background. The default is 1
New in 1.17
Whether this layer will be drawn in front of all entities. This is set automatically by Weltmeister. The default is false
.
If set to true
, the next call to .draw()
will render the whole background map into chunks of .chunkSize
pixels and then use these chunks to draw the map.
Pre-rendered maps can not be animated but are usually drawn much faster than tiled maps.
The default is false
.
A Boolean, indicating whether drawing of the Map wraps at the edges. This is useful for secondary BackgroundMaps that are repeated continuously.
Scroll position of the BackgroundMap in screen coordinates with the Map's .distance
alreday factored in. Should only be read; use .setScreenPos()
to set the scroll position of the Map.
An instance of ig.Image representing the Tileset that is used for drawing, as set by the constructor or .setTileset()
Location of the loaded Tileset image (e.g. 'media/tileset.png'
)
Draws the BackgroundMap at its current .scroll position. If .preRender is true, the map's pre-rendered chunks are drawn, otherwise the map is drawn tile by tile.
Set the x
and y
position of the screen. The BackgroundMap's .scroll
position will be set acording to its .distance
Set a new Tileset. tileset
is the location of the image file or instance of ig.Image used as the Tileset.


Translate from English to French
Translate
Le rapide renard brun saute au dessus du chien paresseux.
Validate
Reject
The translation has been validated
Glad that you liked our translation! We'll save it in our database.
The translation has been rejected
A pity the translation isn't good! We'll do better next time!
New translation


First Last
Local Address
335 Name Street, Unit #
Town, Province, N2H 3Y6
1-519-500-1111
Permanent Address
62 6th Avenue
Town, Ontario, N4N 2V6
1-519-500-1111
Summary of Qualifications
- Bullet one Bullet one
- Bullet two Bullet two
- Bullet three Bullet three
- Bullet four Bullet four
- Bullet five Bullet Five
Work Experience
Start » End Year
Job Title One
Company Name, Address, City Province
- Bullet one Bullet one
- Bullet two Bullet two
- Bullet three Bullet three
- Bullet four Bullet four
Start » End Year
Job Title Two
Company Name, Address, City Province
- Bullet one Bullet one
- Bullet two Bullet two
- Bullet three Bullet three
- Bullet four Bullet four
Start » End Year
Job Title Three
Company Name, Address, City Province
Interest / Volunteer
Start » End Year
Volunteer Job Title
Company Name, Address, City Province
- Bullet one Bullet one
- Bullet two Bullet two
- Bullet three Bullet three
Education
- Candidate for Bachelor of Major, University, Province, StartYear - Present
- OSSD, Highschool, Town, Province, StartYear-EndYear
Academic Awards
- Year, Year, Name of award/Scholarship


FLY AWAY HOME A film review by Scott Renshaw Copyright 1996 Scott Renshaw
(Columbia) Starring: Anna Paquin, Jeff Daniels, Dana Delany, Terry Kinney. Screenplay: Robert Rodat, Vince McKewen. Producers: John Veitch, Carol Baum. Director: Carroll Ballard. Running Time: 106 minutes. MPAA Rating: PG (slight profanity) Reviewed by Scott Renshaw.
You will not find many family films which radiate the fundamental warmth and decency that FLY AWAY HOME does, and somehow that makes it more disappointing that it is not a better film. It is a story with an agreeably casual demeanor, positive messages to spare, and virtually nothing which could give offense (except for a pair of gratuitous profanities included in a calculated effort to avoid a "G" rating). Yet FLY AWAY HOME rarely manages to make the leap from agreeable to genuinely involving. In an era where most films seem to be striving to deafen you, FLY AWAY HOME is a film so soft-spoken it may cause a run on the theater's assisted listening devices.
Based on a true story, FLY AWAY HOME tells of 13-year-old Amy Alden (Anna Paquin), a child of divorce who returns to live in Ontario with her father Tom (Jeff Daniels) after the death of her mother. The two have trouble re-connecting after a decade apart, leaving Amy rather lonely. She finds unexpected companionship after she discovers a goose nest orphaned after a tractor plows through, and she cares for the eggs until they hatch. The result is a dozen goslings who imprint on Amy, believing her to be their mother. The problem is that the geese will need someone to teach them their southward migration route, leading artist and inventor Tom to consider a unique solution: teach Amy to fly an ultra-light aircraft so that she can guide her geese to their winter home in North Carolina.
I don't think that anyone will argue that the first half of FLY AWAY HOME is not simply lovely. Director Carroll Ballard (THE BLACK STALLION) inspires confidence in where he is likely to take us with a a credit sequence in which the car accident which claims the life of Amy's mother (after this film and BOGUS in consecutive weeks, will any child be willing to let his mother drive again?) is given a mournful weight. The sparkling cinematography, by the gifted Caleb Deschanel, and Mark Isham's multi-faceted score contribute to the charming scenes of Amy bonding with her flock, and clever low-angle shots make them more comical.
As sweet and unassuming as those scenes are, it soon becomes clear that there isn't much going on beneath the surface of FLY AWAY HOME. On the one hand, it is refreshing that we are not beaten over the head with the metaphorical significance of Amy's attachment to her avian orphans, or with weepy professions of father-daughter love after the obligatory period of estrangement. On the other hand, Robert Rodat and Vince McKewen don't give their characters enough substance, and the nominal family drama of FLY AWAY home is muted by the absence of enough early scenes showing us Amy's difficulty adjusting to her new circumstances. Amy tells us that school was terrible, but we don't see her experiencing any troubles; Tom pays little attention to her, but we don't see how that affects her. Jeff Daniels, Dana Delany (as Tom's girlfriend) and Terry Kinney (as Tom's brother) all do perfectly nice work, but the characters lack spark, and the story lacks the drama to accommodate their one-dimensional benevolence. It is almost as though Anna Paquin, still possessing the spooky detachment of THE PIANO even with the nose ring she sports in the film's second half, infects the entire production with her preternatural serenity.
The first half of the film does include a nominal villain, a fish and game warden (Jeremy Ratchford) who is made into a nastier character than he needed to be when he threatens the geese with pinioning; the second half tries to make up for the lack of conflict by including a handful of potential heavies, including sport hunters, real estate developers, and even the U. S. military. There are some fanciful moments during that flight, including Amy's late-night surprise at a military airfield, but other episodes serve little purpose, and the film drags a bit as it approaches its conclusion. None of this is likely to matter tremendously to young viewers, who will enjoy the adorable geese, and their parents, who will welcome the fundamental warmth and decency which they haven't seen nearly enough of. I just couldn't help wishing that FLY AWAY HOME, although it was based on a true story, had been pitched a bit less like a matter-of-fact documentary and allowed the conflict between Amy and Tom to matter a bit more. On the one occasion where Amy actually raises her voice, it is quite startling. Perhaps a few more voices could have been raised.
On the Renshaw scale of 0 to 10 feathers and daughters: 6.
Receive Scott Renshaw's reviews directly via email from Marquee! Visit http://www.marquee.com/marquee-mailinglists.html for details. Visit Scott Renshaw's MoviePage http://www-leland.stanford.edu/~srenshaw
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


- OpenCV-Python, Check for latest versions
- Download and install Python 2.7.x: I installed from windows version from https://www.python.org/downloads/
- Download and install Numpy: I installed numpy‑MKL‑1.8.2.win32‑py2.7.exe from http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy
- Download and install Matplotlib: I installed matplotlib-1.4.0.win32‑py2.7.exe from http://www.lfd.uci.edu/~gohlke/pythonlibs/#matplotlib
- Download and install six: I installed six‑1.8.0.win32‑py2.7.exe from http://www.lfd.uci.edu/~gohlke/pythonlibs/#six
- Download and install python-dateutil: I installed python‑dateutil‑2.2.win32‑py2.7.exe from http://www.lfd.uci.edu/~gohlke/pythonlibs/#python-dateutil
- Donwload and install pyparsing: I installed pyparsing‑2.0.2.win32‑py2.7.exe from http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyparsing
- Download and install scipy: I installed scipy‑0.14.0.win32‑py2.7.exe from http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy
- Download openCV (Check for actual latest version): I installed opencv-2.4.9 for windows, and then copied opencv/build/python/2.7/x86/cv2.pyd
-
Install scikit
- Download and install pip
- Add C:\Python27\Scripts to PATH environment variable
- Follow rest of instruction in http://scikit-learn.org/stable/install.html
- Install PIL: I installed Python Imaging Library 1.1.7 for Python 2.7 from http://www.pythonware.com/products/pil/
- To work with mp4 videos: Copy opencv_ffmpeg_64.dll to C:\Python27 directory and rename it to opencv_ffmpeg249_64.dll
- Useful Python Extension packages for windows
- Download dateutil, pyparsing, six as needed
- Install NLTK:
- Install setuptool for 64bit python
- Follow rest of instruction in http://www.nltk.org/install.html
- Install NLTK Data:http://www.nltk.org/data.html
- Install sigal for quick html generation:
C:\Python27\Scripts\easy_install sigal
- Install Python IDE: I installed Eclipse with PyDev http://pydev.org/manual_101_install.html
Helpful links for problem solving
Optimization libray cvxopt


Demo directives (components, attribute, structural)
Attribute directive
Test directive with hover
Componenet with template
Component with template and context
Structural directive
Message with template: {{message}}
{{messagesForStructural}}
Pipe demo
Normal power:
Boost factor:
Super Hero Power: {{power | exponentialStrength: factor}}
Component parameters passed in and out
Value to pass in: {{inserVarIn}}
Value from inside component: {{retrivedVar}}
Transcluded content
-- from template --


{% extends 'auth/auth-base.html'%} {% import 'bootstrap/wtf.html' as wtf%}
A place where great minds meet. Join us!
Don't have an account?


Maria:
Did you know there were survivors of the Dion Peasant Riot? They're desperately in need of help from an adventurer like you! You should try to help them when you've had more experience!
(This quest may only be undertaken by characters of level 30 and above.)


Travel in over 250 countries with no effort.
Hotel located near popular area.
Flight included in every purchased trip.


xntpd
implements a general purpose address-and-mask
based restriction list. The list is sorted by address and by mask, and
the list is searched in this order for matches, with the last match
found defining the restriction flags associated with the incoming
packets. The source address of incoming packets is used for the match,
with the 32-bit address being and'ed with the mask associated with the
restriction entry and then compared with the entry's address (which has
also been and'ed with the mask) to look for a match. Additional
information and examples can be found in the
Notes on Configuring NTP and Setting up a NTP Subnet page.
The restriction facility was implemented in conformance with the access policies for the original NSFnet backbone time servers. While this facility may be otherwise useful for keeping unwanted or broken remote time servers from affecting your own, it should not be considered an alternative to the standard NTP authentication facility. Source address based restrictions are easily circumvented by a determined cracker.
restrict numeric_address [ mask numeric_mask
] [ flag ] [ ... ]
numeric_address
argument, expressed in
dotted-quad form, is the address of an host or network. The
mask
argument, also expressed in dotted-quad form,
defaults to <IP_ADDRESS>
, meaning that the
numeric_address
is treated as the address of an
individual host. A default entry (address <IP_ADDRESS>
, mask
<IP_ADDRESS>
) is always included and, given the sort algorithm,
is always the first entry in the list. Note that, while
numeric_address
is normally given in dotted-quad
format, the text string default
, with no mask option, may
be used to indicate the default entry.
flag
always
restricts access, i.e., an entry with no flags indicates that free
access to the server is to be given. The flags are not orthogonal, in
that more restrictive flags will often make less restrictive ones
redundant. The flags can generally be classed into two catagories, those
which restrict time service and those which restrict informational
queries and attempts to do run-time reconfiguration of the server. One
or more of the following flags may be specified:
ignore
noquery
nomodify
notrap
lowpriotrap
noserve
nopeer
notrust
limited
client_limit
hosts
that have shown up at the server and that have been active during the
last client_limit_period
seconds are accepted. Requests
from other clients from the same net are rejected. Only time request
packets are taken into account. Query packets sent by the
ntpq
and xntpdc
programs are not subject to
these limits. A history of clients is kept using the monitoring
capability of xntpd
. Thus, monitoring is always active as
long as there is a restriction entry with the limited
flag.
ntpport
ntpport
and non-ntpport
may
be specified. The ntpport
is considered more specific and
is sorted later in the list.
ignore,
ntpport
, for each of the local host's interface addresses are
inserted into the table at startup to prevent the server from attempting
to synchronize to its own time. A default entry is also always present,
though if it is otherwise unconfigured; no flags are associated with the
default entry (i.e., everything besides your own NTP server is
unrestricted).
clientlimit limit
client_limit
variable, which limits the number
of simultaneous access-controlled clients. The default value for this
variable is 3.
clientperiod period
client_limit_period
variable, which specifies
the number of seconds after which a client is considered inactive and
thus no longer is counted for client limit restriction. The default
value for this variable is 3600 seconds.


Research or Policy Reports
Academic Papers
(Chinese only)Investigation into Authorized Public Data Operation: Its Positioning and Nature, Journal of Big Data, 2023
(Chinese only) Open Data Development through the lens of Co-Innovation and Co-creation:Trends, Challenges, and Reflection , Journal of Big Data, 2016, 002(002):38-45.
Assessment on China’s Open Government Data Platforms: Framework, Status and Problems , International Digital Government Research Conference. ACM, 2016.
Open Government Data in China: Lesson Learnt and New Approaches , the 17th International Digital Government Research Conference. ACM, 2016.
(Chinese only) Open data: concepts, status and opportunities , Journal of Big Data, 2015, 000(002):P.9-18.
Essays or Op-ed


Usability Testing Results
Date: Nov 14, 2017
It’s been a few months since my last post. So far I’ve made lots of progress on usability testing and have completed all of the level art for my game, which I’m tentatively calling “Fortress of Lanterns”, but haven’t done much yet to improve gameplay or animations. Destiny 2’s release, keeping up with Inktober and studying part-time definitely doesn’t help with keeping up the momentum of working on a game.
In my last post I wrote about my plans for this game and what I wanted to get out of usability testing. Since then I’ve gone through two rounds of testing with different people with varying levels of gaming experience. After each round, I made improvements to the game’s visuals to make up for issues players were having. Here they are!
Participants
I had four people test my game in the first round of testing; two play video games regularly and two do not. For my second round, I had two impromptu testers play at the UX Game Summit in Toronto to verify whether some minor changes I made after the first round were a step in the right direction. I probably don’t need to say that the last two testers were very experienced with playing and making games.
Before each test, I gave players some basic context for the game: You’re a ghost who lives in an abandoned castle, and you’re afraid of the dark (aww). Your goal is to light all of the lanterns in the castle. That’s it! I sat back and watched them do their thing and provided no guidance until they gave up.
I should note that I only prompted users about their goal because I currently don’t have any title screen, end conditions, dialogue or anything other than a buggy lantern counter. If I did, I would have just told them to start playing.
Method
My methods were very, very casual. Probably too casual, but I’m not a professional game designer and my goal was to put the game in front of people and find out what some of the major problems were. That seemed to work just fine. I tracked how many lanterns each participant lit, as well as the areas and platforms they discovered or missed.
The major interactive areas I kept tabs on were:
- The tower above the garden
- The tree in the garden
- The chain on the gate drawbridge
- The bricks found everywhere on fortress walls
Testing Results
For my first round of testing, I put a WebGL build on this site that had the first third of the level coloured in but not polished, and the remaining two thirds of the level outlined in black without any colour. I kept in mind during testing that having key parts of the level unfinished and see-through definitely affects how people interacted with objects like rocks, walls and bridges. This build served as a prototype though, and it was enough.
The second round of testing was even more casual than the first. I uploaded a second build and had two people play my game that I had just met. Unfortunately since the tests were impromptu and this wasn’t long after the initial round of testing, I didn’t have a chance to make every change that I wanted to. I was able to colour the level 75% and make some improvements to the tree in the garden. I didn’t even keep track of specific metrics the same way that I did above, but this round gave me a bit more insight into further improvements.
First Round: The areas that my players had the most trouble with were finding the tower (0% success, sadface), tree (50% success), the bricks (50% success) and the chain on the drawbridge (50% success). Resounding mediocrity!
Second Round: Even after making improvements to the colours in the garden and the shape of the tree, it wasn’t immediately obvious that you could jump on the branches to one of the testers. The same issues from the previous round re: the bricks, the tower and the drawbridge persisted.
The Tower: So, no one climbed the tower. This could be a combination of how it appears to be a backround decorative element, and because the bricks don’t stand out enough to tell the player “hey, you can jump on me”.
I’ve addressed this since by breaking the section of the wall in front of the tower to clue players in that there is something going on here, plus I made a global improvement to bricks to make them appear 3D. I hoped that adding these two affordances would at least make people give the tower a second glance.
The Chain: For the players that discovered the drawbridge, it was always a pleasant surprise for them which I found really fun. Usually they were trying to jump on absolutely everything and learn by experimenting to see what’s interactive and what isn’t. The participants who didn’t use the chain to get the lantern on the top of the gate wanted to light it by jumping from the platform behind the gate, which I prevented by obstructing it with a huge invisible wall. Oops.
I’m going to keep the chain and allow players to go around the back so they can still light it a second way. Providing multiple pathways to perform the same action is a good UX practice in general, so I think it will apply here too.
The Tree: Only half of my testers got that the tree’s branches also served as platforms. There are a few reasons that could explain this. Firstly, the tree is behind the path and looks quite flat so it could be mistaken for a decorative element much like the tower. Also, the first version of the tree had bare branches with leaves in the background. This wasn’t enough of a clue to hint that you can jump on them. The second version with its platform-like leaves was better, but still wasn’t great because the tree still appeared as a flat, background element.
To attempt to make the branch platforms look even more obvious, I added a few more visual details to make them look 3d. Using additional outlines, I tried to make the branch platforms appear more round. Using shading, I tried to make each one stand out more from the background. Usually the things that you can jump on in the map are highlighted in a light colour, so I am trying to emphasize this wherever I can.
I noticed throughout testing that this rule also applies to areas I didn’t anticipate, like the merlons along the edges of the fortress wall. These are highlighted and appear 3D, so a couple players tried to jump on them. In the next version, I may make it so you can run along the merlons unless it takes too much away from places you need to jump on in the level. Even though you don’t need to use these as platforms to get anywhere, it will help to encourage the mental model of “if it looks 3D, I can probably jump on it”.
The Bricks: The bricks proved to be problematic through both rounds of testing. It wasn’t immediately obvious to about half of players that you could climb on them, which is really bad because I use these things everywhere. You cannot complete the game unless you climb on the bricks. One player who was not used to playing games was also a bit frustrated after falling from a brick staircase leading up to the two towers, so I’ll need to double-check how far they are from each other and ensure that while climbing is still challenging, it doesn’t outright suck.
Similar to what I did with the tree platforms, I’m hoping that by making the bricks appear 3D, players will no longer miss them and it will be obvious that they are platforms. I’m attempting to do this by making them appear as prisms instead of flat rectangles, and ensuring highlights and shadows are consistent with other platforms on the map.
Conclusion
That’s it! At the time of this blog post’s writing, I’m working on exporting the finished pieces of the level into Unity. After that, I’ll be ironing out some bugs and adding a beginning and end to the story. After that, a little more testing and hopefully I can get a working game out the door. Look out in the future for an update where I’ll show my progress on the intro screen, user interface and animations.


iui-video.js is an extension for the iUI framework. It is currently EXPERIMENTAL
For info on how to use this extension see Instructions.
Sean Gilligan
The Video Extension is easy to install into your iUI powered web app. It requires no changes to existing iUI components. Start by linking the iui-video.js to your main index file just like the you would iui.js.
You can now place compatible HTML5 video in iUI "pages".
Use the following markup for each iUI view ("page") that contains a video:

The Video Extension will automatically create a video tag and play the video when the iUI view (aka "page") is active.


Known issue¶
1. Garbage data with python Thrift¶
If you use methods like curve.ttypes.Location which get or send double type data through Thrift, you might get some garbage values.
Thre reason of this error is that Thrift 0.9.1 installed via pip has an issue with serialization&deserialization of double type using CompactProtocol as described in here.
Below is a patch which is suggedsted by Wittawat Tantisiriroj<EMAIL_ADDRESS>– Patch –¶
diff --git a/lib/py/src/protocol/TCompactProtocol.py b/lib/py/src/protocol/TCompactProtocol.py
index cdec607..c34edb8 100644
--- a/lib/py/src/protocol/TCompactProtocol.py
+++ b/lib/py/src/protocol/TCompactProtocol.py
@@ -250,7 +250,7 @@ def writeI64(self, i64):
@writer
def writeDouble(self, dub):
- self.trans.write(pack('!d', dub))
+ self.trans.write(pack('<d', dub))
def __writeString(self, s):
self.__writeSize(len(s))
@@ -383,7 +383,7 @@ def readBool(self):
@reader
def readDouble(self):
buff = self.trans.readAll(8)
- val, = unpack('!d', buff)
+ val, = unpack('<d', buff)
return val
def __readString(self):


Home Page
Project
Project 1
assignment 2
assignment 3
Blog
Share My Photos
Australia Tours
This is my first tour of foreign country.
Details
Get To the Top
While using this site, you agree to have read and accepted our terms of use, cookie and privacy policy. Copyright 1999-2018 by Refsnes Data. All Rights Reserved.
Created by Brian Chan


- To facilitate knowledge exchange and practical interaction between business professionals active in Latvia with like-minded professionals operating elsewhere in the world.
- To facilitate business networking opportunities, as well as to attract innovation, finance and knowledge opportunities to Latvia.
- To allow business professionals and entrepreneurs who are of Latvian heritage to strengthen their sense of belonging in the modern Latvian business community.


I teach machines how to learn human language.
I am a Data Scientist at Fractal Analytics where I work on the Natural Language Processing backend of their Artificial Business Analyst, Cuddle.ai. IIT Kharagpur alumnus and former Student Software Developer under Google Summer of Code. I am an avid coder, amateur writer and poet, full-time foodie. Welcome to my Website!
Working on the Natural Language Processing backend of an Artifical Business Analyst named Cuddle.ai
Developed a natural language processing toolkit in Python for dealing with Indian languages under the mentorship of Portland State University. Over the course of summer I worked with Hindi, keeping Bengali as a future deliverable.
 Used the Hindi Dependency Treebank for the tagset, and the Wikimedia dumps for creating a sizeable vocabulary.
Packages Used: Gensim for word vector training, sklearn for a Multi Perceptron Classifier for tagging gender, and Keras with a Tensorflow backend for a POS tagger based on LSTM Neural Network.
Worked as a Natural Language Processing intern with Cuddle.ai. Cuddle.ai puts an AI-powered personal analyst in the hand of the user, delivering mission-critical business insight in a timely manner.
Developed a BiLSTM based Artificial Named Entity Classifier (ANEC) aimed at restricted business domain systems. The ANEC outperformed a previously established Stanford Constituency Parser based NER in terms of both accuracy as well as search time.
Cuddle.AI is a company incubated by Fractal Analytics.
Project is based on building a speech based AI-Assistant aimed at the Hospitality industry. The AI Assistant is to be programmed to extract structured information from service requests, feedback and orders from intelligent dialogue with the end user.
Voice captured from devices like Amazon’s Alexa, Google Home is first processed and sent into an NLP interface. The interface extracts entities from the text, and captures other intricacies like intent and sentiment. Once it understands the user’s query, request or order, it generates an intelligent reply for the end user using Natural Language Generation to either confirm its understanding of the user’s command or to interpret any missing entities which are vital for the complete understanding of the user’s command.
Internship based on using High Performance Computing Machines to perform classification on captured heart data in an attempt to detect abnormal heart sound, heart valvular disease, and even predict possible signs of congestive heart failures. Awaire is a startup based in San Jose, CA. For more details refer to Awaire Inc
Entrusted with the responsibility of handling the web interfaces under the TSG. Currently engaged in creating a better website for the Gymkhana.
Responsible for coordinating and managing all the facets, namely accommodation, reception and events part and ensuring a smooth workflow for the regionals of ACM ICPC, the largest competitive programming contest in the world.
Managing and conducting the First Round Online Programming Contest in association with CodeChef.
GPA: 7.44
Percentage: 88%
GPA: 10
Apart from coding I love writing. I am an active writer on Quora, a knowledge sharing platform with more than 2 million views and 60 thousand upvotes on my content. I also have a passion for poetry and weightlifting.
I have been a supporter of Manchester United since I was 6. A big fan of Professional Wrestling and the story-telling ability of wrestlers while they are inside the squared-circle.
I am also a quite a decent basketball player, having formerly represented my school in various competitons. I have also been a part of the National Sports Organisation training programme for Basketball till my second year in college.


Career summary
I’m a digital product designer with 12+ years of experience (7+ working with digital products) who enjoys the challenge of making the complex simple.
I am a flexible and transparent person, who's very passionate about Design as a whole; I love learning new skills, solving problems, and improving myself.
I started my career as a freelance Visual Designer, focused mainly on Branding and Editorial Design. My natural curiosity and thirst for knowledge pushed me to experiment and learn a wide array of design-related disciplines, from video editing and motion graphics to website development and UX/UI design.
This broad skillset is what luckily led me into the path of Product Design; as a Digital Product designer, I focus on crafting experience-driven Design solutions and strategies that add value for businesses and users all around the globe.
I have experience in insurtech, fintech, e-commerce, telecommunications, and streaming platforms. Nowadays I’m focusing on Design Systems but I’m always on the lookout for new fields to explore. =)
Experience
Product designer Nov 2020 - Present
Globant + Google, Orion Wi-FiRemote
Currently working on Orion Wi-Fi, a wi-fi offload marketplace from Google’s Area 120. I’m in charge of the whole design process, from interview with stakeholders and discovery of new functionalities to user flows, visual definitions, and dev handoff. The product is in a very early stage and there’s a lot of back and forth regarding definitions and roadmap, so being flexible is key.
My work is focused mainly on the internal tools for both supply users (people/venues who sell their wi-fi capacity) and demand users (telco/enterprise network administrators who buy supply for their subscribers/employees) while providing a great experience to end-users on desktop and mobile devices as well.
Product designer Mar 2020 - Nov 2020
Globant + Google, Google My Business Buenos Aires, Argentina / Remote
I worked on the Small Business Advisors product/service as the only designer assigned 100%. What started as a UX/UI designer role, quickly became a full Product design role, since I had to work with high-level definitions of the service and grow from there, impacting not only on the experience and the visuals of the service, but on the value proposition for the business side. I also worked on the initial content drafts for the landing page and the different tools (merchant facing and internal use), and produced some animations as well.
I had the chance to study Google Standards and developed a great dynamic within the team and the client, making the process of discovery, ideation, and validation super straightforward.
Visual designer Sep 2019 - Feb 2020
Globant + FOX Latam, FOX Play Buenos Aires, Argentina / Remote
I worked with FOX after its acquisition by Disney to adapt the DTCI platform to Latam markets, with new features based on the current implementation of the FOX Play streaming platforms. I was tasked with the UI definition for Web (desktop and mobile) and OTT (smart TVs) platforms, producing quality visual designs aligned to FOX’s visual language and standards.
User Experience Designer Aug 2018 - Present
Globant, Define DNA La Plata, Argentina / Remote
Define DNA is a gamified tool to help a company identify their values with help of the workforce. We started with a proof of concept based on the CTO’s vision for the product. We had a few follow up meetings with him to define the needs and scope of the actual MVP. As a UX designer I was in charge of understanding the vision of the product owner and translating it into flows, wireframes, and briefs for the team. It was a lot of work and the team grew quickly along the way, in size as well as in expertise. We are done with the MVP and we are quite proud about it. We are currently working towards new features based on early feedback. :)
Facilitator Assistant May 2018 - June 2018
Globant + AFIP, Ideation Workshops Buenos Aires, Argentina
I helped running workshops for an AFIP (Argentina's Public Revenue Administration) team. Workshops were facilitated by Lio Fernandez and Isa Valline. We made group ideation sessions and worked together to define the needs, audience, and functionalities of a new app to incentivize citizens to ask for a receipt or invoice when making a purchase.
Product Designer / Design Systems Feb 2018 - Aug 2019
Globant + Openbank, Openbank Guidelines La Plata, Argentina
Still in Openbank, I took lead on the making of a Design System to achieve cross-platform, cross-product consistency and to both accelerate the internal production times as well as minimize production risks between teams working across several time zones.
After gaining buy-in from management through a PoC, we've put together a team of designers and developers to map and refine/redefine elements and components based on our own approach to Atomic design. We held weekly design review meetings with the bank's stakeholders to gain insight of our client's needs and to be on the same page regarding the latest iterations of the Design language.
By taking part into this initiative, I acquired valuable experience on the banking, e-commerce, fintech, and insurtech industries and I positioned myself as a Design system and DesignOps touchstone within the company.
User Experience & Visual Designer Dec 2017 - May 2018
Globant + Openbank, Insurances La Plata, Argentina
I joined Globant to become part of a large-scale digital products design and development multidisciplinary team. I've found myself working with Openbank, the 100% digital bank of the Santander Group. I was part of a group formed by hybrid (UX/UI) designers with focus on creating meaningful experiences on Insurance products, both for web and mobile platforms.
UX/UI, Web, Graphic & Visual Designer Jun 2009 - May 2017
Self-employed Remote
I have worked freelance since my 4th year in college studying Visual Communication Design. I dedicated myself to Branding and any other piece that derives from it, which has led me to experiment and learn many other disciplines; from motion graphics and video editing, to website development and UX/UI for apps and webapps.
Product designer Sep 2013 – Sep 2014
Focusfreak, Virtstart Remote
Virtstart is a virtual assistant platform by the startup FocusFreak. I have worked with the client since the service conception. I was in charge of the usability, user flows, mockups and low, mid and high fidelity prototypes. I designed the landing page and the UI of the webapp. Eventually I ended up leading the rest of the project, supervising the webapp development, craft of an MVP and beta testing with real users.
Creative Director Dec 2010 – Sep 2011
Ánima, agndnctrna La Plata, Argentina
Ánima agndnctrna is a monthly pocket magazine about the night life in the city of La Plata. I was involved in the project since its inception, developing the brand, from naming to the brand guidelines. I was in charge of the design of the pilot number and testing with various printing houses and defining advertising spaces. I eventually defined and supervised the brand applications, advertising and photographic policies of the magazine.
Teaching AssistantApr 2007 – Aug 2008
Visual Communication Design - Workshop 1B La Plata, Buenos Aires. Argentina
In my second year a teacher from my first year asked me to become a teaching assistant in his course. It was a great opportunity to apply what I've learned and to help many fellow students. It was a rewarding experience since I could take a peek on the "behind the scenes" of my education, and working with people coming from different backgrounds (teachers as well as students) was a great exercise for empathy.
Graphic Designer InternSep – Dic 2005
Imprenta OligrafComodoro Rivadavia, Chubut. Argentina. Argentina
I took an internship to learn about the world of Design at a local print shop. I've learned about the day-to-day practice of Graphic Design (my boss was a Visual Communication Design graduate from the UNLP) and the difference with its teaching. Finally, after a couple of months, I resigned and the next year I was studying Design at the UNLP.