All content by @itchyfeetDonica
The Colca Canyon in southern Peru, is claimed to be the deepest canyon in the world, almost twice as deep as the Grand Canyon in the US. This region is located at north of Arequipa and south of Cusco. Chivay is the biggest town in the region. Deep in the mountains, the Inca traditions here are little altered. The locals still cultivate the pre-Inca stepped terraces built into the slopes.
The natural scenery of this area is simply breathtaking (literally as well ;) - each time when you hike for any beautiful view, it takes your breath away due to the high elevation) - imagine the majestic high mountains shrouded in mist, the crystal clear creek flowing at the bottom of the deep canyons, and the condors soaring above your heads. When the sky is clear, you can also see the snow-capped volcanoes 🌋 in distance…
I will show you the landscape photos in another post in future, today I’d like to share with you first the unique traditional clothing of the locals in Cabanaconde, a small village in Colca Canyon which I stayed a few days as a base to explore the surrounds. In Chivay, this bigger town, people’s clothes are more varied in style as a result of the mixed population. I will write about the market in Chivay in the coming days, where you would see people are wearing wider varieties of clothes. : )
👆I clicked this photo with my phone in a local bus from Peru’s second most populous city Arequipa to Cabanaconde. The lady in the photo got in the full bus somewhere on the way, and stood in front of my seat for the rest of her trip. In fact, the whole corridor of the bus was full of local passengers, some standing, others sitting on the floor. And even more people managed to get in: eager vendors who tried to sell all kinds of stuff - snacks, watches, herbs…; a passionate propagator who preached for hours without any break… It’s getting crowded, while it’s interesting to see all this drama unrolling in front of me. It felt like a real-life stage for a mix of magical shows - this is also the charm of South America. =)
Ok, let me come back to the lady standing next to me: this is my first impression of the traditional clothing of the Colca Canyon people. The Canyon extends over a large area, so the clothing style is slightly different in different villages. As you can see, her vest is intricately embroidered, and her colorful hat has distinctive patterns on it.
Later when I arrived at Cabanaconde(it’s a looooong hard journey delayed due to the flooded road - this sheer adventure deserves another post), aha, I found almost all elderly women wearing their traditional clothing - a pretty hat decorated with detailed embellishments, matched by the similarly patterned vest, with or without a piece of solid-colored fabric at the upper part, and a long, layered dress mostly in bright blue or red, with embroidered fringe. Gorgeous, isn’t it?
At first, I thought their hats were soft and easy to fold up, until I tried one out in a small eatery in Cabanaconde. The owner family was also making the traditional hats, and the friendly owner let curious me try one hat on. The hat was actually pretty hard with a fixed shape, and it’s not so light as I imagined. In this high elevation area, the wide rim in front must have worked well in blocking some high UV rays.
It’s interesting that it’s the man in this family who was making these traditional layered dresses. Like what I happened to see on a street in the village:
I noticed younger women in the village don’t usually wear the traditional vest or dress, but the hat was still a common sight:
That’s it for today’s post about the traditional clothing in Cabanaconde. Hope you like it! Have you ever been to this beautiful region in Peru? What kind of traditional clothing impressed you in your travels? Feel free to comment below. Until next time! 😁
Thank you for reading. =) Check out my recent posts below, and follow me for more!
##
Cube Houses in Rotterdam 探秘鹿特丹的魔方房
Hong Kong Star Ferry Crossing at Sunset 暮色中的维多利亚港和天星小轮
The Exciting Drive at Gotthard Pass in Swiss Alps 行驶在全球最长的隧道山口
Explore Easter Island with Me (1) - Introduction and Anakena 复活节岛摩托之旅（一）
@ItchyfeetDonica is my only account here and I’m 200% real ;) → Introduce Cross-culture Me on This Cross-over Platform 处女贴-自我介绍
Here are some screenshots from my Instagram. Follow @ItchyfeetDonica for more shots around the globe!
!steemitworldmap -15.621893 lat -71.980705 long Cabanaconde Peru d3sc
This page is synchronized from the post: ‘#34 Traditional Clothing in Peru’’s Colca Canyon 👗🇵🇪 秘鲁大峡谷山民的传统服装长什么样？’


Building PhoneGap at Nitobi then Adobe
Free Software in Small and Large Corporations
@brianleroux , Adobe Systems, Apache Cordova / PhoneGap, wtfjs
nitobi circa 2007
- had been around a few years - 7 full time employees - created, and sold, javascript gui components - open source...once you paid - side consulting
We take our work seriously, but not ourselves. - @andrecharland
- blogging, attending community events, early embracing of twitter - lots of beer - fascination with improving - sorta outcasts b/c we liked js
open sourcery
- early forays into open source were just us using the software and less about contributing - github changed everything - we tended to favor MIT License
Maintaining expectations is crucial.
- frequent contact via phone, email, and in person common - mitgate with continuous integration, allow clients to particpate in daily builds (w/ boundies on bug tracking)
Around this time we start talking about "the github model".
- Open source all IP possible to facilitate adoption, community, and thus ecosystem, growth. - Make an easy to use hosted service for the completely free IP and charge for it. - Couple with additional revenue streams from enterprise installations, partnering, support, consulting, and training.
github model === paas?
Open source all IP possible to facilitate adoption, community, and thus ecosystem, growth.
Make an easy to use hosted service for the completely free IP and charge for it.
Couple with additional revenue streams from enterprise installations, partnering, support, consulting, and training.
2007 we knew three things about the future
Open collaborative models are more effective at distruption than propreitary competative models.
Mobile was going to be big and nobody has a clue how to do it.
Web development, and specifically JavaScript development, on the rise.
- the new browser war: v8, spidermonkey, nitro, rhino - nodejs emerges
2007 Apple Releases iPhone
Jobs says the web is the platform to build apps.
Dev Community Response
Devs wanted to lock into a proprietary platform!?
2008 Apple Obliges and Releases iPhone SDK
Complete with curated distribution channel!
Rob and Brock created the first PhoneGap port (iPhone).
- MIT licensed right away - on github right away
Wherein @andrecharland gives the first ever presentation about PhoneGap.
@infil00p (Joe Bowser) created the PhoneGap/Android port. (Note his awesome Nitobi shirt.)
Short time later @davejohnson wrote the first PhoneGap/BlackBerry port.
The project goals and philosophy articulated at the first JSConf in 2009.
- at this point we had some outside contrib - most of the infra we needed was setup
PhoneGap Project Goals
Cease to exist.
The web is a first class development platform.
- The goals of the project begin to crystalize. - It is no coincidence this is when outside contribution and adoption began in earnest.
The morter for community bricks.
1. Audicious Mission 2. Principles > Practice 3. Beliefs and Development Philosphy
2009 Web 2.0 Expo LaunchPad
IBM begins contributing
- amazing technical chops: tests, docs - great cadence - totally into collaboration transparently
Our First CLA Debacle
- we accidently used an old sun cla; that was dumb - community WAS FUCKING PISSED - irony: only 10 ppl contributing at the time - had a public phone call and yelled at eachother
PhoneGap 0.8.0+, approved by Apple for AppStore
- a tonne of ppl where submitting apps named PhoneGap to apple - they began rejecting us - we only used public apis; they thought we were compiling our own browser - after a few weeks of back and forth they gave our src the thumbs up
Cadence
Get on the release train.
- we follow the class MAJOR.MINOR.PATCH system - we aim to ship a MINOR every month - we ship a PATCH if we fuck up the MINOR - we ship a MAJOR every July - we deprecate violently, but retrain support for 6 months, semversioning makes no sense
Release Train Benefits
Dates no longer slip; we move bugs to the next release.
Bug response time blazing fast.
Predictability for the community.
Momentum for the developers.
What about Marketing?
- By this point I was personally averaging 2 presentations a month. Never turned one down unless I was prebooked. - The larger community was blogging, tweeting, and responding for us. - The message of our goals was a powerful unifying force. - newsletter, featured apps and case studies are key materials - press releases are a waste of money/time - indy confs are the way to create buzz
Services
- how do you make money? we write code for ppl. - build phonegap apps - native apps - javascript apps - rails, wordpress, django, and even drupal bs. we had no shame. - $200/hr base rate
Support
- same as dev except structured and limited - basically worked out the same price - more contractually binding - should have done this right away
Training
- tough going but was our secret weapon for marketing - tell the SARS story - not as bad once we got the hang of it - interestingly, really showed the value of phonegap/build
2010 PhoneGap/Build is created
- it was the IP we could sell - it was a potential revenue stream - it solved a massive PITA
Around this time, @andrecharland replaces 'Github Model' with 'Mullet Model', yoheis created this img to help explain.
July 2011: we ship 1.0
2011 Adobe Acquires Nitobi
- Contributed the PhoneGap src to Apache for incubation as Apache Callback. - Shortly after renamed to Apache Cordova. - We had at this point hired our first person for marketing related duties, 24 person team, 3 where not writing code.
Lots of Open Src
Tamarin
Apache Jackrabbit
Apache Cordova
WebKit
Web Standards
- mostly in the csswg right now - our focus on DAP and SysApps
Official Corporate Policy
You need to let your manager know you'll be open sourcing this project to ensure that there are no other efforts that you may not know about that could be related to your project.
Official Corp Policy
You need VP approval to open source the tool. In seeking approval, you need to make it clear why you believe it is important to open source this tool and also lay out what that means.
Official Corp Policy
You need to clear it with Legal.
Official Corp Policy
Choose a license style based on what you want end users to be able to do (BSD, MIT, GPL, etc.) – legal can help you finalize/customize the license once you've decided.
Official Corp Policy
Clear with branding whatever name you wish to call the tool.
Official Corp Policy
You need the patent team's approval to open source this tool.
Incubation: The Theory
PhoneGap was in its 4th year!
What happens when two old roosters meet?
Areas of possible Concern
Everything happens via email in the Apache Way.
Trends towards a vote based process.
The forge is tightly coupled to the legal entity.
Thus committed to certain infra choices (like SVN).
The Great Git Contraversy of 2011-2012
- Lasted about a month, basically we were told: NO, NON NEGOTIABLE. - Our Mentors and CouchDB guys worked with us to help convince Apache we could use Git in a way reponsible to the Apache License. - Came to a head with this sensationalist post by Mikeal Rogers .
The Future
Collaborative models are the future.
Mobile IS big and getting bigger.
No problem too small to tackle with a large enough community.
Community is your top priority
Ppl rally behind big audicious goals.
Cadence demonstrates activity and life.
There are a million ways to help!


