Wednesday, April 26, 2017

NNCP

"NNCP (Node to Node copy) is a collection of utilities simplifying secure store-and-forward files and mail exchanging.
This utilities are intended to help build up small size (dozens of nodes) ad-hoc friend-to-friend (F2F) statically routed darknet networks for fire-and-forget secure reliable files, file requests and Internet mail transmission. All packets are integrity checked, end-to-end encrypted, explicitly authenticated by known participants public keys. Onion encryption is applied to relayed packets. Each node acts both as a client and server, can use push and poll behaviour model.

Out-of-box offline sneakernet/floppynet, dead drops and air-gapped computers support. But online TCP daemon with full-duplex resumable data transmission exists.

NNCP is copylefted free software licenced under GPLv3+. It should work on all POSIX-compatible systems. Easy integration with existing SMTP servers. Single YAML configuration file.

Why create yet another store-and-forward solution when UUCP, FTN and even SMTP exists? Look in comparison section! Simplicity, cryptographic security, sneakernet compatibility and easy integration with current SMTP servers are the reasons."

http://www.nncpgo.org/

Rosetta Code

"Rosetta Code is a programming chrestomathy site. The idea is to present solutions to the same task in as many different languages as possible, to demonstrate how languages are similar and different, and to aid a person with a grounding in one approach to a problem in learning another. Rosetta Code currently has 846 tasks, 197 draft tasks, and is aware of 648 languages, though we do not (and cannot) have solutions to every task in every language."

https://rosettacode.org/wiki/Rosetta_Code

Monday, April 24, 2017

Alimentos regionais brasileiros

"With an emphasis on regional foods, the book promotes awareness of the considerable amount of agricultural biodiversity existing in Brazil, providing information on the nutritional characteristics of each food as well as recipes to stimulate the use this diversity and enhance its culinary appreciation."

http://www.b4fn.org/resources/publications/publication-item/alimentos-regionais-brasileiros/

African Indigenous Vegetables in Urban Agriculture

"The book synthesizes existing knowledge and new information, bringing together the fields of indigenous vegetables and urban and peri-urban agriculture on the African continent."

http://www.b4fn.org/resources/publications/publication-item/african-indigenous-vegetables-in-urban-agriculture/

Fruit Trees and Useful Plants in Amazonian Life

"The book brings together original scientific findings and traditional knowledge on Amazon plant species that can be harvested for economic or medicinal purposes. Filled with illustrations and diagrams, the book is also accessible to anyone interested in ethnobotany, agroforestry and sustainable land management."

http://www.b4fn.org/resources/publications/publication-item/fruit-trees-and-useful-plants-in-amazonian-life/

THE HERB HUNTERS GUIDE AMERICAN MEDICINAL PLANTS OF COMMERCIAL IMPORTANCE

"AMONG THE WILD PLANTS of the United States are many that have long been used in the practice of medicine, some only locally and to a minor extent, but others in sufficient quantity to make them commercially important. The collection of such plants for the crude-drug market provides a livelihood for many people in rural communities, especially in those regions where the native flora has not been disturbed by agricultural or industrial expansion and urban development.

There is an active interest in the collection of medicinal plants because it appeals to many people as an easy means of making money. However, it frequently requires hard work, and the returns, on the whole, are very moderate. Of the many plants reported to possess medicinal properties, relatively few are marketable, and some of these are required only in small quantities. Persons without previous experience in collecting medicinal plants should first ascertain which of the marketable plants are to be found in their own locality and then learn to recognize them. Before undertaking the collection of large quantities, samples of the bark, root, herb, or other available material should be submitted to reliable dealers in crude drugs to ascertain the market requirements at the time and the prevailing prices.

To persons without botanical training it is difficult to describe plants in sufficient detail to make identification possible unless such descriptions are accompanied by illustrations. It is the purpose of this publication to assist those interested in collecting medicinal plants to identify such plants and to furnish other useful information in connection with the work.

https://hort.purdue.edu/newcrop/HerbHunters/hhunters.html


