The Association for Cohesive Development of the Amazon (ADCAM) started in 1985 as a small orphanage with 30 kids. Today, it is a nationally-recognized institution which offers K-12, a technical college, vocational training, a family development center and rural education programs serving more than 4,000 students a day. Programs include...
They are focused on helping people get the funding they need to change the world and help nonprofits become more effective with that money. GlobalGiving connects organizations to resources that help them continually learn and improve. As nonprofits become more effective, they have a far-greater impact on social problems...
BrazilFoundation mobilizes resources for ideas and actions that transform Brazil. We work with local leaders, organizations and a global network of supporters to promote equality, social justice and economic opportunity for all Brazilians...
The mission of The Nature Conservancy is to conserve the lands and waters on which all life depends...


Isar735.github.io
Essay how a friend help you in difficult.
Evan, who stopped his hormone treatments before trying to get pregnant, chest-feeds his newborn son in their Massachusetts home Elinor Carucci The understanding of friendship in children tends to be more heavily focused on areas such as common activities, physical proximity, and shared expectations.


Home
Technical
Core
About
Ishans blog
Ishans Blog
Welcome to my Dev Academy blog
Core
Below is a lsit of my core blog posts
Sprint 1 Cultural
Sprint 2 Cultural
Sprint 3 Cultural
Sprint 4 Cultural
Sprint 5 Cultural


Event Manager
Add
Logout
{% for event in event_data %}
{{event.event_name}}
Description
{{event.desctiption}}
Date : {{today}}
Delete
{% endfor %}


Government response
Government response to Lord Bew key stage 2 review published
This was published under the 2010 to 2015 Conservative and Liberal Democrat coalition government
Government’s response to the review and how the recommendations will be taken forward.
The government has published its response to Lord Bew’s independent review of testing, assessment and accountability at key stage 2, accepting all the recommendations in full.
Education Secretary Michael Gove said:
These changes represent an educationally sound approach and substantial reform. The system in future will be fairer for teachers and pupils. It will give parents the vital information they need and will hold schools accountable.
Key changes to the current system will include:
-
replacing the current writing test with teacher assessment of writing composition from 2013 to ensure that pupils can be more creative and will overcome the dangers of teaching to the test. This teacher assessment will make up the larger part of the overall writing judgement
-
introducing a test of some of the essential skills needed to become fluent, confident writers - spelling, grammar, punctuation and vocabulary. This will be trialled in 2012 so that it can be introduced in 2013
-
publishing more data in the 2011 performance tables onwards, including new three-year rolling averages from 2012, to give a rounded picture of a school’s performance
-
placing a greater emphasis on progress made by pupils
-
giving secondary schools teacher assessment judgements before test results, from 2012. This will mean there is more weight attached to them and allow longer for them to inform year 7 teaching and learning
-
primary schools providing more information on pupils’ performance to secondary schools so year 7 teachers know right from the outset children’s attainment and the areas where extra work is needed. This will start in summer 2013
-
trialling in 2012 of an extension to the testing period, so that pupils who are absent (eg due to illness) on the day of a test will have a week in which to sit it, rather than two days
The review panel was chaired by the cross-bench peer Lord Bew and consisted of headteachers and education experts. Michael Gove set up the review last year. He said external accountability at key stage 2 was vital because it was shown to drive up standards, but agreed the current system was flawed and could be improved.
Lord Bew said:
I am pleased that all our recommendations have been accepted. This is a complex area and many conflicting views were presented to us. But this package will lead to a better system, one that will do the jobs everyone wants it to do and which will have the confidence of all parties involved.


AMAZING PEOPLE ARE MAKING AMAZING DESIGNS IN A FUN ENVIRONMENT
When you work with us, you are part of a team of committed collabolators. All aspects of our software development are intergrated, interactive and agile.
Our approach unifies design, development and product management to create exceptional products.
We start each project by undestanding your business goals, the user's needs and the product requirements.
Then we help translate them into effective and elegant solutions.
Before we sign a contract or write a line of code our team will spend the necessary time needed to understand your product vision
The outcome of this scoping session is proposal or high-level statement of work
based on your requirements, we can provide a complete offering or just the prices you need
DESIGN
DEVELPMENT
PRODUCT MANAGEMENT


searsaw
searsaw
A JavaScript library for building user interfaces.
It allows us to create interactive user interfaces in an easy to write and understand way.
React uses a virtual DOM to manage and batch changes to the actual DOM (more on this later).
We group pieces of our interface into components. These components can be composed of other components.
We then define how data is displayed based on the component's internal state and the props passed to it.
A piece of the UI managed by React. It has its own state that it manages internally and also has props that are passed into it.
This typically will directly represent markup in the browser.
Data saved directly on a component. No other component knows about this state, but this data can be passed to other components as props.
Data passed to a component from its parent. We can use this data to respond to changes in state of the parent, among many other things.
An in-memory, JavaScript object representation of the DOM we see in the web browser.
When we change how a component looks through changes in data, we are actually changing what the calculated virtual DOM looks like. React will compare the new virtual DOM to the previous one it calculated and then update the DOM in the browser according to the differences in virtual DOM representations.
An HTML-like syntax for writing components.
React has a native API for creating components that is just calling a bunch of JavaScript functions. This works fine, but can become hairy when trying to maintain it.
With the power of Babel transpilation, we can write our components in JSX, which looks just like HTML. This makes reading and maintaining our components much easier.


[Gecode] RE: License and Authorship
Gert Smolka
smolka at ps.uni-sb.de
Fri Sep 3 15:28:46 CEST 2004
Fine with me!
-- Gert
> -----Original Message-----
> From: Christian Schulte [mailto:schulte at imit.kth.se]
> Sent: Friday, September 03, 2004 1:44 PM
> To: 'Technical discussions about Gecode'
> Cc: 'Gert Smolka'
> Subject: License and Authorship
>
>
> Dear all,
>
> an important decision to be taken is which license should be used with
> Gecode. In discussion with Guido we went basically for the
> Mozart license,
> for your information please find it attached.
>
> Another important issue is about authorship. Here I have been always
> dissatisfied with how things were run with Mozart. Here Guido's and my
> proposal is as follows:
> - An author of a file is somebody who at one point in time has
> contributed more than 10% percent
> of the lines to that file.
> - A contributing author is somebody who has contributed
> more than 2%
> but not exceeding 10%
> (measure of contribution as above).
>
> I intend to automatize the generation of headers: years, authors,
> contributing authors, the statement of lack of liablity will all be
> generated automatically from the information in the CVS.
>
> I want that the following people agree to this by sending an
> okay to me:
> - Christian (which I do)
> - Guido (which he does, no Email needed)
> - Gabor
> - Gert (as Gert provides the resources for Guido and Gabor)
>
> Is there anything you want to add to that? The please do so
> as early as you
> can.
>
> Cheers
> Christian
>
>
> --
> Christian Schulte, http://www.imit.kth.se/~schulte/
>
More information about the gecode-users
mailing list


