Upload a different photo
Cancel


|
| constexpr | PayloadHeader () |
| |
| PayloadHeader & | operator= (const PayloadHeader &)=default |
| |
| uint16_t | GetExchangeID () const |
| | Get the Session ID from this header. More...
|
| |
| Protocols::Id | GetProtocolID () const |
| | Get the Protocol ID from this header. More...
|
| |
| bool | HasProtocol (Protocols::Id protocol) const |
| | Check whether the header has a given protocol. More...
|
| |
| uint8_t | GetMessageType () const |
| | Get the secure msg type from this header. More...
|
| |
| bool | HasMessageType (uint8_t type) const |
| | Check whether the header has a given secure message type. More...
|
| |
| template<typename MessageType , typename = std::enable_if_t<std::is_enum<MessageType>::value>> |
| bool | HasMessageType (MessageType type) const |
| |
| const Optional< uint32_t > & | GetAckId () const |
| | Gets the Acknowledged Message Counter from this header. More...
|
| |
| PayloadHeader & | SetMessageType (Protocols::Id protocol, uint8_t type) |
| | Set the message type for this header. More...
|
| |
| template<typename MessageType , typename = std::enable_if_t<std::is_enum<MessageType>::value>> |
| PayloadHeader & | SetMessageType (MessageType type) |
| | Set the secure message type, with the protocol id derived from the message type. More...
|
| |
| PayloadHeader & | SetExchangeID (uint16_t id) |
| | Set the security session ID for this header. More...
|
| |
| PayloadHeader & | SetInitiator (bool inInitiator) |
| | Set the Initiator flag bit. More...
|
| |
| PayloadHeader & | SetAckId (uint32_t id) |
| |
| PayloadHeader & | SetAckId (Optional< uint32_t > id) |
| | Set the AckMsg flag bit. More...
|
| |
| PayloadHeader & | SetNeedsAck (bool inNeedsAck) |
| | Set the NeedsAck flag bit. More...
|
| |
| bool | IsInitiator () const |
| | Determine whether the initiator of the exchange. More...
|
| |
| bool | IsAckMsg () const |
| | Determine whether the current message is an acknowledgment for a previously received message. More...
|
| |
| bool | NeedsAck () const |
| | Determine whether current message is requesting an acknowledgment from the recipient. More...
|
| |
| uint16_t | EncodeSizeBytes () const |
| | A call to Encode will require at least this many bytes on the current object to be successful. More...
|
| |
| CHIP_ERROR | Decode (const uint8_t *data, uint16_t size, uint16_t *decode_size) |
| | Decodes the encrypted header fields from the given buffer. More...
|
| |
| template<uint16_t N> |
| CHIP_ERROR | Decode (const uint8_t(&data)[N], uint16_t *decode_size) |
| | A version of Decode that uses the type system to determine available space. More...
|
| |
| CHIP_ERROR | DecodeAndConsume (const System::PacketBufferHandle &buf) |
| | A version of Decode that decodes from the start of a PacketBuffer and consumes the bytes we decoded from. More...
|
| |
| CHIP_ERROR | Encode (uint8_t *data, uint16_t size, uint16_t *encode_size) const |
| | Encodes the encrypted part of the header into the given buffer. More...
|
| |
| template<uint16_t N> |
| CHIP_ERROR | Encode (uint8_t(&data)[N], uint16_t *decode_size) const |
| | A version of Encode that uses the type system to determine available space. More...
|
| |
| CHIP_ERROR | EncodeBeforeData (const System::PacketBufferHandle &buf) const |
| | A version of Encode that encodes into a PacketBuffer before the PacketBuffer's current data. More...
|
| |
| CHIP_ERROR | EncodeAtStart (const System::PacketBufferHandle &buf, uint16_t *encode_size) const |
| | A version of Encode that encodes into a PacketBuffer at the start of the current data space. More...
|
| |
Handles encoding/decoding of CHIP payload headers.
Payload headers are ENCRYPTED and are placed at the start of an encrypted message payload.


Let's Help You Prove Yourself.
Monopoly is a board game currently published by Hasbro. In the game, players roll two six-sided dice to move around the game board, buying and trading properties, and developing them with houses and hotels. Players collect rent from their opponents, with the goal being to drive them into bankruptcy. Money can also be gained or lost through Chance and Community Chest cards, and tax squares; players can end up in jail, from which they cannot move until they have met one of several conditions.


I've been a builder and creator my entire life - a musician first, then a recording engineer, most recently a carpenter, and now a developer of web and mobile apps. I have a passion for order and function - when things don't work smoothly and efficiently, I'm drawn towards the challenge of improving and innovating.
I work primarily with Ruby/Rails and enjoy how quickly it allows development and deployment of complex apps, but also dabble in developing iOS and other mobile projects, and exploring the various Javascript frameworks.
I'm more than a software developer - I've got layers! Here's a taste of what I do with myself when I'm away from my desk...
I'm a wannabe chef and a multi-instrumentalist
I'm a dog-lover and a cat-tolerator
I'm an amateur landscape architect and a serious board game enthusiast
I'm a traveler, and (probably most importantly) a loving, doting, supporting husband
I work primarily with Ruby (with a preference towards the Rails framework) - but I tend to go with whatever platform suits my project most appropriately, and I really love to learn as I build. Recently I've been delving into iOS development, and have been doing reading and research on Ember and Angular - I'm hoping for an opportunity to utilize one or the other in some upcoming work.
My language of choice...
...and my primary framework
Complete mastery of CSS/SASS is a personal goal of mine
Familiarity with integrating JS and JS frameworks with a Rails backend
Experience integrating with Mandrill, Twilio, AWS, and more
I've worked on small projects with RubyMotion and have been reading up on my Swift/Obj-C as well
A deep love and affection for version control - it's a must on my own projects and in larger groups
I'm always looking to learn and expand my skills!
Building a new app from the ground up is best done with some patience and planning. Hackathons are a fantastic way to get some great minds churning on some interesting concepts, but...
I just wanted to put up a quick post that links to my current project – Chombo. Chombo is (as I mentioned) a work in progress, but should...
I’ve been so Rails-focused for the last 4 or 5 months that I’ve developed serious tunnel-vision. Every idea becomes an app, and every app requires a unique, complex interaction...
I'm available for contract work or a full-time position - please feel free to contact me about any and everything you might need!
Just fill in your information on the right and press send --->


React
React provides an abstraction over the DOM (Document Object Model) called the Virtual DOM. Rather than manipulating the DOM directly it provides a data-driven API to update the state of user interface.
React renders elements into an existing DOM container. The elements can be expressed in HTML-style code. In this case the container is referenced by klipse_container
(which is a div
element below the code snippet).
ReactDOM.render(

Hello, world!
,
klipse_container
);
The element
Hello, world!

is written in JSX, a syntax extension to JavaScript. It is transpiled into JavaScript React.createElement()
on the fly.

Hello, world!