Aletris
Aletris farinosa
American Bittersweet
Celastrus scandens
American Cranberrybush
Viburnum trilobum
American Elder
Sambucus canadensis
American False-Hellebore
Veratrum viride
American Linden
Tilia americana
American Mountain-Ash
Sorbus americana
American Pennyroyal
Hedeoma pulegioides
Arborvitae
Thuja occidentalis
Balm
Melissa officinalis
Balm-of-Gilead Poplar
Populus candicans
Bamboo Greenbrier
Smilax pseudo-china
Bayberry
Myrica cerifera,
M. carolinensis
Bearberry
Arctostaphylos uva-ursi
Bitter Nightshade
Solanum dulcamara
Black Cherry
Prunus serotina
Blackhaw
Viburnum prunifolium
Black Mustard
Brassica nigra
Black Willow
Salix nigra
Blessed Thistle
Cnicus benedictus
Bloodroot
Sanguinaria canadensis
Blue Cohosh
Caulophyllum thalictroides
Blueflag Iris
Iris versicolor
Blue Vervain
Verbena hastata
Bogbean
Menyanthes trifoliata
Boneset
Eupatorium perfoliatum
Bugleweed
Lycopus virginicus
Burdock
Arctium minus
Butterfly Weed
Asclepias tuberosa
Butternut
Juglans cinerea
Button-Snakeroot
Eryngium aquaticum
Canada Wildginger
Asarum canadense
Carolina-Jessamine
Gelsemium sempervirens
Carolina-Vanilla
Trilisa odoratissima
Cascara Buckthorn
Rhamnus purshiana
Catnip
Nepeta cataria
Celandine
Chelidonium majus
Chamaelirium
Chamaelirium luteum
Citronella Horsebalm
Collinsonia canadensis
Cohosh Bugbane
Cimicifuga racemosa
Coltsfoot
Tussilago farfara
Comfrey
Symphytum officinale
Common Juniper
Juniperus communis
Common Winterberry
Ilex verticillata
Culvers-Physic
Veronica virginica
Dandelion
Leontodon taraxacum
Echinacea
Echinacea angustifolia
Elecampane
Inula helenium
Figwort
Scrophularia marilandica
Flowering Dogwood
Cornus florida
Foxglove
Digitalis purpurea
Fragrant Goldenrod
Solidago suaveolens
Fringetree
Chionanthus virginica
Ginseng
Panax quinquefolium
Golden Groundsel
Senecio aureus
Goldenseal
Hydrastis canadensis
Goldthread
Coptis trifolia
Ground-Ivy
Nepeta hederacea
Gum Plant
Grindelia robusta, G. squarrosa
Hazel Alder
Alnus rugosa
Hemlock
Tsuga canadensis
Hemp Dogbane
Apocynum cannabinum
Hoarhound
Marrubium vulgare
Hophornbeam
Ostrya virginiana
Hoptree
Ptelea trifoliata
Horsechestnut
Aesculus hippocastanum
Horse Nettle
Solanum carolinense
Horseweed
Erigeron canadensis
Jack-In-The-Pulpit
Arisaema triphyllum
Jimson Weed
Datura stramonium
Ladyslipper
Cypripedium pubescens, C. parviflorum
Leather Woodfern
Dryopteris marginalis, D. filixmas
Liverleaf
Hepatica americana,
H. acutiloba
Lobelia
Lobelia inflata
Mad-Dog Skullcap
Scutellaria lateriflora
Mayapple
Podophyllum peltatum
Maypop
Passiflora incarnata
Moonseed
Menispermum canadense
Mullein
Verbascum thapsus
Narrow Dock
Rumex crispus
Oregon Hollygrape
Berberis aquifolium
Peppermint
Mentha piperita
Pinkroot
Spigelia marilandica
Pipsissewa
Chimaphila umbellata,
C. maculata
Poison Hemlock
Conium maculatum
Pokeberry
Phytolacca americana
Prickly-Ash
Zanthoxylum americanum,
Z. clava-herculis
Prickly Lettuce
Lactuca scariola
Purplestem Angelica
Angelica atropurpurea
Purple Trillium
Trillium erectum
Quack Grass
Agropyron repens
Sassafras
Sassafras variifolium
Saw Palmetto
Serenoa serrulata
Seneca-Snakeroot
Polygala senega
Skunkcabbage
Spathyema foetida
Slippery Elm
Ulmus fulva
Smooth Hydrangea
Hydrangea arborescens
Smooth Sumac
Rhus glabra
Snakeroot
Aristolochia serpentaria
A. reticulata
Sourwood
Oxydendrum arboreum
Spearmint
Mentha spicata
Sweet Birch
Betula lenta
Sweet Cudweed
Gnaphalium obtusifolium
Sweetfern
Comptonia peregrina
Sweetflag
Acorus calamus
Tamarack
Larix laricina
Tansy
Tanacetum vulgare
Trailing-Arbutus
Epigaea repens
Turtlehead
Chelone glabra
Twinleaf
Jeffersonia diphylla
Upland Cotton
Gossypium hirsutum
Virginia Strawberry
Fragaria virginiana
Wahoo
Euonymus atropurpureus
White Ash
Fraxinus americana
White Mustard
Brassica alba
White Oak
Quercus alba
White Pine
Pinus strobus
Wild Geranium
Geranium maculatum
Wild-Sarsaparilla
Aralia nudicaulis
Wild Yam
Dioscorea villosa
Wintergreen
Gaultheria procumbens
Witch-Hazel
Hamamelis virginiana
Wormseed
Chenopodium ambrosioides anthelminticum
Wormwood
Artemisia absinthium
Yarrow
Achillea millefolium
Yellowroot
Xanthorhiza simplicissima
Yellow Wild-Indigo
Baptisia tinctoria
Yerba Santa
Eriodictyon californicum

