Experimenting with Computer Vision in WebXR
Mozilla's Blair MacIntyre dives into their exploration in exposing computer vision features with WebXR. The research uses their experimental WebXR Viewer app, which implements Mozilla's experimental, non-standard WebXR API.
Virtuleap's Global WebXR Hackathon
A competition exploring WebXR concepts on the full spectrum of VR and AR devices, Virtuleap's second Global WebXR Hackathon approaches, running May 25th to June 24th. Prizes, including XR devices, will be announced later this week on the launch date.
Amazon Sumerian now available
Announced last year, Amazon's 3D web editor Sumerian is now available for all to try. Sumerian currently allows the creation of WebGL applications that leverage the WebVR API, as well as mobile applications that expose AR features to web content.
Space Rocks — Technical deep dive
Stewart Smith shares the process he used to make Space Rocks, a WebVR ode to the game Asteriods. As the creator of VRController, Stewart explains his techniques working with controllers and designing an immersive game, with the corresponding, non-transpiled source code.
SVVR's MULTIVERSE and Reality Portals
On their fifth anniversary, SVVR is launching MULTIVERSE, an open design initiative powering real-time, live event communications between real locations and virtual worlds, powered by WebVR. The Voices of VR podcast covers this announcement in more detail in episode #647, an interview with SVVR's founder, Karl Krantz, on SVVR's larger community efforts.
Delaying Chrome's Web Audio autoplay policy
After announcing Chrome's autplay policy change earlier this month, requiring user gesture before enabling media content, the Chrome team received pushback from creative developers who have had audio-driven 3D and VR experiences broken from the change. Chrome is now temporarily rolling back the new policy for Web Audio, with plans on re-enabling the new policy in October.


Move the following asset to this room:
Create new categories to the Industry Fusion ecosystem for a standardized semantic description of assets.


--- permalink: /404.html layout: default ---
The fates have not woven this tapestry! Turn around before they recognize you are in their library!
If you arrived here by poking around for pictures and writings in Bobo's Library, and you want more content like the link that brought you here, head to the main page. You can also see copies of all previous posts and images by going to the archive. You will find what you are looking for, much more easily there.


Will have the same parallelism with last processor And each task in current processor will co-locate with task of last processor
Only make sense when the message has implemented the hashCode() Otherwise, it will use Object.hashCode(), which will not return same hash code after serialization and deserialization.
The idea of ShuffleGroupingPartitioner is derived from Storm.
The idea of ShuffleGroupingPartitioner is derived from Storm. Messages are randomly distributed across the downstream's tasks in a way such that each task is guaranteed to get an equal number of messages.
Round Robin partition the data.


