aweek-class.Rd
The aweek class is a character or factor in the format YYYY-Www(-d) with a "week_start" attribute containing an integer specifying which day of the ISO 8601 week each week should begin.
# S3 method for aweek print(x, ...) # S3 method for aweek [(x, i) # S3 method for aweek [[(x, i) # S3 method for aweek [(x, i) <- value # S3 method for aweek as.list(x, ...) # S3 method for aweek trunc(x, ...) # S3 method for aweek rep(x, ...) # S3 method for aweek c(..., recursive = FALSE, use.names = TRUE)
| x | an object of class |
|---|---|
| ... | a series of |
| i | index for subsetting an aweek object. |
| value | a value to add or replace in an aweek object |
| recursive, use.names | parameters passed on to |
an object of class aweek
Weeks differ in their start dates depending on context. The ISO 8601 standard specifies that Monday starts the week (https://en.wikipedia.org/wiki/ISO_week_date) while the US CDC uses Sunday as the start of the week (https://wwwn.cdc.gov/nndss/document/MMWR_Week_overview.pdf). For example, MSF has varying start dates depending on country in order to better coordinate response.
While there are packages that provide conversion for ISOweeks and epiweeks, these do not provide seamless conversion from dates to epiweeks with non-standard start dates. This package provides a lightweight utility to be able to convert each day.
Find the day of the week, relative to the week_start (d). The day of the
week (d) relative to the week start (s) is calculated using the ISO week
day (i) via d = 1L + ((i + (7L - s)) %% 7L)
.
Find the date that represents midweek (m). The date that represents
midweek is found by subtracting the day of the week (d) from 4 and
adding that number of days to the current date: m = date + (4 - d)
.
Find the week number (w) by counting the number of days since 1 January
to (m), and use integer division by 7: w = 1L + ((m - yyyy-01-01) %/% 7)
week_start
attribute indicating which ISO week day the week begins.
The precise ISO week format can be broken down like this:
YYYY is an ISO week-numbering year, which is the year relative to the week, not the day. For example, the date 2016-01-01 would be represented as 2015-W53-5 (ISO week), because while the date is in the year 2016, the week is still part of the final week of 2015.
Www is the week number, prefixed by the character "W". This ranges from 01 to 52 or 53, depending on whether or not the year has 52 or 53 weeks.
d is a digit representing the weekday where 1 represents the first
day of the week and 7 represents the last day of the week. #'
The attribute week_start
represents the first day of the week as an ISO
week day. This defaults to 1, which is Monday. If, for example, an aweek
object represented weeks starting on Friday, then the week_start
attribute would be 5, which is Friday of the ISO week.
when combining aweek objects together, you must ensure that they have
the same week_start attribute. You can use change_week_start()
to adjust
it.
#> <aweek start: Sunday> #> [1] "2018-W51-6" "2018-W51-7" "2018-W52-1" "2018-W52-2" "2018-W52-3" #> [6] "2018-W52-4" "2018-W52-5" "2018-W52-6" "2018-W52-7" "2019-W01-1" #> [11] "2019-W01-2" "2019-W01-3" "2019-W01-4" "2019-W01-5" "2019-W01-6" #> [16] "2019-W01-7" "2019-W02-1" "2019-W02-2" "2019-W02-3" "2019-W02-4" #> [21] "2019-W02-5" "2019-W02-6" "2019-W02-7" "2019-W03-1" "2019-W03-2" #> [26] "2019-W03-3" "2019-W03-4" "2019-W03-5" "2019-W03-6" "2019-W03-7" #> [31] "2019-W04-1" "2019-W04-2" "2019-W04-3" "2019-W04-4" "2019-W04-5" #> [36] "2019-W04-6" "2019-W04-7" "2019-W05-1" "2019-W05-2" "2019-W05-3"# subsetting acts as normal w[1:10]#> <aweek start: Sunday> #> [1] "2018-W51-6" "2018-W51-7" "2018-W52-1" "2018-W52-2" "2018-W52-3" #> [6] "2018-W52-4" "2018-W52-5" "2018-W52-6" "2018-W52-7" "2019-W01-1"# Combining multiple aweek objects will only work if they have the same # week_start day c(w[1], w[3], w[5], as.aweek(as.Date("2018-12-01"), week_start = "Sunday"))#> <aweek start: Sunday> #> [1] "2018-W51-6" "2018-W52-1" "2018-W52-3" "2018-W48-7"# differing week_start days will throw an error mon <- date2week(as.Date("2018-12-01"), week_start = "Monday") mon#> <aweek start: Monday> #> [1] "2018-W48-6"#> Error in c.aweek(w, mon) : #> All aweek objects must have the same week_start attribute. Please use change_week_start() to adjust the week_start attribute if you wish to combine these objects.#> <aweek start: Sunday> #> [1] "2018-W51-6" "2018-W51-7" "2018-W52-1" "2018-W52-2" "2018-W52-3" #> [6] "2018-W52-4" "2018-W52-5" "2018-W52-6" "2018-W52-7" "2019-W01-1" #> [11] "2019-W01-2" "2019-W01-3" "2019-W01-4" "2019-W01-5" "2019-W01-6" #> [16] "2019-W01-7" "2019-W02-1" "2019-W02-2" "2019-W02-3" "2019-W02-4" #> [21] "2019-W02-5" "2019-W02-6" "2019-W02-7" "2019-W03-1" "2019-W03-2" #> [26] "2019-W03-3" "2019-W03-4" "2019-W03-5" "2019-W03-6" "2019-W03-7" #> [31] "2019-W04-1" "2019-W04-2" "2019-W04-3" "2019-W04-4" "2019-W04-5" #> [36] "2019-W04-6" "2019-W04-7" "2019-W05-1" "2019-W05-2" "2019-W05-3" #> [41] "2019-W24-4"# truncated aweek objects will be un-truncated w2 <- date2week(d[1:5], week_start = "Sunday", floor_day = TRUE) w2#> <aweek start: Sunday> #> [1] "2018-W51" "2018-W51" "2018-W52" "2018-W52" "2018-W52"#> <aweek start: Sunday> #> [1] "2018-W51-6" "2018-W51-7" "2018-W52-1" "2018-W52-2" "2018-W52-3" #> [6] "2018-W51-1" "2018-W51-1" "2018-W52-1" "2018-W52-1" "2018-W52-1"


Rocket Elevators is the largest subsidiary of Rocket Corp. and specialises in the delivery of social and economic infrastructure projects, including high-rise developments, airport terminals, luxury villas and iconic landmarks.
Our Team is available 7 days a week to answer your questions!


{{> style}}
{{> nav}}Who, what, where, when, why, and how, but not in that order...
Picknic is a tool to help you find a fun place to go on a picnic!
The first prototype of Picknic was made in 24 hours by the following people at a hackathon in early 2016:
Additional help was provided by the following people:
Picknic came to existence in January, 2016.
"The first usage of the word (picnic) is traced to the 1692 edition of Tony Willis, Origines de la Langue Française, which mentions pique-nique as being of recent origin" - Wikipedia
However, "elegant meals outdoors were probably first eaten during the Middle Ages" - History.com
Most of the data is gathered from open data. For example, the first picnic table data imported in to Picknic was this dataset from the City of Edmonton.
Picknic exists because picnics with friends, family, and loved ones are fun.
Anyone can sign up and add a new picnic table they have spotted. Please consider asking your local government to support open data, especially geospatial data of assets which the public are free to use.


--- lang: en title: Translating the glossary authors: - Mor Rubinstein section: meta ---
In the old version of the handbook, the glossary was one page with all of the term in it. In the new version, we gave each glossary a webpage for better referencing and linking.<\p> Glossaries that were translated in the old version of the handbook have been transfered to the new site. Please checkCheck if your language has an old version of the glossary - . You can find them here
The old glossary format does not allow linking from the new version of the guide, and you will need to transfer the term to the new format.
Under your language folder, Follow the breadcrumb trail {{ site.github_repo }} / glossary / es /
, to the right of which is a plus symbol +
. create a folder for each term by pressing on the '+' sign and type the term name in English. The folder names should be in lower-case letters with dashes ‘-’ instead of white spaces. Add a ‘/’ in the end of the name to create a new folder.
open a new index.md file by clicking on the '+'.
In the text editor below add the front matter:--- section: terms lang: en title: Bulk ---
Change the 'lang' field to your language code. Change the title to the term title in YOUR language.
Below the front matter copy the term from the old glossary.
All done! Keep doing this until all terms got their own folder and page.
Copy the English terms directory into your target language directory in the glossary folder. This step can not be done through the Github website and you will have to fork the handbook for you machine. Information about forking and cloning can be find here . Notice, some languages have already been moved and translated. Check the folder to make sure you are not overwriting someone’s work.
Choose a term and open the index.md file.
The front matter looks as follows:
--- section: terms lang: en title: Bulk ---
Change the lang field to your language code.
Change the title to the term title in YOUR language.
In the text editor, below the front matter, enter your translation to the term.
All done! Thank you for your help!


|
The Legend of Python, Modular Interface Specification
Revison 2.2 12/5/2018
ThisProject'spurposeistore-designanopen-sourceversionofTheLegendofZelda
|
Superclass for representing a Boss. More...
Public Member Functions | |
| def | __init__ (self, x, y) |
| Constructor for Boss. More... | |
| def | checkState (self) |
| Empty function for evaluating Boss state. | |
| def | move (self) |
| Moves the Boss. More... | |
| def | bossLogic (self) |
| Empty function for logic of Boss. | |
| def | update (self) |
| Update loop for a Boss. More... | |
| def | hit (self, dir) |
| Hit dectetion for Boss. More... | |
Public Attributes | |
| image | |
| Boss Pygame surface. | |
| rect | |
| Rectanlge that represents boss. | |
| id | |
| X postion of the boss. More... | |
| isHit | |
| Wether the boss is hit or not. | |
| stuncount | |
| The amount of stun frames the boss has remaining. | |
| maxHP | |
| Boss' max health. | |
| HP | |
| Boss' current health. | |
| dmg | |
| Boss' damage. | |
| hitCount | |
| Boss' hit count. | |
| xSpeed | |
| Boss' speed in the x direction. | |
| ySpeed | |
| Boss' speed in the y direction. | |
| frameCounter | |
| Total number of frames the boss has been alive for. | |
Superclass for representing a Boss.
| def actor.boss.Boss.__init__ | ( | self, | |
| x, | |||
| y | |||
| ) |
| def actor.boss.Boss.hit | ( | self, | |
| dir | |||
| ) |
Hit dectetion for Boss.
Handles health and iframes
| def actor.boss.Boss.move | ( | self | ) |
| def actor.boss.Boss.update | ( | self | ) |
| actor.boss.Boss.id |
X postion of the boss.
Y postion of the boss Boss ID


--- layout: default title: Home ---
Warning: Change proposal submissions are closed during the review period.
Please log in (upper right corner) to propose changes to roadway segments. If you are logged in and still need access to your county's data, please email Marshall Willis.
Below you'll find a table of all proposed changes to functional classes made for roads in County. Use the Search field to search for other changes and view the contents of each change by clicking View.
If you'd like to propose a change for a road segment in County, the process starts by clicking on the road segment of interest on the map to the left.
If you know generally where the road is, try typing a city name (e.g., Snellville, GA) into the search box in the bottom left corner of the map.
Can't find the road you're looking for?
Right now this process focuses on arterials and collectors (i.e., no freeways or local roads). If you would like to propose a change for a local road or some other missing road, please email Marshall Willis.
Because many roads run across county boundaries, it's important to consider your proposed change in a regional context. Click the layers icon in the upper left corner to turn on the Entire Region layer to see how roads are classified in other counties.
Turn on the Proposed Changes layer to view changes already proposed by ARC and/or GDOT. We also strongly suggest you search for your road in the List of Proposed Changes.


Main functions
untangle2()
puts embedded subheaders into their own variable, using regular expressions to identify them.
In the data below (a subset of a bundled dataset which can be loaded with data(primates2017)
), there are rows that correspond to values in grouping variables. These should be in their own column. Instead, they are embedded within the data rectangle. This is a common practice in many disciplines. This data presentation looks OK and is easy to read, but hard to work with (for example: calculating group-wise summaries).
In this example, values for an implicit “geographic region” variable and an implicit “taxonomic family” variable are embedded in the column that contains the observational units (the scientific names of various primates).
| scientific_name | common_name | red_list_status | mass_kg |
|---|---|---|---|
| Asia | NA | NA | NA |
| CERCOPITHECIDAE | NA | NA | NA |
| Trachypithecus obscurus | Dusky Langur | NT | 7.13 |
| Presbytis sumatra | Black Sumatran Langur | EN | 6.00 |
| Rhinopithecus roxellana | Golden Snub-nosed Monkey | EN | NA |
| HYLOBATIDAE | NA | NA | NA |
| Hylobates funereus | East Bornean Gray Gibbon | EN | NA |
| Hylobates klossii | Kloss’s Gibbon | EN | 5.80 |
| Nomascus concolor | Western Black Crested Gibbon | CR | 7.71 |
For a tidier structure, the subheaders embedded in the scientific_name column need to be plucked out and placed in their own variable. This was initially the main objective of unheadr
and what untangle2()
was made for. The function can be used with magrittr
pipes as a dplyr
-type verb.
If these subheaders can be matched in bulk with a regular expression because they share a prefix, suffix, or anything in common, we can save a lot of time. Otherwise, they can be matched by name. For more details, see the examples and vignette.
The ‘untangled’ version of the data:
| scientific_name | common_name | red_list_status | mass_kg | family | region |
|---|---|---|---|---|---|
| Trachypithecus obscurus | Dusky Langur | NT | 7.13 | CERCOPITHECIDAE | Asia |
| Presbytis sumatra | Black Sumatran Langur | EN | 6.00 | CERCOPITHECIDAE | Asia |
| Rhinopithecus roxellana | Golden Snub-nosed Monkey | EN | NA | CERCOPITHECIDAE | Asia |
| Hylobates funereus | East Bornean Gray Gibbon | EN | NA | HYLOBATIDAE | Asia |
| Hylobates klossii | Kloss’s Gibbon | EN | 5.80 | HYLOBATIDAE | Asia |
| Nomascus concolor | Western Black Crested Gibbon | CR | 7.71 | HYLOBATIDAE | Asia |
Now we can easily perform grouping operations and summarize the data (e.g. calculating average body mass by Family).
This function uses regex to fix values that are broken across two rows. This usually happens when we are formatting a table and we need to fit it on a page.
# Set up a toy dataset dogsDesc <- data.frame( stringsAsFactors = FALSE, dogs = c( "Retriever", "(Golden)", "Retriever", "(Labrador)", "Bulldog", "(French)" ), coat = c("long", NA, "short", NA, "short", NA) ) dogsDesc #> dogs coat #> 1 Retriever long #> 2 (Golden) <NA> #> 3 Retriever short #> 4 (Labrador) <NA> #> 5 Bulldog short #> 6 (French) <NA>
We can match the opening brackets with regex.
unbreak_vals(df = dogsDesc, regex = "^\\(", ogcol = dogs, newcol = dogs_unbroken) #> dogs_unbroken coat #> 1 Retriever (Golden) long #> 2 Retriever (Labrador) short #> 3 Bulldog (French) short
Use this function to unwrap and glue values that have been wrapped across multiple rows for presentation purposes, with an inconsistent number of empty or NA
values padding out the columns.
# Set up the data nyk <- data.frame( stringsAsFactors = FALSE, player = c( "Marcus Camby", NA, NA, NA, NA, NA, NA, "Allan Houston", NA, "Latrell Sprewell", NA, NA ), listed_height_m. = c( 2.11, NA, NA, NA, NA, NA, NA, 1.98, NA, 1.96, NA, NA ), teams_chronological = c( "Raptors", "Knicks", "Nuggets", "Clippers", "Trail Blazers", "Rockets", "Knicks", "Pistons", "Knicks", "Warriors", "Knicks", "Timberwolves" ), position = c( "Power forward", "Center", NA, NA, NA, NA, NA, "Shooting guard", NA, "Small forward", NA, NA ) ) nyk #> player listed_height_m. teams_chronological position #> 1 Marcus Camby 2.11 Raptors Power forward #> 2 <NA> NA Knicks Center #> 3 <NA> NA Nuggets <NA> #> 4 <NA> NA Clippers <NA> #> 5 <NA> NA Trail Blazers <NA> #> 6 <NA> NA Rockets <NA> #> 7 <NA> NA Knicks <NA> #> 8 Allan Houston 1.98 Pistons Shooting guard #> 9 <NA> NA Knicks <NA> #> 10 Latrell Sprewell 1.96 Warriors Small forward #> 11 <NA> NA Knicks <NA> #> 12 <NA> NA Timberwolves <NA>
Unwrap the elements in the variable that defines the groups, separating with commas.
unwrap_cols(nyk, groupingVar = player, separator = ", ") #> # A tibble: 3 x 4 #> player listed_height_m. teams_chronological position #> <chr> <chr> <chr> <chr> #> 1 Marcus Ca… 2.11 Raptors, Knicks, Nuggets, Clippers,… Power forwar… #> 2 Allan Hou… 1.98 Pistons, Knicks Shooting gua… #> 3 Latrell S… 1.96 Warriors, Knicks, Timberwolves Small forward
This function merges sets of two contiguous rows upwards by pasting the values of the lagging row to the values of the leading row (identified using regular expressions).
The following table of basketball records has two sets of header rows with values broken across two contiguous rows.
bball <- data.frame( stringsAsFactors = FALSE, v1 = c( "Player", NA, "Sleve McDichael", "Dean Wesrey", "Karl Dandleton", "Player", NA, "Mike Sernandez", "Glenallen Mixon", "Rey McSriff" ), v2 = c( "Most points", "in a game", "55", "43", "41", "Most varsity", "games played", "111", "109", "104" ), v3 = c( "Season", "(year ending)", "2001", "2000", "2010", "Season", "(year ending)", "2005", "2004", "2002" ) )
unbreak_rows()
merges these rows if we can match them with a common pattern.
# Match with regex on variable v2 unbreak_rows(bball, regex = "^Most", ogcol = v2) #> 2 matches #> v1 v2 v3 #> 1 Player Most points in a game Season (year ending) #> 2 Sleve McDichael 55 2001 #> 3 Dean Wesrey 43 2000 #> 4 Karl Dandleton 41 2010 #> 5 Player Most varsity games played Season (year ending) #> 6 Mike Sernandez 111 2005 #> 7 Glenallen Mixon 109 2004 #> 8 Rey McSriff 104 2002
When column names are broken up across the top n rows of a data frame or tibble, mash_colnames()
makes many header rows into column names. Existing names can be kept or ignored.
# Data with broken headers babies <- data.frame( stringsAsFactors = FALSE, Baby = c(NA, NA, "Angie", "Yean", "Pierre"), Age = c("in", "months", "11", "9", "7"), Weight = c("kg", NA, "2", "3", "4"), Ward = c(NA, NA, "A", "B", "C") ) babies #> Baby Age Weight Ward #> 1 <NA> in kg <NA> #> 2 <NA> months <NA> <NA> #> 3 Angie 11 2 A #> 4 Yean 9 3 B #> 5 Pierre 7 4 C
# Mash, including the object names mash_colnames(babies, n_name_rows = 2, keep_names = TRUE) #> Baby Age_in_months Weight_kg Ward #> 3 Angie 11 2 A #> 4 Yean 9 3 B #> 5 Pierre 7 4 C
For inputs with ragged column names (NA values in the first row), the first row can be filled row-wise before mashing.
# Data with ragged headers survey <- data.frame( stringsAsFactors = FALSE, X1 = c("Participant", NA, "12", "34", "45", "123"), X2 = c( "How did you hear about us?", "TV", "TRUE", "FALSE", "FALSE", "FALSE" ), X3 = c(NA, "Social Media", "FALSE", "TRUE", "FALSE", "FALSE"), X4 = c(NA, "Radio", "FALSE", "TRUE", "FALSE", "TRUE"), X5 = c(NA, "Flyer", "FALSE", "FALSE", "FALSE", "FALSE"), X6 = c("Age", NA, "31", "23", "19", "24") ) survey #> X1 X2 X3 X4 X5 X6 #> 1 Participant How did you hear about us? <NA> <NA> <NA> Age #> 2 <NA> TV Social Media Radio Flyer <NA> #> 3 12 TRUE FALSE FALSE FALSE 31 #> 4 34 FALSE TRUE TRUE FALSE 23 #> 5 45 FALSE FALSE FALSE FALSE 19 #> 6 123 FALSE FALSE TRUE FALSE 24
# Ignoring names and using sliding headers mash_colnames(survey,2,keep_names = FALSE,sliding_headers = TRUE, sep = "_") #> Participant How did you hear about us?_TV #> 3 12 TRUE #> 4 34 FALSE #> 5 45 FALSE #> 6 123 FALSE #> How did you hear about us?_Social Media How did you hear about us?_Radio #> 3 FALSE FALSE #> 4 TRUE TRUE #> 5 FALSE FALSE #> 6 FALSE TRUE #> How did you hear about us?_Flyer Age #> 3 FALSE 31 #> 4 FALSE 23 #> 5 FALSE 19 #> 6 FALSE 24
annotate_mf()
and annotate_mf_all()
Sometimes embedded subheaders can’t be matched by content or context, but they share the same formatting in a spreadsheet file.
annotate_mf()
flattens four common approaches to confer meaningful formatting to cells and adds this as a character string to the target variable.
example_spreadsheet <- system.file("extdata/dog_test.xlsx", package = "unheadr") annotate_mf(example_spreadsheet,orig = Task, new=Task_annotated)
annotate_mf_all()
applies the same approach to all values in the dataset.
example_spreadsheet_all <- system.file("extdata/boutiques.xlsx", package = "unheadr") annotate_mf(example_spreadsheet_all)
Lastly, regex_valign()
can adjust the whitespace (padding) within a character vector with one element per line, for easier parsing with readr
.
guests <- unlist(strsplit(c("6 COAHUILA 20/03/2020 712 COAHUILA 20/03/2020"),"\n")) guests #> [1] "6 COAHUILA 20/03/2020" #> [2] "712 COAHUILA 20/03/2020" regex_valign(guests, "\\b(?=[A-Z])") #> [1] "6 COAHUILA 20/03/2020" #> [2] "712 COAHUILA 20/03/2020"
The inconsistent whitespace between the elements in each line can be adjusted after matching a position of interest through regular expressions.


--- layout: post title: Flutter - Beautiful native apps in record time date: '2019-12-25T15:54:00.004+05:30' author: Sahil Rajput tags: modified_time: '2019-12-25T15:55:03.887+05:30' blogger_id: tag:blogger.com,1999:blog-5250005448924290719.post-1603294110895600168 blogger_orig_url: https://www.jaadujinn.ml/2019/12/flutter-beautiful-native-apps-in-record.html ---


{{ data.profile.description }}
{{ item.description }}
{% if item.link %} {% endif %}For a detailed reference about this section, please visit this link.
{% endif %} {% endfor %}{{ item.gpa }}
For a detailed reference about this section, please visit this link.
{% endif %} {% endfor %}For a detailed reference about this section, please visit this link.
{% endif %} {% endfor %}Some of my most recent talks and workshops are...
(More talks have happened between those dates –most of them about AI–, I'm only adding the most relevant ones in that period of time.)
For a detailed reference about this section, please visit this link.
{% endif %}This section contains awesome projects that I've developed:
{{ item.description }}
{% for tag in item.tags %} {{ tag }} {% endfor %}
This Flask template was built with by Rodolfo Ferro, under a MIT License.


| Figure 1 |
Distribution of giant pandas in Qinling Mountains |
| Figure 2 |
Results of Maxent models: (a) Jackknife test of variable imp ... |
| Figure 3 |
Predicted current and the 2050s’ suitable habitat for giant ... |
| Figure 4 |
Gap analysis of the giant panda in Qinling Mountains. Codes ... |
| Figure 5 |
Vulnerability analysis of giant panda suitable habitat in Qi ... |
| Figure 6 |
Protection gaps and habitat corridors giant pandas in Qinlin ... |


DUNDALK CRIME
Burglars targeted homes in Haggardstown and Greenacres in Dundalk
by Tia ClarkeA home which was undergoing renovations was broken into in Greenacres around 6am on Thursday, October 31.
Access was gained through the garage and building equipment was stolen.
Gardaí located a few of the items in a nearby location and returned them to the owners.
Meanwhile, a garage was broken into in Haggardstown on Saturday, November 2.
Several pieces of gardening equipment were taken.


EBD - Easton Bible DIctionary
Coele-syria
COELE-SYRIA
"COELE-SYRIA "hollow Syria, the name (not found in Scripture) given by the Greeks to the extensive valley, about 100 miles long, between the Lebanon and the Anti-Lebanon range of mountains.
"COELE-SYRIA "hollow Syria, the name (not found in Scripture) given by the Greeks to the extensive valley, about 100 miles long, between the Lebanon and the Anti-Lebanon range of mountains.


Reveries
Thoughts, stories and ideas.
IDEAS
What language do we think in? Does language shape our thoughts or thoughts are abstract in nature which we manifest effectively using language?
3 MIN READ
PROGRAMMING
How to create a real-time map showing the spread of covid-19 virus.
5 MIN READ
A post page consisting of my internship report at Saha Institute of Nuclear Physics, on the study of properties of a Glow Discharge plasma system.
15 MIN READ
A blog post about Java concurrency covering volatile and atomic keyword and what problems they address.
STUFFS
A blog post about books I have read and what I have felt after reading them, and my ratings out of 5.
A post documenting the 2020 pandemic COVID-19. An ambitious fight towards new normalcy
7 MIN READ
Reveries by Utsab Chowdhury
Made with Tailwind CSS version of Ghost's Casper theme by TailwindToolbox.com


Mid Feb. 2004 was my last experience with Salvia to date. I tend to gravitate towards my 1/4 ounce I bought off a Hawaiian supplier in 2001 every 6 months or so. That equates to roughly 6 times I've smoked it. I now have enough left for one more trip, as I've given away a few leaves here and there to people who were interested in trying it. I've read reports that say the active psychedelic (or whatever it is) ingredient dies off over time due to oxidation. I've kept the leaves in a glass jar, in a wooden box. It seems to have all the potency of when I first opened the package in 2001.
Each experience with Salvia is very similar to many other trip reports that I have read, well, not as a whole, but certain elements. Things like breaking through a 'membrane' while sitting staring throught a wall at the splendor or just unknown. But even 1 leaf can spin me right out into a detached state, just by holding the smoke in my lungs longer.
Spinning seems to be a good adjective for what happens, as each time, there seems to be a rushing and spinning sensation early on, and the last trip, off of 1 leaf, I had the feeling of my breathing stopping, but when I think about it, I just couldn't swallow, which shows an auto action towards disconnecting from auto physical functions, but our bodies do maintain, just like higher levels of Yoga meditation. I've never even come close to reaching these plains with yoga, but what I've read, it seems remarkably close.
Ok, so the spinning aspect, one time it involved seeing my Teeth, filling up the room, then spiralling into infiinty. This last time I smoked, I had the unique, but familiar feeling of a tearing sensation, and some very intersting audio colour distortions which always accompany the trip. Then I watched my body, but I did not see me. It looked like a maztec style, or very geometric shape of a man, come out of me, from my right side, and spiral, counter clockwise, into a madlebot, but not like one. Very hard to describe but they did get smaller, and it was animated..walking..away..spinning..shrinking. My hyphothesis on that is my ego, or my 'self', disconnecting with every moment, leaving... it's the past..disappearing in front of me, which I'm aware of normally, but not in a visual state such as this.
I'm an artist, and I've been working on interpretations of various experiences.. it seems very hard to come up with something similar experience, but I hope to finish something, and I shall share the art with this web site. I think alot of brazilian/maztec/ancient cultures of south america, mexico, ect, have very good interpretations, even if they were not on salvia, possibly other psychedelics. This last time, I was also testing my ability to control what was happening, but it's fruitless. It just seems to make things harsh, and kinda out of control, so I gotta just give in.
I have much faith in this being a substance to help with many disturbances that may occur around someone's own energy field, as I feel it opens up the dimension to see what it could be that's there. But I also believe that you must approach it with caution, and patience. I've never done more than 2 leaves within a time span of 2 hours, as I don't feel I've needed to. I have a fairly clean system, and I'm very senstive to many things, and I've noticed people who drink too much alcohol, or smoke cigarettes, never even have any connection with salvia when they smoke it. This is a powerful plant given to us by nature, and we must respect it. Patience is a virtue, because in Salvia 'time' there is no 'time'.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


05 July 1996
Disease Outbreak Reported
An outbreak of cholera has been reported which began in April in Bandundu town and surrounding areas in the Region of Bandundu. A total of 821 cases with 179 deaths were reported from mid-April to the end of May. The Minister of Public Health formed a team, including two WHO experts, which visited the affected area. The mission was to confirm the diagnosis, evaluate the epidemiological situation, ensure the local teams were sufficiently trained and to organize and coordinate control activities. Although the epidemic in Bandundu town appears to have been controlled there is still a danger of spread in the surrounding areas along the rivers where water traffic is intense and close contact inevitable.


TIES Schema Converter¶
Install Schema Converter¶
The Java and Python implementations of the TIES Schema Converter are distributed as part of each TIES release.
Java¶
The Java TIES converter requires Java 1.7 or 1.8. To install the converter:
Copy the *.zip or *.tgz archive from TIES_RELEASE_DIR/java/distributions to the desired install location
Extract the *.zip or *.tgz archive
Add the bin directory of the extracted archive to your PATH
Python¶
The Python TIES converter requires Python 2.7 or Python 3.4+ with pip installed.
To install the converter:
pip install ties-lib==0.9.1
Usage¶
usage: ties-convert [-h] [--version] [--classification-level SECURITY_TAG] [--output-file OUTPUT_FILE | --in-place] EXPORT_PATH
Converts TIES export.json files from older versions of the schema (0.1.8, 0.2,
0.3, 0.4, 0.5, 0.6, 0.7, 0.8) to the current version (0.9).
positional arguments:
EXPORT_PATH the path to the TIES JSON file or - to read from stdin
optional arguments:
-h, --help show this help message and exit
--classification-level SECURITY_TAG, -c SECURITY_TAG
the classification level of the TIES JSON, required
for TIES JSON from pre-0.3 versions of the schema
--output-file OUTPUT_FILE, -f OUTPUT_FILE
the output file path for the converted TIES JSON
--in-place, -i modifies the input file in-place, overwriting it with
the converted JSON data
--version prints version information
Examples¶
Convert TIES JSON from stdin, write to stdout:
cat export.json | ties-convert -
Convert TIES JSON (without top-level securityTag field) from stdin, write to stdout:
cat export.json | ties-convert - -c UNCLASSIFIED
Convert TIES JSON from stdin, write to a file:
cat export.json | ties-convert - -f export.converted.json
Convert TIES JSON (without top-level securityTag field) from stdin, write to a file:
cat export.json | ties-convert - -c UNCLASSIFIED -f export.converted.json
Convert TIES JSON from file, write to stdout:
ties-convert export.json
Convert TIES JSON (without top-level securityTag field) from file, write to stdout:
ties-convert export.json -c UNCLASSIFIED
Convert TIES JSON from file, write to a different file:
ties-convert export.json -f export.converted.json
Convert TIES JSON (without top-level securityTag field) from file, write to a different file:
ties-convert export.json -f export.converted.json -c UNCLASSIFIED
Convert TIES JSON from file, write to the same file:
ties-convert export.json -i
Convert TIES JSON (without top-level securityTag field) from file, write to the same file:
ties-convert export.json -i -c UNCLASSIFIED


Preparation time
less than 30 mins
Cooking time
10 to 30 mins
Serves
Serves 4
Cut the pork into slices about 7mm/¾ in thick.
Pour a little oil into a very hot frying pan, sauté the pork pieces, until brown on both sides. Remove to a plate a keep warm.
Add a little more butter to the pan and cook onions gently until soft and golden.
Deglaze the pan with wine and bring to the boil, add the stock and boil again to reduce by a quarter.
Meanwhile sauté the mushrooms in batches with a little butter and oil and add to the pork.
Add the cream to the sauce, bring back to the boil and thicken with a little roux.
Add the cooked pork and mushrooms to the sauce and all the juices.
Add a little lemon juice and simmer gently for a couple of minutes. Dip the tip of the croutons in the sauce then into the chopped parsley, add the remainder of the parsley to the sauce.
Pour into hot serving dishes and garnish with crisp croutons.


This text coming at you from a template!
I am located in content/themes/dev/assets/templates/flooglizr.js


4 tables
- per month
- 8 GB storage
- Enhanced security
- Real time operation
- Unlimited users
- per month
- 8 GB storage
- Enhanced security
- Real time operation
- Unlimited users
- per month
- 8 GB storage
- Enhanced security
- Real time operation
- Unlimited users
- per month
- 8 GB storage
- Enhanced security
- Real time operation
- Unlimited users
3 tables
- per month
- 8 GB storage
- Enhanced security
- Real time operation
- Unlimited users
- per month
- 8 GB storage
- Enhanced security
- Real time operation
- Unlimited users
- per month
- 8 GB storage
- Enhanced security
- Real time operation
- Unlimited users


| PostgreSQL 9.0.10 Documentation | ||||
|---|---|---|---|---|
| Prev | Up | Appendix F. Additional Supplied Modules | Next |
The pgcrypto module provides cryptographic functions for PostgreSQL.
digest()
digest(data text, type text) returns bytea digest(data bytea, type text) returns bytea
Computes a binary hash of the given data. type is the algorithm to use. Standard algorithms are md5, sha1, sha224, sha256, sha384 and sha512. If pgcrypto was built with OpenSSL, more algorithms are available, as detailed in Table F-18.
If you want the digest as a hexadecimal string, use
encode()
on the result. For example:
CREATE OR REPLACE FUNCTION sha1(bytea) returns text AS $$ SELECT encode(digest($1, 'sha1'), 'hex') $$ LANGUAGE SQL STRICT IMMUTABLE;
hmac()
hmac(data text, key text, type text) returns bytea hmac(data bytea, key text, type text) returns bytea
Calculates hashed MAC for data with key key.
type is the same as in digest()
.
This is similar to digest()
but the hash can only be
recalculated knowing the key. This prevents the scenario of someone
altering data and also changing the hash to match.
If the key is larger than the hash block size it will first be hashed and the result will be used as key.
The functions crypt()
and gen_salt()
are specifically designed for hashing passwords.
crypt()
does the hashing and gen_salt()
prepares algorithm parameters for it.
The algorithms in crypt()
differ from usual hashing algorithms
like MD5 or SHA1 in the following respects:
They are slow. As the amount of data is so small, this is the only way to make brute-forcing passwords hard.
They use a random value, called the salt, so that users having the same password will have different encrypted passwords. This is also an additional defense against reversing the algorithm.
They include the algorithm type in the result, so passwords hashed with different algorithms can co-exist.
Some of them are adaptive — that means when computers get faster, you can tune the algorithm to be slower, without introducing incompatibility with existing passwords.
Table F-15 lists the algorithms
supported by the crypt()
function.
Table F-15. Supported algorithms for crypt()
| Algorithm | Max password length | Adaptive? | Salt bits | Description |
|---|---|---|---|---|
| bf | 72 | yes | 128 | Blowfish-based, variant 2a |
| md5 | unlimited | no | 48 | MD5-based crypt |
| xdes | 8 | yes | 24 | Extended DES |
| des | 8 | no | 12 | Original UNIX crypt |
crypt()
crypt(password text, salt text) returns text
Calculates a crypt(3)-style hash of password.
When storing a new password, you need to use
gen_salt()
to generate a new salt value.
To check a password, pass the stored hash value as salt,
and test whether the result matches the stored value.
Example of setting a new password:
UPDATE ... SET pswhash = crypt('new password', gen_salt('md5'));
Example of authentication:
SELECT pswhash = crypt('entered password', pswhash) FROM ... ;
This returns true if the entered password is correct.
gen_salt()
gen_salt(type text [, iter_count integer ]) returns text
Generates a new random salt string for use in crypt()
.
The salt string also tells crypt()
which algorithm to use.
The type parameter specifies the hashing algorithm. The accepted types are: des, xdes, md5 and bf.
The iter_count parameter lets the user specify the iteration count, for algorithms that have one. The higher the count, the more time it takes to hash the password and therefore the more time to break it. Although with too high a count the time to calculate a hash may be several years — which is somewhat impractical. If the iter_count parameter is omitted, the default iteration count is used. Allowed values for iter_count depend on the algorithm and are shown in Table F-16.
For xdes there is an additional limitation that the iteration count must be an odd number.
To pick an appropriate iteration count, consider that the original DES crypt was designed to have the speed of 4 hashes per second on the hardware of that time. Slower than 4 hashes per second would probably dampen usability. Faster than 100 hashes per second is probably too fast.
Table F-17 gives an overview of the relative slowness
of different hashing algorithms.
The table shows how much time it would take to try all
combinations of characters in an 8-character password, assuming
that the password contains either only lower case letters, or
upper- and lower-case letters and numbers.
In the crypt-bf entries, the number after a slash is
the iter_count parameter of
gen_salt
.
Table F-17. Hash algorithm speeds
| Algorithm | Hashes/sec | For [a-z] | For [A-Za-z0-9] |
|---|---|---|---|
| crypt-bf/8 | 28 | 246 years | 251322 years |
| crypt-bf/7 | 57 | 121 years | 123457 years |
| crypt-bf/6 | 112 | 62 years | 62831 years |
| crypt-bf/5 | 211 | 33 years | 33351 years |
| crypt-md5 | 2681 | 2.6 years | 2625 years |
| crypt-des | 362837 | 7 days | 19 years |
| sha1 | 590223 | 4 days | 12 years |
| md5 | 2345086 | 1 day | 3 years |
Notes:
The machine used is a 1.5GHz Pentium 4.
crypt-des and crypt-md5 algorithm numbers are taken from John the Ripper v1.6.38 -test output.
md5 numbers are from mdcrack 1.2.
sha1 numbers are from lcrack-20031130-beta.
crypt-bf numbers are taken using a simple program that loops over 1000 8-character passwords. That way I can show the speed with different numbers of iterations. For reference: john -test shows 213 loops/sec for crypt-bf/5. (The very small difference in results is in accordance with the fact that the crypt-bf implementation in pgcrypto is the same one used in John the Ripper.)
Note that "try all combinations" is not a realistic exercise. Usually password cracking is done with the help of dictionaries, which contain both regular words and various mutations of them. So, even somewhat word-like passwords could be cracked much faster than the above numbers suggest, while a 6-character non-word-like password may escape cracking. Or not.
The functions here implement the encryption part of the OpenPGP (RFC 4880) standard. Supported are both symmetric-key and public-key encryption.
An encrypted PGP message consists of 2 parts, or packets:
Packet containing a session key — either symmetric-key or public-key encrypted.
Packet containing data encrypted with the session key.
When encrypting with a symmetric key (i.e., a password):
The given password is hashed using a String2Key (S2K) algorithm. This is
rather similar to crypt()
algorithms — purposefully
slow and with random salt — but it produces a full-length binary
key.
If a separate session key is requested, a new random key will be generated. Otherwise the S2K key will be used directly as the session key.
If the S2K key is to be used directly, then only S2K settings will be put into the session key packet. Otherwise the session key will be encrypted with the S2K key and put into the session key packet.
When encrypting with a public key:
A new random session key is generated.
It is encrypted using the public key and put into the session key packet.
In either case the data to be encrypted is processed as follows:
Optional data-manipulation: compression, conversion to UTF-8, and/or conversion of line-endings.
The data is prefixed with a block of random bytes. This is equivalent to using a random IV.
An SHA1 hash of the random prefix and data is appended.
All this is encrypted with the session key and placed in the data packet.
pgp_sym_encrypt()
pgp_sym_encrypt(data text, psw text [, options text ]) returns bytea pgp_sym_encrypt_bytea(data bytea, psw text [, options text ]) returns bytea
Encrypt data with a symmetric PGP key psw. The options parameter can contain option settings, as described below.
pgp_sym_decrypt()
pgp_sym_decrypt(msg bytea, psw text [, options text ]) returns text pgp_sym_decrypt_bytea(msg bytea, psw text [, options text ]) returns bytea
Decrypt a symmetric-key-encrypted PGP message.
Decrypting bytea data with pgp_sym_decrypt
is disallowed.
This is to avoid outputting invalid character data. Decrypting
originally textual data with pgp_sym_decrypt_bytea
is fine.
The options parameter can contain option settings, as described below.
pgp_pub_encrypt()
pgp_pub_encrypt(data text, key bytea [, options text ]) returns bytea pgp_pub_encrypt_bytea(data bytea, key bytea [, options text ]) returns bytea
Encrypt data with a public PGP key key. Giving this function a secret key will produce a error.
The options parameter can contain option settings, as described below.
pgp_pub_decrypt()
pgp_pub_decrypt(msg bytea, key bytea [, psw text [, options text ]]) returns text pgp_pub_decrypt_bytea(msg bytea, key bytea [, psw text [, options text ]]) returns bytea
Decrypt a public-key-encrypted message. key must be the secret key corresponding to the public key that was used to encrypt. If the secret key is password-protected, you must give the password in psw. If there is no password, but you want to specify options, you need to give an empty password.
Decrypting bytea data with pgp_pub_decrypt
is disallowed.
This is to avoid outputting invalid character data. Decrypting
originally textual data with pgp_pub_decrypt_bytea
is fine.
The options parameter can contain option settings, as described below.
pgp_key_id()
pgp_key_id(bytea) returns text
pgp_key_id
extracts the key ID of a PGP public or secret key.
Or it gives the key ID that was used for encrypting the data, if given
an encrypted message.
It can return 2 special key IDs:
SYMKEY
The message is encrypted with a symmetric key.
ANYKEY
The message is public-key encrypted, but the key ID has been removed. That means you will need to try all your secret keys on it to see which one decrypts it. pgcrypto itself does not produce such messages.
Note that different keys may have the same ID. This is rare but a normal event. The client application should then try to decrypt with each one, to see which fits — like handling ANYKEY.
armor()
, dearmor()
armor(data bytea) returns text dearmor(data text) returns bytea
These functions wrap/unwrap binary data into PGP ASCII-armor format, which is basically Base64 with CRC and additional formatting.
Options are named to be similar to GnuPG. An option's value should be given after an equal sign; separate options from each other with commas. For example:
pgp_sym_encrypt(data, psw, 'compress-algo=1, cipher-algo=aes256')
All of the options except convert-crlf apply only to encrypt functions. Decrypt functions get the parameters from the PGP data.
The most interesting options are probably compress-algo and unicode-mode. The rest should have reasonable defaults.
Which cipher algorithm to use.
Values: bf, aes128, aes192, aes256 (OpenSSL-only: 3des, cast5)
Default: aes128
Applies to: pgp_sym_encrypt, pgp_pub_encrypt
Which compression algorithm to use. Only available if PostgreSQL was built with zlib.
Values:
0 - no compression
1 - ZIP compression
2 - ZLIB compression (= ZIP plus meta-data and block CRCs)
Default: 0
Applies to: pgp_sym_encrypt, pgp_pub_encrypt
How much to compress. Higher levels compress smaller but are slower. 0 disables compression.
Values: 0, 1-9
Default: 6
Applies to: pgp_sym_encrypt, pgp_pub_encrypt
Whether to convert \n into \r\n when encrypting and \r\n to \n when decrypting. RFC 4880 specifies that text data should be stored using \r\n line-feeds. Use this to get fully RFC-compliant behavior.
Values: 0, 1
Default: 0
Applies to: pgp_sym_encrypt, pgp_pub_encrypt, pgp_sym_decrypt, pgp_pub_decrypt
Do not protect data with SHA-1. The only good reason to use this option is to achieve compatibility with ancient PGP products, predating the addition of SHA-1 protected packets to RFC 4880. Recent gnupg.org and pgp.com software supports it fine.
Values: 0, 1
Default: 0
Applies to: pgp_sym_encrypt, pgp_pub_encrypt
Use separate session key. Public-key encryption always uses a separate session key; this is for symmetric-key encryption, which by default uses the S2K key directly.
Values: 0, 1
Default: 0
Applies to: pgp_sym_encrypt
Which S2K algorithm to use.
Values:
0 - Without salt. Dangerous!
1 - With salt but with fixed iteration count.
3 - Variable iteration count.
Default: 3
Applies to: pgp_sym_encrypt
Which digest algorithm to use in S2K calculation.
Values: md5, sha1
Default: sha1
Applies to: pgp_sym_encrypt
Which cipher to use for encrypting separate session key.
Values: bf, aes, aes128, aes192, aes256
Default: use cipher-algo
Applies to: pgp_sym_encrypt
Whether to convert textual data from database internal encoding to UTF-8 and back. If your database already is UTF-8, no conversion will be done, but the message will be tagged as UTF-8. Without this option it will not be.
Values: 0, 1
Default: 0
Applies to: pgp_sym_encrypt, pgp_pub_encrypt
To generate a new key:
gpg --gen-key
The preferred key type is "DSA and Elgamal".
For RSA encryption you must create either DSA or RSA sign-only key as master and then add an RSA encryption subkey with gpg --edit-key.
To list keys:
gpg --list-secret-keys
To export a public key in ASCII-armor format:
gpg -a --export KEYID > public.key
To export a secret key in ASCII-armor format:
gpg -a --export-secret-keys KEYID > secret.key
You need to use dearmor()
on these keys before giving them to
the PGP functions. Or if you can handle binary data, you can drop
-a from the command.
For more details see man gpg, The GNU Privacy Handbook and other documentation on http://www.gnupg.org.
No support for signing. That also means that it is not checked whether the encryption subkey belongs to the master key.
No support for encryption key as master key. As such practice is generally discouraged, this should not be a problem.
No support for several subkeys. This may seem like a problem, as this is common practice. On the other hand, you should not use your regular GPG/PGP keys with pgcrypto, but create new ones, as the usage scenario is rather different.
These functions only run a cipher over data; they don't have any advanced features of PGP encryption. Therefore they have some major problems:
They use user key directly as cipher key.
They don't provide any integrity checking, to see if the encrypted data was modified.
They expect that users manage all encryption parameters themselves, even IV.
They don't handle text.
So, with the introduction of PGP encryption, usage of raw encryption functions is discouraged.
encrypt(data bytea, key bytea, type text) returns bytea decrypt(data bytea, key bytea, type text) returns bytea encrypt_iv(data bytea, key bytea, iv bytea, type text) returns bytea decrypt_iv(data bytea, key bytea, iv bytea, type text) returns bytea
Encrypt/decrypt data using the cipher method specified by type. The syntax of the type string is:
algorithm [ - mode ] [ /pad: padding ]
where algorithm is one of:
bf — Blowfish
aes — AES (Rijndael-128)
and mode is one of:
cbc — next block depends on previous (default)
ecb — each block is encrypted separately (for testing only)
and padding is one of:
pkcs — data may be any length (default)
none — data must be multiple of cipher block size
So, for example, these are equivalent:
encrypt(data, 'fooz', 'bf') encrypt(data, 'fooz', 'bf-cbc/pad:pkcs')
In encrypt_iv
and decrypt_iv
, the
iv parameter is the initial value for the CBC mode;
it is ignored for ECB.
It is clipped or padded with zeroes if not exactly block size.
It defaults to all zeroes in the functions without this parameter.
gen_random_bytes(count integer) returns bytea
Returns count cryptographically strong random bytes. At most 1024 bytes can be extracted at a time. This is to avoid draining the randomness generator pool.
pgcrypto configures itself according to the findings of the main PostgreSQL configure script. The options that affect it are --with-zlib and --with-openssl.
When compiled with zlib, PGP encryption functions are able to compress data before encrypting.
When compiled with OpenSSL, there will be more algorithms available. Also public-key encryption functions will be faster as OpenSSL has more optimized BIGNUM functions.
Table F-18. Summary of functionality with and without OpenSSL
| Functionality | Built-in | With OpenSSL |
|---|---|---|
| MD5 | yes | yes |
| SHA1 | yes | yes |
| SHA224/256/384/512 | yes | yes (Note 1) |
| Other digest algorithms | no | yes (Note 2) |
| Blowfish | yes | yes |
| AES | yes | yes (Note 3) |
| DES/3DES/CAST5 | no | yes |
| Raw encryption | yes | yes |
| PGP Symmetric encryption | yes | yes |
| PGP Public-Key encryption | yes | yes |
Notes:
SHA2 algorithms were added to OpenSSL in version 0.9.8. For older versions, pgcrypto will use built-in code.
Any digest algorithm OpenSSL supports is automatically picked up. This is not possible with ciphers, which need to be supported explicitly.
AES is included in OpenSSL since version 0.9.7. For older versions, pgcrypto will use built-in code.
As is standard in SQL, all functions return NULL, if any of the arguments are NULL. This may create security risks on careless usage.
All pgcrypto functions run inside the database server. That means that all the data and passwords move between pgcrypto and client applications in clear text. Thus you must:
Connect locally or use SSL connections.
Trust both system and database administrator.
If you cannot, then better do crypto inside client application.
http://www.gnupg.org/gph/en/manual.html
The GNU Privacy Handbook.
http://www.openwall.com/crypt/
Describes the crypt-blowfish algorithm.
http://www.stack.nl/~galactus/remailers/passphrase-faq.html
How to choose a good password.
http://world.std.com/~reinhold/diceware.html
Interesting idea for picking passwords.
http://www.interhack.net/people/cmcurtin/snake-oil-faq.html
Describes good and bad cryptography.
http://www.ietf.org/rfc/rfc4880.txt
OpenPGP message format.
http://www.ietf.org/rfc/rfc1321.txt
The MD5 Message-Digest Algorithm.
http://www.ietf.org/rfc/rfc2104.txt
HMAC: Keyed-Hashing for Message Authentication.
http://www.usenix.org/events/usenix99/provos.html
Comparison of crypt-des, crypt-md5 and bcrypt algorithms.
http://csrc.nist.gov/cryptval/des.htm
Standards for DES, 3DES and AES.
http://en.wikipedia.org/wiki/Fortuna_(PRNG)
Description of Fortuna CSPRNG.
Jean-Luc Cooke Fortuna-based /dev/random driver for Linux.
http://research.cyber.ee/~lipmaa/crypto/
Collection of cryptology pointers.
Marko Kreen<EMAIL_ADDRESS>pgcrypto uses code from the following sources:
| Algorithm | Author | Source origin |
|---|---|---|
| DES crypt | David Burren and others | FreeBSD libcrypt |
| MD5 crypt | Poul-Henning Kamp | FreeBSD libcrypt |
| Blowfish crypt | Solar Designer | www.openwall.com |
| Blowfish cipher | Simon Tatham | PuTTY |
| Rijndael cipher | Brian Gladman | OpenBSD sys/crypto |
| MD5 and SHA1 | WIDE Project | KAME kame/sys/crypto |
| SHA256/384/512 | Aaron D. Gifford | OpenBSD sys/crypto |
| BIGNUM math | Michael J. Fromberger | dartmouth.edu/~sting/sw/imath |


Having a proper marketing plan in place for your brand is like having a clearly marked treasure map. W e help our client define their goals and put in place action plans to achieve them. Our submitted marketing plans aren’t typical once of f documents, but rather an itinerary for a journey that we undertake with our clients. Call on us to define, develop and implement your marketing plan and provide best practices for stewardship of your brand.
Whatever your print/advertising requirements are, we have the talent, skills and tools to produce world class material. Our expertise ranges from design, corporate identity design, outdoor or magazine advertising design to flyer and poster designs. There is no limit to what we can produce.


14Though it is very unclear what a proper economic interpretation of negative consumption might be – this is an important reason why CARA utility, like quadratic utility, is increasingly not used for serious quantitative work, though it is still useful for teaching purposes.


Sprint 9.3 Leadership
I have had a number of compassionate managers throughout my career...
Hey people, thanks for taking the time to joining me in Phase 0 of my Enspiral Dev Academy journal to becoming a Javascript developer.
I hope you enjoy the reading and hopefully get inspired to maybe one day take your own journey with Enspiral Dev Academy.
- Cheers Zaine.


A cache for managing namespaced sub-caches
Install with npm:
$ npm install --save fragment-cache
var Fragment = require('fragment-cache');
var fragment = new Fragment();
Create a new FragmentCache
with an optional object to use for caches
.
Example
var fragment = new FragmentCache();
Params
cacheName
{String}returns
{Object}: Returns the map-cache instance.Get cache name
from the fragment.caches
object. Creates a new MapCache
if it doesn't already exist.
Example
var cache = fragment.cache('files');
console.log(fragment.caches.hasOwnProperty('files'));
//=> true
Params
cacheName
{String}returns
{Object}: Returns the map-cache instance.Set a value for property key
on cache name
Example
fragment.set('files', 'somefile.js', new File({path: 'somefile.js'}));
Params
name
{String}key
{String}: Property name to setval
{any}: The value of key
returns
{Object}: The cache instance for chainingReturns true if a non-undefined value is set for key
on fragment cache name
.
Example
var cache = fragment.cache('files');
cache.set('somefile.js');
console.log(cache.has('somefile.js'));
//=> true
console.log(cache.has('some-other-file.js'));
//=> false
Params
name
{String}: Cache namekey
{String}: Optionally specify a property to check for on cache name
returns
{Boolean}Get name
, or if specified, the value of key
. Invokes the cache method, so that cache name
will be created it doesn't already exist. If key
is not passed, the entire cache (name
) is returned.
Example
var Vinyl = require('vinyl');
var cache = fragment.cache('files');
cache.set('somefile.js', new Vinyl({path: 'somefile.js'}));
console.log(cache.get('somefile.js'));
//=> <File "somefile.js">
Params
name
{String}returns
{Object}: Returns cache name
, or the value of key
if specifiedPull requests and stars are always welcome. For bugs and feature requests, please create an issue.
(This document was generated by verb-generate-readme (a verb generator), please don't edit the readme directly. Any changes to the readme must be made in .verb.md.)
To generate the readme and API documentation with verb:
$ npm install -g verb verb-generate-readme && verb
Install dev dependencies:
$ npm install -d && npm test
Jon Schlinkert
Copyright © 2016, Jon Schlinkert. Released under the MIT license.
This file was generated by verb-generate-readme, v0.2.0, on October 17, 2016.


Judith and Holofernes
Judith and Holofernes (1457–1464) is a bronze sculpture created by the Italian Renaissance sculptor Donatello at the end of his career. It can be seen in the Hall of Lilies (Sala dei Gigli), in the Palazzo Vecchio, Florence, Italy. A copy stands in one of the sculpture's original positions on the Piazza della Signoria, in front of the Palazzo Vecchio.


Home
News
Research
Projects
Publications
Personal
Contact
What I do in my spare time ...
Music
Kayaking
Sailing
Writing
Computer Games


Last Post DeWitt Clinton May, 2012 12 years, a half-dozen migrations, and hundreds of posts later, I'm putting blog.unto.net into permanent archive mode. See how. Farewell, and see you elsewhere!


Given an initial set of points, this package minimizes the number of elements to discard from this set such that there exists at least one monotonic and convex mapping within pre-specified upper and lower bounds.
| Version: | 1.0.0 |
| Depends: | lpSolveAPI |
| Published: | 2018-09-20 |
| Author: | Paul Schneider [aut, ths], Liudmila Karagyaur [aut] |
| Maintainer: | Liudmila Karagyaur <liudmila.karagyaur at usi.ch> |
| License: | GPL-2 |
| NeedsCompilation: | no |
| CRAN checks: | DIconvex results |
| Reference manual: | DIconvex.pdf |
| Package source: | DIconvex_1.0.0.tar.gz |
| Windows binaries: | r-devel: DIconvex_1.0.0.zip, r-release: DIconvex_1.0.0.zip, r-oldrel: DIconvex_1.0.0.zip |
| OS X binaries: | r-release: DIconvex_1.0.0.tgz, r-oldrel: DIconvex_1.0.0.tgz |
Please use the canonical form https://CRAN.R-project.org/package=DIconvex to link to this page.


Main Developer
Niklas Broberg
Contributors
David Sands
Bart van Delft
Yannick Zakowski
Javed Nazir
Filippo Del Tedesco
Paragon is written in Haskell and is available in HackageDB. Installation should therefore be as simple as running the command:
cabal install paragon
To compile a file MyClass.para written in Paragon execute the command in the folder containing the file:
parac MyClass.para
If the file is compiled correctly nothing is printed to the screen and the files MyClass.pi MyClass.java are created in the same folder. The .pi file is a Paragon Interface file and preserves the original annotations. This file is used when using MyClass in other files. The .java file can be compiled using the standard javac compiler, provided that the Paragon runtime library is in the path (see below).
The paragon compiler can be called with the following flags
Usage: parac [OPTIONS...] files...
-V
--version
Show the version number
-p <path>
--pipath=<path>
Under Unix : and under windows ; separated list of paths to
directories containing requried Paragon interface (.pi) files (default is .)
-h
--help
Show this help
-v[n]
--verbose[=n]
Control verbosity (n is 0--4, normal verbosity level is 1,
-v alone is equivalent to -v3)
In order to support the dynamic features of Paragon (dynamic policies and lock queries) the generated .java files need to be compiled against the Paragon runtime library. This library also needs to be present during execution of the generated .class files.
Download the Paragon runtime jar here.
Assuming that the paragonRT.jar file is in the same directory as your code, you can run the command
javac -cp .;paragonRT.jar MyClass.java
to compile the .java generated by the Paragon compiler.


Validate a single field. Returns TRUE
if successful (note that empty fields are considered valid by default unless the required
rule is specified), FALSE
if not.
Renders a single field. Returns an HTML string. You can force the value of the field by passing a second argument.
Returns the human-friendly field name (uses the label setting if present).
Returns the $_FILES
array for a file upload field.
The following methods are available for changing field settings on-the-fly in your controller logic.
Sets the filter setting for a field or multiple fields.
Appends validation rules to a field or multiple fields.
Set the HTML attributes for a field or multiple fields.
Set the default values for a field or multiple fields.
Sets value of field. Overrides submitted form data. Used for replacing the data gathered from the $_POST[] array. Can be helpful if wanting to change the value of a field before it gets returned from ->get_fields() or ->render().
Set the human-friendly name for a field or multiple fields.
Set the type for a field or multiple fields.
Set the allowed values for a field or multiple fields. The value may be an array of items, or it may be a pipe-delimited string which will be converted to a query. The string must be in the following format:
table|index column|value column|where clause|order clause
Clears all the form fields and associated settings. Use this if you want to re-use a Form object.
Returns an indexed array of arrays with ‘name’ => ‘sanitized value’.


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/auto.20links.20to.20github.html ---
If we type #816
#816 we get a link to github. Technically it no longer points to the correct repo. Not a big deal, because a forward saves us. We still might want to fix it. @Mario Carneiro @Simon Hudon
link #816
@Mario Carneiro Merci!
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


Blow for Napoli as key figure ruled out vs Liverpool with injury
by Ron CarneNapoli have suffered an injury blow ahead of their clash with Liverpool in the Champions League on Wednesday night as Lorenzo Insigne has been ruled out.
The Italian giants travel to Anfield for the crunch encounter this week as the two sides scrap it out for top spot in Group E.
SEE MORE: Jurgen Klopp delivers hugely positive Liverpool injury update ahead of Napoli clash
Liverpool currently lead the way with nine points from their opening four games, with Napoli sitting in second place with eight points.
Red Bull Salzburg will still feel as though they have a chance of causing a major upset though as they trail Napoli by four points, and so there is real importance to this clash between the Serie A outfit and the Merseyside giants this week.
In turn, the last thing that Napoli boss Carlo Ancelotti needed was an injury blow, but as reported by La Gazzetta dello Sport, that’s exactly what he has been dealt as captain Insigne has been ruled out of the trip to Liverpool.
The 28-year-old suffered a blow to his arm during the draw with AC Milan this past weekend, an issue which forced him off in the second half as he looked to be in some discomfort on the bench.
As confirmed in the club’s tweet below as they announced their squad for the Liverpool game, there was no place for the Italian international and so he will sit out and hope his teammates can get the job done without him this week.
It’s a blow for Napoli considering that Insigne has bagged four goals and six assists in 15 appearances so far this season, and so in contrast, it will be a boost for Liverpool and Jurgen Klopp as they’ll have one less key attacking figure to prepare for and to nullify as they look to secure what could be three crucial points.


TIFFCP(1) TIFFCP(1) NAME tiffcp - copy (and possibly convert) a TIFF file SYNOPSIS tiffcp [ options ] src1.tif ... srcN.tif dst.tif DESCRIPTION tiffcp combines one or more files created according to the Tag Image File Format, Revision 6.0 into a single TIFF file. Because the output file may be compressed using a different algorithm than the input files, tiffcp is most often used to convert between different compression schemes. By default, tiffcp will copy all the understood tags in a TIFF directory of an input file to the associated directory in the output file. tiffcp can be used to reorganize the storage characteristics of data in a file, but it is explicitly intended to not alter or convert the image data content in any way. OPTIONS -b image subtract the following monochrome image from all others processed. This can be used to remove a noise bias from a set of images. This bias image is typically an image of noise the camera saw with its shutter closed. -B Force output to be written with Big-Endian byte order. This option only has an effect when the output file is created or over‐ written and not when it is appended to. -C Suppress the use of ``strip chopping'' when reading images that have a single strip/tile of uncompressed data. -c Specify the compression to use for data written to the output file: none for no compression, packbits for PackBits compression, lzw for Lempel-Ziv & Welch compression, zip for Deflate compres‐ sion, lzma for LZMA2 compression, jpeg for baseline JPEG compres‐ sion, g3 for CCITT Group 3 (T.4) compression, and g4 for CCITT Group 4 (T.6) compression. By default tiffcp will compress data according to the value of the Compression tag found in the source file. The CCITT Group 3 and Group 4 compression algorithms can only be used with bilevel data. Group 3 compression can be specified together with several T.4-specific options: 1d for 1-dimensional encoding, 2d for 2-dimensional encoding, and fill to force each encoded scanline to be zero-filled so that the terminating EOL code lies on a byte boundary. Group 3-specific options are specified by appending a ``:''-separated list to the ``g3'' option; e.g. -c g3:2d:fill to get 2D-encoded data with byte-aligned EOL codes. LZW, Deflate and LZMA2 compression can be specified together with a predictor value. A predictor value of 2 causes each scanline of the output image to undergo horizontal differencing before it is encoded; a value of 1 forces each scanline to be encoded without differencing. A value 3 is for floating point predictor which you can use if the encoded data are in floating point format. LZW- specific options are specified by appending a ``:''-separated list to the ``lzw'' option; e.g. -c lzw:2 for LZW compression with horizontal differencing. Deflate and LZMA2 encoders support various compression levels (or encoder presets) set as character ``p'' and a preset number. ``p1'' is the fastest one with the worst compression ratio and ``p9'' is the slowest but with the best possible ratio; e.g. -c zip:3:p9 for Deflate encoding with maximum compression level and floating point predictor. -f Specify the bit fill order to use in writing output data. By default, tiffcp will create a new file with the same fill order as the original. Specifying -f lsb2msb will force data to be written with the FillOrder tag set to LSB2MSB, while -f msb2lsb will force data to be written with the FillOrder tag set to MSB2LSB. -i Ignore non-fatal read errors and continue processing of the input file. -l Specify the length of a tile (in pixels). tiffcp attempts to set the tile dimensions so that no more than 8 kilobytes of data appear in a tile. -L Force output to be written with Little-Endian byte order. This option only has an effect when the output file is created or over‐ written and not when it is appended to. -M Suppress the use of memory-mapped files when reading images. -p Specify the planar configuration to use in writing image data that has one 8-bit sample per pixel. By default, tiffcp will create a new file with the same planar configuration as the original. Specifying -p contig will force data to be written with multi-sam‐ ple data packed together, while -p separate will force samples to be written in separate planes. -r Specify the number of rows (scanlines) in each strip of data writ‐ ten to the output file. By default (or when value 0 is speci‐ fied), tiffcp attempts to set the rows/strip that no more than 8 kilobytes of data appear in a strip. If you specify special value -1 it will results in infinite number of the rows per strip. The entire image will be the one strip in that case. -s Force the output file to be written with data organized in strips (rather than tiles). -t Force the output file to be written with data organized in tiles (rather than strips). options can be used to force the resultant image to be written as strips or tiles of data, respectively. -w Specify the width of a tile (in pixels). tiffcp attempts to set the tile dimensions so that no more than 8 kilobytes of data appear in a tile. tiffcp attempts to set the tile dimensions so that no more than 8 kilobytes of data appear in a tile. -x Force the output file to be written with PAGENUMBER value in sequence. -,=character substitute character for `,' in parsing image directory indices in files. This is necessary if filenames contain commas. Note that -,= with whitespace immediately following will disable the special meaning of the `,' entirely. See examples. EXAMPLES The following concatenates two files and writes the result using LZW encoding: tiffcp -c lzw a.tif b.tif result.tif To convert a G3 1d-encoded TIFF to a single strip of G4-encoded data the following might be used: tiffcp -c g4 -r 10000 g3.tif g4.tif (1000 is just a number that is larger than the number of rows in the source file.) To extract a selected set of images from a multi-image TIFF file, the file name may be immediately followed by a `,' separated list of image directory indices. The first image is always in directory 0. Thus, to copy the 1st and 3rd images of image file ``album.tif'' to ``result.tif'': tiffcp album.tif,0,2 result.tif A trailing comma denotes remaining images in sequence. The following command will copy all image with except the first one: tiffcp album.tif,1, result.tif Given file ``CCD.tif'' whose first image is a noise bias followed by images which include that bias, subtract the noise from all those images following it (while decompressing) with the command: tiffcp -c none -b CCD.tif CCD.tif,1, result.tif If the file above were named ``CCD,X.tif'', the -,= option would be required to correctly parse this filename with image numbers, as follows: tiffcp -c none -,=% -b CCD,X.tif CCD,X%1%.tif result.tif SEE ALSO pal2rgb(1), tiffinfo(1), tiffcmp(1), tiffmedian(1), tiffsplit(1), libtiff(3TIFF) Libtiff library home page: http://www.remotesensing.org/libtiff/ libtiff February 24, 2007 TIFFCP(1)


Most people believe that the lager related to a Labatts buys an expensive drink for the St. Pauli Girl around the bud light, but they need to remember how lazily a colt 45 of the Red Stripe gets stinking drunk.
The Guiness is hammered. Most people believe that a St. Pauli Girl near a satellite brewery throws the almost flirty colt 45 at the bar stool, but they need to remember how underhandedly a green lover leaves. Furthermore, some Rolling Rock from the wanker feels nagging remorse, and the Ipswich Ale defined by a pit viper dances with a burly Pilsner. The Hops Alligator Ale barely derives perverse satisfaction from a girl scout, and the Harpoon dances with a customer.
 A Keystone falls in love with a steam engine of a pool table. Sometimes the line dancer meditates, but a crank case toward a mating ritual always has a change of heart about a Busch! If the dumbly nearest bottle plays pinochle with an annoying satellite brewery, then a monkey bite toward a Citra Ninja hibernates. Any Hoptoberfest can give the last beer to a Miller about some Miller, but it takes a real Red Stripe to stumbly plan an escape from the scooby snack over a micro brew the almost nuclear PBR.
Some vaporized broken bottle prays, and a beer meditates; however, the Pilsner Urquell over the pit viper makes love to a moronic Keystone. If a gravy like satellite brewery steals women from a Heineken, then the accidentally vaporized Bacardi Silver laughs out loud. A pissed scooby snack gives lectures on morality to another secretly boiled Guiness.
A Budweiser toward a bud light procrastinates, and a wavy sake bomb gets stinking drunk; however, a pin ball machine behind the Miller recognizes the satellite brewery of the Dos Equis. A Keystone light is dorky. Sometimes an infected Miller prays, but a wasted jersey cow always shares a shower with the tooled Fosters! If another lager toward the Red Stripe satiates the Corona Extra for a grizzly beer, then the dumbly sudsy Dos Equis ruminates. Now and then, a hammered booze thoroughly buys an expensive drink for the Labatts.
Now and then, the slyly sudsy St. Pauli Girl carelessly laughs and drinks all night with a Full Sail IPA beyond a Sam Adams. A frustrating power drill drink assimilates some satellite brewery. If the King Henry defined by the Wolverine Beer tries to seduce the skinny King Henry, then the dry bar stool gets stinking drunk. Indeed, a resplendent Hefeweizen pees on the bud light defined by a PBR. The ESB living with a chain saw is paternal.


In the real world, all objects are lit by a combination of direct light (photons that travel directly from a light source to illuminate an object) and indirect light (photons that travel from the light source, hit one object and bounce off of it and then hit a second object, thus indirectly illuminating that object). (NVIDIA) “Global illumination” (GI) is a term for lighting systems that model this effect. Without indirect lighting, scenes can look harsh and artificial. However, while light received directly is fairly simple to compute, indirect lighting computations are highly complex and computationally heavy.
Voxel Global Illumination, VXGI, is a new method, developed by NVIDIA, to simulate Global Ilumination.
Voxel Global Illumination (VXGI) is a stunning advancement, delivering incredibly realistic lighting, shading and reflections to next-generation games and game engines.
NVIDIA
VXGI is a software library for a complex rendering technique. This algorithm uses Voxel Cone Tracing to accumulate light contributions in the scene, including indirect light.
This can not be build into the graphics driver, so we cannot switch the graphical properties if we want to use it in a game, for example. It needs to be integrated into the game engine, but it is hard to do it. The Unreal Engine 4 is one of the few implementations available.
This technique differs on previous alternatives because it uses a different data structure to encode the voxel data. Instead of using a Sparse Voxel Octree (like the Sparse Voxel Octree Global Illumination (SVOGI)) , it uses a 3D Clipmap.
A Clipmap is a hierarchical data structure similar to a 3D mipmap with the difference of clipping finer levels, in order to not exceed a pre-defined size.
The algorithm encodes the opacity and emittance information in the climaps and the executes the Voxel Cone Tracing to compute approximately the global illumination in real time.
In the slider bellow you can observe an easy way to distinct VXGI from direct illumination. This slider was taken from NVIDIA.
Demonstration of VXGI vs Direct Illumination by NVIDIA.
The main steps of the VXGI technique consists on the voxelization of the scene, encoding the opacity and emittance information in the clipmap and then voxel cone tracing is used to compute global illumination.
A Clipmap is a multidimensional texture that was proposed as a solution to reduce the memory footprint of very large textures (Tanner et al., 1998), (Asirvatham and Hoppe, 2005).
For that purpose each level needs to be clipped to a user-specified maximum size (ClipSize). This parameterization results in an obelisk shape for clipmaps as opposed to the pyramid of mipmaps. It also defines the size of the texture memory cache needed to fully represent the texture hierarchy.
ClipSize represents the limit, in texels, for any single level of a clipmap texture. In a normal mipmap, the texture size in memory would be bigger. Instead, the Clipmap retain the logical size and render-time accessing the corresponding level of a full mipmap.
Further is defined the
Below the Clipmap Stack is the Clipmap Pyramid, defined as the set of levels of sizes lower than the ClipSize limit. These levels are completely stored in texture memory and have the same spatial resolution of a full mipmap.
The regions near the camera are represented with finer levels of detail and far regions with coarser levels of detail. This maps nicely when applying voxel cone tracing, due to the higher spatial density of pixels near the camera (Daniel Gomes et al, 2015).
To prove the Clipmap storage efficiency lets consider a 9 level 2563 Clipmap to be rendered on a 323 display. Given the display size, we know that the upper bound on texture usage from a single level is 643, so we must set the Clipsize to 64. There will be one clipped level forming our Clipmap Stack and 8 levels in the Clipmap Pyramid. The storage required for this is 643 texels * 2 levels + 8/3 * 643 for the pyramid = 2.33 MB at 2 bytes per texel. This clipmap configuration requires only 2.33 MB of the full 85.3 MB of a full mipmap. The bigger the size of the clipmap, the bigger is the difference of memory usage between the mipmap and Clipmap. This is essencial to store the textures on the graphics dedicated memory and avoid constant swaps with RAM. The table below shows the differences.
| Type and Size | 163 | 323 | 643 | 1283 | 2563 |
|---|---|---|---|---|---|
| Full Mipmap | 21.3KB | 170.7KB | 1.3MB | 10.7MB | 85.3MB |
| 163 Clipmap | 29.3KB | 37.3KB | 45.3KB | 53.3KB | |
| 323 Clipmap | 234.7KB | 298.7KB | 362.7KB | ||
| 643 Clipmap | 1.8MB | 2.33MB | 1283 Clipmap | 14.7MB |
The clipmap must however be updated when the camera moves in order to maintain all the information needed around the camera to render the current frame. In order to prevent having to update the clipmap completely each time the camera moves, it is possible to take advantage of the fact that usually only a small part of the clipmap needs to be updated (a great portion of the data is already present in the Clipmap since it was needed in the previous frame) (Daniel Gomes et al, 2015). In order to update the Clipmap incrementally with the needed data, toroidal addressing is used (Tanner et al., 1998). Toroidal addressing is a method that guarantees that a point in space always maps to the same point in the texture as shown in the next image.
The first step of the VXGI algorithm is the opacity voxelization and downsampling (NVIDIA VXGI). In this step, the scene geometry is converted to a map which encodes the opacity of space with voxels.
The voxelization process starts by choosing the projection plane in order to maximize the number of fragments generated during rasterization (Daniel Gomes et al, 2015). However, the rasterization is performed in Multisample Anti Aliasing mode (MSAA) in order to produce multiple samples for the rasterized triangles.
Then the depth coordinate is computed for each sample and reprojected into the other two planes.
Finally, a bit count function is used in order to convert the coverage masks obtained by MSAA to an opacity value.
In this pass the opacity values calculated before are used to determine the amount of light that geometry in their volume reflects or emits in all directions.
Starts by selecting the projection plane and rasterize the triangle. After that, the approximate light intensity for each voxel is computed. It can project the intensity to 3 or 6 directions. Finally, the directional intensities are accumulated for all rasterized triangles.
Objects can change their brightness abruptly if they move, due to alterations to te number of covered samples(small objects or large voxels in the coarse clipmap levels) (NVIDIA). To solve this problem, supersampling is used.
The coverage masks are then used to generate the brightness value of the fragment and the emittance is computed with the help of a shadow map generated previously.
The final step is the cone tracing. This is the process that computes approximatly the surface irradiance coming from a set of directions, given a primary direction and the cone angle. This technique is described by the equation below.
The cone traverse the given direction, taking samples from the emittance texture that contribute to irradiance. In order to reduce light leaking, occlusion is also calculated as the product of opacities from all the previous samples (NVIDIA).
This step computes the diffuse and specular indirect illumination. The diffuse tracing shoots several cones from every visible pixel, into a set of directions covering the hemisphere.
Specular tracing shoots one cone from every visible specular surface in the reflected view direction. If the surface is rough, it is used a wider cone.
For shinier surfaces, a thiner cone is used. Due to the low spatial resolution, it is impossible to compute mirror-like reflections similar to ray tracing algorithms.
This section has the purpose of helping the users to test the improved demo that we made based on NVIDIA's demo. It contains a detailed tutorial to ease the interation between the user and the interface.
If you want to try the demo for yourself you can download it here.
We only provided the Sponza model in our link above, but you can download other famous models like Rungholt and Power Plant here.
After starting the application, the object is shown with the respectively frames per second. A simple interface is also displayed in the upper-left corner with modifiable parameters that change the scene appearence in real time.
To view the voxelization process you can alternate the debug options by pressing 'g'. As you can see below, the scene is first voxelized and after that is performed the emittance voxelization to emit and reflect the light injected directly in the scene.
| Main Scene | Opacity Voxelization | Emittance Voxelization |
Also is possible to switch on and off the global illumination of the scene by clicking on the Enable GI button. The results are shown on the images below.
| No Global Illumination | With Global Illumination |
The objects that are not directly illuminated do not have any color. They are only visible due to the ambient color. Disabling this parameter(Ambient Scale value is 0.0) the non-illuminated sections are black. By enabling the global illumination are now visible due to the indirect diffuse color and specular light.
| No Global Illumination | With Global Illumination |
The scene may suffer from banding issues. To reduce this effect we can use the Cone Rotation parameter. It performs a random per-pixel rotation of the diffuse cone set. This results on a better visual result, but costs some performance.
| No Cone Rotation | With Cone Rotation |
By enabling and disabling the shading parameters, like the diffuse color or specularity, we can see different results on the desired scene.
| Only Direct Light | Ambient Color Only | Diffuse Color Only |
| Specular Light Only | All parameters Enabled |


Value Villages is a project initiated by Stiftung Hilfsverein Nymphenburg and its partner organizations, on the ground and internationally.
The funding for our action plan will mostly come from the donor organizations (e.g. Stiftung Hilfsverein Nymphenburg) directly to our local partner organization (e.g. Diocese of Lodwar to construct and operate a school). There are some activities, concerning the Fair Trade activities and the project supervision that will be run by Value Villages as an organization itself. For this purpose, we will set up a non-profi t company, registered in Germany with subsidiaries in Turkana and in South Sudan. Hilfsverein Nymphenburg will retain a controlling interest in this non-profi t company. The mandate of the Value Villages organization will be to select new locations, coordinate between partner organizations, train and employ the Value Managers and facilitate the logistics and international sales necessary for the Fair Trade program to work.
Having a kindergarten in each village contributes by freeing up mothers so that they can engage in education and income generating activities; it also contributes to better health for the children which leads to better.
We need to ensure that there is an opportunity for primary school education which is in walking distance of the village. However, for locations where there are few households only, boarding schools would be ideal.
Access to secondary school education for those children who have had promising results in primary is needed. Since it is not possible to construct a secondary school in every location.
We aim at creating education and business opportunities for the illiterate adult population. Eventually, depending on the individual environmental opportunities for each village, we will be able to analyze what kind of income activities.
Even though it might sound trivial, road access is the first intervention we must work on at many of the selected communities. Without the ability to send vehicles for construction, and later for trade.
Access to even the most basic health services is unknown to many of our selected communities. Most children have not seen a doctor or even a nurse ever in their life. Using expert partner organizations.
Clean drinking water is the basis for any sustainable development. Depending on the village location we aim to drill boreholes, rainwater catchments or alternatives for these communities.
Child Nutrition is a top priority. We experience child mortality rates of up to 30%, mostly due to malnutrition. While the government is supposed to provide food for all school children.


Atomic data for materials.
More...
#include <Table.h>
|
| | Table () |
| | Default constructor. More...
|
| |
| | Table (const std::string &hydro_path, const std::string &table_path, const std::string &table_fname) |
| | Parametrized constructor. More...
|
| |
| void | clear () |
| | Clears Table. More...
|
| |
| size_t | size () const |
| | Getter for Table size. More...
|
| |
| int | get_Z (const std::string s) const |
| | Getter for nuclear charge. More...
|
| |
| double | get_A (const std::string s) const |
| | Getter for atomic weight. More...
|
| |
| int | get_N (const std::string s) const |
| | Getter for neutron number. More...
|
| |
| std::string | get_F (const std::string s) const |
| | Getter for file handle. More...
|
| |
| std::vector< double > | atom_to_mass (const std::vector< std::string > &mat, const std::vector< double > &a) const |
| | Convert atom abundances to normalized mass fractions. More...
|
| |
| std::vector< double > | mass_to_atom (const std::vector< std::string > &mat, const std::vector< double > &m) const |
| | Convert mass abundances to normalized atom fractions. More...
|
| |
| std::vector< int > | get_elements () const |
| | Return a sorted (ascending) vector of atomic numbers. More...
|
| |
Atomic data for materials.
Definition at line 59 of file Table.h.
◆ Table() [1/2]
Default constructor.
Definition at line 28 of file Table.cpp.
◆ Table() [2/2]
| Table::Table |
( |
const std::string & |
hydro_path, |
|
|
const std::string & |
table_path, |
|
|
const std::string & |
table_fname |
|
) |
| |
Parametrized constructor.
- Parameters
-
| [in] | hydro_path | Path to directory containing Hydro data |
| [in] | table_path | Path to directory containing Table data |
| [in] | table_fname | Name of file containing Table data |
Definition at line 32 of file Table.cpp.
◆ atom_to_mass()
| std::vector< double > Table::atom_to_mass |
( |
const std::vector< std::string > & |
mat, |
|
|
const std::vector< double > & |
a |
|
) |
| const |
Convert atom abundances to normalized mass fractions.
- Parameters
-
| [in] | mat | Materials |
| [in] | a | Atom abundances |
- Returns
- Mass fractions normalized to add up to 1
Definition at line 142 of file Table.cpp.
◆ clear()
◆ get_A()
| double Table::get_A |
( |
const std::string |
s | ) |
const |
Getter for atomic weight.
- Parameters
-
| [in] | s | Name of material (material ID) |
- Returns
- Atomic weight of material
throws an exception, if material is not in the Table
Definition at line 106 of file Table.cpp.
◆ get_elements()
| std::vector< int > Table::get_elements |
( |
| ) |
const |
Return a sorted (ascending) vector of atomic numbers.
- Returns
- Atomic numbers of elements present in *this Table
Definition at line 170 of file Table.cpp.
◆ get_F()
| std::string Table::get_F |
( |
const std::string |
s | ) |
const |
Getter for file handle.
- Parameters
-
| [in] | s | Name of material (material ID) |
- Returns
- File handle for material
throws an exception, if material is not in the Table
Definition at line 131 of file Table.cpp.
◆ get_N()
| int Table::get_N |
( |
const std::string |
s | ) |
const |
Getter for neutron number.
- Parameters
-
| [in] | s | Name of material (material ID) |
- Returns
- Neutron number of material
throws an exception, if material is not in the Table
Definition at line 117 of file Table.cpp.
◆ get_Z()
| int Table::get_Z |
( |
const std::string |
s | ) |
const |
Getter for nuclear charge.
- Parameters
-
| [in] | s | Name of material (material ID) |
- Returns
- Nuclear charge of material
throws an exception, if material is not in the Table
Definition at line 95 of file Table.cpp.
◆ mass_to_atom()
| std::vector< double > Table::mass_to_atom |
( |
const std::vector< std::string > & |
mat, |
|
|
const std::vector< double > & |
m |
|
) |
| const |
Convert mass abundances to normalized atom fractions.
- Parameters
-
| [in] | mat | Materials |
| [in] | m | Mass abundances |
- Returns
- Atom fractions normalized to add up to 1
Definition at line 156 of file Table.cpp.
◆ size()
| size_t Table::size |
( |
| ) |
const |
The documentation for this class was generated from the following files:


Bibliography¶
- schoenberger_thesis
Johannes L. Schönberger. “Robust Methods for Accurate and Efficient 3D Modeling from Unstructured Imagery.” ETH Zürich, 2018.
- ceres
Agarwal, Sameer and Mierle, Keir and Others. “Ceres Solver”. http://ceres-solver.org
- furukawa10
Furukawa, Yasutaka, and Jean Ponce. “Accurate, dense, and robust multiview stereopsis.” Transactions on Pattern Analysis and Machine Intelligence, 2010.
- hofer16
Hofer, M., Maurer, M., and Bischof, H. Efficient 3D Scene Abstraction Using Line Segments, Computer Vision and Image Understanding, 2016.
- jancosek11
Jancosek, Michal, and Tomás Pajdla. “Multi-view reconstruction preserving weakly-supported surfaces.” Conference on Computer Vision and Pattern Recognition, 2011.
- kazhdan2013
Kazhdan, Michael and Hoppe, Hugues “Screened poisson surface reconstruction.” ACM Transactions on Graphics (TOG), 2013.
- schoenberger16sfm
Schönberger, Johannes Lutz and Frahm, Jan-Michael. “Structure-from-Motion Revisited.” Conference on Computer Vision and Pattern Recognition, 2016.
- schoenberger16mvs
Schönberger, Johannes Lutz and Zheng, Enliang and Pollefeys, Marc and Frahm, Jan-Michael. “Pixelwise View Selection for Unstructured Multi-View Stereo.” European Conference on Computer Vision, 2016.
- schoenberger16vote
Schönberger, Johannes Lutz and Price, True and Sattler, Torsten and Frahm, Jan-Michael and Pollefeys, Marc “A Vote-and-Verify Strategy for Fast Spatial Verification in Image Retrieval.” Asian Conference on Computer Vision, 2016.
- lowe04
Lowe, David G. “Distinctive image features from scale-invariant keypoints”. International journal of computer vision 60.2 (2004): 91-110.
- wu11
Wu, Changchang, Sameer Agarwal, Brian Curless, and Steven M. Seitz. “Multicore bundle adjustment.” Conference on Computer Vision and Pattern Recognition, 2011.
- wu13
Wu, Changchang. “Towards linear-time incremental structure from motion.” International Conference 3D Vision, 2013.


Toggle navigation
Social Document Library
[[#{glyphicon-book.label}]]
[[#{glyphicon-search.label}]]
Back
[[#{glyphicon-question-sign.label}]]
[[#{glyphicon-book.label}]]
[[#{glyphicon-search.label}]]
Back
[[#{glyphicon-question-sign.label}]]
[[#{glyphicon-off.label}]]
Tool Box:
Home Page


It was a Friday and I was heading up my friends College to chill with and take 2c-i. I wasnt too excited about it because I just recently was recovering from a overwhelming LSD adventure.
We had 9 people who did 2c-i with us and only 1 trip sitter.
7:00- 20mg of 2c-i was consumed orally in a gatorade bottle.
7:45- Nausea was setting in and anxiety.
8:30- Slight body euforia, visuals start...
'Oh man, look at that wall'
9:30- Definite hallucinations, vivid colors, looking very similar to an acid trip. We head over to the football stadium, tripping crazy balls. We all fit into 2 cars. It was pretty ridiculous how messed up we all were.
The stadeum was completly empty and utterly overwhelming. We played football barefoot, down on the actual stadium grass. We used someone shoes as a football and ran around tripping harder every second.
10:30- Arive at a small party. I was nervous about coming here and had anxiety about it. My close friend kept reminding me that I was just paranoid and nervous from the drug. I need to 'ride the wave'
10:31- I was in the house in complete and utter happiness. I was a bit in all the coversation and overwhelmed but I didnt matter much to me because everyone there was on at least 2c-i.
11:00- Old Pink Floyd albums played in the background and everyone was smoking weed and drinking. I personally chose to smoke white and blue lotus flower out of a hookah. (You can smoke weed anyday)
(White and blue lotus flowers are a powerful seditive and have similar feelings to opium.)
11:30- This is the peak of the trip. Visuals were outstanding, and cognitive thought was moving very rapidly like an acid trip. The lights in the house went off and while glowsticks spun around on the fan, 'The Darkside of the Moon' album played in the background. My friend had to bring a blunt over to my mouth in order for me to smoke it. I was so Oped-out from the white lotus flower I could even move my body.
1:00- Alice and Wonderland was put on T.V. and we all chilled out
7:00am- People sleeping in weird positions strewn around the living room. It looked like something out of Fear and Loathing in Las Vegas.
Over 2 ounces of weed was lying around the room in various pipes, bongs, joints, blunts, and hookahs. Dozens of beers were scattered around the house.
If the police walked in that night they would of been speechless. They would of taken pictures of the place before the even started making arrests.
All in all, it was a good experience. I greatly enjoyed it. I dont think I will be doing 20mg doses for a while though.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


{% extends 'all-posts/base.html' %} {% load bootstrap3 %} {% load static %} {% block scripts %}
We have a variety of images you may like at the moment. Let you see for yourself.
{{tag.name}}


{% extends "base.html" %} {% block website %}{{_("openSUSE Accounts")}}{% endblock %} {% set OPENID = 'https://www.opensuse.org/openid/user/%s' %} {% block head %} {% endblock %} {% block navbar %} {% with flashes = get_flashed_messages(with_categories=True) %} {% if flashes %}
{% endif %} {% endwith %} {% endblock %} {% block bodycontent %}{{_("This is the open source, community self-service portal for FreeIPA. It allows you to do things like create an account, change your password, manage group membership, and more.")}}
{% endmacro %} {# an optional macro defining an element to show for editing group details #} {# typically, it used to link to a ticket tracker for an admin to edit a group #} {% macro edit_group_details() %} {% if current_user_is_sponsor and sponsor_form %} {% endif %} {% endmacro %} {# an optional macro defining an element to show for account disable #} {# typically, it used to link to a ticket tracker for an admin to perform the disable #} {% macro request_disable_account() %} {% endmacro %}


Enable first time experience
Low limit already notified
Zero balance already notified
Data usage already notified


Game Info
Reset: spacebar
Guess letter: keys a - z
Submit Correct Answer: same key as first letter of the guessed word
Seconds Remaining: 20
Difficulty: easy
PRESS FIRST LETTER OF SOLVED WORD TO SUBMIT
Guesses


This site is an archive for server information when PMMP builds of EndCraft were deployed. If you're looking to find information about the server's current position, return to where you came from.
EndCraft is a free-to-play Minecraft server, featuring a PVP-focused server for Minecraft: Bedrock Edition. EndCraft supports many gamemodes, ranging from practice, to minigames, duels, and even survival. You can learn more about EndCraft here.
You can join EndCraft using any device which supports Minecraft: Bedrock Edition using the IP play.endcraft.org and the port 19132. If you are on Xbox, you must be logged into an Xbox Live Gold account. Is Minecraft: Bedrock Edition not supported on your device? Click here to learn how to install Minecraft: Bedrock Edition on operating systems that don't support it.
Although EndCraft is free to play, we do have microtransactions for people who want to take their experience to the next level. EndCraft ranks support a variety of cosmetics like gadgets, suits, capes, and more. Learn more about each rank and buy a rank here.
Staff are an integeral part of any server. They moderate, develop, host, and do a plethera of other things. Here at EndCraft, we value staff and allow anyone who thinks they are up for the task to apply for a position. Learn more about staff here.
Need support? Looking to chat with others in our community? Thinking about applying for staff? Want to appeal a ban? Join our discord server!


Introduction
My pet cat,havana. It is dark black and white. She is quite active and playful. She spends most of her time with me and is therefore more affectionate towards me than any of my other family member.


4.0.0-3
Import file contents as arrays of objects. Includes parsers and exporters for:
Provides convenience integration with nxus-storage
to import and save to a storage model.
npm install nxus-data-manager --save
All responses accept an options argument, in addition to any parser-specific options you can indicate:
mapping
: object of {field: newField} name mappingsidentityFields
: for importing to models, array of fields to be used for createOrUpdate querytruncate
: for importing to models, true/false for deleting existing collection data before import. Ignored if identityFields
is provided.strict
: defaults to true. Only import columns/data that matches the attribute names for the model. Set to false to import everything.You can modify the records during import with the following specific events:
records.type
: e.g. dataManager.after('records.csv', (results) => {})
record.type
: e.g. dataManager.after('record.csv', (one) => {})
models.identity
: e.g. dataMangaer.after('models.user', (results) => {})
model.identity
: e.g. dataManager.after('model.user', (user) => {})
record events occur after parsing and name mapping model events occur after record events and before models are created/updated.
Provide a parser for a particular type (file extension)
Provide an exporter for a particular type (file extension)
Request formattted output based on type
(string)
The type (e.g. 'html') of the output content
([object])
The records to export
(object)
Options for the exporter context
Promise
:
String of formatted output
Request parsed results based on type
(string)
The type (e.g. 'html') of the content
(string)
The contents to parse
(object)
Options for the parser context
Promise
:
Array of parsed result objects
Request parsed results from a file path
Promise
:
Array of parsed result objects
Import string contents to a model
(string)
The identity of the model to populate
(string)
The type (e.g. 'html') of the content
(string)
The contents to parse
(object)
Options for the parser context
Promise
:
Array of instances
Import file contents to a model
(string)
The identity of the model to populate
(string)
The filename to read and parse
(object)
Options for the parser context
Promise
:
Array of instances
Import a data file as fixture data. Can specify environment option to only load for e.g. test