Wild Fruits (of India)

Wild fruits were an important source of food for mankind before the dawn of civilization and the domestication of the present day fruits. Cavemen in the forests also depended on these fruits and passed on valuable information on the utility and choice of wild species of fruits from generation to generation. Thus, the present day horticulture came into existence. Also, the wild varieties of plants, yielding edible fruits, growing throughout the Himalayas, contributed directly to the cultural heritage of India. Even today, these fruits are eaten in plenty by the local people, as they are commonly available in abundance in their habitats.

Among these wild fruit trees are Rubus ellipticus Smith, Rubus niveus Thunb, Flacourtia sapida Roxb, etc, producing small juicy fruits of excellent taste. They can be utilized for juice-making. The fruits of plants, e.g. Aegle marmelos Correa and Berberis aristata DC. are known for their medicinal properties. Besides, some of these fruits such as Myrica nagi Thunb, Emblica officinalis Gaertn, Punica granatum Linn are marketed in huge quantities, thus contributing to the economy of the region where they occur.

The trees yielding edible fruits also provide firewood, serve as wind breaks and fences, supply leaf fodder and act as raw material for many useful medicinal preparations. Valuable traits of these wild fruits, such as resistance to diseases, winter-hardiness, resistance to drought, and possession of superior vigour can be incorporated into their cultivated relatives with a view to improving them. Wild plants yielding edible fruits are also important in the three-dimensional forest farming, producing food, fodder and fuel, besides providing environmental conservation.

Unfortunately, the information available on these species is rather scanty. Therefore the scientific and systematic harnessing of these plants has not been possible. In the absence of such information in the form of hand book or manual on wild fruits, the farmer and orchardist feels greatly handicapped and is reluctant to extend the cultivation of such unusual fruits. Till today, the reference to wild fruits is either available in the botanical floras or in encyclopedic works like George Watt’s Dictionary of Economic Products of India, the CSIR’s Wealth of India or a few similar other volumes. These books are not easily available everywhere. Moreover, these are expensive for a common man. Difficult to refer and also lack in comprehensive information.

In the present work, the authors have endeavored to bring out detailed information on various characteristics of morphological, taxonomical, economical and horticultural importance. This information was collected during the course of investigation carried out by them on 26 plants found growing wild in the sub-Himalayan tract yielding edible fruits in an attempt to evaluate these wild fruits from economic and commercial standpoints. To make the work more comprehensive and useful, the authors also consulted various other sources including the translations of ancient Sanskrit texts on Ayurveda for compiling all the available information on the medicinal properties and other uses of these plants. The treatise, therefore, carries a detailed information on the phenology, flowering and fruiting seasons, chemical composition, medicinal properties, yield, utilization, scope etc., in respect of each fruit.

Preface
Aegle marmelos Correa
Aesculus indica Colebr.
Berberis aristata DC.
Carissa spinarum Linn.
Cordia obliqua Willd.
Elaeagnus umbellata Thunb
Emblica officinalis Gaertn
Ficus palmata Forsk.
Ficus roxburghii Wall.
Flacourtia sapida Roxb.
Fragaria indica Andr.
Murraya koenigii (L.) Spreng.
Myrica nagi Thunb.
Opuntia dillenii Haw.
Phoenix sylvestris Roxb.
Physalis minima Linn.
Prunus armeniaca Linn.
Prunus persica Batsch.
Punica granatum Linn.
Pyrus pashia Buch.&Ham.
Pyrus serotina Rehd.
Rubus ellipticus Smith
Rubus niveus Thunb.
Vitis himalyana Br.
Vitis lanata Roxb.
Zizyphus jujuba Mill.
Epilogue
References
Appendix I. A glossary of botanical, medical, Sanskrit and Hindi terms used in the text.
Appendix III. The summary table of important characteristics of wild fruits.
Part I
Part II

https://hort.purdue.edu/newcrop/parmar/Preface.html

Lost Crops of the Incas


https://www.nap.edu/read/1398/chapter/1

Lost Crops of Africa - Volume I: Grains

"The purpose of this report is to draw worldwide attention to traditional African cereals and especially to their potential for expanding and diversifying African and world food supplies. Africa is seen by many observers as a basket case—a vast region incorporating more than 40 nations that appears unlikely to be able to feed its burgeoning population in the coming years. To many observers, there seem to be no ready solutions. Some have given up hope that anything can be done.

What has been almost entirely overlooked, however, is that throughout that vast continent can be found more than 2,000 native grains, roots, fruits, and other food plants. These have been feeding people for thousands of years but most are being given no attention whatever today. We have called them the ''lost crops of Africa."