Chrysalis quick guide for running e3sm_diags v2¶
1. Installation¶
We will use the e3sm_unifed environment to install. For the latest stable release or if you don’t have access to e3sm analysis machines, please instead refer to Latest stable release.
Most of the E3SM analysis software is maintained with an Anaconda metapackage
(E3SM unified environment).
If you have an account on Chrysalis,
then to get all of the tools in the metapackage in your path,
use the activation command below.
(Change .sh
to .csh
for csh shells.)
Below, we also provide the paths for observational data needed by e3sm_diags
(<obs_path>),
and some sample model data for testing (<test_data_path>).
Both <obs_path> and <test_data_path> have two subdirectories:
/climatology
and /time-series
for climatology and time-series data respectively.
Also listed below are paths where the HTML files (<html_path>) must be located to be displayed at their corresponding web addresses (<web_address>).
<activation_command>: source /lcrc/soft/climate/e3sm-unified/load_latest_e3sm_unified.sh
<obs_path>: /lcrc/soft/climate/e3sm_diags_data/obs_for_e3sm_diags
<test_data_path>: /lcrc/soft/climate/e3sm_diags_data/test_model_data_for_acme_diags/
<html_path>: /lcrc/group/acme/public_html/diagnostic_output/<username>
<web_address>: https://web.lcrc.anl.gov/public/e3sm/diagnostic_output/<username>
2. Config and run¶
Running the annual mean latitude-longitude contour set¶
Copy and paste the below code into run_e3sm_diags.py
using your favorite text editor.
Adjust any options as you like.
Tip: Some of E3SM’s analysis machines (Acme1, Anvil, Compy, Cori) have web servers setup to host html results. On Chrysalis, create the directory
/lcrc/group/acme/public_html/diagnostic_output/<username>
using your username. Setresults_dir
to/lcrc/group/acme/public_html/diagnostic_output/<username>doc_examples/lat_lon_demo
inrun_e3sm_diags.py
below. Then, you can view results via a web browser here: https://web.lcrc.anl.gov/public/e3sm/diagnostic_output/<username>doc_examples/lat_lon_demoimport os from acme_diags.parameter.core_parameter import CoreParameter from acme_diags.run import runner param = CoreParameter() param.reference_data_path = '/lcrc/soft/climate/e3sm_diags_data/obs_for_e3sm_diagsclimatology/' param.test_data_path = '/lcrc/soft/climate/e3sm_diags_data/test_model_data_for_acme_diags/climatology/' param.test_name = '20161118.beta0.FC5COSP.ne30_ne30.edison' param.seasons = ["ANN"] #all seasons ["ANN","DJF", "MAM", "JJA", "SON"] will run,if comment out" prefix = '/lcrc/group/acme/public_html/diagnostic_output/<username>doc_examples/' param.results_dir = os.path.join(prefix, 'lat_lon_demo') # Use the following if running in parallel: #param.multiprocessing = True #param.num_workers = 32 # Use below to run all core sets of diags: #runner.sets_to_run = ['lat_lon','zonal_mean_xy', 'zonal_mean_2d', 'polar', 'cosp_histogram', 'meridional_mean_2d'] # Use below to run lat_lon map only: runner.sets_to_run = ['lat_lon'] runner.run_diags([param])
Run in serial with:
python run_e3sm_diags.py
The above run has the same results as running e3sm_diags -p lat_lon_params.py
using the code below for lat_lon_params.py
:
reference_data_path = '/lcrc/soft/climate/e3sm_diags_data/obs_for_e3sm_diagsclimatology/' test_data_path = '/lcrc/soft/climate/e3sm_diags_data/test_model_data_for_acme_diags/climatology/' test_name = '20161118.beta0.FC5COSP.ne30_ne30.edison' sets = ["lat_lon"] seasons = ["ANN"] # 'mpl' for matplotlib plots backend = 'mpl' # Name of folder where all results will be stored. results_dir = '/lcrc/group/acme/public_html/diagnostic_output/<username>doc_examples/lat_lon_demo'
The new way of running (no -p
) is implemented in version 2.0.0,
preparing e3sm_diags
to accomodate more diagnostics sets with set-specific parameters.
View results on the web¶
Once the run is completed,
open https://web.lcrc.anl.gov/public/e3sm/diagnostic_output/<username>doc_examples/lat_lon_demo/viewer/index.html
to view the results.
If you don’t see the results, you may need to set proper permissions.
Run chmod -R 755 /lcrc/group/acme/public_html/diagnostic_output/<username>
.
Tip: Once you’re on the webpage for a specific plot, click on the ‘Output Metadata’ drop down menu to view the metadata for the displayed plot. Running that command allows the displayed plot to be recreated. Changing any of the options will modify just that resulting figure.
Running all the core diagnostics sets¶
Core diagnostics set includes:
lat_lon, zonal_mean_xy, zonal_mean_2d, polar, cosp_histogram,
meridional_mean_2d.
These diags share a common parameter space (core parameters).
To run all these sets without defining set-specific parameters
(e.g. plev for zonal_mean_2d and meridional_mean_2d.),
replace the runner.sets_to_run
line in run_e3sm_diags.py
with the one below:
runner.sets_to_run = ['lat_lon','zonal_mean_xy', 'zonal_mean_2d', 'polar', 'cosp_histogram', 'meridional_mean_2d']
Running area mean time series set¶
In v2.0.0, the time series set was implemented to support regional averaged time series plotting using monthly mean time series input. This set is enabled if monthly mean time series is processed as documented here.
A run_e3sm_diags.py
example for running area mean time series alone:
import os from acme_diags.parameter.core_parameter import CoreParameter from acme_diags.parameter.area_mean_time_series_parameter import AreaMeanTimeSeriesParameter from acme_diags.run import runner param = CoreParameter() param.reference_data_path = '/lcrc/soft/climate/e3sm_diags_data/obs_for_e3sm_diagstime-series/' param.test_data_path = '/lcrc/soft/climate/e3sm_diags_data/test_model_data_for_acme_diags/time-series/E3SM_v1/' param.test_name = 'e3sm_v1' prefix = '/lcrc/group/acme/public_html/diagnostic_output/<username>doc_examples/' param.results_dir = os.path.join(prefix, 'area_mean_with_obs') # Use the following if running in parallel: #param.multiprocessing = True #param.num_workers = 40 # We're passing in this new object as well, in # addition to the CoreParameter object. ts_param = AreaMeanTimeSeriesParameter() #ts_param.ref_names = ['none'] # Using this setting will plot only the model data, not the observation data ts_param.start_yr = '2002' ts_param.end_yr = '2008' runner.sets_to_run = ['area_mean_time_series'] runner.run_diags([param, ts_param])
This set can also be ran with the core diagnostics sets, so that all the plots are shown in one viewer. The following is an example to run all sets:
import os from acme_diags.parameter.core_parameter import CoreParameter from acme_diags.parameter.area_mean_time_series_parameter import AreaMeanTimeSeriesParameter from acme_diags.run import runner param = CoreParameter() param.reference_data_path = '/lcrc/soft/climate/e3sm_diags_data/obs_for_e3sm_diagsclimatology/' param.test_data_path = '/lcrc/soft/climate/e3sm_diags_data/test_model_data_for_acme_diags/climatology/' param.test_name = '20161118.beta0.FC5COSP.ne30_ne30.edison' param.multiprocessing = True param.num_workers = 40 prefix = '/lcrc/group/acme/public_html/diagnostic_output/<username>doc_examples' param.results_dir = os.path.join(prefix, 'all_sets') # ##Set specific parameters for new sets ts_param = AreaMeanTimeSeriesParameter() ts_param.reference_data_path = '/lcrc/soft/climate/e3sm_diags_data/obs_for_e3sm_diagstime-series/' ts_param.test_data_path = '/lcrc/soft/climate/e3sm_diags_data/obs_for_e3sm_diagstime-series/E3SM_v1/' ts_param.test_name = 'e3sm_v1' ts_param.start_yr = '2002' ts_param.end_yr = '2008' runner.sets_to_run = ['lat_lon','zonal_mean_xy', 'zonal_mean_2d', 'polar', 'cosp_histogram', 'meridional_mean_2d', 'area_mean_time_series'] runner.run_diags([param, ts_param])
Advanced: Running custom diagnostics¶
The following steps are for ‘advanced’ users, who want to run custom diagnostics. So, most users will not run the software like this.
By default, with e3sm_diags
,
a built in set of variables are defined for each diagonostics sets.
To do a short run, e.g. only running through a subset of variables,
a configuration file is needed to customize the run.
In the following example,
only precipitation and surface sea temperature are run to compare with
model and obs for lat_lon set.
Create mydiags.cfg
file as below.
Check Available Parameters for all available parameters.
For a larger configuration file example, look here for the cfg file that was used to create all of the latitude-longitude sets.
[#] sets = ["lat_lon"] case_id = "GPCP_v2.3" variables = ["PRECT"] ref_name = "GPCP_v2.3" reference_name = "GPCP" seasons = ["ANN", "DJF", "MAM", "JJA", "SON"] regions = ["global"] test_colormap = "WhiteBlueGreenYellowRed.rgb" reference_colormap = "WhiteBlueGreenYellowRed.rgb" diff_colormap = "BrBG" contour_levels = [0.5, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16] diff_levels = [-5, -4, -3, -2, -1, -0.5, 0.5, 1, 2, 3, 4, 5]
Run E3SM diagnostics with the -d
parameter.
Use the above run script. And run as following:
python run_e3sm_diags.py -d mydiags.cfg


Building PHP extensions with the PHP-CPP library is not at all difficult - in this tutorial we will give you step by step instructions to build your own extensions. However, before we start the actual programming, we will first explain how PHP interacts with its extensions - how extension libraries are loaded and how PHP knows which functions, constants and classes are defined by the extensions.
You probably already know that native PHP extensions are compiled into *.so files on unix-like systems, and *.dll files on Windows environments, and that the global php.ini file holds a list of all extensions available on your system. This means that if you're building your own extension, you will also need to create such a *.so or *.dll file and you will need to update the PHP configuration so that your own extension is loaded by PHP.
If for one reason or another you can not find the PHP configuration file(s) on your system, you can run the following command from the command line:
php --ini
This will output a list of all configuration files that are loaded by PHP. Extensions are enabled by adding "extension=name.so" lines to the configuration file - where 'name' should of course be replaced by the name of your extension. A default PHP installation already comes with many default extensions, so in the configuration file(s) on your system you will certainly find a number of these "extension=name.so" lines.
The extension lines either take an absolute path ("extension=/path/to/extension.so") or a relative path ("extension=extension.so"). If you'd like to use relative paths, you must make sure that you've copied your extension *.so file to the default extension directory, so that PHP can find it. To find out this default extension directory, use the following command line instruction:
php -i|grep extension_dir
Before we explain how you can create your own extension however, we first explain what PHP does to load an extension. When PHP starts, it loads the configuration file(s) that we just described and for each "extension=name.so" line in these files, it opens the appropriate library, and calls the "get_module()" function from it. Each extension library (your extension too) must therefore define and implement this "get_module()" C function. The function is called by PHP right after the library is loaded (and thus way before pageviews are handled), and it should return a memory address that points to a structure that holds information about all functions, classes, variables and constants that are made available by the extension.
The structure that the get_module() returns is defined in the header files of the Zend engine, but it is a pretty complicated structure without good documentation. Luckily, the PHP-CPP library makes life easier for you, and offers an Extension class that can be used instead.
#include <phpcpp.h>
extern "C" {
PHPCPP_EXPORT void *get_module() {
static Php::Extension myExtension("my_extension", "1.0");
return myExtension.module();
}
}
In the example above you see a very straightforward implementation of the get_module() function. Every PHP extension that uses the PHP-CPP library implements this function in a more or less similar way as the extension starting point. A number of elements require special attention. For a start, the only header file that you see is the phpcpp.h header file. If you're using the PHP-CPP library to build your own extensions, you do not have to include the complicated, unstructured, and mostly undocumented header files of the Zend engine - all you need is the single header file of the PHP-CPP library. If you insist, you are of course free to also include the header files of the core PHP engine - but you do not have to.
The next thing that you'll notice it that we placed the get_module() function inside an 'extern "C"' code block. As the name of the library already gives away, PHP-CPP is a C++ library. However, PHP expects your library, and especially your get_module() function, to be implemented in C and not in C++. That's why we've wrapped the get_module() function in an 'extern "C"' block. This will instruct the C++ compiler that the get_module() is a regular C function, and no C++ name mangling should be applied to it.
The PHP-CPP library defines a "PHPCPP_EXPORT" macro that should be placed in front of the get_module() function. This macro makes sure that the get_module() function is publicly exported, and thus callable by PHP. The macro has a different implementation based on the compiler and operating system.
Inside the get_module() function the Extension object is instantiated, and the Extension::module() method is called. It is crucial that you make a static instance of this Extension class, because the object must exist for the entire lifetime of the PHP process, and not only for the duration of the get_module() call. The constructor takes two arguments: the name of your extension and its version number. The Extension::module() method returns the memory address that PHP needs to initialize the library.
Note that the example above does not yet export any native functions or native classes to PHP - it only creates the extension.
An extension can of course only be useful if you define functions and/or classes that can be accessed from PHP scripts. For functions you can do this by adding your native function implementations to the Extension object:
#include <phpcpp.h>
extern void example1();
extern void example2(Php::Parameters ¶ms);
extern Php::Value example3();
extern Php::Value example4(Php::Parameters ¶ms);
extern "C" {
PHPCPP_EXPORT void *get_module() {
static Php::Extension myExtension("my_extension", "1.0");
myExtension.add("native1", example1);
myExtension.add("native2", example2);
myExtension.add("native3", example3);
myExtension.add("native4", example4);
return myExtension.module();
}
}
What do we see here? We've added four function declarations ("example1", "example2", "example3" and "example4") to the source code of our extension. The reason why we've only declared the functions, and not fully implemented them is to keep the example code relatively small. We assume that the four example functions are implemented in a different file. In a real world example you could just as well remove the "extern" keyword and implement the four functions in the same source file as the get_module() call.
The four functions all have a different signature: Some return a value, while others do not return anything. And some take parameters, while others do not. Despite the different signature of the functions, they can all be made available in PHP by adding them to the extension object, by simply calling the myExtension.add() method. This method takes two parameters: the name by which the function should be accessible in PHP, and the actual native function.
In the example above we've used different names for the native functions ("example1" up to "example4") as for the PHP functions ("native1" to "native4"). This is legal - you do not have to use the same names for your native functions as for your PHP functions. The following PHP script can be used to call the four native functions:
<?php
native1();
native2("a","b");
$x = native3();
$y = native4(1,2);
?>
It is not possible to export every thinkable C/C++ function to the PHP extension. Only functions that have one of the four supported signatures can be exported: functions that return void or a Php::Value object, and that either accept a Php::Parameters object or no parameters at all, can be added to the extension object and can thus be exported to PHP.
PHP has a mechanism to enforce function parameters types, and to accept parameters either by reference or by value. In the examples above, we have not yet used that mechanism yes: it is up to the function implementations themselves to inspect the 'Parameters' object, and check if the variables are of the right type.
However, the 'Extension::add()' method takes a third optional parameter that you can use to specify the number of parameters that are supported, whether the parameters are passed by reference or by value, and what the type of the parameters is:
#include <phpcpp.h>
extern void example(Php::Parameters ¶ms);
extern "C" {
PHPCPP_EXPORT void *get_module() {
static Php::Extension myExtension("my_extension", "1.0");
myExtension.add("example", example, {
Php::ByVal("a", Php::numericType),
Php::ByVal("b", "ExampleClass"),
Php::ByRef("c", "OtherClass")
});
return myExtension.module();
}
}
Above you see that we pass in additional information when we register the The Extension::add() method can be used to register native functions, and make them available in PHP. In the examples above, you've seen that the method takes two parameters: the name the function shou
Variables in PHP are non-typed. A variable can thus hold any possible type: an integer, string, a floating point number, and even an object or an array. C++ on the other hand is a typed language. In C++ an integer variable always has a numeric value, and a string variable always hold a string value.
When you mix native code and PHP code, you will need to convert the non-typed PHP variables into native variables, and the other way round: convert native variables back into non-typed PHP variables. The PHP-CPP library offers the "Value" class that makes this a very simple task.


--- layout: home ---
I build apps, team processes & teach web design. I’m a startup McGyver based in Brussels, Belgium.


Wythenshawe finally has its own Screwfix...and it could mean great things for local charities
The new Sharston store could mean a boost for Wythenshawe charities, thanks to the Screwfix Foundation
by Sophie Halle-Richards, https://www.facebook.com/sophiehrMEN/After years spent driving all the way to Stockport to stock up on tools, the people of Wythenshawe can finally shop a little closer to home.
Screwfix are celebrating the opening of their brand new Sharston store, which opened last Thursday (December 5).
Located on Leestone Road, the new store means tradespeople, homeowners and DIYers will no longer have to travel to Cheadle or Stockport.
The new store could also mean a boost for Wythenshawe charities, thanks to the Screwfix Foundation.
The foundation has donated more than £4million to local charities and community projects, helping them to enable, fix or maintain facilities.
Read more of today's top stories
Screwfix’s Sharston Store Manager, Janet Green, said: "We chose to open a new store in Sharston to better meet the needs of the local tradespeople.
"Many of our new customers previously shopped with Screwfix at our Stockport – Higher Hillgate and Cheadle – Stanley Green stores, so we’re delighted to bring Screwfix even closer to them for greater convenience.
"Our celebration weekend, which ran from Thursday 5th December until Sunday 8th December, attracted hundreds of customers.
"We have received fantastic support from local homes and from the local community and are looking forward to supporting more busy tradespeople and serious DIYers in Sharston."
Registered charities local to Sharston are encouraged to apply for funding from the Screwfix Foundation by visiting the branch to pick up a leaflet for more information.
They can also download an application form www.screwfixfoundation.com
You can shop at the new store at Leestone Road, Sharston Industrial Area, Wythenshawe M22 4RB, Monday to Friday 7am-8pm, Saturday 8am-6pm and Sunday 9am-4pm.


{{ partial "header.html" . }} {{ partial "menu.html" . }} {{ .Title }} {{.Content}} Company Name Company/Client Type * Corporation Individual LLC Name * Job Title Address * Phone * Email * Invoicing Email If invoices should be sent to a different email address {{ partial "footer.html" . }}
If invoices should be sent to a different email address


The Free Software Foundation is a non-profit organization founded by Richard Stallman on 4 October 1985 to support the free software movement, which promotes the universal freedom to study, distribute, create, and modify computer software.


Mon 5th February - 18:35 - 18:55
With Dale Crossman in The Grid @ Fiction Club
A towel to dry off with
Plenty of water
Gym-appropriate trainers
Please check your communications settings to make sure that you will get notified of any changes to our classes.


Base64 encoding is a nice way to also provide copy/paste functionality
warning base64 line length is limited to 76 characters by default in openssl ( and generated with 64 characters / line ).
to be able to decode a base64 line without line feed that exceed 76 characters use -A option :
#Encode (-out is optional)
openssl base64 -in <file.in> -out <file.out>
openssl base64 -e <<< 'Welcome to openssl wiki'
#Decode (-out is optional)
openssl base64 -d -in <file.in> -out <file.out>
openssl base64 -d <<< 'V2VsY29tZSB0byBvcGVuc3NsIHdpa2kK'
Welcome to openssl wiki
openssl base64 -d -A <<< 'V2VsY29tZSB0byBvcGVuc3NsIHdpa2kgd2l0aCBhIHZlcnkgbG9uZyBsaW5lIHRoYXQgc3BsaXRzLi4uCg=='
Welcome to openssl wiki with a very long line that splits...


Emotional Intelligence
For me personally, values, empathy, and self-awareness play an important role in learning and programming. My values, empathy, and self-awareness have acted as “checks” to bring my negative thoughts back in line. I believe that without my values, empathy, and self-awareness I would have given up by now. There have been certain challenges that I have found particularly difficult, and I have been quite hard on myself for not being able to get through them as quickly as some others. When I’m having these negative thoughts, my self-awareness kicks in and I realise that I need to give myself a fighting chance and instead of behaving irrationally, I start to think positively and take steps to combat the problem by either seeking help or even just being empathetic and taking a break.
I was so surprised at how difficult the core learning has been! I have found all of the learning rather difficult, but I thought the core learning would be a breeze. It’s rather confronting and I have found it a bit of a struggle to be open about my inward thinking.
Although I didn’t find it too difficult to pinpoint the aspects of myself that need improving, I have definitely found it challenging to act on these points and actually improve myself. I’m still struggling with reaching out to others for help. I didn’t think it would be so hard from behind a computer screen, but I’m finding it oddly difficult. It’s confronting to know that I’m so terrified of appearing “stupid” that I am placing roadblocks in my learning journey!
It’s important for graduates to learn how to communicate not only with others, but also ourselves. If we can understand ourselves better we can learn what we need to work on from a personal perspective to make ourselves more approachable. By focusing on core learning we can also learn how we work emotionally as well as intelligently. This is useful in learning how to deal with our stress levels which also helps us remain calm and friendly in high pressure environments such as the ones we will hopefully be working in.
No, it doesn’t feel like a waste of time, but I do wish I was better at the programming side of things. I feel like I can learn the core stuff relatively easy, although acting on the lessons is tough. When it comes to the practical coding stuff, I find it quite a stretch to actually just learn what I need to do to accomplish a task. I would have liked more time spent on the programming side of things, but from a more hands on approach. I do understand the need for independent learning and the importance of learning HOW to learn, but I have struggled to find the right information to learn the on the programming side of things.
I would love to work in web development. Whilst I am not currently sure about the specifics, ideally I would like to work remotely, but also understand that this might not be achievable right off the bat. I plan on finishing up at Dev Academy and will be looking for junior/entry level positions at any location within the country.
My biggest strength will coincidentally also be my biggest limitation, my ability to work independently. My independence will be helpful in that it helps me to remain focused and organized when tackling a task. However, my independence is also a limitation when it comes to tackling difficult tasks. I often fail to reach out when I need guidance, and this can become a real hinderance to my learning. Thinking that I can figure everything out on my own, or being too shy to reach out for help, really limits my ability to learn efficiently.
Honestly, all of the suggested challenges will be difficult for me - staying on top of the material, working in groups, speaking in front of the group, and keeping focused for 9 weeks. The hardest challenge will definitely be speaking in front of the group. I’m ok to speak in front of people when I know what I’m talking about, but in this instance I am learning and I already feel a bit out of my depth. I will need to keep in mind that I am not the only one in this situation.
I am wanting to develop my interpersonal skills. Specifically, I would like to focus on how I communicate technical matters with others within a group setting.
I will be making sure to manage my workload in this programme by dedicating a set amount of hours during the day to study and attend classes. I will be treating this study as though it is a 9-5 with extra study hours put in where needed. I will be making sure to do some coding at least once a day (including weekends).
I will need to make sure I reach out for help when needed. I cannot spend more than the allocated time on specific topics of study. If I need more time to understand something, I will need to make sure I am reaching out for guidance. I will make sure to use timeboxing to monitor how much time I am spending on certain tasks. I will first seek help from my cohort and then from my facilitator.


For my final project for ‘Faking the news’, I build a web community that has been overun by a swarm of bots.
Using a combination of real-time scraping of data from ilxor, subreddits /r/politics and /r/The_Donald, google image search scraping and machine learning algorithms- the Pluto-C program creates a family of deranged bots reflecting forum and internet culture.
The memiverse sub-forum - I am particularly happy with. The aesthetics of online meme discussions lead themselves to particularly disturbing robot reflections.
The design of the forum was an attempt to create the ‘feeling’ of an abandoned web space. It was designed to be both anachronistic but also a love letter to the aesthetics of the nascent web.
After the machines have moved in, we experience a sense of ‘digital gentrification’ as the once familiar interface of the message board has becomes alien to us. We are no longer relevant or necessary. I like to think of the analogy of an abandoned theme park that is now home to a swarm of insects.
The project is a metaphor for the current state of the internet in 2017 and I hope that the basic sense of the internet as a ‘human space’ is perverted by the experience.


Match Play. Red leads 6-5 to 7 (Crawford). How should Red play 11?
pips Red=155 White=135
(CorrectAnswer= 0/0, ErrorScore= 0)
Glass half full or half empty? Bar/24(2), 6/5(2) or bar/23(2)?
Over the board I chose bar/23(2) looking to save the gammon but the other way to save the gammon is to counter-prime White. This is virtually impossible to calculate over the board and you have to go with what you feel is the best move, based on your experience.
It turns out that making the 5-pt is the best play because it wins 5% more game and thus wins the match.
For once pessimism led me to the wrong decision. But it is close with bar/23(2) not quite an error.
If Red holds a 2-cube in a money game bar/23(2) becomes an error. Then you must definitely play to win.
Not an easy problem.
Over the board I chose bar/23(2) looking to save the gammon but the other way to save the gammon is to counter-prime White. This is virtually impossible to calculate over the board and you have to go with what you feel is the best move, based on your experience.
It turns out that making the 5-pt is the best play because it wins 5% more game and thus wins the match.
For once pessimism led me to the wrong decision. But it is close with bar/23(2) not quite an error.
If Red holds a 2-cube in a money game bar/23(2) becomes an error. Then you must definitely play to win.
Not an easy problem.
1. Cubeful 2-ply bar/23(2) Eq.: -0.961 0.271 0.056 0.002 - 0.729 0.251 0.014 2. Cubeful 2-ply bar/24(2) 6/5(2) Eq.: -0.966 (-0.005) 0.309 0.079 0.003 - 0.691 0.292 0.033 3. Cubeful 2-ply bar/24(2) 13/12*(2) Eq.: -1.042 (-0.081) 0.251 0.070 0.004 - 0.749 0.272 0.023 4. Cubeful 0-ply bar/23 bar/24 13/12* Eq.: -1.228 (-0.267) 0.270 0.077 0.005 - 0.730 0.385 0.066 5. Cubeful 0-ply bar/24(2) 13/12*/11 Eq.: -1.251 (-0.290) 0.230 0.062 0.003 - 0.770 0.355 0.050


| Parameter | Value | Description |
| appendix-number-format |
Allowed values are: 'I', 'i',
'A', 'a', '1'.
Default value:
'A'.
|
The number format of topics referenced in a bookmap as
appendix. By default, such topics are numbered as follows:
Appendix A. Title of first appendix, Appendix
B. Title of second appendix, etc.
|
| cause-number-format |
Allowed values are: 'I', 'i',
'A', 'a', '1'.
Default value:
'A'.
|
In a
<troubleshooting> topic,
multiple <remedy> elements having no title
are given numbers formatted using this format. |
| center |
List of element names separated by
whitespace.
Example: 'fig equation-figure simpletable
table'.
Default value: ''.
|
Specifies which elements are to be centered horizontally
on the page.
|
| equation-number-after |
String.
Default value: ')'.
|
Text added after the contents of a
<equation-number> element. |
| equation-number-before |
String.
Default value: '('.
|
Text added before the contents of a
<equation-number> element. |
| extended-toc |
Allowed values are: 'frontmatter',
'backmatter', 'both',
'none'.
Default value: 'none'.
|
Allows to add
<frontmatter> and
<backmatter>
<topicref> s to the Table of Contents
(TOC) of a document.Note that the
@toc ,
@navtitle , @locktitle , etc,
attributes are applied normally to
<frontmatter> and
<backmatter>
<topicref> s when an extended TOC is
generated. |
| external-resource-base |
Allowed values are: '', an URL ending with
"/" or '#REMOVE'.
|
Specifies how to resolve
<xref>
or <link> elements having an external
@scope attribute and a relative
@href attribute. Example of such
<xref> elements: <xref
scope="external" format="java"
href="src/Test.java">Test.java</xref>.
|
| highlight-source |
Allowed values are: 'yes' and
'no'.
Default value: 'yes'.
|
By default, syntax highlighting is
turned on for all elements specializing
<pre>
and having an @outputclass attribute equals to
language-c, language-cpp,
language-csharp, language-delphi,
language-ini, language-java, language-javascript,
language-m2, language-perl, language-php,
language-python, language-ruby,
language-tcl. |
| index-range-separator |
String.
Default value: '–' (EN
DASH).
|
The string used to separate the first page number from
the last page number in a page range of an indexed term. Example:
index-range-separator='<-->':
C Cat 54, 87<-->90 |
| link-auto-text |
List of values separated by whitespace. Allowed values
are: 'number' and 'text'.
Default value:
'number text'.
|
This parameter specifies which text to generate for a
<link> element, when this
<link> element has no
<linktext> child element or when this
<linktext> child element is
empty.Similar to above parameter xref-auto-text but for
<link> elements. |
| note-icon-list |
List of type attribute values separated by
whitespace.
Default value: 'attention caution danger
fastpath important note notes remember restriction
tip'.
|
Specifies the type (attribute
@type ) of
the <note> elements for which icons should be
used rather than text in order to represent note
labels.Ignored unless
use-note-icon='yes'.
|
| number |
List of values separated by whitespace. Allowed values
are: 'topic', 'chapter-only', 'table',
'fig', 'example', 'equation-figure',
'all'.
Default value: '' (number
nothing).
|
Specifies which elements are to be numbered.
'all' is a short form for 'topic table fig
equation-figure'.
'chapter-only' means: number
topics, but only those referenced in a bookmap as
<part> , <chapter> and
<appendix> .NotePlease note
that 'all' does not include 'example'. If you want
to number all formal elements including examples, then you must
specify 'all example'.
|
| number-separator1 |
String.
Default value: '.'.
|
The string used to separate the hierarchical number of
topics acting as sections.
|
| number-separator2 |
String.
Default value: '-'.
|
The string used to separate the hierarchical number of
figures, tables, examples and equations.
When possible, the
number of figure, table, example or equation is made relative to the
number of the ancestor chapter or appendix. This gives for example
(for descendants of chapter 5): Figure 5-1. Title of first
figure of chapter 5, Figure 5-2. Title of second
figure of chapter 5, etc.
|
| mark-important-steps |
Allowed values are: 'yes' and
'no'.
Default value: 'no'.
|
Generates a "Required" (respectively "Optional") label for
<step> and <substep>
elements having an @importance attribute set to
"required" (resp. "optional"). |
| part-number-format |
Allowed values are: 'I', 'i',
'A', 'a', '1'.
Default value:
'I'.
|
The number format of topics referenced in a bookmap as
part. By default, such topics are numbered as follows:
Part I. Title of first part, Part II. Title
of second part, etc.
|
| prepend-chapter-to-section-number |
Allowed values are: 'yes' and
'no'.
Default value: 'no'.
|
Normally topics which are descendants of chapters (that
is, topics referenced in a bookmap as
<chapter> ) are numbered as follows: 1.
Title of first section, 1.1. Title of first
subsection, etc.Specifying
prepend-chapter-to-section-number='yes' prepends the number
of the chapter ancestor to the section number. This gives for
example (for descendants of chapter 5): 5.1. Title of
first section, 5.1.1. Title of first subsection,
etc.
|
| remedy-number-format |
Allowed values are: 'I', 'i',
'A', 'a', '1'.
Default value:
'A'.
|
In a
<troubleshooting> topic,
multiple <remedy> elements having no title
are given numbers formatted using this format. |
| show-draft-comments |
Allowed values are: 'yes' and
'no'.
Default value: 'no'.
|
Specifies whether
<draft-comments> elements should be
rendered. |
| troubleSolution-number-format |
Allowed values are: 'I', 'i',
'A', 'a', '1'.
Default value:
'1'.
|
In a
<troubleshooting> topic,
multiple <troubleSolution> elements having no
title are given numbers formatted using this format. |
| title-after |
List of element names separated by
whitespace.
Example: 'fig equation-figure
table'.
Default value: ''.
|
Specifies which elements should have their titles
displayed after their bodies.
|
| title-page |
Allowed values are: 'auto', 'none' or
the URI of a custom title page.
Default value:
'auto'.
|
Specifies the kind of ``title page'' (contains the title
of the document, its author, etc) to be generated before the actual
contents of the document.
|
| title-prefix-separator1 |
String.
Default value: '.
'.
|
The string used to separate the number of an formal
object from its title.
|
| use-note-icon |
Allowed values are: 'yes' and
'no'.
Default value: 'no'.
|
Specifies whether icons should be used rather than text
in order to represent the label of a
<note>
element. |
| watermark-image |
URI. If the URI is relative, it is relative to the
current working directory of the user.
No default
value.
|
Specifies an image file which is to be used as a
watermark in all the pages comprising the output document. See also
parameter watermark.
If you
need this feature when generating RTF,
WordprocessingML, Office Open XML
(.docx), OpenDocument
(.odt), please make sure to use
XMLmind XSL-FO Converter
v5.3+.
|
| xref-auto-text |
List of values separated by whitespace. Allowed values
are: 'number' and 'text'.
Default value:
'number'.
|
This parameter specifies which text to generate for an
<xref> element, when this
<xref> element contains no text at
all(1).Let's suppose that an
<xref> element containing no text at all
points to a topic titled "Installation".Because the
<xref> element points to an element having a
<title> child element, ditac may use this
title as a starting point for the generated text.Now let's
suppose that topics are numbered and that the number of the
"Installation" topic is "Chapter 5".
The
text generated for this
<xref> element is
thus:
Note that this specification is just a hint because ditac
needs anyway to generate some text. For example, if topics are not
numbered and xref-auto-text='number', the generated text
will be "Installation".
|
| xsl-resources-directory |
URL. A relative URL is relative to the output
directory.
Default value: 'resources/' resolved
against the directory which contains the XSLT
stylesheets.
|
Most XSLT stylesheets generate files which reference
resources such as icons or CSS stylesheets. This parameter specifies
the target directory which is to contain such resources.
If
this directory does not exist, it is automatically created.
If
this directory does not already contain the resources needed by the
XSLT stylesheets, such resources are automatically copied to this
directory.
The default value of this parameter is something
like
file:/opt/ditac/xsl/xhtml/resources/ for
the stylesheets generating XHTML. URL
file:/opt/ditac/xsl/xhtml/resources/ specifies
an existing directory containing basic.css ,
note.png , important.png ,
etc. This means that by default, no directory is created and no
resource is copied.If the value of this parameter is an
absolute URI, then ditac assumes that no resource directory is to be
created and no resource is to be copied because this has already
been done by the user.
Important
|
| (1) | This implies that the xref-auto-text parameter is
ignored when an <xref> element contains some
text. |


No road toll for Eloor residents
by Staff ReporterThe long-standing demand of the residents of Eloor municipality to exempt them from the toll on Container Terminal Road has been conceded by the National Highways Authority of India.
According to a statement issued by the office of Hibi Eden, MP, at a meeting convened by Mr. Eden to discuss the issue on November 12, the authorities were given a week’s time to convey their decision. The contractor concerned informed the MP about the decision to concede the demand on Monday.


| 0–2 |
Cities lacking basic water services
|
| Access to potable drinking water of sufficient quality and access to sanitation facilities are insufficient. Typically, water pollution is high due to a lack of wastewater treatment (WWT). Solid waste production is relatively low but is only partially collected and, if collected, almost exclusively put in landfills. Water consumption is low, but water system leakages are high due to serious infrastructure investment deficits. Basic water services cannot be expanded or improved due to rapid urbanisation. Improvements are hindered due to governance capacity and funding gaps. |
| 2–4 |
Wasteful cities
|
| Basic water services are largely met, but flood risk can be high and WWT is poorly covered. Often, only primary and a small portion of secondary WWT is applied, leading to large scale pollution. Water consumption and infrastructure leakages are high due to the lack of environmental awareness and infrastructure maintenance. Solid waste production is high, and waste is almost completely dumped in landfills. Governance is reactive and community involvement is low. |
| 4–6 |
Water-efficient cities
|
| Cities implementing centralised, well-known, technological solutions to increase water efficiency and to control pollution. Secondary WWT coverage is high and the share of tertiary WWT is rising. Water-efficient technologies are partially applied, infrastructure leakages are substantially reduced, but water consumption is still high. Energy recovery from WWT is relatively high while nutrient recovery is limited. Both solid waste recycling and energy recovery are partially applied. These cities are often vulnerable to climate change, e.g., urban heating and drainage flooding, due to poor adaptation strategies, stormwater separation and limited green surface ratios. Governance and community involvement has improved. |
| 6–8 |
Resource efficient and adaptive cities
|
| WWT techniques to recover energy and nutrients are often applied. Solid waste recycling and energy recovery are largely covered whereas solid waste production has not yet been reduced. Water efficient techniques are widely applied and water consumption has been reduced. Climate adaptation in urban planning is applied e.g., incorporation of green infrastructures and stormwater separation. Integrative, (de)centralised and long-term planning, community involvement, and sustainability initiatives are established to cope with limited resources and climate change. |
| 8–10 |
Water-wise cities
|
| There is no city scored within this category so far. These cities apply full resource and energy recovery in their WWT and solid waste treatment, fully integrate water planning and urban planning, have multi-functional and adaptive infrastructures, and local communities promote sustainable integrated decision-making and behaviour. Cities are largely water self-sufficient, attractive, innovative and circular by applying multiple (de)centralised solutions. |


We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.
Examples of behavior that contributes to a positive environment for our community include:
Examples of unacceptable behavior include:
Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.
Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate.
This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement via email at<EMAIL_ADDRESS>All complaints will be reviewed and investigated promptly and fairly.
Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct:
Community Impact: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community.
Consequence: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested.
Community Impact: A violation through a single incident or series of actions.
Consequence: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban.
Community Impact: A serious violation of community standards, including sustained inappropriate behavior.
Consequence: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban.
Community Impact: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.
Consequence: A permanent ban from any sort of public interaction within the community.
This Code of Conduct is adapted from the Juneteenth Conference code of conduct available at https://www.juneteenthconf.com/coc.html which in turn was adapted from the Contributor Covenant, version 2.0, available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html
For answers to common questions about this code of conduct, see the FAQ at https://www.contributor-covenant.org/faq. Translations are available at https://www.contributor-covenant.org/translations


The Latest: Greece floods kill 2; hundreds of homes damaged
ROME (AP) - The Latest on severe weather in Europe (all times local):
1:20 p.m.
Authorities in Greece say two people have died and hundreds of homes have been flooded following an overnight storm that affected areas west of Athens.
The bodies of the two men believed to be tourists were recovered late Sunday and early Monday near the port of Antirio, 250 kilometers (155 miles) west of Athens after a sailboat they were using was caught in the severe weather.
Torrential rain and mudslides caused the closure of the highway linking the Greek capital to the western port city of Patras.
The worst flooding occurred at the seaside resort of Kineta, where mudslides came from a nearby fire-damaged hillside. Several dozen people trapped in their cars and in flooded homes were rescued by the Fire Service, the agency said.
12:05 p.m.
Officially say at least five people died as heavy rain slammed the Riviera coasts of France and Italy, trapping travelers in their cars.
Some roads remained closed Monday on the French Riviera, and rivers are still rising in Italy after the weekend flooding.
The administration for France’s Var region said four people died, including a couple in their 70s from the perfume capital of Grasse whose car got submerged. Another died after a French rescue boat sank in the Mediterranean and another was found dead in a car.
In northern Italy, a woman was found dead after the Bomida river swept away her car. Rescuers are also searching for possible victims after a landslide caused the collapse of a stretch of an elevated highway near the flooded city of Savona.
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


Why coding? - Part 2
10 Jun 2015Why coding?
I decided to split this post into two parts. Part 1 explaining what led up to me starting to code and part 2 explaining why I enjoy coding.
Codecademy
I started off easy, learning HTML and CSS, which, quite frankly, I do not enjoy as much. They are pretty simple but do not actually have much to do with coding or programming. When I came to JavaScript and jQuery, it got more interesting.
For people with no exposure to coding, a quick explanation of these languages:
- HyperText Markup Language (HTML)
- The language used to describe and define the content of a Web page. HTML is found throughout the web and basically acts as a scaffolding for a website. Inside the scaffolding you can place content like texts, images, texts, etc. You can see what html looks like here
- Cascading Style Sheets (CSS)
- Used to describe the appearance of Web content. CSS is like a fancy interior designer that makes sure that your website looks awesome, has nice colors and that all the same elements like a paragraph or a header look the same. If you are Firefox you can see what your websites look like without CSS by going to "View --> Pagestyle --> No Style". This sometimes also happens to websites, for example when you go on Facebook and it just shows a white background and blue links, that means that the CSS files failed to load.
- JavaScript (JS)
- The programming language used to build advanced Web sites and applications. Javascript is a "real" programming language. You can research it in more detail online but in the context of a simple website it basically powers animations, button clicks, and other dynamic interactions. You can liken it to the doors and lightswitches in your house. jQuery is an an extension of JavaScript that allows to manipulate effects easily on your website, much like a toolbox.
JavaScript first introduced me to basic programming concepts such as if statements, for loops, variable declarations, functions, etc. To show the usage of these concepts, codecademy let’s you code very simple programs like basic calculators, grocery lists, and so on.
It was not until I started learning Python however that coding fully ignited my passion. Python is generally seen as a language that is easy to learn and that can be applied in many different contexts. Below is a very simple and elegant example of how you can add two numbers by defining a function.
// Create a function that takes two arguments and returns the sum of those arguments
def adder(a, b):
return a + b
// Call the function
adder(2, 6)
// > 8
The logic behind it is extremely powerful and intuitive. Python exposed me to the first problems that required me to really sit down for several hours and just do problem solving, for example:
Write a function that takes a list of numbers and only returns those that are divisible by 3.
There are many many ways to solve this. The feeling you get when the desired answers finally prints to your screen and without error is incredible. This feeling of instant gratification is incredible and I have not encountered it elsewhere. Before computer programming, the only time I could ever concentrate continuously for several hours on thing was when solving math problems that were hard but had a solution somewhere on the horizon.
I realize that my teaching myself I will hardly ever challenge a computer science major in their own field, but teaching myself the practical skills while simultaneously diving into what constitutes the underlying structure the digital and tech world is something that I yearn to do. Learning how to code seems like the perfect way to do it and I am enjoying it tremendously - just as the MIT motto says: ‘mens et manus’.


Some cool stuff. A div is mainly used for grouping entities in order to isolate their positioning and characteristics from the rest of the html.


Overview
Usually each GWT-RPC service appears at a separate URL. The web page makes RPC calls by sending HTTP(S) POST requests containing a UTF-8 string as the request body. The response is a string in a format similar to but not exactly JSON.
Example
Here's a request taken from the Validation sample app. (You can see these in the "Network" tab of the Chrome Developer Tools.)
7|0|6|http://<IP_ADDRESS>:8888/validation/|D031DD0CECD85E06AF1E383A0EC73E6E|com.google.gwt.sample.validation.client.GreetingService|greetServer|com.google.gwt.sample.validation.shared.Person/2669394933|Hello|1|2|3|4|1|5|5|0|6|0|A|
Here's the meaning of each field::
7 => The current protocol version.
0 => No flags are set.
6 => The string table contains six strings, which follow.
[string table] => Six strings that the following fields will refer to via a one-based index
1 => http://<IP_ADDRESS>:8888/validation/ => The base URL of the GWT app.
2 => D031DD0CECD85E06AF1E383A0EC73E6E => The strong name of the policy file.
3 => com.google.gwt.sample.validation.client.GreetingService => The service interface. (Source.)
4 => greetServer => The name of the method to call.
1 => The method call has one parameter.
5 => com.google.gwt.sample.validation.shared.Person/2669394933 => This is the declared type of the method's first parameter, which is needed to look up the method.
5 => (same) => This is the runtime type of the first parameter, which happens to be the same as the declared type. This type is checked against the policy file to make sure it's deserializable (the last two flags are true). Here's the entry in the policy file for Person:
com.google.gwt.sample.validation.shared.Person, false, false, true, true, com.google.gwt.sample.validation.shared.Person/2669394933,<PHONE_NUMBER>
The Person class has four fields which are then serialized in alphabetical order. In this case they all happen to contain primitive Java types. If a field referred to another Java object then its fields would be serialized (recursively).
0 => null => The "address" field , which is null.
6 => "Hello" => The "name" field contains a string.
0 => null => The "otherAddresses" field is null.
A => 0 in base64 => The "ssn" field's value is zero. ("A" is the first base64 character, which decodes to six zero bits.)
Here's the response:
//OK[2,1,["com.google.gwt.safehtml.shared.SafeHtmlString/235635043","Hello, Hello!
I am running jetty-6.1.x.

It looks like you are using: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4"],0,7]
Here's the meaning:
"//" The response starts with a JavaScript comment.
"OK" indicates that the method returned success (rather than an exception).
Next is a JavaScript expression that evaluates to an array, which is written in reverse order so that JavaScript can read values via pop(). Here's the meaning of the values (starting from the end):
7 => The required serialization version.
0 => No flags are set.
[strings] => A table with two strings in it. The rest of the response will use one-based indices (in forward order) to refer to strings.
1 => "com.google.gwt.safehtml.shared.SafeHtmlString/235635043" => The result type.
2 => "Hello, hello..." => The value of the "html" field in SafeHtmlString.


Some quick thoughts on learning Jekyll
After recieving a few queries on how to get started with Jekyll I thought I’d jot down my own opinions here. Of course there is already rather good documentation for the software and plenty of blogs providing tutorials. While no doubt more than adequate, I have more opinions on how to get started actually learning what’s going on than I could easily fit into a tweet, and also a couple favorite links to references so I thought I’d jot down my reply in long form here.
Brief Background
Jekyll is a fantastic and popular static blogging platform, written in Ruby by a Github founder, Tom Preston-Werner, which powers this site (at least currently). Similar static website generators exist for Python (Hyde) Haskell (yst), and probably others, but Jekyll is quite widespread.
With the (unofficial) slogan of the bloging platform for hackers, Jekyll is aimed at folks who don’t mind a little coding. If you’re looking for a polished, user-friendly product where a huge community of developers has written most imaginable extensions, check out Wordpress.org. If you want something where you can easily get into the guts and customize everything, Jekyll may be the best game in town. Compared to a dynamic site, a static site is much more lightweight, which translates into faster, more stable, and less expensive. What’s not to like?
Where to start?
A couple pre-configured Jekyll setups have emerged to reduce the learning curve, most notably Octopress and Jekyll Bootstrap. In my opinion, in an attempt to make things easier through tricks such as automated Ruby makefiles (Rakefiles) I think these projects have actually made Jekyll appear much more complicated than it really is, as evidenced by the number of talented programmers running Octopress with the identical configuration. They may get you started faster, but their use of advanced techniques to provide more functionality out-of-the-box makes for a tougher learning curve.
See the Jekyll-Bootstrap’s introduction to Jekyll for a nice explanation of how Jekyll is laid out. Understand the basic YAML headers, and the role of the _layout
, _includes
and _posts
directories, and you’ve mastered the basics. Or read on below for my take on getting started.
Running Jekyll
For a basic site hosted on Github, one never actually has to run Jekyll locally – just push the site to a gh-pages branch of a Github repository, or to the master branch of a repository named username.github.com
for a personal website, and Jekyll will be run by the server. Jekyll is frequently run locally instead, allowing the user to copy the static website it generates to any (static) web server (see Hosting options, below). Simply install Jekyll following the directions on its homepage README.[^1]
My rough guide to learn-by-doing
I believe the best way to start with Jekyll is start with a really bare-bones site. You add features as you need them, making maintenance easy.
Start with an empty repository. Create a markdown file, say, index.md
. Write whatever you want in standard markdown, just stick a YAML header on the top. Stick what? From your standardized testing days, think something like markdown:html :: yaml:xml
. Three -
on their own line to start, three -
on another line to close define the block of YAML data, whose mere existence is enough to get Jekyll to pay attention to that file. Here we specify any metadata we want.
---
layout: default
---
# My site title
some text
And voilà, we have a functional Jekyll site. The basic thing to remember is that everything else is gravy, to be mastered as you have a need for it. The advanced features can be super helpful once you know them, but in the beginning they may just get in the way of understanding what’s actually going on.
Getting deeper: Jekyll site file structure
Directories that are functional for Jekyll but do not appear in the generated website start with an underscore _
.
Root directory. You don’t need any of the standard directories for a barebones site. As we saw above, any markdown file with YAML header matter in the root directory will be parsed. Don’t like markdown? We could write these files in html (with .html extension) instead. Jekyll will parse them as long as they have some YAML header matter, allowing us to still use things like page templates and other tricks from Liquid code described below.
_posts
Your posts live here. They should be titled inYYYY-MM-DD-post-title.md
format, which will allow Jekyll to automatically figure out the post date and title, while also keeping the posts neatly organized in this directory. (The title and the publication date, optionally including time can alternatively be given in the YAML header matter if you don’t like this convention. See below)._layout
For a completely barebones site, you don’t need this directory. Here you can provide files defining the basic HTML layout, or template, for each of the pages in your website. If your familiar with HTML, you can go ahead and set up a page as you like, and then add the single line of Liquid code in the body to pull in the HTML generated by parsing the markdown files. The mimimal layout file might look something like this (see an HTML tutorial for details):
<!doctype html>
<html lang=en>
<head>
<meta charset=utf-8>
<title> {{ page.title }} </title>
</head>
<body>
{{ page.content }}
</body>
</html>
where the double braces and words page.title
and page.content
are Liquid code that will tell Jekyll to insert the title and content of the page in the appropriate spot. To use a layout, save this file in _layout
with the desired layout name, e.g. plainlayout
, and then it can be applied to any page (markdown or html file in the root directory) or post by adding layout: plainlayout
to the YAML header of that file. This provides a super convenient way to create page templates for a static site.
_includes
Often one might have several layouts corresponding to different kinds of pages on your site. To avoid copy-pasting the parts of the layout that stay the same (perhaps all have the same header matter pointing to your CSS files and analytics tracker), you can just place these snippets inside the_includes
directory with their own filenames. For instance, we could move the header text to a file calledheader
in that directory with the contents:
<!doctype html>
<html lang=en>
<head>
<meta charset=utf-8>
<title> {{ page.title }} </title>
</head>
To automatically reuse a snippet of HTML code in any file on your site (a layout file or other), we need to learn one more Liquid command. This one goes between brace-percent symbols, and uses the command include
, followed by the filename, like so:
{% include header %}
<body>
{{ page.content }}
</body>
</html>
The above example provides a shorter layout file, which pulls in the header snippet. If you have only one layout, this is of course pointless, but the more you add to and change your site, the more useful the ability to reuse a single HTML chunk with just a line of code becomes.
Configuration
- YAML and the
_config.yml
file. Recall that YAML is the very human-readable data structure, whose syntax is explained quite throughly on it’s wikipedia page. One glance at an example reveals almost all you need to know about the syntax, such as:
---
layout: post
category: ecology
tags:
- howto
- jekyll
modified: 2013-01-07
---
Lists can be done in a variety of ways, comma-s
One of the Jekyll beginner’s mysteries is knowing just what words/metadata/variables are already available in Jekyll and how to add those that are not. A list appears on the Jekyll Wiki. Note that the syntax uses the ruby structure, so page.title
and page.date
are both part of the page. We can create any custom variable by adding it to that page’s yaml header. For instance, modified
is not defined anywhere in Jekyll’s default Template Data, but none-the-less we can access this modification date in this page’s layout
or the page itself using {{ page.modified }} liquid tag.
Metadata belonging to the site as a whole, rather than a particular page, is specified in the _config.yml
file, along with a few options telling Jekyll how to parse the site. Again, the Jekyll wiki has a great overview. As the extension implies, this entire file is in YAML. If we want to create new global variables, such as our twitter account, we can just add them to the YAML like so:
author:
twitter: cboettig
github: cboettig
(note the indentation for hierarchy) and now my twitter username is available through the liquid command site.author.twitter
. Again, it’s just another trick to insert some text, just like _layout
and _includes
. Only use can prove how helpful this can be.
 A lot of Jekyll adopters are already familar with Github and it’s flavor of markdown with such features as fenced codeblocks, thus it comes as real suprise to run into advice explaining how code blocks need to be wrapped in the never-heard-of “Liquid” syntax {% highlight %}
. Ignore this nonsense.  Fortunately Github’s Tom Preston-Werner finally gave up the perfect irony that Github’s flavor was not one of the built-in Jekyll parsers (though being a hacker system, this could be added manually), and you can now get that behavior by setting your chosen parser to be redcarpet
with the convenient extensions [^2]
markdown: redcarpet
redcarpet:
extensions: ["no_intra_emphasis", "fenced_code_blocks", "autolink", "tables", "with_toc_data"]
More advanced tricks
Liquid Your next stop should really be to read Liquid for Designers. Liquid is the glue that specifies all the rules needed to assemble your site, and is quite simple. Understand how Liquid works and you’ve mastered Jekyll. Jekyll provides some additional Liquid functions common for blogs.
Your next stop is to get some really nice customizable CSS scaffolding to control the layout for your site. While there’s a huge number of free CSS themes available, this isn’t 2002, so head on over to Twitter-Bootstrap (a project originally created by some of the programmers at Twitter, now evolved to it’s own community). The CSS-based grid layout and some very nice JQuery Javascripts tools can make your site as pretty and as interactive as you can imagine. Like Octopress, prebuilt CSS can lead to all sites looking the same. Check out themes for Bootstrap, and the excellent set of icons by FontAwesome.
Your final step is where the hacking really begins. Now and again you imagine something you just can’t do with these tools. Your only recourse is to ask on Stackoverflow for someone to do it for you learn a bit of Ruby. Anything you can write in Ruby you can add to Jekyll as a “plugin”, by defining a Liquid extension for a Ruby function. Ruby is clearly a favorite language of web-developers thanks to its dynamic-site implementation Ruby-on-Rails and a vibrant Github community, so there’s a wealth of useful tools, including an implementation to most APIs you might care to interact with (Github, Twitter, various Google APIs, are among the ones I’m using).
Hosting options
Because Jekyll generates a static site, it can be hosted almost anywhere for nothing or next to nothing in costs. The primary question to consider is your choice of domain name. If you wish to host your site from university domain name, just copy the contents of _site
into your public_html
or similarly named directory on the web server.
While having a university affiliated domain can appear more official and help with discoverability, buying your own domain name as your permanent Internet home may be a more reliable long-term solution. Once you’ve purchased a domain name from a provider, a static site can be hosted at your own domain name for next to nothing on Amazon S3, or for literally nothing through Github.
[1]: Details on installing and running ruby gems for Jekyll will vary by operating system, so I won’t bother with more details here. Some further background for linux based platforms at least appears in my site’s info file.
Notes
27 Dec 2012
Nonparametric Bayes
Continuing sensitivity analysis
The commit log to sensitivity.md and earlier to myer-exploration.md (now depricated) capture the summary figures for replicate runs of the observation data, with commits corresponding to various parameter configurations, etc. Here is a nice collection of replicates from sensitivity.md
Harvest during observations Tweaked calculation of observation data given the harvest regime under which observations were taken (simulation was not implementing all harvests).
Also adjusted norm used in GP (the parametric use log-normal densities in calculating the transition function on the untransformed data. The GP, also on untransformed data, uses normal noise as per its model).
Relaxed priors, shows no impact on GP performance.
Non-stationary dynamics
- Ran the Allen et al. Allee model under conditions for non-stationary stable states (e.g. period 2, period 4) etc, with and without substantial process noise (to confirm the cyclical pattern). Shows good performance of GP against terrible perfomance of alternative parametric approaches. Closes issue #16
Commit log links to some additional examples:
- another allee example altering MLE initial condition to attempt better likelihood estimates. GP still outperforms. 04:40 pm 2012/12/27
- in oscillatory regime with non-negligible noise. again GP performs nearly optimally while MLE methods suffer greatly 04:27 pm 2012/12/27
- Example of Ricker-Allee in oscillation regime, shows non-trivial dynamics, GP does very well (closes #22) 04:17 pm 2012/12/27
- work with non-named arguments in MLE, consistent ordering for plot legends 04:05 pm 2012/12/27
Other projects
Upgraded gems, had to update notebook’s liquid code metadata to handle dates in string format on pages vs being date objects in posts. de4d4cc
Setting up multiple_uncertainty as a separate repository (branched from pdg-control).
Notes
23 Dec 2012
added generation of observational data under varying harvest conditions (issue #19)
added MLE fit based on the data-generating model (issue #20)
GP plot with and without nugget variance (issue #17)
Run longer simulations under policy such that sustainable profits clearly beat out collapsing the fishery (part of issue #22)
Progress Summary
21 Dec 2012
Progress mid-October through mid-December
80% Time: nonparametric-bayes
The bulk of my time has been spent becoming familiar with the literature on Gaussian Processes and their numerical implementation. I have written my own Gaussian process code from scratch to convince myself of my understanding of the methodology, and explored some of the related numerical issues addressing computational speed and stability.
I then developed an algorithm for applying the Gaussian process inference of the state dynamics to stochastic dynamic programming methods for determining an optimal harvesting policy. I have compared the performance of the Gaussian-process inferred model to the optimal solution (given the exact underlying model) and to solutions based on estimated parametric models (both matching and not matching the underlying structure). This analysis shows the benefit of the nonparametric approach in better accounting for structural uncertainty in the underlying dynamics.
Steve and I have just started to look into the potential for state shifts and warning signals there-of in the ENSO / Pacific decadal oscillation. I obtained 2 appropriate datasets and have run a very preliminary analysis.
20% Time: Independent projects
- pdg-control Working group paper. Updated analysis for Figures 3 and 4. Updated draft. Conference call for feedback from working group participants. (Current draft)
- Wrote comment piece on Early Warning Signals for Nature.
- Working on EWS review paper for Theoretical Ecology with Noam Ross. (Current draft)
- Working on analysis optimal policies under multiple uncertainties (with Jim Sanchirico, Mike Springborn). #multiple-uncertainty tag in notebook; currently analyses are part of pdg-control repository.
- Finished and submitted NSF post-doc application
Other academic activities
- Wrote requested reviews for Conservation Letters, Ecology Letters, Proceedings of the Royal Society B. Declined to review for Systematic Biology.
- Presented my exit seminar in the UC Davis Center for Population Biology Colloquia series.
- Interviewed for the Nature column Turning Point.
- Invited and attended the PLoS alt-metrics workshop and hackathon
- Ran two sessions on version management, dynamic/reproducible papers, and building academic websites for the Mangel group.
- Presented scaling from individual to population level models through the van Kampen expansion in Steve’s Applied Math Club
- Participated regularly in applied math club meetings.
- Established communication with FishBase team, arranged a coalition of developers interested in API access.
- ongoing development in rOpenSci project
Goals for January - March
80% Time
Writeup of the Nonparametric Bayesian approach to management paper.
Initial goal for manuscript is proof of concept piece with the aim of demonstrating the value of a nonparametric approach to ecological decision-making. Alternatively a more technical piece could focus on the details of using Gaussian processes models for stochastic dynamic programming.
- Outline of manuscript: Dec 31st
- Decide on manuscript figures to include
- Complete draft
- Appendices
- Solocit friendly revisions
- Submit (by March 31?)
Next steps and Additional projects
The multi-species context is probably the next goal. Depending on timing, Steve may take the lead on that in these three months; I aim to be working in this in March. The step after will be the active/reinforcement learning/approximate SDP approaches. I aim to start into the background reading for that material but real progress on that front will happen after March.
Steve and I will likely continue to do something with the ENSO / PDO analysis as well. (Currently waiting on Steve’s pending queries to domain experts for further discussion)
I will also need to determine my summer conference schedule during this interval, and submit abstracts, etc. I have committed to the symposium to which I was invited at SIAM in San Deigo, July 8 - 12, and plan on attending ESA.
20% Time goals
- Finish and submit EWS review paper: end of January
- Finish and submit pdg-control policy costs paper (see current issues)
- Finish the methods section for the Labrids paper
- Finish my pending review for Environmental Modeling and Assessment.
- Skype with pdg-control Working group, basic follow-up tasks.
- Some next steps on multiple uncertainty.
Additional academic goals
- Present in mega-group meeting: Feburary 20th
- Join the phylotastic hackathon remotely(?)
Results Comparing Gp To Parametric
20 Dec 2012
Comparison of the Gaussian process inference to the true optimum and a parametric estimate.
Comparison across 100 simulations under the policies inferred from each approach show the nearly optimal performance of the GP and the tragic crashes introduced by the parametric management.
Sensitivity analysis
Working through an exploratory sensitivity analysis to see GP performance over different parameters.
Distribution of yield over replicates shows the parametric model performing rather poorly, while most of the GP replicates perform nearly optimally.
larger growth-rate parameters:
from the commit log
- smaller r, shows GP outperform parametric estimate 09:21 am 2012/12/21
- small noise. works well. 11:01 pm 2012/12/20
- GP performs poorly with weak noise prior (nugget) when not conditioned on 0,0 10:45 pm 2012/12/20
- less successful with higher noise level 09:10 pm 2012/12/20
- Ah here we go! with a decent allee effect model, the results are much clearer! 08:52 pm 2012/12/20
- strange Ricker Allee example – even true model doesn’t harvest successfully 08:37 pm 2012/12/20
- delta 1.5, r 1.3 K 4.5 08:17 pm 2012/12/20
- higher K value results in better persistence in general, not always outperforming parametric model though. 07:57 pm 2012/12/20
- harvest, and then escaped population recruits; comparable 07:09 pm 2012/12/20
- shorter OptTime and lower initial state do not much change the fraction that fail to persist 06:31 pm 2012/12/20
- Sensitivity analysis over replicates shows mixed results 05:35 pm 2012/12/20
- fixed bug (had Ef and V in gp_transition_matrix) 05:18 pm 2012/12/20
- still crashing 05:01 pm 2012/12/20
- more iterations 04:34 pm 2012/12/20
- corrected iterations 04:28 pm 2012/12/20
- cpu=8 for running on one.ucdavis 02:21 pm 2012/12/20
- unique seeds for parallel computing 02:11 pm 2012/12/20
- 30 replicates with full graphs 02:03 pm 2012/12/20
- avoid external source call, print plots 12:49 pm 2012/12/20
- trying methods for looping over replicates efficiently 12:38 pm 2012/12/20
next goals/issues
- #22 Minor modifcations for the replicate comparisons
- #20 Compare against correct parametric model with parameters estimated from the data
- #19 Vary harvest policy during the observation stage
- #17 GP process plots should show with and without nugget variance
Exploring Gp Model Space
19 Dec 2012
Trying to think about a more systematic way to go about varying the parameters: the underlying parametric model has 3 parameters for the stock-recruitment curve’s deterministic skeleton, plus growth noise. (My first exploratory phase has been just to try different things. See my various tweaks in the history log Clearly time to be more systematic about both running and visualizing the various cases.)
Should I just choose a handful of parameter combinations to test? (Trying to think of a way to do this that is easy to summarize – at least I can summarize expected profit under each set). Presumably, for each set of these parameters, I’d want a few (many?) stochastic realizations of the calibration/training data.
Would it be worth digging up some real-world data-sets and base the selection of underlying model parameters on them?
Then there’s a variety of nuisance parameters: grid size, discount rate, price of fish (non-dimensionalization eliminates that one I guess), cost to fishing (and whether the cost is on effort or harvest, whether linear or quadratic, etc), harvest grid size / possible constraints on maximum or minimum allowable levels for the control; length of the calibration period (and related dynamics if we use any of the variable fishing effort models you showed me today).
Additionally there’s the MCMC-related nuisance parameters – parameters for the priors, possibly hyperpriors, and the MCMC convergence analysis (selecting burn-in period – currently 2000 steps out of 16000, etc) . Also the distributional shapes for the priors, and perhaps more meaningfully, the GP covariance function (using Gaussian for simplicity, but might want to look at Matern, and the various linear + Gaussian covariances).
New and progressing issues
- Vary harvest policy during the observation stage
- Add prior & posterior graphs (on same plot) to standard analysis (i.e. gaussian-process-control.R)
- GP process plots should show with and without nugget variance
- examples with non-stationary dynamics (e.g. Ricker with oscillations)
- evaluate GP under large noise conditions
- Characterize and develop a strategy for inferred GP that are not self-sustaining
from the commit log today
- prior/posterior plots added to the BH-Ricker example. Comparable but non-optimal performance by GP. 06:07 pm 2012/12/19
- oscillating ricker still does not give decent solutions 05:45 pm 2012/12/19
- shows posteriors and priors of hyperparameters 05:38 pm 2012/12/19
- fixed minor typo in calc of posterior distribution plots #18 05:15 pm 2012/12/19
- plotting for posteriors and priors added #18 04:13 pm 2012/12/19
- replicate 02:22 pm 2012/12/19
- time to start writing 09:16 am 2012/12/19
- Ah, good. With a bit more data, a very nice example of how GP can avoid problems of a structurally inaccurate parametric approach (Myers vs Ricker). 09:15 am 2012/12/19
- more data going up to positive equilibrium, better but still does not avoid crash 08:29 am 2012/12/19
- An interesting example – seems to work despite being calibrated on a crashing dataset. 08:08 am 2012/12/19
- With smaller K, GP cannot quite determine a proper policy 07:37 am 2012/12/19
- try different dynamic parameters on Myers (lower K) 05:59 am 2012/12/19
Misc: ropensci
- resolved some outstanding issues on rfigshare (rfigshare/issues?state=closed)
Random_ews_example
17 Dec 2012
ENSO EWS
Let’s just see what happens with the MEI data for PDO:
dat <- read.table("https://www.carlboettiger.info/assets/data/mei.csv", header=TRUE)
For the moment let’s ignore annual structure and just collapse this into timeseries sampled bimonthly.
require(reshape2)
dt <- melt(dat, id="YEAR")
X <- dt$value
Z <- X[!is.na(X)]
Z <- data.frame(1:(length(Z)-1), Z[1:(length(Z)-1)])
png("mei.png")
require(earlywarnings)
a <- generic_ews(Z, detrending="gaussian")
How about the data from MacDonald (2005)
dat <- read.table("https://www.carlboettiger.info/assets/data/pdo-macdonald2005.csv", header=TRUE)
png("macdonald2005.png")
require(earlywarnings)
a <- generic_ews(dat, detrending="gaussian")
dev.off()
Nonparametric Bayes Comparisons
15 Dec 2012
Notes on structure of examples
Externalized code so that different example scripts call identical commands for fitting and plotting to avoid duplication of code. Example scripts tend to be pretty text poor at the moment, would probably benefit by better descriptions in the markdown. May still involve redundant and potentially out of date descriptions though.
Currently, externalized code for GP comparison experiments is in gaussian-process-control.R, and is called by may79-example.Rmd, myer-example.Rmd, and reed-example.Rmd.
Also fixed knitcitations to at least include citations in markdown files.
Performance of GP compared to Ricker on an underlying Allee model
Using stationary data only
(see myer-example.md for code and more graphs & details)
Using more data
(from earlier myer-example.md)
Comparing GP to estimated Ricker on BH dynamics:
GP performs well, but Ricker performs adequately as well: reed-example.md (shows an example with stationary data).
Other advances
Approaches shown above address a variety of issues as well:
- Compares to a Ricker estimated by MLE (#8)
- Considers fewer non-stationary observations, but include 0,0 as observation (#13)
- Includes scrap value (#10), though this does not guarentee no fishing under non-persistence estimation
A few next steps:
- measurement error should be introduced in the simulations (#11)
- Evaluate GP performance under larger noise conditions. (#14)
See issues log for further issues to explore and more details on closed issues. See commit log for full details, this entry summarizes progress over the latter half of the week.
Nonparametric Bayes Notes
11 Dec 2012
- Code
gp_transition_matrix
for generic multi-dimensional case
Understanding Gaussian Process performance
If the estimated recruitment dynamics correspond to population dynamics that are non-persistent (might call this non self-sustaining, but in a rather stricter sense than when Reed (1979) introduced that term), and if no reward is offered at the terminal time point for a standing stock (zero scrap value), the GP dictates the rather counter-intuitive practice of simply removing the stock entirely.
Exploring this by comparing evolution of the probability density for the population size under the transition function. Consider this example from a May1979 model (full run in may1979-example.md): The Gaussian process infers a rather pessemistic evolution of the probabilty density (grey distribution becomes black distribution when unharvested, 20 years (OptTime)):
GP transition function
Whereas the actual transition function moves the stock to a tight window around the high carrying capacity:
true transition function
Often this results in a policy function that harvests all the fish, since they won’t persist. Exploring approaches to avoid such solutions, such as adding a reward for leaving some standing stock at the boundary time (issue #10).
Multi-species examples (issue #7)
Fragility of parametric rigidity examples
- infer under BH and simulate under allee
- Infer ricker, simulate under BH
- Other examples?
MCMC
Examples of controlling priors, resulting posteriors. See yesterday’s notes for details
additional R software support
Have been focusing recently on the MCMC implementation for treed Gaussian Processes, provided in the tgp
package.
Lots of various implementations of Gaussian Proccesses in R in geospatial stats packages (e.g. Kriging implementations) including some the offer fully heirachical Bayesian approaches with a variety of twists:
psgp
Projected Spatial Gaussian Process (psgp) methods, Implements projected sparse Gaussian process kriging for the intamap packagegstat
geoR
spBayes
spBayes fits univariate and multivariate spatial models with Markov chain Monte Carlo (MCMC).ramps
Bayesian geostatistical modeling of Gaussian processes using a reparameterized and marginalized posterior sampling (RAMPS) algorithm designed to lower autocorrelation in MCMC samples. Package performance is tuned for large spatial datasets.
From the commit log…
- another example (includes some data in the higher range) #7 06:49 pm 2012/12/11
- a simple multi-demensional example (no policy function yet) #7 06:43 pm 2012/12/11
- updated notes on mcmc approach #6 03:51 pm 2012/12/11
- transition matrix method for GP takes Ef, Cf explicitly now. 03:50 pm 2012/12/11
- GP that results in scorched earth fishing strategy 02:19 pm 2012/12/11


Confirm to remove DNS zone {{dns_zone_name}}
Removing a DNS zone cannot be undone!
A removed zone has to be restored manually.
Remove DNS zone resource record sets
Remove all existing resource record sets.
Only empty DNS zones can be removed by default.
Confirm
Cancel


--- layout: post title: 'FW: The surprising truth about what motivates us' date: 2010-11-24 12:30:25.000000000 +02:00 categories: [] tags: [] status: publish type: post published: true post_id: fw-the-surprising-truth-about-what-motivates-us meta: _edit_last: '1' _wp_old_slug: '' author: login: admin email<EMAIL_ADDRESS>display_name: Radu first_name: '' last_name: '' ---
This is not an actual post, more something I've seen today and is so inspiring that I want to share it with the world: http://www.youtube.com/watch?v=u6XAPnuFjJc


I've moved further development of the project to Clevolution, in Clojure.
"Finding Clojure" slide presentation
The links below refer to the original haXe version.
EvolutionLib contains the Lisp parser and interpreter and the Lisp environment that supports the Evolution system.
REPL is a simple simulator that exercises EvolutionLib's Lisp parser and interpreter. It installs several Lisp functions (lambdas) as symbol values into the environment, then presents several expressions that use these functions to the Lisp system for evaluation.
LispGraph passes an S-expression through the Lisp parser and draws the resulting syntax tree on the screeen.
Evolution is the generative system itself. It generates a random S-expression using the image-processing primitives provided in EvolutionLib; evaluates the expression using the Lisp system; displays the resulting image on the screen along with the S-expression that generated it; and (C++ target only so far) saves the image as a PNG file with the generator expression embedded in the header.
The plan is to grow Evolution into an interactive system similar to that described in Artificial Evolution for Computer Graphics. This will require the ability to direct the random expression generator by interactively setting the desired tree depth and perhaps a desired subset of the primitives, and to choose file names and location for saving. There must also be a desktop interface allowing the user to view saved images and to select images for mutation or breeding (which need to be implemented) or for rerunning an S-expression at higher resolution.
In addition, it is desired to expand the set of image-processing primitives to include color operations and vector graphics.


# include 'bit/meta.html'
# block title {{title + ' |' if title}} # endblock {{config.CONFIG_DB.brand_name}}
# include 'bit/style.html' # include 'bit/analytics.html' # include 'bit/data.html'
{{flask_util_js.js}} # include 'bit/script.html'