Use Shortcuts and x-callback-url for automation.
Support for Drag and Drop and the Files app.
Navigate by querying filenames, symbols or text occurrences.
Take part in secure workflows by GPG signing commits.
Fix merge & rebase conflicts with speed and safety.
Use Git LFS to efficiently handle videos and other huge assets.
HTML Preview with Javascript console.
Clone repositories making them fully available even when offline.
I’ve used this app for years with its Pro features unlocked near the beginning. Eventually some pro features are not unlocked with my original purchase, but all of the important ones are which I greatly appreciate. Just want to mention again how useful I find this app.
For the past two months, we've been using GitHub and Working Copy to share, edit, and commit changes to Markdown files; combined with Split View and document providers on iOS, this setup fits my workflow quite nicely.
Probably not just the best all-round git client on iOS, but the best part of your development toolchain of any type on iOS.
I’ve been using the app for over a year. I just found the image difference view with split view cut view and color glow. Oh. My. God. You mean to tell me that from one place I can edit files, see history, globally search, visually compare changes (Even in images), and remotely push and PR to the Git server? WHY IS THIS ONLY $16 and $8 A YEAR after that?! this beats the SNOT out of stuff I’ve seen charged $50 and $100 a year on the desktop!
If you’re on the fence about whether you should pay $16 because you see every other app going 99 cents or bust—think more in terms of how much time this elegantly designed app will save you. How much do you value your time? Will this app save you time? Do it. JUST. DO IT. DON’T LET YOUR DREAMS BE DREAMS
Truly one of my must have apps. The first time you use it and see what you can do on iOS now is a jaw dropping moment.
This app is an excellent Git client, and I don't mean just excellent for iOS.
It's interface is relatively intuitive, my only minor complaint being that it took me a few moments to figure out that tapping the remote name is where to go to fetch and such. I'm sure the help covers that, but I like to see if an app can successfully be navigated by intuition alone – the classic Apple test. Committing and pushing works flawlessly, gracefully handling conflicts and merges.
It's a joy to use. I'd buy an OS X version if one existed; this is a Git UI as it should be. It's remarkable that I can fully work with files, send them to other iOS apps to work on there, then send them back to Working Copy seamlessly, even if I'm working on multiple versions of the same file.
In an era of barely-tested, poorly thought-out apps, this is a stellar exception of a well-designed product with distinct marks of a great QA process. Well done!
Absolutely incredibly well-built app that I can’t live without.
For everything from writing, to coding, to deploying changes via a remote repo, Working Copy is a must-have app.
This app is excellent, and the support from the developer is superb!
The app is billed as a "a powerful Git client for iOS 8 that clones, edits, commits, pushes & more". There is nothing in this statement that it doesn't live up to. If you're looking for something to work with GitHub on the move then I can highly recommend. Is it worth the money? Definitely.
I use it daily to review new code in GitHub Enterprise repositories. The best feature for me is that I can use it offline without a need to be connected to the VPN. Viewing of files is easier than on GitHub thanks to better syntax highlighting.
This app is by far the best Git client for iOS. The features are extremely diverse, ranging from syntax coloring and in-app code editing (HEX DUMPS TOO) to full-featured repository committing and cloning from online repositories on Github, Bitbucket, and more. I paid the $10 for permanent push to remote servers, and I don't regret it.
Just thank you. I used to see my iOS devices as incapable of anything other than "emergency" edits (usually directly on a server). Not anymore. I can make large contributions to projects, write new features, and with the right complimentary setup, get near realtime feedback on my code through a test server after making a commit. So cool.
Robi robotę
Working Copy makes keeping track of your Git repositories a breeze.
The app is so well designed that I prefer it over the GitHub's web-interface when familiarizing myself with a new code-base. And let me tell you: It works extremely well in bed as well.
Alas: Working Copy now contains my evening lecture in addition to all the source code I would not want to go missing.
An all around great app.
For those of us who don't work exclusively with GitHub this is just awesome.
I have been yearning for a way to commit and push to Github for years.
The app id's solid and lets me use whatever editor I want to create my content.
My mobile development and blogging dreams have come true!
This app is EXACTLY what I've been looking for. I can easily connect to my bitbucket account, clone repos, commit and push changes right from my phone using third party apps that are already a part of my workflow. I use this with Textastic and Ulysses to post to and tweak my Jekyll blog from my iPhone and iPad, wherever I may be.
This app is perfect for accessing your Git repositories on the go! It allows me to add my iPhone and iPad into my daily workflow.
If Apple were to write a git client, it would look like this. Well done.
Working Copy + Bitbucket repository cloning + Textastic! This significantly improves my coding lifestyle: I can relax with my iPad anywhere and even work on non-interface parts of iOS projects without screwing up version management by relying on DropBox or iCloud filesaving. So far everything is working smoothly, probably because the developer is an active user of this app himself.
Extremely useful for monitoring / managing my projects on the go (I'm using both iPhone 6+ and iPad).
Con un diseño sencillo y funcional, es una aplicación indispensable para cualquier desarrollador con dispositivos iOS.
La inclusión de funciones de iOS 8 permite que se editen los archivos de los repositorios con cualquier aplicación externa (que sea compatible con el file picker).
Bin wirklich sehr begeistert, als Programmierer kann ich geleistetes Arbeit nur loben, weiter so.


$ ionic start myMapDemo https://github.com/calendee/ionic-leafletjs-map-demo $ cd myMapDemo $ ionic serve
$ ionic start myMapDemo https://github.com/calendee/ionic-leafletjs-map-demo
$ cd myMapDemo
$ ionic serve
Leaftlet Mapping Application


# syntax test file for Bitbake receipes SUMMARY = "GammaRay Qt introspection probe" HOMEPAGE = "http://www.kdab.com/gammaray" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://LICENSE.GPL.txt;md5=2abfe5daa817fd4346b6d55293941415" inherit cmake_qt5 SRC_URI = "git://github.com/KDAB/GammaRay;branch=master" SRCREV = "139e003174f48b0c883fc6c200ef2efb7467bff1" PV = "2.4.0+git${SRCPV}" DEPENDS = "qtdeclarative" S = "${WORKDIR}/git" EXTRA_OECMAKE += " -DGAMMARAY_BUILD_UI=OFF" FILES_${PN}-dev += " \ /usr/lib/cmake/* \ /usr/mkspecs/modules/* \ " FILES_${PN}-dbg += " \ /usr/lib/.debug/* \ /usr/lib/gammaray/*/*/.debug \ /usr/lib/gammaray/*/*/styles/.debug \ " do_install_append() { # multiline string ok here AVAR="this is right" } def python_function(): # some python code pass # error: unterinated string VAR *= "abc this is wrong


Craigslist vs. Kijiji vs. Varage Sale Compared: Speed-To-Sale
Craigslist vs. Kijiji vs. Varage Sale Compared: Speed-To-Sale
I’ve long been a huge participant in online classifieds.
I have a terrible habit of wanting to be on the cutting edge, thus I’ve had to get very good at reselling older things to make way for newer ones, particularly electronics. And given that I’m impatient, speed is of the utmost importance.
As a result, I’ve spent a ton of time on eBay, then Craigslist and Reddit, and more recently Kijiji over the years. I’d estimate that I’ve resold somewhere between 150 and 200 different electronics and pieces of furniture since moving to Toronto in 2008.
As the sheer number might suggest, I’m not a loyalist to any one of those platforms. Generally speaking, I want to get stuff gone as fast as possible for the highest amount possible. I like to cross-post my wares in the hopes of moving them quickly, but I tend to forgo doing so on platforms that don’t prove fruitful.
There’s much to be said about which of these is the most effective, and I should probably spend some time writing out my thoughts on the lot — particularly with the recent entrance of Varage Sale into the fray.
Alas, with immediate need to move a couple of items and a mind for speed being the only present concern, I decided to do a test and see which of the platforms would win said battle of speed-to-sale.
The Test
I decided to clean out my den of a few pieces of tech before the turn of October, and to test speed-to-sale fairly, I listed the same items with the same descriptions and pictures at the same time.
The Items
I decided to compare the sales of three related items:
- A 16 GB iPhone 4
- A Lifeproof Fre iPhone 5S case
- A Microsoft Zune
For simplicity’s sake, I priced all of the items at $40 each. I’d thought that the 5S case was the most desirable of the lot and was the most likely to sell first, as the value is clear at the price point (given that the case retails for $100), but I seriously underestimated people’s willingness to buy the iPhone 4, I learned.
The Results
Within 15 minutes, I’d gotten my first ping: a young lady expressed interest in the iPhone 4. The lead generator? Kijiji.
The second came from Craigslist, from a motivated buyer, but he unfortunately was looking for an unlocked iPhone 4.
Two strikes.
About an hour later, I got a ping on my phone. It was a direct message from a buyer on Varage Sale. Unlike the other platforms, the conversation wasn’t via email but rather the platform’s IM. We were able to hash things out pretty quickly and arranged to meet by a subway station.
After some back and forth, and a brief wait, though, the Varage Sale buyer declined.
What subsequently followed was a stream of emails expressing interest in all of the items coming from a split of Craig’ers and Kijij’ers.
Strangely, the Zune was the first to go, thanks to Kijiji. By 5:30 pm the same day, the Zune was gone.
At this point, the requests for the iPhone picked up steam via Varage Sale, but after another day and 20 or so more emails from Craigslist and Kijiji, a Kijij’er scooped it up with a pick up right at my house.
The Observations
Within 48 hours, I’d moved two out of the three items, and both were moved by Kijiji.
Based on this completely non-scientific and anecdotal experience, it’s clear that Kijiji is by far the most effective sales platform today, at least when it comes to speed-to-sale.
Here’s how things added up:
- Zune: 1 lead from VS, 1 lead from Kijiji; sale via Kijiji
- iPhone 4: 22 leads from Kijiji, 3 leads from VS, 2 leads from Craigslist; sale via Kijiji
- iPhone 5S Case: 2 leads from Kijiji, 1 lead from Craigslist; no sale (yet)
This is perhaps an obvious result because it’s the natural outcome of having the biggest membership base in Toronto; more members = more DAU = more potential buyers = more interested parties = more sales.
However, there’s one interesting thing to note: Kijiji net a lot of leads, but many were what I’ll call “unqualified”.
Almost all of the emails I received asked “clarifying” questions that were redundant if you took the time to read the actual posting, and only 2 out of the 25 net the sale.
On the other hand, the Varage Sale leads were all interested and made direct contact immediately, but they simply decided not to proceed with the purchase after price negotiation or discussion with family.
From my sellers perspective, then, it seems like Varage Sale was actually more effective than Craigslist in this regard, particularly because Craigslist only produced 3 dead-end leads with what I would’ve expected to be a bigger memberbase than Varage Sale.
Perhaps given more time, though, one of the two would have net a conversion and settled the debate.
The Conclusions
All told, Varage Sale is a welcome newcomer to the classifieds game, and to be quite honest, between it and Kijiji, ditching Craigslist altogether is my present consideration, as I had too previously done with eBay and Reddit. Sure, Craigslist is free, but it seems like Toronto has spoken when it comes to Craigslist vs. Kijiji.
As for the long-term potential of Varage Sale as a platform, the jury’s out, but so far, I like what the service has to offer. Building the memberbase and improving the search tools will do wonders, and I’d be very curious to see how this test would turn out a year from now.


{% extends "dashboard/base.html" %}
{% load staticfiles i18n %}
{% block site_heading %}{% trans "Are you sure to delete this article?" %}{% endblock %}
{% block articles_class %}class="active"{% endblock %}
{% block articles_collapse %}{% endblock %}
{% block content %}
{% with heading=object.title %}
{% include "dashboard/delete_form_snippet.html" with message=_("The article will be permanently deleted and cannot be recovered!") %}
{% endwith %}
{% endblock %}


---
layout: post
title: Happy New Year
date: '2007-01-04T10:09:00.000-06:00'
author: Don Seiler
tags:
- happy new year
- rage against the machine
modified_time: '2010-11-19T22:48:47.840-06:00'
blogger_id: tag:blogger.com,1999:blog-7032512792942232766.post-4821550614077528713
blogger_orig_url: http://www.seiler.us/2007/01/happy-new-year.html
---
I've got a backlog of Oracle stuffs to blog. In the words of my Data Structures professor at UW, "moer later."


CHRONONAUT is an interactive application through which Children can interact and get the feel that they are talking with the famous personality, the bot is modelling. Since, studieshave shown that information given through interactiveapplications are better understood by the children than
traditional books.
They would feel that they are speaking with the
personality directly and hence, would keep them interested. This
application would help Children to learn about famous personalities,
talk to them and get inspired by them!
Studies have shown that Students who learn through interactive portals learn more quicky.
You can use Chrononaut by clicking below


--- layout: post title: Hullaballoo! date: 2004-11-02 00:00:00 category: personal ---
Local info for any Brighton folks: Devi@FP will be singing at this event in early December, with the Hullabaloo Quire...


This was the first experience that either my friend or I had had with salvia, and we had his housemate check up on us every 30 minutes or so to see that we were ok.
We tried to smoke up at about 9:45, but we had some difficulty, mine came from general inexperience with a bong. (I'm used to joints, sorry) After getting maybe 2 solid hits, and my friend getting maybe 4 or 5, we lay back and waited for the effects. All we felt was a mild pulsing at the top of the forehead, and for me, at the bottom of my chin, as well as a very warm feeling. After about 30 minutes of waiting, we decided we'd missed our window, so we decided to try again in a hour. We sipped some white wine, and smoked a tiny bowl of weed, perhaps about 3 hits a piece, then we tried the salvia again.
This time, the effects came and no mistake. I took about 6 hits, and then I lay back on the ground, I don't remember waiting for the effects to kick in. By the time I got the fourth one in, I was feeling it. It reminded me of the first part of an acid trip - millions of thoughts at once, they all tail off as if someone was holding them at one end, and burning them at the other. You have no sense of time, the sheer volume of thought, the recursiveness of the thoughts - by that I mean the repeating, connecting quality of them - totally shut you off from time.
I tried to describe what I saw, but got nowhere. Then I couldn't remember if I had even tried to describe it to my friend, I sat up, or did I? I asked if I sat up, or did I? I had no idea then, or now, how many times, the next morning my friend said it was at least once.
He was not getting as high as I was, so he loaded the bong up again with salvia, and started taking hits, one so big it made him puke. While he cleaned that up, (and retched some more) I think I got a couple more hits out. So all in all, I think I had eight hits of salvia, maybe 5 or 6 hits of pot, and about a glass and a half of white wine.
An hour seemed to take forever, and the effects only wear off very subtly and gradually. After another hour and the most intense effects had seemed to have subsided, we ate and talked for awhile, and conversation was not impossible, a bit difficult, but enjoyable. In the last two hours I was very into drawing and writing, free association is SUPER-easy on salvia. We went to sleep at about 1, and I was still feeling the halved-chopped memory effect. One crazy thing about this stuff is that it let me seek sleep much easier than acid. I think that has a lot to do with the hypnogogic quality of the closed-eye imagery.
Due to the pure knock-out effects- by that I mean, time investment- weed or booze lets you drive quicker- I can't see doing this every day, and I think the deep qualities of salvia are probably something you get after more experience with it. This first time was just overwhelming and to be honest, I really wasn't looking for some huge metaphysical experience. I got pretty much what I wanted. Its different from acid (imo) in that its much milder as far as being in control. I wouldn't want to do acid more than a couple of times a month, maybe, but this, I could see maybe doing once a week. Acid seems to let you shove stuff to the left of your mind, to demand of your brain to stop thinking about something for a WHILE. It may pop up again tho?now, with salvia, you'll probably not remember too much about what you were thinking a minute ago, and if you think about anything too long, ie; 5 seconds, it'll just splinter and fracture into several other, related thoughts, which further fragment.
What did I learn? Hmm, its a cliche of quantum theorists and the like that time is an illusion, but this stuff will definitely cure you of the idea that its a cliche. You seem to experience everything 4 times as much. Music gets an endless sort of remix quality, and the difference between memory of occurances and memory of thought is all but disintegrated. About music- you may wish to pick something that doesn't have a lot of changes, or dynamic shifts. lovesliescrushing fit nicely, enough changes to make incredible facets, but no so many that it overwhelms you-which another, much different record (i forget the title, but it was some sort of psychpop that had too many changes and textures) did. dub music is also highly recommended, we had some Adrian Sherwood thing on and it was perfect.
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.


Classes
The following classes are available globally.
-
A client for making connections to the Stripe API.
See moreDeclaration
Objective-C
@interface STPAPIClient : NSObject
Swift
class STPAPIClient : NSObject
-
A top-level class that imports the rest of the Stripe SDK.
See moreDeclaration
Objective-C
@interface Stripe : NSObject
Swift
class Stripe : NSObject
-
This view controller contains a credit card entry form that the user can fill out. On submission, it will use the Stripe API to convert the user’s card details to a Stripe token. It renders a right bar button item that submits the form, so it must be shown inside a
See moreUINavigationController
.Declaration
Objective-C
@interface STPAddCardViewController : STPCoreTableViewController
Swift
class STPAddCardViewController : STPCoreTableViewController
-
STPAddress Contains an address as represented by the Stripe API.
See moreDeclaration
Objective-C
@interface STPAddress : NSObject <STPAPIResponseDecodable, STPFormEncodable, NSCopying>
Swift
class STPAddress : NSObject, STPAPIResponseDecodable, STPFormEncodable, NSCopying
-
An empty class representing that the user wishes to pay via Apple Pay. This can be checked on an
STPPaymentContext
, e.g:if ([paymentContext.selectedPaymentOption isKindOfClass:[STPApplePay class]]) { // Don't ask the user for their card number; they want to pay with apple pay. }
Declaration
Objective-C
@interface STPApplePayPaymentOption : NSObject <STPPaymentOption>
Swift
class STPApplePayPaymentOption : NSObject, STPPaymentOption
-
Representation of a user’s bank account details that have been tokenized with the Stripe API.
See moreDeclaration
Objective-C
@interface STPBankAccount : NSObject <STPAPIResponseDecodable, STPSourceProtocol>
Swift
class STPBankAccount : NSObject, STPAPIResponseDecodable, STPSourceProtocol
-
Representation of a user’s bank account details. You can assemble these with information that your user enters and then create Stripe tokens with them using an STPAPIClient.
See moreDeclaration
Objective-C
@interface STPBankAccountParams : NSObject <STPFormEncodable>
Swift
class STPBankAccountParams : NSObject, STPFormEncodable
-
Representation of a user’s credit card details that have been tokenized with the Stripe API
See moreDeclaration
Objective-C
@interface STPCard : NSObject <STPAPIResponseDecodable, STPPaymentOption, STPSourceProtocol>
Swift
class STPCard : NSObject, STPAPIResponseDecodable, STPPaymentOption, STPSourceProtocol
-
Representation of a user’s credit card details. You can assemble these with information that your user enters and then create Stripe tokens with them using an STPAPIClient.
See moreDeclaration
Objective-C
@interface STPCardParams : NSObject <STPFormEncodable, NSCopying>
Swift
class STPCardParams : NSObject, STPFormEncodable, NSCopying
-
This class contains static methods to validate card numbers, expiration dates, and CVCs. For a list of test card numbers to use with this code, see https://stripe.com/docs/testing
See moreDeclaration
Objective-C
@interface STPCardValidator : NSObject
Swift
class STPCardValidator : NSObject
-
Parameters for creating a Connect Account token.
See moreDeclaration
Objective-C
@interface STPConnectAccountParams : NSObject <STPFormEncodable>
Swift
class STPConnectAccountParams : NSObject, STPFormEncodable
-
This is the base class for all Stripe scroll view controllers. It is intended for use only by Stripe classes, you should not subclass it yourself in your app.
Declaration
Objective-C
@interface STPCoreScrollViewController : STPCoreViewController
Swift
class STPCoreScrollViewController : STPCoreViewController
-
This is the base class for all Stripe scroll view controllers. It is intended for use only by Stripe classes, you should not subclass it yourself in your app.
It inherits from STPCoreScrollViewController and changes the type of the created scroll view to UITableView, as well as other shared table view logic.
Declaration
Objective-C
@interface STPCoreTableViewController : STPCoreScrollViewController
Swift
class STPCoreTableViewController : STPCoreScrollViewController
-
This is the base class for all Stripe view controllers. It is intended for use only by Stripe classes, you should not subclass it yourself in your app.
It theming, back/cancel button management, and other shared logic for Stripe view controllers.
See moreDeclaration
Objective-C
@interface STPCoreViewController : UIViewController
Swift
class STPCoreViewController : UIViewController
-
An
See moreSTPCustomer
represents a deserialized Customer object from the Stripe API. You shouldn’t need to instantiate anSTPCustomer
– you should instead useSTPCustomerContext
to manage retrieving and updating a customer.Declaration
Objective-C
@interface STPCustomer : NSObject <STPAPIResponseDecodable>
Swift
class STPCustomer : NSObject, STPAPIResponseDecodable
-
Use
See moreSTPCustomerDeserializer
to convert a response from the Stripe API into anSTPCustomer
object.STPCustomerDeserializer
expects the JSON response to be in the exact same format as the Stripe API.Declaration
Objective-C
@interface STPCustomerDeserializer : NSObject
Swift
class STPCustomerDeserializer : NSObject
-
An
See moreSTPCustomerContext
retrieves and updates a Stripe customer using an ephemeral key, a short-lived API key scoped to a specific customer object. If your current user logs out of your app and a new user logs in, be sure to either create a new instance ofSTPCustomerContext
or clear the current instance’s cached customer. On your backend, be sure to create and return a new ephemeral key for the Customer object associated with the new user.Declaration
Objective-C
@interface STPCustomerContext : NSObject <STPBackendAPIAdapter>
Swift
class STPCustomerContext : NSObject, STPBackendAPIAdapter
-
Representation of a file upload object in the Stripe API.
See moreDeclaration
Objective-C
@interface STPFile : NSObject <STPAPIResponseDecodable>
Swift
class STPFile : NSObject, STPAPIResponseDecodable
-
This class lets you access card icons used by the Stripe SDK. All icons are 32 x 20 points.
See moreDeclaration
Objective-C
@interface STPImageLibrary : NSObject
Swift
class STPImageLibrary : NSObject
-
Stripe API parameters to define a Person. Things like their name, address, etc.
All of the fields are optional.
See moreDeclaration
Objective-C
@interface STPPersonParams : NSObject <STPFormEncodable>
Swift
class STPPersonParams : NSObject, STPFormEncodable
-
Stripe API parameters to define a Legal Entity. This extends
STPPersonParams
and adds some more fields.Legal entities can be either an individual or a company.
See moreDeclaration
Objective-C
@interface STPLegalEntityParams : STPPersonParams
Swift
class STPLegalEntityParams : STPPersonParams
-
Parameters for supported types of verification.
See moreDeclaration
Objective-C
@interface STPVerificationParams : NSObject <STPFormEncodable>
Swift
class STPVerificationParams : NSObject, STPFormEncodable
-
This class can be used wherever you’d use a
See moreUIActivityIndicatorView
and is intended to have a similar API. It renders as a spinning circle with a gap in it, similar to what you see in the App Store app or in the Apple Pay dialog when making a purchase. To change its color, set thetintColor
property.Declaration
Objective-C
@interface STPPaymentActivityIndicatorView : UIView
Swift
class STPPaymentActivityIndicatorView : UIView
-
STPPaymentCardTextField is a text field with similar properties to UITextField, but specialized for collecting credit/debit card information. It manages multiple UITextFields under the hood to collect this information. It’s designed to fit on a single line, and from a design perspective can be used anywhere a UITextField would be appropriate.
See moreDeclaration
Objective-C
@interface STPPaymentCardTextField : UIControl <UIKeyInput>
Swift
class STPPaymentCardTextField : UIControl, UIKeyInput
-
An
STPPaymentConfiguration
represents all the options you can set or change around a payment.You provide an
See moreSTPPaymentConfiguration
object to yourSTPPaymentContext
when making a charge. The configuration generally has settings that will not change from payment to payment and thus is reusable, while the context is specific to a single particular payment instance.Declaration
Objective-C
@interface STPPaymentConfiguration : NSObject <NSCopying>
Swift
class STPPaymentConfiguration : NSObject, NSCopying
-
An
STPPaymentContext
keeps track of all of the state around a payment. It will manage fetching a user’s saved payment methods, tracking any information they select, and prompting them for required additional information before completing their purchase. It can be used to power your application’spayment confirmation
page with just a few lines of code.STPPaymentContext
also provides a unified interface to multiple payment methods - for example, you can write a single integration to accept both credit card payments and Apple Pay.
See moreSTPPaymentContext
saves information about a user’s payment methods to a Stripe customer object, and requires anSTPCustomerContext
to manage retrieving and modifying the customer.Declaration
Objective-C
@interface STPPaymentContext : NSObject
Swift
class STPPaymentContext : NSObject
-
A PaymentIntent tracks the process of collecting a payment from your customer.
See moreDeclaration
Objective-C
@interface STPPaymentIntent : NSObject <STPAPIResponseDecodable>
Swift
class STPPaymentIntent : NSObject, STPAPIResponseDecodable
-
Action details for an STPPaymentIntent. This is a container for the various types that are available. Check the
See moretype
to see which one it is, and then use the related property for the details necessary to handle it.Declaration
Objective-C
@interface STPPaymentIntentAction : NSObject <STPAPIResponseDecodable>
Swift
class STPPaymentIntentAction : NSObject, STPAPIResponseDecodable
-
Contains instructions for authenticating a payment by redirecting your customer to another page or application.
See moreDeclaration
Objective-C
@interface STPPaymentIntentActionRedirectToURL : NSObject <STPAPIResponseDecodable>
Swift
class STPPaymentIntentActionRedirectToURL : NSObject, STPAPIResponseDecodable
-
An object representing parameters used to confirm a PaymentIntent object.
A PaymentIntent must have a PaymentMethod or Source associated in order to successfully confirm it.
That PaymentMethod or Source can either be:
- created during confirmation, by passing in a
STPPaymentMethodParams
orSTPSourceParams
object in thepaymentMethodParams
orsourceParams
field- a pre-existing PaymentMethod or Source can be associated by passing its id in the
paymentMethodId
orsourceId
field See moreor already set via your backend, either when creating or updating the PaymentIntent
Declaration
Objective-C
@interface STPPaymentIntentParams : NSObject <STPFormEncodable>
Swift
class STPPaymentIntentParams : NSObject, STPFormEncodable
- created during confirmation, by passing in a
-
PaymentMethod objects represent your customer’s payment instruments. They can be used with PaymentIntents to collect payments.
See moreDeclaration
Objective-C
@interface STPPaymentMethod : NSObject <STPAPIResponseDecodable>
Swift
class STPPaymentMethod : NSObject, STPAPIResponseDecodable
-
The billing address, a property on
See moreSTPPaymentMethodBillingDetails
Declaration
Objective-C
@interface STPPaymentMethodAddress : NSObject <STPAPIResponseDecodable, STPFormEncodable>
Swift
class STPPaymentMethodAddress : NSObject, STPAPIResponseDecodable, STPFormEncodable
-
Billing information associated with a
See moreSTPPaymentMethod
that may be used or required by particular types of payment methods.Declaration
Objective-C
@interface STPPaymentMethodBillingDetails : NSObject <STPAPIResponseDecodable, STPFormEncodable>
Swift
class STPPaymentMethodBillingDetails : NSObject, STPAPIResponseDecodable, STPFormEncodable
-
Contains details about a user’s credit card.
See moreDeclaration
Objective-C
@interface STPPaymentMethodCard : NSObject <STPAPIResponseDecodable>
Swift
class STPPaymentMethodCard : NSObject, STPAPIResponseDecodable
-
Checks on Card address and CVC.
See moreDeclaration
Objective-C
@interface STPPaymentMethodCardChecks : NSObject <STPAPIResponseDecodable>
Swift
class STPPaymentMethodCardChecks : NSObject, STPAPIResponseDecodable
-
The user’s card details.
See moreDeclaration
Objective-C
@interface STPPaymentMethodCardParams : NSObject <STPFormEncodable>
Swift
class STPPaymentMethodCardParams : NSObject, STPFormEncodable
-
Details about the Card Present payment method
Declaration
Objective-C
@interface STPPaymentMethodCardPresent : NSObject <STPAPIResponseDecodable>
Swift
class STPPaymentMethodCardPresent : NSObject, STPAPIResponseDecodable
-
A Card Wallet.
See moreDeclaration
Objective-C
@interface STPPaymentMethodCardWallet : NSObject <STPAPIResponseDecodable>
Swift
class STPPaymentMethodCardWallet : NSObject, STPAPIResponseDecodable
-
Declaration
Objective-C
@interface STPPaymentMethodCardWalletMasterpass : NSObject <STPAPIResponseDecodable>
Swift
class STPPaymentMethodCardWalletMasterpass : NSObject, STPAPIResponseDecodable
-
Declaration
Objective-C
@interface STPPaymentMethodCardWalletVisaCheckout : NSObject <STPAPIResponseDecodable>
Swift
class STPPaymentMethodCardWalletVisaCheckout : NSObject, STPAPIResponseDecodable
-
An object representing parameters used to create a PaymentMethod object.
See moreDeclaration
Objective-C
@interface STPPaymentMethodParams : NSObject <STPFormEncodable>
Swift
class STPPaymentMethodParams : NSObject, STPFormEncodable
-
Contains details on how an
See moreSTPPaymentMethodCard
maybe be used for 3D Secure authentication.Declaration
Objective-C
@interface STPPaymentMethodThreeDSecureUsage : NSObject <STPAPIResponseDecodable>
Swift
class STPPaymentMethodThreeDSecureUsage : NSObject, STPAPIResponseDecodable
-
An iDEAL Payment Method.
See moreDeclaration
Objective-C
@interface STPPaymentMethodiDEAL : NSObject <STPAPIResponseDecodable>
Swift
class STPPaymentMethodiDEAL : NSObject, STPAPIResponseDecodable
-
An object representing parameters used to create an iDEAL Payment Method
See moreDeclaration
Objective-C
@interface STPPaymentMethodiDEALParams : NSObject <STPFormEncodable>
Swift
class STPPaymentMethodiDEALParams : NSObject, STPFormEncodable
-
This view controller presents a list of payment method options to the user, which they can select between. They can also add credit cards to the list.
It must be displayed inside a
See moreUINavigationController
, so you can either create aUINavigationController
with anSTPPaymentOptionsViewController
as therootViewController
and then present theUINavigationController
, or push a newSTPPaymentOptionsViewController
onto an existingUINavigationController
‘s stack. You can also haveSTPPaymentContext
do this for you automatically, by callingpresentPaymentOptionsViewController
orpushPaymentOptionsViewController
on it.Declaration
Objective-C
@interface STPPaymentOptionsViewController : STPCoreViewController
Swift
class STPPaymentOptionsViewController : STPCoreViewController
-
When you’re using
See moreSTPPaymentContext
to request your user’s payment details, this is the object that will be returned to your application when they’ve successfully made a payment. It currently just contains asource
, but in the future will include any relevant metadata as well. You should passsource.stripeID
to your server, and call the charge creation endpoint. This assumes you are charging a Customer, so you should specify thecustomer
parameter to be that customer’s ID and thesource
parameter to the value returned here. For more information, see https://stripe.com/docs/api#create_chargeDeclaration
Objective-C
@interface STPPaymentResult : NSObject
Swift
class STPPaymentResult : NSObject
-
This is a helper class for handling redirects associated with STPSource and STPPaymentIntents.
Init and retain an instance with the Source or PaymentIntent you want to handle, then choose a redirect method. The context will fire the completion handler when the redirect completes.
Due to the nature of iOS, very little concrete information can be gained during this process, as all actions take place in either the Safari app or the sandboxed SFSafariViewController class. The context attempts to detect when the user has completed the necessary redirect action by listening for both app foregrounds and url callbacks received in the app delegate. However, it is possible the when the redirect is
completed
, the user may have not actually completed the necessary actions to authorize the charge.You should not use either this class, nor
STPAPIClient
, as a way to determine when you should charge the Source or to determine if the redirect was successful. Use Stripe webhooks on your backend server to listen for Source state changes and to make the charge.See https://stripe.com/docs/sources/best-practices
See moreDeclaration
Objective-C
@interface STPRedirectContext : NSObject
Swift
class STPRedirectContext : NSObject
-
This view controller contains a shipping address collection form. It renders a right bar button item that submits the form, so it must be shown inside a
See moreUINavigationController
. Depending on your configuration’s shippingType, the view controller may present a shipping method selection form after the user enters an address.Declaration
Objective-C
@interface STPShippingAddressViewController : STPCoreTableViewController
Swift
class STPShippingAddressViewController : STPCoreTableViewController
-
Representation of a customer’s payment instrument created with the Stripe API. - see: https://stripe.com/docs/api#sources
See moreDeclaration
Objective-C
@interface STPSource : NSObject <STPAPIResponseDecodable, STPSourceProtocol, STPPaymentOption>
Swift
class STPSource : NSObject, STPAPIResponseDecodable, STPSourceProtocol, STPPaymentOption
-
This class provides typed access to the contents of an STPSource
See moredetails
dictionary for card sources.Declaration
Objective-C
@interface STPSourceCardDetails : NSObject <STPAPIResponseDecodable>
Swift
class STPSourceCardDetails : NSObject, STPAPIResponseDecodable
-
Information about a source’s owner.
See moreDeclaration
Objective-C
@interface STPSourceOwner : NSObject <STPAPIResponseDecodable>
Swift
class STPSourceOwner : NSObject, STPAPIResponseDecodable
-
An object representing parameters used to create a Source object.
See moreDeclaration
Objective-C
@interface STPSourceParams : NSObject <STPFormEncodable, NSCopying>
Swift
class STPSourceParams : NSObject, STPFormEncodable, NSCopying
-
Information related to a source’s receiver flow.
See moreDeclaration
Objective-C
@interface STPSourceReceiver : NSObject <STPAPIResponseDecodable>
Swift
class STPSourceReceiver : NSObject, STPAPIResponseDecodable
-
Information related to a source’s redirect flow.
See moreDeclaration
Objective-C
@interface STPSourceRedirect : NSObject <STPAPIResponseDecodable>
Swift
class STPSourceRedirect : NSObject, STPAPIResponseDecodable
-
This class provides typed access to the contents of an STPSource
See moredetails
dictionary for SEPA Debit sources.Declaration
Objective-C
@interface STPSourceSEPADebitDetails : NSObject <STPAPIResponseDecodable>
Swift
class STPSourceSEPADebitDetails : NSObject, STPAPIResponseDecodable
-
Information related to a source’s verification flow.
See moreDeclaration
Objective-C
@interface STPSourceVerification : NSObject <STPAPIResponseDecodable>
Swift
class STPSourceVerification : NSObject, STPAPIResponseDecodable
-
STPTheme objects can be used to visually style Stripe-provided UI. See https://stripe.com/docs/mobile/ios/standard#theming for more information.
See moreDeclaration
Objective-C
@interface STPTheme : NSObject <NSCopying>
Swift
class STPTheme : NSObject, NSCopying
-
A token returned from submitting payment details to the Stripe API. You should not have to instantiate one of these directly.
See moreDeclaration
Objective-C
@interface STPToken : NSObject <STPAPIResponseDecodable, STPSourceProtocol>
Swift
class STPToken : NSObject, STPAPIResponseDecodable, STPSourceProtocol
-
You can use this class to specify information that you’ve already collected from your user. You can then set the
See moreprefilledInformation
property onSTPPaymentContext
,STPAddCardViewController
, etc and it will pre-fill this information whenever possible.Declaration
Objective-C
@interface STPUserInformation : NSObject <NSCopying>
Swift
class STPUserInformation : NSObject, NSCopying


template<typename RHS_T, typename T, typename ... Ts>
StdDataFrame<unsigned int>
join_by_column(const RHS_T &rhs, const char *name, join_policy jp) const;
|
It joins the data between self (lhs) and rhs and returns the joined data in a StdDataFrame, based on specification in join_policy.
The returned DataFrame is indexed by a sequence of unsigned integers from 0 to N. The returned DataFrame will at least have two columns names lhs.INDEX and rhs.INDEX containing the lhs and rhs indices based on join policy.
The following conditions must be meet for this method
to compile and work properly:
- Ordering (< > != ==) must be well defined for the type of the named column.
- Both lhs and rhs must contain the named column
- In both lhs and rhs, columns with the same name must have the same type
|
RHS_T: Type of DataFrame rhs
T: Type of the named column
Ts: List all the types of all data columns. A type should be specified in the list only once.
rhs: The rhs DataFrame
name: Name of the column which the join will be based on
join_policy: Specifies how to join. For example inner join, or left join, etc. (See join_policy definition)
|
template<typename RHS_T, typename ... Ts>
StdDataFrame<I>
join_by_index(const RHS_T &rhs, join_policy jp) const;
|
It joins the data between self (lhs) and rhs and returns the joined data
in a StdDataFrame, based on specification in join_policy.
The following conditions must be meet for this method
to compile and work properly:
- I type must be the same between lhs and rhs.
- Ordering (< > != ==) must be well defined for type I
- In both lhs and rhs, columns with the same name must have the same Type
|
RHS_T: Type of DataFrame rhs
Ts: List all the types of all data columns. A type should be specified in the list only once.
rhs: The rhs DataFrame
join_policy: Specifies how to join. For example inner join, or left join, etc. (See join_policy definition)
|


Introducing Infractores
I've always been a big fan of scratching your own itch. My latest itch was the insane amount of parking violations that I see everyday in Buenos Aires, near our office.
We decided to build a simple tool that would allow anyone with a Twitter account to report a parking violation. All you need to do is submit a geolocated tweet and a couple of photos (as evidence!)
Here is an example:
Ah, ¿no se puede estacionar en paradas de colectivo? Ya fueee... #InfractoresBA pic.twitter.com/XXmu1pdAib
— E r n e s t o (@_nesto) April 18, 2016
You can check out this tool over here: http://www.infractoresba.com.ar
This page shows all the parking violations reported by users to @InfractoresBA or with the #InfractoresBA hashtag. It's as simple as that.
We focused on making the feature of reporting a parking violation as simple as possible:
- There's no application to download
- No need to register to a new site
- No need to fill out 20 different fields
I know that there are other alternatives to report a violation in Buenos Aires:
- An official Android and iOS application
- An official web page with a long form
But I wanted to make it even easier for someone to report a parking violation. I am also a big fan of (good) user experience.
I didn't see the need to register an account to report a violation. In fact, I think it's something that will discourage people from reporting a violation. Why not use an existing account in Twitter?
As a user of our tool, and as someone who usually rides his bicycle to work, I wanted to stop, take a photo, tweet it, and move on.
Just like this:
La gente que estaciona así es un peligro @InfractoresBA pic.twitter.com/DGNfrQvopZ
— E r n e s t o (@_nesto) April 4, 2016
There is still some work to be done. That's why we have made this tool open source. We are open to suggestions, bug reports, code contributions and general feedback: https://github.com/ombulabs/infractores
As always, we developed an MVP that can later be extended and refined. We hope to learn from how the community uses this tool.
Our vision is for someone to pick up this tool, configure a city and a vertical, and start using it to track any kind of violation.
In our case, we wanted to improve the situation with parking violations in Buenos Aires. We hope this tool will lead to those who park illegally being fined and encourage more people to park better.
However you could easily configure this tool to track loud noise infractions in Chicago, or crime in Berlin (in terms of crime it might be tricky to capture the image/video to use as evidence, but it's a possibility)
This is not a commercial project. We don't expect to make money, we just want people to use it to improve their communities.
All feedback is welcome, whether you like it, hate it or spot an issue!


Three dead, five injured after killer wasps attack family leaving funeral
The killer wasps in China attacked the five men, who were all from the same family, as they left a funeral
by Lila RandallShocking footage shows the aftermath of a deadly killer wasp attack that saw three people dead and five relatives injured when they were attacked after leaving a funeral.
Eight men - all from the same family - were attacked by a swarm of wasps as they left a relative’s burial site in China’s southern Guangxi Zhuang Autonomous Region on November 16.
The group are thought to have been travelling by foot when they encountered the aggressive swarm near the village of Tangdu, according to Asia Wire.
The harrowing footage shows two survivors lying on the ground crippled in pain as medics treat them.
Hundreds of wasp sting marks can be seen dotted across the arms, face and body of one of the men receiving treatment. Both appear limp, weak and dazed after the violent attack.
The sounds of a distraught relative can be heard in the background as medics tend to the victims.

The wasp species has not been revealed.
The adults - all aged between 45 and 87 - were taken to two different hospitals in the region.
A 70-year-old victim died of anaphylactic shock, a severe allergic reaction to the stings before the group were taken to Xingye People’s Hospital.
Two more - aged 60 and 87 - had the same fate while at hospital.
The five relatives that survived the agonising attack were taken to Yulin First People’s Hospital for treatment, where one remains in serious condition.
Officials are investigating the case, according to a statement by China's municipal government.


Class FrameworkVersionDetection
Provides support for determining if a specific version of the .NET Framework runtime is installed and the service pack level for the runtime version.
Inheritance
Namespace: Cadru.Environment
Assembly: Cadru.Environment.dll
Syntax
public static class FrameworkVersionDetection : object
Methods
| Improve this Doc View SourceGetExactVersion(FrameworkVersion)
Retrieves the exact version number for the specified .NET Framework version.
Declaration
public static Version GetExactVersion(FrameworkVersion frameworkVersion)
Parameters
| Type | Name | Description |
|---|---|---|
| FrameworkVersion | frameworkVersion | The .NET Framework whose version should be retrieved. |
Returns
| Type | Description |
|---|---|
| Version | A |
GetExactVersion(WindowsFoundationLibrary)
Retrieves the exact version number for the specified .NET Framework Foundation Library.
Declaration
public static Version GetExactVersion(WindowsFoundationLibrary foundationLibrary)
Parameters
| Type | Name | Description |
|---|---|---|
| WindowsFoundationLibrary | foundationLibrary | The Foundation Library whose version should be retrieved. |
Returns
| Type | Description |
|---|---|
| Version | A |
GetServicePackLevel(FrameworkVersion)
Retrieves the service pack level for the specified .NET Framework version.
Declaration
public static int GetServicePackLevel(FrameworkVersion frameworkVersion)
Parameters
| Type | Name | Description |
|---|---|---|
| FrameworkVersion | frameworkVersion | The .NET Framework whose service pack level should be retrieved. |
Returns
| Type | Description |
|---|---|
| System.Int32 | An |
GetServicePackLevel(WindowsFoundationLibrary)
Retrieves the service pack level for the specified .NET Framework Foundation Library.
Declaration
public static int GetServicePackLevel(WindowsFoundationLibrary foundationLibrary)
Parameters
| Type | Name | Description |
|---|---|---|
| WindowsFoundationLibrary | foundationLibrary | The Foundation Library whose service pack level should be retrieved. |
Returns
| Type | Description |
|---|---|
| System.Int32 | An |
IsInstalled(FrameworkVersion)
Determines if the specified .NET Framework version is installed on the local computer.
Declaration
public static bool IsInstalled(FrameworkVersion frameworkVersion)
Parameters
| Type | Name | Description |
|---|---|---|
| FrameworkVersion | frameworkVersion | The version of the .NET Framework to test. |
Returns
| Type | Description |
|---|---|
| System.Boolean | true if the specified .NET Framework version is installed; otherwise false. |
IsInstalled(WindowsFoundationLibrary)
Determines if the specified .NET Framework Foundation Library is installed on the local computer.
Declaration
public static bool IsInstalled(WindowsFoundationLibrary foundationLibrary)
Parameters
| Type | Name | Description |
|---|---|---|
| WindowsFoundationLibrary | foundationLibrary | The Foundation Library to test. |
Returns
| Type | Description |
|---|---|
| System.Boolean | true if the specified .NET Framework Foundation Library is installed; otherwise false. |


Results
C++
It's unintentional, but this quiz of mine is strongly preferenced to C++, but maybe you actually want to learn this language if you want to program games, AI, desktop applications, and other fancy stuff, this is a pretty powerful language with high demand.
my reading material on this quiz says LARGE BUSINESS, but if you ask me personally, the things I'd do in C++(Video Games VIDEO GAMES VIDEO GAMES!!!) would probably be done in a smaller team, unless I sell my soul to investors.
Design
A combination of HTML, CSS, Java, and external frameworks, for styling websites, very straightforward to learn.
JavaScript
JavaScript is used in web design, Game Development(often simpler games), Android Development. It's a bit simpler than C++, but more versitile(at least from my understanding), if you want to suck people even further into their phones though I'd strongly reccomend Java.
PHP
Server related stuff, I don't know much about this, but I'm sure many Matrix Hosts in cyberpunk books and media design their domain using a more Neural friendly derivitave of PHP.
Ruby
Ruby is pretty good at making interactive web services, before RPGMaker MV adopted Javascript, RPGMaker VX and XP used RGSS, or Ruby Game Scripting System to tweak game mechanics that are not accessible through events or common events.


Lille coach slams Jose Mourinho for pinching backroom staff
Lille boss Christopher Galtier has slammed new Tottenham Hotspur manager Jose Mourinho for poaching some of his backroom staff.
by Andrew SinclairThe 56-year-old was appointed Spurs boss on Wednesday, replacing Mauricio Pochettino, and he has since added five new coaches to his backroom team, including two from the French side.
Highly-rated coach Joao Sacramento has been appointed as Mourinho's assistant, while Nuno Santos has arrived as the new goalkeeping coach at the North London club.
Galtier criticised the moves in an interview with RMC Sport, sarcastically saying: "It's really classy. Really classy to act like that."
The former Saint-Etienne coach was appointed Lille manager in December 2017 and he won the Ligue 1 Manager of the Year award last season after guiding the North French club to second place in the league behind Paris Saint-Germain.
body check tags ::


Internally the decimal fraction 6.35
is an endless binary. As always in such cases, it is stored with a precision loss.
Let’s see:
js run alert( 6.35.toFixed(20) ); // 6.34999999999999964473
The precision loss can cause both increase and decrease of a number. In this particular case the number becomes a tiny bit less, that’s why it rounded down.
And what’s for 1.35
?
js run alert( 1.35.toFixed(20) ); // 1.35000000000000008882
Here the precision loss made the number a little bit greater, so it rounded up.
How can we fix the problem with 6.35
if we want it to be rounded the right way?
We should bring it closer to an integer prior to rounding:
js run alert( (6.35 * 10).toFixed(20) ); // 63.50000000000000000000
Note that 63.5
has no precision loss at all. That’s because the decimal part 0.5
is actually 1/2
. Fractions divided by powers of 2
are exactly represented in the binary system, now we can round it:
js run alert( Math.round(6.35 * 10) / 10); // 6.35 -> 63.5 -> 64(rounded) -> 6.4


{{user_navs = True}} {{left_sidebar_enabled,right_sidebar_enabled=False,False}} {{extend 'layout.html'}} {{block left_sidebar}} {{end}}
If this is your first time building a course here are some resources that you may find useful. You will also find this information on the help section of the instructors page.
If you are in a hurry, or are a seasoned user of Runestone Click this link to proceed to {{if "basecourse" in globals():}} {{=coursename}} {{else:}} Your Courses {{pass}}
In the summer of 2020 Brad Miller and Barb Ericson hosted an online workshop over four days. We covered all the basics for getting the most out of Runestone. you can find the YouTube playlist for the workshop here
We are all in this together so we have created some Google Groups to encourage teachers to interact with other teachers to share ideas and ask quesitons. Please join us! Note For some books we do have instructor resources/solution manuals so we will need to verify that you are really an instructor. When you join please provide us a link to your faculty page or use your faculty email.
I am Teaching with Foundations of Python Programming
I am Teaching with How to Think Like a Computer Scientist
I am Teaching with How to Think Like a Data Scientist
I am Teaching CSAwesome
I am Teaching Mobile CSP
This Runestone Instructors is very low volume – legacy group.
Send a message to iRunestone
Runestone is an open source project, so people volunteer their time and energy to make it better. We don’t have a full time support team, but we do our best to be helpful and responsive. Please do not email us about bugs! Bug reports are very likely to get lost in my busy inbox! Everybody has had questions about something on Runestone before, so please use the community resources.
The best thing to do is to create an issue on our GitHub page for the project that most closely matches your problem. I know it might be a pain to have to create an account on GitHub, but it is the only way to keep our sanity AND have a conversation with you or keep you up to date about your problem.


Jukebox Mod r005
- NEW: easier installation!
Jukebox Mod r004
- NEW: support for Minecraft PE 0.13.x
Jukebox Mod r003
- UPDATE: IDs of discs updated, now they are the same as in Minecraft PC
- UPDATE: discs moved in the Tools category in the creative menu
- UPDATE: the useless Information UI has been removed
- FIX: the disc is not removed anymore from hand in creative
Jukebox Mod r002
- NEW: now it's possible to craft the jukebox
- UPDATED: increased the distance when the volume of the music is 0 (before the volume became 0 at 30 blocks, now you need a distance of 65 blocks for a volume of 0). This is now the same as the PC
Jukebox Mod r001
- Initial release


Most of the information provided by the GitHub API is well-suited for a tabular data structure. Entities like issues and milestones can easily be represented as a row of a dataset, and characteristics about them (e.g. date created, open / closed status) each fit one column.
The main exception to this rule is assignees and labels as these potentially have a “one-to-many” relationship with issues. (That is, one issue can have multiple assignees or multiple labels.) One way this could have been represented is to create separate key tables for issues-assignees and issues-milestones. However, this seemed like a bulky solution that would result in many unneccesary joins and API calls.
Instead, parse_issues()
uses list columns to represent assignees and labels. Essentially, the labels_name
and assignees_name
columns do not contain character values but instead, each row contains its own list of values. This may seem unintuitive at first, but list columns are a neat way to rectangularize nested data structures.
However, wrangling list columns is slightly different than wrangling values due to the extra level of containment. To help effectively work with these list columns, projmgr
offers three helper functions: listcol_extract
, listcol_filter
, and listcol_pivot
. These are particularly well-suited to help in cases where labels are used to encode issue metadata in some sort of key-value pair. For example, one might use a format like "priority:high"
to denote importance or "blue-team"
to denote responsibility.
To see these in action, we will take a snapshot of issues from the RForwards repo.
forwards <- create_repo_ref("forwards", "tasks")
issues <- get_issues(forwards) %>% parse_issues()
As we can see, the labels_name
column contains lists of entries.
library(dplyr)
select(issues, labels_name, number, title) %>% head()
#> labels_name number
#> 1 survey-team 41
#> 2 help wanted, survey-team 40
#> 3 35
#> 4 33
#> 5 32
#> 6 31
#> title
#> 1 useR! 2018 survey analysis
#> 2 Create new Community section on Data page
#> 3 Guidelines on Ableist language in Talks and Presentations.
#> 4 Rainbow R : LGBT+ in the R Community
#> 5 Inviting R community and event organizers from Africa and Asia to the RUG slack.
#> 6 Joint event with Trans*Code
One common use of labels in this repo is to denote the team responsible for completing a task, denoted by the tag "{name}-team"
.
unique(unlist(issues$labels_name))
#> [1] "survey-team" "help wanted" "conferences-team"
#> [4] "admin" "on-ramps-team" "branding"
#> [7] "teaching-team" "social-media-team" "community-team"
The listcol_filter()
lets us filter our data only to the isues relevant to a certain list column entry. For example, the data currently contains 26 issues.
nrow(issues)
#> [1] 26
If we are only interested in issues that have been designated for a certain task force, we can filter to those ending with “-team”.
listcol_filter(issues, "labels_name", matches = "-team$", is_regex = TRUE) %>% nrow()
#> [1] 14
Even more specifically, if we are members of the teaching team and want to find issues we are responsible for, we can search for an exact match.
listcol_filter(issues, "labels_name", matches = "teaching-team") %>% nrow()
#> [1] 2
The listcol_extract()
function creates a new column in the data by checking each element of the list column for a certain structure. For example, we can create a team
column in our dataset by extracting the labels ending in "-team"
.
select(issues, labels_name, number) %>%
listcol_extract("labels_name", regex = "-team$") %>%
head()
#> labels_name number team
#> 1 survey-team 41 survey
#> 2 help wanted, survey-team 40 survey
#> 3 35 <NA>
#> 4 33 <NA>
#> 5 32 <NA>
#> 6 31 <NA>
By default, the function names the new column a “cleaned-up” form of the regex used for matching, but this can be overridden with the new_col_name
argument.
select(issues, labels_name, number) %>%
listcol_extract("labels_name", regex = "-team$", new_col_name = "team_name") %>%
head()
#> labels_name number team_name
#> 1 survey-team 41 survey
#> 2 help wanted, survey-team 40 survey
#> 3 35 <NA>
#> 4 33 <NA>
#> 5 32 <NA>
#> 6 31 <NA>
By default, the function also drops the regex from the values. This is controlled by the keep_regex
argument.
select(issues, labels_name, number) %>%
listcol_extract("labels_name", regex = "-team$", keep_regex = TRUE) %>%
head()
#> labels_name number team
#> 1 survey-team 41 survey-team
#> 2 help wanted, survey-team 40 survey-team
#> 3 35 <NA>
#> 4 33 <NA>
#> 5 32 <NA>
#> 6 31 <NA>
Unlike the above example, sometimes multiple items will match a given regex. In this case, a list-column is added to the dataset containing any matches.
For example, the third entry of the assignees_login
field contains 4 logins. Two contain the letter “d”.
issues$assignees_login[[3]]
#> character(0)
Now, listcol_extract()
returns a list-column. For the third entry, this list column has length 2.
select(issues, assignees_login, number) %>%
listcol_extract("assignees_login", regex = "d", keep_regex = TRUE) %>%
head()
#> assignees_login number d
#> 1 41 NA
#> 2 40 NA
#> 3 35 NA
#> 4 33 NA
#> 5 32 NA
#> 6 31 NA
Finally, the listcol_pivot()
helped function identifies all labels matching a regex, extract all the “values” from the key-value pair, and pivots these into boolean columns. For example, the following code makes a widened dataframe with a separate column for each team. TRUE
denotes the fact that that team is responsible for that issue.
issues_by_team <-
select(issues, number, labels_name) %>%
listcol_pivot("labels_name",
regex = "-team$",
transform_fx = function(x) sub("-team", "", x),
delete_orig = TRUE)
head(issues_by_team)
#> number survey conferences on-ramps teaching social-media community
#> 1 41 TRUE FALSE FALSE FALSE FALSE FALSE
#> 2 40 TRUE FALSE FALSE FALSE FALSE FALSE
#> 3 35 FALSE FALSE FALSE FALSE FALSE FALSE
#> 4 33 FALSE FALSE FALSE FALSE FALSE FALSE
#> 5 32 FALSE FALSE FALSE FALSE FALSE FALSE
#> 6 31 FALSE FALSE FALSE FALSE FALSE FALSE
This has many convenient use-cases, including being able to quickly see the number falling into each category.
issues_by_team %>% select(-number) %>% summarize_all(sum)
#> survey conferences on-ramps teaching social-media community
#> 1 4 1 3 2 2 2
Besides these helper columns, another convenient way to work with these list columns is by using tidyr::unnest()
to create key tables mapping issue numbers (number
) to the label names (labels_name
) or assignees (assignees_login
).
library(tidyr)
For example, below we select only the issue number and the labels name columns.
issues_labels <-
issues %>%
select(number, labels_name) %>%
unnest()
head(issues_labels)
#> number labels_name
#> 1 41 survey-team
#> 2 40 help wanted
#> 3 40 survey-team
#> 4 28 conferences-team
#> 5 27 admin
#> 6 26 on-ramps-team
The same can be done to map between issue numbers and assignees.
issues_assignees <-
issues %>%
select(number, assignees_login) %>%
unnest()
head(issues_assignees)
#> number assignees_login
#> 1 28 hturner
#> 2 25 hturner
#> 3 25 emdodwell
#> 4 23 emdodwell
#> 5 22 emdodwell
#> 6 21 hturner
Logic could then be done on these key tables to identify relevant issue numbers and joined / filtered back on to the complete issues dataframe.


Maximum simultaneous input/output channels supported by device.
Maximum input channels supported by device.
Is the device the default input device
Is the device the default output device
Character string device identifier.
Bit mask of supported data formats.
Maximum output channels supported by device.
Preferred sample rate, e.g. for WASAPI the system sample rate.
Supported sample rates (queried from list of standard rates).
The public device information structure for returning queried values.