Among the 2,000 lost foods are more than 100 native grasses whose seeds are (or have been) eaten. These can be found from Mauritania to Madagascar. Only a handful are currently receiving concerted research and development, and even those few are grossly underappreciated. Our goal is to demonstrate the potential inherent in these overlooked traditional cereals. Our hope is thereby to stimulate actions to increase the support for, and use of, the best of them so as to increase food supplies, improve nutrition, and raise economic conditions.

It should be understood that most of the plants described are not truly lost; indeed, a few are well known worldwide. It is to the mainstream of international science and to people outside the rural regions that they are "lost." It should also be understood that it is not just for Africa that the grains hold promise. Several of Africa's now neglected cereals could become major contributors to the welfare of nations around the world. This potential is often emphasized in the following chapters in hopes of stimulating the world community into serious and self-interested support for these species that now languish.


1
2
3
4
5
6
7
8
9


Fruits of Warm Climates

PALMEA
Date
Pejibaye
ARACEAE
Ceriman
BROMELIACEAE
Pineapple
MUSACEAE
Banana
MORACEAE
Fig
Breadfruit
Jackfruit and Related Species
Amazon Tree-Grape
ANNONACEAE
Cherimoya
Sugar Apple
Atemoya
Soursop
Custard Apple
Ilama
Soncoya
Wild Custard Apple and Related Species
Biriba
LAURACEAE
Avocado and Related Species
ROSACEAE
Loquat
Capulin
Mysore Raspberry
Red Ceylon Peach
CHRYSOBALANACEAE
Sansapote
LEGUMINOSAE
Tamarind
Carob
OXALIDACEAE
Carambola
Bilimbi
RUTACEAE
Sour Orange
Orange
Mandarin Orange
Tangor
Pummelo
Grapefruit
Tangelo
Orangelo
Lemon
Mexican Lime
Tahiti Lime
Sweet Lime
Calamondin
Mandarin Lime
Citron
Kumquat
Sundry Hybrids and Rootstocks
Bael Fruit
Wood-Apple
White Sapote
Wampee
MELIACEAE
Santol
Langsat
MALPIGHIACEAE
Barbados Cherry
Nance
EUPHORBIACEAE
Bignay and Related Species
Emblic
Otaheite Gooseberry
Rambai and Related Species
ANACARDIACEAE
Mango and Related Species
Cashew Apple
Ambarella and Related Species
Purple Mombin
Yellow Mombin and Related Species
SAPINDACEAE
Lychee
Longan
Rambutan
Pulasan
Mamoncillo
Akee
RHAMNACEAE
Indian Jujube
TILIACEAE
Phalsa
ELAEOCARPACEAE
Jamaica Cherry
MALVACEAE
Roselle
BOMBACACEAE
Durian and Related Species
Chupa-Chupa
ACTINIDIACEAE
Kiwifruit and Related Species
GUTTIFERAE
Mangosteen
Mamey
Bakuri
Bakupari and Related Species
FLACOURTIACEAE
Ketembilla and Related Species
Kei Apple and Related Species
PASSIFLORACEAE
Passionfruit
Giant Granadilla
Sweet Granadilla
Water Lemon
Banana Passion Fruit
Sweet Calabash
CARICACEAE
Papaya and Related Species
CACTACEAE
Strawberry Pear and Related Species
Barbados Gooseberry
PUNICACEAE
Pomegranate
MYRTACEAE
Guave
Cattley Guava
Costa Rican Guava
Brazilian Guava and Related Species
Feijoa
Jaboticabas
Jambolan
Malay Apple
Java Apple
Water Apple
Rose Apple
Surinam Cherry
Rumberry and Related Species
Grumichama
Pitomba
SAPOTACEAE
Sapodilla
Sapote and Related Species
Canistel
Lucmo
Abiu
Star Apple
EBENACEAE
Japanese Persimmon
Black Sapote
Mabolo
APOCYNACEAE
Carissa
Karanda
SOLANACEAE
Naranjilla and Closely Related Species
Cocona
Cape Gooseberry
Mexican Husk Tomato
Tree Tomato
RUBIACEAE
Genipap
CUCURBITACEAE
Cassabanana

Bibliography

https://hort.purdue.edu/newcrop/morton/index.html

Neglected Crops: 1492 from a Different Perspective

This book is available from the publications department of Food and Agriculture Organization of the United Nations.

selected chapters are available:

https://hort.purdue.edu/newcrop/1492/1492.html

Alternative Field Crops Manual