This prototypical website enables the calculation of selected text entry performance measures. More background information on the measures can for instance be found in Wobbrock's "Measures of Text Entry Performance".
Please enter below:
The quick brown fox jumps over the lazy dog.


UGS Water Chemistry Change Log
Back to the app
Open Issues
1.1.1 Aug 29, 2017
- Lower max selected stations from 3,000 down to 1,000.
1.1.0 Nov 23, 2016
- Switch grid queries to dynamic layers for performance increase.
- Implement a limit of 3000 for filtered stations (#75).
1.0.0 May 31, 2016
- Add help link to header and associated page (#74).
- Fix bug preventing data filter from being closed (#72).
- Add Exchange Network logo/link (#73).
- Add additional base map options and switch default to ESRI streets (#71).
- Make the layer selector match other controls.
- Switch application to web mercator (source data is still in UTM) (#66).
0.9.3 Apr 21, 2016
- Fixed layout bug causing data to overlap grid headers (#70).
0.9.2 Apr 21, 2016
- Make KML stations symbol bigger (#67).
0.9.1 Apr 21, 2016
- Fix bug related to large polygon queries (#63).
0.9.0 Apr 19, 2016
0.8.1 Apr 15, 2016
- Patch to fix security for charts.
0.8.0 Apr 15, 2016
Set up security for SDWIS data. You now have to be logged in to see it (#41).
0.7.0 Apr 11, 2016
- Fixed layout bug causing the grid to overflow off the bottom of the page (#55).
- Added functionality to allow the user to dynamically resize the height of the grid (#62).
- Better error notification on for grid errors.
- Updated connection information to point to test database.
0.6.1 Mar 31, 2016
- Prevent station select while drawing polygons (#59).
0.6.0 Mar 29, 2016
- Added scatter plots (#39).
- Fixed bug causing chart gp task to fail every other time (#61).
- Fixed bug causing the spinner to not show on the "Generate Chart" button (#60).
0.5.1 Sep 28, 2015
- Fixed bug preventing data from showing in results tab.
0.5.0 Sep 28, 2015
- Better wiring of grid to backend service. No more worrying about 1000 feature limit (#49)
0.4.2 Sep 18, 2015
- Fix query that populates the Results grid.
0.4.1 Sep 17, 2015
- Switch to showing only filtered features when a filter is active.
- Alphabetize filters in drop down.
- Optimize server queries for non-polygon filters.
- Fix date filter to work with new SQL Server database.
0.4.0 Sep 10, 2015
- Tweaks to make work for new database generated by version two of dbseeder.
0.3.1 Jun 1, 2015
- Added Grid container (only partially populated) showing selected station and results data (#38).
0.2.1 Apr 24, 2015
- Added any/all buttons (#47).
- Added Org ID filter
- Added Parameter filter with typeahead (#35).
- Fixed a bug related to polygon searches.
0.2.0 Mar 31, 2015
- Added County, State, Polygon, Date Range, Site Type, Parameter Group & Data Source filters (#35).
- Seeded initial database but no update schedule yet.
0.1.0 2014


[GSoC 2016] Coding phase - First post
Hello all!
As part of the initial stage of the Coding Phase, I had a discussion with my mentor regarding the immediate set of tasks/features to be implemented for the tool (picking from the points highlighted in the proposal). The following are tasks at hand:
- translator - A system to translate Curry into a format that is suitable for ruby_curry compiler. At the moment we aim to directly translating Curry to JSON if possible with definitional tree information.
- backtracking - The compiler has a stack based backtracking feature to handle CHOICE in Curry. However this module seems buggy and fails for certain examples.
- Quality and type system
In addition, I have also added a new test framework to ruby_curry which will enable to integrate all unit tests. This will be beneficial in continously testing the new changes that are being made to the compiler or other relevant modules of the tool.
To integrate all tests, I added a Rake task for tests. All the current unit tests can be run by the rake test
command in the base directory of ruby_curry. The commit for this change can be found here.


number pod floral QTLs DEGs genes meristem Zhongshuang using Arabidopsis RNA No. .–. sequencing Plant QTL expression gene SAM qPN.A- development Table analysis identified mapping {border-style detected BnaZNRIL Wang inflorescence organ px;} showed #ffffff;} BnaAgD Brassica napus population total (.%) flower reads file mechanism rapeseed shoot .E- apical genetic linkage performed role used Biol BnaCgD bud qPN.C- transcription formation function growth indicated ATG Gene functional homologous metabolism protein qPN.A-, represented study, transcriptome Additional BnaZNF Cell according branch development. difference level maintenance mapped molecular respectively. significant studies variation (Table KEGG Pod Research Total annotation corresponding data database expressed main number. previous px; quantitative study value {font-family Annotated Fig. Illumina LINK Liu Physiol RIL SNP cDNA candidate cellular environments factors flowering font-size integrated kb) play populations qPN.C-) trait (%) (Additional (Fig. (XLSX Chen Curr DNA Genomics LOD Min No., No.. Sci Science Technology Zhang annotated article cell conducted consensus-QTLs control determined differentiation double; identity important including initiation involved major metabolism, new pathways plant promising promote qRT-PCR rapeseed. rate reference related selected studies, which, yield (Brassica Agricultural BMC Development Genes Genet However, Jiang L.) Max Mean Opin Parents Pt-test S). Zhongshuang, addition, amino axis biological border-color border-width candidates clean considered cytokinins derived different differentially discovery distributed environmental essential functions genes. genome group groups identify included inflorescence, integration internal mainly method pathway plant, previously process qPN.A-), regions repeatedly results samples seed shows solid; {font-style {font-weight (GO) ./j.pbi... ./tpc.. DEGs, Hanzhong Innovation Kyoto Nat QTLs. RPKM Shi Sun TFL Then, Transcriptome acid activity based bold category codes complex components constructed courier; development, dissect diverse effect em; encodes enriched especially factor, family field fragments genomic heritability higher information kilobase leaf libraries map meta-analysis million ontology parents polyamine process, provides pt;} real-time regulate respectively, second seven size soybean stage stem suggestive thaliana threshold


SetrangeCommand
ï»¿#sidebar
StringCommandsSidebar 2.1.8) =
Time complexity: O(1) not counting the time taken to copy the new string in place, as usually this string is small so the amoritzed time is O(1). Otheriwse O(M) with M being the length of the value argumentOverwrites part of a string at key starting at the specified offset,for all the length of value.If the offset is over the old length of the string, the string is paddedwith zero bytes until needed. Non existing keys are considered likealready containing an empty string.
First example, basic usage setting a range.
redis> set foo "Hello World"
OK
redis> setrange foo 6 "Redis"
(integer) 11
redis> get foo
"Hello Redis"
Example of the zero padding behavior.
redis> del foo
(integer) 1
redis> setrange foo 10 bar
(integer) 13
redis> get foo
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00bar"
Note that the maximum offset that you can set is 536870911 as Redis Strings are limited to 512 megabytes. You can still create longer arrays of values using multiple keys.
Warning: When setting the last possible byte and the string value stored at
key does not yet hold a string value, or holds a small string value, Redis needs to allocate all intermediate memory which can block the server for some time.
On a 2010 Macbook Pro, setting byte number 536870911 (512MB allocation) takes ~300ms,
setting byte number 134217728 (128MB allocation) takes ~80ms,
setting bit number 33554432 (32MB allocation) takes ~30ms and
setting bit number 8388608 (8MB allocation) takes ~8ms.
Note that once this first allocation is done, subsequent calls to SETRANGE for the same
key will not have the allocation overhead.
Thanks to SETRANGE and the analogous GETRANGE command you can use Redis strings as a linear array of memory with O(1) random access. This is a very fast and efficient storage in many real world use cases.
Integer reply, specifically: the length of the string after it was modified by the command.


“Atacama soil microbiome” tutorial¶
Note
This guide assumes you have installed QIIME 2 using one of the procedures in the install documents and completed the moving pictures tutorial.
This tutorial is designed to serve two purposes. First, it illustrates the initial processing steps of paired-end read analysis, up to the point where the analysis steps are identical to single-end read analysis. This includes the importing, demultiplexing, and denoising steps, and results in a feature table and the associated feature sequences. Second, this is intended to be a self-guided exercise that could be run after the moving pictures tutorial to gain more experience with QIIME 2. For this exercise, we provide some questions that can be used to guide your analysis, but do not provide commands that will allow you to address each. Instead, you should apply the commands that you learned in the moving pictures tutorial.
In this tutorial you’ll use QIIME 2 to perform an analysis of soil samples from the Atacama Desert in northern Chile. The Atacama Desert is one of the most arid locations on Earth, with some areas receiving less than a millimeter of rain per decade. Despite this extreme aridity, there are microbes living in the soil. The soil microbiomes profiled in this study follow two east-west transects, Baquedano and Yungay, across which average soil relative humidity is positively correlated with elevation (higher elevations are less arid and thus have higher average soil relative humidity). Along these transects, pits were dug at each site and soil samples were collected from three depths in each pit.
Obtain the data¶
Start by creating a directory to work in.
mkdir qiime2-atacama-tutorial
cd qiime2-atacama-tutorial
Before starting the analysis, explore the sample metadata to familiarize yourself with the samples used in this study. The sample metadata is available as a Google Sheet. This sample-metadata.tsv
file is used throughout the rest of the tutorial.
Download URL: https://data.qiime2.org/2017.6/tutorials/atacama-soils/sample_metadata.tsv
Save as: sample-metadata.tsv
wget -O "sample-metadata.tsv" "https://data.qiime2.org/2017.6/tutorials/atacama-soils/sample_metadata.tsv"
curl -sL "https://data.qiime2.org/2017.6/tutorials/atacama-soils/sample_metadata.tsv" > "sample-metadata.tsv"
Next, you’ll download the multiplexed reads. You will download three fastq.gz
files, corresponding to the forward, reverse, and barcode (i.e., index) reads. These files contain a subset of the reads in the full data set generated for this study, which allows for the following commands to be run relatively quickly. If you are only planning to run through the commands presented here to get experience with the first steps of paired-end read analysis, you can use the 1% subsample data set so that the commands will run quickly. If you’re planning to work through the questions presented at the end of this document to gain more experience with QIIME analysis and data interpretation, you should use the 10% subsample data set so that the analysis results will be supported by more sequence data.
1% subsample data¶
mkdir emp-paired-end-sequences
Download URL: https://data.qiime2.org/2017.6/tutorials/atacama-soils/1p/forward.fastq.gz
Save as: emp-paired-end-sequences/forward.fastq.gz
wget -O "emp-paired-end-sequences/forward.fastq.gz" "https://data.qiime2.org/2017.6/tutorials/atacama-soils/1p/forward.fastq.gz"
curl -sL "https://data.qiime2.org/2017.6/tutorials/atacama-soils/1p/forward.fastq.gz" > "emp-paired-end-sequences/forward.fastq.gz"
Download URL: https://data.qiime2.org/2017.6/tutorials/atacama-soils/1p/reverse.fastq.gz
Save as: emp-paired-end-sequences/reverse.fastq.gz
wget -O "emp-paired-end-sequences/reverse.fastq.gz" "https://data.qiime2.org/2017.6/tutorials/atacama-soils/1p/reverse.fastq.gz"
curl -sL "https://data.qiime2.org/2017.6/tutorials/atacama-soils/1p/reverse.fastq.gz" > "emp-paired-end-sequences/reverse.fastq.gz"
Download URL: https://data.qiime2.org/2017.6/tutorials/atacama-soils/1p/barcodes.fastq.gz
Save as: emp-paired-end-sequences/barcodes.fastq.gz
wget -O "emp-paired-end-sequences/barcodes.fastq.gz" "https://data.qiime2.org/2017.6/tutorials/atacama-soils/1p/barcodes.fastq.gz"
curl -sL "https://data.qiime2.org/2017.6/tutorials/atacama-soils/1p/barcodes.fastq.gz" > "emp-paired-end-sequences/barcodes.fastq.gz"
10% subsample data¶
mkdir emp-paired-end-sequences
Download URL: https://data.qiime2.org/2017.6/tutorials/atacama-soils/10p/forward.fastq.gz
Save as: emp-paired-end-sequences/forward.fastq.gz
wget -O "emp-paired-end-sequences/forward.fastq.gz" "https://data.qiime2.org/2017.6/tutorials/atacama-soils/10p/forward.fastq.gz"
curl -sL "https://data.qiime2.org/2017.6/tutorials/atacama-soils/10p/forward.fastq.gz" > "emp-paired-end-sequences/forward.fastq.gz"
Download URL: https://data.qiime2.org/2017.6/tutorials/atacama-soils/10p/reverse.fastq.gz
Save as: emp-paired-end-sequences/reverse.fastq.gz
wget -O "emp-paired-end-sequences/reverse.fastq.gz" "https://data.qiime2.org/2017.6/tutorials/atacama-soils/10p/reverse.fastq.gz"
curl -sL "https://data.qiime2.org/2017.6/tutorials/atacama-soils/10p/reverse.fastq.gz" > "emp-paired-end-sequences/reverse.fastq.gz"
Download URL: https://data.qiime2.org/2017.6/tutorials/atacama-soils/10p/barcodes.fastq.gz
Save as: emp-paired-end-sequences/barcodes.fastq.gz
wget -O "emp-paired-end-sequences/barcodes.fastq.gz" "https://data.qiime2.org/2017.6/tutorials/atacama-soils/10p/barcodes.fastq.gz"
curl -sL "https://data.qiime2.org/2017.6/tutorials/atacama-soils/10p/barcodes.fastq.gz" > "emp-paired-end-sequences/barcodes.fastq.gz"
Paired-end read analysis commands¶
To analyze these data, the sequences that you just downloaded must first be imported into an artifact of type EMPPairedEndSequences
.
qiime tools import \
--type EMPPairedEndSequences \
--input-path emp-paired-end-sequences \
--output-path emp-paired-end-sequences.qza
You next can demultiplex the sequence reads. This requires the sample metadata file, and you must indicate which column in that file contains the per-sample barcodes. In this case, that column name is BarcodeSequence
. In this data set, the barcode reads are the reverse complement of those included in the sample metadata file, so we additionally include the --p-rev-comp-mapping-barcodes
parameter. After demultiplexing, we can generate and view a summary of how many sequences were obtained per sample.
qiime demux emp-paired \
--m-barcodes-file sample-metadata.tsv \
--m-barcodes-category BarcodeSequence \
--i-seqs emp-paired-end-sequences.qza \
--o-per-sample-sequences demux \
--p-rev-comp-mapping-barcodes
qiime demux summarize \
--i-data demux.qza \
--o-visualization demux.qzv
After demultiplexing reads, we’ll look at the sequence quality based on ten randomly selected samples, and then denoise the data. When you view the quality plots, note that in contrast to the corresponding plots in the moving pictures tutorial, there are now two plots per sample. The plot on the left presents the quality scores for the forward reads, and the plot on the right presents the quality scores for the reverse reads. We’ll use these plots to determine what trimming parameters we want to use for denoising with DADA2, and then denoise the reads using dada2 denoise-paired
.
In this example we have 150-base forward and reverse reads. Since we need the reads to be long enough to overlap when joining paired ends, the first thirteen bases of the forward and reverse reads are being trimmed, but no trimming is being applied to the ends of the sequences to avoid reducing the read length by too much. In this example, the same values are being provided for --p-trim-left-f
and --p-trim-left-r
and for --p-trunc-len-f
and --p-trunc-len-r
, but that is not a requirement.
qiime dada2 denoise-paired \
--i-demultiplexed-seqs demux.qza \
--o-table table \
--o-representative-sequences rep-seqs \
--p-trim-left-f 13 \
--p-trim-left-r 13 \
--p-trunc-len-f 150 \
--p-trunc-len-r 150
At this stage, you will have artifacts containing the feature table and corresponding feature sequences. You can generated summaries of those as follows.
qiime feature-table summarize \
--i-table table.qza \
--o-visualization table.qzv \
--m-sample-metadata-file sample-metadata.tsv
qiime feature-table tabulate-seqs \
--i-data rep-seqs.qza \
--o-visualization rep-seqs.qzv
From this point, analysis of paired-end read data progresses in the same way as analysis of single-end read data. You can therefore continue your analyses of these data following the steps that you ran in the moving pictures tutorial.
Questions to guide data analysis¶
Use the following questions to guide your further analyses of these data data.
- What value would you choose to pass for
--p-sampling-depth
? How many samples will be excluded from your analysis based on this choice? Approximately how many total sequences will you be analyzing in thecore-metrics
command? - What sample metadata or combinations of sample metadata are most strongly associated with the differences in microbial composition of the samples? Are these associations stronger with unweighted UniFrac or with Bray-Curtis? Based on what you know about these metrics, what does that difference suggest? For exploring associations between continuous metadata and sample composition, the commands
qiime diversity beta-correlation
andqiime diversity bioenv
will be useful. These were not covered in the Moving Pictures tutorial, but you can learn about them by running them with the--help
parameter. - What do you conclude about the associations between continuous sample metadata and the richness and evenness of these samples? For exploring associations between continuous metadata and richness or evenness, the command
qiime diversity alpha-correlation
will be useful. This was not covered in the Moving Pictures tutorial, but you can learn about it by running it with the--help
parameter. - What discrete sample metadata categories are most strongly associated with the differences in microbial community richness or evenness? Are these differences statistically significant?
- In taxonomic composition bar plots, sort the samples by their average soil relative humidity, and visualize them at the phylum level. What are the dominant phyla in these samples? Which phyla increase and which decrease with increasing average soil relative humidity?
- What phyla differ in abundance across vegetated and unvegetated sites?
Acknowledgements¶
The data used in this tutorial is presented in: Arid Soil Microbiome: Significant Impacts of Increasing Aridity. Neilson, Califf, Cardona, Copeland, van Treuren, Josephson, Knight, Gilbert, Quade, Caporaso, and Maier. mSystems (under review).


Sales And Inventory
date
name of establishment>
Add Items to Inventory
fill this form to add items to your inventory
Item ID
Item Name
quantity
units
Specify MoU
Bag
Carton
Drum
Others
Add to Inventory


NASA International Space Apps Challenge
The International Space Apps Challenge is an international mass collaboration focused on space exploration that takes place over 48-hours in cities around the world. The event embraces collaborative problem solving with a goal of producing relevant open-source solutions to address global needs applicable to both life on Earth and life in space. NASA is leading this global collaboration along with a number of additional government collaborators and 100+ local partner organizations.
The challenge: Bootstrapping of Space Industry
Background
The concept of establishing a presence on the Moon in some form is elusive to many people. How hard is it? Could we do it? Why should we? What resources does the Moon have that could support an industry? We want to raise awareness about both the potential for a lunar industry and the challenges of developing one.
Challenge description
Develop a simulation of a lunar industry through a series of "bootstrapping" stages until it becomes self-sustaining. The strategy is to decide which machines to build first and how many of them, using resources launched from Earth and available from the Moon. A major part of this challenge is learning what the purpose and value of a lunar industry could be and incorporating it into the game.


{% load static %}
Resolute QA
Projects
Summary
(current)
Run Results
{% for suite in suite_runs %}
{{ suite.suite.suite_name }}
{% endfor %}
Bugs
Upload
Admin
Project:
{{ projectenvironment.project }}
Environment:
{{ projectenvironment.environment }}
Summary Results
Overall Result Summary
Total Tests
Passed
Failed
Inconclusive
Ignored
Result %
{{ total_tests }}
{{ passed_tests }}
{{ failed_tests }}
{{ inconclusive_tests }}
{{ ignored_tests }}
{{ pass_percentage }}%
Suite Result Summaries
Suite Name
Run Date
Total Tests
Passed
Failed
Inconclusive
Ignored
Result %
{% for run in suite_runs %}
{{ run.suite.suite_name }}
{{ run.start_time|date:"m-d-Y" }}
{{ run.total_tests }}
{{ run.passed_tests }}
{{ run.failed_tests }}
{{ run.inconclusive_tests }}
{{ run.ignored_tests }}
{{ run.result_precentage }}%
{% endfor %}


An element directive to to draw a day block calendar, like this:
primary
or green
small
or x-large
date
: The date you want to display, see luifMoment for supported values. show-day
: this argument must be a boolean, if true the directive shows the name of the day on top.primary-color
: use these two arguments to have your own color palette. secondary-color
: see above
<!-- basic usage --> <luid-day-block date="myDate"></luid-day-block> <!-- with a palette and size --> <luid-day-block date="myDate" class="lui primary large"></luid-day-block> <!-- with custom colors --> <luid-day-block date="myDate" show-day="showDay" primary-color="customPrimaryColor" secondary-color="'white'"></luid-day-block>
Palette :
Sizing :
primary color:
secondary color:


Google Earth Enterprise Documentation Home | Portable
Portable Globe and Server 5.2
- Overview
- Installation
- Creating a portable globe
- Portable server
- Connecting to a portable globe
- Usage of the Apache (glc) Module
- Command line reference
Overview
The Google Earth Enterprise Portable Server solution enables organizations to access portions of their custom globes in the field when no network access may be available or possible. Using a web interface, end-users may select an area of interest to download from a Google Earth Enterprise Server for offline use on their Linux or Windows laptop with the Portable Server application.
All data available within a specified area of interest is downloaded and stored in a portable globe, including all high-resolution imagery, terrain, vector data, KML files, and searchable Point of Interest (POI) locations. Outside of the specified area of interest, only low resolution imagery and terrain will be stored in a portable globe. These levels of resolution can be specified when the globe is cut.
Portable globes may be specified, generated, and downloaded in as quickly as a few minutes — depending on the area of coverage — to support rapid preparation for first responders, or larger globes may be built in advanced preparation for responders to have ready “on the shelf.”
The Portable Server solution is made up of two applications:
- The globe cutter tool, which is installed on a production Google Earth Enterprise Server system hosting a 3D database. This tool allows end-users and administrators to select, package, and download a portion of the 3D Earth as a portable globe file.
- The portable server is installed on Linux or Windows machines in the field. It can operate in a single-user mode for complete offline usage by one user, or can broadcast a portable globe so that multiple Portable Server users, and/or mobile users with compatible Android-based smart phones, can view the same globe.
Note: The Portable Server solution can also create portable globes from a 2D map source. This document uses the term portable globe only, but instructions apply to both globes and maps.
Installation
This section describes installation of the two applications that make up the Portable Server solution.
Globe cutter installation
The portable globe cutter tool is installed with Google Earth Enterprise Server Open Source. Globe cutting is disabled by default; to enable it you must set the --enable_cutter
flag for geserveradmin
from the command line:
# geserveradmin --enable_cutter
By default, the cut globes will be stored in the /opt/google/gehttpd/htdocs/cutter/globes
directory. The cut globes can be large, and many servers do not have sufficient storage allocated in this directory for multiple globes. If this is the case for your server, you may consider designating a different directory as the storage area for the cut globes.
Portable globe server installation
The portable server is supported on:
- Linux distributions Cent OS 7, RHEL 7, Ubuntu 14, Ubuntu 16
- Windows 7 and 10
Refer to the Portable Server Wiki page for build and install instructions.
Creating a portable globe
Cutting a globe is accomplished with a simple web interface. You'll use your mouse, or import KML, to define a polygon, which defines your 'area of interest.' This polygon not only defines the area that will display high-resolution imagery, but is also used by Fusion to create a localized search database.
Note: The globe cutting processes are CPU and disk intensive, as they are retrieving all data within the specified polygon from the Earth Enterprise Server. This can affect the overall performance of the Server, including slowing end-user access.
To mitigate performance impact to end users, you may consider:
- Limiting the number of users with access to globe cutting.
- Creating pre-cut portable globes to host as downloadable files for portable users.
- Operating a separate GEE Server specifically to support on-demand globe cutting needs.
Before you begin
Enable the cutter
Before cutting a globe, you must enable the cutter from the command line:
# geserveradmin --enable_cutter
Note about authentication and SSL: Cutting is not currently supported on globes that require end-user authentication e.g. LDAP. One workaround is to allow unauthenticated access from localhost on your Earth Enterprise Server. Refer to Apache documentation to enable such a configuration. Cutting of a globe over HTTPS is supported; however the SSL certificate of the target server will not be verified during cuting.
The globe cutter interface
To create a portable globe, point your browser to http://yourserver/cutter
, where yourserver
is the server on which Earth Enterprise Server is running. The Globe Creator page appears.
Select the globe you'd like to cut your portable version from in the drop-down menu.
Note: Additional options can be shown by clicking on the 'Advanced …' button after a cut region has been selected. These options are, namely, Polygon level. This setting is useful when cutting with large polygons; e.g. use 12 for a country-sized polygon and 18 for a city-sized polygon. Additional advanced settings may be offered in future versions. Use caution when changing them as they may dramatically increase build times and globe sizes.
Globe name
The globe name defines the filename of this globe; it will be created as a .glb
file, which is a single-file format for sharing Google Earth Enterprise globes. Spaces, slashes, and double dots (..) will be converted to underscores in the saved globe name.
We recommend using a descriptive name for each globe, so that others will know what geographic area, or what mission, the globe was created for.
Note: Building a globe will overwrite any existing globes with the same name. If multiple users are cutting globes, we recommend assigning unique prefixes to each user for their globe names to ensure that files are not accidentally overwritten.
Drawing the polygon
Once the globe name has been specified, you can define the geographic region to be cut, by drawing a polygon on the globe. There are two ways to draw the polygon, one of which is deprecated.
Defining the polygon with KML
You can use KML to define the polygon(s). The KML should be complete, and may contain single or multiple <polygon> </polygon>
elements. To insert your KML:
- Select the Enter polygon as KML checkbox.
- Paste your KML into the text field.
- Click outside of the text field. Your polygon appears on the map, if you are running the deprecated Google Earth plug-in.
Hand drawing the polygon
This method is only available if you are have the deprecated Google Earth plug-in running in your browser.
First, using the navigation controls in the plugin, zoom in to the region of interest. To use your mouse to define the polygon, click the polygon icon in the globe window:
Then, click on the globe to define each point. You can use the navigation controls on the right to move the globe or change zoom levels while drawing.
Double-click the final point to complete the polygon selection, at which point the polygon should change from blue to purple.
You can view the KML of the shape you've drawn by selecting the Enter polygon as KML checkbox.
Globe resolution
The polygon you specify in the previous step defines your 'area of interest.' This area will contain high-resolution imagery and data, and search tabs will be created for information that lies within this zone. The maximum and minimum resolutions are specified as integers between 1 and 24. These correspond to the zoom levels that are used in the Fusion server.
Minimum resolution
The zoom level for the polygon area is specified in the Maximum resolution to extract field.
A minimum zoom level of 5-7 will present a decent-looking world to the user and will most likely include vector layers such as international boundaries and state boundaries and main cities without affecting the size of the .glb
file very much. For example:
- A cut globe with minimum and maximum resolution values set to 5 is 10MB.
- A cut globe with minimum and maximum resolution values set to 6 is 41MB.
- A cut globe with minimum and maximum resolution values set to 7 is 120MB.
These numbers are small in comparison to the overall size of your globe when a suitable maximum resolution has been selected. For example, a globe that contains all of the city of Atlanta, GA, USA in 1-foot resolution requires approximately 5GB of storage. Even level 7 imagery, at 120MB, is a small percentage of the overall globe size.
Maximum resolution
The area outside of the defined polygon will be included in the globe at a lower resolution, which is defined within the Minimum resolution to extract field. Areas near the polygon may be included at a higher resolution.
The maximum resolution of the cut globe will be no higher than the maximum resolution of the source globe. For example, if the maximum resolution in the cutter is specified at 24, but the source imagery is at 18 (approximately 1-meter resolution), the cut globe will contain level 18 imagery. You can leave this field blank to use the highest available imagery.
You may enter a lower number to reduce the size of your globe, by not including the highest resolution imagery.
Building the globe
Click Build to start the build process. Depending on the size of your polygon, this can take from a few minutes to a few hours; likewise, file size will vary widely depending on the area selected and the desired resolution.
When the build is finished, a .glb
file is created and a download link appears to the file's location on the Earth Server. Save the file into the <portable-server-unpack-directory>/data
directory with the other .glb
files. Alternately, the globe file can be copied onto portable media like a DVD, thumb drive, or external hard drive to be delivered to users.
The .glb
file contains all that you need to share your portable globe — imagery, terrain, and vector assets, plus the search database. For this reason, it's important to retain control of your globe if it contains sensitive or proprietary information.
Search tabs
When a globe is cut, the search tabs associated with the globe are also bundled with the globe. However, because search plugins in Google Earth Enterprise run within the Tomcat / Apache instance on the Earth server, most search tabs will not work in a portable globe.
The Portable Server uses its own search framework that allows Python code stored on the portable machine to execute in place of the GEE plugin.
KML files
When a portable globe is cut from a source containing KML links in the Layer panel:
- KML files that are stored locally on the primary Earth Server will be bundled into the portable globe. Only the main KML file will be copied, not any links or files that are embedded as links in the main KML file. The default copy is not recursive.
- KML links that refer to servers other than the primary Earth Server are not copied. The layer will be visible in the client, but clicking the link will not cause any data to be displayed. If access to external servers is needed, a small KML file should be stored locally on the primary Earth Server. This KML file should contain a link to the intended external server.
These behaviors can be modified if the globe is built from the command line rather than from the GUI as described in the Command line reference section of this document.
Historic Imagery
Historic Imagery is not supported in the portable globe as of Fusion 4.2.
There are, however, two situations in which historic imagery will be displayed:
- When the computer running the portable globe has a connection to the Earth server from which the globe was cut. In this case, historic imagery can be streamed from the Earth server. Once in the field, however, and disconnected from the Earth server, no historic imagery will be displayed.
- If historic imagery has been cached on the portable globe machine.
If the portable globe's computer has a connection to the original Earth server from which the globe was cut,
Otherwise, the following error message will appear:
Google Earth can't contact the imagery server to download new images.
You'll be able to see areas that you've been to recently, but new image areas may appear blurry.
Portable server
The portable server is a lightweight web server that runs on Linux and Windows computers. The web server starts within seconds and begins serving one of the globes that has been saved to the data
directory. Once the globe is served, it can be opened in a web browser.
Serving a globe
Copy the globe to be served into the data
subdirectory (or whichever directory is specified as the globes_directory
in portable.cfg
).
- To start serving run the following command in the directory you unpacked Portable Server:
python portable_server.py
- Navigate to the Portable Server administrative page at
http://localhost:9335
. If you have set a customport
number inportable.cfg
, substitute that for "9335".
You can select what globe is being served from the administrative page. Click on the folder icon (), and you should a see a screen where you can select what globe, or map should be served by Portable Server.
You can shut down Portable Server from the administrative page, as well. Click on the hamburger menu button (), and then on 'Quit'.
Broadcasting a globe
To share a globe with others on your network:
- Make sure
disable_broadcasting
is set toFalse
in yourportable.cfg
. - If you're not already serving a globe, select the globe to serve from the Portable Server interface.
- On the Portable Server administrative page, click the broadcast icon ().
Changing the globe being served
To change the globe being served:
- Point your browser to
http://localhost:9335
, click the folder button (), and select your new globe.
If you're accessing the globe with the Google Earth Enterprise Client, log out of the client and log back in to http://localhost:9335
.
Connecting to a portable globe
It's possible to connect to a portable globe from a variety of platforms.
Google Earth EC
Launch the Google Earth EC client. When prompted for a server address, enter http://localhost:9335
. If you've changed the default port in portable.cfg, use the new port value instead.
Google Earth API
The Google Earth Enterprise Portable Server comes with a preconfigured HTML page that displays your globe using the Earth API. The page relies on the discontinued Google Earth browser plug-in to render globes, so it doesn't work in most recent browsers. This page is at http://localhost:9335/earth/earth_local.html
.
If you'd like to make your own custom Earth API application, make a copy of the included file from which to start.
You can also reach the page listed above by clicking view in browser from the administration page at http://localhost:9335
.
Defining options in portable.cfg
The server directory under the Portable Server installation directory contains the main configuration file, portable.cfg
. This file defines a number of options, but is primarily used to change the port on which the globe is served, if required.
- port: defines the port on which to serve the globe. Default is 9335.
- globes_directory: the directory in which to look for globe files.
- globe_name: the default globe to serve when the server is started.
- fill_missing_map_tiles: If set to 'True', enables pixel-filling from ancestor map tile when there are no more tile descendents.
- max_missing_maps_tile_ancestor: Limit the pixelation to 2x by 2x sized pixels.
- local_override: If set to 'True', Portable Server looks for all files on the server first before seeking them on the globe.
Command line reference
The following command line tools are available for the portable globe and server.
Knowledge of these command line tools is not needed for most users and system administrators. The simple cutter interface that is provided should meet the needs of nearly all users. However, if finer control is needed or if the complete creation of globes needs to be automated, these command line tools are available. The following is the series of events for creating a globe to help give a sense of what these command line tools accomplish and in what order they are run:
Building LevelFive ...
No description given. Added globe directory:
/tmp/globe_builder/LevelFive_4282_1287494655.545115/LevelFive Ok
Saved polygon to
/tmp/globe_builder/LevelFive_4282_1287494655.545115/LevelFive/earth/polygon.kml
Convert polygon to quadtree nodes ...
Executing: /opt/google/bin/gepolygontoqtnodes --qt_nodes_file=/tmp/globe_builder/LevelFive_4282_1287494655.545115/qt_nodes.txt
--kml_polygon_file=/tmp/globe_builder/LevelFive_4282_1287494655.545115/LevelFive/earth/polygon.kml
--max_level=18
0 qtnodes Ok
Rewrite dbroot ...
Executing: /opt/google/bin/gerewritedbroot
--source=http://earth.localdomain/default_ge/
--icon_directory=/tmp/globe_builder/LevelFive_4282_1287494655.545115/LevelFive/icons
--dbroot_file=/tmp/globe_builder/LevelFive_4282_1287494655.545115/dbroot.v5
--search_server=localhost
--search_port=9335
--kml_server=localhost
--kml_port=9335
--kml_map_file=/tmp/globe_builder/LevelFive_4282_1287494655.545115/kml_map.txt
8 icons
Executing: cp
/tmp/globe_builder/LevelFive_4282_1287494655.545115/dbroot.v5
/tmp/globe_builder/LevelFive_4282_1287494655.545115/LevelFive/dbroot/dbroot_localhost_9335
Ok
Grab kml files ...
Executing: /opt/google/bin/gekmlgrabber
--kml_map_file=/tmp/globe_builder/LevelFive_4282_1287494655.545115/kml_map.txt
--output_directory=/tmp/globe_builder/LevelFive_4282_1287494655.545115/LevelFive/kml
--source=http://earth.localdomain/default_ge/
--kml_server=localhost
--kml_port=9335
0 kml files Ok
Build globe ...
Executing: /opt/google/bin/geportableglobebuilder
--source=http://earth.localdomain/default_ge/
--default_level=5
--max_level=5
--hires_qt_nodes_file=/tmp/globe_builder/LevelFive_4282_1287494655.545115/qt_nodes.txt
--globe_directory=/tmp/globe_builder/LevelFive_4282_1287494655.545115/LevelFive
--dbroot_file=/tmp/globe_builder/LevelFive_4282_1287494655.545115/dbroot.v5 >
/tmp/globe_builder/LevelFive_4282_1287494655.545115/packet_info.txt & Ok
685 image packets
128 terrain packets
515 vectors packets
Extract search data ...
Getting search poi ids:
http://earth.localdomain/cgi-bin/globe_cutter.py?
cmd=POI_IDS&db=default_ge
Getting search poi data:
http://earth.localdomain/cgi-bin/globe_cutter.py?
cmd=SEARCH_FILE&poi_id=&
polygon=Paste%20in%20KML%20containing%20polygon.%20If%20KML%20contains%20more
%20than%20one%20polygon%2C%20the%20first%20polygon%20will%20be%20used.
Saving search poi data:
/tmp/globe_builder/LevelFive_4282_1287494655.545115/LevelFive/search_db/gepoi_ Ok
Add plugin files ...
Executing: cp -r /opt/google/gehttpd/htdocs/cutter/template/earth/*
/tmp/globe_builder/LevelFive_4282_1287494655.545115/LevelFive/earth Executing: cp -r /opt/google/gehttpd/htdocs/cutter/template/maps/*
/tmp/globe_builder/LevelFive_4282_1287494655.545115/LevelFive/maps Executing: cp -r /opt/google/gehttpd/htdocs/cutter/template/js/*
/tmp/globe_builder/LevelFive_4282_1287494655.545115/LevelFive/js Rewrite JSON from: http://earth.localdomain/default_ge//query?request=Json&var=geeServerDefs Ok
Packaging globe for download ...
Executing: /opt/google/bin/geportableglobepacker
--globe_directory=/tmp/globe_builder/LevelFive_4282_1287494655.545115/LevelFive
--output=/opt/google/gehttpd/htdocs/cutter/globes/LevelFive.glb
Executing: chmod a+r /opt/google/gehttpd/htdocs/cutter/globes/LevelFive.glb
/opt/google/gehttpd/htdocs/cutter/globes/LevelFive.glb 9.62MB Ok
Deleting tmp directory as: /tmp/globe_builder/LevelFive_4282_1287494655.545115 Ok
This section uses the following typographic conventions:
Italic |
Information that the user must supply |
| Square brackets [ ] | Optional items |
gepolygontoqtnodes
Usage
gepolygontoqtnodes --kml_polygon_file=filename
--qt_nodes_file=filename --max_level=int
Description
Creates a list of the quadtree nodes that encompass a polygon at the given max_level
.
Required
--kml_polygon_file=filename |
KML file containing a polygon that defines the region of interest. |
--qt_nodes_file=filename |
File where quadtree addresses are stored. |
--max_level=int |
Level of resolution of quadtree that is used to encompass the polygon. |
gerewritedbroot
Usage
gerewritedbroot
--source=server_name --icon_directory=directory
--dbroot_file=filename --kml_map_file=filename
[--search_service=search_service_url] [--preserve_search_service] [--kml_server=server_name]
[--kml_port=num] [--kml_url_path=prefix] [--use_ssl_for_kml=bool]
[--preserve_kml_filenames] [--disable_historical]
Description
- Reads dbRoot and rewrites the search tabs so that they point to the given search server, port and path.
- Optionally creates a directory of all of the icons referred to by the dbroot.
- Optionally updates the host, path and/or filenames in KML Layer URLs in the dbRoot.
- Optionally creates a text file that lists the mapping from original KML Layer URLs to their updated filenames.
- Optionally removes the reference to the server for historical imagery data.
Required
--source=server_name |
Server whose dbRoot should be rewritten. |
--dbroot_file=filename |
File where the new dbRoot should be stored. |
Options
--icon_directory=directory |
Directory where the icons should be stored. |
--kml_map_file=filename |
File where the KML map of source URLs to local files should be stored. |
--search_service=search_service_url |
Url to search service. If none is provided then uses relative url for standard Portable search. |
--preserve_search_service |
Preserve the existing search service url. |
--kml_server=server_name |
Server to be used for KML files in the dbRoot. Default is localhost . |
--kml_port=num |
Port to be used for KML files in the dbRoot. Default is 8888 . |
--kml_url_path=prefix |
Path in new URL to prefix KML file name. Default is kml . |
--use_ssl_for_kml=bool |
Use https instead of http for accessing KML files. Default is false . |
--preserve_kml_filenames |
Preserve the existing filenames of any KML files. Not used when creating portable globes. |
--disable_historical |
Remove the reference to the server to obtain historical data. |
gekmlgrabber
gekmlgrabber --kml_map_file=/tmp/kml_map
Usage
gekmlgrabber --kml_map_file=filename --output_directory=path
[--source=server_name] [--kml_server=server_name] [--kml_port=num]
[--kml_url_path=prefix] [--use_ssl_for_kml=bool]
[--no_recurse=bool] [--ignore_absolute_urls=bool]
Description
Reads KML references, retrieves them from network, and copies them into local files. If the --no_recurse
flag is not set, it does the same for any additional kml files referenced within the given kml files.
Required
--kml_map_file=filename |
File where map of kml source urls to local files are stored. |
--output_directory=path |
Directory where local kml files are to be stored. |
Options
--source=server_name |
Source for KML files. Default is localhost . |
--kml_server=server_name |
Server to be referenced in the dbroot for kml files. Default is localhost . |
--kml_port=num |
Port to be referenced in the dbroot for kml files. Default is 9335 . |
--kml_url_path=prefix |
Path in new url to prefix kml file name. Default is kml . |
--use_ssl_for_kml=bool |
Require https:// instead of http:// for accessing kml files. Default is false . |
--no_recurse=bool |
Do NOT make all kml files linked within the kml files local files as well. Default is false . |
--ignore_absolute_urls=bool |
If kml is linked with a full url address (http://server/...) , leave it as it is. Default is false . |
geportableglobebuilder
geportableglobebuilder --source=http://myserver --max_level=18 --default_level=8 --hires_qt_nodes_file=qt_nodes.txt \
--globe_directory /tmp/my_portable_globe \
Usage
geportableglobebuilder
--source=server_name --globe_directory=path
[--max_level=num] [--default_level=num] [--hires_qt_nodes_file=filename]
[--dbroot_file=filename] [--nowrite]
Description
Creates a set of packet bundles and other associated files. These files can be combined into a globe file with geportableglobepacker
.
Required
--source=server_name |
The source globe from which the sub-globe is to be derived. |
--globe_directory=path |
Directory where the portable globe should be built. |
Options
--max_level=num |
Level of resolution of the quadtree above which no packets should be saved. Default is 24 . |
--default_level=num |
Level of resolution of the quadtree for which all packets are kept independent of the region of interest. Default is 7 . |
--hires_qt_nodes_file=filename |
Name of file containing the quadtree nodes that define the high-resolution area of the globe. Default is no file. |
--dbroot_file=filename |
Name of file containing the dbRoot that should be saved with the globe. Default is no file, in which case the dbRoot is read from the source. |
--no_write |
Do not write packets; print out the total size of the globe. |
geportableglobepacker
Usage
geportableglobepacker --globe_directory=path --output=filename [--make_copy=bool] [--is_2d=bool]
Description
Packs up all globe files into a single file. If --make_copy
is set to true
, the globe directory is undisturbed. If not, then the globe directory is rendered unusable, but the command can run considerably faster.
Options
--globe_directory=path |
The directory containing the globes to be packed. |
--output=filename |
The file to which to save the packed globe, including a file path if desired. The filename should use a .glb file extension. |
--make_copy=bool |
Make a copy of all files so that the globe directory is not disturbed. Default is false . |
--is_2d=bool |
Are we packaging a 2d map. Default is false . |


Enter A Commit Description
Include a task number if one is available
(press CTRL/CMD + C to copy)
Details


Welcome to Steemit Benefactors
This is an app designed to customise posts more than most platforms will
This app allows you to customise the permalink, add beneficiaries (people who share post rewards) along with live previews of the post.
Click the login button to start using our app. We use steemconnect, this means that we do not get access to your steem keys and you can revoke access any time here.
This app was designed when I was asked to make it by my good steemit friend, @mermaidvampire
This app has also had funding from amazing steemian @johndoer123
Please message me suggestions via steemit @cadawg
or discord Snaddyvitch Dispenser#3984


If you have complex functional tests (i.e. ones that test multiple
systems at once, load a bunch of assets, or take a long time to run),
this is the directory to place them. Tests in this folder should never fail.
The code in this folder contains great examples of how to build complex
tests that load stuff from disk, etc.


Class ProcessContext
java.lang.Object
|
+----ProcessContext
- public class ProcessContext
- extends Object
A process context. This contains all information needed
by the file system which is specific to a process.
- Author:
- Ray Ontko
-
errno
- Number of last error.
-
MAX_OPEN_FILES
- The maximum number of files a process may have open.
-
openFiles
- The array of file descriptors for open files.
-
ProcessContext()
- Construct a process context.
-
ProcessContext(short, short, String, short)
- Construct a process context and specify uid, gid, dir, and umask.
-
getDir()
- Get the process working directory.
-
getGid()
- Get the process gid.
-
getUid()
- Get the process uid.
-
getUmask()
- Get the process umask.
-
setDir(String)
- Set the process working directory.
-
setGid(short)
- Set the process gid.
-
setUid(short)
- Set the process uid.
-
setUmask(short)
- Set the process umask.
errno
public int errno
- Number of last error.
Simulates the unix system variable:
extern int errno;
MAX_OPEN_FILES
public static int MAX_OPEN_FILES
- The maximum number of files a process may have open.
openFiles
public FileDescriptor openFiles[]
- The array of file descriptors for open files.
The integer file descriptors for kernel method calls
are indexes into this array.
ProcessContext
public ProcessContext()
- Construct a process context. By default, uid=1, gid=1, dir="/root",
and umask=0000.
ProcessContext
public ProcessContext(short newUid,
short newGid,
String newDir,
short newUmask)
- Construct a process context and specify uid, gid, dir, and umask.
setUid
public void setUid(short newUid)
- Set the process uid.
getUid
public short getUid()
- Get the process uid.
setGid
public void setGid(short newGid)
- Set the process gid.
getGid
public short getGid()
- Get the process gid.
setDir
public void setDir(String newDir)
- Set the process working directory.
getDir
public String getDir()
- Get the process working directory.
setUmask
public void setUmask(short newUmask)
- Set the process umask.
getUmask
public short getUmask()
- Get the process umask.


t2a04-internal-css by Logan
This is also
bold
this isn't
This is a style class
bold
this isn't
This is inline
inline bold
this isn't
This is a Music File
Your browser does not support the audio element.


Connect to a Voice Server
Address
Port
Token
Username
Password
Mumble Voice Conference
Failed to connect
The connection has been refused. The server uses an incompatible version. Your user name was rejected. Maybe try a different one? The given password is incorrect. The user name you have chosen requires a special one. The given password is incorrect. The user name you have chosen is already in use. The server is full. The server requires you to provide a client certificate which is not supported by this web application.
The server reports:
"
"
Username
Password
Connection Information
Version
Protocol
.
Unknown
Control channel
ms average latency (
deviation)
Remote host
(port
)
Audio bandwidth
Maximum
kbits/s (
kbits/s with overhead)
Current
kbits/s (
kbits/s with overhead)
Codec:
Settings
Transmission
Continuous
Voice Activity
Push To Talk
PTT Key
Audio Quality
kbit/s
Audio per packet
ms
kbit/s (Audio
, Position
, Overhead
)
Show Avatars
Always
Same Channel
Linked Channels
Minimal View
Never
Show user count after channel name
Mute
Deafen
Priority Speaker
Local Mute
Ignore Messages
View Comment
Change Comment
Reset Comment
View Avatar
Change Avatar
Reset Avatar
Send Message
Information
Self Mute
Self Deafen
Add Friend
Remove Friend
Join Channel
Add
Edit
Remove
Link
Unlink
Unlink All
Copy Mumble URL
Copy Mumble-Web URL
Send Message


Dump some of the most interesting bits of information about the function we are currently looking at.
How to create user actions, that once created can be inserted in menus, toolbars, context menus, ...
`ida_kernwin.add_hotkey` is a simpler, but much less flexible alternative to `ida_kernwin.register_action` (though it does use the same mechanism under the hood.)
This is a somewhat ancient way of registering actions & binding shortcuts. It's still here for reference, but "fresher" alternatives should be preferred.
This is an example demonstrating how one can create widgets from a plugin, and have them re-created automatically at IDA startup-time or at desktop load-time.
IDAPython's ida_bytes.bin_search function is pretty powerful, but can be tough to figure out at first. This example introduces
Usage of the API to create & populate a structure with members of different types.
Illustrates how one can add command-line interpreters to IDA
IDA can be extended to support certain data types that it does not know about out-of-the-box.
Use the `ida_lines.get_extra_cmt` API to retrieve anterior and posterior extra comments.
Dumps the current function's flowchart, using 2 methods:
Shows how to retrieve the selection from a listing widget ("IDA View-A", "Hex View-1", "Pseudocode-A", ...) as two "cursors", and from there retrieve (in fact, generate) the corresponding text.
You can add IDC functions to IDA, whose "body" consists of IDAPython statements!
The `idapythonrc.py` file:
By default, disassembly line prefixes contain segment + address information (e.g., '.text:08047718'), but it is possible to "inject" other bits of information in there, thanks to the `ida_lines.user_defined_prefix_t` helper type.
Using the API to enumerate file imports.
Using the API to iterate over all the places in the file, that were patched using IDA.
Using the API to list all problem[atic situation]s that IDA encountered during analysis.
List all the functions in the current segment, as well as all the cross-references to them.
List all the functions in the current segment, as well as all the cross-references to them.
Contrary to (in-memory) data & code xrefs, retrieving stack variables xrefs requires a bit more work than just using ida_xref's first_to(), next_to() (or higher level utilities such as idautils.XrefsTo)
This uses `idautils.Strings` to iterate over the string literals that are present in the IDB. Contrary to @show_selected_strings, this will not require that the "Strings" window is opened & available.
automate IDA to perform auto-analysis on a file and, once that is done, produce a .c file containing the decompilation of all the functions in that file.
automate IDA to perform auto-analysis on a file and, once that is done, produce a .lst file with the disassembly.
Register (possibly repeating) timers.
It's possible to invoke any action programmatically, by using either of those two:
Start a debugging session, step through the first five instructions. Each instruction is disassembled after execution.
This script demonstrates using the low-level tracing hook (ida_dbg.DBG_Hooks.dbg_trace). It can be run like so:
Queries the debugger (possibly remotely) for the list of symbols that the process being debugged, provides.
Using the `ida_idd.Appcall` utility to execute code in the process being debugged.
Using the `ida_idd.Appcall` utility to execute code in the process being debugged.
This illustrates the setting/retrieval of background colours using the IDC wrappers
Provides an action that can be used to dynamically alter the lines background rendering for pseudocode listings (as opposed to using `ida_hexrays.cfunc_t.pseudocode[N].bgcolor`)
Attempts to load a decompiler plugin corresponding to the current architecture (and address size) right after auto-analysis is performed, and then tries to decompile the function at the first entrypoint.
Installs a custom microcode instruction optimization rule, to transform:
Installs a custom microcode block optimization rule, to transform:
Shows a list of direct references to a register from the current instruction.
Generates microcode for selection and dumps it to the output window.
Registers an action opens the "Select offsets" widget (select_udt_by_offset() call).
Installs a custom microcode instruction optimization rule, to transform:
This plugin can greatly improve decompilation of indirect calls:
Registers an action that can be used to invert the `if` and `else` blocks of a `ida_hexrays.cif_t`.
Prints user-defined information to the "Output" window. Namely:
Registers an action that can be used to show the graph of the ctree. The current item will be highlighted in the graph.
modifies the decompilation output in a superficial manner, by removing some white spaces
Using a `ida_hexrays.ctree_visitor_t`, search for `ida_hexrays.cit_block` instances and dump them.
Registers an action that uses a `ida_hexrays.udc_filter_t` to decompile `svc 0x900001` and `svc 0x9000F8` as function calls to `svc_exit()` and `svc_exit_group()` respectively.
Handle `ida_hexrays.hxe_create_hint` notification using hooks, to return our own.
Shows how to hook to many notifications sent by the decompiler.
Use a `ida_hexrays.user_lvar_modifier_t` to modify names, comments and/or types of local variables.
Show decompiler-style Xref when the `Ctrl+X` key is pressed in the Decompiler window.
Show notifications whenever the user changes an instruction's operand, or a data item.
This is a sample script, that will record (in memory) all changes in functions prototypes, in order to re-apply them later. To use this script: - open an IDB (say, "test.idb") - modify some functions prototypes (e.g., by triggering the 'Y' shortcut when the cursor is placed on the first address of a function) - reload that IDB, *without saving it first* - call rpc.replay(), to re-apply the modifications. Note: 'ti_changed' is also called for changes to the function frames, but we'll only record function prototypes changes.
Implements disassembly of BUG_INSTR used in Linux kernel BUG() macro, which is architecturally undefined and is not disassembled by IDA's ARM module
We add support for assembling the following pseudo instructions:
This example illustrates how one can execute commands in the "Output" window, from their own widgets.
Using `ida_kernwin.PluginForm.FormToPyQtWidget`, this script converts IDA's own dockable widget into a type that is recognized by PyQt5, which then enables populating it with regular Qt widgets.
color the function in the Function window according to its size. The larger the function, the darker the color.
shows how one can dynamically alter the lines background rendering (as opposed to, say, using ida_nalt.set_item_color()), and also shows how that rendering can be limited to just a few glyphs, not the whole line.
hooks to be notified about certain UI events, and dump their information to the "Output" window
Using `ida_kernwin.UI_Hooks.preprocess_action`, it is possible to respond to a command instead of the action that would otherwise do it.
How to query for complex user input, using IDA's built-in forms.
Shows how to subclass the ida_kernwin.Choose class to show data organized in a simple table. In addition, registers a couple actions that can be applied to it.
Similar to @{choose}, but with multiple selection
By adding the necessary bits to a ida_kernwin.Choose subclass, IDA can show the otherwise tabular data, in a tree-like fashion.
Showing custom graphs, using `ida_graph.GraphViewer`. In addition, show how to write actions that can be performed on those.
How to create simple listings, that will share many of the features as the built-in IDA widgets (highlighting, copy & paste, notifications, ...)
Partially re-implements the "Functions" widget present in IDA, with a custom widget.
We want our action not only to find the next line containing a comment, but to also place the cursor at the right horizontal position.
Shows how it is possible re-implement IDA's bookmark capability, using 2 custom actions: one action saves the current location, and the other restores it.
Using the progress dialog (aka 'wait box') primitives.
In IDA it's possible to write actions that can be applied even to core (i.e., "standard") widgets. The actions in this example use the action "context" to know what the current selection is.
Since it is possible to be notified of movements that happen take place in a widget, it's possible to "replay" those movements in another.
This is an example illustrating how to manipulate an existing IDA-provided view (and thus possibly its graph), in Python.


#include <sparse_ops.h>
Deserialize and concatenate SparseTensors
from a serialized minibatch.
The input serialized_sparse
must be a string matrix of shape [N x 3]
where N
is the minibatch size and the rows correspond to packed outputs of SerializeSparse
. The ranks of the original SparseTensor
objects must all match. When the final SparseTensor
is created, it has rank one higher than the ranks of the incoming SparseTensor
objects (they have been concatenated along a new row dimension).
The output SparseTensor
object's shape values for all dimensions but the first are the max across the input SparseTensor
objects' shape values for the corresponding dimensions. Its first shape value is N
, the minibatch size.
The input SparseTensor
objects' indices are assumed ordered in standard lexicographic order. If this is not the case, after this step run SparseReorder
to restore index ordering.
For example, if the serialized input is a [2 x 3]
matrix representing two original SparseTensor
objects:
index = [ 0] [10] [20] values = [1, 2, 3] shape = [50]
and
index = [ 2] [10] values = [4, 5] shape = [30]
then the final deserialized SparseTensor
will be:
index = [0 0] [0 10] [0 20] [1 2] [1 10] values = [1, 2, 3, 4, 5] shape = [2 50]
Arguments:
N
serialized SparseTensor
objects. Must have 3 columns.dtype
of the serialized SparseTensor
objects.Returns:
Constructors and Destructors |
|
|---|---|
DeserializeManySparse(const ::tensorflow::Scope & scope, ::tensorflow::Input serialized_sparse, DataType dtype)
|
Public attributes |
|
|---|---|
operation
|
|
sparse_indices
|
|
sparse_shape
|
|
sparse_values
|
Operation operation
::tensorflow::Output sparse_indices
::tensorflow::Output sparse_shape
::tensorflow::Output sparse_values
DeserializeManySparse( const ::tensorflow::Scope & scope, ::tensorflow::Input serialized_sparse, DataType dtype )


404
The link you clicked may be broken or the page may have been removed.
visit the Homepage or Contact us about the problem
The link you clicked may be broken or the page may have been removed.
visit the Homepage or Contact us about the problem


RcppRoll: Efficient Rolling / Windowed Operations
Provides fast and efficient routines for
common rolling / windowed operations. Routines for the
efficient computation of windowed mean, median,
sum, product, minimum, maximum, standard deviation
and variance are provided.
| Version: |
0.3.0 |
| Depends: |
R (≥ 2.15.1) |
| Imports: |
Rcpp |
| LinkingTo: |
Rcpp |
| Suggests: |
zoo, testthat |
| Published: |
2018-06-05 |
| Author: |
Kevin Ushey |
| Maintainer: |
Kevin Ushey <kevinushey at gmail.com> |
| License: |
GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| NeedsCompilation: |
yes |
| Materials: |
README NEWS |
| CRAN checks: |
RcppRoll results |
Downloads:
Reverse dependencies:
Linking:
Please use the canonical form
https://CRAN.R-project.org/package=RcppRoll
to link to this page.


Bad Manners (1998) Rating: 3.5 stars out of 5.0 stars
Cast: David Strathairn, Bonnie Bedelia, Saul Rubinek, Caroleen Feeney, Julie Harris Written by: David Gilman Directed by: Jonathan Kaufer Running Time: 88 minutes
Solid performances and some well plotted story elements make this filmed version of a stage play worthwhile. Wes and Nancy (David Strathairn and Bonnie Bedelia) are a long married but "romantically challenged" couple whose lives are interrupted by the appearance of Nancy's old flame Matt (Saul Rubinek) and his young, outspoken girlfriend Kim (Caroleen Feeney).
Matt and Kim stay with Wes and Nancy while Matt delivers a musicology lecture at Harvard. Matt believes that he has found God's influence in a piece of computer generated music, and Wes obsesses that Kim has stolen 50 dollars from his wallet. What follows is an unpredictable series of events that rivals David Mamet's Oleanna in the whole "no matter which side you take... you're wrong" area. You won't see events coming, and even when the film's over you'll still be wondering about what you saw. The more I think about this film, the more I like about it.
Note: Bad Manners is based on a Steppenwolf Theater play called Ghost in the Machine. I'm guessing that the title was changed to Bad Manners to avoid confusion with the 1993 Karen Allen movie called Ghost in the Machine that no one ever saw. Although won't people now confuse it with the 1984 Karen Black movie called Bad Manners that no one ever saw?
Bad Manners is available on DVD from Bell Canyon Entertainment. It contains the film in its original widescreen theatrical aspect ratio, a full length audio commentary track featuring director Jonathan Kaufer and cast member Saul Rubinek, a behind the scenes documentary featuring interviews with the cast and crew that runs about 20 minutes, and the usual cast biographies and filmographies.
Director Jonathan Kaufer has tried an interesting experiment with the commentary track on the DVD of Bad Manners. During the track, several guest stars (Marcia Strassman, Penny Marshall, Carrie Fisher, Peter Riegert) appear, thinking that the director and Saul Rubinek are recording a commentary track for their 1982 film Soup For One. The main problem with this though is that these gimmicky guest stars tend to barge in when Kaufer and Rubinek are saying something INTERESTING about the film's production. After the pre-scripted "spontaneous" interruptions are over, the two rarely go back to their previous train of thought. Good idea, bad execution.
The DVD is very nice despite that one complaint though, and it's one of the few discs that actually made me take note of its menu screens. The disc's menus are done in a blue-white "wintery" style mixed with images from the film and scored by the Tori Amos song "Putting the Damage On" which appears in the film's closing credits (a song which is impossible to get out of your head once you hear it). Even the DVD credits selection is entertaining.  [R]
Reviewed by Chuck Dowling -<EMAIL_ADDRESS>AOL Instant Messenger: FilmJax The Jacksonville Film Journal - http://www.jaxfilmjournal.com/
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


I have several wormwood plants growing on the west side of my house. I started them all from seed in Jiffy pots and they've been some of the easiest plants in my garden to grow. I cut them back several times each season and put the growth tips directly into a jar of 100 proof vodka. I leave this to sit in a sunny window for a month and let the brew take on a greeny amber color. If you use pure ethanol the extract will be bright green.  The intensity of bitterness is truely beyond description. Wormwood this raw is also pretty damn toxic.
For a more civilized encounter, the tincture is distilled. An easy way to distill less than gallon quantities is with a slow cooker with an inverted lid and ice bag. Herbal medicine texts (like Jim Green's Herbal Medicine Maker's Handbook) explain the set up much better than I could here - anyway, it's easy. You need to start with the vodka rather than the straight ethanol tincture because the procedure is to gently evaporate the alcohol off the water and gunky sick making stuff. The psychotropic stuff follows the alcohol. It is important to filter the tincture thoroughly. It should run freely through three layers of coffee filters before distillation, otherwise the distillate will have a nasty cooked vegetable taste.
Also watch the drip and make sure it's nice and clear, a yellow drip means you've gone too far and should redistill. Starting with a pint of 100 proof vodka, start checking at about 7 oz of yield, and smell the vapors - if you're smelling plant instead of alcohol, it's done. If you do it right the result will be strong and smooth - bitter, but without the edge of the raw plant. But still dangerous.
Wormwood will take you to the moon but she takes so much out of you.   A starting dose (for me, from my plants) is about 5ml to feel an effect.
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.