An element is a lightweight description of how the actual DOM instance should look like. It is just a regular JS object and not the DOM instance itself.
React.createElement(
"p",
{className: "greeting"},
"Hello, world!"
);
Reagent
(ns tutorials.react-frontend
(:require [reagent.core :as r]))
A simple component:
[:div "Hello World!!"]
Let’s create a sequence of components:
(for [name ["Jochen" "Alice" "Bob"]]
[:li name])
And use them as content of another component:
[:ul (for [name ["Jochen" "Alice" "Bob"]]
[:li name])]
Components in Reagent are pure functions that return components:
(defn hello-message [name]
[:div "Hello " name "!"])
[hello-message "Jochen"]
Compare React JSX with Clojure Reagent:
React JSX
|
Reagent
|
Stateful Components
A component can hold a local state:
class InputField extends React.Component {
constructor(props) {
super(props);
this.state = {value: props.initialValue};
}
render() {
return (
<input
value={this.state.value}
onChange={(e) => this.setState({value: e.target.value})}
/>
);
}
}
ReactDOM.render(
<InputField initialValue="Default Text" />,
klipse_container
);
(defn input-field [props]
(let [state (r/atom (:initial-value props))]
(r/create-class
{:reagent-render (fn [props]
[:input {:value (deref state)
:on-change (fn [event]
(let [new-value (.. event -target -value)]
(reset! state new-value)))}])})))
[input-field {:initial-value "Default Text"}]
(defn input-field [props]
(let [state (r/atom (:initial-value props))]
(fn [props]
[:input {:value (deref state)
:on-change (fn [event]
(let [new-value (.. event -target -value)]
(reset! state new-value)))}])))
[input-field {:initial-value "Default Text"}]
What happens if a child component needs to update the state of its parent component? In this case a function can be passed to a component:
(defn input-field [{:keys [persist-value] :as props}]
(let [state (r/atom "")]
(fn [props]
[:input {:value (deref state)
:on-change #(reset! state (.. % -target -value))
:on-key-down #(when (= (.-key %) "Enter")
(doto % (.stopPropagation) (.. -target blur)))
:on-blur #(persist-value (deref state))}])))
[input-field {:persist-value (fn [value] (js/alert (str "Persisted: " value)))}]
Life-Cycle of a React Component
Examples
BMI Calculator
This example is a modified version of the BMI Calculator found on the Reagent demo site.
(defn calc-bmi [height weight]
(/ weight (Math/pow (/ height 100) 2)))
(defn calc-weight [bmi height]
(let [h (/ height 100)]
(* bmi h h)))
(defn slider [{:keys [min max value on-change]}]
[:input {:type "range"
:style {:width "100%"}
:min min
:max max
:value value
:on-change (fn [event]
(let [new-value (.. event -target -value)]
(on-change new-value)))}])
(defn bmi-component []
(let [state (r/atom {:height 180 :weight 80 :bmi (calc-bmi 180 80)})]
(fn []
(let [{:keys [weight height bmi]} @state
[color diagnose] (condp > bmi
18.5 ["orange" "underweight"]
25 ["inherit" "normal"]
30 ["orange" "overweight"]
["red" "obese"])]
[:div
[:h4 "BMI Calculator"]
[:div
"Height: " (int height) "cm"
[slider {:min 100 :max 220 :value height
:on-change (fn [new-value]
(reset! state
{:height new-value
:weight weight
:bmi (calc-bmi new-value weight)}))}]]
[:div
"Weight: " (int weight) "kg"
[slider {:min 30 :max 150 :value weight
:on-change (fn [new-value]
(reset! state
{:height height
:weight new-value
:bmi (calc-bmi height new-value)}))}]]
[:div
"BMI: " (int bmi) " " [:span {:style {:color color}} diagnose]
[slider {:min 10 :max 50 :value bmi
:on-change (fn [new-value]
(reset! state
{:height height
:weight (calc-weight new-value height)
:bmi new-value}))}]]]))))
(reagent.core/render-component [bmi-component] js/klipse-container)
Charts (Component Lifecycle)
(defonce specification
(r/atom {:canvas {:width "600px" :height "400px"}
:chart {:title {:text "ECharts Example"}
:tooltip {}
:animation false
:legend {:data ["Sales"]}
:xAxis {:show true :data ["Mon" "Tue" "Wed" "Thu" "Fri" "Sat" "Sun"]}
:yAxis {:show true}
:series [{:name "Sales"
:type "bar"
:data [6 17 36 10 10 20 25]}]}}))
(defn chart []
(r/create-class
{:reagent-render (fn [this]
[:div {:style (:canvas @specification)}])
:component-did-mount (fn [this]
(doto (js/echarts.init (r/dom-node this))
(.setOption (clj->js (:chart @specification)))))
:component-did-update (fn [this]
(-> (r/dom-node this)
(js/echarts.getInstanceByDom)
(.setOption (clj->js (:chart @specification)) true)))}))
(reagent.core/render-component [chart specification] js/klipse-container)
ToDo App
(defonce todos (r/atom (sorted-map)))
(defonce counter (r/atom 0))
(defn add-todo [text]
(let [id (swap! counter inc)]
(swap! todos assoc id {:id id :title text :done false})))
(defn toggle [id] (swap! todos update-in [id :done] not))
(defn save [id title] (swap! todos assoc-in [id :title] title))
(defn delete [id] (swap! todos dissoc id))
(defn mmap [m f a] (->> m (f a) (into (empty m))))
(defn complete-all [v] (swap! todos mmap map #(assoc-in % [1 :done] v)))
(defn clear-done [] (swap! todos mmap remove #(get-in % [1 :done])))
(defn todo-input [{:keys [title on-save on-stop]}]
(let [val (r/atom title)
stop #(do (reset! val "")
(if on-stop (on-stop)))
save #(let [v (-> @val str clojure.string/trim)]
(if-not (empty? v) (on-save v))
(stop))]
(fn [{:keys [id class placeholder]}]
[:input {:type "text" :value @val
:id id :class class :placeholder placeholder
:on-blur save
:on-change #(reset! val (-> % .-target .-value))
:on-key-down #(case (.-which %)
13 (save)
27 (stop)
nil)}])))
(def todo-edit (with-meta todo-input
{:component-did-mount #(.focus (r/dom-node %))}))
(defn todo-stats [{:keys [filt active done]}]
(let [props-for (fn [name]
{:class (if (= name @filt) "selected")
:on-click #(reset! filt name)})]
[:div
[:span#todo-count
[:strong active] " " (case active 1 "item" "items") " left"]
[:ul#filters
[:li [:a (props-for :all) "All"]]
[:li [:a (props-for :active) "Active"]]
[:li [:a (props-for :done) "Completed"]]]
(when (pos? done)
[:button#clear-completed {:on-click clear-done}
"Clear completed " done])]))
(defn todo-item []
(let [editing (r/atom false)]
(fn [{:keys [id done title]}]
[:li {:class (str (if done "completed ")
(if @editing "editing"))}
[:div.view
[:input.toggle {:type "checkbox" :checked done
:on-change #(toggle id)}]
[:label {:on-double-click #(reset! editing true)} title]
[:button.destroy {:on-click #(delete id)}]]
(when @editing
[todo-edit {:class "edit" :title title
:on-save #(save id %)
:on-stop #(reset! editing false)}])])))
(defn todo-app []
(let [filt (r/atom :all)]
(fn []
(let [items (vals @todos)
done (->> items (filter :done) count)
active (- (count items) done)]
[:div
[:section#todoapp
[:header#header
[:h1 "todos"]
[todo-input {:id "new-todo"
:placeholder "What needs to be done?"
:on-save add-todo}]]
(when (-> items count pos?)
[:div
[:section#main
[:input#toggle-all {:type "checkbox" :checked (zero? active)
:on-change #(complete-all (pos? active))}]
[:label {:for "toggle-all"} "Mark all as complete"]
[:ul#todo-list
(for [todo (filter (case @filt
:active (complement :done)
:done :done
:all identity) items)]
^{:key (:id todo)} [todo-item todo])]]
[:footer#footer
[todo-stats {:active active :done done :filt filt}]]])]
[:footer#info
[:p "Double-click to edit a todo"]]]))))
(r/render [todo-app] js/klipse-container)


In the first step, you are asked some parameters about your design/scanner:
Design parameters
General
| Scanner TR (seconds) | The repetition time of your scanner. How many seconds are there between two whole brain scans? |
| Stimulus types | The number of different stimuli in your design, often the same as the number of conditions. If you're comparing seeing faces with seeing houses, you have 3 stimulus types. |
| Stimulus duration | How long does one stimulus last on the screen? We expect brain activation for the duration of the stimulus. Please exclude the duration of non-target parts of a trial (such as fixation crosses) and add this duration to the ITI. |
| Total number of trials | How many trials does the experiment consist of in total? |
Trial structure
We ask to specify the stimulus duration. However, very often your trial consists of fixation cross etc, where you don't expect activation. Therefore, you should specify the duration of the trial before the stimulus (or target) and the duration of the trial after the stimulus.
Contrasts
If you are comparing conditions (or a condition with baseline), you need to prepare contrasts for your analysis. The optimisation of your design also depends on these contrasts. If you have 3 conditions, and you want to compare all of those, your contrast matrix would be:
The first line compares condition 1 with condition 2. The second line compares condition 2 with condition 3 and the last line compares condition 1 with condition 3.
By checking to inclide all pairwise contrasts, all these one-by-one contrasts will be added.
If you want to specify custom contrasts, you can do so too. In an example with three conditions - seeing angry faces, seeing sad faces and seeing neutral faces - you'd want to compare the average of emotional faces with neutral faces. Your contrast would look like this:
Inter-trial interval (ITI)
You want to specify the time between stimuli, the inter-trial interval (ITI) or also known as the inter-stimulus interval (ISI). You can specify a fixed ITI, but also a variable ITI. We strongly suggest a variable ITI for a better estimation of the activation. For a fixed ITI, you only have to fill out the average ITI; for a variable ITI, you can either sample from a uniform or a truncated exponential distribution. You can also specify a minimum and a maximum and. For a truncated exponential distribution, you can additionally add the mean of the ITI's (which should be smaller than the mean between the minimum and the maximum).
Rest blocks
Very often, a researcher would include some rest blocks during the experiment to let the subject rest and refocus. You can choose how long these rest blocks are and how many trials there are between rest blocks.
Note that if you're modeling a very long experiment, it might be advisable to optimise 2 different runs rather than 1 long run with a long rest block.
Design optimisation parameters
On the previous page in the tutorial, we explained the different optimisation criteria. Here, you are asked to give weights to each of those criteria. Each criterium is scaled between 0 and 1, with higher being better. The total optimisation will be the weighted average of those criteria.
Psychological confounding factors
Trial contingencies
Trial blockedness
Imagine an experiment with 3 stimulus types. The probability to have randomly a block of 6 stimuli of the same type is 1/3^6. However, with a design of 300 trials, the probality of a random design to have a block of 6 stimuli is close to 0.4. As such, even a design that is completely random has a large chance of containing a long block of the same stimuli. You might want to avoid such long blocks, it might interfere with the expectance of the subject by setting a maximum number of repeated stimuli.
Watch out though. In an experiment with only 2 stimuli, there is on average a block of 6 repeated stimuli every 64 trials. With only two stimuli, it will not only be difficult to randomly find a design without such blocks, but it might also inversely impact the expectance of the stimuli. You might want to set the maximum number of repeated stimuli higher or leave this field empty.
Contrasts and Probabilities
Stimulus probabilities
Here, you are asked to set the probability of each stimulus type. You can fill this out in whatever unit, as long as they are relative to one another. If you want a design with 200 trials with 4 stimulus types with equal probabilities, you can fill out [0.25, 0.25, 0.25, 0.25], or [50,50,50,50], or even [1,1,1,1].
You can fill out integers or decimal values, but not fractions. For fractions that have infinite decimals (like 1/3), you can ignore the denominator. For example [1/3,2/3] can be written as [1,2].
Hard limit on the probabilities
During the design optimisation, it might (and it probably will) occur that the final probabilities are not exactly what you wanted for the sake of having an optimal design. To avoid this, you can set the probabilities as an optimality criterion, but it might still not be perfect. If you only want designs with the exact probabilities you wanted, you can check this box.
However, this will have a large impact on the optimisation. It will largely restrict the number of designs to search over, and the optimisation will take a lot longer and we might even end up without optimal design. If you check this box, we will automatically set the number of designs in each step of the algorithm a lot larger to avoid finishing without design, but there's nothing we can do about the duration.
Contrasts
We've explained in short how to construct a custom contrast above. For a clear overview and more information, see this video from Jeanette Mumford's blog.
Previous: Experimental Outcomes
Next: Settings


A deployment connection is a Salesforce.com org that you wish to deploy to from this MavensMate project.
| New Connection |
|---|
| Connection | Action |
|---|---|
| {{ c['username'] }} ({{c['environment']}}) | Remove |
{% extends "layouts/base.html" %} {% block yield %}
| New Connection |
|---|
| Connection | Action |
|---|---|
| {{ c['username'] }} ({{c['environment']}}) | Remove |


|
TinyUSB C++ Extension
|
USB String Descriptors are accessed with the help of a index id. The strings are available starting from index 1. More...
#include <USBDescriptor.h>
Public Member Functions | |
| uint8_t | add (const char *str) |
| uint16_t * | string (int index) |
| const char * | get (int index) |
| int | size () |
| void | setLanguage (uint16_t lang) |
| void | clear () |
Static Public Member Functions | |
| static USBStrings & | instance () |
| static bool | equals (const uint16_t *str1, const uint16_t *str2) |
Protected Member Functions | |
| uint16_t * | toUtf (const char *str) |
Protected Attributes | |
| Vector< const char * > | char_array = Vector<const char*>(nullptr, 5, 5) |
| uint16_t | result [32] |
| uint16_t | language [2] |
USB String Descriptors are accessed with the help of a index id. The strings are available starting from index 1.
Index 0 is used for the language.


There are NO images on this page. No icon fonts. No SVGs.
All just pure CSS.
Click the navigation wheel arrows or hit the corresponding arrow keys on your keyboard to move the eyeball around the infinity loop.
Navigation Wheel:


Automatically annotates R-based artifacts with relevant descriptive and provenance-related and provides a backend-agnostic storage and discoverability system for organizing, retrieving, and interrogating such artifacts.
| Version: | 0.10.5 |
| Depends: | histry (≥ 0.2.1) |
| Imports: | fastdigest, ggplot2, lattice, gridGraphics, methods, CodeDepends (≥ 0.6.2), RJSONIO, rsolr, htmltools, miniUI, shiny, rmarkdown, roprov (≥ 0.1.1), rlang |
| Suggests: | proto, png, httr, knitr, MASS, MEMSS, mlmRev, dplyr, gridExtra, rstudioapi, switchr (≥ 0.12.99) |
| Published: | 2018-11-07 |
| Author: | Gabriel Becker [aut, cre], Sara Moore [aut] |
| Maintainer: | Gabriel Becker <gabembecker at gmail.com> |
| License: | Artistic-2.0 |
| Copyright: | Genentech, Inc. |
| NeedsCompilation: | no |
| CRAN checks: | trackr results |
| Reference manual: | trackr.pdf |
| Vignettes: |
An introduction to trackr trackr Extending |
| Package source: | trackr_0.10.5.tar.gz |
| Windows binaries: | r-devel: trackr_0.10.5.zip, r-release: trackr_0.10.5.zip, r-oldrel: trackr_0.10.5.zip |
| OS X binaries: | r-release: trackr_0.10.5.tgz, r-oldrel: trackr_0.10.5.tgz |
| Old sources: | trackr archive |
| Reverse suggests: | histry |
Please use the canonical form https://CRAN.R-project.org/package=trackr to link to this page.


Photo Magnifier
Select photo to upload (max 75px x 75px):
Upload photo
Select zoom:
x 2
x 3
x 4
Link to zoomed in photo:
...


Command to test how long does it take to open context menu in project view. The popup won't be shown but all heavy methods that may cause context menu long load will be invoked
Example: %expandProjectMenu


Setting up a project
Automated project creation
We provide scripts for Linux and Windows that automate creating a valid MISA++ project. The resulting project folders can be directly compiled.
You can find the scripts on our GitHub page.
Linux
- Copy the
misaxx-create-project.sh
script into a folder - Open a terminal and make the script executable via
chmod +x misaxx-create-project.sh
- Run
misaxx-create-project.sh
and follow the instructions
Windows
- Copy the
misaxx-create-project.ps1
script into a folder - Right click the script and click “Run in Powershell”
- Follow the instructions
Manual project creation
Following guide shows how to create a project manually.
Creating the folder structure
Each module is designed to be compiled into a shared library (.dll/.so), which requires a strict separation between the API and implementation. Create following folder structure:
./CMakeLists.txt
./include/<module-name>/
./src/<module-name>/
<module-name>
is the name of the CMake target, for example misaxx-ome
.
The include
directory contains the public API of the module and will be installed into the global include directory. The src
directory contains implementation-only files and will not be installed.
Creating the CMakeLists.txt
The following CMakeLists.txt file makes use of helper functions that are automatically imported on making use of the MISA++ Core package. You are of course free to setup your project without those functions.
Fill the CMakeLists.txt
file with following information:
cmake_minimum_required(VERSION 3.11) # Or higher if required
project(<module-name> VERSION <module-version> DESCRIPTION "<Short description>")
find_package(misaxx-core REQUIRED)
# Add additional packages if necessary
add_library(<module-name> <Files ...>)
# Add additional link targets if necessary
target_link_libraries(<module-name> misaxx::misaxx-core)
# MISA++ helper script (automatically included by Core Library)
set(MISAXX_LIBRARY <module-name>)
set(MISAXX_LIBRARY_NAMESPACE <module-namespace>::)
set(MISAXX_API_NAME <module_name>)
set(MISAXX_API_INCLUDE_PATH <module-name>)
set(MISAXX_API_NAMESPACE <module_name>)
misaxx_with_default_module_info()
misaxx_with_default_api()
# Only if it's a worker module:
misaxx_with_default_executable()
Please note that <module-name>
and <module_name>
might be different. <module_name>
must be a name that is valid in C++.
For worker modules: Create the module interface and module dispatcher
If you want to create a module that performs processing of data, create the following files:
./include/<module-name>/module_interface.h
./include/<module-name>/module.h
./src/<module-name>/module_interface.cpp
./src/<module-name>/module.cpp
Please no not forget to add them to the CMakeLists.txt
module_interface.h
#include <misaxx/core/misa_module_interface.h>
namespace <module_name> {
struct module_interface : public misaxx::misa_module_interface {
void setup() override;
}
}
module.h
#include <misaxx/core/misa_module.h>
namespace <module_name> {
struct module : public misaxx::misa_module<module_interface> {
using misaxx::misa_module<module_interface>::misa_module;
void create_blueprints(blueprint_list &t_blueprints, parameter_list &t_parameters) override;
void build(const blueprint_builder &t_builder) override;
}
}
Initial configuration
Create a building directory and run cmake ..
once. This will automatically generate additional code files such as the module info.
mkdir build
cd build
cmake ..
Add following files to your CMake target:
./include/<module-name>/module_info.h
./src/<module-name>/module_info.cpp


What time is KSI vs Logan Paul weigh-in? Start time and live stream details
YouTube stars Logan Paul and KSI clash in Los Angeles tomorrow night - but first they must weigh in
by Martin Domin, https://www.facebook.com/mirrorfightingKSI and Logan Paul will come face to face for the final time today when they weigh in for their eagerly-awaited rematch.
The next time these two YouTube stars see each other will be tomorrow night at the Staples Center when they stand in opposite corners of the ring.
The rivals have traded verbal jabs all week and it is almost time for them to exchange the real thing.
But first they must weigh in at or under the cruiserweight limit of 200lb in downtown Los Angeles this afternoon.
After yesterday's tetchy press conference, there could well be fireworks on the scales.
Here is everything you need to know about the weigh-in...
What time is is?
KSI and Logan Paul are due on the scales at 1pm local time (9pm GMT).
Where is it?
The weigh-in will take place at the X box Plaza in LA Live, 800 W Olympic Blvd., Los Angeles
Do I need a ticket?
No, entry is free to the public
Can I stream it?
Yes, Matchroom will be streaming the weigh-in on their YouTube channel.
When is the fight?
The fight is on Saturday night at the Staples Center in Los Angeles. KSI and Logan Paul are expected to walk to the ring at 8pm local time (4am GMT).
What TV channel is it on?
The fight will be shown on DAZN in the US and on Sky Sports Box Office in the UK.
Is there a live stream?
The fight can be streamed on DAZN or via Sky Sports' website
Who is on the undercard?
Devin Haney vs Alfredo Santiago
Billy Joe Saunders vs Marcelo Esteban Coceres
Ronny Rios vs Hugo Berrio
Diego Pacheco vs Aaron Casper
Alexis Espino vs Gregory Clark
Reshat Mati vs Cody Peterson
Joshua Brueckner vs Tyler Smith
Latest news
KSI and Logan Paul took a back seat as their trainers almost came to blows in Hollywood.
The YouTube stars came together for the penultimate time before the first bell of their rematch on Saturday.
But it was former heavyweight world champion Shannon Briggs who stole the limelight.
Briggs will be in Paul's corner for the sequel at the Staples Center while KSI has been trained by professional fighter Viddal Riley.
And it was the coaches who traded insults across the stage.
Briggs said: "This is great for boxing, it's going to introduce new boxing fans to the sport.
"I had to be part of it, I've been connected to Logan for 25 years through a guy I met on the street, Paulo, who is now his manager.
"This is a great opportunity but my man has the ability and I know he can be the champ because I did it twice
"This is the pro ranks and you came to this fight with a butter knife of a trainer.
"This is war, you're going to get beat up real bad. I said to Logan you better put this guy in hospital."


PBR&B pour-over VHS, listicle swag butcher pickled bespoke. Tattooed Williamsburg banjo, street art put a bird on it fixie synth Pinterest. Viral tote bag Austin PBR seitan flexitarian. Fixie Intelligentsia quinoa pork belly, gentrify chia letterpress. Cornhole wolf selfies brunch. Cold-pressed keffiyeh fashion axe art party hella Echo Park asymmetrical, butcher seitan lumbersexual swag dreamcatcher PBR actually bitters. Etsy lomo locavore four dollar toast, heirloom before they sold out occupy pork belly sartorial viral banh mi street art health goth meh brunch.


{{item.icon}}
{{item.label}}
Hotelify has found {{hotels.length}} hotels that perfectly match your requirement!
Back
Hotel (Brand) Name
Branch Name
Address
{{hotel.brand_name}}
{{hotel.branch_name}}
{{hotel.address}}


Page maintained by Ke-Sen Huang and Tim Rowley.
Tim has a mirror page here. If you have additions or changes, send an e-mail.
Information here is provided with the permission of the ACM.
Note that when possible I link to the page containing the link to the actual PDF or PS of the preprint.
I prefer this as it gives some context to the paper and avoids possible copyright problems with direct linking.
Thus you may need to search on the page to find the actual document.
ACM Digital Library: ACM Transactions on Graphics (TOG) Volume 25 , Issue 3 (July 2006) Proceedings of ACM SIGGRAPH 2006
the ACM Digital Library (DOI) Link for the paper
the link of author version paper
the link of project page
Changelog
- Ray Tracing Animated Scenes using Coherent Grid Traversal
-
Ingo Wald,
Thiago Ize,
Andrew Kensler,
Aaron Knoll,
Steven G. Parker
(University of Utah)
- Guided Visibility Sampling
-
Peter Wonka,
Kaichi Zhou
(Arizona State University),
Michael Wimmer
(Technische Universität Wien),
Stefan Maierhofer,
Gerd Hesina
(Zentrum fur Virtual Reality und Visualisierung),
Alexander Reshetov
(Intel Corporation)
- A Spatial Data Structure for Fast Poisson-Disk Sample Generation
-
Daniel Dunbar,
Greg Humphreys
(University of Virginia)
- Recursive Wang Tiles for Real-Time Blue Noise
-
Johannes Kopf
(Universität Konstanz),
Daniel Cohen-Or
(Tel Aviv University),
Oliver Deussen
(Universität Konstanz),
Dani Lischinski
(The Hebrew University of Jerusalem)
- Fast Median and Bilateral Filtering
-
Ben Weiss
(Shell & Slate Software)
- Hybrid Images
-
Aude Oliva
(Massachusetts Institute of Technology, Department of Brain and Cognitive Sciences),
Antonio Torralba
(Massachusetts Institute of Technology, Computer Science and Artificial Intelligence Laboratory),
Philippe G. Schyns
(University of Glasgow)
- Image Deformation Using Moving Least Squares
-
Scott Schaefer
(Texas A&M University),
Travis McPhail,
Joe Warren
(Rice University)
- Appearance-Space Texture Synthesis
-
Sylvain Lefebvre,
Hugues Hoppe
(Microsoft Research)
- A Planar-Reflective Symmetry Transform for 3D Shapes
-
Joshua Podolak,
Philip Shilane,
Aleksey Golovinskiy,
Szymon Rusinkiewicz,
Thomas A. Funkhouser
(Princeton University)
- Partial and Approximate Symmetry Detection for 3D Geometry
-
Niloy J. Mitra,
Leonidas J. Guibas
(Stanford University),
Mark Pauly
(Eidgenössische Technische Hochschule Zürich)
- Reassembling Fractured Objects by Geometric Matching
-
Qi-Xing Huang
(Tsinghua University),
Simon Floery
(Technische Universität Wien),
Natasha Gelfand
(Stanford University),
Michael Hofer,
Helmut Pottmann,
(Technische Universität Wien)
- Perfect Spatial Hashing
-
Sylvain Lefebvre,
Hugues Hoppe
(Microsoft Research)
- SmoothSketch: 3D free-form shapes from complex sketches
-
Olga Karpenko,
John F. Hughes
(Brown University)
- Image-based plant modeling
-
Long Quan,
Ping Tan,
Gang Zeng,
Lu Yuan,
Jingdong Wang
(The Hong Kong University of Science and Technology),
Sing Bing Kang
(Microsoft Research)
- Interactive Decal Compositing With Discrete Exponential Maps
-
Ryan Schmidt
(University of Calgary),
Cindy Grimm
(Washington University in St. Louis),
Brian Wyvill
(University of Calgary)
- Procedural modeling of buildings
-
Pascal Müller
(Eidgenössische Technische Hochschule Zürich)
Peter Wonka
(Arizona State University),
Simon Haegler,
Andreas Ulmer,
Luc Van Gool
(Eidgenössische Technische Hochschule Zürich)
- Color Harmonization
-
Daniel Cohen-Or,
Olga Sorkine,
Ran Gal,
Tommer Leyvand
(Tel Aviv University),
Ying Qing Xu
(Microsoft Research Asia)
- Drag-and-Drop Pasting
-
Jiaya Jia
(Chinese University of Hong Kong),
Jian Sun
(Microsoft Research Asia),
Chi-Keung Tang
(Hong Kong University of Science and Technology),
Heung-Yeung Shum
(Microsoft Research Asia)
- Two-scale Tone Management for Photographic Look
-
Soonmin Bae,
Sylvain Paris,
Frédo Durand
(Massachusetts Institute of
Technology, Computer Science and Artificial Intelligence Laboratory)
- Interactive Local Adjustment of Tonal Values
-
Dani Lischinski,
Zeev Farbman
(The Hebrew University),
Matt Uyttendaele,
Richard Szeliski
(Microsoft Research)
- Image-Based Material Editing
-
Erum Arif Khan
(University of Central Florida),
Erik Reinhard
(University of Bristol),
Roland Fleming,
Heinrich Buelthoff
(Max-Planck-Institut für biologische Kybernetic)
- Real-Time GPU Rendering of Piecewise Algebraic Surfaces
-
Charles Loop,
Jim Blinn
(Microsoft Research)
- Point-Sampled Cell Complexes
-
Anders Adamson
(Technische Universität Darmstadt),
Marc Alexa
(Technische Universität Berlin)
- Geometric Modeling with Conical Meshes and Developable Surfaces
-
Yang Liu
(University of Hong Kong),
Helmut Pottmann,
Johannes Wallner
(Technische Universität Wien ),
Wenping Wang
(University of Hong Kong),
Yong-Liang Yang
(Tsinghua University)
- Mesh Quilting For Geometric Texture Synthesis
-
Kun Zhou,
Xin Huang,
Xi Wang
(Microsoft Research Asia),
Yiying Tong,
Mathieu Desbrun
(California Institute of Technology),
Baining Guo,
Heung-Yeung Shum
(Microsoft Research Asia)
- High Dynamic Range Texture Compression for Graphics Hardware
-
Jacob Munkberg,
Petrik Clarberg,
Jon Hasselgren,
Tomas Akenine-Möller
(Lunds universitet)
- High Dynamic Range Texture Compression
-
Kimmo Roimela,
Tomi Aarnio,
Joonas Itäranta
(Nokia Research Center)
- Backward Compatible High-Dynamic-Range MPEG Video Compression
-
Rafal Mantiuk,
Alexander Efremov,
Karol Myszkowski,
Hans-Peter Seidel
(Max-Planck-Institut für Informatik)
- The Direct3D 10 System
-
David Blythe
(Microsoft Corporation)
- Inverse Shade Trees for Non-Parametric Material Representation and Editing
-
Jason Lawrence
(Princeton University),
Aner Ben-Artzi
(Columbia University)
Christopher DeCoro
(Princeton University),
Wojciech Matusik,
Hanspeter Pfister
(Mitsubishi Electric Research Laboratories (MERL)),
Ravi Ramamoorthi
(Columbia University)
Szymon Rusinkiewicz
(Princeton University)
- A Compact Factored Representation of Heterogeneous Subsurface Scattering
-
Pieter Peers,
Karl vom Berge
(Katholieke Universiteit Leuven),
Wojciech Matusik,
(Mitsubishi Electric Research Laboratories (MERL))
Ravi Ramamoorthi
(Columbia University)
Jason Lawrence,
Szymon Rusinkiewicz
(Princeton University)
Philip Dutr?/a>
(Katholieke Universiteit Leuven),
- Appearance Manifolds for Modeling Time-Variant Appearance of Materials
-
Jiaping Wang,
(Institute of Computing Technology, Chinese Academy of Sciences),
Xin Tong,
Stephen Lin
(Microsoft Research Asia),
Minghao Pan,
Hujun Bao
(Zhejiang University),
Baining Guo,
Heung-Yeung Shum
(Microsoft Research Asia)
- Time-Varying Surface Appearance: Acquisition, Modeling, and Rendering
-
Jinwei Gu
(Columbia University),
Chien-i Tu
(Mitsubishi Electric Research Laboratories (MERL)),
Ravi Ramamoorthi,
Peter Belhumeur
(Columbia University),
Wojciech Matusik
(Mitsubishi Electric Research Laboratories (MERL)),
Shree Nayar
(Columbia University)
- Flash Matting
-
Jian Sun,
Yin Li,
Sing Bing Kang,
Heung-Yeung Shum
(Microsoft Research Asia)
- Natural Video Matting using Camera Arrays
-
Neel Joshi
(University of California, San Diego),
Wojciech Matusik,
Shai Avidan
(Mitsubishi Electric Research Laboratories (MERL))
- Removing Camera Shake From a Single Photograph
-
Rob Fergus,
Barun Singh
(Massachusetts Institute of Technology, Computer Science and Artificial Intelligence Laboratory),
Aaron Hertzmann,
Sam Roweis
(University of Toronto),
William Freeman
(Massachusetts Institute of Technology, Computer Science and Artificial Intelligence Laboratory)
- Coded Exposure Photography: Motion Deblurring using Fluttered Shutter
-
Ramesh Raskar,
Amit Agrawal
(Mitsubishi Electric Research Laboratories (MERL)),
Jack Tumblin
(Northwestern University)
- Efficient Simulation of Large Bodies of Water by Coupling Two and Three Dimensional Techniques
-
Geoffrey Irving
(Stanford University and Pixar Animation Studios),
Eran Guendelman
(Stanford University),
Frank Losasso,
Ronald Fedkiw
(Stanford University and Industrial Light & Magic)
- Multiple Interacting Liquids
-
Frank Losasso
(Stanford University and Industrial Light & Magic),
Tamar Shinar
(Stanford University),
Andrew Selle
(Stanford University and
Intel Corporation),
Ronald Fedkiw
(Stanford University and Industrial Light & Magic)
- Fluid Animation with Dynamic Meshes
-
Bryan M. Klingner,
Bryan E. Feldman,
Nuttapong Chentanez,
James F. O'Brien
(University of California, Berkeley)
- Model Reduction for Real-Time Fluids
-
Adrien Treuille,
Andrew Lewis
(University of Washington),
Zoran Popović
(University of Washington and Electronic Arts)
- Photo Tourism: Exploring Photo Collections in 3D
-
Noah Snavely,
Steven M. Seitz
(University of Washington),
Richard Szeliski
(Microsoft Research)
- AutoCollage
-
Carsten Rother,
Lucas Bordeaux,
Youssef Hamadi,
Andrew Blake
(Microsoft Research Cambridge)
- Photographing Long Scenes With Multi-Viewpoint Panoramas
-
Aseem Agarwala
(University of Washington),
Maneesh Agrawala
(University of California, Berkeley),
Michael F. Cohen,
Richard Szeliski
(Microsoft Research),
David Salesin
(University of Washington and
Adobe Systems Incorporated)
- Schematic Storyboards for Video Visualization and Editing
-
Dan B Goldman,
Brian Curless
(University of Washington),
David Salesin
(University of Washington and
Adobe Systems Incorporated),
Steve Seitz
(University of Washington),
- Interaction Capture and Synthesis
-
Paul G. Kry
(University of British Columbia and EVASION/INRIA),
Dinesh K. Pai
(Rutgers University and The University of British Columbia)
- Capturing and Animating Skin Deformation in Human Motion
-
Sang Il Park,
Jessica K. Hodgins
(Carnegie Mellon University)
- Compression of Motion Capture Databases
-
Okan Arikan
(University of Texas at Austin)
- Motion Patches: Building Blocks for Virtual Environments Annotated With Motion Data
-
Kang Hoon Lee,
Myeong Geol Choi,
Jehee Lee
(Seoul National University)
- Projection Defocus Analysis for Scene Capture and Image Display
-
Li Zhang,
Shree K. Nayar
(Columbia University)
- Multiview Radial Catadioptric Imaging for Scene Capture
-
Sujit Kuthirummal,
Shree K. Nayar
(Columbia University)
- Light Field Microscopy
-
Marc Levoy,
Ren Ng,
Andrew Adams,
Matthew Footer,
Mark Horowitz
(Stanford University)
- Fast Separation of Direct and Global Components of a Scene Using High Frequency Illumination
-
Shree K. Nayar,
Gurunandan Krishnan
(Columbia University),
Michael D. Grossberg
(City University of New York ),
Ramesh Raskar
(Mitsubishi Electric Research Laboratories (MERL))
- Real-Time BRDF Editing in Complex Lighting
-
Aner Ben-Artzi,
Ryan Overbeck,
Ravi Ramamoorthi
(Columbia University)
- Generalized Wavelet Product Integral for Rendering Dynamic Glossy Objects
-
Weifeng Sun,
Amar Mukherjee
(University of Central Florida)
- All-Frequency Precomputed Radiance Transfer using Spherical Radial Basis Functions and Clustered Tensor Approximation
-
Yu-Ting Tsai,
Zen-Chung Shih
(National Chiao Tung University)
- Real-time Soft Shadows in Dynamic Scenes using Spherical Harmonic Exponentiation
-
Zhong Ren,
Rui Wang
(Zhejiang University),
John Snyder
(Microsoft Research),
Kun Zhou,
Xinguo Liu
(Microsoft Research Asia),
Bo Sun
(Columbia University),
Peter-Pike Sloan
(Microsoft Corporation),
Hujun Bao,
Qunsheng Peng
(Zhejiang University),
Baining Guo,
(Microsoft Research Asia)
- Precomputed Acoustic Transfer: Output-Sensitive, Accurate Sound Generation for Geometrically Complex Vibration Sources
-
Doug James,
Jernej Barbic
(Carnegie Mellon University),
Dinesh K. Pai
(Rutgers University and The University of British Columbia)
- Photorealistic Rendering of Rain Streaks
-
Kshitiz Garg,
Shree K. Nayar
(Columbia University)
- Acquiring Scattering Properties of Participating Media by Dilution
-
Srinivasa Narasimhan,
Mohit Gupta
(Carnegie Mellon University),
Craig Donner
(University of California, San Diego),
Ravi Ramamoorthi,
Shree K. Nayar
(Columbia University),
Henrik Wann Jensen
(University of California, San Diego)
- Analysis of Human Faces using a Measurement-Based Skin Reflectance Model
-
Tim Weyrich
(Eidgenössische Technische Hochschule Zürich),
Wojciech Matusik,
Hanspeter Pfister
(Mitsubishi Electric Research Laboratories (MERL)),
Bernd Bickel
(Eidgenössische Technische Hochschule Zürich),
Craig Donner
(University of California, San Diego),
Chien Tu,
Janet McAndless
(Mitsubishi Electric Research Laboratories (MERL)),
Jinho Lee
(Atlantis Corp.),
Addy Ngan,
(Massachusetts Institute of Technology),
Henrik Wann Jensen
(University of California, San Diego),
Markus Gross
(Eidgenössische Technische Hochschule Zürich)
- A Statistical Model for Synthesis of Detailed Facial Geometry
-
Aleksey Golovinskiy
(Princeton University),
Wojciech Matusik,
Hanspeter Pfister
(Mitsubishi Electric Research Laboratories (MERL)),
Szymon Rusinkiewicz,
Thomas A. Funkhouser
(Princeton University)
- Modified Subdivision Surfaces With Continuous Curvature
-
Adi Levin
(Cadent Ltd.)
- Edge Subdivision Schemes and the Construction of Smooth Vector Fields
-
Ke Wang,
Weiwei Yang,
Yiying Tong,
Mathieu Desbrun,
Peter Schröder
(California Institute of Technology)
- Streaming Computation of Delaunay Triangulations
-
Martin Isenburg
(University of California, Berkeley),
Yuanxin Liu
(University of North Carolina at Chapel Hill),
Jonathan Shewchuk
(University of California, Berkeley),
Jack Snoeyink
(University of North Carolina at Chapel Hill)
- Spectral Surface Quadrangulation (TR-2005-2583)
-
Shen Dong,
Peer-Timo Bremer,
Michael Garland
(University of Illinois, Urbana-Champaign),
Valerio Pascucci
(Lawrence Livermore National Laboratory),
John C. Hart
(University of Illinois, Urbana-Champaign)
- Simulating Multiple Scattering in Hair Using a Photon Mapping Approach
-
Jonathan T. Moon,
Stephen R. Marschner
(Cornell University)
- Statistical Acceleration for Animated Global Illumination
-
Mark Meyer,
John Anderson
(Pixar Animation Studios)
- Multidimensional Lightcuts
-
Bruce Walter,
Adam Arbree,
Kavita Bala,
Donald Greenberg
(Cornell University)
- Direct-to-Indirect Transfer for Cinematic Relighting
-
Milos Hasan
(Cornell University),
Fabio Pellacini
(Dartmouth College),
Kavita Bala
(Cornell University)
- Editing Arbitrarily Deforming Surface Animations
-
Scott Kircher,
Michael Garland
(University of Illinois at Urbana-Champaign)
- A Fast Multigrid Algorithm for Mesh Deformation
-
Lin Shi,
Yizhou Yu,
Nathan Bell,
Wei-Wen Feng
(University of Illinois at Urbana-Champaign)
- Vector-Field-Based Shape Deformations
-
Wolfram von Funck,
Holger Theisel,
Hans-Peter Seidel
(Max-Planck-Institut für Informatik)
- Subspace Gradient Domain Mesh Deformation
-
Jin Huang,
Xiaohan Shi,
(Zhejiang University),
Xinguo Liu,
Kun Zhou,
Li-Yi Wei
(Microsoft Research Asia),
Shanghua Teng
(Boston University),
Hujun Bao
(Zhejiang University),
Baining Guo,
Heung-Yeung Shum
(Microsoft Research Asia)
- Locally Adapted Hierarchical Basis Preconditioning
-
Richard Szeliski
(Microsoft Research)
- Fast Proximity Computation Among Deformable Models using Discrete Voronoi Diagrams
-
Avneesh Sud,
Naga Govindaraju,
Russell Gayle,
Ilknur Kabul,
Dinesh Manocha
(University of North Carolina at Chapel Hill)
- Resolving Surface Collisions Through Intersection Contour Minimization
-
Pascal Volino,
Nadia Magnenat-Thalmann
(L'Université de Genève)
- Continuum Crowds
-
Adrien Treuille,
Seth Cooper
(University of Washington),
Zoran Popović
(University of Washington and Electronic Arts)
- The Cartoon Animation Filter
-
Jue Wang
(University of Washington),
Maneesh Agrawala
(University of California, Berkeley),
Steven Drucker,
Michael F. Cohen
(Microsoft Research)
- Inverse Kinematics for Reduced Deformable Models
-
Kevin G. Der
(Massachusetts Institute of Technology),
Robert W. Sumner
(Eidgenössische Technische Hochschule Zürich),
Jovan Popović
(Massachusetts Institute of Technology)
- Super-Helices for Predicting the Dynamics of Natural Hair
-
Florence Bertails
(EVASION/INRIA),
Basile Audoly,
Audoly Consulting
(LMM/CNRS et Université Pierre et Marie Curie),
Marie-Paule Cani
(EVASION/INRIA),
Bernard Querleux,
Frédéric Leroy
(L'Oréal Recherche, Aulnay-Sous-Bois),
Jean-Luc Lévêque
(L'Oréal Recherche, Clichy)
- Heads Up! Biomechanical Modeling and Neuromuscular Control of the Neck
-
Sung-Hee Lee,
Demetri Terzopoulos
(University of California, Los Angeles)
- Exaggerated Shading for Depicting Shape and Detail
-
Szymon Rusinkiewicz,
Michael Burns
(Princeton University),
Doug DeCarlo
(Rutgers University)
- Enhancement Using a Blurred Depth Buffer
-
Thomas Luft,
Carsten Colditz,
Oliver Deussen
(Universität Konstanz)
- Manga Colorization
-
Yingge Qu,
Tien-Tsin Wong,
Pheng-Ann Heng
(The Chinese University of Hong Kong)
- Real-Time Video Abstraction
-
Holger Winnemöller,
Sven Olsen,
Bruce Gooch
(Northwestern University)
<EMAIL_ADDRESS>kesen.huang@gmail.com


@(localUser: models.User = null) @import com.feth.play.module.pa.views.html._ @import helper._ @import helper.twitterBootstrap._ @import be.objectify.deadbolt.java.views.html._ @main(Messages("playauthenticate.profile.title"),"profile") {
Members with a school on their profile get 7 times more profile views
Choose a Photo You can upload a JPEG, GIF, or PNG file.…
File size limit is 8 MB.


Analyzing PyPI package downloads¶
This section covers how to use the public PyPI download statistics dataset to learn more about downloads of a package (or packages) hosted on PyPI. For example, you can use it to discover the distribution of Python versions used to download a package.
Contents
Background¶
PyPI does not display download statistics for a number of reasons: 1
Inefficient to make work with a Content Distribution Network (CDN): Download statistics change constantly. Including them in project pages, which are heavily cached, would require invalidating the cache more often, and reduce the overall effectiveness of the cache.
Highly inaccurate: A number of things prevent the download counts from being accurate, some of which include:
pip
's download cache (lowers download counts)Internal or unofficial mirrors (can both raise or lower download counts)
Packages not hosted on PyPI (for comparisons sake)
Unofficial scripts or attempts at download count inflation (raises download counts)
Known historical data quality issues (lowers download counts)
Not particularly useful: Just because a project has been downloaded a lot doesn't mean it's good; Similarly just because a project hasn't been downloaded a lot doesn't mean it's bad!
In short, because it's value is low for various reasons, and the tradeoffs required to make it work are high, it has been not an effective use of limited resources.
Public dataset¶
As an alternative, the Linehaul project streams download logs from PyPI to Google BigQuery 2, where they are stored as a public dataset.
Getting set up¶
In order to use Google BigQuery to query the public PyPI download statistics dataset, you'll need a Google account and to enable the BigQuery API on a Google Cloud Platform project. You can run the up to 1TB of queries per month using the BigQuery free tier without a credit card
Navigate to the BigQuery web UI.
Create a new project.
Enable the BigQuery API.
For more detailed instructions on how to get started with BigQuery, check out the BigQuery quickstart guide.
Data schema¶
Linehaul writes an entry in a bigquery-public-data.pypi.file_downloads
table for each
download. The table contains information about what file was downloaded and how
it was downloaded. Some useful columns from the table schema
include:
Column |
Description |
Examples |
|---|---|---|
timestamp |
Date and time |
|
file.project |
Project name |
|
file.version |
Package version |
|
details.installer.name |
Installer |
pip, bandersnatch |
details.python |
Python version |
|
Useful queries¶
Run queries in the BigQuery web UI by clicking the "Compose query" button.
Note that the rows are stored in a partitioned, which helps
limit the cost of queries. These example queries analyze downloads from
recent history by filtering on the timestamp
column.
Counting package downloads¶
The following query counts the total number of downloads for the project "pytest".
#standardSQL
SELECT COUNT(*) AS num_downloads
FROM `bigquery-public-data.pypi.file_downloads`
WHERE file.project = 'pytest'
-- Only query the last 30 days of history
AND DATE(timestamp)
BETWEEN DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)
AND CURRENT_DATE()
num_downloads |
|---|
26190085 |
To only count downloads from pip, filter on the details.installer.name
column.
#standardSQL
SELECT COUNT(*) AS num_downloads
FROM `bigquery-public-data.pypi.file_downloads`
WHERE file.project = 'pytest'
AND details.installer.name = 'pip'
-- Only query the last 30 days of history
AND DATE(timestamp)
BETWEEN DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)
AND CURRENT_DATE()
num_downloads |
|---|
24334215 |
Package downloads over time¶
To group by monthly downloads, use the TIMESTAMP_TRUNC
function. Also
filtering by this column reduces corresponding costs.
#standardSQL
SELECT
COUNT(*) AS num_downloads,
DATE_TRUNC(DATE(timestamp), MONTH) AS `month`
FROM `bigquery-public-data.pypi.file_downloads`
WHERE
file.project = 'pytest'
-- Only query the last 6 months of history
AND DATE(timestamp)
BETWEEN DATE_TRUNC(DATE_SUB(CURRENT_DATE(), INTERVAL 6 MONTH), MONTH)
AND CURRENT_DATE()
GROUP BY `month`
ORDER BY `month` DESC
num_downloads |
month |
|---|---|
1956741 |
2018-01-01 |
2344692 |
2017-12-01 |
1730398 |
2017-11-01 |
2047310 |
2017-10-01 |
1744443 |
2017-09-01 |
1916952 |
2017-08-01 |
Python versions over time¶
Extract the Python version from the details.python
column. Warning: This
query processes over 500 GB of data.
#standardSQL
SELECT
REGEXP_EXTRACT(details.python, r"[0-9]+\.[0-9]+") AS python_version,
COUNT(*) AS num_downloads,
FROM `bigquery-public-data.pypi.file_downloads`
WHERE
-- Only query the last 6 months of history
DATE(timestamp)
BETWEEN DATE_TRUNC(DATE_SUB(CURRENT_DATE(), INTERVAL 6 MONTH), MONTH)
AND CURRENT_DATE()
GROUP BY `python_version`
ORDER BY `num_downloads` DESC
python |
num_downloads |
|---|---|
3.7 |
18051328726 |
3.6 |
9635067203 |
3.8 |
7781904681 |
2.7 |
6381252241 |
null |
2026630299 |
3.5 |
1894153540 |
Caveats¶
In addition to the caveats listed in the background above, Linehaul suffered from a bug which caused it to significantly under-report download statistics prior to July 26, 2018. Downloads before this date are proportionally accurate (e.g. the percentage of Python 2 vs. Python 3 downloads) but total numbers are lower than actual by an order of magnitude.
Additional tools¶
Besides using the BigQuery console, there are some additional tools which may be useful when analyzing download statistics.
google-cloud-bigquery
¶
You can also access the public PyPI download statistics dataset programmatically via the BigQuery API and the google-cloud-bigquery project, the official Python client library for BigQuery.
from google.cloud import bigquery
# Note: depending on where this code is being run, you may require
# additional authentication. See:
# https://cloud.google.com/bigquery/docs/authentication/
client = bigquery.Client()
query_job = client.query("""
SELECT COUNT(*) AS num_downloads
FROM `bigquery-public-data.pypi.file_downloads`
WHERE file.project = 'pytest'
-- Only query the last 30 days of history
AND DATE(timestamp)
BETWEEN DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)
AND CURRENT_DATE()""")
results = query_job.result() # Waits for job to complete.
for row in results:
print("{} downloads".format(row.num_downloads))
pypinfo
¶
pypinfo is a command-line tool which provides access to the dataset and
can generate several useful queries. For example, you can query the total
number of download for a package with the command pypinfo package_name
.
Install pypinfo using pip.
python -m pip install pypinfo
Usage:
$ pypinfo requests
Served from cache: False
Data processed: 6.87 GiB
Data billed: 6.87 GiB
Estimated cost: $0.04
| download_count |
| -------------- |
| 9,316,415 |
pandas-gbq
¶
The pandas-gbq project allows for accessing query results via Pandas.


Grab a Nokia 4.2 for $159 from Amazon and B&H ($30 off)
by Jordan PalmerDeals abound this holiday season, so here's another one for the pile. Nokia's budget 4.2 smartphone has dropped to $159 on both Amazon and B&H, a nice savings of $30 off the MSRP.
For starters, if you're looking for more info on the 4.2, then be sure to check out Scott's review right here. Unfortunately for this little phone, it suffers from performance problems, a poor-quality display, a laggy camera, and sub-par battery life.
For perspective, however, it packs a 5.71" 720x1520 TFT LCD display, a Snapdragon 439 SoC, 3GB of RAM, 32GB of storage, a 13MP+2MP rear camera setup, and a 3,000mAh battery. As you can see from the screenshot above, it only works on the GSM carriers like AT&T and T-Mobile.
While it may not be the best phone around, for $159, it'd make for a decent backup device or a starter smartphone. If you're interested, then choose from the buy links below.


GUINEVERE
Reviewed by Harvey Karten Miramax Films Director: Audrey Wells Writer: Audrey Wells Cast: Sarah Polley, Stephen Rea, Jean Smart, Gina Gershon, Paul Dooley
Some time back Diogenes searched high and low in his part of Greece, looking fruitlessly for an honest man. If he were alive today, he'd probably search another lifetime for a middle-aged man who has never entertained a fantasy about a relationship with a 20-year-old woman (or man, depending). For guys who live strictly in a fantasy world, there's nothing like a solid movie for an awesome vicarious experience of that specifically human fancy. "Guinevere" realizes the vision better than any other film has done this year to date. "Guinevere," which is both written and debut-directed by Audrey Wells ("The Truth About Cats and Dogs") is a remarkable accomplishment, ministering to our need for a mature film filled with humor and pathos. The cast is a crackerjack ensemble of actors with Stephen Rea as 40- something bohemian photographer Connie Fitzpatrick and Sarah Polley as Harper Sloane, his 20-year old lover and devotee. "Guinevere," a slickly-made yet incisively-drawn portrait of a May-September romance, was a hit at last January's Sundance Festival, featuring much higher production values than the typical indie programmed in that Utah showplace each year.
Particularly appealing are the shades and nuances of feeling experienced by the two principals, each of whom has ambiguous feelings about the affiliation while both are unquestionably gaining impressively from their connection. Essentially this is a story of a young woman just out of college who is the oddball in her haute bourgeois family, has no idea what she's good at or even whether she has potential, and who is culled right out of her husk by an older man who showers attention and enlightenment on her. As she transforms from a shy, antisocial individual who despite her beauty may never have had a boy friend to a romantically fulfilled and professionally competent human being, she is in turning contributing a great deal of gratification to the roue who has taken her in and given her a life.
The affair begins as ruggedly good-looking wedding photographer Connie Fitzpatrick (Stephen Rea) plies his trade at the plush wedding of Harper's sister. After spotting a candid and particularly penetrating picture of herself, Harper visits the photographer at his bohemian digs in a run-down San Francisco neighborhood and is seduced by his seemingly passive but obviously confident invitation to spend the night. Moving in with the man after experiencing the joys of both the flesh and the mind, Harper is prodded to study the field that interests her the most and is plied with books, attention, and the company of Connie's artistic friends. Awkward at first (at one point she spills wine on a stack of Connie photos but is told "That's OK, I've got another bottle"), she soon develops all the grace of a assured, fulfilled woman. By the end of the affair, both parties have obviously grown emotionally, both delighting in each other's company and riding out the inevitable periods of friction and rage.
Audrey Wells excels in both direction and scripting, especially in getting Harper to convey nuances of emotion by simple frowns, pouts, and subtle twists of her necklace. Wells also jackets the film in a variety of moods, most striking in the concluding moments when she converts Connie's studio into a surreal vision of heavenly light. The director charges the movie with witty dialogue throughout, in one showstopping scene presenting a knockout demonstration of putdowns from the lips of Harper's mom, Deborah (Jean Smart), who sharply and amusingly challenges the artist's ability to relate to a mature, experienced woman. (One writer who was present at Sundance exclaimed that this scene "brought the house down.")
Wells peppers the story with the little gestures that mean so much in turning what could have been yet another romance into a compelling, believable story. There's the entirely hilarious rich mom played with pizazz by Jean Smart who instructs the family not to bother asking for Harper's opinions at the dinner table: "Don't bother her...she's digging a hole in her bread." There's the envious middle-aged guy sitting at a table a few yards from Connie and Harper who quickly gives a thumbs-up sign to the would-be Humbert Humbert. There's the bevy of women who have "graduated" from Connie course, each spending two or three years with the seductive photographer, each nicknamed Queen Guinevere by the charming fellow.
The flaws are minor, virtually unnoticeable, none distracting from the momentum of the story. Harper, for example, considers herself unfit for anything. She is not sociable, she has no interest in any craft and no intellectual pretensions. Yet we are told that she has been admitted to Harvard Law School. But who's worried? We've been made privy to the pain that lies beneath the surface of Connie's bonhomie and the potential possessed by Harper that needs only a catalyst to secure its release. All insights are put over with a good deal of humor and love making Guinevere a winning choice for September movie mavens.
Rated R. Running Time: 108 minutes. (C) 1999 Harvey Karten
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


The return of the Cassandra CacheStore
Ever since we spruced up our Cache Store SPI in Infinispan 6.0, some of our "extra" cache stores have lied in a state of semi-abandonment, waiting for a kind soul with time and determination to bring them back to life. I’m glad to announce that such a kind soul, in the form of Jakub Markos, had the necessary qualities to accomplish the resurrection of the Cassandra Cache Store.
Apache Cassandra is a database with a distributed architecture which can be used to provide a virtually unlimited, horizontally scalable persistent store for Infinispan’s caches. The new Cassandra Cache Store leverages the Datastax Cassandra client driver instead of the old Thrift client approach, which makes it much more robust and reliable.
Configuration
In order to use this cache store you need to add the following dependency to your project:
You will also need to create an appropriate keyspace on your Cassandra database, or configure the auto-create-keyspace to create it automatically. The following CQL commands show how to configure the keyspace manually (using cqlsh for example):
You then need to add an appropriate cache declaration to your
infinispan.xml
(or whichever file you use to configure Infinispan):
It is important the the shared property on the cassandra-store element is set to true because all the Infinispan nodes will share the same Cassandra cluster.
Limitations
The cache store uses Cassandra’s own expiration mechanisms (time to live = TTL) to handle expiration of entries. Since TTL is specified in seconds, expiration lifespan and maxIdle values are handled only with seconds-precision.
In addition to this, when both lifespan and maxIdle are used, entries in the cache store effectively behave as if their lifespan = maxIdle, due to an existing bug https://issues.jboss.org/browse/ISPN-3202.
So, try it out and let us know about your experience !


Alexcoin.github.io
A History Of The Mass And Its Ceremonies In The Eastern. Catholic Church - Simple English Wikipedia
Mass is a term used to describe the main eucharistic liturgical service in many forms of Western Christianity.The term Mass is commonly used in the Catholic Church and Anglican churches, as well as some Lutheran churches, Methodist, Western Rite Orthodox and Old Catholic churches. Some Protestants employ terms such as Divine Service or service of worship, rather The Catholic Church is the largest Christian church in the world. Over 1 billion people are members of the Catholic Church. It is the world's second-largest religious. A History of the Mass and Its Ceremonies in the Eastern. Resurrection Church and School History - Brookline. History of the Catholic Church - Wikipedia.
A Short History of the Mass Alfred Mc Bride O.Praem on Amazon.com. FREE shipping on qualifying offers. From the Last Supper, to the Mass of the Apostles A history of the mass and its ceremonies in the eastern and western church. John O Brien History of the mass and its ceremonies in the eastern and western church. New York : Benziger Bros., 1879 (OCoLC)919211138: label History of the mass and its ceremonies in the eastern and western church. 26 August 2018 Israeli Prime Minister Netanyahu’s 23-26 Aug. Visit to Vilnius, Lithuania Ben Cohen’s Coverage in Algemeiner.com Cites Three Defending History. A History of the Mass and Its Ceremonies in the Eastern and Western Church - Ebook written by John O Brien. Read this book using Google Play Books app on your PC, android, iOS devices. Download for offline reading, highlight, bookmark or take notes while you read A History of the Mass and Its Ceremonies in the Eastern and Western Church.
A History Of The Mass And Its Ceremonies In The Eastern And Western Church Item Preview remove-circle A History Of The Mass And Its Ceremonies In The Eastern And Western Church. by O Brien, John, Scanner Internet Archive HTML5 Uploader 1.6.1. Worldcat (source edition) 903773428. A Short History of the Roman Mass: Michael Davies. A history of the mass and its ceremonies in the eastern and western church. CATHOLIC ENCYCLOPEDIA: Christmas - NEW ADVENT.
A history of the mass and its ceremonies in the eastern. This work, first published in 1879, is an informative look into the ceremonies of the Mass in both the Eastern and Western Churches. Included are historical pieces about parts of the Mass as well as how the liturgy developed A Short History of the Roman Mass Michael Davies on Amazon.com. FREE shipping on qualifying offers. A short, authoritative, enthralling history of the Roman. Full Online : A History Of The Mass And Its Ceremonies. Buy the Paperback Book A History Of The Mass And Its Ceremonies In The Eastern And Western Church by John 1841-1879. from Old Cata O brien at Indigo.ca, Canada s largest bookstore. + Get Free Shipping on books
A History of the Mass and its Ceremonies in the Eastern. The history of the Catholic Church begins with Jesus Christ and his teachings (c. 4 BC – c. AD 30), and the Catholic Church is a continuation of the early Christian. A floral wreath is placed on the statue of Mary during Resurrection Elementary's May Crowning ceremony in 1960. Resurrection Church/School Photo Gallery. Mass is a term used to describe the main eucharistic liturgical service in many forms of Western Christianity. The term Mass is commonly used in the Catholic Church. Anglicans Online Church History Resources. A Short History of the Mass: Alfred Mc Bride O.Praem. Church History (Book I) Please help support the mission of New Advent and get the full contents of this website as an instant download. Includes.
Church year - History of the church year Britannica.com. Overview. A History of the Mass and Its Ceremonies in the Eastern and Western Church begins with a brief dissertation of the principle liturgies in use in the East and the West at the turn of the last century. It then gives an account of the origin and meaning of the word Mass before providing a full account of the liturgy as it is performed in Catholic churches of the extraordinary.
Defending History Holocaust in Lithuania; Holocaust. PART OF OUR IDENTITY as Anglicans is the tradition and history of our church and our churches. On this page we have collected links to web sites. Christmas. Please help support the mission of New Advent and get the full contents of this website as an instant download. Includes the Catholic Encyclopedia, Church. Church year - History of the church year: Regular Christian corporate worship on Sundays goes back to the apostolic age, but New Testament writings A comprehensive timeline of Irish history from 8000 BC to the present. A History Of The Mass And Its Ceremonies In The Eastern And Western Church Classic Reprint Epub Download 17,91MB A History Of The Mass And Its Ceremonies In The Eastern And Western Church. Home Glenbower Books A History of the Mass and Its Ceremonies in the Eastern and West A History of the Mass and Its Ceremonies in the Eastern and Western Church by O Brien.


WebOb Do-It-Yourself Framework
My old do-it-yourself framework tutorial was getting a bit long in the tooth, so I rewrote it to use WebOb. Now: the new do-it-yourself framework.
{ Monthly Archives }
My old do-it-yourself framework tutorial was getting a bit long in the tooth, so I rewrote it to use WebOb. Now: the new do-it-yourself framework.
So I promised some more technical discussion of App Engine than my last two posts. Here it is:
Google App Engine uses a somewhat CGI-like model. That is, a script is run, and it uses stdin/stdout/environ to handle the requests. To avoid the overhead of CGI a process can be reused by defining __main__.main(). But while a process can be reused, it might not be, and of course it might get run on an entirely separate server. So in many ways it’s like the CGI model, with a small optimization so that, particularly under load, your requests can run with less latency.
This part is all well and good. I’ve already come to terms with servers going up and down without warning. But the environment itself has a number of other restrictions. It seems that App Engine is providing security in the language itself. The interpreter has been modified so that code is sandboxed, with no ability to write to the disk, open sockets, import C extensions, and see quite a few things in its environment. It’s these things that are a bit harder to come to terms with.
While they claim it supports any Python framework, these restrictions don’t actually make it easy. So for the last few days quite a few of us have been hacking various things to get stuff working.
The first thing people noticed is that Mako and Genshi didn’t work, because they use the ast (via the parser module) to handle the templating, and that module has been restricted. Apparently arbitrary bytecode is not safe in this environment, and so anything that can produce bytecode is considered dangerous. From what I understand Philip Jenvy has been working on Mako and the trunk is currently working. He’d already been doing work to get Mako working on Jython, which had similar issues. Genshi is also in progress and fairly close to working, though with some missing features. Genshi has the harder task as Mako was primarily reading the ast, while Genshi was writing it.
The first thing I noticed is that Setuptools doesn’t work. I’m flattered that one of the only 3 libraries included with App Engine is WebOb, but of course I am more enamored of a rich set of reusable libraries. Setuptools didn’t work because several modules and functions have been removed — this like os.open, os.uname, imp.acquire_lock, etc. Some of these are kind of reasonable, while others are not. The removal of many functions from imp doesn’t really make sense, for instance (I think the motivation was the difficulty of auditing the implementation of those functions, not that the functionality itself is dangerous). And while some functions can’t be used in the environment, the fact you can’t import those functions is more problematic. For instance, The Setuptools’ pkg_resources module has support to unzip eggs when they are imported. App Engine doesn’t support importing from zip files at all, and you certainly can’t unzip to a temporary location. But withoutthe necessary modules and objects pkg_resources won’t even import.
To work around this I started a new project: appengine-monkey, which adds several monkeypatches and replacement dummy modules to the environment to simulate a more typical environment. It’s just a small list so far (mostly in this module), but I expect as people experiment with other libraries the list will increase. For example, I would welcome implementations of things like httplib on top of urlfetch in this library. (Implementing httplib and stubbing out parts of socket would probably make urllib run.)
But the good news is that Pylons is pretty much working on App Engine, as is Setuptools and you can manage your libraries using virtualenv.
The instructions are all located in the appengine-monkey Pylons wiki page. Please leave comments if you have improvements or problems with that process. I also welcome contributors and developers to the project itself — this is a project for expediting App Engine development, it is not a project I care to champion or control. Or support to any large degree.
One ticket which is rather important is the apparent maximum number of files and blobs: 1000. Libraries involve lots of files, and the base Pylons install is only barely under this limit. Now I just wish I could use lxml, but that’s probably going to be a long time coming.
Update: As of April 2009 these issues were fixed; it took a year, but at least it’s done. The 1000 file limit has been relaxed (1000 code plus 1000 static) but still exists. lxml remains unlikely.
So, I was at a university the other day, talking with some people about a sprint project, and there was a student there. He was somewhat eager to write "algorithms". I’m not sure what that means exactly, but I was reminded of him because I was just about to write a function to make an absolute path relative and this somehow felt like an "algorithm". That’s not how I’d describe most of the coding I do.
But I digress… this student seemed to be excited about his ability. Well, okay, young programmers tend to be very eager, and often overestimate their ability (or the difficulty of the task). For students in this position I think it’s good to let them take on large projects, so they can get a better concept of their ability. This student seemed to take to heart the idea that a typical programmer produces 10 lines of working code a day. People who hear this are inclined to think "damn, I can write way more than 10 lines of code a day!"
I suspect a more fair way of thinking about this is that on average a programmer gets 50 lines of code into production a week, or 200 lines a month. Sure, lots of people are more productive than this, but the actual lines of code that go into production are usually way smaller than it feels like during the process that goes into getting that code there. That student had probably never gotten a single line of code into production. I’m pretty sure he wouldn’t have appreciated what that getting code into production is different than just hacking out some code.
The kid didn’t end up hanging around. I don’t think we had any algorithms for him. That’s too bad, maybe he could have seen what programming really looks like.
Another what-is-programming-really-like story… Emily was working on her blog and editing some templates to change the feed URL. It didn’t work, and I took a look at it and showed her that somehow a space had gotten into the URL, so she had to go back and correct them all. She found this frustrating. I pointed out to her that this is exactly what I spend my days doing.
Some people seem angered when people call writing HTML "programming". Personally I do not. Most programming is a lot more like writing HTML than it’s like writing a compiler. I bet writing a compiler is a lot more like writing HTML than what most programmers think it’s like to write a compiler.
I like this phrasing of the debate about App Engine’s role, from Doug Cutting: Cloud: commodity or proprietary? (via). (Well, I like it more than the sharecropping phrasing referenced in my last post.) I guess I’m excited about this because like Doug I do want a "cloud" of sorts, and this is a move towards that in a way that makes sense to me. Maybe to state my motivations more clearly: I hate computers. I really hate them a lot. I dream of some world of Platonic ideals where software just exists, and existence that state it works. App Engine feels like a strong move in the direction of computers-not-mattering. What does App Engine run on? I don’t care! Where is the server located? I don’t care! What is BigTable? I am comfortable thinking of it only in its abstract sense, an API that works, and I don’t know how, nor do I need to know how. I don’t need to know these things if they just work. Always. Totally reliably. I’m not shy about digging into code. I tend to be light on my reading of documentation, because I’d much rather open up source code and poke around. But when something can work so reliably that I can treat it as completely opaque then it’s a blessing, because I can start to forget about it and think about bigger goals.
There was a time when people were concerned about Big Endian vs. Little Endian in computers. You had to think about this sort of little detail when programming. People formed actual opinions on which way was best. To think! Similarly XML has removed a large number of fairly pointless format decisions people might make. There is progress. Commodity hosting (reliable, consistent hosting, better than what we have now) feels like similar progress.
Unlike Doug I’m optimistic that App Engine is a move in the direction of a commodity cloud. The APIs seem to lack the stench of proprietary APIs. They are based on Google services, but they reasonably abstract and reasonably minimal. This does not seem like some kind of "play" (and the developers’ seem to be reassuring about their intentions). There’s a tendency to be cynical about any company’s work, that it has underlying intentions that are at odds with any competitor (present or future), that anything good is just a loss leader meant to hook you in so they can squeeze you later. Some companies deserve such cynicism. I don’t know that this company, or this team, deserves that.
Mind you, I don’t say this from a Best-Tool-For-The-Job perspective. I believe in the moral foundations of Free Software, not just the technical advantages of its development process. But I’m a Utilitarian, and it doesn’t make me uncomfortable that not everything is Free if I think it’s a step forward for overall freedom. I think App Engine has the potential to be a very powerful tool for enabling people to create and use web applications. If it was great, but still a dead end, then maybe that wouldn’t be good enough. But I don’t think this is a dead end.
Update: Indeed people are reimplementing the interface: see the appdrop.com announcement
This is about Google App Engine which probably everyone has read about already.
I’m quite excited about it. Hosting has been the bane of the Python web world for a long time. This provides a very compelling hosting situation for Python applications.
I’m not as interested in this from a competitive perspective as I am from a simple this-is-awesome perspective. Regardless of how this positions Python relative to other languages, this is something Python needs. But even looking beyond that, I think this is something the open source world needs. Open source web development is in a funny place. There’s a lot of reasons why web programming is a good domain for open source. The barrier to entry for web development is extremely low. Developers have choice in their tools, as browsers don’t really care what software you use so long as you serve up HTML. This leads to experimentation and excitement and the kind of self-direction that is very motivating to developers. It leads to the kind of personal excitement that underlies most open source development.
Despite this, open source web application development doesn’t seem sustainable. There’s some applications, sure. WordPress, Trac, MediaWiki, MoinMoin. But most wiki software doesn’t have a vibrant community. Many a bug tracker has fallen by the wayside. Blog software projects have a horrible time building a viable community. Other website software hardly gets anywhere at all. A lot of the development that might appear to be application development really is more like a framework when you look closely (e.g., Plone, Drupal).
I think deployment concerns are a huge part of this. And, given its better deployment story, it’s no surprise PHP is the basis of most viable open source web applications. Being interested in a project requires that you be able to use the product (and usually use it casually, as that’s the point of entry for many developers). Right now most people can’t use open source web applications.
But people can use hosted applications, and that’s where all the effort has gone in the past few years. I am comfortable saying that Trac is a better issue tracker than Google Code’s issue tracker. But I’d probably recommend Google Code to someone starting a new project, because it’s so much less work. Similarly I’d try to dissuade most people from installing their own blog software. I still don’t know what to tell people about a CMS.
Many people are excited about how far up you might be able to scale something based on App Engine, but (like Dave) I’m excited about how far it could be scaled down. For the majority of sites the free quota will be more than enough. But that alone isn’t the point: there’s lots of free services people can use. The difference here is that the free services can be modified and controlled by the anyone who signs up and installs an application.
From the perspective of open source it’s a bit awkward that the platform itself is proprietary. Questions about sharecropping are a valid concern, but I’m optimistic about the ultimate outcome. The SDK is under a permissive open source license, and the APIs are all reasonable enough that they could be reimplemented with open source backends (maybe without the same scalability, but that’s not the aspect I care about anyway). Perhaps the BigTable APIs will serve as the basis for future storage APIs.
But even if other people make compatible implementations of these APIs, would it matter? If Google offers free hosting, is someone else really going to be able to provide a better hosting option? Or would these other implementations just be strawmen, a way to show that It Could Be Done? If the libraries are just written to prove a point, I can’t see them gaining much traction. But I think these could be viable as there are other constraints to the App Engine environment that people may want to escape at some point in their application development.
As to the details of App Engine? Can you run Pylons or Paste on it? Well, that’s a topic for another post.
Update: I wrote up some more thoughts
I just saw this json-rpc recipe go by as a popular link on del.icio.us. It’s yet-another-*Server based recipe (BaseHTTPServer, XMLRPCServer, etc). I don’t know why people keep writing these. WSGI is in all ways easier, clearer, and more useful.
So I figured I’d give it a go myself, using WebOb. Then I figured it might make a good document, and I annotated it and turned it into a tutorial. It’s also an example of using WebOb as a client library.
I’ve added several tutorials in the past months, which I thought I should also point out. The wiki example is fairly pedestrian, but shows how to do typical application-style development with WebOb. A more interesting example is the comment middleware example, which shows how much easier it can be to write middleware using WebOb than traditional WSGI middleware.
I think WebOb’s particular strong points are with middleware (where it makes middleware vastly easier to write) and web services of various kinds (RESTful or not).


§515-17 Attempts. An attempt to commit, directly or indirectly, a discriminatory practice is a discriminatory practice. [L 1967, c 193, §17; HRS §515-17]


Software Architecture And Development from the Trenches
Archive:
Posts
Simple Resx String Fetcher for Asp.Net Core
2017/01/23
ASPNET Core
Localization
CDN Origin Server Redirector Technique
2017/01/21
ASPNET Core
CDN
Simple Redirector for Asp.Net Core
2017/01/20
ASPNET Core
Cachebusting Technique for ASP.Net Core
2017/01/14
ASPNET Core
Author
Herb Stahl
Categories
aspnet-core (4)
RSS


Configuration
DataMapper has some configuration settings which you can customise to suit your needs. They will apply to all DataMapper models unless overridden in the models themselves. These are:
| Name | Type | Description | Default | Since Ver. |
|---|---|---|---|---|
| prefix | String | If set, will require all tables (both normal and joining tables) to have this prefix. | DataMapper | |
| join_prefix | String | If set, will require all joining tables to have this prefix (overrides prefix). | DataMapper | |
| error_prefix | String | If set, will be prepended onto each error message. | <p> | DataMapper |
| error_suffix | String | If set, will be appended onto each error message. | </p> | DataMapper |
| created_field | String | The field name for storing the created timestamp. | created | DataMapper |
| updated_field | String | The field name for storing the updated timestamp. | updated | DataMapper |
| local_time | Boolean | If set to TRUE, will use local timestamps. Otherwise, GMT/UTC is used. | FALSE | DataMapper |
| unix_timestamp | Boolean | If set to TRUE, will use 'Unix Timestamp' instead of 'DateTime'. | FALSE | DataMapper |
| auto_transaction | Boolean | If set to TRUE, will automatically handle transactions. | FALSE | DataMapper |
| auto_populate_has_many | Boolean | If set to TRUE, will automatically populate related "has many" objects on first access. | FALSE | DataMapper |
| auto_populate_has_one | Boolean | If set to TRUE, will automatically populate related "has one" objects on first access. | FALSE | DataMapper |
| production_cache | Mixed | If set to a string, will cause DataMapper to cache the database schema to the directory listed. | FALSE | 1.3.0 |
| extensions | Array | An array of extensions to load globally on every class. | (empty) | 1.3.0 |
| extensions_path | String | The default path to extensions, relative to application | datamapper | 1.3.0 |
| all_array_uses_ids | Boolean | If TRUE, uses the old DataMapper behavior for indexing the all array. | FALSE | 1.5.2 |
| db_params | Mixed | If '' (empty string), DMZ models will connect using the default DataBase config. If FALSE, all models will connect to $CI->db. (Note: this breaks subqueries, and any feature that relies on subqueries.) If anything else, the value is passed into $CI->load->database(). See the CodeIgniter manual for more information. |
'' | 1.6.0 |
| timestamp_format | String | Overrides the default date-compatible timestamp format. | Y-m-d H:i:s O | 1.7.0 |
| lang_file_format | String | When set, this pattern is used to tell DMZ which language file to load for each model. For new installations, this actually defaults to 'model_${model}'. |
'' | 1.7.0 |
| field_label_lang_format | String | Tells DMZ which language pattern to use when loading labels for fields. | ${model}_${field} | 1.7.0 |
To modify your settings, open the application/config/datamapper.php file with a text editor and set your preferred configuration settings.
Note: You can override these settings by specifying values directly in your models, except for production_cache and extensions_path.


Shrimp Scampi
A tasty summer hit!
Ingredients
- 8 oz angel hair pasta
- ½ cup butter
- 4 cloves minced garlic
- 1 lb cooked shrimp shelled and deveined
- ½ cup white wine vinegar
- ½ cup water
- ¾ cup parmesan
- ½ tablespoon oregano
- 1 tablespoon parsley
- ¼ teaspoon pepper
Instructions:
- Boil noodles in lightly salted water. Drain well!
- Melt butter in a pan over medium heat
- Saute minced garlic in butter until lightly browned
- Add water, vinegar, parsley, oregano and pepper and bring to a boil
- Reduce heat and add shrimp. Cook until warm up to 1 minute
- Toss drained noodles, shrimp, sauce and parmesan together


{{Stroke order}}
{{Description}}
{{#Full onyomi}}
Onyomi
{{Full onyomi}}
{{/Full onyomi}}
{{#Full kunyomi}}
Kunyomi
{{Full kunyomi}}
{{/Full kunyomi}}
{{#Full mnemonic}}
Mnemonic
{{Full mnemonic}}
{{/Full mnemonic}}
{{#Full jukugo}}
Jukugo
{{Full jukugo}}
{{/Full jukugo}}
{{#Full lookalikes}}
Lookalikes
{{Full lookalikes}}
{{/Full lookalikes}}
{{#Full used In}}
Used in
{{Full used In}}
{{/Full used In}}


A confirmation email has been sent to your inbox and should arrive momentarily. Meanwhile, please tell us a little more about yourself.


Personas for Peep birdwatching app
These are the user personas for the people using our Albuquerque-focused birdwatching database app, Peep, which
allows users to add new bird encounters and review previously gathered data.
.
Casual user story
As a casual user of this website I want to be able to quickly access information about birds I encounter, add
information about where I found them, and quickly add them to my favorite list (because this stuff is fun!).
Chuck
About Chuck
- He is comfortable with technology and primarily uses a Windows desktop PC to access the internet, though
he has been known to spend downtime at work browsing on an Apple iPhone. When he observes birds (usually
alone, sometimes with a friend) in the wild, he writes the details down on a notebook and takes pictures on
a consumer-quality DSLR with a zoom lens. When he is looking up a bird (assuming he has a cell signal) he
will look it up on his iPhone.
- Chuck is a 38-year-old male, currently single (but not always so).
- He has a bachelor’s degree in accounting and currently works as a CPA for a mid-sized accounting agency.
- Originally from a suburb outside of Boston, Massachusetts, Chuck moved to Albuquerque for a job and
because he liked the area. He currently lives near the Bosque.
- His main pastime when not out birdwatching is browsing Albuquerque’s birdwatching forums and subreddit.
- He has a bachelor’s degree in accounting and currently works as a CPA for a mid-sized accounting agency.
- If you were around the watercooler with him, he might say “Last week I saw a Rivoli's Hummingbird at the
trailhead visitor center! I’m going out again this weekend with Nick from my birdwatching group. He swears
he saw a Chestnut-Sided Warbler in Bear Canyon. Not sure I believe him but I’m bringing the good zoom lens
just in case.”
Student user story
As a university student studying ornithology, I want to make use of the information gathered by citizen
scientists (and input my own) to study how many birds there are in an area and how they move over time for the
purpose of scientific study.
Kelly
About Kelly
- Like most people her age, she is very comfortable with technology. She uses her Macintosh laptop for real
scientific work and database access, but she keeps an iPad and an iPhone around for medium-size tasks and
casual reference respectively.
- Kelly is a 22-year-old UNM biology student who is interested in gathering information
about birds to study how predation, conservation, and climate change affect their population and distribution.
- She currently lives in ABQ, NM on the UNM main campus but is originally from downtown St. Louis,
Missouri.
- She wasn’t originally that interested in ornithology but through her biology studies she became interested
in population distribution and what she could learn from citizen science projects like Ebirds. She is
fascinated by the concept and thinks that it is a neat idea for democratizing scientific research.
- If you met her in the school cafeteria, she would tell you “I’m excited to see how this current heat wave has
affected the population of Ring-necked pheasants in New York. Fingers crossed we get some good data this year!”


Zend Framework
LICENSE
This source file is subject to the new BSD license that is bundled with this package in the file LICENSE.txt. It is also available through the world-wide-web at this URL: http://framework.zend.com/license/new-bsd If you did not receive a copy of the license and are unable to obtain it through the world-wide-web, please send an email to<EMAIL_ADDRESS>so we can send you a copy immediately.
Assists in constructing queries for Google Spreadsheets lists
SPREADSHEETS_LIST_FEED_URI = 'https://spreadsheets.google.com/feeds/list'
$_defaultFeedUri = 'self'
$_projection = 'full'
$_rowId = 'null'
$_spreadsheetKey = 'null'
$_visibility = 'private'
$_worksheetId = 'default'
__construct(
)
:
Constructs a new Zend_Gdata_Spreadsheets_ListQuery object.
getOrderBy(
)
:
string
Gets the orderby attribute for this query.
getProjection(
)
:
string
Gets the projection for this query.
getQueryString(
)
:
string
Gets the attribute query string for this query.
getQueryUrl(
)
:
string
Gets the full query URL for this query.
getReverse(
)
:
string
Gets the reverse attribute for this query.
getRowId(
)
:
string
Gets the row id for the query.
getSpreadsheetKey(
)
:
string
Gets the spreadsheet key for the query.
getSpreadsheetQuery(
)
:
string
Gets the spreadsheet key for this query.
getVisibility(
)
:
string
Gets the visibility for this query.
getWorksheetId(
)
:
string
Gets the worksheet id for the query.
setOrderBy(
string $value
)
:
Zend_Gdata_Spreadsheets_DocumentQuery
Sets the orderby attribute for this query.
setProjection(
string $value
)
:
Zend_Gdata_Spreadsheets_ListQuery
Sets the projection for the query.
setReverse(
string $value
)
:
Zend_Gdata_Spreadsheets_DocumentQuery
Sets the reverse attribute for this query.
setRowId(
string $value
)
:
Zend_Gdata_Spreadsheets_CellQuery
Sets the row id for the query.
setSpreadsheetKey(
string $value
)
:
Zend_Gdata_Spreadsheets_CellQuery
Sets the spreadsheet key for the query.
setSpreadsheetQuery(
string $value
)
:
Zend_Gdata_Spreadsheets_DocumentQuery
Sets the spreadsheet key for this query.
setVisibility(
string $value
)
:
Zend_Gdata_Spreadsheets_ListQuery
Sets the visibility for this query.
setWorksheetId(
string $value
)
:
Zend_Gdata_Spreadsheets_CellQuery
Sets the worksheet id for the query.


Welcome to my webpage
Hello my name is Dina Muasher I am 24 years old, I'm a Civil Engineer who graduated from the University of Jordan, I have a short experience in my major I worked as a trainee in Buthaina Tarawneh office for 6 months, I'm here beacuase I want to learn more about programming and coding also to libk this major with my major


{% extends "Base.html" %} {% block content %} add New Product New User Name: User: Password: Mail: Add User settings Manage user {% endblock %}
Name:
User:
Password:
Mail:


Please rotate your screen
To play CluckButton, you will need to rotate your screen to landscape mode.
use the
arrow keys
to move. press
space
to jump.
« Back