"This Alternative Field Crops Manual addresses the need for detailed information on the production of a number of agronomic crops adapted to the upper Midwest. Our intent is to provide county extension agents and others in educational roles a concise, uniform source of information on those field crops which may be considered as alternatives to traditional farm commodities.
Chapter
Date Printed
Adzuki Bean
Nov. 1989
Amaranth
Nov. 1989
Broomcorn
May 1990
Buckwheat
Nov. 1989
Canarygrass
Sept. 1990
Canola or Rape
Nov. 1989
Chickpea
May 1990
Comfrey
Feb. 1992
Cowpea
July 1991
Fababean
Nov. 1989
Fieldbean
May 1990
Field Pea
April 1991
Flax
Nov. 1989
Garbanzo bean
see Chick Pea
Forages, Brassica
  Rutabaga
  Turnip
Jan. 1992
Jerusalem Artichoke
March 1991
Lentil
May 1990
Lupin
Nov. 1989
Meadowfoam
Oct. 1990
Millets
May 1990
Mungbean
May 1990
Mustard
July 1991
Peanut
July 1991
Popcorn
Nov. 1989
Quinoa
Feb. 1990
Rye
Sept. 1990
Safflower
Feb.1992
Sesame
May 1990
Sorghum—Grain (Milo)
Nov. 1989
Sorghum—Syrup
Nov. 1990
Spelt
May 1990
Sugarbeet
July 1991
Sunflower
Nov. 1990
Triticale
Nov. 1989
Wild Rice
April 1992
Castorbeans
May 1990
Cool Season Grass Seed Production
Sept. 1990
Crambe
July 1991
Ginseng
April 1992
Guar
Feb. 1991
Hairy Vetch
Sept. 1990
Hop
Nov. 1990
Jojoba
Oct. 1990
Kenaf
April 1991
Kochia
Sept. 1990
Psyllium
June 1992
Sorghum—Forage
Oct. 1990
Vernonia
Feb. 1992


https://hort.purdue.edu/newcrop/afcm/index.html

Kaitai Struct

"Reading and writing binary formats is hard, especially if it's interchange format that should work across multitude of platforms and languages.

Have you ever found yourself writing repetitive, error-prone and hard-to-debug code that reads binary data structures from file / network stream and somehow represents them in memory for easier access?

Kaitai Struct tries to make this job easier — you only have to describe binary format once and then everybody can use it from their programming languages — cross-language, cross-platform.

Kaitai Struct is a declarative language used for describe various binary data structures, laid out in files or in memory: i.e. binary file formats, network stream packet formats, etc.

The main idea is that a particular format is described in Kaitai Struct language (.ksy file) and then can be compiled with ksc into source files in one of the supported programming languages. These modules will include a generated code for a parser that can read described data structure from a file / stream and give access to it in a nice, easy-to-comprehend API.

Typically, using formats described in KS in your project, involves the following steps:
  • Describe the format — i.e. create a .ksy file
  • Use visualizer to debug the format and ensure that it parses data properly
  • Compile .ksy file into target language source file and include that file into your project
  • Add KS runtime library for your particular language into your project (don’t worry, it’s small and it’s there mostly to ensure readability of generated code)
  • Use generated class(es) to parse your binary file / stream and access its components
Check out documentation for more information."

http://kaitai.io/

https://news.ycombinator.com/item?id=14176191

vagga

"Vagga is a tool to create development environments. In particular it is able to:
  • Build container and run program with single command, right after “git pull”
  • Automatically rebuild container if project dependencies change
  • Run multiple processes (e.g. application and database) with single command
  • Execute network tolerance tests
All this seamlessly works using linux namespaces (or containers).

Let’s make config for hello-world flask application. To start you need to put following in vagga.yaml:
containers:
  flask: 
    setup:
    - !Ubuntu xenial ❷
    - !UbuntuUniverse 
    - !Install [python3-flask] 
commands:
  py3: !Command 
    container: flask ❻
    run: python3 ❼
  • ❶ – create a container “flask”
  • ❷ – install base image of ubuntu
  • ❸ – enable the universe repository in ubuntu
  • ❹ – install flask from package (from ubuntu universe)
  • ❺ – create a simple command “py3”
  • ❻ – run command in container “flask”
  • ❼ – the command-line is “python3”
To run command just run vagga command_name."

https://vagga.readthedocs.io/en/latest/info.html 

https://news.ycombinator.com/item?id=14176191 

devilbox

"The ultimate Docker LAMP/LEMP Stack alternative to XAMP.

The devilbox is a modern and highly customizable alternative for XAMPP. It is based on docker-compose with presets for all kinds of versions for webservers, database servers and php.

Configuration is not necessary, as everything is pre-setup with mass virtual hosting."

https://github.com/cytopia/devilbox/blob/master/README.md

https://news.ycombinator.com/item?id=14176191

bonobo

"Bonobo is a line-by-line data-processing toolkit for python 3.5+ emphasizing simple and atomic data transformations defined using a directed graph of plain old python callables (functions and generators).

Bonobo is a extract-transform-load framework that uses python code to define transformations.

You can either use the built in extractors for standard file formats (CSV, JSON, XML, XLS, ...), use official add-ons to connect to usual external services (SQL), or write your own extractors.

