For Administrators
Environment Information Dumping with nuxeoctl connect-report
8.3 8.10 A new command has been added to nuxeoctl, nuxeoctl connect-report
. This new command gathers information that can be useful to understand the environment in which a bug or a problem can be reproduced. This command was added in an effort to keep improving the quality of the service delivered by the Nuxeo Support Team. Information includes: configuration, templates used, environment information via JVM MBeans and more.
The addon Nuxeo Connect Tools Report Web is available to provide a basic user interface to get the report.
Startup Wizard Improvements on Module Selection
8.10 The Module selection step of the startup wizard has been reviewed to provide a more user-friendly interface, take into consideration the distribution changes and make dependencies between addons and UIs more straightforward.
MarkLogic as a New Storage Backend
8.3A new implementation of the DBS interface (NoSQL) has been done for the MarkLogic database. It is available as a Nuxeo Package on the Nuxeo Marketplace.
MongoDB 3.2
8.2 MongoDB 3.2 is now supported as a storage backend.
PostgreSQL 9.5
8.3 PostgreSQL 9.5 is now supported as a storage backend. Nuxeo 8.10 also works with PostgreSQL 9.6 although not yet added to CI.
Elasticsearch 2.X
8.10 From version 8.10, Nuxeo uses Elasticsearch 2.x version. Please carefully read our upgrade documentation.
S3 Configuration via Extension Point
8.1 Customers needing to connect to more than one S3 binary managers with different
configurations are now able to do so using the new
configuration
extension point of
org.nuxeo.ecm.core.blob.BlobManager
. Previously only one bucket could be configured in
nuxeo.conf
.
<extension point="configuration" target="org.nuxeo.ecm.core.blob.BlobManager"> <blobprovider name="default"> <class>org.nuxeo.ecm.core.storage.sql.S3BinaryManager</class> <property name="awsid">your_AWS_ACCESS_KEY_ID</property> <property name="awssecret">your_AWS_SECRET_ACCESS_KEY</property> <property name="region">us-west-1</property> <property name="bucket">your_s3_bucket_name</property> <property name="bucket.prefix">myprefix/</property> <property name="directdownload">true</property> <property name="directdownload.expire">3600</property> <property name="cachesize">100MB</property> <property name="crypt.keystore.file">/my/keystore.jks</property> <property name="crypt.keystore.password">password</property> <property name="crypt.key.alias">mykey</property> <property name="crypt.key.password">password</property> <property name="connection.max">50</property> <property name="connection.retry">3</property> <property name="connection.timeout">50000</property> <property name="socket.timeout">50000</property> </blobprovider> </extension>
Server-Side Encryption with S3
8.1 Support for Server-Side Encryption (SSE-S3) has been added as an alternative to
Client-Side Encryption (CSE) as documented in the
S3
Java SDK. This is enabled through the property
nuxeo.s3storage.crypt.serverside=true
.
GridFS as Part of the Default Distribution
8.1 GridFS is now part of the base distribution, in nuxeo-core. It will have to be
activated explicitly using the
gridfsbinaries
template. There is no need to install an additional Nuxeo Package anymore. Read our
MongoDB documentation
for more information.
JCloud Binary Manager
8.10 The JClouds binary manager that allows to store files on the main cloud blobstores has been upgraded to use the version 1.9.2 of the underlying Apache library. Some bugs have been fixed to handle large files and a new property jclouds.blobstore.endpoint
allows to configure the endpoint to use.
Quartz MongoDB Backend
8.10 Quartz is now automatically enabled in cluster mode when using the MongoDB template and does not require an SQL backend anymore.
Quartz MySQL Backend
8.10 Quartz is now automatically enabled in cluster mode when using the MySQL template.
SAML Addon Compatible with ADFS
8.2 After adjusting a few blind parts of the specification, the SAML plugin has been successfully used with Active Directory Federation Services.
SAML - Sample for Use Mapper
8.10 A generic user mapper sample has been added.
Elasticsearch Indexing Operations
8.1 Elasticsearch indexing operations are now available from Nuxeo Automation in addition to the Admin Center. Using a REST call you can now:
- Re-index an entire repository
- Re-index documents that match an NXQL query
- Re-index a document and its children
- Wait for indexing and perform an index refresh
Indexing Optimization Using Scroll API
8.10 Instead of loading all document IDs to reindex, the new repository scroll API is used to remove memory pressure.
Full-Text Indexing Optimization
8.3We optimized the indexing flow by using ES bulk indexing features, when full-text indexing is disabled at the repository level. Number of works queued is now divided by two.
Allow Separate Repository DDL Generation
8.1 Nuxeo can now start with a new
nuxeo.vcs.ddlmode
parameter that specifies how the DDL for repository initialization should be executed at startup. Depending on
the chosen mode, the DDL may not be executed at all and instead dumped to the
log/ddl-vcs-default.sql
log file. Possible values for
nuxeo.vcs.ddlmode
are:
ignore
: no DDL detected or executed. Replacesnuxeo.vcs.noddl=true
.compat
: compatibility mode with previous version. Always executes DDL that recreates stored procedures (and does not attempt to detect existing ones). Replacesnuxeo.vcs.noddl=false
.execute
: executes the DDL and starts Nuxeo normally.dump
: dumps the DDL (if any) to the file but still executes it and starts Nuxeo normally.dump,ignore
: dumps the DDL (if any) to the file but does not execute it and starts Nuxeo normally (will likely result in errors).dump,abort
: dumps the DDL (if any) to the file, and if not empty aborts startup.
For Nuxeo Platform 6.0 and Nuxeo Platform 7.10 the default was
nuxeo.vcs.ddlmode=compat
. For Nuxeo 8.2 the default is
nuxeo.vcs.ddlmode=execute
.
Note that all this applies to the DDL for the document repository, but not DDL used by other users of SQL in the platform (directories, quartz, JPA persistence).
New nuxeoctl Commands to Register Instances
8.3Some new commands are available:
nuxeoctl register [<username> [<project> [<type> <description>] [<pwd>]]] nuxeoctl register-trial [<email> <company> <project> <description> [<pwd>]]
register
allows to register an instance using an existing Nuxeo Online Services account while register-trial
allows to create an account and get a trial against the Nuxeo Online Services portal.
Lots of Improvements for nuxeoctl mp-install
8.10Many improvements were added to nuxeoctl mp-install behavior and multiple bugs were fixed.
Redis
Cluster Invalidation with Redis in
nuxeo.conf
8.1 Using Redis to process cluster invalidation instead of database can be
configured in nuxeo.conf using
repository.clustering.invalidation=redis
(it used to be in the repository contribution).
Less Memory Footprint for Redis
8.2 Some work has been done to optimize the size of serialized works, hence lowering the requirements in terms of memory size for Redis.
Redis Pool Size Configuration
8.2The Redis connection pool size can be configured using the new
nuxeo.conf
options:
nuxeo.redis.maxTotal
(default 16)nuxeo.redis.maxIdle
(default 8)
Retry Logic for Redis Calls
8.2Nuxeo now uses a failover executor with an exponential delay policy: 1ms, 2ms, 4ms, 8ms, 16ms, 32ms .. until the timeout has reached 5min by default.
Work Manager and Shutdown
8.2There was some clean up in the way jobs were processed, especially at server's shutdown. When server is shutdown, works being processed are finished before real shutdown. If server's process is killed, job will be restarted as the system is transactional.
User Manager Cache is Back
8.3A cache is now set up for the UserManager by default. It was not the case any more on LTS 2015 for users persisted in an SQL directory.
LibreOffice is Started In CommandLine
8.10 The PDF transformation of an office document is now done without using JODConverter but using a command line based PDF converter. This gives a more stable architecture. It assumes LibreOffice is on the path. Read our Installation documentation for all the requirements.
Nuxeo Importer
New Queue Importer
A queue based importer has been added as an additional bundle of the Nuxeo Platform Importer addon. This importer's interest is that it allows to store import job in queues, with a Kafka implementation, guaranteeing robustness and reliability of the import process at scale.
Non-Bulk Mode Available
8.3 With the following contribution you can now configure the importer to work in non-bulk mode, which is a bit slower but allows regular Work instances to be created and directed to specific queues:
<extension target="org.nuxeo.ecm.platform.importer.service.DefaultImporterComponent" point="importerConfiguration"> <importerConfig> <bulkMode>false</bulkMode> </importerConfig> </extension>
Nuxeo Importer without ES Indexing
8.3The nuxeo-importer can now run with Elasticsearch indexing turned off. The reindexing can be done after the mass import.
Use of Docker for 3D conversions
8.10 3D conversions run with the new 3D addon make use by default of Docker and pull images containing necessary software for conversions (Collada, Blender). Nuxeo should generalize this design in the future.
Read the Nuxeo 3D documentation.Web App Optimizations
8.2 Since 6.0 and migration to JSF2, some regressions on the performance of the webapp were found, especially on heavy load. Some optimization work has been done. On a commodity hardware benchmarks shows after optimization that we are able to server 25% more requests.
JDK Required
8.10 The JDK (versus JRE) is now required to launch The Nuxeo Platform. Read our Installation documentation for all the requirements.
Configurable Content-Security-Policy Header
8.10
The Content-Security-Policy header is useful to protect against a variety of attacks, one of them being clickjacking (https://www.owasp.org/index.php/Clickjacking). Nuxeo now includes a permissive Content-Security-Policy. The default Nuxeo configuration is:default-src *; script-src 'unsafe-inline' 'unsafe-eval' data: *; style-src 'unsafe-inline' *; font-src data: *
A stricter policy can be defined using a contribution like:
<require>org.nuxeo.ecm.platform.web.common.requestcontroller.service.RequestControllerService.defaultContrib</require> <extension target="org.nuxeo.ecm.platform.web.common.requestcontroller.service.RequestControllerService" point="responseHeaders"> default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' data: connect.nuxeo.com apis.google.com app.box.com; style-src 'self' 'unsafe-inline' fonts.googleapis.com; img-src 'self'; font-src 'self' data: fonts.gstatic.com; media-src 'self'; frame-src 'self' www.nuxeo.com accounts.google.com; frame-ancestors 'self' </extension>


- Developed and Maintained Android Native app. and Web app.
- Management CJ Korea Express, E&M AIM and E&M STORY
- Acquired Android application programming skills
- Released on google Play per month with amendments
- Participated mobile projects as an Android developer
- Developed TMS, Mobile SDK Library and CJ Wellness
- Used open API such as OKhttp, Realm, Butterknife, ... etc
- Took charge of Google Analytics
- Applied Google Analytics on Android applications that I managed
- Guided all employees who are Android developer on how to set Google Analytics on Android application
- Undertook Mobile Application Accessibility
- Completed education of mobile application content accessibility guide, assessment and production techniques from NIA(National Information Society Agency)


--- layout: default ---
Some of our last project. The project also listed on our Company profile.
For all the projects are listed here.


| 1 | package fr.sii.ogham.core.condition; | |
| 2 | ||
| 3 | import java.util.List; | |
| 4 | ||
| 5 | import fr.sii.ogham.core.util.StringUtils; | |
| 6 | ||
| 7 | /** | |
| 8 | * Condition that provides a logical OR operation on manipulated conditions. | |
| 9 | * | |
| 10 | * @author Aurélien Baudet | |
| 11 | * | |
| 12 | * @param <T> | |
| 13 | * the type of the object to test | |
| 14 | */ | |
| 15 | public class OrCondition<T> extends CompositeCondition<T> { | |
| 16 | ||
| 17 | /** | |
| 18 | * Initializes the {@code or} operator with none, one or several | |
| 19 | * sub-conditions. | |
| 20 | * | |
| 21 | * <pre> | |
| 22 | * Condition<String> condition1 = ... | |
| 23 | * Condition<String> condition2 = ... | |
| 24 | * OrCondition<String> myCondition = new OrCondition<>(condition1, condition2); | |
| 25 | * </pre> | |
| 26 | * | |
| 27 | * Has the same effect as: | |
| 28 | * | |
| 29 | * <pre> | |
| 30 | * Condition<String> condition1 = ... | |
| 31 | * Condition<String> condition2 = ... | |
| 32 | * OrCondition<String> myCondition = new OrCondition<>(); | |
| 33 | * myCondition.or(condition1); | |
| 34 | * myCondition.or(condition2); | |
| 35 | * </pre> | |
| 36 | * | |
| 37 | * @param conditions | |
| 38 | * the conditions to register (order is important) | |
| 39 | */ | |
| 40 | @SafeVarargs | |
| 41 | public OrCondition(Condition<T>... conditions) { | |
| 42 | super(conditions); | |
| 43 | } | |
| 44 | ||
| 45 | /** | |
| 46 | * Initializes the {@code or} operator with none, one or several | |
| 47 | * sub-conditions. The list must not be null. | |
| 48 | * | |
| 49 | * @param conditions | |
| 50 | * the conditions to register (order is important) | |
| 51 | */ | |
| 52 | public OrCondition(List<Condition<T>> conditions) { | |
| 53 | super(conditions); | |
| 54 | } | |
| 55 | ||
| 56 | @Override | |
| 57 | public boolean accept(T obj) { | |
| 58 | for (Condition<T> condition : getConditions()) { | |
| 59 | // if the condition accepts the object => stop now | |
| 60 |
1
1. accept : negated conditional → RUN_ERROR |
if (condition.accept(obj)) { |
| 61 |
1
1. accept : replaced boolean return with false for fr/sii/ogham/core/condition/OrCondition::accept → RUN_ERROR |
return true; |
| 62 | } | |
| 63 | } | |
| 64 | // none condition has accepted the object => it is rejected | |
| 65 |
1
1. accept : replaced boolean return with true for fr/sii/ogham/core/condition/OrCondition::accept → RUN_ERROR |
return false; |
| 66 | } | |
| 67 | ||
| 68 | /** | |
| 69 | * Adds a condition to the current condition. For example: | |
| 70 | * | |
| 71 | * <pre> | |
| 72 | * OrCondition<String> myCondition = new OrCondition<>(); | |
| 73 | * myCondition.or(new FixedCondition<>(true)); | |
| 74 | * myCondition.apply("foo"); // will always return true | |
| 75 | * | |
| 76 | * myCondition.or(new FixedCondition<>(false)); | |
| 77 | * myCondition.apply("foo"); // will always return false | |
| 78 | * </pre> | |
| 79 | * | |
| 80 | * The returned instance is the same as {@code myCondition} so you can also | |
| 81 | * write this: | |
| 82 | * | |
| 83 | * <pre> | |
| 84 | * OrCondition<String> myCondition = new OrCondition<>(); | |
| 85 | * myCondition = myCondition.or(new FixedCondition<>(true)); | |
| 86 | * myCondition.apply("foo"); // will always return true | |
| 87 | * | |
| 88 | * myCondition = myCondition.or(new FixedCondition<>(false)); | |
| 89 | * myCondition.apply("foo"); // will always return true because first | |
| 90 | * // condition always returns true | |
| 91 | * </pre> | |
| 92 | * | |
| 93 | * | |
| 94 | * @param condition | |
| 95 | * the condition to add | |
| 96 | * @return this instance for fluent chaining | |
| 97 | */ | |
| 98 | public OrCondition<T> or(Condition<T> condition) { | |
| 99 | addCondition(condition); | |
| 100 |
1
1. or : replaced return value with null for fr/sii/ogham/core/condition/OrCondition::or → NO_COVERAGE |
return this; |
| 101 | } | |
| 102 | ||
| 103 | /** | |
| 104 | * Adds several conditions at once to the current condition. This can be | |
| 105 | * useful when you register each sub-condition into a list: | |
| 106 | * | |
| 107 | * <pre> | |
| 108 | * List<Condition<String>> conditions = new ArrayList<>(); | |
| 109 | * conditions.add(...); | |
| 110 | * conditions.add(...); | |
| 111 | * OrCondition<String> myCondition = new OrCondition<>(); | |
| 112 | * myCondition.or(conditions); | |
| 113 | * </pre> | |
| 114 | * | |
| 115 | * @param conditions | |
| 116 | * the list of conditions to register | |
| 117 | * @return this instance for fluent chaining | |
| 118 | */ | |
| 119 | public OrCondition<T> or(List<Condition<T>> conditions) { | |
| 120 | addConditions(conditions); | |
| 121 |
1
1. or : replaced return value with null for fr/sii/ogham/core/condition/OrCondition::or → NO_COVERAGE |
return this; |
| 122 | } | |
| 123 | ||
| 124 | @Override | |
| 125 | public String toString() { | |
| 126 |
1
1. toString : replaced return value with "" for fr/sii/ogham/core/condition/OrCondition::toString → NO_COVERAGE |
return "{" + StringUtils.join(conditions, " or ") + "}"; |
| 127 | } | |
| 128 | } | |
Mutations | ||
| 60 |
1.1 |
|
| 61 |
1.1 |
|
| 65 |
1.1 |
|
| 100 |
1.1 |
|
| 121 |
1.1 |
|
| 126 |
1.1 |


Web Designer / Developer
I started learning to code in June of 2017. I have received guidance from many close friends in the industry and supplemented my learning with sites like FreeCodeCamp and Codecademy.
I have learned very quickly and I continue to expand on my knowledge due to constant a drive to know more. My current coding skills include HTML, CSS, SASS, Vanilla JavaScript, and jQuery. I have built several applications that utilize APIs, responsive design, and minimalist intuitive interfaces.
This portfolio page was created with HTML, SASS(scss), CSS (w/grid layout), and JavaScript/jQuery/jQueryUI.
Here are some of the projects I have made while developing my coding skills.
Twitch Viewer
HTML, CSS (w/grid layout), Bootstrap, JavaScript
Twitch.tv is an online video game streaming site where anyone can share live gameplay. This responsive web app utilizes the twitch.tv API to fetch information on popular streamers.
Wikipedia Search
HTML, CSS, Bootstrap, jQuery, jQueryUI, JavaScript
This app uses the MediaWiki API to return search results from queries entered into the form. It also has a responsive design.
Local Weather
HTML, CSS (w/grid layout), Bootstrap, jQuery, jQueryUI
This app uses a FreeCodeCamp weather API to find weather conditions in the user's area based on the device's coordinates.
Quote Generator
HTML, CSS, Bootstrap, JavaScript, jQuery, jQueryUI
This app uses the Quotes on Design API to fetch a new random quote and JavaScript arrays to change the font and color of UI elements.
Carl Sagan Tribute Page
HTML, CSS, Bootstrap
The first web page I ever made. This is a small tribute to one of the most influential people in modern astronomy and science education.
I am currently available for employment and am eager to join a team and continue to grow as a developer while further advancing my skills.
<EMAIL_ADDRESS>LinkedIn Facebook Github freeCodeCamp


Send Notification
Send
single notification to active users, by Entering value into
Title
and
Message
Title :
Message :
Notification Status :
Status : No Notifications so far.


Trader Viktor:
Don't lie to me, mister. I can tell by your shabby clothes that you have nothing of value. That equipment? Worthless!
"Then what is it that you want?"


Methods
- S
- T
-
- test_that_smart_converts_double_quotes_to_curly_quotes,
- test_that_smart_converts_single_quotes_in_words_that_end_in_ll,
- test_that_smart_converts_single_quotes_in_words_that_end_in_re,
- test_that_smart_gives_d_suffix_a_rsquo,
- test_that_smart_gives_m_suffix_a_rsquo,
- test_that_smart_gives_ve_suffix_a_rsquo
Instance Public methods
setup()
Link
Source: show
# File req/redcarpet2/test/redcarpet_test.rb, line 19 def setup @pants = Redcarpet::Render::SmartyPants end
test_that_smart_converts_double_quotes_to_curly_quotes()
Link
Source: show
# File req/redcarpet2/test/redcarpet_test.rb, line 33 def test_that_smart_converts_double_quotes_to_curly_quotes rd = @pants.render(%Q(
"Quoted text"
)) assert_equal %Q(
“Quoted text”
), rd end
test_that_smart_converts_single_quotes_in_words_that_end_in_ll()
Link
Source: show
# File req/redcarpet2/test/redcarpet_test.rb, line 28 def test_that_smart_converts_single_quotes_in_words_that_end_in_ll markdown = @pants.render("
Well that'll be the day
") assert_equal "
Well that’ll be the day
", markdown end
test_that_smart_converts_single_quotes_in_words_that_end_in_re()
Link
Source: show
# File req/redcarpet2/test/redcarpet_test.rb, line 23 def test_that_smart_converts_single_quotes_in_words_that_end_in_re markdown = @pants.render("
They're not for sale.
") assert_equal "
They’re not for sale.
", markdown end
test_that_smart_gives_d_suffix_a_rsquo()
Link
Source: show
# File req/redcarpet2/test/redcarpet_test.rb, line 48 def test_that_smart_gives_d_suffix_a_rsquo rd = @pants.render("
what'd you say?
") assert_equal "
what’d you say?
", rd end


