Sessions
If you haven't previously attended a Software Capentry workshop (or equivalent) it is recommended to take that stream.
Click on the name of each session to discover more!
Main streams - Software Carpentry
Use of the shell is fundamental to using a wide range of other powerful tools and computing resources (including “high-performance computing” supercomputers). These lessons will start you on a path towards using these resources effectively.
The R language provides a flexible and powerful environment for data analysis and visualisation. This workshop will introduce the R language and will teach you some key programming skills.
Version control is the lab notebook of the digital world - it’s what professionals use to keep track of what they’ve done and to collaborate with other people. Keeping a record of what was changed, when, and why is extremely useful for all researchers if they ever need to come back to the project later on.
Main streams - Other
This workshop and will extend on making functions in R and go through how to transform from a function into a documented and installable R package
This workshop is intended to cover the tidyverse packages more in depth with a focus on programmatic analysis and database usage.
This workshop will cover markdown and R variants (Rmarkdown, Bookdown, and Blogdown), and version control work flows for the purposes of customised reproducible reports.
Additional Mini-workshops
This mini workshop will follow the data manipulation and plotting lessons from the data carpentry ecology workshop. It will introduce the dplyr package for data manipulation in R and ggplot2 for creation of plots. It is intended to provide introductory data exploration and visualisation skills
Want to turn your ground-breaking R analyses into web-based tools for your friends and collaborators? The "shiny" package for R provides a simple mechanism for building sophisticated web interfaces for interactive data analysis and visualisation - come along and learn how it's done.
This workshop is intended to convey the basics of scraping information from the web. For example, obtaining data from tables on websites, and cleaning it into a usable format for R.
This workshop will provide a basic introduction to programming principles using the Python language.
This workshop will cover customising your command line environment such as making programs available on your computer, aesthetic changes to your prompt, keeping track of previous commands. In general setting up your command line environment to make work easier. This workshop will also introduce the syntax and creation of regular expressions (generalisable search terms) for searching text.
This will present some more advanced Shell techniques and "power tips" that will greatly enhance your everyday use of the Shell. It will also proivde an introduction to the popular and powerful document prepartion system, LaTeX. Many students use LaTeX for writing their PhD and MSc theses, and it is commonly used for writing research papers (particularly in more computational and/or mathematical disciplines).
This workshop is designed to introduce you to the available national compute resources, obtaining access, and submission of jobs.
This will cover techniques and tools for effectively managing research projects, and their associated data (and metadata). While "project management" is often associated with large scale initiatives, smaller research projects (e.g., MSc and PhD theses!) can benefit hugely from access to the right tools, and knowledge of best practice.
Preliminary timetable


Take a look at the source... ;) or use /explain.php.
Original from http://marsh-number.glitch.me/.
A version two has been written that compiles separate html, js & css files into one document at /v2/.
This project is on github https://github.com/MattIPv4/HTML-CSS-JS-In-One :)


Hi there 👋, I am Prathamesh
I'm a Full-stack Software Developer 💻,
currently based in Mumbai 📍
I work with: JavaScript | React | Angular | Nodejs | Python


Fancytree API
This example demonstrates the usage of some Fancytree and FancytreeNode
API functions.
- This simple node (and the following) have been created from html.
- item1 with key and tooltip
- item2 with key "id2"
- Standard Folder with some children
- Sub-item 3.1
- Sub-item 3.2
- item 4. Note that also non-folders (i.e. 'documents') may have child nodes
- Sub-item 4.1
- Sub-item 4.2
- Sub-item 4.3
- Sub-item 4.3.1
- Sub-item 4.3.2
- Sub-item <IP_ADDRESS>
- Sub-item <IP_ADDRESS>
- Sub-item 4.4
- Advanced examples
- item5.1: Using data attribute as an alternative way to specify a key.
- item5.1: Using data attribute as an alternative way to specify a folder.
- Sub-item 5.2
- Item without a key. Keys are optional (generated automatically), but may be used in the callbacks
Active node: -
Focused node: -
jquery.fancytree.js project home
Link to this page
Example Browser
View source code


Create Schedule
Schedule name
Start date
End date
Start hour
End hour
Slot duration (15,20,30)
15 min
20 min
30 min
60 min
Show Week Schedule
Schedule ID
From date
To date
Code to access organizer view


Limitless - Documentation
First of all i want to thank you for purchasing my work. If you have any questions that are beyond the scope of this help file, feature requests, bug report or anything else, please feel free to email me via my user page contact form and i'll do my best to reply back within 48 hours. Thanks so much!
Template overview
Limitless - perfectly crafted web application kit, based on Bootstrap framework. Template includes 4 layout versions with different structure, but same content and functionality. Since this is an HTML/CSS template, it can be used as a base for any type of application or website. Core features are:
- 4 layout types
- Fully responsive layout
- One, two, three, four columns structure
- 100+ plugins
- 1000+ components
- Advanced data visualization
- Translation ready
- Responsive ready
- Multiple navbars support
- Multi level vertical navigation
- Multiple vertical navigation types
- Multi level horizontal state saving navigation
- Multiple page header and breadcrumb styles
- Fully based on LESS
- Flexible content structure
- 300k+ lines of code
- 9 months of development
- Customization services
- Сontinuous development
- ...
Note - this is not a ready-to-use application, it doesn't include any dynamic code behind and requires additional development in order to make it compatible with Wordpress, Joomla, Forums software or any other system. Please keep that in mind.
Browser support
Limitless is supported by all major browsers (Chrome, Firefox, Safari, Opera, IE9 and above), operating systems (Windows, OSX, iOS, Android) and devices (desktops, tablets and mobiles). See the table below for detailed comparison.
| Chrome | Firefox | Safari | Internet Explorer (9+) | Opera | |
|---|---|---|---|---|---|
| Windows | |||||
| Mac OS X | |||||
| iOS | |||||
| Android |
Updates
The whole upgrade process has never been easer. When i push an update to Themeforest, i notify all users about it. After review process you'll get an email about new update available. Each update includes list of updated files and detailed instructions about what, where and how. And, of course, all updates are always free of charge.
Support
For support requests you can use item comments section, "Support" tab on item page or contact form on my profile page. Please keep in mind that i don't provide any kind of support for users, who don't have "Purchased" badge in item comments page requests or purchase hasn't been confirmed by email sent from author's profile page. So before sending a support request, make sure you're logged in to the proper account. Thanks for understanding.


Please refer to the errata for this document, which may include some normative corrections.
This document is also available in these non-normative packages: single HTML [427K] (gzipped [88K]), gzip tar file of HTML [215K], and zip archive of HTML [226K].
See also translations of this document.
Copyright © 1999 - 2002 W3C ® ( MIT, INRIA, Keio), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply.
This document provides guidelines for designing user agents that lower barriers to Web accessibility for people with disabilities (visual, hearing, physical, cognitive, and neurological). User agents include HTML browsers and other types of software that retrieve and render Web content. A user agent that conforms to these guidelines will promote accessibility through its own user interface and through other internal facilities, including its ability to communicate with other technologies (especially assistive technologies). Furthermore, all users, not just users with disabilities, should find conforming user agents to be more usable.
In addition to helping developers of HTML browsers and media players, this document will also benefit developers of assistive technologies because it explains what types of information and control an assistive technology may expect from a conforming user agent. Technologies not addressed directly by this document (e.g., technologies for braille rendering) will be essential to ensuring Web access for some users with disabilities.
This section describes the status of this document at the time of its publication. Other documents may supersede this document. The latest status of this document series is maintained at the W3C.
This is the 17 December 2002 Recommendation of "User Agent Accessibility Guidelines 1.0." This document has been reviewed by W3C Members, the disability community, software developers, and other W3C groups and interested parties, and has been endorsed by the Director as a W3C Recommendation. It is a stable document and may be used as reference material or cited as a normative reference from another document. W3C's role in making the Recommendation is to draw attention to the specification and to promote its widespread deployment. This enhances the functionality and interoperability of the Web.
This document was produced by the User Agent Accessibility Guidelines Working Group (UAWG). The goals of the UAWG are described in UAWG charter. The complete list of changes to this document is available on the Web.
The UAWG also provides additional resources to support this document (e.g., Frequently Asked Questions (FAQ) about UAAG 1.0, implementation reports, and test suites). Please consult the UAWG home page for more information.
Patent disclosures relevant to this specification may be found on the Working Group's patent disclosure page in conformance with W3C policy.
The list of errata for this document is available at http://www.w3.org/WAI/UA/UAAG-errata. Please report errors in this document to<EMAIL_ADDRESS>Please send other comments about this document to the public mailing list<EMAIL_ADDRESS>public archives are available.
The English version of this document is the authoritative version. Translations into other languages may be available at http://www.w3.org/WAI/UA/UAAG-translations.
This document is part of a series of accessibility documents published by the Web Accessibility Initiative (WAI) of the World Wide Web Consortium (W3C). WAI Accessibility Guidelines are produced as part of the WAI Technical Activity.
A list of current W3C Recommendations and other technical documents can be found at the W3C Web site.


What if Shakespeare was forced to write assignments instead of plays, what if Picasso was forced to learn geometry instead of painting ?
Find Out MoreFirstly, we all know that any system improves itself over time with feedback. As we see it, there is a gap
in the way feedback flows in conventional education. Simply put, how many of us who graduate out of
the Indian education system, give back what we have learnt to the community?
Secondly, we also understood that most of the schools are under-equipped to enable a student with the
right nudge, exposure and skill-sets. The students lack basic employability skills, let alone be creative.
We evaluated the current scenario to understand the gap in the system. It quickly became visible that
it’s a supply-demand problem. We have skilled artists and graduates on one side who want to pursue
their passion after graduating. We have students who are in dire need of direction, and the nudge. We
intend to bridge this gap, thereby redefining education and revolutionizing the way in which people
learn, grow and teach.
For updates, follow Redefine's FB page!


Jo Cook, Astun Technology
Create snippets to use when editing records
Ensure your metadata is good quality and valid
Bulk and automated updates
Matching labels with the guidance
Adding explanations for all mandatory elements
Create valid metadata from an excel spreadsheet
Automatically include missing or deleted elements
Get history of changes to a record, and restore to previous point in time
Create your own analytics
Store your non-spatial metadata in the same portal
Utilising "hidden" features in Geonetwork you can ensure your metadata is good quality, and automate updates
Gemini 2.3 will contain some enhancements to make metadata creation easier
With some additional open source software, you can get business value from your metadata
Soon you'll be able to store and publish non-spatial metadata in Geonetwork too!


Overview
Layers
Rules
container_layer
|
Create a tarball that can be used as a layer in a container image. |
container_layer_from_tar
|
Uses an existing tarball as a layer in a container image. |
Images
Rules
container_image
|
Creates an image which conforms to the OCI Image Serialization specification. |
Testing
Rules
container_test
|
Experimental container testing. |