Wrangling data is great, but keeping it around is better. Use our standard writers (CSV, JSON, XML, XLS, ...) or connect to your custom services."

https://www.bonobo-project.org/

https://github.com/python-bonobo/bonobo

Prometheus

"
"Prometheus is an open-source systems monitoring and alerting toolkit originally built at SoundCloud. Since its inception in 2012, many companies and organizations have adopted Prometheus, and the project has a very active developer and user community. It is now a standalone open source project and maintained independently of any company. To emphasize this and clarify the project's governance structure, Prometheus joined the Cloud Native Computing Foundation in 2016 as the second hosted project after Kubernetes.

For a more elaborate overview, see the resources linked from the media section.

Features

Prometheus's main features are:
  • a multi-dimensional data model (time series identified by metric name and key/value pairs)
  • a flexible query language to leverage this dimensionality
  • no reliance on distributed storage; single server nodes are autonomous
  • time series collection happens via a pull model over HTTP
  • pushing time series is supported via an intermediary gateway
  • targets are discovered via service discovery or static configuration
  • multiple modes of graphing and dashboarding support

Components

The Prometheus ecosystem consists of multiple components, many of which are optional:
Most Prometheus components are written in Go, making them easy to build and deploy as static binaries."

https://prometheus.io/

https://fabxc.org/blog/2017-04-10-writing-a-tsdb/

HPTT

"Recently we presented TTC, a domain-specific compiler for tensor transpositions. Despite the fact that the performance of the generated code is nearly optimal, due to its offline nature, TTC cannot be utilized in all the application codes in which the tensor sizes and the necessary tensor permutations are determined at runtime. To overcome this limitation, we introduce the open-source C++ library High-Performance Tensor Transposition (HPTT). Similar to TTC, HPTT incorporates optimizations such as blocking, multi-threading, and explicit vectorization; furthermore it decomposes any transposition into multiple loops around a so called micro-kernel. This modular design---inspired by BLIS---makes HPTT easy to port to different architectures, by only replacing the hand-vectorized micro-kernel (e.g., a 4x4 transpose). HPTT also offers an optional autotuning framework---guided by a performance mode---that explores a vast search space of implementations at runtime (similar to FFTW). Across a wide range of different tensor transpositions and architectures (e.g., Intel Ivy Bridge, Intel Knights Landing, ARMv7, IBM Power7), HPTT attains a bandwidth comparable to that of SAXPY, and yields remarkable speedups over Eigen's tensor transposition implementation. Most importantly, the integration of HPTT into the Cyclops Tensor Framework (CTF) improves the overall performance of tensor contractions by up to 3.1x."

https://arxiv.org/abs/1704.04374

https://github.com/HPAC/TTC

Sunday, April 23, 2017

libmill

"Libmill is a library that introduces Go-style concurrency to C.

It can execute up to 20 million coroutines and 50 million context switches per second."

http://libmill.org/

https://github.com/sustrik/libmill

Draco

"Draco is a library for compressing and decompressing 3D geometric meshes and point clouds. It is intended to improve the storage and transmission of 3D graphics.

Draco was designed and built for compression efficiency and speed. The code supports compressing points, connectivity information, texture coordinates, color information, normals, and any other generic attributes associated with geometry. With Draco, applications using 3D graphics can be significantly smaller without compromising visual fidelity. For users, this means apps can now be downloaded faster, 3D graphics in the browser can load quicker, and VR and AR scenes can now be transmitted with a fraction of the bandwidth and rendered quickly.

Draco is released as C++ source code that can be used to compress 3D graphics as well as C++ and Javascript decoders for the encoded data."

https://github.com/google/draco

Scheme

"Scheme is a functional programming language and one of the two main dialects of the programming language Lisp. Unlike Common Lisp, the other main dialect, Scheme follows a minimalist design philosophy specifying a small standard core with powerful tools for language extension.

Scheme was created during the 1970s at the MIT AI Lab and released by its developers, Guy L. Steele and Gerald Jay Sussman, via a series of memos now known as the Lambda Papers. It was the first dialect of Lisp to choose lexical scope and the first to require implementations to perform tail-call optimization, giving stronger support for functional programming and associated techniques such as recursive algorithms. It was also one of the first programming languages to support first-class continuations. It had a significant influence on the effort that led to the development of Common Lisp.[1]

The Scheme language is standardized in the official IEEE standard[2] and a de facto standard called the Revisedn Report on the Algorithmic Language Scheme (RnRS). The most widely implemented standard is R5RS (1998);[3] a new standard, R6RS,[4] was ratified in 2007.[5] Scheme has a diverse user base due to its compactness and elegance, but its minimalist philosophy has also caused wide divergence between practical implementations, so much that the Scheme Steering Committee calls it "the world's most unportable programming language" and "a family of dialects" rather than a single language."