| Groups | Complience |
|---|---|
| {{group.complience}} | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% | |
| 95% |
An interactive pie chart goes here
A line graph goes here


Select from the questions below, click random in the bottom right corner, or type a question number from 1 to 1064 and then click Go To.
Press 'h' for help and hotkeys.
There are currently 1064 questions loaded. About 90% of them also have answers loaded. The random question button in the bottom right will load a random question without checking whether there are answers loaded for that question. You may also use the main menu to pick a question or use Go To which loads the question number in the textbox. The score (center of gameboard) and strikes (lower left) are reset each round, so you'll need to keep a tally for each team as you play.
Press 'h' to show or hide (h)elp.
Press 'a' to show or hide the question for the currently displayed (a)nswers.
Press 'q' to show or hide all the (q)uestions.
Press 'r' to load a (r)andom question.
Press 'enter' to load the question in the textbox.
Press 's' to add to the (s)trike count!.


Feedback Panel
Please provide the feedback
Canteen
Question
Bad
Average
Good
Excellent
How hygienic is the dining area of cafeteria?
To what extent is diret contact by serving staff avoided with food item by the means of gloves?
How fresh are the food item being served?
Your review of the food being served accordingly to taste would be?
How economical are the price?
How according to you is the choice of menue?
Back
send
"; echo $_SERVER['SERVER_NAME']; if(isset($_POST['submit'])){ $selecval = $_POST['g1']+$_POST['g2']+$_POST['g3']+$_POST['g4']+$_POST['g5']+$_POST['g6']; // Storing Selected Value In Variable $num=6; $selecval= $selecval/$num; echo "You have selected :" .$selecval; $query="INSERT INTO fedican (avg) VALUES('".$selecval."')"; $retval = mysqli_query($con,$query); if(!$retval){die('no data:'.mysqli_error($con));} } ?>