The Subutai Bazaar is a marketplace that allows anyone to instantly buy, share, or rent computer resources, as well as raise and operate a sharing economy for countless applications using both Subutai's internal currency (a lightweight digital asset known as "GoodWill"), and KHAN™, Subutai's new Ethereum Blockchain-based reserve currency token.
Today’s technology landscape is highly inefficient: 90% of the world’s computing resources are wasted. As Internet and Cloud consumers can only currently *purchase* services from providers, the Subutai Bazaar acts as “the Airbnb of computing resources”, leveraging the power of peer economics to enable individual and business users to both buy and sell cloud and IoT services.
The Subutai Bazaar allows users to register their resources and applications to be found by other users from around the world. Using the Bazaar is cost-effective, as the broker perpetually shops around for best price per performance. Users will be able to utilize smart contracts protected by the blockchain to create service level agreements (SLAs).
The Bazaar authenticates user resources, enabling individuals and companies to become Economy Operators and instantly form an economy with their existing customer base.
Using the Subutai Bazaar, Economy Operators can both sell excess compute resources to their customers and be able to purchase resources from their customers —and benefit by generating revenue from this economy.
With Subutai, *anybody* Using the Subutai Bazaar, Economy Operators can both sell excess compute resources to their customers and be able to purchase resources from their customers —and benefit by generating revenue from this economy.
Get started today and Conquer the Cloud! Experience the Bazaar.


Logic and if Statements
Smarter Button
Click me to display Date and Time.
Click here for font change.
Click here for code.


library("knitr")
library("here")
Paths activity
We need to load the package knitr
for this activity to use the function kable()
. This will allow us to display the nice HTML table near the bottom of the document. We’re also going to use the package here
for this activity, so let’s load it into our R session.
Activity 1
First, let’s get a look at the issue by having R tell us the working directory. First, run the command below in your console. And then verify that this will give a different result in your rendered report. Uh-oh!
getwd() # Also run this in console
[1] "/Users/czx412/Documents/Work/UTSA/Teaching/Data Visualization/Data Visualization - Fall 2023/website/downloads"
Q1: How do these paths differ, and why?
Activity 2
Modify the command below by providing a relative path that it executes successfully in your R console but NOT when rendering the report. Note that I added the chunk option #| error: true
to allow the document to render, despite the error, and show the R error in the report. When you do this correctly, the error should remain in the rendered report!
<- read.csv("<your relative path here>") school_earnings
Warning in file(file, "rt"): cannot open file '<your relative path here>': No
such file or directory
Error in file(file, "rt"): cannot open the connection
Q2: Why does this fail when rendering the report?
Activity 3
Now modify the command below by providing a relative path that it works correctly when rendering but NOT in the R console. This time, when you do this correctly the error message should disappear from the rendered report, and a table of values should appear below the R chunk. (Hint: you’ll need to navigate “up” from your .Rmd
file’s working directory).
<- read.csv("<your relative path here>") school_earnings
Warning in file(file, "rt"): cannot open file '<your relative path here>': No
such file or directory
Error in file(file, "rt"): cannot open the connection
kable(head(school_earnings))
Error in eval(expr, envir, enclos): object 'school_earnings' not found
Q3: Why does this fail in the R console?
Activity 4
You might be tempted to solve this problem by typing out the absolute path. Future-you is very disappointed 😢.
The following works on my laptop computer but not on my home computer, and definitely does not work on any of your computers (you should see an error, which does not appear for me).
<- read.csv("/Users/czx412/Documents/Work/UTSA/Teaching/Data Visualization/Data Visualization - Fall 2023/classroom/data/school_earnings.csv") school_earnings
Modify the code below by providing an absolute path that works for you. If successful, a table of data should appear below, and the error should disappear.
# This should work for you alone. If successful, you should see no error below this box.
<- read.csv("<your absolute path here>") school_earnings
Warning in file(file, "rt"): cannot open file '<your absolute path here>': No
such file or directory
Error in file(file, "rt"): cannot open the connection
kable(head(school_earnings))
Error in eval(expr, envir, enclos): object 'school_earnings' not found
Q4: Assuming you did this correctly, why does this work in both the R console and when rendering report? And given this success, what are possible drawbacks of using this approach?
Activity 5: here()
to the rescue
Finally, let’s resolve this problem using the here
package. Modify the code below by providing the relative path from the project root to the data file using the here()
function inside of read.csv()
.
# Should work both in console and when rendering
<- read.csv(here("<your relative path here>")) school_earnings
Warning in file(file, "rt"): cannot open file
'/Users/czx412/Documents/Work/UTSA/Teaching/Data Visualization/Data
Visualization - Fall 2023/website/<your relative path here>': No such file or
directory
Error in file(file, "rt"): cannot open the connection
kable(head(school_earnings))
Error in eval(expr, envir, enclos): object 'school_earnings' not found
Note that, once this is done correctly, it continues to work even if I use setwd()
to use some totally inappropriate directory as the working directory in my Quarto file, like some kind of maniac.
setwd("~/.Trash/") # <- BAD BAD BAD WHY U DO THIS!!!
<- read.csv(here("<same relative path here as above>")) school_earnings
Warning in file(file, "rt"): cannot open file
'/Users/czx412/Documents/Work/UTSA/Teaching/Data Visualization/Data
Visualization - Fall 2023/website/<same relative path here as above>': No such
file or directory
Error in file(file, "rt"): cannot open the connection
kable(head(school_earnings))
Error in eval(expr, envir, enclos): object 'school_earnings' not found
Q5: The code above should “just work” in any scenario. Assuming you did this correctly, verify that this works both in the knitted document AND in your R console.
Choose your answer wisely:
- I verify that this worked.
- You lied to me.
Recap of best practices
Here are my recommendations for avoiding path-related pain in R.
- Always work in a project.
- Always use relative paths.
- Never use the
setwd()
command. - If your project folder is complex and organized into subfolders, use the
here
R package to refer to files relative to the project root folder.


This application was developed in partial fulfilment of the requirements for the degree of Master of Computer and Information Sciences at Auckland University of Technology.
This is a demo showing the core features of the application excluding elements such as: logging in and editing profile. It uses dummy data to showcase functionality.
On first use the database may take some time to wake, but once it has the planner and reporting features are available for use as if you were an admin user.
For any further information contact the author here.
This application was developed in Angular with a Django REST backend.
Source code can be found here for the Angular Application and here for the Django.
MIT License
Copyright (c) [2017] [Scott Mackenzie]
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
 IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


guestfs-testing
Section: Virtualization Support (1)Updated: 2012-06-22
Index Return to Main Contents
NAME
guestfs-testing - manual testing of libguestfs, you can help!DESCRIPTION
This page has manual tests you can try on libguestfs. Everyone has a slightly different combination of platform, hardware and guests, so this testing is very valuable. Thanks for helping out!These tests require libguestfs ≥ 1.14.
Tests marked with a * (asterisk) can destroy data if you're not careful. The others are safe and won't modify anything.
You can report bugs you find through this link:
https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools
or post on the mailing list (registration is not required, but if you're not registered then you'll have to wait for a moderator to manually approve your message):
https://www.redhat.com/mailman/listinfo/libguestfs
TESTS
Check KVM acceleration is being used.
If your host has hardware virt acceleration, then with a hot cache libguestfs should be able to start up in a few seconds. Run the following command a few times:
time guestfish -a /dev/null run
After a few runs, the time should settle down to a few seconds (under 5 seconds on fast 64 bit hardware).
How to check for hardware virt:
http://virt-tools.org/learning/check-hardware-virt/
If the command above does not work at all, use libguestfs-test-tool(1).
Run virt-alignment-scan on all your guests.
Run virt-alignment-scan(1) on guests or disk images:
virt-alignment-scan -a /path/to/disk.img
or:
virt-alignment-scan -d Guest
Does the alignment report match how the guest partitions are aligned?
Run virt-cat on some files in guests.
virt-cat(1) can display files from guests. For a Linux guest, try:
virt-cat LinuxGuest /etc/passwd
A recent feature is support for Windows paths, for example:
virt-cat WindowsGuest 'c:\windows\win.ini'
An even better test is if you have a Windows guest with multiple drives. Do "D:", "E:" etc paths work correctly?
* Copy some files into a shut off guest.
virt-copy-in(1) can recursively copy files and directories into a guest or disk image.
virt-copy-in -d Guest /etc /tmp
This should copy local directory "/etc" to "/tmp/etc" in the guest (recursively). If you boot the guest, can you see all of the copied files and directories?
Shut the guest down and try copying multiple files and directories:
virt-copy-in -d Guest /home /etc/issue /tmp
Copy some files out of a guest.
virt-copy-out(1) can recursively copy files and directories out of a guest or disk image.
virt-copy-out -d Guest /home .
Note the final space and period in the command is not a typo.
This should copy "/home" from the guest into the current directory.
Run virt-df.
virt-df(1) lists disk space. Run:
virt-df
You can try comparing this to the results from df(1) inside the guest, but there are some provisos:
- *
- The guest must be idle.
- *
- The guest disks must be synched using sync(1).
- *
- Any action such as booting the guest will write log files causing the numbers to change.
We don't guarantee that the numbers will be identical even under these circumstances. They should be similar. It would indicate a bug if you saw greatly differing numbers.
Try importing virt-df CSV output into a spreadsheet or database.
Run:
virt-df --csv > /tmp/report.csv
Now try to load this into your favorite spreadsheet or database. Are the results reproduced faithfully in the spreadsheet/database?
http://www.postgresql.org/docs/8.1/static/sql-copy.html http://dev.mysql.com/doc/refman/5.1/en/load-data.html
* Edit a file in a shut off guest.
virt-edit(1) can edit files in guests. Try this command on a RHEL or Fedora guest:
virt-edit LinuxGuest /etc/sysconfig/network
On other Linux guests try editing other files such as:
virt-edit LinuxGuest /etc/motd
Are the changes seen inside the guest when it is booted?
Display the filesystems / partitions / LVs in a guest.
virt-filesystems(1) can be used to display filesystems in a guest. Try this command on any disk image or guest:
virt-filesystems -a /path/to/disk.img --all --long -h
or:
virt-filesystems -d Guest --all --long -h
Do the results match what is seen in the guest?
Run virt-inspector on all your guests.
Use virt-inspector(1) to get a report on all of your guests or disk images:
virt-inspector -a /path/to/disk.img | less
or:
virt-inspector -d Guest | less
Do the results match what is actually in the guest?
Try the auditing features of virt-ls on all your guests.
List all setuid or setgid programs in a Linux virtual machine:
virt-ls -lR -d Guest / | grep '^- [42]'
List all public-writable directories in a Linux virtual machine:
virt-ls -lR -d Guest / | grep '^d ...7'
List all Unix domain sockets in a Linux virtual machine:
virt-ls -lR -d Guest / | grep '^s'
List all regular files with filenames ending in '.png':
virt-ls -lR -d Guest / | grep -i '^-.*\.png$'
Display files larger than 10MB in home directories:
virt-ls -lR -d Guest /home | awk '$3 > 10*1024*1024'
Find everything modified in the last 7 days:
virt-ls -lR -d Guest --time-days / | awk '$6 <= 7'
Find regular files modified in the last 24 hours:
virt-ls -lR -d Guest --time-days / | grep '^-' | awk '$6 < 1'
Do the results match what is in the guest?
Create a disk image from a tarball.
Use virt-make-fs(1) to create a disk image from any tarball that you happen to have:
virt-make-fs --partition=mbr --type=vfat /any/tarball.tar.gz output.img
Add 'output.img' as a raw disk to an existing guest. Check the guest can see the files. This test is particularly useful if you try it with a Windows guest.
Try other partitioning schemes, eg. --partition=gpt.
Try other filesystem formats, eg. --type=ntfs, --type=ext2.