https://en.wikipedia.org/wiki/Scheme_%28programming_language%29

The Adventures of a Pythonista in Schemeland - http://www.phyast.pitt.edu/~micheles/scheme/index.html

Fiji

"Fiji is an image processing package—a "batteries-included" distribution of ImageJ, bundling a lot of plugins which facilitate scientific image analysis.

Fiji is easy to install and has an automatic update function, bundles a lot of plugins and offers comprehensive documentation.

Like ImageJ itself, Fiji is an open source project hosted in Git version control repositories, with access to the source code of all internals, libraries and plugins, easing the development and scripting of plugins.

Fiji is licensed under the GNU General Public License. It builds on top of the ImageJ2 core, which is licensed under the permissive BSD 2-clause license. Plugins and other components have their own licenses.

Fiji is developed by contributors around the world, and funded from various sources. It is maintained by Curtis Rueden and the ImageJ development team at the Laboratory for Optical and Computational Instrumentation (LOCI) at the University of Wisconsin-Madison.

The Fiji project is driven by a strong desire to improve the tools available for life sciences to process and analyze data."

https://fiji.sc/#

Token

"Token is an open source browser for the Ethereum network. Our mission is to provide universal access to financial services.

Token is built like a web browser (we don't host any of the apps or have access to customer funds). It is a piece of software that runs on the customer's computer, and sensitive information (like private keys) never leave that computer.

We have official clients for Android and iOS today.

Token uses a variety of open protocols, including the Signal protocol by Whisper Systems for end-to-end encrypted chat, the Ethereum network to transfer value, the SOFA protocol to enable third party apps, and (coming soon) the uPort identity protocol to store user profiles. Read more

https://www.tokenbrowser.com/

ShinySDR

"This is the software component of a software-defined radio receiver. When combined with hardware devices such as the USRP, RTL-SDR, or HackRF, it can be used to listen to a wide variety of radio transmissions, and can be extended via plugins to support even more modes.

I (Kevin Reid) created ShinySDR out of dissatisfaction with the user interface of other SDR applications that were available to me. The overall goal is to make, not necessarily the most capable or efficient SDR application, but rather one which is, shall we say, not clunky.
Here's some reasons for you to use ShinySDR:
  • Remote operation via browser-based UI: The receiver can be listened to and remotely controlled over a LAN or the Internet, as well as from the same machine the actual hardware is connected to. Required network bandwidth: 3 Mb/s to 8 Mb/s, depending on settings.
    Phone/tablet compatible (though not pretty yet). Internet access is not required for local or LAN operation.
  • Persistent waterfall display: You can zoom, pan, and retune without losing any of the displayed history, whereas many other programs will discard anything which is temporarily offscreen, or the whole thing if the window is resized. If you zoom in to get a look at one signal, you can zoom out again.
  • Frequency database: Jump to favorite stations; catalog signals you hear; import published tables of band, channel, and station info; take notes. (Note: Saving changes to disk is not yet well-tested.)
  • Map: Plot station locations from the frequency database, position data from APRS and ADS-B, and mark your own location on the map. (Caveat: No basemap, i.e. streets and borders, is currently present.)
Supported modes:
  • Audio: AM, FM, WFM, SSB, CW.
  • Other: APRS, Mode S/ADS-B, VOR.
If you're a developer, here's why you should consider working on ShinySDR (or: here's why I wrote my own rather than contributing to another application):
  • All server code is Python, and has no mandatory build or install step.
  • Plugin system allows adding support for new modes (types of modulation) and hardware devices.
  • Demodulators prototyped in GNU Radio Companion can be turned into plugins with very little additional code. Control UI can be automatically generated or customized and is based on a generic networking layer.
On the other hand, you may find that the shiny thing is lacking substance: if you're looking for functional features, we do not have the most modes, the best filters, or the lowest CPU usage. Many features are half-implemented (though I try not to have things that blatantly don't work). There's probably lots of code that will make a real DSP expert cringe."

https://github.com/kpreid/shinysdr

Turnstile

"We present Turnstile, a metalanguage for creating typed embedded languages. To implement the type system, programmers write type checking rules resembling traditional judgment syntax. To implement the semantics, they incorporate elaborations into these rules. Turnstile critically depends on the idea of linguistic reuse. It exploits a macro system in a novel way to simultaneously type check and rewrite a surface program into a target language. Reusing a macro system also yields modular implementations whose rules may be mixed and matched to create other languages. Combined with typical compiler and runtime reuse, Turnstile produces performant typed embedded languages with little effort."

http://www.ccs.neu.edu/home/stchang/popl2017/

https://bitbucket.org/stchang/macrotypes

Psyche-c

"The compilation of incomplete C code can be useful in a variety of scenarios: debugging a snippet retrieved from a bug-tracking tool; running an static analysis on only part of a program; support editing features such as code-completion within an IDE; during cross-platform development when a header is incompatible; in order to generate data-structures straight out of algorithm implementations.

Psyche-c is a compiler for incomplete C code being developed in our lab. It receives as an input an incomplete, but syntactically valid, source code. This means that, if unexpanded macros are present, then those macros in unexpanded form must still conform to the C grammar rules. From this source, psyche-c produces a header file that, once plugged into the original file, leads to compilable code*.

To complete missing parts of programs, psyche-c solves several challenges. The first ones appear during parsing, since, not only syntax, but also semantic information (possibly absent) is required in C. Yet, the really cool challenges appear when we want to produce complete well-typed programs out of the partial ones. Give it a try! Despite being still under research, we can do pretty impressive things. psyche-c seems to be the first ever type inference for C. Its source is available at https://github.com/ltcmelo/psychec."

http://cuda.dcc.ufmg.br/psyche-c/

Dwarf Fortress

"Dwarf Fortress is a single-player fantasy game. You can control a dwarven outpost or an adventurer in a randomly generated, persistent world.
Although Dwarf Fortress is still in a work in progress, many features have already been implemented.
  • The world is randomly generated with distinct civilizations spanning centuries of detailed history, hundreds of towns, caves and regions with various wildlife.
  • The world persists as long as you like, over many games, recording historical events and tracking changes.
  • Command your dwarves as they search for wealth in the mountain.
    • Craft treasures and furniture from many materials and improve these objects with precious metals, jewels and more.
    • Defend yourself against attacks from hostile civilizations, the wilderness, the depths, the dead and creatures of the night.
    • Trade for all manner of exotic goods with your neighbors.
    • Establish a barony and support the nobility as they make demands of your populace.
    • Keep your dwarves happy and read their thoughts as they work and relax.
    • Z coordinate allows you to dig out fortresses with multiple levels. Build towers or conquer the underworld.
    • Build floodgates to divert water for farming or to drown your adversaries... and don't forget the magma!
    • Lay out taverns, libraries and temples to enrich your dwarves' lives. What discoveries will your dwarves make?
    • Accept non-dwarven residents from all over the world as your reputation grows.
    • Surgery, sutures, splints, crutches and more: care for your wounded dwarves instead of leaving them to fend for themselves.
    • Retire your fortress, then unretire it after spending time playing other roles in the world.
    • Honey, wax, pottery, windmills, waterwheels, soap, plaster, wool, eggs, dyes, cheese, glass, animal training, papermaking, parchment, bookbinding and much much more...
  • Play an adventurer and explore, quest for glory or seek vengeance.
    • Meet adversaries from previous games.
    • Recruit people to come with you on your journey.
    • Explore without cumbersome plot restrictions -- thriving capitals, villages, catacombs, labyrinths, bandit camps, caves and more!
    • Seamlessly wander the world or travel more rapidly on the region map and in underground tunnels.
    • Travel by day and search for a place to shelter as night falls.
    • Build a cabin in the woods with the help of your companions.
    • Listen to rumors and help out town and civilization leaders.
    • Earn a reputation as a hero, friend, soldier, enemy, thug, musician, etc. with the various civilizations in the world.
    • Retire and meet your old characters. Bring them along on an adventure with a new character or reactivate them and play directly.
    • Z coordinate allows you to move between twisting underground caverns and scale structures, fighting adversaries above and below. Climb, jump and sprint!
    • Stealth system with vision arcs which also respects vegetation density and other factors.
    • Use signs like shoe impressions and animal tracks to hunt and avoid danger.
    • Steal a mummy's treasure or learn the secrets of life and death at a necromancer's tower.
    • Visit your retired fortresses and ask your dwarves to join you on adventures.
  • The combat model includes skills, body parts, individual tissues, material properties, aimed attacks, wrestling, one-time opportunities, charging and dodging between squares, bleeding, pain, nausea, various poison effects and much more. Attacks and other movements extend over several instants, allowing you to deliberately catch enemy blows or plan your counter-attack.
  • Generated poetry, musical forms, instruments and dances. Watch the dwarves perform, or try it yourself!
  • Hundreds of animals and other monsters, including many that are randomly generated for each world.
  • Multi-tile climbable trees and many, many kinds of plants. Fruit, flowers and falling leaves.
  • A dynamic weather model tracks wind, humidity and air masses to create fronts, clouds, rain storms and blizzards.
  • Over two hundred rock and mineral types are incorporated into the world, placed in their proper geological environments.
  • Add new creatures, weapons, plants, metals and other objects via modifiable text files.
  • Extended ASCII character set rendered in 16 colors (including black) as well as 8 background colors (including black).
http://www.bay12games.com/dwarves/

https://motherboard.vice.com/en_us/article/what-will-happen-to-gamings-most-ambitious-experiment-when-its-creators-die?utm_source=mbfb