Now let's look at a program that scans a file for acronyms. Each acronym is replaced with a full text description, and the acronym in parentheses. If a line refers to "BASIC," we'd like to replace it with the description "Beginner's All-Purpose Symbolic Instruction Code" and put the acronym in parentheses afterwards. (This is probably not a useful program in and of itself, but the techniques used in the program are general and have many such uses.)
We can design this program for use as a filter that prints all lines, regardless of whether a change has been made. We'll call it awkro.
awk '# awkro - expand acronyms # load acronyms file into array "acro" FILENAME == "acronyms" { split($0, entry, "\t") acro[entry[1]] = entry[2] next } # process any input line containing caps /[A-Z][A-Z]+/ { # see if any field is an acronym for (i = 1; i <= NF; i++) if ( $i in acro ) { # if it matches, add description $i = acro[$i] " (" $i ")" } } { # print all lines print $0 }' acronyms $*
Let's first see it in action. Here's a sample input file.
$cat sample
The USGCRP is a comprehensive research effort that includes applied as well as basic research. The NASA program Mission to Planet Earth represents the principal space-based component of the USGCRP and includes new initiatives such as EOS and Earthprobes.
And here is the file acronyms:
$cat acronyms
USGCRP U.S. Global Change Research Program NASA National Aeronautic and Space Administration EOS Earth Observing System
Now we run the program on the sample file.
$awkro sample
The U.S. Global Change Research Program (USGCRP) is a comprehensive research effort that includes applied as well as basic research. The National Aeronautic and Space Administration (NASA) program Mission to Planet Earth represents the principal space-based component of the U.S. Global Change Research Program (USGCRP) and includes new initiatives such as Earth Observing System (EOS) and Earthprobes.
We'll look at this program in two parts. The first part reads records from the acronyms file.
# load acronyms file into array "acro" FILENAME == "acronyms" { split($0, entry, "\t") acro[entry[1]] = entry[2] next }
The two fields from these records are loaded into an array using the first field as the subscript and assigning the second field to an element of the array. In other words, the acronym itself is the index to its description.
Note that we did not change the field separator, but instead used the split() function to create the array entry. This array is then used in creating an array named acro.
Here is the second half of the program:
# process any input line containing caps /[A-Z][A-Z]+/ { # see if any field is an acronym for (i = 1; i <= NF; i++) if ( $i in acro ) { # if it matches, add description $i = acro[$i] " (" $i ")" } } { # print all lines print $0 }
Only lines that contain more than one consecutive capital letter are processed by the first of the two actions shown here. This action loops through each field of the record. At the heart of this section is the conditional statement that tests if the current field ($i) is a subscript of the array (acro). If the field is a subscript, we replace the original value of the field with the array element and the original value in parentheses. (Fields can be assigned new values, just like regular variables.) Note that the insertion of the description of the acronym results in lines that may be too long. See the next chapter for a discussion of the length() function, which can be used to determine the length of a string so you can divide it up if it is too long.
Now we're going to change the program so it makes a replacement only the first time an acronym appears. After we've found it, we don't want to search for that acronym any more. This is easy to do; we simply delete that acronym from the array.
if ( $i in acro ) { # if it matches, add description $i = acro[$i] " (" $i ")" # only expand the acronym once delete acro[acronym] }
There are other changes that would be good to make. In running the awkro program, we soon discovered that it failed to match the acronym if it was followed by a punctuation mark. Our initial solution was not to handle it in awk at all. Instead, we used two sed scripts, one before processing:
sed 's/\([^.,;:!][^.,;:!]*\)\([.,;:!]\)/\1 @@@\2/g'
and one after:
sed 's/ @@@\([.,;:!]\)/\1/g'
A sed script, run prior to invoking awk, could simply insert a space before any punctuation mark, causing it to be interpreted as a separate field. A string of garbage characters (@@@) was also added so we'd be able to easily identify and restore the punctuation mark. (The complicated expression used in the first sed command makes sure that we catch the case of more than one punctuation mark on a line.)
This kind of solution, using another tool in the UNIX toolbox, demonstrates that not everything needs to be done as an awk procedure. Awk is all the more valuable because it is situated in the UNIX environment.
However, with POSIX awk, we can implement a different solution, one that uses a regular expression to match the acronym. Such a solution can be implemented with the match() and sub() functions described in the next chapter.
Awk supports linear arrays in which the index to each element of the array is a single subscript. If you imagine a linear array as a row of numbers, a two-dimensional array represents rows and columns of numbers. You might refer to the element in the second column of the third row as "array[3, 2]." Two- and three-dimensional arrays are examples of multidimensional arrays. Awk does not support multidimensional arrays but instead offers a syntax for subscripts that simulate a reference to a multidimensional array. For instance, you could write the following expression:
file_array[NR, i] = $i
where each field of an input record is indexed by its record number and field number. Thus, the following reference:
file_array[2, 4]
would produce the value of the fourth field of the second record.
This syntax does not create a multidimensional array. It is
converted into a string that uniquely identifies the element in a
linear array. The components of a multidimensional subscript are
interpreted as individual strings ("2" and "4," for instance) and
concatenated together separated by the value of the system variable
SUBSEP. The subscript-component separator is
defined as
"
\034"
by default,
an unprintable character rarely
found in ASCII text. Thus, awk maintains a one-dimensional array and
the subscript for our previous example would actually
be "
2\0344"
(the
concatenation of "2," the value of
SUBSEP, and "4"). The main
consequence of this simulation of multidimensional arrays is that the
larger the array, the slower it is to access individual elements.
However, you should time this, using your own application, with
different awk implementations (see Chapter 11, A Flock of awks).
Here is a sample awk script named bitmap.awk that shows how to load and output the elements of a multidimensional array. This array represents a two-dimensional bitmap that is 12 characters in width and height.
BEGIN { FS = "," # comma-separated fields # assign width and height of bitmap WIDTH = 12 HEIGHT = 12 # loop to load entire array with "O" for (i = 1; i <= WIDTH; ++i) for (j = 1; j <= HEIGHT; ++j) bitmap[i, j] = "O" } # read input of the form x,y. { # assign "X" to that element of array bitmap[$1, $2] = "X" } # at end output multidimensional array END { for (i = 1; i <= WIDTH; ++i){ for (j = 1; j <= HEIGHT; ++j) printf("%s", bitmap[i, j] ) # after each row, print newline printf("\n") } }
Before any input is read, the bitmap array is loaded with O's. This array has 144 elements. The input to this program is a series of coordinates, one per line.
$cat bitmap.test
1,1 2,2 3,3 4,4 5,5 6,6 7,7 8,8 9,9 10,10 11,11 12,12 1,12 2,11 3,10 4,9 5,8 6,7 7,6 8,5 9,4 10,3 11,2 12,1
For each coordinate, the program will put an "X" in place of an "O" as that element of the array. At the end of the script, the same kind of loop that loaded the array, now outputs it. The following example reads the input from the file bitmap.test.
$awk -f bitmap.awk bitmap.test
XOOOOOOOOOOX OXOOOOOOOOXO OOXOOOOOOXOO OOOXOOOOXOOO OOOOXOOXOOOO OOOOOXXOOOOO OOOOOXXOOOOO OOOOXOOXOOOO OOOXOOOOXOOO OOXOOOOOOXOO OXOOOOOOOOXO XOOOOOOOOOOX
The multidimensional array syntax is also supported in testing for array membership. The subscripts must be placed inside parentheses.
if ((i, j) in array)
This tests whether the subscript i,j (actually, i SUBSEP j) exists in the specified array.
Looping over a multidimensional array is the same as with one-dimensional arrays.
for (item in array)
You must use the split() function to access individual subscript components. Thus:
split(item, subscr, SUBSEP)
creates the array subscr from the subscript item.
Note that we needed to use the loop-within-a-loop to output the two-dimensional bitmap array in the previous example because we needed to maintain rows and columns.


#include <ScaleConfigInterface.h>
Public Types | |
| LEFTALIGNMENT | |
| Left alignment of the scale. Scale grows from left to right. | |
| RIGHTALIGNMENT | |
| Right alignment of the scale. Scale grows from right to left. | |
| enum | ScaleAlignment { LEFTALIGNMENT, RIGHTALIGNMENT } |
Public Member Functions | |
| ScaleConfigInterface (MapLib *mapLib) | |
| ~ScaleConfigInterface () | |
| void | enableScale (bool enable) |
| void | setDistanceUnit (DistanceUnit unit) |
| void | setAlignment (ScaleAlignment scaleAlignment) |
| void | setMaxWidth (wf_uint16 maxScaleWidth) |
| void | setHeight (wf_uint16 scaleHeight) |
| void | setPosition (wf_uint16 posX, wf_uint16 posY) |
| wf_uint16 | getMaxWidth () const |
| wf_uint16 | getHeight () const |
| wf_int32 | getPositionXLed () const |
| wf_int32 | getPositionYLed () const |
| WFAPI::ScaleConfigInterface::ScaleConfigInterface | ( | MapLib * | mapLib | ) |
Constructor.
| mapLib | The instance of mapLib to configure. |
| WFAPI::ScaleConfigInterface::~ScaleConfigInterface | ( | ) |
Destructor.
| void WFAPI::ScaleConfigInterface::enableScale | ( | bool | enable | ) |
To enable the scale in the map.
| enable | If the scale should be enabled. |
| wf_uint16 WFAPI::ScaleConfigInterface::getHeight | ( | ) | const |
Get the height of the scale.
| wf_uint16 WFAPI::ScaleConfigInterface::getMaxWidth | ( | ) | const |
Get the maximum width of the scale.
| wf_int32 WFAPI::ScaleConfigInterface::getPositionXLed | ( | ) | const |
Get the position of the scale in X-led.
| wf_int32 WFAPI::ScaleConfigInterface::getPositionYLed | ( | ) | const |
Get the position of the scale in Y-led.
| void WFAPI::ScaleConfigInterface::setAlignment | ( | ScaleAlignment | scaleAlignment | ) |
Set the alignment of the scale.
| scaleAlignment | The alignment of the scale. |
| void WFAPI::ScaleConfigInterface::setDistanceUnit | ( | DistanceUnit | unit | ) |
Set distance unit used in the scale
| unit | The unit to use for showing distance in the scale. |
| void WFAPI::ScaleConfigInterface::setHeight | ( | wf_uint16 | scaleHeight | ) |
Set the height of the scale.
| scaleHeight | The height of the scale. |
| void WFAPI::ScaleConfigInterface::setMaxWidth | ( | wf_uint16 | maxScaleWidth | ) |
Set the maximum width of the scale.
| maxScaleWidth | The maximum width of the scale. |
| void WFAPI::ScaleConfigInterface::setPosition | ( | wf_uint16 | posX, | |
| wf_uint16 | posY | |||
| ) |
Set the position of the scale.
| posX | The position in X-led. | |
| posY | The position in Y-led. |


Nick Bostrom has a very interesting paper called “Existential Risk Prevention as Global Priority.” The basic intuition is that preventing even small risks of human extinction is worthwhile if we consider all the human generations it would save.Existential Risk Prevention as Global Priority
Meteor events have varying degrees of impact on the earth. While small meteoroids and asteroids frequently scrape the earth's atmosphere with little to no consequences, major impact events caused by large astronomical objects, despite their rarity, can significantly shape the tracks of lives on earth.
Finds are meteorites which were found on the ground unrelated to any sighting, due to the finder recognizing them to be clearly identifiable as being of nonterritorial origin. Falls are meteorites which were seen to fall from the sky and which were tracked down successfully.To date, there have been nearly 1,100 recovered falls (meteorites seen to fall) and nearly 40,000 finds (found, but not seen to fall). It is estimated that probably 500 meteorites reach the surface of the Earth each year, but less than 10 are recovered. This is because most fall into the ocean, land in remote areas of the Earth, land in places that are not easily accessible, or are just not seen to fall (fall during the day).
Our best estimates of the total incoming meteoroid flux indicate that about 10 to 50 meteorite dropping events occur over the earth each day. It should be remembered, however, that 2/3 of these events will occur over ocean, while another 1/4 or so will occur over very uninhabited land areas, leaving only about 2 to 12 events each day with the potential for discovery by people. Half of these again occur on the night side of the earth, with even less chance of being noticed.
The number of random, or “sporadic” meteors that can be seen in the night sky is quite variable, depending upon such factors as the time of night, time of year, light pollution, and cloud conditions. Perhaps the most important factors necessary in order to observe meteors are to have a clear, unobstructed view, out in the open, and under as dark sky conditions as possible.
We can’t see or track them down due to poor atmospheric clarity, or they are more likely been burned up due to thicker cloud conditions.amsmeteors.org
Visualizations presented with this work were created using the Meteorological society dataset. After publishing the dataset, the society produced the visualization of their own, created in Tableau. The Tableau solution served as a quick overview and inspiration for some of the first sketches of ours. Looking at it, we observed a first pattern - a meteorite mass per year presented with a simple bar-chart:
While sketching the bar charts, we accidentally smudged them and noticed with surprise that the shape resembles the bright tail of a meteor. We then proceeded to replicate this effect with more bar charts. We started deleting lines, changing the positions, and introducing new colors. All the steps were hand-sketched and that transfered into the Photoshop.
Considering that the bar charts only represent partial geometry of a flying meteor, we experimented with a variety of plotting schemes hoping to visualize the data in the shape of a whole meteor.
Our thought process is portrayed in the figure below. The width and height of a bar represent a time span and a certain meteor parameter, respectively. The bar chart can be morphed into a semi-circle donut chart with close resemblance to the meteor body. Used in tandem, the bar chart and donut chart together can carry more information: an arc and a width segment connected by a dotted line correspond to the same time span, whereas their orange bars are a measure of two different or correlated meteor parameters.
The final sketch is shown in the figure below, where on the donut chart the ratio of the height of the shaded orange bar to the whole bar indicates the meteor fallen percentage, and on the bar chart the height of the bar describes the magnitude of total mass per year. One minor change in the final sketch is that within a single time span, there are multiple data on the bar chart that visualize the data of total mass per year on a finer scale.
With a noticeable peak period between 1800-1966, when calculating the fallen percentage, we divided the timeline into 4 parts (2500 BCE-1000 BCE, 1000 BCE-500 CE, 500CE-1800 CE and 1800 CE-2012 CE), with an emphasize of analyzing the last part.
The two diagrams above were ultimately combined into a shape that resembled a real meteorite: it is composed by the fallen percentages listed alongside the curved timeline, and the bar chart imitating the “lighting tail”.
Finally, an infographic design was created that visualized two parameters using shapes resembling real meteorites to enhance audience immersion.
To sum up, existing data suggests that although the 1800-2012 period contributes to the majority of total mass through years, there is reduced probability of observing a meteorite, and the total mass per year is decreasing. It is speculated that the reasons behind these due primarily to the lower atmospheric clarity than before and thicker cloud conditions where the meteorites are more likely to burn up. Even so, preparation is always a must. “We know for a fact the dinosaurs did not have a space program.” NASA Administrator Jim Bridenstine said, quoting TV personality Bill Nye. “But we do, and we need to use it.”
The project concept was developed as part of the "E-79: The Art and Design of Information" course. Ning Chen is an information designer, just a portion of her magical art skills is presented with this work. Zona Kostic is a research fellow and adjunct faculty at Harvard University. Creative advising and storytelling were the main contributions of hers in this work.
Our special thanks goes to Giulia Zerbini, the best teaching fellow at Harvard Unversity and the most talented communication designer we have a chance to work with!


Tuesday, September 27, 2011 by adam goucher
smattering
A Smattering of Selenium #60
This instalment of catch-up week is brought to you by the letters C and I.
- The pre-scm-buildstep plugin for jenkins adds a useful step into the job workflow.
- Understanding your tools is important. Here is an explanation of Jenkings Action and its subtypes
- You think your CI setup is impressive? Check out the Apache Foundation’s Jenkins server
- The easiest way to get CI going is with the ubiquitious but completely unoffically Ant JUnit XML format. Publishing Python unit test results in Jenkins discusses a python package a bit for it.
- To me, using a headless browser like HTMLUnit makes very little sense. Now, a headful browser on a headless machine — that makes sense. Setting up Jenkins CI to run selenium tests and record video in three easy steps explains how to do this in Ruby.
- Travis CI – Selenium setup shows the similar thing minus the recording of a video for the Travis CI environment.
- So far it seems that one should just subscribe to the Multunus blog and be done with it. Or at least the continuous delivery category.
- Think your web app deployment is ‘hard’? Continuous Delivery: How do we deliver in 3 clicks to 7000 machines? discusses a .NET client application. Now go count your blessings and get that remote svn export scripted.
- Won’t somebody please think of the systems? looks at CI with a bit of an ITIL lens
- Distributed Check-in Tokens: Pass-The-Puppy presents a quick technical solution for not breaking the build through tokens. You could of course talk to each other but there are sometimes time zones conspiring against you.
Tags
Categories
Monday, September 26, 2011 by adam goucher
smattering
A Smattering of Selenium #59
Its been a month and a half since the last one of these, and the volume of links I have collected illustrates that. So this week is now a cleanup week.
- How Browsers Work: Behind the Scenes of Modern Web Browsers seems to be one of those articles that people who automate browsers for a living should be familiar with.
- 100% Test Coverage is always the goal.
- Continuous Deployment and Data Visualization reminds us that if some data is good, more is often better.
- This is for JUnit, but the ideas apply to any runner.
JUnit Kung Fu: Getting More Out of Your Unit TestsView more presentations from wakaleo
- Database Cleaner is a set of strategies for cleaning your database in Ruby. I think you should just let your database get dirty (since that’s what happens in production) but I’ll give that there are scenarios where that’s not desirable.
- The Zen of UI Testing with Selenium, Hudson and Sauce Labs illustrates a nice switch in the @Before method to run either locally or in the cloud (in this case with Sauce Labs). Limiting your framework to be always in the cloud or always behind your firewall is silly these days.
- What’s wrong with Ruby’s test doubles? has good overview of the types of test doubles there are. Front-end automation should be generous use of the ‘Stub’ brand I think.
- Automation is programming. And Page Objects are OO. So How to Design Classes is pretty darn interesting.
- The Samuel L Ipsum really needs an API so we can use it as a random string generator for automation.
- For one project I’m working on, I am validating whats in the browser with a JSON feed. JSON Formatter has been a saviour the last week.
Tags
Categories
Monday, August 15, 2011 by adam goucher
smattering
A Smattering of Selenium #58
And here we go again with more links than I thought I had collected…
- There are a metric tonne of site on the internets which are on how to scam your way through a Se interview. Hiring Selenium QA people provides some fodder on how one could look for and hire Se folk.
- Why I don’t use spork reminds us that pain is [sometimes] a good thing.
- The Jenkins project is having a conference on October 2 in the same hotel that SeConf was held.
- So long, farewell, and thanks for all the automation lessons learned (or: o hai beautiful Page Object Model AMO Selenium tests!) could win the prize for the longest title ever. And has a good lessons learned section at the bottom.
- Selunit lets you run your Selenese inside something like Jenkins
- ATDD is still ‘the next big thing’, but Raconteur seems pretty darn cool. If I worked in C# that is…
- From Agile 2011 we have
Pay close attention to the database section. I’m getting more and more convinced that this is the part that most companies can benefit the most from.
- How to get the args of a function in Python is one of those geeky things that is super helpful and likely a smell that you are trying something you shouldn’t be at the same time.
- Is your test automation actually agile? A Guardian Content API example. is part two of one linked in the last Smattering. And the last paragraph is so full of win.
- Our friends at Watir have released Watir 2.0. Congrats!
- I’ve not tried to run Cucumber in Jenkins, but explains how to do it should you have need
- More people should make logos out of lego.
- Waiting for elements when UI-testing with WebDriver and EPiTest explains a bit about the WebDriverWait class and has The road to UI-testing hell is paved with Thread.Sleep which would get it linked to in any event.
- One thing that keeps getting brought up around WebDriver is ‘how do I get the http code of a request?’. The short answer is you don’t. The long answer is you have to do something like HOWTO: Collect WebDriver HTTP Request and Response Headers
- How Cadence Predicts Process reminds people to look at all parts of the process when speeding things up
- When building frameworks or DSLs it is useful to know how to make things as deprecated. deprecatable is one way to do it in Ruby
- Exploratory Testing in an Agile Context is another session handout from Agile 2011.
- #Selenium Tales from the road part 1 – Artifact Naming and Organization describes one way of organization your Se stuffs. That you need a convention I think is exactly why you should use dynamic suites via tags, but…
- The PyCon US 2012 Call for Proposals is now out.
- Continuous Deployment of iOS Apps with Jenkins and TestFlight describes how to build iOS apps in Jenkins (and if you want, pushing them up to TestFlight)
- Why oh why am I only just discovering requests which makes Python’s urllib2 usable.
- How to be a faster writer isn’t about writing scripts or code, but its ideas are still sound.
- I pretty much refuse to read anything in ACM format, but On the Criteria To Be Used in Decomposing Systems into Modules could be of interest to someone without my biases.
- An Inside Look at the GIL Removal Patch of Lore is the geekiest bit of writing I’ve read all month.
- I had forgot how much I enjoy purpose built sites like Is the internet down?
- I did a webinar on Page Objects the other week for which the video is now available. Its not embeddable, but there is at least a link around the registration wall above the form.
Tags
Categories


Information systems for transit network planning and utilization
To build a set of tools that enables the stakeholders in a public transit system to organize and utilize the system in a more efficient and sustainable way.
The tools shall derive their learning from observed traveler behavior, as captured by (but not limited to) various systems including Automated Fare Collection (AFC) systems and Automatic Vehicle Location (AVL) systems, and stated traveler preferences, in the form of surveys.
The goal of attaining better organization and utilization shall be met primarily through the following objectives:
- Providing travelers information regarding their likely overall travel experience rather than restricting it to the availability of means to travel. This shall include the provision of occupancy and arrival time reliability information.
- Monitoring the amount of transportation-work produced by transit vehicles and analyzing how this can be improved through changes in service schedules or alterations in the stopping pattern.
- Using observed traveler behavior from the AFC system of Brisbane to determine the demand for travel between different ‘regions’, rather than different stops, to enable services plying between common regions to tackle the total demand in the most concerted way.
- Building a simulation tool that schedules transit vehicles on existing routes to best fulfill the region-wise demands while maximizing work utilization including considering the utilization lost in transfer to and from depots. The simulation shall consider the elasticity for parameters including occupancy, travel time, access, and egress etc. as indicated by the survey. The results from this simulation shall be funneled into the operator information system.
Other than these, we shall explore other approaches towards achieving our goal. These include microscopic pricing strategies and promoting regularity over stochasticity in the network among others.
Throughout the development, the scalability and portability of the tools shall assume importance so that they can be implemented in different data situations. A first step in this shall be hosting the beta development on a web portal.


Defines a top-level container for all the elements necessary to describe an C++ API class.
The <cxxClass> topic type contains elements necessary to show the name, short description, syntax and usage of a class.
<cxxClass> also contains all the elements to describe the member variables and functions. To do this insert cxxFunction, cxxDefine, cxxVariable, cxxEnumeration or cxxTypedef elements into the cxxClass module.
The cxxClass topic contains the following elements:


--- layout: default ---
Completely uninformed and casual hot-takes from a designer’s perspective on new crypto companies and upcoming ICO’s. This is very non-technical and definitely isn’t investment advice.


Across: 1. Medicine man holds pictures (6) 4. Capers about in drag (6) 9. Spurious debts removed as an incentive (4) 10. Sign by Churchtown (10) 11. Declare in game of cricket (6) 12. Divide split peas at speed (8) 13. Novice has fish (9) 15. 150 now covered (4) 16. Not all students of maths enrol initially (4) 17. Measures around old city with fortitude (9) 21. Liking to write song (8) 22. Trick foolish parent (6) 24. Sold second fancy whipped-up confection (5-5) 25. Papers talked about in posh hotel (4) 26. Everyone turned sad outside US city (6) 27. Bob down further and not so fast (6) Down: 1. Turner beats Brown! (7) 2. Tend to cast runes (5) 3. Cocktail made doctor too unsteady in '55 (7) 5. Squeezes King Charles' politicians around one (6) 6. Capone leaves this country and leaves another (9) 7. Put together before Edward caught cold (7) 8. Twist back into a new arrangement in fear! (13) 14. Oh, I'd claim these characters could be murderous! (9) 16. Marshal Lawrence draws back outside (7) 18. Silent "U" in saucepan, perhaps? (7) 19. Talk about Luton Town player (7) 20. Basket-maker comes from afar if ordered (6) 23. Worth destroying pitch? (5)


Home
Cool
Show / Hide Stats
3D view: use "+" & "-" keys to zoom.
Use numpad to play with keyboard.
Against machine
Level
Human:
White
Black
Promotion to:
Queen
Rook
Bishop
Knight
2D view
3D view
Both
Enable keyboard
View side:
White
Black
Human side
Frame Rate(ms):


{% extends "base.html" %} {% block title%} site login {% endblock%} {% block content %} {% if form.errors %}
Your usernamne and password didn't match. Please try again.


home
about
blog
donate
contact
We need your help!
$25
$50
$100
$500
OTHER
$
DONATE
You’re Donating:
$
One time!
Monhly!
Billing Address
Full Name
Email
Address
City
State
Zip
Payment
Name on Card
Credit card number
Exp Month
Exp Year
CVV
Shipping address same as billing
DONE


What is a cross-site scripting attack (XSS) and how do you prevent it?
Answer
XSS refers to client-side code injection where the attacker injects malicious scripts into a legitimate website or web application. This is often achieved when the application does not validate user input and freely injects dynamic HTML content.
For example, a comment system will be at risk if it does not validate or escape user input. If the comment contains unescaped HTML, the comment can inject a <script>
tag into the website that other users will execute against their knowledge.
- The malicious script has access to cookies which are often used to store session tokens. If an attacker can obtain a user’s session cookie, they can impersonate the user.
- The script can arbitrarily manipulate the DOM of the page the script is executing in, allowing the attacker to insert pieces of content that appear to be a real part of the website.
- The script can use AJAX to send HTTP requests with arbitrary content to arbitrary destinations.
Good to hear
- On the client, using
textContent
instead of innerHTML
prevents the browser from running the string through the HTML parser which would execute scripts in it.
- On the server, escaping HTML tags will prevent the browser from parsing the user input as actual HTML and therefore won’t execute the script.
Additional links


{% extends "layouts/base.html" %} {# djlint:off #} {% block title %}Ooops...{% endblock title %} {# djlint:on #} {% block content %}
The server encountered a temporary error and could not complete your request.


Payne Geiger - Contact
Home
Edcuation
Experience
Hobbies
Contact
Contact Information
Phone Number:
(319) 830-2515
Address:
1705 Dearborn Ave.
E-Mail:
Click here
Leave Me a Message
Choose a Date:
First Name:
Last Name:
E-Mail:
Comments:


Methods
-
withAuth() → {function}
-
A simple wrapper to any component that will only display the component if the user is in an authenticated state. It will look for props injected into the component to determine whether to display either:
- A Failure Component (when the
authenticatedSelector
returnsfalse
) - An Authenticating/Pending Component (when
authenticatingSelector
returnstrue
andauthenticatedSelector
also returnsfalse
) - Your actual Component (when the
authenticatedSelector
returnstrue
) If the optional components are not providednull
will be rendered/returned when in those states.
Parameters:
Name Type Description args.authenticatedSelector
function | String A prop name OR a selector function that will find the prop injected into the component that identifies whether the user is authenticated or not (defaults to look for a prop named
isAuthenticated
)args.authenticatingSelector
function | String A prop name OR a selector function that will find the prop injected into the component that identifies whether the user authentication is in-progress or not (defaults to look for a prop named
isAuthenticating
)args.AuthenticatingComponent
function An optional component that would be displaying while authentication is in-progress (defaults to an empty Component that returns
null
)args.FailureComponent
function An optional component that would be diplayed when authentication fails (defaults to a Component Component that returns
null
)args.wrapperDisplayName
String An optional display name to give to the wrapper component (defaults to just 'AuthWrapper')
Returns:
function -A function that is ready to receive a Component to decorate
- A Failure Component (when the
-
withAuthAndRedirect() → {function}
-
A simple wrapper to any component that will only display the component if the user is in an authenticated state. Unlike the
withAuth
higher-order component, this one will default to a given route or relative URL when authentication fails. It will look for props injected into the component to determine whether to display either:- A Failure Component (when the
authenticatedSelector
returnsfalse
, but will default to render a redirect component) - An Authenticating/Pending Component (when
authenticatingSelector
returnstrue
andauthenticatedSelector
also returnsfalse
) - Your actual Component (when the
authenticatedSelector
returnstrue
)
Parameters:
Name Type Description args.authenticatedSelector
function | String A prop name OR a selector function that will find the prop injected into the component that identifies whether the user is authenticated or not (defaults to look for a prop named
isAuthenticated
)args.authenticatingSelector
function | String A prop name OR a selector function that will find the prop injected into the component that identifies whether the user authentication is in-progress or not (defaults to look for a prop named
isAuthenticating
)args.redirectPath
function | String A prop name OR a selector function that will find the prop injected into the component that identifies the route or relative URL to send the user to when authentication fails
args.AuthenticatingComponent
function An optional component that would be displaying while authentication is in-progress (defaults to an empty Component that returns
null
)args.allowRedirectBack
Boolean Whether or not to redirect back to the original location after authentication completes successfully
args.FailureComponent
function An optional component that would be diplayed when authentication fails (defaults to a Component Component that returns
null
, but redirects to whatever it finds on theredirectPath
)args.wrapperDisplayName
String An optional display name to give to the wrapper component (defaults to just 'AuthWrapper')
args.redirectQueryParamName
String An optional prop name to identify the route/relative-URL from the component's injected props
Returns:
function -A function that is ready to receive a Component to decorate
- A Failure Component (when the
-
withAuthFromContext() → {function}
-
A simple wrapper to any component that will only display the component if the user is in an authenticated state. Unlike the
withAuth
higher-order component, this one is expecting a Context Consumer to be provided, and it will use the props provided to the consumer to apply the authenticated/authenticating selectors. It will look for props injected into the component to determine whether to display either:- A Failure Component (when the
authenticatedSelector
returnsfalse
) - An Authenticating/Pending Component (when
authenticatingSelector
returnstrue
andauthenticatedSelector
also returnsfalse
) - Your actual Component (when the
authenticatedSelector
returnstrue
) If the optional components are not providednull
will be rendered/returned when in those states.
Parameters:
Name Type Description args.authenticatedSelector
function | String A prop name OR a selector function that will find the prop injected into the component that identifies whether the user is authenticated or not (defaults to look for a prop named
isAuthenticated
)args.authenticatingSelector
function | String A prop name OR a selector function that will find the prop injected into the component that identifies whether the user authentication is in-progress or not (defaults to look for a prop named
isAuthenticating
)args.ContextConsumer
function An instance of a
.Consumer
from the context object that React.createContext() returnsargs.AuthenticatingComponent
function An optional component that would be displaying while authentication is in-progress (defaults to an empty Component that returns
null
)args.FailureComponent
function An optional component that would be diplayed when authentication fails (defaults to a Component Component that returns
null
)args.wrapperDisplayName
String An optional display name to give to the wrapper component (defaults to just 'AuthWrapper')
Returns:
function -A function that is ready to receive a Component to decorate
- A Failure Component (when the
-
withAuthFromContextAndRedirect() → {function}
-
A simple wrapper to any component that will only display the component if the user is in an authenticated state. Unlike the
withAuth
higher-order component, this one will default to a given route or relative URL when authentication fails. Additionally, it is driven by a context consumer component (one of the props returned in the output of React.createContext()). It will look for props injected into the component to determine whether to display either:- A Failure Component (when the
authenticatedSelector
returnsfalse
, but will default to render a redirect component) - An Authenticating/Pending Component (when
authenticatingSelector
returnstrue
andauthenticatedSelector
also returnsfalse
) - Your actual Component (when the
authenticatedSelector
returnstrue
)
Parameters:
Name Type Description args.authenticatedSelector
function | String A prop name OR a selector function that will find the prop injected into the component that identifies whether the user is authenticated or not (defaults to look for a prop named
isAuthenticated
)args.authenticatingSelector
function | String A prop name OR a selector function that will find the prop injected into the component that identifies whether the user authentication is in-progress or not (defaults to look for a prop named
isAuthenticating
)args.redirectPath
function | String A prop name OR a selector function that will find the prop injected into the component that identifies the route or relative URL to send the user to when authentication fails
args.AuthenticatingComponent
function An optional component that would be displaying while authentication is in-progress (defaults to an empty Component that returns
null
)args.ContextConsumer
function An instance of a
.Consumer
from the context object that React.createContext() returnsargs.allowRedirectBack
Boolean Whether or not to redirect back to the original location after authentication completes successfully
args.FailureComponent
function An optional component that would be diplayed when authentication fails (defaults to a Component Component that returns
null
, but redirects to whatever it finds on theredirectPath
)args.wrapperDisplayName
String An optional display name to give to the wrapper component (defaults to just 'AuthWrapper')
args.redirectQueryParamName
String An optional prop name to identify the route/relative-URL from the component's injected props
Returns:
function -A function that is ready to receive a Component to decorate
- A Failure Component (when the


| Map | {{::replay.MapName}} |
| Game mode | {{::replay.VictoryConditionName}} |
| Version | {{::replay.GameVersion}} |
| Score to achive | {{::replay.ScoreLimit}} |
| Uploaded | {{::replay.UploadDate | date:'yyyy-MM-dd'}} |
| Game version | {{::replay.GameVersion}} |
| Player | Level | Rank | ELO | ||
|---|---|---|---|---|---|
| {{::player.PlayerName | cut:false:30:'...'}} | {{::player.PlayerLevel}} | {{::player.PlayerRank}} | {{::player.PlayerElo}} | [deck] |
| Player | Level | Rank | ELO | ||
|---|---|---|---|---|---|
| {{::player.PlayerName | cut:false:30:'...'}} | {{::player.PlayerLevel}} | {{::player.PlayerRank}} | {{::player.PlayerElo}} | [deck] |


Click this button to create a new random person
The table below will display the results
Click Me!
Age
Gender
Weight
Name


{% extends 'base_test.html' %} {% load i18n %} {% block additional-headers %}
You are about to delete a , this procedure is irreversible.
Do you want to proceed?


Short Bio
Hello everyone. It's David Alejo, a post-doctoral research assistant from the University Pablo de Olavide since October, 2015.
I received the Telecommunications Engineering degree in 2007, the M. S. in Automatics, Robotics and Telematics in 2010 and obtained my Ph.D. degree in 2015.
My main research interest include coordination on multi-agent systems, which is the main research line of my Ph.D. Thesis, navigation and path-planning, localization in GPS-denied areas and mapping.
I am currently involved in the Echord++ Project, in particular in the PTDI Challenge on Urban Robotics which is focused on the development on a semi-autonomous ground robot for sewer inspection. I have the honor of belong to the SIAR team.


Main
Champ
Other
About
x
This is how you use this button. It is very buttony and very nice.
Pick rate based on time of day: [12:00 - 12:30pm] UTC
Select a Champion
x
x
This is how you use this button. It is very buttony and very nice.
Highest Winning Item
548 Less Than Twenty-Minute Games
This heatmap shows where the most deaths occured during the event. The darker the blood, the more deaths.
120,460 Teemo Deaths
7636 "Twenty-Minute Surrenders"


After jumping into Swift and now that its at 2.0, I wanted to share how the Dependency Managers compared to previously with Objective-C projects. Working with swift and including libraries in a project is now slightly different. In the early days of Swift Cocoapods had some issues with integration as swift now requires dynamic libraries in order to integrate a library with a swift project. Objective-C libraries can still be included in your project, but in some cases you need to add a special bridging header in order for them to work.
There are a few options of dependency manager, and I will describe my experience with the top ones at the moment.
Carthage
Since the release of swift, a dependency manager written in the language it was designed for makes sense. Since it only supports swift, this dependency manager is not for everyone. It is simpler than cocoapods and requires dependencies to be manually integrated. You need to add the frameworks to XCode project manually after they have been built with Carthage.
You can install Carthage on OSX with brew.
brew install carthage
You add dependencies by creating a Cartfile in your project.
# Require version 2.3.1 or later github "ReactiveCocoa/ReactiveCocoa" >= 2.3.1 # Require version 1.x github "Mantle/Mantle" ~> 1.0 # (1.0 or later, but less than 2.0) # Require exactly version 0.4.1 github "jspahrsummers/libextobjc" == 0.4.1 # Use the latest version github "jspahrsummers/xcconfigs"
There libraries can then be built with the following command:
carthage build
Cocoapods
This package manager has been very popular and was around before swift. Because of its history, it has mostly been for objective-c projects. The Cocoapods teams have had some early hiccups but they have been able to build in Swift support as well as Objective-C support for Swift projects.
It also has a really good index of packages, this makes discovering packages and new versions of packages really easy. Even when using Carthage, I found myself going here to find the latest version number of a package.
In some cases, some Objective C libraries require a Bridging Header in order to be included into a project. For more information you can view the apple documentation. You can do this by:
File > New > File > (iOS or OS X) > Source > Header File
This file would look something like this:
#import "XYZCustomCell.h" #import "XYZCustomView.h" #import "XYZCustomViewController.h"
There are some other dependency managers worth mentioning as well, SWM and Taylor. You can find them on Github. Taylor is similar to NPM and Bower, dependencies are added to a JSON file
There is a lot of options and flexibility when it comes to dependency management with iOS. Since using these different managers on different projects I have a personal preference of Cocoapods. I prefer having the packages automatically integrated, the easily searchable repository and compatibility with Objective-C and Swift for all of my projects.


Contact Us
Call us at: 1<PHONE_NUMBER>
Support
If you need assisstance, create a support ticket. If you have other questions, you can send us an email.
Call us at: 1<PHONE_NUMBER>
If you need assisstance, create a support ticket. If you have other questions, you can send us an email.


Word & Worship v1.0If you are able to read this on your projection screen, your app has started successfully!!!


WITNESS LIST Natural Resources Committee January 28, 2000-10:00A groundwater On: Bass, Laura (Self) Beck, Shirley S. (Self and Citizens for Groundwater Conservation) Brown, Travis (Self and Neighbors for Neighbors) Burke, John (Aqua Water) Combs, Susan (Department of Agriculture, Commissioner) Houghtling, David (Self) Houghtling, Susan (Self) Ingram, Margaret (Texas Legislative Council) Johnson, Corwin W. (Self) Kowis, James (Alcoa) Pedersen, Craig D. (Texas Water Development Board) Prager, John R. (Bastrop Co. Environmental Network) Saitas, Jeff (TNRCC) Shelp, Cindy (Self) Simon, Haskell (Matagorda Co. Water Council and LCRVF) Strange, Michael (Self) Weiss, Bob (Self) Williams, Pam (Self) Woods, Billie (Self and Neighbors for Neighbors) welcome On: Beal, Joe (LCRA) McDonald, Ronnie (Bastrop County)


I am a Management Information Systems major at the University of Delaware. I am on track to graduate in May of 2020.


| Included Services - Summary |
| ::com::sun::star::view::OfficeDocumentView |
- (referenced entity's summary:)
- specifies a view of a standard office document.
|
| Exported Interfaces - Summary |
| ::com::sun::star::view::XViewSettingsSupplier |
This interface permits access to the properties of the view.
|
| XTextViewCursorSupplier |
This interface makes it possible to access the cursor which belongs
to the view and can be visible for the user.
|
| ::com::sun::star::beans::XPropertySet |
Gives access to the objects properties.
(details)
|
| Properties' Summary |
[ readonly ] long
PageCount |
[ OPTIONAL ]
returns the number of pages in the document
|
[ readonly ] long
LineCount |
[ OPTIONAL ]
returns the number of lines in the document
|
boolean
IsConstantSpellcheck |
[ OPTIONAL ]
specifies if spellchecking should be done while typing.
|
boolean
IsHideSpellMarks |
[ OPTIONAL ]
specifies if the marks for misspelled text should be displayed.
|
| Properties' Details |
PageCount
[ readonly ] long PageCount;
- Usage Restrictions
- optional
- Description
- returns the number of pages in the document
Since the document needs to be formatted to get the result
obtaining this value may take some time.
- Since
- OOo 2.0
|
|
LineCount
[ readonly ] long LineCount;
- Usage Restrictions
- optional
- Description
- returns the number of lines in the document
Since the document needs to be formatted to get the result
obtaining this value may take some time.
Empty paragraphs are not counted.
- Since
- OOo 2.0
|
|
IsConstantSpellcheck
boolean IsConstantSpellcheck;
- Usage Restrictions
- optional
- Description
- specifies if spellchecking should be done while typing.
- Since
- OOo 2.0
|
|
IsHideSpellMarks
boolean IsHideSpellMarks;
- Usage Restrictions
- optional
- Description
- specifies if the marks for misspelled text should be displayed.
- Since
- OOo 2.0
|
|
Top of Page
Copyright © 2013, The Apache Software Foundation, Licensed under the Apache License, Version 2.0. Apache, the Apache feather logo, Apache OpenOffice and OpenOffice.org are trademarks of The Apache Software Foundation. Other names may be trademarks of their respective owners.


Welcome to Ghost
You're live! Nice. We've put together a little post to introduce you to the Ghost editor and get you started. You can manage your content by...
You're live! Nice. We've put together a little post to introduce you to the Ghost editor and get you started. You can manage your content by...


Semester: Fall 2017
Instructor: Shankar Bhamidi
See the course syllabus for more information.
See the following for template of Lecture: Latex code of Sample and corresponding compiled pdf of Sample.
Course Material
| Date of Lecture | Material covered | Notes | Scribe |
|---|---|---|---|
| August 22 | Motivation | Pages 1-9H of Lecture 1, Advice to graduate students | Scribe |
| August 24 | Basic metric space theory | Pages 9I - 1.13, Additional readings on Metric spaces | Scribe |
| Homework 0 | See file | Scribe | |
| August 29 | Portmanteu theorem and convergence determining classes | Pages 1.14 - 1.24 | Yiyao Luo |
| Homework 1 | See file | Scribe | |
| August 31 | Basic examples in \(\mathbb{R},\mathbb{R}^k,\mathbb{R}^\infty\) | Pages 1.14 - 1.24 | Samopriya Basu |
| September 5 | Basic examples continued \(C[0,1]\), Product measures | Pages 2.1 - 2.8 | Samopriya Basu |
| September 7 | Covergence in probability, Continuous mapping theorem | Pages 2.9 - 2.21, Pages 3.1 - 3.4 | Scribe |
| Homework 2 | See file | Scribe | |
| September 12 | Tightness and Prohorov’s theorem | Pages 3.5 - 3.19 | Yiyun Luo |
| September 14 | Weak convergence on \(\mathbb{R}\), Lindeberg CLT | Pages 4.1 - 4.8, Additional readings on CLT | Adam Waterbury |
| September 15 | Practicum: Skorohod representation | Notes | Yiyun Luo |
| September 19 | Stein’s method | Pages 4.10 - 4.22 Additional readings | Aman Barot |
| Homework 3 | See file | Scribe | |
| September 21 | Poisson approximation, MOM, Characteristic functions | Pages 4.Poi-4.34, , Additional readings on MOM | Jin Wang |
| September 22 | Practicum: Stein’s method | Notes, Additional readings | Scribe |
| September 26 | Characteristic functions, Enter \(C[0,1]\) | Pages 4.34-4.35, Pages 5.1 - 5.xx | Scribe |
| September 28 | \(C[0,1]\) continued | Pages 5.xx-5.xx | Scribe |
Main references
Convergence of Probability measures. Large parts of the course follow the 1968 book but we cover an assorted collection of special topics and examples.
Durret’s Probability Theory and examples Fantastic treatment of the Martingale FCLT in Chapter 8.
Additional Readings
- Aldous’s review of Spin glasses by Talagrand
- J. Michael’s Steele’s semi-random rants Lots of valuable advice for graduate students.
- Alan Turing and the CLT Also has a nice description of the connections between statistics and Turing’s work during World War II in breaking the German enigma machine.
- Nice paper on extensions of the Lindeberg technique by Chatterjee Extensions of Wigner’s semi-circle law to exchangeable entries are also explored.
- Nice survey on Normal approximation using Stein’s method
- Beautiful overview of Stein-Chen for Poisson approximation
- Remembering Wassily Hoeffding
- Beautiful thesis on exchangeable pairs and concentration inequalities
- Birthday problem and random trees Describes a way of constructing random trees using the birthday problem. Deep applications in a number of other areas including the study of the entrance boundary of the additive coalescent.
- Nice collection of worked out examples
- A powerful example by a master of the field (Svante Janson)
- Not MOM but a beautiful branch of applied probability: Power of two choices
This page was last updated on 2017-09-21 10:09:28 Eastern Time.


this is my first div
| ff | sf | tf | ff |
|---|---|---|---|
| first field | second field | third field | four field |
| first field | second field | third field | four field |
| first field | second field | third field | four field |
| first field | second field | third field | four field |
| first field | second field | third field | four field |


I listened to this podcast with Dave Astels about Behavior Driven Development and RSpec, a system for Ruby (the tutorial is probably the best place to start looking at it). He's also simultaneously developing the system for Smalltalk, I believe.
In the podcast Python came up briefly, and a question about whether you could do the same thing in Python. From a quick look, I would say no -- it involves injecting methods into Object, which you cannot do in Python. I assume there are other aspects to the system, but I don't understand them all.
Here's a basic example from the tutorial:
rob = Robot.new rob.should_not_be_nil rob.should_be_kind_of Robot rob.x_coordinate.should_equal 0 rob.y_coordinate.should_equal 0 rob.location.should_equal [0,0] rob.move_north(1).should_equal [0, 1] rob.move_south(5).should_equal [0, -4] rob.move_east(10).should_equal [10, -4] rob.move_west(5).should_equal [5, -4]
While you can't implement .should_equal in Python, this is trivially translatable to doctest:
>>> rob = Robot() >>> rob is None False >>> isinstance(rob, Robot) True >>> rob.x_coordinate, rob.y_coordinate (0, 0) >>> rob.location (0, 0) >>> rob.move_north() >>> rob.location (0, 1) >>> rob.move_south(5) >>> rob.location (0, -4) >>> rob.move_east(10) >>> rob.location (10, -4) >>> rob.move_west(5) >>> rob.location (5, -4)
(I translated the move_* method to Python style, where actions like this typically return None. Update: I realize I didn't explain what this does -- at its simplest you can put that sample interaction into a text file, then run a command that replays that file and checks that it is accurate)
I think doctest exemplifies this idea of "behavior driven programming," though it's usually referred to as "documentation driven programming" here.
RSpec also adds specifications, which are just groupings, xUnit-style TestCases. Nothing special there. I know how to write functions and factor code already, thank you.
So, the advantages of RSpec over doctest? Please note them in the comments, I'm not really seeing anything. Doctest can be a nuisance sometimes because of an explicitness that can lead to fragility -- doctest pays attention to everything and it's not that hard to turn that off, whereas RSpec is more selective. But I don't know if that makes RSpec better.
The advantages of doctest over RSpec?
Doctest is not without its flaws, though I would say most of those flaws are small usability aspects -- many of which were fixed in Python 2.4, but turned off by default. Doctest also gets used in inappropriate places sometimes, but I think that's mostly to avoid the needless complexity of unittest.TestCase. Using a good test runner I feel much less of a desire to use doctests unless I really am telling a story of some sort.
I think doctest is a great example of what Python gets right and Smalltalk-style systems get wrong. Doctest is just a tool. It's not a framework. You don't subclass anything. In Smalltalk you have this nice GUI IDE that rewards subclassing, and conflates the class hierarchy with other kinds of organization, and punishes procedural programming when it takes the form of disassociated actions. In Smalltalk it seems like everything turns into a framework, whether you like it or not.
Doctest of course implements classes for internal use. Classes are a good way to express lots of things. But they aren't a very good way to share. And so doctest doesn't encourage you to use any of those classes unless you are customizing the system in some way. Customizing the system and using the system are entirely separate (a notable difference from xUnit and RSpec). Doctest is just plain good design.
And Behavior Driven Programming? Yep, that's a good idea, so a shout out to Tim Peters for contributing that to the Python community years ago.
Huh. "Behavior Driven"? Hey, I hear those Ruby people are good at marketing, so maybe they needed a new name for unittesting? Maybe that's not a bad thing. RSpec seems like .. exactly .. py.test? I can't find the blog article mentioned (A New Look at Test Driven Development), but is there some aversion to "assert" in tests that I'm not aware of? Doctest is even nicer, when that's all you need, but other than the Ruby habit of using words to mean builtin things (DSL, righto) x.should_equal 0 => assert x == 0, right? I thought there must be something more I was missing, but here's the full list of expectations that I can find in the source doc on the RSpec site:
should_raise -> assert py.test.raises should_not_raise -> assert not py.test.raises should_be_empty -> assert len(x) == 0 # couple options here, depending on what this means should_be_false -> assert x is False should_be_nil -> assert x is None should_be_same_as -> assert x is y should_be_true -> assert x is True should_equal -> assert x == y should_include -> assert x in y should_match -> (not sure what this ruby means)and _not_ versions of the same.
Clearly, the whole point of this is a test assertion DSL? Agree with you that creating this by putting methods onto Object feels much less acceptable to my non-ruby/smalltalk mind. But ok, maybe someday I'll go the rest of the way in this DSL fervor.
Apparently they aren't willing to hack the language interpreter a little to improve their testing? py.test does some cleverness to reinterpret assert statements and capture subexpressions, and in the process solves the problem that a whole series of assertEqual/etc methods are created to solve. Doctest solves it in a slightly different way, by basically turning everything into assertEqual (though the fact that is less general can be a problem).
RSpec is doing something else besides this, I think. The tutorial isn't completely up-to-date, so now you can actually do x.should.be.foo which I think is entirely equivalent to assert x.foo?. Since these transformations are generally pretty easy and obvious (and they are supposed to be easy and obvious), I'm not sure what the advantage of the RSpec style is. Maybe if I saw his presentation.
I do think it is or can be correct that "Behavior Driven Programming" is different than just "Test Driven" or unit testing. There really is something different to starting with doctest than with starting with unittest or py.test. It's closer to acceptance testing; acceptance testing of the API, I guess. Unit testing tends to be more focused on testing the internals. By emphasizing a story, doctest is encouraging you to talk about what things look like from the outside. I expect that the style RSpec is implementing is intended to do the same. But creating a DSL for that seems like exactly the wrong thing, because you aren't describing something that anyone can use. When talking about an API, you should be using the API, nothing more.
# Ian Bicking
Ahh, true - I tend to write my tests as "this is how the API should work", so maybe I'm just an early adopter of "Behavior Driven Testing"? :) Although, I thought I was just doing good Test Driven Development... but my point is, TDD freaks people out almost as much as Pair Programming, so if someone wants to try a new name, I'm ok with that.
After watching the Google TechTalk video ( http://video.google.com/videoplay?docid=8135690990081075324&pl=true ) on this I think something like this would be a nice thing in Python. Sure it's really just TDD, but it's changing the semantics to encourage good TDD practices instead of just a verification mechanism.
# Steve
Sure it's really just TDD, but it's changing the semantics to encourage good TDD practices instead of just a verification mechanism.
I think you hit the nail on the head there. I've messed around with both TDD and BDD in Ruby, and, as you'd expect, neither seems to do anything that the other can't do.
BDD just uses different language in an attempt to encourage good testing practices. It's the kind of thing that's easy to downplay, but of course the only difference between any two general programming languages are the things that their syntaxes encourage and discourage.


© 2001-2018 Haiku, Inc. — Haiku® and the HAIKU logo® are registered trademarks of Haiku, Inc.
Main feed | Blog-O-Sphere feed


We're running the first summer school on blockchains and cryptocurrencies. We welcome students, researchers and professionals with an interest in cryptocurrencies and blockchains to join us.
Speakers
We have a great program lined up for 2016. We're excited to welcome the leading experts on blockchains from industry and academia.
Foteini Baldimtsi
Boston University, USA
Rainer Böhme
University of Innsbruck, AT
Joseph Bonneau
Stanford University, USA
Jerry Brito
Coin Center, USA
Jan Camenisch
IBM Research, CH
Nicolas Christin
Carnegie Mellon University, USA
George Danezis
University College London, UK
Adam Joyce
Elliptic, UK
Aggelos Kiayias
University of Edinburgh, UK
Sarah Meiklejohn
University College London, UK
Roger Wattenhofer
ETH Zurich, CH
Vassilis Zikas
Rensselaer Polytechnic Institute, USA
Organizers
Foteini Baldimtsi
Foteini is a postdoctoral researcher in the BU Security group at Boston University.
Aggelos Kiayias
Aggelos is a Professor at the University of Edinburgh.
Sarah Meiklejohn
Sarah is an Assistant Professor in the departments of Computer Science and Security and Crime Science at UCL.
Donate
Bitcoin school is not-for-profit. We are accepting donations in bitcoin to help us run the school.
1FXoHAMZKzS2xnoPC582wYutkSyaorhWJ6Thank you for your generosity!
Equal opportunity
We welcome diversity and are striving to offer equal opportunities to all students. We are dedicated to providing a harassment-free conference experience for everyone, regardless of gender, sexual orientation, disability, physical appearance, body size, race, or religion.
Stipends
All stipends are now allocated. Thanks to NSF, IOHK and INTEL for their sponsorship.
Schedule
Monday
| 09.00 | - | 09.25 | Registration |
| 09.25 | - | 09.30 | Opening |
| 09.30 | - | 10.30 | Bitcoin overview (Joe) |
| 10.30 | - | 11.00 | ☕ |
| 11.00 | - | 12.30 | Scaling Bitcoin securely (Aggelos) |
| 12.30 | - | 14.00 | 🍕 |
| 14.00 | - | 15.30 | Consensus (Roger) |
| 15.30 | - | 16.00 | ☕ |
| 16.00 | - | 17.30 | Mining (Joe) |
| 19.00 | - | 20.30 | Reception |
Tuesday
| 09.30 | - | 11.00 | Cryptographic e-cash (Jan) |
| 11.00 | - | 11.30 | ☕ |
| 11.30 | - | 12.30 | Anonymity in cryptocurrencies (Foteini) |
| 12.30 | - | 14.00 | 🍕 |
| 14.00 | - | 15.30 | Cryptography on the blockchain (Vassilis) |
| 15.30 | - | 16.00 | ☕ |
| 16.00 | - | 18.00 | Short talks |
Wednesday
| 09.30 | - | 11.00 | Decentralization as a privacy-enhancing technology (George) |
| 11:00 | - | 11.30 | ☕ |
| 11.30 | - | 12.30 | Bitcoin de-anonymization in practice (Adam) |
| 12.30 | - | 14.30 | 🍕 |
| 14.30 | - | 17.30 |
Breakout sessions Main hall: IOHK sessionScorex: A Modular Toolbox for Cryptocurrency Research. A Haskell Implementation of RSCoin Alkinoos room: Corfucoin sessionCorfucoin: How to implement your own cryptocurrency |
Thursday
| 09.30 | - | 11.00 | Anonymous online marketplaces (Nicolas) |
| 11.00 | - | 11.30 | ☕ |
| 11.30 | - | 13.00 | The Bitcoin economic ecosystem (Rainer) |
| 13.00 | - | 14.00 | 🍕 |
| 14.00 | - | 15.30 | Regulation in Bitcoin (Jerry) |
| 15.30 | - | 16.00 | ☕ |
| 16.00 | - | 17.30 | Alternatives to blockchains (Sarah) |
Accommodation
The school will be hosted at the Corfu Imperial Hotel.
Participants that wish to stay at the school venue can book their rooms using the code SUMSCH at the discounted rate of €150/night for double- and €130/night for single-occupancy (taxes and breakfast included).
Alternative options Hotel Nefeli (20' walking from the venue) offers rooms in discounted rate of €42/night for double- and €34/night for single-occupancy (taxes and breakfast included). To reserve a room email them directly and mention that you are attending the cryptocurrencies event. For more options please check on booking.com.Travel
By plane
The best way to reach Corfu is by plane. Aegean Airlines has daily service between Athens and Corfu (3-4 flights per day) and Ryanair flies between Athens and Corfu every Sunday and Friday. Astra-airlines flies from Thessaloniki to Corfu 4 times a week.
Corfu is directly connected to various European cities via charter flights. Ryanair and EasyJet, also provide direct connection with multiple European airports.
By bus and ferry
You could also reach Corfu by bus and boat. The KTEL bus service provides 3 daily connections to Corfu from Athens. The total trip will be around 8 hours.
Corfucoin
Corfucoin is the cryptocurrency of the summer school for attendees to play around with, mine and share!
Getting the Corfucoin wallet
- Download Mac wallet
- Download Ubuntu wallet
-
Download Android wallet from the Play Store
- Get the source code
Address registry
If you would like to share your Corfucoin address with the other attendees, you may use the address registry.
Mining Corfucoin
Corfucoin is a fork of Litecoin, which uses a scrypt proof-of-work scheme. Corfucoins can be mined by using cpuminer.


The development of complex web applications frequently requires many objects that perform similar functions, and this project presented a great opportunity to learn object-oriented programming with Javascript. Completion of the project required understanding prototype chains in javascript, using functions, and program scope. Click here to play the game!See the README for a full description of this project.


You're in
Hey [Blank!]!
We’re so happy our mutual friend Ora connected us.
You love Ora and so do we. That’s why we teamed up to share our product with you! Summer’s here, and long days in the sun means there’s no better time for us to get to know each other.
We created Sonne as an alternative to the toxic, ineffective skincare products on drugstore shelves.
No junk ingredients. No scams. Just real ingredients and real results, at a fair price.
Most users see results in less than eight days. We can’t wait to see yours. If for some reason you don’t love Sonne, please know you can cancel anytime in the next month to stop all future charges and shipments.
Our Story
We made Sonne because we wanted something that didn’t exist : non-toxic skincare based on actual science. Read the story here.
Our Commitment
Sonne’s ingredients protect and perfect your skin. None of them are toxic. All of them are listed here. Our Ingredients


This tool uses HTML5 LocalStorage to store your inputs for future use.
You may also see clipping issues if you've scrolled during the rendering of the image, or are not at the top of the page when you click "Draw my Faction!". This is due to a the html2canvas plugin we're using, and is a known issue with that library.
Questions? Comments? Issues? Message /u/smdaegan on reddit or open an issue on GitHub!


Using statistical data and Text mining in Social Sciences
## Goal
* Learning research possibilities with data & text mining
* ...and some methods
* Getting critical insight about managing data
## Key terms in Japanese:
* 地理情報システム = GIS (geographic information system(s))
* 計量テキスト分析 = text mining or statistical analysis of text
* テキストマイニング = text mining
* 共起表現 = co-occurrence or collocation
* 単語の埋め込み = word embedding
Example 1
GIS (geographic information system(s))
What you get?
Density of population on the map
## Technical requirements
* [QGIS (Software)](https://www.qgis.org/en/site/)
* Statistical and geographical data ([e-Stat](https://www.e-stat.go.jp/gis))
## Advantages of the visualization?
* Getting densities intuitively
* Rising more questions from the visual expression
* ... and they might bring you to new findings
Example 2
Text mining (co-occurrence or collocation)
Co-occurrence = an above-chance frequency of occurrence of two terms from a text corpus alongside each other in a certain order
What you get?
Visualizing the co-occurrence of the vocabulary in all press conferences of the former Prime minister Kan Naoto
## Technical requirements
* Text corpus from [WARP-Seite](https://warp.ndl.go.jp/info:ndljp/pid/2629568/www.kantei.go.jp/jp/kan/statement/index.html)!
* Python libraries wie pandas, numpy, matplotlib usw.
* Software for the morphological analysis ([MeCab](https://www.mlab.im.dendai.ac.jp/~yamada/ir/MorphologicalAnalyzer/MeCab.html)) and dictionary (ex. [NEologd](https://github.com/neologd/mecab-ipadic-neologd))
## Advantages of the visualization?
* Getting co-occurrences and word frequency intuitively
* Visualization can support your interpretation
* ... and they might bring you to new findings
## Caution - Rules for web crawling
* Many websites have Robots Exclusion Standard (RES)
* A "robots.txt"-protocol under http[s]://[domain name]/robots.txt
* The protocol expresses the rules for/against the web crawling.
* Example: https://ja.wikipedia.org/robots.txt
Example 3
Word embedding
Word embedding = representation of words in the form of a real-valued vector that encodes the meaning of the word such that the words that are closer in the vector space are expected to be similar in meaning
Collecting tweets with the word "オリンピック (Olympic)" and analysis with word embedding
Similar words to "オリンピック & 日本"
Similar words to "日本"
Similar words to "オリンピック" in 2D-Mapping
## Technical requirements
* Text corpus from [Twitter (API-Key)](https://developer.twitter.com/en/docs)
* Python libraries like [tweepy](https://www.tweepy.org/), [gensim](https://radimrehurek.com/gensim/) usw.
* Software for the morphological Analysis ([MeCab](https://www.mlab.im.dendai.ac.jp/~yamada/ir/MorphologicalAnalyzer/MeCab.html)) and dictionary (ex. [NEologd](https://github.com/neologd/mecab-ipadic-neologd))
## Advantages of the word embedding?
* Getting words (or meanings) as vector
* Word vector space model can be used syntactic analysis and sentiment analysis
* ... and they might bring you to new findings
## Caution - legal & ethical aspect for the data analysis & the publishing the results
* According to the Japanese Copyright Act, Art. 47-7, the copying the data for the purpose of the data analysis is permitted
* If you will/should publish the data, the personal information must be at least anonymized for the privacy protection
* In this example I've removed all Twitter-IDs
Playing with data
# Step 1
## Choose a text corpus from [here](https://github.com/NbtKmy/methodenkurs/tree/main/training)
* Text from press conferences of the former prime minister Kan Naoto (Japanese)
* Text corpus from Twitter (Japanese, anonymized)
* Text corpus from [Reuters-21578](https://archive.ics.uci.edu/ml/datasets/Reuters-21578+Text+Categorization+Collection) (English)
# Step 2
## Then put it in [Voyant Tool](https://voyant-tools.org/)
* What happens at first?
* Create your own stop words list
* And see what happens (for example word cloud)
* Compare your result with your colleagues
# Step 3
## Discussion
* How many influence you have on the result?
* Is the result then objective?
* What is important, if you want to use the data for your research?


Instructions
- Avoid hiting any of the colorful filled circles
- You can move right and left by right and left arrows on the keyboard
- Or by clicking (touching) anywhere on the screen to switch the movement direction
- More circles you avoid hitting the higher score you get.
- The stroke only circles give you special effect:
- - The RED circle makes you move faster
- - The blue circle makes you move slower
- - The green circle makes you get smaller
- - The yellow circle makes you get bigger
- It's just that simple, Enjoy :)