Use virt-rescue(1) to examine, rescue or repair a shut off guest or disk image:
virt-rescue -a /path/to/disk.img
or:
virt-rescue -d Guest
Can you use ordinary shell commands to examine the guest?
* Resize your guests.
 For example, if you have a disk image that is smaller than 30G, increase it to 30G by doing:
truncate -s 30G newdisk.img virt-filesystems -a /path/to/olddisk.img --all --long -h virt-resize /path/to/olddisk.img newdisk.img --expand /dev/sda1 qemu-kvm -m 1024 -hda newdisk.img
Does the guest still boot? Try expanding other partitions.
* Sparsify a guest disk.
Using virt-sparsify(1), make a disk image more sparse:
virt-sparsify /path/to/olddisk.img newdisk.img
Is "newdisk.img" still bootable after sparsifying? Is the resulting disk image smaller (use "du" to check)?
* sysprep a shut off Linux guest.
Note that this really will mess up an existing guest, so it's better to clone the guest before trying this.
virt-sysprep --hostname newhost.example.com -a /path/to/disk.img
Was the sysprep successful? After booting, what changes were made and were they successful?
Dump the Windows Registry from your Windows guests.
Use virt-win-reg(1) to dump out the Windows Registry from any Windows guests that you have.
virt-win-reg --unsafe-printable-strings WindowsGuest 'HKLM\Software' | less virt-win-reg --unsafe-printable-strings WindowsGuest 'HKLM\System' | less
Does the output match running "regedit" inside the guest?
A recent feature is the ability to dump user registries, so try this, replacing username with the name of a local user in the guest:
virt-win-reg --unsafe-printable-strings WindowsGuest 'HKEY_USERS\username' | less
SEE ALSO
guestfs(3), guestfish(1), guestfs-examples(3), <http://libguestfs.org/>.AUTHORS
Richard W.M. Jones ("rjones at redhat dot com")COPYRIGHT
Copyright (C) 2011 Red Hat Inc. <http://libguestfs.org/>This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Index
- NAME
- DESCRIPTION
- TESTS
-
- Check KVM acceleration is being used.
- Run virt-alignment-scan on all your guests.
- Run virt-cat on some files in guests.
- * Copy some files into a shut off guest.
- Copy some files out of a guest.
- Run virt-df.
- Try importing virt-df CSV output into a spreadsheet or database.
- * Edit a file in a shut off guest.
- Display the filesystems / partitions / LVs in a guest.
- Run virt-inspector on all your guests.
- Try the auditing features of virt-ls on all your guests.
- Create a disk image from a tarball.
- * Run virt-rescue on a shut off disk image or guest.
- * Resize your guests.
- * Sparsify a guest disk.
- * sysprep a shut off Linux guest.
- Dump the Windows Registry from your Windows guests.
- SEE ALSO
- AUTHORS
- COPYRIGHT
This document was created by man2html, using the manual pages.
Time: 05:29:04 GMT, December 24, 2015


| goog.structs.Heap |
| goog.structs.PriorityQueue | goog.structs.Heap |
|
opt_heap
:
Optional goog.structs.Heap or Object to initialize heap with.
|
|
clear()
No description.
|
code » | |||
|
clone()
⇒
Clones a heap and returns a new heap
Returns:
A new goog.structs.Heap with the same key-value pairs.
|
code » | |||
|
containsKey(key)
⇒
Whether the heap contains the given key.
|
code » | |||
|
containsValue(val)
⇒
Whether the heap contains the given value.
|
code » | |||
|
getCount()
⇒
The number of key-value pairs in the map
Returns:
The number of pairs.
|
code » | |||
|
getKeys()
⇒
Gets the keys of the heap.
Returns:
The keys in the heap.
|
code » | |||
|
getLeftChildIndex_(index)
⇒
Gets the index of the left child of the node at the given index.
|
code » | |||
|
getParentIndex_(index)
⇒
Gets the index of the parent of the node at the given index.
|
code » | |||
|
getRightChildIndex_(index)
⇒
Gets the index of the right child of the node at the given index.
|
code » | |||
|
getValues()
⇒
Gets the values of the heap.
Returns:
The values in the heap.
|
code » | |||
|
insert(key, value)
Insert the given value into the heap with the given key.
Arguments:
|
code » | |||
|
insertAll(heap)
Adds multiple key-value pairs from another goog.structs.Heap or Object
Arguments:
|
code » | |||
|
isEmpty()
⇒
Returns true if this heap contains no elements.
Returns:
Whether this heap contains no elements.
|
code » | |||
|
moveDown_(index)
Moves the node at the given index down to its proper place in the heap.
Arguments:
|
code » | |||
|
moveUp_(index)
Moves the node at the given index up to its proper place in the heap.
Arguments:
|
code » | |||
|
peek()
⇒
*
Retrieves but does not remove the root value of this heap.
Returns:
*
The value at the root of the heap. Returns undefined if the heap is empty.
|
code » | |||
|
peekKey()
⇒
*
Retrieves but does not remove the key of the root node of this heap.
Returns:
*
The key at the root of the heap. Returns undefined if the heap is empty.
|
code » | |||
|
remove()
⇒
*
Remove the value with the largest key from the heap. Returns undefined if the
heap is empty.
Returns:
*
The value of the node with the largest key.
|
code » |


2017/01/11
rafted_value
: Raft protocol implementationraft_fleet
: Running and managing multiple consensus groups in a cluster:gen_statem
processLeaderHook
callbacksstart_link/2
RaftedValue.Server
module
:gen_statem
with 3 states: leader
, candidate
, follower
ExUnit
tests and property-based testsExUnit
tests
%S{f: v}
instead of %S{s | f: v}
rafted_value
processes within a cluster of ErlangVMsraft_fleet
raft_fleet
define “state” and operations on it by implementing RaftedValue.Data
behaviouratom
as ID of consensus group
atom
atom
-only restriction may be relaxed in future releasesraft_fleet
:global
module24
, b: 27
, c: 23
, d: 26
19
, b: 23
, c: 18
, d: 21
, e: 19
1/n_nodes
processes to migratemod
leads to really bad resultsdefun lrw_members(nodes_per_zone :: %{ZoneInfo.t => [node]}, group :: atom, n_replica :: pos_integer) :: [node] do
Enum.flat_map(nodes_per_zone, fn {_z, ns} ->
Enum.map(ns, fn n -> {Hash.calc({n, group}), n} end)
|> Enum.sort
|> Enum.map_reduce(0, fn({hash, node}, index) -> {{index, hash, node}, index + 1} end)
|> elem(0)
end)
|> Enum.sort
|> Enum.map(fn {_i, _h, n} -> n end)
|> Enum.take(n_replica)
end
:slave
module and test against multiple local nodes
raft_fleet
to implement job queues
YourApp.start/2
,
RaftFleet.activate/1
RaftFleet.deactivate/0
before terminating ErlangVM and wait for a while:noconnect
option of :erlang.send/3
is crucial hereraft_fleet
makes cluster-wide “state”s much easier


TFPark Overview
Analytics-Zoo provides a set APIs for running TensorFlow model on Spark in a distributed fashion.
Remarks:
- You need to install tensorflow==1.15.0 on your driver node.
- Your operating system (OS) is required to be one of the following 64-bit systems: Ubuntu 16.04 or later and macOS 10.12.6 or later.
- To run on other systems, you need to manually compile the TensorFlow source code. Instructions can be found here.
TFPark API
TFPark is a set of high-level api modeling after tf.keras and tf.estimator to help user to train and evaluate TensorFlow
models on Spark and BigDL. Users can define their model using tf.keras
API or using model_fn
similar to tf.estimator
.
TFDataset
TFDatasets represents a distributed collection of elements (backed by a RDD) to be fed into a TensorFlow graph. TFDatasets can be created from numpy.ndarrays, an rdd of numpy.ndarrays as well as ImageSet, TextSet and FeatureSet. It acts as an interface connecting RDD data to TensorFlow models.
from zoo import init_nncontext
from zoo.tfpark import TFDataset
from tensorflow as tf
sc = init_nncontext()
# Each record in the train_rdd consists of a list of NumPy ndrrays
train_rdd = sc.parallelize(file_list)
.map(lambda x: read_image_and_label(x))
.map(lambda image_label: decode_to_ndarrays(image_label))
# TFDataset represents a distributed set of elements,
# in which each element contains one or more TensorFlow Tensor objects.
dataset = TFDataset.from_rdd(train_rdd,
features=(tf.float32, [28, 28, 1]),
labels=(tf.int32, []),
batch_size=BATCH_SIZE)
More on TFDataset API API Guide
KerasModel
KerasModel enables user to use tf.keras
API to define TensorFlow models and perform training or evaluation on top
of Spark and BigDL in a distributed fashion.
- Create a KerasModel
from zoo.tfpark import KerasModel, TFDataset
import tensorflow as tf
model = tf.keras.Sequential(
[tf.keras.layers.Flatten(input_shape=(28, 28, 1)),
tf.keras.layers.Dense(64, activation='relu'),
tf.keras.layers.Dense(10, activation='softmax'),
]
)
model.compile(optimizer=tf.keras.optimizers.RMSprop(),
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
keras_model = KerasModel(model)
- Perform training on TFDataset and save model
keras_model.fit(training_dataset, epochs=max_epoch)
model.save_weights("/tmp/model.h5")
- Loading saved model and preform evaluation or inference
model.load_weights("/tmp/model.h5")
evaluation_results = model.evaluate(eval_dataset)
predictions = model.predict(pred_dataset)
More on KerasModel API API Guide
TFEstimator
TFEstimator wraps a model defined by model_fn
. The model_fn
is almost identical to TensorFlow's model_fn
except users are required to use ZooOptimizer, which takes a tf.train.Optimzer
as input, to derive a train_op.
- Define a
model_fn
and create a TFEstimator. Note thatZooOptimizer
must be used.
import tensorflow as tf
from zoo.tfpark import TFEstimator, ZooOptimizer
def model_fn(features, labels, mode):
hidden = tf.layers.dense(features, 32, activation=tf.nn.relu)
logits = tf.layers.dense(hidden, 10)
if mode == tf.estimator.ModeKeys.EVAL or mode == tf.estimator.ModeKeys.TRAIN:
loss = tf.reduce_mean(
tf.losses.sparse_softmax_cross_entropy(logits=logits, labels=labels))
train_op = ZooOptimizer(tf.train.AdamOptimizer()).minimize(loss)
return tf.estimator.EstimatorSpec(mode, train_op=train_op, predictions=logits, loss=loss)
else:
return tf.estimator.EstimatorSpec(mode, predictions=logits)
estimator = TFEstimator.from_model_fn(model_fn, model_dir="/tmp/estimator")
Or use a pre-made Estimator from TensorFlow and create a TFEstimator. Note that ZooOptimizer
must be used.
import tensorflow as tf
linear = tf.estimator.LinearClassifier(feature_columns=feature_columns,
optimizer=ZooOptimizer(tf.train.FtrlOptimizer(0.2)))
estimator = TFEstimator(linear)
- Define a input_fn.
import tensorflow as tf
sc = init_nncontext()
def input_fn(mode):
if mode == tf.estimator.ModeKeys.TRAIN:
training_rdd = get_data_rdd("train", sc)
dataset = TFDataset.from_rdd(training_rdd,
features=(tf.float32, [28, 28, 1]),
labels=(tf.int32, []),
batch_size=320)
elif mode == tf.estimator.ModeKeys.EVAL:
validation_rdd = get_data_rdd("validation", sc)
dataset = TFDataset.from_rdd(testing_rdd,
features=(tf.float32, [28, 28, 1]),
labels=(tf.int32, []),
batch_size=320)
else:
testing_rdd = get_data_rdd("test", sc)
dataset = TFDataset.from_rdd(testing_rdd,
features=(tf.float32, [28, 28, 1]),
batch_per_thread=80)
return dataset
- Perform training, evaluation or inference
estimator.train(input_fn, steps=10000)
evaluation_result = estimator.evaluate(input_fn, ["acc"])
predictions = estimator.predict(input_fn)
More on TFEstimator API API Guide
Low level API
Concepts
-
TFOptimizer is the class that does all the hard work in distributed training, such as model distribution and parameter synchronization. It takes the user specified loss (a TensorFlow scalar tensor) as an argument and runs stochastic gradient descent using the given optimMethod on all the Variables that contribute to this loss.
-
TFPredictor takes a list of user specified TensorFlow tensors as the model outputs, and feed all the elements in TFDatasets to produce those outputs; it returns a Spark RDD with each of its records representing the model prediction for the corresponding input elements.
Training
1.Data wrangling and analysis using PySpark
from zoo import init_nncontext
from zoo.tfpark import TFDataset
from tensorflow as tf
sc = init_nncontext()
# Each record in the train_rdd consists of a list of NumPy ndrrays
train_rdd = sc.parallelize(file_list)
.map(lambda x: read_image_and_label(x))
.map(lambda image_label: decode_to_ndarrays(image_label))
# TFDataset represents a distributed set of elements,
# in which each element contains one or more TensorFlow Tensor objects.
dataset = TFDataset.from_rdd(train_rdd,
features=(tf.float32, [28, 28, 1]),
labels=(tf.int32, []),
batch_size=BATCH_SIZE)
2.Deep learning model development using TensorFlow
import tensorflow as tf
slim = tf.contrib.slim
images, labels = dataset.tensors
squeezed_labels = tf.squeeze(labels)
with slim.arg_scope(lenet.lenet_arg_scope()):
logits, end_points = lenet.lenet(images, num_classes=10, is_training=True)
loss = tf.reduce_mean(tf.losses.sparse_softmax_cross_entropy(logits=logits, labels=squeezed_labels))
You can also construct your model using Keras provided by Tensorflow.
from tensorflow.keras.models import Model
from tensorflow.keras.layers import *
data = Input(shape=[28, 28, 1])
x = Flatten()(data)
x = Dense(64, activation='relu')(x)
x = Dense(64, activation='relu')(x)
predictions = Dense(10, activation='softmax')(x)
model = Model(inputs=data, outputs=predictions)
model.compile(optimizer='rmsprop',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
3.Distributed training on Spark and BigDL
from zoo.tfpark import TFOptimizer
from bigdl.optim.optimizer import MaxIteration, Adam, MaxEpoch, TrainSummary
optimizer = TFOptimizer.from_loss(loss, Adam(1e-3))
optimizer.set_train_summary(TrainSummary("/tmp/az_lenet", "lenet"))
optimizer.optimize(end_trigger=MaxEpoch(5))
For Keras model:
from zoo.tfpark import TFOptimizer
from bigdl.optim.optimizer import MaxIteration, MaxEpoch, TrainSummary
optimizer = TFOptimizer.from_keras(keras_model=model, dataset=dataset)
optimizer.set_train_summary(TrainSummary("/tmp/az_lenet", "lenet"))
optimizer.optimize(end_trigger=MaxEpoch(5))
4.Save the variable to checkpoint
saver = tf.train.Saver()
saver.save(optimizer.sess, "/tmp/lenet/")
For Keras model, you can also Keras' save_weights
api.
model.save_weights("/tmp/keras.h5")
Inference
1.Data processing using PySpark
from zoo import init_nncontext
from zoo.tfpark import TFDataset
from tensorflow as tf
sc = init_nncontext()
# Each record in the train_rdd consists of a list of NumPy ndrrays
testing_rdd = sc.parallelize(file_list)
.map(lambda x: read_image_and_label(x))
.map(lambda image_label: decode_to_ndarrays(image_label))
# TFDataset represents a distributed set of elements,
# in which each element contains one or more TensorFlow Tensor objects.
dataset = TFDataset.from_rdd(testing_rdd,
features=(tf.float32, [28, 28, 1]),
batch_per_thread=4)
2.Reconstruct the model for inference and load the checkpoint
import tensorflow as tf
slim = tf.contrib.slim
images, labels = dataset.tensors
with slim.arg_scope(lenet.lenet_arg_scope()):
logits, end_points = lenet.lenet(images, num_classes=10, is_training=False)
sess = tf.Session()
saver = tf.train.Saver()
saver.restore(sess, "/tmp/lenet")
As before, you can also construct and restore your model using Keras provided by Tensorflow.
from tensorflow.keras.models import Model
from tensorflow.keras.layers import *
data = Input(shape=[28, 28, 1])
x = Flatten()(data)
x = Dense(64, activation='relu')(x)
x = Dense(64, activation='relu')(x)
predictions = Dense(10, activation='softmax')(x)
model = Model(inputs=data, outputs=predictions)
model.load_weights("/tmp/mnist_keras.h5")
3.Run predictions
predictor = TFPredictor.from_outputs(sess, [logits])
predictions_rdd = predictor.predict()
For keras model:
predictor = TFPredictor.from_keras(model, dataset)
predictions_rdd = predictor.predict()
Relationship to TFNet
TFNet is a layer representing a TensorFlow sub-graph (specified by the input and output TensorFlow tensors). It implements the standard BigDL layer API, and can be used with other Analytics-Zoo/BigDL layers to construct more complex models for training or inference using the standard Analytics-Zoo/BigDL API.
You can think of TFDatasets
, TFOptimizer
, TFPredictor
as a set API for training/testing TensorFlow models
on Spark/BigDL, while TFNet
as an Analytics-Zoo/BigDL layer initialized using TensorFlow graph.
For more information on TFNet, please refer to the API Guide


You need to specify an email address before inviting someone.
The given email is already in your list.
You need to specify a title for your project.


|
VL6180(X) API
3.2.0
|
Range and any optional measurement data. More...
#include <vl6180x_def.h>
Data Fields | |
| int32_t | range_mm |
| int32_t | signalRate_mcps |
| uint32_t | errorStatus |
| uint32_t | rtnAmbRate |
| uint32_t | rtnRate |
| uint32_t | rtnConvTime |
| uint32_t | refConvTime |
| uint32_t | DMax |
| RangeFilterResult_t | FilteredData |
Range and any optional measurement data.
Definition at line 274 of file vl6180x_def.h.
| int32_t VL6180x_RangeData_t::range_mm |
range distance in mm.
Definition at line 275 of file vl6180x_def.h.
| int32_t VL6180x_RangeData_t::signalRate_mcps |
signal rate (MCPS)
these is a 9.7 fix point value, which is effectively a measure of target reflectance.
Definition at line 276 of file vl6180x_def.h.
| uint32_t VL6180x_RangeData_t::errorStatus |
Error status of the current measurement.
see RangeError_u VL6180x_GetRangeStatusErrString()
Definition at line 277 of file vl6180x_def.h.
| uint32_t VL6180x_RangeData_t::rtnAmbRate |
Return Ambient rate in KCount per sec related to RESULT_RANGE_RETURN_AMB_COUNT
Definition at line 281 of file vl6180x_def.h.
| uint32_t VL6180x_RangeData_t::rtnRate |
Return rate in KCount per sec related to RESULT_RANGE_RETURN_SIGNAL_COUNT
Definition at line 282 of file vl6180x_def.h.
| uint32_t VL6180x_RangeData_t::rtnConvTime |
Return Convergence time RESULT_RANGE_RETURN_CONV_TIME
Definition at line 283 of file vl6180x_def.h.
| uint32_t VL6180x_RangeData_t::refConvTime |
Reference convergence time RESULT_RANGE_REFERENCE_CONV_TIME
Definition at line 284 of file vl6180x_def.h.
| uint32_t VL6180x_RangeData_t::DMax |
DMax when applicable
Definition at line 289 of file vl6180x_def.h.
| RangeFilterResult_t VL6180x_RangeData_t::FilteredData |
Filter result main range_mm is updated
Definition at line 293 of file vl6180x_def.h.


Hi, = candidate ?>
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book


Services
Our Projects
About
Contact Us
Contact Us
send message
Your message has been sent, thank you.


In order to install Micronaut, run following command:
$ sdk install micronaut
You can also specify the version to the sdk install command.
$ sdk install micronaut 1.3.4
You can find more information about SDKMAN usage on the SDKMAN Docs
You should now be able to run the Micronaut CLI.
$ mn
| Starting interactive mode...
| Enter a command name to run. Use TAB for completion:
mn>
In order to install Micronaut, run following command:
$ brew install micronaut
You can find more information about Homebrew usage on their homepage.
Negative : If you are using an internal repository please make sure to mirror jcenter repository
mn create-app hello-world
Positive : You can supply –build maven if you wish to create a Maven based build instead
The previous command will create a new Java application in a directory called hello-world featuring a Gradle build. The application can be run with ./gradlew run:
$ ./gradlew run
> Task :run
[main] INFO io.micronaut.runtime.Micronaut - Startup completed in 972ms. Server Running: http://localhost:28933
If you have created a Maven based project, use ./mvnw compile exec:exec instead.
By default the Micronaut HTTP server is configured to run on port 8080. See the section Running Server on a Specific Port in the user guide for more options.
In order to create a service that responds to "Hello World" you first need a controller. The following is an example of a controller:
import io.micronaut.http.MediaType;
import io.micronaut.http.annotation.Controller;
import io.micronaut.http.annotation.Get;
@Controller("/hello") //#1
public class HelloController {
@Get(produces = MediaType.TEXT_PLAIN) //#2
public String index() {
return "Hello World"; //#3
}
}
If you start the application and send a request to the /hello URI then the text "Hello World" is returned:
$ curl http://localhost:8080/hello
Hello World


We had a project to crowd-source food data that we had been working on. Many people, espeically children, have mutliple food preferences and sensitivities. The calculus of allowable foods is very very hard to do. How can a person be both Vegan and Halal? Vegetarian and avoiding avocados because of an allergy? The potential combinations can easily be resolved with a commercial-grade food database, but we wanted to create a proliferation of targeted diet apps by providing the underlying food ingredient and health calculations in an automated fashion.
It is possible to use the forced ordering (ingredient lists are ordered by volume, but contain recursively defined lists) as well as nutrition density to reverse engineer the sources and types of caloric intake with much greater accuracy. This is a big data ML type project that is impossible without reliable underlying data.
The basic idea was to create an open food database that included several major components:
Dietary Assessment Primer
For example make an open source version of this
A story about kids living with peanut allergy: Science 18 Oct 2018: Toxin or Treatment?
Since we last worked on the problem. several things have changed.


Politico
Trusty Voting Platform for Politicians and Voters.
Sign Up
First Name
Lastname
Other Name
Email
Phone
Passport
Password
Sign Up
You do have an account?
Sign In


This is a Google Tasks client for Pebble smartwatch.
You may discuss it here.
Available in Rebble AppStore.
You can login with your Google account and obtain passcode. Then enter obtained passcode to application's settings.
Pebble is fading away, but is still alive. This application is one of the examples. You can donate to support it.
We do not store any of your personal data. All processing happens on your phone and your Pebble device. Our server is used only to proxy authentication data and does not store anything.


Mark Ronson teams with Anderson Paak in new ‘Then There Were Two’ (VIDEO)
LOS ANGELES, Nov 19 — The collaboration will appear on the soundtrack for new animated film Spies in Disguise, which Ronson curated and executive produced.
The soulful Then There Were Two is featured in the most recent trailer of the movie, in which Paak is heard crooning “’Cause without you, I’m a sloucher, but with you, I’m ambitious/Such a mess tho, when I’m not near you/But together we can’t stop look in the mirrors.”
In addition to Paak, the soundtrack for Spies in Disguise will include guest contributions by Lucky Daye, Codgr, Rob Base and DJ EZ Rock.
Lil Jon will also appear on They Gotta Go, while DJ Shadow and De La Soul will team up on Rocket Fuel.
Mark Ronson Presents the Music of Spies in Disguise will arrive on December 13, a few weeks ahead of Blue Sky Studios’ new animated blockbuster.
Spies in Disguise, which will hit theatres on Christmas Day, stars Will Smith, Tom Holland, Rashida Jones and DJ Khaled among others.
The comedy follows the story of the unlikely duo of super spy Lance Sterling (voiced by Smith) and shy scientist Walter Beckett (portrayed by Holland).
As the whole world is in peril, Sterling and Beckett will have to work as a team for a mission that will require to turn the debonair spy into a pigeon.
In addition to working on the soundtrack for Spies in Disguise, Ronson released his latest studio album, Late Night Feelings, earlier this year.
The British producer extraordinaire notably collaborated on the project, which he described as a “collection of sad bangers,” with Angel Olsen, Camila Cabello, Alicia Keys among others.
Meanwhile, Paak unveiled his critically-acclaimed fourth studio effort, Ventura, in April.
Discover the pair’s latest collaboration, Then There Were Two: — AFP-Relaxnews


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/unexpected.20occurrence.20of.20recursive.20function.html ---
The following snippet does not compile: unexpected occurrence of recursive function
def height : ℕ → ℕ | 0 := 0 | (n + 1) := id height n
I am very disturbed!
Did you mean id height n
(which is (id height) n
, of course) or id (height n)
? I am not surprised that the former fails.
I mean't the former---why is it expected that it fails?
It wouldn't be so great if you instead had id' height n
where id' f n := f (n+1)
So basically you're asking Lean to reduce the right hand side before attempting to determine whether it is syntactically a valid recursive call
Sure, but normally when this happens we get could not prove recursive application is decreasing well-founded relation
(or something like that I'm just remembering), and instead this time it seems like lean just goes "nope not even trying this time".
Well because you don't even have an application of height
aha! ok. Thanks! :)
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


---
title: "Portfolio"
layout: default
description: "My Projects and Publications"
header-img: "img/portfolio-bg.jpg"
---
{% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}
{{ page.description }}
多旋翼飞行测试平台
硬件：步进电机，驱动器，arduino控制器，开关电源，蓝牙，滑轨，3D打印零件，型材等软件：Visual Studio，Arduino，Android，C++
DroneTester是一款开源多旋翼飞行测试平台，开发者可以在这个平台上完成多种与多旋翼相关的研究，例如多旋翼的飞控参数调节，自主起飞与降落的测试，基于视觉的物体追踪，以及多旋翼的其他拓展功能的研究。更多信息及资料可以访问DroneTester官网。
基于视觉导航的四旋翼
硬件：无刷电机，电调，MWC飞控，声呐，摄像头，蓝牙，3D打印零件，型材等软件：Visual Studio，MultiWii，OpenCV，C++
基于视觉导航的四旋翼飞行器，完成了从设计到开发的工作，包括飞行器的三维结构设计，型材加工与搭建，飞控、摄像头、Sonar等传感器以及电机的搭建连接，飞行器控制调参，传感器校准等。基于开源飞控及OpenCV等开发了飞行器视觉跟随等功能，基于Sonar等传感器开发了自主起降功能。
Video_优酷 Video_YoutubeVR英语应用
开发工具：Unity3D，C#，Linux，Java
一款VR英语学习应用，通过虚拟现实技术辅助用户学习英语，开口说英语，目前有签证面试场景和演讲场景。本人主要负责后台推送服务器开发，以及场景内VR人物动作表情，语音播放与嘴型匹配等。
ROS机械臂
开发工具：ROS，C++
研究基于ROS-industrial的机械臂运动规划，控制机械臂在三维空间内抓取并移动物体。
四指抓手
硬件：AX-12舵机，Arduino，3D打印零件，滑轮等软件：ROS，Arduino，C++
根据standFord开源项目openBionic制作的单舵机控制的四指抓手。
Video_优酷音乐计步器
硬件：Arduino，加速度计，播放模块，3D打印零件软件：Arduino，C++
跑步时觉得带手机太重，但MP3又没法计步，所以自己做了一个简单的听歌+计步的小东西，具有MP3的基本功能，以及计步功能。经检验，计步很准。特意找了黑色的3D打印材料，提升逼格，不过由于是手工打造，盒子里藏了20多根杜邦线，所以体积还是有点大。整个东西成本在￥50以内。
Blimp飞船
硬件：Arduino，130马达，乐高零件，气球软件：Arduino，C++，Android
国庆的时候，实验室放了一些气球，后来准备用这些气球做一个能用手机遥控的飞艇，就是图片里面这个，叫做Blimp，能用手机app控制小飞艇前进和转向。
A Flexible Test Platform for Multirotors Liu Yao, Zhang Xinyu (submitted)
本文提出了介绍了自主开发的多旋翼飞行测试平台以及一些相关实验，开发者可以在这个平台上完成多种与多旋翼相关的研究，例如多旋翼的飞控参数调节，自主起飞与降落的测试，多旋翼物体追踪功能的研究，
Dronetester主页Comparing Two Continuous Collision Detection Algorithms on CPU and GPUs Liu Yao, Zhang Xinyu International Conference on Virtual Reality and Visualization (co-located with ChinaVR), September 23-25, 2016, Hangzhou
本文针对文森特过滤算法与基于几何分析的过滤算法进行等价性推导，在CPU和GPU上分别用两种算法进行了仿真实验，对于实验中的一些特殊情形进行探讨，并对基于几何分析的过滤算法做了一些改进。
论文主页A Fast Algebraic Non-Penetration Filter for Continuous Collision Detection using Vincent Theorem Zhang Xinyu, Liu Yao Journal of Graphical Models, 2015 (SCI影响因子1.23)
本文提出了基于文森特定理的连续碰撞检测过滤算法，根据一次或两次迭代的文森特定理判断碰撞是否发生，显著提高了碰撞检测的效率。
论文主页An Algebraic Culling Algorithm for Continuous Collision Detection using Sturm Theorem Zhang Xinyu, Liu Yao IEEE International Conference on Mechatronics and Automation, 2~5 August, 2015, Beijing, China.
本文提出基于斯图姆定理的连续碰撞检测过滤算法，根据碰撞方程的斯图姆序列，得到两个边界值序列的符号变量值，利用斯图姆定理判断碰撞是否发生，有效过滤伪碰撞对。
论文主页A Simple Filtering Algorithm for Continuous Collision Detection using Taylor Models Zhang Xinyu, Liu Yao International Conference on Computer-Aided Design and Computer Graphics (CAD/Graphics), 26~28 August 2015, Xi'an, China.
本文提出了基于泰勒模型的连续碰撞检测过滤算法，根据泰勒模型求解碰撞方程，并判定碰撞是否发生。本算法能有效过滤伪碰撞对，提高碰撞检测实时性。
论文主页Multirotor Flight Test Platform
Hardware:stepper motor,driver,arduino controller,switching power supply,bluetooth,slider,3D printed component,profilesSoftware:Visual Studio,Arduino,Android,C++
DroneTester is an open source and flexible test platform for unmanned multirotors. Operators can implement various experimental researches for multirotors on this platform, such as flight control, autonomous take-off, autonomous landing, vision-based object tracking, and other sensor-related experiments. More info can be found in Dronetester。
vision-based quadrotor
Hardware: motor,driver,MWC,arduino,sonar,camera,bluetooth,3D printed component,profilesSoftware:Visual Studio,MultiWii,OpenCV,C++
Vision-based quadrotor, including the design of 3d structure of quadrotor, material processing and building. I have developed the target follow function and sonar based autonomous taking-off and landing.
Video_youku Video_YoutubeVR English Learning Application
Development Tools:Unity3D,C#,Linux,Java
An VR English learning application, help the user to learn English by virtual reality technical. Currently there are visa interview scene and speech scene. And I am responsible for the push server and avatars control in the scene, including motion and emotion control, as well as the mouth match.
ROS robot arm
Development Tools:ROS，C++
This project focus on the motion planning of robot arm based on ROS-industrial. The main work is to grab and move object by the gripper.
4finger-gripper
Hardware: AX-12 steering engine,Arduino,3D printed component,pullySoftware:ROS,Arduino,C++
A 4finger-gripper based on the open source project by standFord.
Video_youkumusic-pedometer
Hardware: Arduino,accelerometer,music module,3D printed componentSoftware:Arduino，C++
The phone is too heavy while running, so I make this music-step product. It can be used as MP3 and running distance recorder.
Blimp
Hardware: Arduino, 130motor,Lego component,ballonSoftware:Arduino, C++, Android
The blimp airship can be controlled by android App, it can move forward and turn in the air.
A Flexible Test Platform for Multirotors Liu Yao, Zhang Xinyu (submitted)
In this paper, we present a flexible and open source test platform for unmanned multirotors. Operators can carry out many experimental research under this platform for multirotors, such as take-off, landing, vision-based object tracking, and other sensorrelated experiments.
DronetesterComparing Two Continuous Collision Detection Algorithms on CPU and GPUs Liu Yao, Zhang Xinyu International Conference on Virtual Reality and Visualization (co-located with ChinaVR), September 23-25, 2016, Hangzhou
In this paper, we prove that these two fast filtering algorithms nearly equivalent. We compare their performance on CPUs. We extended both algorithms to GPUs and further compare their performance using dynamics simulation for cloth.
Project PageA Fast Algebraic Non-Penetration Filter for Continuous Collision Detection using Vincent Theorem Zhang Xinyu, Liu Yao Journal of Graphical Models, 2015 (SCI IF 1.23)
In this paper, we present the filter based on vincent theorem in continuous collision detection.
Project PageAn Algebraic Culling Algorithm for Continuous Collision Detection using Sturm Theorem Zhang Xinyu, Liu Yao IEEE International Conference on Mechatronics and Automation, 2~5 August, 2015, Beijing, China.
In this paper, we present the filter based on sturm theorem in continuous collision detection.
Project PageA Simple Filtering Algorithm for Continuous Collision Detection using Taylor Models Zhang Xinyu, Liu Yao International Conference on Computer-Aided Design and Computer Graphics (CAD/Graphics), 26~28 August 2015, Xi'an, China.
In this paper, we present the filter based on taylor theorem in continuous collision detection.
Project Page


New Student Form
Enter Student Information
Name
Age
Phone No
Address
STUDENT TABLE
Name
Age
Phone No
Address


I have had several experiences using Diphenhydramine HCl, from Benadryl Allergy tablets. At the time of most of them, I did not plan on submitting a report, and had not thought to keep track of everything I did very well, but I'll attempt to go back and document it all.
My first experiences were very slight ones; I was at university, exams were about to start for the semester, and I had some awful allergies. I wasn't, at first, trying to have a trip or anything like that. I was trying to get rid of some really debilitating allergies. The first thing I bought was actually Claratin (Loratadine [10 mg]). I found that barely helped me. At this point, a friend gave me some Sudafed Sinus & Allergy (Pseudoephedrine Hydrochloride [60 mg], Chlorpheniramine Maleate [4 mg]), and I'd taken both of those in one day, just trying to feel better. Nothing was helping. I was in the campus bookstore when I saw some packets of Benadryl Allergy. I'd never taken it before, but I decided to get a couple of one-dose packets, just to see if it helped.
Well, I don't know if it was just the Benadryl, or the fact that I had the other medications still in my system, but a little later I was very out-of-it. I've not really done any drugs other than marijuana, so I have nothing to compare this to, but I felt somewhat like I was floating a little. I ended up going and buying a good deal more Benadryl, and over the next week, kept myself on a slight high most of the time, using that and the Sudafed. I felt a lot better, and while it may not have been the most intelligent thing to do, it pulled me through my exams.
I found, in that time, I'd just drift off, and start paying attention to rather random things. When I was walking, I felt like I was bouncing slightly. At one point, after taking some of both Benadryl and Sudafed, I was walking with some friends to the cafeteria, and had to go up a few steps to get into the building. When I reached the top step, I put my foot down on it, and while I knew I'd stopped moving, at the same time, I felt that I had continued moving, through the step, and was now upside-down.
I stopped taking the Benadryl because I was actually having trouble sleeping. This was, I think, due to the mix of caffeine (something I am constantly ingesting), and Pseudoephedrine from the Sudafed, with the Benadryl. When I tried to sleep, I found that my legs would twitch, but I could almost control it. It was more like I felt this extreme urge to move my legs, constantly. It was very uncomfortable, and when I finally did get to sleep, I'd often wake up shortly after, feeling just as restless. I still had allergies, and took Sudafed to alleviate them I much as I could, but I honestly do not like the way my body reacts to Sudafed at times, so I stopped with that too, and struggled through my last few days on campus unable to breathe very well. I still had some left over Benadryl, Sudafed, and Claratin when I left for home.
At some point during all this, I did actually look up some medical sites, to read up on the drug interactions between the ingredients of these three medications, and had found nothing to suggest that when used together, they should cause any problems. While I fully admit that what I did was probably not a good idea, given how little I knew, I did at least take *some* precautions.
Jump ahead to July 9, 2003. I had, by this point, read rather more about these three drugs, though I had not used any of them again. I had an allergic reaction to something, and was rather uncomfortable, and decided to see if any of these drugs might help me. I believe it was around 10 PM. I took one Sudafed, two Benadryls, and one Claratin. The last I doubt affected me at all, I simply was honestly hoping it might help with my allergic reaction. Remembering the effects I'd seen in the past, I decided to look online, and see if anyone had used these for reasons other than allergies. I started to find stories of hallucinations and the like. I decided to take it bit by bit, and took another two Benadryls. I remember when these kicked in, I had this sensation that my mind was rushing sideways. I have no other way to describe it.
As I first noted, I really wasn't keeping track of when I took things. I ended up staying up until the morning of the 11th, at which point I had to leave, as I was going on a camping trip. From the night of the 9th, to the morning of the 11th, I did not sleep. I took, I believe, 8 Benadryls, 2 Sudafeds, 1 Claratin, and 2 Pseudoephedrine Hydrochloride capsules. I also drank a lot of caffeinated drinks, throughout the experience.
I have never stayed up so long, without feeling utterly exhausted. Honestly, it's one of the most amazing things I have ever felt. I spoke to a good friend of mine online for over 24 hours straight, stopping only when he needed to leave for short intervals. I had some mild hallucinations at some points, including things moving when I know they should not have been, flashing lights and swirling patterns on things, and one of my walls bulging out, like a large sphere was coming through it, with green and red swaths of energy-like stuff over it. At one point, I also saw an elephant's face, from the front, coming through the wall.
My arms and legs felt heavy, but I felt quite light-headed, in a rather pleasant way. I found my grasp on time was quite strange. Sometimes, it would feel like almost no time had passed, but actually, it had been several hours. At other points, I was certain a long period of time had passed, but I would find out it had only been 45 minutes or so. I used a computer program for creating songs, which I've never used before, and put together something utterly bizarre and random. At the time, it made sense. Now, it's a rather amusing reminder of the whole experience. Towards the end of the experience, I had an extremely emotional discussion with the friend I had been talking to through much of it, and I do not feel that the drugs I took inhibited my expression or communication in any way. I actually felt quite clear-minded, and the friend I was talking to commented that I actually, if anything, made more sense than usual.
Probably one of the more memorable effects of all this was at one point, earlier in the experience, I was sitting playing an online game with a chat, and I was the person who had most recently entered it. Someone entered the text 'Phil?' I saw it, and thought that perhaps they were asking if I was Phil, since I had just got there. After this, I believe I thought, for a moment, 'But couldn't I be Phil? How do I know I'm not?' Immediately, this thought left, and I began questioning whether I'd ever thought it. So, I may have thought I could be Phil for a moment. Or, perhaps, I just thought that I had thought that I might be Phil. Regardless, it was rather amusing, as I was still aware that my thoughts were abnormal.
Afterward, I was extremely tired, but I believe that would be considered normal, given how long I had been awake. I slept for an hour in the car on the way to where I was going, and then stayed up until around midnight. I had been up well over 60 hours. The next day, after sleeping for 6 or 7 hours, I went to a Renassaince festival with a friend; I felt I was acting a little strangely, somewhat lost in my own thoughts.
This may have been partially due just to exhaustion, and the rather emotional conversation I'd had the day before. In general, I was quite functional, though. My eyes were quite dialated through much of the experience, and at the end, when I had been awake a very long time, I was having a hard time speaking to my parents. I feel as though I was mumbling, and my mother commented that I looked sick. I had no appetite for two days, I could barely eat anything. I did not feel sick though.
After this, I became rather curious as to why so many people seemed to indicate that Benadryl had made them very tired, so I decided to try it by itself, to find out. This was just a couple of nights ago. I had not been drinking as much caffeine as usual. I took 4 Benadryl capsules. (It might be worth noting that the first time, I took solid tablets, and I believe they were slower-acting.) About an hour later, I took two more.
I did begin to feel quite drowsy, like I was being dragged down, and also noticed some slight visual effects-- flashing lights, things moving slightly, etc. I decided to take a Sudafed, on the basis that the way things were going, I was simply going to pass out, and it would not be very enjoyable. I then began drinking caffeinated drinks again. I stayed up several more hours, and began to hallucinate more and more strongly, both with my eyes open and shut.
I was seeing swirly patterns of colors on flat surfaces, and there was a criss-crossed pattern on my wall, that was moving around. I began to lose my sense of what was real and what was not. I thought, for a moment, that the wall really did look like that, and had to really force myself to remember that it was not the case. I could feel myself slipping into something deeper. I felt utterly exhausted though. It was almost like the feeling of being so tired that you're unable to stop yourself from falling asleep, but it felt like something else was going to happen, rather than sleep.
It was a strange feeling, and honestly not very enjoyable. I had to really fight to make sense of anything, including things I was typing, online. (I was talking to the same friend, once again.) Eventually, I went to bed, and fell asleep very quickly. I got up the next day, after about 7 or 8 hours of sleep, and still felt tired. I went back to bed, and slept until 5 PM, over 4 hours later.
From my experiences, I believe that Benadryl can be very enjoyable, but only when used in combination with other things. Also, most people who have had bad experiences seem to have taken large amounts, and in high doses. I had a much better experience by spacing out smaller doses. However, I wouldn't say this is something you can do, and then go back to functioning totally normally right away. I have the benefit of having a free summer, and essentially my own apartment in my parents' house. They do not disturb me, and I have nothing I really need to do. I am planning on experimenting further with this, as the experience I had July 9-11 was extremely enjoyable. If I do, I will keep track of everything I do much more clearly, for my own benefit, and so I can submit it.
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.


Spellbook Seller Elena:
Did you get the
Divine Stone of Wisdom
? I know it's not easy to win the trust of the chief shaman. Let me see it.
"Here's the stone."


Class SvgImageNameScope
This class, if placed at the root of a XAML file which is loaded by XamlReader.Load() will end up having all named elements contained in its nameTable automatically. If you want to get that list, it is now in your power.
Inheritance
SvgImageNameScope
Implements
Inherited Members
Namespace: SharpVectors.Runtime
Assembly: SharpVectors.Runtime.Wpf.dll
Syntax
public sealed class SvgImageNameScope : Image, IAnimatable, IFrameworkInputElement, IInputElement, ISupportInitialize, IQueryAmbient, IUriContext, INameScope
Remarks
This class is based on the discussion, which can be found here http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/5c226430-c54d-45b8-a8a2-7e4a79e3692a
Constructors
SvgImageNameScope()
Declaration
public SvgImageNameScope()
Explicit Interface Implementations
INameScope.FindName(String)
Declaration
object INameScope.FindName(string name)
Parameters
| Type | Name | Description |
|---|---|---|
| String | name |
Returns
| Type | Description |
|---|---|
| Object |
INameScope.RegisterName(String, Object)
Declaration
void INameScope.RegisterName(string name, object scopedElement)
Parameters
| Type | Name | Description |
|---|---|---|
| String | name | |
| Object | scopedElement |
INameScope.UnregisterName(String)
Declaration
void INameScope.UnregisterName(string name)
Parameters
| Type | Name | Description |
|---|---|---|
| String | name |


After Deaparture
After Deaparture
One way fare+Penality would apply One way fare+Penality would apply One way fare+Penality would apply One way fare+Penality would apply One way fare+Penality would apply One way fare+Penality would apply


@() @main("Welcome to Play") {
The sole intention of this is to provide a pretty straight forward way to use current frontend-technologies (Yarn, Gulp, Webpack and SASS) together with a Play Framework web application.
Display a modal window...


[name]
A class containing utility functions for curves.
Note that these are all linear functions so it is neccessary to calculate seperately for
x, y (and z, w if present) components of a curve.
Methods
[method:Number interpolate]( p0, p1, p2, p3, t )
t -- interpolation weight.
p0, p1, p2, p4 -- the points defining the spline curve.
Used internally by [page:SplineCurve SplineCurve].
[method:Number tangentQuadraticBezier]( t, p0, p1, p2 )
t -- the point at which to calculate the tangent.
p0, p1, p2 -- the three points defining the quadratic Bézier curve.
Calculate the tangent at the point t on a quadratic Bézier curve given by the three points.
Used internally by [page:QuadraticBezierCurve QuadraticBezierCurve].
[method:Number tangentCubicBezier]( t, p0, p1, p2, p3 )
t -- the point at which to calculate the tangent.
p0, p1, p2, p3 -- the points defining the cubic Bézier curve.
Calculate the tangent at the point t on a cubic Bézier curve given by the four points.
Used internally by [page:CubicBezierCurve CubicBezierCurve].
[method:Number tangentSpline]( t, p0, p1, p2, p3 )
t -- the point at which to calculate the tangent.
p0, p1, p2, p3 -- the points defining the spline curve.
Calculate the tangent at the point t on a spline curve given by the four points.
Source
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]


--- layout: post title: "Going NUTS with pyro and pystan" permalink: /:title/ tags: [pyro, pystan] ---
Uber's pyro as described in Pyro: Deep Universal Probabilistic Programming sounds pretty cool so I thought I'd give it a whirl. They seem to have focussed their efforts on the variational inference algorithms but still have an implementations of NUTS. In a bid to get up and running quick I thought I'd start with the MCMC based algorithms since they don't require the user to specify a variational distribution to approximate the posterior (known in pyro as a "guide"). I'll check out the variational stuff soon.
I'm not even going to bother describing the simulated data and employed model as it is so easy to see how it all works in the python code below - that is largely because specifying a model in pyro is super nice! Regardless, the point of this is not to come up with a good model but to explore how pyro works, and compare it to stan (which I am much more familiar with).
import torch import pyro import pyro.distributions as dist import pyro.infer.mcmc as mcmc import time as tm torch.multiprocessing.set_sharing_strategy("file_system") pyro.set_rng_seed(42) NUM_WARMUP = 1000 NUM_SAMPLES = 1000 NUM_CHAINS = 3 N = 2500 P = 8 alpha_true = dist.Normal(42.0, 10.0).sample() beta_true = dist.Normal(torch.zeros(P), 10.0).sample() sigma_true = dist.Exponential(1.0).sample() eps = dist.Normal(0.0, sigma_true).sample([N]) x = torch.randn(N, P) y = alpha_true + x @ beta_true + eps def model(x, y): alpha = pyro.sample("alpha", dist.Normal(0.0, 100.0)) beta = pyro.sample("beta", dist.Normal(torch.zeros(P), 10.0)) sigma = pyro.sample("sigma", dist.HalfNormal(10.0)) mu = alpha + x @ beta return pyro.sample("y", dist.Normal(mu, sigma), obs=y) kernel = mcmc.NUTS(model, jit_compile=True) start = tm.time() posterior = mcmc.MCMC(kernel, num_samples=NUM_SAMPLES, warmup_steps=NUM_WARMUP, num_chains=NUM_CHAINS, disable_progbar=True).run(x, y) pyro_time = tm.time() - start
The most frustrating part of this was trying to find out why the mcmc call would
fail when I set num_chains > 1
, and I still don't really get why, but it was
fixed via torch.multiprocessing.set_sharing_strategy("file_system")
.
But that's it! We've simulated some data, defined a model, and inferred the model parameters using NUTS with just a few lines of code. Unfortunately I found it a bit more effort to actually examine the inference output, I think this is one area where pyro is lacking (or I have struggled with the documentation). Nevertheless, I took some code from the pyro baseball example and got this:
import pandas as pd def get_site_stats(array, name): if len(array.shape) == 1: names = [name] else: names = ["{}[{}]".format(name, i) for i in range(array.shape[1])] df = pd.DataFrame(array, columns=names).transpose() return df.apply(pd.Series.describe, axis=1)[["mean", "std", "25%", "50%", "75%"]] def summary(posterior, sites, diagnostics=True): marginal = posterior.marginal(sites) site_stats = {} for site in sites: marginal_site = marginal.support(flatten=True)[site] site_stats[site] = get_site_stats(marginal_site.numpy(), site) if diagnostics and posterior.num_chains > 1: diag = marginal.diagnostics()[site] site_stats[site] = site_stats[site].assign( n_eff=diag["n_eff"].numpy(), r_hat=diag["r_hat"].numpy()) return site_stats sites = ["alpha", "beta", "sigma"] df = pd.concat([s for s in summary(posterior, sites).values()]) print(df)
| mean | std | 25% | 50% | 75% | neff | rhat | |
|---|---|---|---|---|---|---|---|
| alpha | 45.37 | 0 | 45.37 | 45.37 | 45.37 | 3078.48 | 1 |
| beta[0] | 1.29 | 0 | 1.29 | 1.29 | 1.29 | 3047.63 | 1 |
| beta[1] | 2.35 | 0 | 2.35 | 2.35 | 2.35 | 2774.76 | 1 |
| beta[2] | 2.3 | 0 | 2.3 | 2.3 | 2.31 | 3313.62 | 1 |
| beta[3] | -11.23 | 0 | -11.23 | -11.23 | -11.23 | 2983.01 | 1 |
| beta[4] | -1.86 | 0 | -1.86 | -1.86 | -1.86 | 3293.98 | 1 |
| beta[5] | 22.09 | 0 | 22.09 | 22.09 | 22.09 | 3107.56 | 1 |
| beta[6] | -6.38 | 0 | -6.38 | -6.38 | -6.38 | 3048.57 | 1 |
| beta[7] | 4.62 | 0 | 4.62 | 4.62 | 4.62 | 3366.54 | 1 |
| sigma | 0.17 | 0 | 0.17 | 0.17 | 0.17 | 2201.37 | 1 |
import seaborn as sns import matplotlib.pyplot as plt sns.set() plt.rcParams["figure.figsize"] = (10, 5) def add_plot(x, axis, true, label): sns.distplot(x, ax=axis, axlabel=label) axis.axvline(true, color="green") samples = posterior.marginal(sites).support(flatten=True) fig, axes = plt.subplots(1, 2) add_plot(samples["alpha"], axes[0], alpha_true, r"$\alpha$") add_plot(samples["sigma"], axes[1], sigma_true, r"$\sigma$") plt.savefig("../img/alpha_sigma_summary.png") plt.close()
import itertools as it fig, axes = plt.subplots(2, P // 2) plt.subplots_adjust(hspace=0.5) for i, (j, k) in enumerate(it.product(range(2), range(P // 2))): add_plot(samples["beta"][:, i], axes[j][k], beta_true[i], r"$\beta_{}$".format(i)) plt.savefig("../img/beta_summary.png") plt.close()
So it looks like it works quite nicely!
Overall I found pyro quite nice to use for sampling (as I said earlier, I will try the variational inference later) but it just doesn't have all the extra goodies that stan has like bayesplot.
For completeness, I also coded up an equivalent model in stan:
The stan model definition doesn't look dissimilar to the pyro model function:
data { int<lower = 0> N; int<lower = 0> P; matrix[N, P] x; vector[N] y; } parameters { real alpha; vector[P] beta; real<lower = 0.0> sigma; } model { alpha ~ normal(0.0, 100.0); beta ~ normal(0.0, 10.0); sigma ~ normal(0.0, 10.0); y ~ normal(alpha + x * beta, sigma); }
import pystan as stan stan_data = {"N": N, "P": P, "x": x.numpy(), "y": y.numpy()} stan_model = stan.StanModel(stan_file) start = tm.time() stan_fit = stan_model.sampling(data=stan_data, iter=NUM_WARMUP + NUM_SAMPLES, warmup=NUM_WARMUP, chains=NUM_CHAINS) stan_time = tm.time() - start
I found getting the equivalent inference information out of stan much easier:
print(stan_fit)
Inference for Stan model: anon_model_eb90b2beb3bbb2831cfb01cc5ce60f76. 3 chains, each with iter=2000; warmup=1000; thin=1; post-warmup draws per chain=1000, total post-warmup draws=3000. mean se_mean sd 2.5% 25% 50% 75% 97.5% n_eff Rhat alpha 45.37 4.8e-5 3.4e-3 45.36 45.37 45.37 45.37 45.37 5143 1.0 beta[1] 1.29 4.8e-5 3.5e-3 1.29 1.29 1.29 1.29 1.3 5262 1.0 beta[2] 2.35 4.4e-5 3.3e-3 2.34 2.35 2.35 2.35 2.36 5702 1.0 beta[3] 2.3 5.1e-5 3.5e-3 2.3 2.3 2.3 2.31 2.31 4752 1.0 beta[4] -11.23 4.7e-5 3.4e-3 -11.23 -11.23 -11.23 -11.23 -11.22 5264 1.0 beta[5] -1.86 4.6e-5 3.4e-3 -1.87 -1.86 -1.86 -1.86 -1.85 5451 1.0 beta[6] 22.09 4.3e-5 3.2e-3 22.08 22.09 22.09 22.09 22.1 5542 1.0 beta[7] -6.38 4.8e-5 3.2e-3 -6.39 -6.38 -6.38 -6.38 -6.38 4662 1.0 beta[8] 4.62 4.5e-5 3.3e-3 4.61 4.62 4.62 4.62 4.63 5366 1.0 sigma 0.17 3.7e-5 2.4e-3 0.16 0.17 0.17 0.17 0.17 4192 1.0 lp__ 3205.9 0.06 2.21 3200.8 3204.6 3206.2 3207.5 3209.2 1283 1.0 Samples were drawn using NUTS at Mon Dec 24 19:29:57 2018. For each parameter, n_eff is a crude measure of effective sample size, and Rhat is the potential scale reduction factor on split chains (at convergence, Rhat=1).
stan_fit.plot()
plt.subplots_adjust(hspace=0.75)
plt.savefig("../img/stan_summary.png")
plt.close()
It also looks like the sampling algorithm in stan was a bit more efficient as
the estimated sample size (n_eff
) is much bigger in stan (around 5,000) compared
to pyro (around 3,000) for 3,000 post warmup draws. This is assuming that the
n_eff
calculation is the same in stan and pyro, but I would be surprised if it
wasn't as I see a lot of references to stan (in particular for testing) in the
pyro codebase.
Additionally, at first I was surprised that the effective sample size is stan is actually bigger than the total number of samples taken! There is plenty of discussion about this from the stan guys, I liked this short explanation:
\(n_{eff} > N\) indicates that the mean estimate of the parameter computed from Stan draws approaches the true mean faster than the mean estimate computed from independent samples from the true posterior (the estimate from Stan has smaller variance). This is possible when the draws are anticorrelated - draws above the mean tend to be well matched with draws below the mean. Other functions computed from draws (quantiles, posterior intervals, tail probabilities) may not necessarily approach the true posterior faster. Google "antithetic sampling" or visit the relevant forum thread for some further explanation.
While I wouldn't look into these results too much (one reason for that is I am running this on a pretty crappy laptop) I couldn't help but compare the sampling speed of pyro and stan:
print("pyro took {:.2f} seconds".format(pyro_time)) print("stan took {:.2f} seconds".format(stan_time))
pyro took 360.73 seconds stan took 6.30 seconds
So stan is quite far ahead in this case!
I will test out the variational inference stuff later, but for now, for sampling, I can't see past using stan and it's associated ecosystem (mainly the R packages rstanarm, bayesplot, loo, shinystan etc) right now. Defining a model in pyro is really nice, though, and it has the advantage over stan (IMO) that it is all just regular python code so has less of a learning curve and is easier to test.
It's also worth remembering that pyro is very new and is beta, whereas stan has been in development for many years.


RJS Codeworks
A github orginization which works on random projects.
Link to repositories
List of Projects


LBM Fluid Simulation
L-click:
push fluid
R-click:
add/remove obstacles
Controls
Draw
Erase
Drag fluid
Color mode
Density
Curl
Speed
Viscosity (0.020)
Grid size (64x64)
waiting


You have successfully applied for the project. The organization should contact you shortly. You could also follow up with the organization directly.
Project:
- Project Name:
- Project Link:
Organization Contact:
- Organization Name:
- Organization Contact Name:
- Organization Contact Email:
- Organization Contact Phone:


|
Description (more details) :
|
A Project Management Consultant was hired to prepare the documents required by ESDC's Investment Management Process (IMP) for advancing the Data Management Transformation Project initiated by the Workplace Information and Research Divison of the Labour program.The project is one of the major deliverables under the Labour Programs Service Modernization initiative which is a response to the Program's Strategic Review 2009 and a direct outcome of Budget 2010. The expected outcome of the project is efficient collection/dissemination of more reliable data on industrial relations by using a platform compliant with ESDC standards. WIRD did not have any staff with the skills and competencies required to deliver the documents needed by IMP.
|


Setting Up Alert Manager for Prometheus On Kubernetes
AlertManager is an opensource alerting system which works with Prometheus Monitoring system. In the earlier tutorial, we discussed around how to setup Prometheus under Kubernetes Cluster.
Note: all the Alert Manager Kubernetes objects will be created inside a namespace called monitoring. If you use a different namespace, you can replace it in the YAML files.
Alert Manager On Kubernetes
Alert Manager setup has the following key configurations.
1.A config map for Alert Manager configuration
2.A config Map for Alert Manager alert templates
3.Alert Manager Deployment.
4.Alert Manager service to access the web UI.
Key Things To Note
1.You should have a working Prometheus setup up and running. Follow this lab for Prometheus setup ==> Prometheus Setup On Kubernetes
2.Prometheus should have the correct alert manager service endpoint in its config.yaml as shown below. Only then, Prometheus will be able to send the alert to Alert Manager.
alerting:
alertmanagers:
- scheme: http
static_configs:
- targets:
- "alertmanager.monitoring.svc:9093"
3.All the alerting rules have to be present on Prometheus config based on your needs. It should be created as part of the Prometheus config map with a file named prometheus.rules and added to the config.yaml in the following way.
rule_files:
- /etc/prometheus/prometheus.rules
- Alerts can be written based on the metrics you receive on Prometheus.
- For receiving emails for alerts, you need to have a valid SMTP host in the alert manager config.yaml (smarthost prameter). You can customize the email template as per your needs in the Alert Template config map. We have given the generic template in this guide. Let’s get started with the setup.
Alert Manager reads its configuration from a config.yaml file. It contains the configuration of alert template path, email and other alert receiving configuration. In this setup, we are using email and slack receivers. You can have a look at all the supported alert receivers from here.
Create a file named AlertManagerConfigmap.yaml and copy the following contents.
kind: ConfigMap
apiVersion: v1
metadata:
name: alertmanager-config
namespace: monitoring
data:
config.yml: |-
global:
templates:
- '/etc/alertmanager/*.tmpl'
route:
receiver: alert-emailer
group_by: ['alertname', 'priority']
group_wait: 10s
repeat_interval: 30m
routes:
- receiver: slack_demo
# Send severity=slack alerts to slack.
match:
severity: slack
group_wait: 10s
repeat_interval: 1m
receivers:
- name: alert-emailer
email_configs:
- to<EMAIL_ADDRESS>send_resolved: false
from<EMAIL_ADDRESS>smarthost: email-host-here
require_tls: false
- name: slack_demo
slack_configs:
- api_url: enter url of slack hook
channel: '#enterchannel_name'
Let’s create the config map using kubectl.
kubectl create -f AlertManagerConfigmap.yaml
Config Map For Alert Template
We need alert templates for all the receivers we use (email, slack etc). Alert manager will dynamically substitute the values and delivers alerts to the receivers based on the template. You can customize these templates based on your needs.
Create a file named AlertManagerConfigmap.yaml and copy the contents from this file link ==> Alert Manager Template YAML
Create the configmap using kubectl.
kubectl create -f AlertTemplateConfigMap.yaml
Create A Deployment
In this deployment, we will mount the two config maps we created.
Create a file called Deployment.yaml with the following contents.
apiVersion: apps/v1
kind: Deployment
metadata:
name: alertmanager
namespace: monitoring
spec:
replicas: 1
selector:
matchLabels:
app: alertmanager
template:
metadata:
name: alertmanager
labels:
app: alertmanager
spec:
containers:
- name: alertmanager
image: prom/alertmanager:latest
args:
- "--config.file=/etc/alertmanager/config.yml"
- "--storage.path=/alertmanager"
ports:
- name: alertmanager
containerPort: 9093
volumeMounts:
- name: config-volume
mountPath: /etc/alertmanager
- name: templates-volume
mountPath: /etc/alertmanager-templates
- name: alertmanager
mountPath: /alertmanager
volumes:
- name: config-volume
configMap:
name: alertmanager-config
- name: templates-volume
configMap:
name: alertmanager-templates
- name: alertmanager
emptyDir: {}
Create the deployment using kubectl.
kubectl create -f Deployment.yaml
Create A Service
We need to expose the alert manager using NodePort or Load Balancer just to access the Web UI. Prometheus will talk to alert manager using the internal service endpoint.
Create a Service.yaml file with the following contents.
apiVersion: v1
kind: Service
metadata:
name: alertmanager
namespace: monitoring
annotations:
prometheus.io/scrape: 'true'
prometheus.io/path: /
prometheus.io/port: '8080'
spec:
selector:
app: alertmanager
type: NodePort
ports:
- port: 9093
targetPort: 9093
nodePort: 31000
Create the service using kubectl.
kubectl create -f Service.yaml
Now, you will be able to access Alert Manager on Node Port 31000. For example,
http://<IP_ADDRESS>:31000
Contributor -
Sangam biradar -<EMAIL_ADDRESS>- engineITops.icu


SuperM attend 'Korean Air' global ambassador instatement ceremony + to release endorsement project song
by beansssSM Entertainment's super K-Pop group SuperM was officially instated as 'Korean Air's global ambassadors on November 6, at the airline's main headquarters in Seoul!
After being instated as the airline's newest global ambassadors, the SuperM members posed in front of a personalized aircraft decorated with their very own promotional image, demonstrating a chic runway walk.
In addition, SuperM will be releasing their promotion project single "Let's Go Everywhere" worldwide this coming November 18, after garnering attention for the promotional MV release earlier this week.
Meanwhile, SuperM will be embarking on their 1st U.S. tour 'We Are The Future Live' beginning November 11.


Ryerson Electronics Chapter
Home
About Us
Gallery
Workshops
Our Team
IEEE Ryerson Electronics Chapter
Welcome to Ryerson's Electronic Chapter! We offer Ryerson students weekly workshops on the basics of Software and Hardware Engineering
About Us
Enter Text Here Enter Text Here Enter Text Here Enter Text Here
Gallery
Workshops
Meet The Team
Bipin
President
BIO
Stephanie
Vice-President
BIO
First Name
Position Title
BIO
First Name
Position Title
BIO
First Name
Position Title
BIO
First Name
Position Title
BIO
First Name
Position Title
BIO
First Name
Position Title
BIO
First Name
Position Title
BIO


Class GitHubEventResult.Event
Actual GitHub Event type
Inheritance
System.Object
GitHubEventResult.Event
Implements
Inherited Members
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.ToString()
Namespace: Sloader.Result.Types
Assembly: Sloader.Result.dll
Syntax
public class Event : IHaveRawContent
Properties
View SourceActor
Who issued the event
Declaration
public string Actor { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
CreatedAt
DateTime when the event happend
Declaration
public DateTime CreatedAt { get; set; }
Property Value
| Type | Description |
|---|---|
| System.DateTime |
Id
Each GitHubEvent has its own unique ID
Declaration
public string Id { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
Organization
Defines the org on GitHub
Declaration
public string Organization { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
RawContent
JSON serialized complete event data
Declaration
public string RawContent { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
RelatedAction
Based on the Type a more descriptive and related action.
e.g. IssueEvent occured and you need to know if the issue is opened, closed etc.
On PullRequests: The closed and IsMerged=true property is handled as merged
Declaration
public string RelatedAction { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
RelatedBody
Based on the Type some more information.
e.g. Issue Descritpion etc.
Declaration
public string RelatedBody { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
RelatedDescription
Based on the Type some more information.
e.g. Issue Title etc.
Declaration
public string RelatedDescription { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
RelatedUrl
Based on the Type the target url.
Declaration
public string RelatedUrl { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
Repository
Defines the repo on GitHub
Declaration
public string Repository { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
Type
GitHub Event Type, e.g. CommitEvent or CreateEvent
Full reference: https://developer.github.com/v3/activity/events/types/
Declaration
public string Type { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |


Aether Features
Posted
Hugo combined with the Aether theme turns easy to write markdown into powerful web pages. KaTeX, Highlight.js, and Hugo provides the ability to create mathmatical symobols, equations, highlighted code, tables, lists, and much more.
For each feature below, the first line is the markdown and the second line is the result after Hugo, KaTeX, and Highlight.js process the markdown. You can find many more features in the Hugo documentation.
LaTeX style math typsetting with KaTeX
{{< raw >}}
\[u(t) = K_p e(t) + K_i \int_{0}^{t} e(\tau) d\tau + K_d \frac{de(t)}{dt} \]
{{< /raw >}}
Code (Supports many programming languages and formats)
```javascript
var s = "JavaScript syntax highlighting";
alert(s);
```
var s = "JavaScript syntax highlighting";
alert(s);
Inline code
Here is `var s = "Hello World"` inline code
Here is var s = "Hello World"
inline code
Tables
| Tables | Are | Cool |
| ------------- |:-------------:| -----:|
| col 3 is | right-aligned | $1600 |
| col 2 is | centered | $12 |
| zebra stripes | are neat | $1 |
| Tables | Are | Cool |
|---|---|---|
| col 3 is | right-aligned | $1600 |
| col 2 is | centered | $12 |
| zebra stripes | are neat | $1 |
Ordered List
1. Number one
2. Number Two
1. Indented Number 1
2. Indented Number 2
- Number one
- Number Two
- Indented Number 1
- Indented Number 2
Unordered List
* Get groceries at Harris Teeter before the party
* Get a Spider Man cake
* Chocolate or marble
* Whipped cream frosting
* Don't forget to walk the dog before you leave
* Bring lots of plates and silverware so that we don't run out
* Plastic Dixie brand is fine
- Get groceries at Harris Teeter before the party
- Get a Spider Man cake
- Chocolate or marble
- Whipped cream frosting
- Don’t forget to walk the dog before you leave
- Bring lots of plates and silverware so that we don’t run out
- Plastic Dixie brand is fine
Comments
> This is some text that should show up as a comment. Someone may have made this comment but i'm not sure.
This is some text that should show up as a comment. Someone may have made this comment but i’m not sure.
Images
![NYC Skyline](/post/aether-features/mdd-iphone.jpg)
Small Images
{{< smallimg src="featuredImage" alt="NYC Skyline" smartfloat="left" width="250px" >}}
This image floats to the left of this paragraph and is 250px wide. Its aspect ratio is maintained so it will not stretch. The picture shows the New York skyline. You can see how the design is responsive and how the cards intelligently fit to the display. With flexbox and css grid, heavy frameworks such as bootstrap aren’t necessary to create beautiful responsive designs. The cards in aether use flexbox to change the image from the right side on desktops to the top on mobile.
Links
[Aether's Github page](https://github.com/josephhutch/aether)