{% include callus/head-callus.html %}
{% include header-without-logo.html %} {% include callus/calendar.html %} {% include footer.html %} {% include callus/js-bottom-all-callus.html %}


2019
Analysis Of Algorithms + Operating Systems + Software Engineering
My name is Franky Dong and I’m an aspiring Full Stack Engineer with a broad technical skill set and strong attention to detail. I'm a willing learner with a continuous desire to build, grow, and excel. I'm interested in building large-scale web application systems based on cutting edge technologies, services, and APIs. In addition to my engineering skills, I also have knowledge in cryptocurrency and blockchain technology.
When I’m not programming, I’m hanging out with dog Sushi and working on my car projects.
Analysis Of Algorithms + Operating Systems + Software Engineering
Created CryptoClub @ SFSU
Took Machine Structures
Discovered My Working Memory Learning Disability
Learned Java + Software Development
Started SFSU, Tipping Point of Educational Career
Started Job @ Innovestors Real Estate Solutions + Discovered My A.D.H.D.
Took Data Structures & Algorithms
Started Internship @ Salas O' Brien
Learned C++
Graduated HS + Started DeAnza Community College
Enrolled in Comp Sci 101
Learned HTML, CSS, Intro to Web Design
Took Intro to Computers - Basic Typing
Started HS CompSci Magnet Program
1st Interaction w/ Comp Sci


| S.N | Board | Institutions Name | Major | Passed out |
|---|---|---|---|---|
| 1 | School Leaving Certificate | Dhaulagiri Boarding School,Baglung | Journalism | 2004 |
| 2 | Higher Secondary Education Board | Aadarsha Vidya Mandir Higher Secondary School,Baglung | Business Math | 2007 |
| 3 | Bachelor Degree | Shankar Dev Campus,Kathmandu | Marketing | 2012 |
| 4 | Master Degree | Shankar Dev Campus,Kathmandu | Finance(Capital structure) | 2018 |


Default Busy Indicator
Busy Indicator displays loading animation depending on its state. To set Busy Indicator state use
[loading]
property.
Busy Indicator sizes
Busy Indicator can be displayed in three different sizes. To change the size use [size]
property.
Busy Indicator with label
Busy Indicator can be displayed with label when loading the content. To add the label use
[label]
string property.
Busy Indicator with message toast
Busy Indicator can be displayed with message toast when loading the content. To add the extended busy indicator wrap
the fd-busy-indicator
component with in fd-busy-indicator-extended
directive.
Busy Indicator as wrapper
Busy Indicator might be used as a wrapper to display elements or sections of the page behind an overflow. Depending
of the wrapped element type, use [block]
property to manipulate the display
property of the Busy Indicator.


Hello my name is Andrew Kim, I grew up on the Makah Reservation. I moved to Seattle in 2016 and attended North Seattle College's CS course through CS 142. Outside of school I spent the busy seasons helping with my parents' seafood business filling various roles from purchasing and processing to reporting fish tickets. My biggest role when I wasn't helping with the paperwork was grading the fish as it was being packaged to be shipped out to our customers. If I've learned one thing from my experience in QA, it would be the importance of understanding the end consumers needs. The only opinion that matters about the quality of a product is the client's, so it is imperitive to check-in from time to time to ensure that a project is coming along to spec. My current goal is to reach a point in technical ability to where I can start applying the skills I've already learned in a software development setting.
Top 10 Favorite Restaurants
- Drip Tea
- Frankie and Jo's
- Tacos Chukis
- Arashi Ramen
- Kimchi House
- Bahn Town
- Mox Boarding House
- Analog Coffee
- Ten Sushi
- Gokan Sushi
Education/Experience
- North Seattle College CS 142
- North West Seafood Exchange


| Field | Description | Type | Format |
|---|---|---|---|
| debt_excluded_amount | Debt Exclusions From TOP Debt Referred Amount | number | 10.2 |
| debt_excluded_count | Debt Exclusions From TOP Debt Referred Count | number | 10.2 |
| debt_excluded_cross_amount | Debt Exclusions From TOP Debt Referred Cross-Servicing Amount | number | 10.2 |
| debt_excluded_cross_count | Debt Exclusions From TOP Debt Referred Cross-Servicing Count | number | 10.2 |
| end_balance_amount | Ending Balance Amount | number | 10.2 |
| end_balance_count | Ending Balance Count | number | 10.2 |
| funding_type | Funding Type | number | 10.2 |
| funding_type_description | Funding Type Description | string | |
| funding_type_id | Funding Type ID | number | 10.2 |
| is_receivable_type_active | Receivable Type Active Indicator | string | |
| receivable_type_description | Receivable Type Descriptions | string | |
| receivable_type_id | Receivable Type ID | number | 10.2 |
| referral_to_top_amount | Referral to TOP Amount | number | 10.2 |
| referral_to_top_count | Referral to TOP Count | number | 10.2 |
| reporting_quarter_end_date | Reporting Quarter End Date | date | YYYY-MM-DD |
| reporting_window_status | Reporting Window Status | string | |
| percent_top_referral_amount | TOP Referral Percent Amount | number | 10.2 |
| percent_top_referral_count | TOP Referral Percent Count | number | 10.2 |
| reporting_fiscal_year | Fiscal Year | year | YYYY |
| reporting_fiscal_quarter | Fiscal Quarter Number | string |


Select a shape then draw on map to add graphic
Point
Multipoint
Line
Polyline
Freehand Polyline
Triangle
Rectangle
Circle
Ellipse
Polygon
Freehand Polygon


The space operand specifies an explicit address “space” for the address value it is applied to. If no space is given, the address value is an offset in the default virtual memory address space. In addition to the default virtual memory space and some special MIPS-specific memory spaces, MON supports the following spaces for all processors.
Table 4-7 and Table 4-8 describe the space designators.
Table 4-7. Space Designators for All Processors
Table 4-8. Space Designators for 32-bit MIPS Processors
The MIPS architecture maps several virtual address segments into a common physical address space. These segments are not distinct address spaces in the usual sense. Instead, accessing a memory location through a segment implies: a base address in physical memory, the privilege level required to access the memory, and a cacheable or uncacheable attribute.
Table 4-9. Space Designators for 64-bit MIPS Processors
Refer to a description of the MIPS RISC architecture for the complete details of memory segments.
The space designator tells MON to use the physical space, or to modify the given virtual address by adding the base address of the segment specified. (See addr Address.)
The exact mapping from virtual address to physical address is dependent on the particular processor variant in use.
Table 4-10. Space Designators for PowerPC Processors
|
Space |
Location |
|
:IN |
Read memory using instruction addressing. |


Rollercoaster weight changes can repeat with second pregnancy, especially among normal-weight women
| Source: | University of Michigan |
| Summary: | Everyone knows that gaining excess weight during one pregnancy is bad, but clinicians rarely consider weight gains and losses from one pregnancy to the next — especially in normal-weight women. But researchers have now found that among normal-weight women, fluctuating weight gain and loss in the first pregnancy is often repeated in subsequent pregnancies — and is associated with higher risk of several pregnancy-related complications. |
Everyone knows that gaining excess weight during one pregnancy is bad, but clinicians rarely consider weight gains and losses from one pregnancy to the next — especially in normal-weight women.
But researchers from Marquette University and the University of Michigan found that among normal-weight women, fluctuating weight gain and loss in the first pregnancy is often repeated in subsequent pregnancies — and is associated with higher risk of several pregnancy-related complications.
Interestingly, obese women are not as likely to fall into this weight gain-loss cycle as normal-weight peers, the researchers say. Normal weight is defined as having a BMI less than 25.
"Normal-weight women gain more pounds and also lose more after giving birth," said Marianne Weiss, professor emerita of nursing at Marquette. "This cycle perpetuates with each pregnancy, and it's this rollercoaster weight gain and loss — not just what a woman typically weighs — that predicts poor pregnancy outcomes."
"This study says two things," said Olga Yakusheva, associate professor at the U-M School of Nursing and School of Public Health. "First, don't just look at how much a woman weighs at the first prenatal visit; you have to know her recent pattern of weight gain and loss. Second, pregnancy weight counseling and management should be given equally to all women, not just the ones who are very overweight."
The researchers, who examined 24,795 linked birth records from 2006 to 2013, say first-pregnancy weight gain and subsequent weight loss after birth starts this unhealthy rollercoaster — which in turn increases the risk for gestational diabetes, hypertension, cesarean delivery and fetal macrosomia (bigger-than-average baby) in the next pregnancy.
The study showed that compared with obese women, normal-weight women gained about 6.6 pounds (3 kg) more during both pregnancies and lost about 4.4 pounds (2 kg more) between births.
This surprised Yakusheva.
"I thought that if a lot of weight is gained in the first pregnancy and it was all lost before the second pregnancy, then you're no longer at risk," she said. "Something I didn't consider is that you can be normal weight in the first pregnancy, gain a lot of weight and then lose it before the second pregnancy, and still be at a higher risk of gaining a lot of weight and having negative outcomes in the second pregnancy."
This gain-lose-gain cycle and associated poor pregnancy outcomes reflects Yakusheva's own experience with her two children. Despite rigidly following clinical guidelines with her first child, she added 65 pounds to her 112-pound frame. Neither Yakesheva nor her clinicians noticed or addressed it — she's thin, so weight gain wasn't on anyone's radar.
"I remember the nurses telling me, 'Don't worry about your weight gain, you're tiny,'" she said. "Looking back, I don't think that was healthy for me to hear."
Yakusheva lost the weight before her second pregnancy, yet despite her history, clinicians again didn't address weight gain. Rather, she took it upon herself to monitor her weight.
This doesn't mean weight isn't important, but looking only at weight is myopic, the researchers say. What's more important is how a woman has managed her weight gain and loss in previous pregnancies.
"The bottom line is that women and their perinatal care providers need to pay attention to appropriate weight before, during, and after each pregnancy to set the stage for optimal outcomes in the next pregnancy," Weiss said.
make a difference: sponsored opportunity
Story Source:
Materials provided by University of Michigan.
Note: Content may be edited for style and length.
Journal Reference:
- Marianne Weiss, Olga Yakusheva, Kandice Kapinos. Effects of Women’s Weight Changes on Adverse Outcomes in a Second Pregnancy. Journal of Obstetric, Gynecologic & Neonatal Nursing, 2019; 48 (6): 615 DOI: 10.1016/j.jogn.2019.08.006
Cite This Page:
| MLA | University of Michigan. "Rollercoaster weight changes can repeat with second pregnancy, especially among normal-weight women." ScienceDaily. ScienceDaily, 14 November 2019. <www.sciencedaily.com/releases/2019/11/191114115944.htm>. |
| APA | University of Michigan. (2019, November 14). Rollercoaster weight changes can repeat with second pregnancy, especially among normal-weight women. ScienceDaily. Retrieved November 17, 2019 from www.sciencedaily.com/releases/2019/11/191114115944.htm |
| Chicago | University of Michigan. "Rollercoaster weight changes can repeat with second pregnancy, especially among normal-weight women." ScienceDaily. www.sciencedaily.com/releases/2019/11/191114115944.htm (accessed November 17, 2019). |


{% extends "layout/layout.html" %} {% from "_helper.html" import image_button %} {% block content %}
The following clusters are currently defined.| {{ image_button ("center","195_circle_info","/inventory/") }} {{ image_button ("center","119_table","/inventory/summary/") }} | Cluster | Definition |
|---|---|---|
| {{ image_button ("center","195_circle_info","/inventory/cluster/"+ cluster + "/") }} {{ image_button ("center","119_table","/inventory/cluster/table/"+ cluster + "/") }} | {{ cluster }} | TBD |


Conflict Analysis
8/29/15
A good friend of mine recently came over to my house to hang out. We were catching up and exchanging stories when I brought up an interesting topic of conversation. This topic was private and I verbally told my friend to keep it to himself - he understood. I trust my friend and I wasn't concererned about whether or not her could keep a secret. Several days later I discovered that my friend told other people about our conversation. As soon as I found out I contacted him and expressed how this made me feel. He felt terrible and knew he made a mistake. It took me several days to calm down and think strait but I forgave him since we are great friends.
The source of this conflict was my friend choosing to break a promise. I trusted my friend would respect my wish and keep our conversation secret. This break in trust made me feel betrayed and disrespected. Talking about this issue with my friend helped him understand how his actions made me feel and this conflict will hopefully never happen again. If I ignored the issue, the same problem would likely arise in the future. If I could go back in time, I would approach this problem in the same way I chose to. If you don't tell somebody that their actions make you feel negative, their actions will never change.


From June to July 2017, I worked as a Junior Technical Assistant for Dominion Energy. I managed wiring systems within the company, processed laptops for employee use, and shadowed an IT professional as he processed tickets.
For six weeks, I rotated through three jobs for the MAXX Potential Internship Simulator.
UI/UX Designer: In the first two weeks of the MAXX Potential Internship Simulator, I worked as the UI/UX Designer in the System Development team. I designed a MAXX Power logo, wireframed the website, directed software developers to implement everything just right, and researched modern website design trends.
Information Security Analyst: The second two weeks of the Simulator, my role was in Information Security as the Information Security Analyst. I researched and planned a password management system to protect company passwords. I communicated with my team to make everything work smoothly.
Data Engineer: The last two weeks I worked as the Data Engineer.I lead, planned, and created data for my team to use. I created and processed reports in Google Analytics, created dashboards in Google Data Studio, and assisted and directed data analysts.
In 2015, I was a student mentor at Mako Music. I mentored and instructed students to play instruments such as guitar, bass, piano, and ukulele to younger students and less experienced older students.


WITNESS LIST
Appropriations Committee
October 2, 2017 - 10:00 AM
Hurricane Harvey Funding Relief and Recovery Efforts
On:
Bass, James (Texas Department of Transportation, Executive Director)
Bruun, Bech (Texas Water Development Board, Chairman)
Emmett, Ed (Harris County, Judge)
Hamilton, Patrick (Texas Military Department, Brigadier General)
Hebert, Robert (Fort Bend County, Judge)
Hegar, Glenn (Comptroller of Public Accounts, Comptroller)
Hellerstedt, John (Department of State Health Services, Commissioner)
Keyton, Sarah (Legislative Budget Board, Assistant Director)
Kidd, Nim (Texas Division of Emergency Management, Department of Public Safety, Chief)
Meyers, W. Andy (Fort Bend County, Commissioner Precinct 3)
Morath, Mike (Texas Education Agency, Commissioner)
Murphy, Eileen (Legislative Budget Board, Analyst)
Radack, Steve (Harris County, Commissioner Precinct 3)
Salter, Wayne (Texas Health and Human Services Commission, Associate Commissioner)
Sharp, John (Governor's Commission to Rebuild Texas, Commissioner)
Shaw, Bryan (Texas Commission on Environmental Quality, Chairman)
Sheppard, Donna (Department of State Health Services, Chief Financial Officer)
Smith, Charles (Texas Health and Human Services Commission, Commissioner)
Snyder, Jami (Texas Health and Human Services Commission, Associate Commissioner)
Turner, Sylvester (City of Houston, Mayor)
Walker, Jeff (Texas Water Development Board, Executive Administrator)
Wood, Trey (Texas Health and Human Services Commission, Chief Financial Officer)
1


Rimmiscollection.com
Men
Kurta
Payjama
Shirt
Women
Saree
Kurti
suit
kids
Saree
Suit
t-shirt
Search
Previous
Next


This guide references the following extensions.
| Name | Definition |
| C-CDA on FHIR Data Enterer | http://hl7.org/fhir/ccda/StructureDefinition/CCDA-on-FHIR-Data-Enterer |
| C-CDA on FHIR Informant | http://hl7.org/fhir/ccda/StructureDefinition/CCDA-on-FHIR-Informant |
| C-CDA on FHIR Information Recipient | http://hl7.org/fhir/ccda/StructureDefinition/CCDA-on-FHIR-Information-Recipient |
| C-CDA on FHIR Participant | http://hl7.org/fhir/ccda/StructureDefinition/CCDA-on-FHIR-Participant |
| C-CDA on FHIR In Fulfillment Of Order | http://hl7.org/fhir/ccda/StructureDefinition/CCDA-on-FHIR-In-Fulfillment-Of-Order |
| C-CDA on FHIR Performer | http://hl7.org/fhir/ccda/StructureDefinition/CCDA-on-FHIR-Performer |
| C-CDA on FHIR Authorization | http://hl7.org/fhir/ccda/StructureDefinition/CCDA-on-FHIR-Authorization |
| CCDA-on-FHIR-VersionNumber | http://hl7.org/fhir/ccda/StructureDefinition/CCDA-on-FHIR-VersionNumber |


Index creation and updating capabilities are implemented within the Zend\Search\Lucene component, as well as the Java Lucene project. You can use either of these options to create indexes that Zend\Search\Lucene can search.
The PHP code listing below provides an example of how to index a file using Zend\Search\Lucene indexing API:
1 2 3 4 5 6 7 8 9 10 11 12 13 | // Create index
$index = Zend\Search\Lucene::create('/data/my-index');
$doc = new Zend\Search\Lucene\Document();
// Store document URL to identify it in the search results
$doc->addField(Zend\Search\Lucene\Field::Text('url', $docUrl));
// Index document contents
$doc->addField(Zend\Search\Lucene\Field::UnStored('contents', $docContent));
// Add document to the index
$index->addDocument($doc);
|
Newly added documents are immediately searchable in the index.
The same procedure is used to update an existing index. The only difference is that the open() method is called instead of the create() method:
1 2 3 4 5 6 7 8 9 10 11 12 | // Open existing index
$index = Zend\Search\Lucene::open('/data/my-index');
$doc = new Zend\Search\Lucene\Document();
// Store document URL to identify it in search result.
$doc->addField(Zend\Search\Lucene\Field::Text('url', $docUrl));
// Index document content
$doc->addField(Zend\Search\Lucene\Field::UnStored('contents',
$docContent));
// Add document to the index.
$index->addDocument($doc);
|
The Lucene index file format doesn’t support document updating. Documents should be removed and re-added to the index to effectively update them.
Zend\Search\Lucene::delete() method operates with an internal index document id. It can be retrieved from a query hit by ‘id’ property:
1 2 3 4 5 | $removePath = ...;
$hits = $index->find('path:' . $removePath);
foreach ($hits as $hit) {
$index->delete($hit->id);
}
|
There are two methods to retrieve the size of an index in Zend\Search\Lucene.
Zend\Search\Lucene::maxDoc() returns one greater than the largest possible document number. It’s actually the overall number of the documents in the index including deleted documents, so it has a synonym: Zend\Search\Lucene::count().
Zend\Search\Lucene::numDocs() returns the total number of non-deleted documents.
1 2 | $indexSize = $index->count();
$documents = $index->numDocs();
|
Zend\Search\Lucene::isDeleted($id) method may be used to check if a document is deleted.
1 2 3 4 5 | for ($count = 0; $count < $index->maxDoc(); $count++) {
if ($index->isDeleted($count)) {
echo "Document #$id is deleted.\n";
}
}
|
Index optimization removes deleted documents and squeezes documents’ IDs in to a smaller range. A document’s internal id may therefore change during index optimization.
A Lucene index consists of many segments. Each segment is a completely independent set of data.
Lucene index segment files can’t be updated by design. A segment update needs full segment reorganization. See Lucene index file formats for details (http://lucene.apache.org/java/2_3_0/fileformats.html) [1]. New documents are added to the index by creating new segment.
Increasing number of segments reduces quality of the index, but index optimization restores it. Optimization essentially merges several segments into a new one. This process also doesn’t update segments. It generates one new large segment and updates segment list (‘segments’ file).
Full index optimization can be trigger by calling the Zend\Search\Lucene::optimize() method. It merges all index segments into one new segment:
1 2 3 4 5 | // Open existing index
$index = Zend\Search\Lucene::open('/data/my-index');
// Optimize index.
$index->optimize();
|
Automatic index optimization is performed to keep indexes in a consistent state.
Automatic optimization is an iterative process managed by several index options. It merges very small segments into larger ones, then merges these larger segments into even larger segments and so on.
MaxBufferedDocs is a minimal number of documents required before the buffered in-memory documents are written into a new segment.
MaxBufferedDocs can be retrieved or set by $index->getMaxBufferedDocs() or $index->setMaxBufferedDocs($maxBufferedDocs) calls.
Default value is 10.
MaxMergeDocs is a largest number of documents ever merged by addDocument(). Small values (e.g., less than 10.000) are best for interactive indexing, as this limits the length of pauses while indexing to a few seconds. Larger values are best for batched indexing and speedier searches.
MaxMergeDocs can be retrieved or set by $index->getMaxMergeDocs() or $index->setMaxMergeDocs($maxMergeDocs) calls.
Default value is PHP_INT_MAX.
MergeFactor determines how often segment indices are merged by addDocument(). With smaller values, less RAM is used while indexing, and searches on unoptimized indices are faster, but indexing speed is slower. With larger values, more RAM is used during indexing, and while searches on unoptimized indices are slower, indexing is faster. Thus larger values (> 10) are best for batch index creation, and smaller values (< 10) for indices that are interactively maintained.
MergeFactor is a good estimation for average number of segments merged by one auto-optimization pass. Too large values produce large number of segments while they are not merged into new one. It may be a cause of “failed to open stream: Too many open files” error message. This limitation is system dependent.
MergeFactor can be retrieved or set by $index->getMergeFactor() or $index->setMergeFactor($mergeFactor) calls.
Default value is 10.
Lucene Java and Luke (Lucene Index Toolbox -http://www.getopt.org/luke/) can also be used to optimize an index. Latest Luke release (v0.8) is based on Lucene v2.3 and compatible with current implementation of Zend\Search\Lucene component (Zend Framework 1.6). Earlier versions of Zend\Search\Lucene implementations need another versions of Java Lucene tools to be compatible:
- Zend Framework 1.5 - Java Lucene 2.1 (Luke tool v0.7.1 -http://www.getopt.org/luke/luke-0.7.1/)
- Zend Framework 1.0 - Java Lucene 1.4 - 2.1 (Luke tool v0.6 -http://www.getopt.org/luke/luke-0.6/)
By default, index files are available for reading and writing by everyone.
It’s possible to override this with the Zend\Search\Lucene\Storage\Directory\Filesystem::setDefaultFilePermissions() method:
1 2 3 4 5 6 | // Get current default file permissions
$currentPermissions =
Zend\Search\Lucene\Storage\Directory\Filesystem::getDefaultFilePermissions();
// Give read-writing permissions only for current user and group
Zend\Search\Lucene\Storage\Directory\Filesystem::setDefaultFilePermissions(0660);
|
Index size is limited by 2GB for 32-bit platforms.
Use 64-bit platforms for larger indices.
Zend\Search\Lucene uses flock() to provide concurrent searching, index updating and optimization.
According to the PHP documentation, “flock() will not work on NFS and many other networked file systems”.
Do not use networked file systems with Zend\Search\Lucene.
| [1] | The currently supported Lucene index file format is version 2.3 (starting from Zend Framework 1.6). |
The source code of this file is hosted on GitHub. Everyone can update and fix errors in this document with few clicks - no downloads needed.


Problem:
you haveto subset a data frame using as criteria the exact match of a vector content.
for instance:
you have a dataset with some attributes, and you have a vector with some values of one of the attributes. You want to make a filter based on the values in the vector.
Example: sales records, each record is a deal.
The vector is a list of selected customers you are interested in.
Is it possible to make such a kind of filter?
Solution
Of course it is!
you just have to use the %in% operator.
let’s see how to do it in the short tutorial here below.
Tutorial
suppose you have a sales data frame object like this:
suppose you want to extract sales to Francesca, Tommaso and Gianna.
first, you have to assign those names to a vector.
vector = c(“Francesca","Tommaso","Gianna")
then, you can write the filtering statement, using the_%in%_operator.
query_result = sales[sales$customer %in% vector,]
and that's it!
The meaning of _%in%_operator is exactly the one you guess:
“ select only values present INthe specified group”.
Full code is available as an R workbook for quick reference:
Let me know if you use any other method to obtain the same result.
Finally,if you enjoyed the tutorial, you can find more tutorial on page_Tutorial_(quite obvious, isnt’ it?).


--- title: Lottery Ticket Hypothesis keywords: fastai sidebar: home_sidebar summary: "How to find winning tickets with fastai" description: "How to find winning tickets with fastai" nb_path: "nbs/03_tutorial.lottery_ticket.ipynb" ---
The Lottery Ticket Hypothesis is a really intriguing discovery made in 2019 by Frankle & Carbin. It states that:
A randomly-initialized, dense neural network contains a subnetwork that is initialised such that — when trained in isolation — it can match the test accuracy of the original network after training for at most the same number of iterations.
Meaning that, once we find that subnetwork. Every other parameter in the network becomes useless.
The way authors propose to find those subnetwork is as follows:1. Initialize the neural network2. Train it to convergence
from fasterai.sparse.all import *
path = untar_data(URLs.PETS)
files = get_image_files(path/"images")
def label_func(f): return f[0].isupper()
device = 'cuda:0' if torch.cuda.is_available() else 'cpu'
dls = ImageDataLoaders.from_name_func(path, files, label_func, item_tfms=Resize(64), device=device)
What we are trying to prove is that: in a neural network A, there exists a subnetwork B able to get an accuracy $a_B > a_A$, in a training time $t_B < t_A$.
Let's get the baseline for network A:
learn = cnn_learner(dls, resnet18, metrics=accuracy)
Let's save original weights
initial_weights = learn.model.state_dict()
learn.fit(6)
To find the lottery ticket, we will perform iterative pruning but, at each pruning step we will re-initialize the remaining weights to their original values (i.e. before training).
We will restart from the same initialization to be sure to not get lucky.
learn.model.load_state_dict(initial_weights)
We can pass the parameters lth=True
to make the weights of the network reset to their original value after each pruning step, i.e. step 4) of the LTH. To empirically validate the LTH, we need to retrain the found "lottery ticket" after the pruning phase. This can be done by setting the end_epoch
parameter, which will control the epoch at which we stop the pruning process. The fine-tuning phase thus happening during total_epoch-end_epoch
.
sp_cb = SparsifyCallback(50, 'weight', 'local', large_final, iterative, start_epoch=1, end_epoch=4, lth=True)
So here, we will first pretrain our model for 1 epoch (start_epoch=1
), perform the LTH process during 3 epochs (end_epoch-start_epoch
), then the found lottery ticket for 6 epochs (total_epoch-end_epoch
). If the final accuracy is higher than the baseline then we have found a "winning lottery ticket".
learn.fit(10, cbs=sp_cb)
We indeed have a network B, whose accuracy $a_B > a_A$ in the same training time.
In some case, LTH fails for deeper networks, author then propose a solution, which is to rewind the weights to a more advanced iteration instead of the initialization value.
learn.model.load_state_dict(initial_weights)
This can be done in fasterai by passing the rewind_epoch
parameter, that will save the weights at that epoch, then resetting the weights accordingly.
sp_cb = SparsifyCallback(50, 'weight', 'local', large_final, iterative , start_epoch=1, end_epoch=4, lth=True, rewind_epoch=1)
learn.fit(10, cbs=sp_cb)
Researchers from Uber AI investigated the LTH and found the existence of what they call "Super-Masks", i.e. masks that, applied on a untrained neural network, allows to reach better-than-random results.
learn.model.load_state_dict(initial_weights)
To find supermasks, authors perform the LTH method then apply the mask on the original, untrained network. In fasterai, you can pass the parameter reset_end=True
, which will reset the weights to their original value at the end of the training, but keeping the pruned weights (i.e. the mask) unchanged.
sp_cb = SparsifyCallback(50, 'weight', 'local', large_final, iterative , start_epoch=1, lth=True, reset_end=True)
learn.fit(4, cbs=sp_cb)
learn.validate()
So now we have an untrained model which is better than random (50%).


1 Example: Ventricular Shortening Velocity (simple linear regression)
library(tidyverse) # super helpful everything!
library(magrittr) # includes other versions of the pipe
library(haven) # inporting SPSS data files
library(furniture) # nice tables of descriptives
library(texreg) # nice regression summary tables
library(stargazer) # nice tables of descrip and regression
library(corrplot) # visualize correlations
library(car) # companion for applied regression
library(effects) # effect displays for models
library(psych) # lots of handy tools
library(ISwR) # Introduction to Statistics with R (datasets)
1.1 Purpose
1.1.1 Research Question
Is there a relationship between fasting blood flucose and shortening of ventricular velocity among type 1 diabetic patiences? If so, what is the nature of the association?
1.1.2 Data Description
This dataset is included in the ISwR
package (Dalgaard 2015), which was a companion to the texbook “Introductory Statistics with R, 2nd ed.” (Dalgaard 2008), although it was first published by Altman (1991) in table 11.6.
The
thuesen
data frame has 24 rows and 2 columns. It contains ventricular shortening velocity and blood glucose for type 1 diabetic patients.
blood.glucose
a numeric vector, fasting blood glucose (mmol/l).short.velocity
a numeric vector, mean circumferential shortening velocity (%/s).
data(thuesen, package = "ISwR")
tibble::glimpse(thuesen) # view the class and 1st few values of each variable
Observations: 24
Variables: 2
$ blood.glucose <dbl> 15.3, 10.8, 8.1, 19.5, 7.2, 5.3, 9.3, 11.1, 7.5...
$ short.velocity <dbl> 1.76, 1.34, 1.27, 1.47, 1.27, 1.49, 1.31, 1.09,...
1.2 Exploratory Data Analysis
Before embarking on any inferencial anlaysis or modeling, always get familiar with your variables one at a time (univariate), as well as pairwise (bivariate).
1.2.1 Univariate Statistics
Summary Statistics for all three variables of interest (Hlavac 2018).
thuesen %>%
stargazer::stargazer(type = "html")
| Statistic | N | Mean | St. Dev. | Min | Pctl(25) | Pctl(75) | Max |
| blood.glucose | 24 | 10.300 | 4.338 | 4.200 | 7.075 | 12.700 | 19.500 |
| short.velocity | 23 | 1.326 | 0.233 | 1.030 | 1.185 | 1.420 | 1.950 |
The stargazer()
function has many handy options, should you wish to change the default settings.
thuesen %>%
stargazer(type = "html",
digits = 4,
flip = TRUE,
summary.stat = c("n", "mean", "sd", "min", "median", "max"),
title = "Descriptives")
| Statistic | blood.glucose | short.velocity |
| N | 24 | 23 |
| Mean | 10.3000 | 1.3257 |
| St. Dev. | 4.3375 | 0.2329 |
| Min | 4.2000 | 1.0300 |
| Median | 9.4000 | 1.2700 |
| Max | 19.5000 | 1.9500 |
Although the table1()
function from the furniture
package creates a nice summary table, it ‘hides’ the nubmer of missing values for each continuous variable (Barrett, Brignone, and Laxman 2018).
thuesen %>%
furniture::table1(blood.glucose, short.velocity,
output = "html")
| Mean/Count (SD/%) | |
|---|---|
| n = 23 | |
| blood glucose | |
| 10.4 (4.4) | |
| short velocity | |
| 1.3 (0.2) |
1.2.2 Univariate Visualizations
thuesen %>%
ggplot() +
aes(blood.glucose) + # variable of interest (just one)
geom_histogram(binwidth = 2) # specify the width of the bars
thuesen %>%
ggplot() +
aes(short.velocity) + # variable of interest (just one)
geom_histogram(bins = 10) # specify the number of bars
1.2.3 Bivariate Statistics (Unadjusted Pearson’s correlation)
The cor()
fucntion in base \(R\) doesn’t like NA
or missing values
thuesen %>% cor()
blood.glucose short.velocity
blood.glucose 1 NA
short.velocity NA 1
You may specify how to handle cases that are missing on at least one of the variables of interest:
use = "everything"
NA
s will propagate conceptually, i.e., a resulting value will beNA
whenever one of its contributing observations isNA
<– DEFAULT *use = "all.obs"
the presence of missing observations will produce an erroruse = "complete.obs"
missing values are handled by casewise deletion (and if there are no complete cases, that gives an error).use = "na.or.complete"
is the same as above unless there are no complete cases, that givesNA
use = "pairwise.complete.obs"
the correlation between each pair of variables is computed using all complete pairs of observations on those variables. This can result in covariance matrices which are not positive semi-definite, as well asNA
entries if there are no complete pairs for that pair of variables.
Commonly, we want listwise deletion:
thuesen %>% cor(use = "complete.obs") # list-wise deletion
blood.glucose short.velocity
blood.glucose 1.0000000 0.4167546
short.velocity 0.4167546 1.0000000
It is also handy to specify the number of decimal places desired, but adding a rounding step:
thuesen %>%
cor(use="complete.obs") %>%
round(2) # number od decimal places
blood.glucose short.velocity
blood.glucose 1.00 0.42
short.velocity 0.42 1.00
If you desire a correlation single value of a single PAIR of variables, instead of a matrix, then you must use a magrittr
exposition pipe (%$%
)
thuesen %$% # notice the special kind of pipe
cor(blood.glucose, short.velocity, # specify exactly TWO variables
use="complete.obs")
[1] 0.4167546
In addition to the cor()
funciton, the base \(R\) stats
package also includes the cor.test()
function to test if the correlation is zero (\(H_0: R = 0\))
This TESTS if the cor == 0
thuesen %$% # notice the special kind of pipe
cor.test(blood.glucose, short.velocity, # specify exactly TWO variables
use="complete.obs")
Pearson's product-moment correlation
data: blood.glucose and short.velocity
t = 2.101, df = 21, p-value = 0.0479
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.005496682 0.707429479
sample estimates:
cor
0.4167546
The default correltaion type for cor()
is Pearson’s \(R\), which assesses linear relationships. Spearman’s correlation assesses monotonic relationships.
thuesen %$% # notice the special kind of pipe
cor(blood.glucose, short.velocity, # specify exactly TWO variables
use = 'complete',
method = 'spearman') # spearman's (rho)
[1] 0.318002
1.2.4 Bivariate Visualization
Scatterplots show the relationship between two continuous measures (one on the \(x-axis\) and the other on the \(y-axis\)), with one point for each observation.
thuesen %>%
ggplot() +
aes(x = blood.glucose, # x-axis variable
y = short.velocity)) + # y-axis variable
geom_point() + # place a point for each observation
theme_bw() # black-and-white theme
Both the code chunk above and below produce the same plot.
ggplot(thuesen,
aes(x = blood.glucose, # x-axis variable
y = short.velocity)) + # y-axis variable
geom_point() + # place a point for each observation
theme_bw() # black-and-white theme
1.3 Regression Analysis
1.3.1 Fit A Simple Linear Model
\[ Y = \beta_0 + \beta_1 \times X \]
short.velocity
dependent variable or outcome (\(Y\))blood.glucose
independent variable or predictor (\(X\))
The lm()
function must be supplied with at least two options:
- a formula:
Y ~ X
- a dataset:
data = XXXXXXX
When a model is fit and directly saved as a named object via the assignment opperator (<-
), no output is produced.
fit_vel_glu <- lm(short.velocity ~ blood.glucose, data = thuesen)
Running the name of the fit object yields very little output:
fit_vel_glu
Call:
lm(formula = short.velocity ~ blood.glucose, data = thuesen)
Coefficients:
(Intercept) blood.glucose
1.09781 0.02196
Appling the summary()
funciton produced a good deal more output:
summary(fit_vel_glu)
Call:
lm(formula = short.velocity ~ blood.glucose, data = thuesen)
Residuals:
Min 1Q Median 3Q Max
-0.40141 -0.14760 -0.02202 0.03001 0.43490
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.09781 0.11748 9.345 6.26e-09 ***
blood.glucose 0.02196 0.01045 2.101 0.0479 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.2167 on 21 degrees of freedom
(1 observation deleted due to missingness)
Multiple R-squared: 0.1737, Adjusted R-squared: 0.1343
F-statistic: 4.414 on 1 and 21 DF, p-value: 0.0479
You may request specific pieces of the output:
- Coefficients or beta estimates:
coef(fit_vel_glu)
(Intercept) blood.glucose
1.09781488 0.02196252
- 95% confidence intervals for the coefficients or beta estimates:
confint(fit_vel_glu)
2.5 % 97.5 %
(Intercept) 0.8534993816 1.34213037
blood.glucose 0.0002231077 0.04370194
- The F-test for overall modle fit vs. a \(null\) or empty model having only an intercept and no predictors.
anova(fit_vel_glu)
# A tibble: 2 x 5
Df `Sum Sq` `Mean Sq` `F value` `Pr(>F)`
* <int> <dbl> <dbl> <dbl> <dbl>
1 1 0.207 0.207 4.41 0.0479
2 21 0.986 0.0470 NA NA
- Various other model fit indicies:
logLik(fit_vel_glu)
'log Lik.' 3.583612 (df=3)
AIC(fit_vel_glu)
[1] -1.167223
BIC(fit_vel_glu)
[1] 2.239259
1.3.2 Checking Assumptions via Residual Diagnostics
Before reporting a model, ALWAYS make sure to check the residules to ensure that the model assumptions are not violated.
plot(fit_vel_glu, which = 1)
plot(fit_vel_glu, which = 2)
plot(fit_vel_glu, which = 5)
plot(fit_vel_glu, which = 6)
Viewing potentially influencial or outlier points based on plots above:
thuesen %>%
dplyr::mutate(id = row_number()) %>%
dplyr::filter(id == c(13, 20, 24))
# A tibble: 3 x 3
blood.glucose short.velocity id
<dbl> <dbl> <int>
1 19 1.95 13
2 16.1 1.05 20
3 9.5 1.7 24
The car
package has a handy function called residualPlots()
for displaying residual plots quickly (Fox, Weisberg, and Price 2018).
car::residualPlots(fit_vel_glu)
Test stat Pr(>|Test stat|)
blood.glucose 0.9289 0.3640
Tukey test 0.9289 0.3529
Here is a fancy way to visulaize ‘potential problem cases’ with ggplot2
:
thuesen %>%
dplyr::filter(complete.cases(.)) %>% # get ride fo the incomplete cases
ggplot() + # name the FULL dataset
aes(x = blood.glucose, # x-axis variable name
y = short.velocity) + # y-axis variable name
geom_point() + # do a scatterplot
stat_smooth(method = "lm") + # smooth: linear model
theme_bw() + # black-and-while theme
geom_point(data = thuesen %>% # override the dataset from above
filter(row_number() == c(13, 20, 24)), # with a reduced subset of cases
size = 4, # make the points bigger in size
color = "red") # give the points a different color
1.3.3 Manually checking residual diagnostics
You may extract values from the model in dataset form and then you can maually plot the residuals.
thuesen %>%
dplyr::filter(complete.cases(.)) %>% # get ride fo the incomplete cases
dplyr::mutate(pred = fitted(fit_vel_glu)) %>% # fitted/prediction values
dplyr::mutate(resid = residuals(fit_vel_glu)) # residual values
# A tibble: 23 x 4
blood.glucose short.velocity pred resid
<dbl> <dbl> <dbl> <dbl>
1 15.3 1.76 1.43 0.326
2 10.8 1.34 1.34 0.00499
3 8.1 1.27 1.28 -0.00571
4 19.5 1.47 1.53 -0.0561
5 7.2 1.27 1.26 0.0141
6 5.3 1.49 1.21 0.276
7 9.3 1.31 1.30 0.00793
8 11.1 1.09 1.34 -0.252
9 7.5 1.18 1.26 -0.0825
10 12.2 1.22 1.37 -0.146
# ... with 13 more rows
Check for equal spread of points along the \(y=0\) horizontal line:
thuesen %>%
dplyr::mutate(id = row_number()) %>%
dplyr::filter(complete.cases(.)) %>% # get ride fo the incomplete cases
dplyr::mutate(pred = fitted(fit_vel_glu)) %>% # fitted/prediction values
dplyr::mutate(resid = residuals(fit_vel_glu)) %>% # residual values
ggplot() +
aes(x = id,
y = resid) +
geom_point() +
geom_hline(yintercept = 0,
color = "red",
size = 1,
linetype = "dashed") +
theme_classic() +
labs(title = "Looking for homogeneity of residuals",
subtitle = "want to see equal spread all across")
Check for normality:
thuesen %>%
dplyr::filter(complete.cases(.)) %>% # get ride fo the incomplete cases
dplyr::mutate(pred = fitted(fit_vel_glu)) %>% # fitted/prediction values
dplyr::mutate(resid = residuals(fit_vel_glu)) %>% # residual values
ggplot() +
aes(resid) +
geom_histogram(bins = 12,
color = "blue",
fill = "blue",
alpha = 0.3) +
geom_vline(xintercept = 0,
size = 1,
color = "red",
linetype = "dashed") +
theme_classic() +
labs(title = "Looking for normality of residuals",
subtitle = "want to see roughly a bell curve")
1.4 Conclusion
1.4.1 Tabulate the Final Model Summary
You may also present the output in a table using two different packages:
- The
stargazer
package hasstargazer()
function:
stargazer::stargazer(fit_vel_glu, type = "html")
| Dependent variable: | |
| short.velocity | |
| blood.glucose | 0.022** |
| (0.010) | |
| Constant | 1.098*** |
| (0.117) | |
| Observations | 23 |
| R2 | 0.174 |
| Adjusted R2 | 0.134 |
| Residual Std. Error | 0.217 (df = 21) |
| F Statistic | 4.414** (df = 1; 21) |
| Note: | p<0.1; p<0.05; p<0.01 |
The stargazer
package can produce the regression table in various output types:
-
type = “latex
Default Use when knitting your .Rmd file to a .pdf via LaTeX -
type = “text
Default Use when working on a project and viewing tables on your computer screen -
type = “html
Default Use when knitting your .Rmd file to a .html document
- The
texreg
package has thetexreg()
fucntion:
texreg::htmlreg(fit_vel_glu)
| Model 1 | ||
|---|---|---|
| (Intercept) | 1.10*** | |
| (0.12) | ||
| blood.glucose | 0.02* | |
| (0.01) | ||
| R2 | 0.17 | |
| Adj. R2 | 0.13 | |
| Num. obs. | 23 | |
| RMSE | 0.22 | |
| p < 0.001, p < 0.01, p < 0.05 |
The texreg
package contains three version of the regression table function.
-
screenreg()
Use when working on a project and viewing tables on your computer screen -
htmlreg()
Use when knitting your .Rmd file to a .html document -
texreg()
Use when knitting your .Rmd file to a .pdf via LaTeX
1.4.2 Plot the Model
When a model only contains main effects, a plot is not important for interpretation, but can help understand the relationship between multiple predictors.
The Effect()
function from the effects
package chooses ‘5 or 6 nice values’ for your continuous independent variable (\(X\)) based on the range of values found in the dataset on which the model was fit and plugs them into the regression equation \(Y = \beta_0 + \beta_1 \times X\) to compute the predicted mean value of the outcome (\(Y\)) (Fox et al. 2018).
effects::Effect(focal.predictors = c("blood.glucose"), # IV variable name
mod = fit_vel_glu) # fitted model name
blood.glucose effect
blood.glucose
4.2 8 12 16 20
1.190057 1.273515 1.361365 1.449215 1.537065
You may override the ‘nice values’ using the xlevels = list(var_name = c(#, #, ...#)
option.
effects::Effect(focal.predictors = c("blood.glucose"),
mod = fit_vel_glu,
xlevels = list(blood.glucose = c(5, 10, 15, 20)))
blood.glucose effect
blood.glucose
5 10 15 20
1.207627 1.317440 1.427253 1.537065
Adding a piped data frame step (%>% data.frame()
) will arrange the predicted \(Y\) values into a column called fit
. This tidy data format is ready for plotting.
effects::Effect(focal.predictors = c("blood.glucose"),
mod = fit_vel_glu) %>%
data.frame()
# A tibble: 5 x 5
blood.glucose fit se lower upper
* <dbl> <dbl> <dbl> <dbl> <dbl>
1 4.2 1.19 0.0788 1.03 1.35
2 8 1.27 0.0516 1.17 1.38
3 12 1.36 0.0483 1.26 1.46
4 16 1.45 0.0742 1.29 1.60
5 20 1.54 0.110 1.31 1.77
effects::Effect(focal.predictors = c("blood.glucose"),
mod = fit_vel_glu,
xlevels = list(blood.glucose = c(5, 12, 20))) %>%
data.frame() %>%
ggplot() +
aes(x = blood.glucose, # x-axis variable
y = fit) + # y-axis variable
geom_ribbon(aes(ymin = lower, # bottom edge of the ribbon
ymax = upper), # top edge of the ribbon
alpha = .5) + # ribbon transparency level
geom_line() +
theme_bw()
Notice that although the regression line is smooth, the ribbon is choppy. This is because we are basing it on only THREE values of \(X\).
c(5, 12, 20)
[1] 5 12 20
Use the seq()
function in base \(R\) to request many values of \(X\)
seq(from = 5, to = 20, by = 5)
[1] 5 10 15 20
seq(from = 5, to = 20, by = 2)
[1] 5 7 9 11 13 15 17 19
seq(from = 5, to = 20, by = 1)
[1] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
seq(from = 5, to = 20, by = .5)
[1] 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 9.0 9.5 10.0 10.5 11.0 11.5
[15] 12.0 12.5 13.0 13.5 14.0 14.5 15.0 15.5 16.0 16.5 17.0 17.5 18.0 18.5
[29] 19.0 19.5 20.0
effects::Effect(focal.predictors = c("blood.glucose"),
mod = fit_vel_glu,
xlevels = list(blood.glucose = seq(from = 5, to = 20, by = .5))) %>%
data.frame() %>%
ggplot() +
aes(x = blood.glucose, # x-axis variable
y = fit) + # y-axis variable
geom_ribbon(aes(ymin = lower, # bottom edge of the ribbon
ymax = upper), # top edge of the ribbon
alpha = .5) + # ribbon transparency level
geom_line() +
theme_bw()
Now that we are basing our ribbon on MANY more points of \(X\), the ribbon is much smoother.
For publication, you would of course want to clean up the plot a bit more:
effects::Effect(focal.predictors = c("blood.glucose"),
mod = fit_vel_glu,
xlevels = list(blood.glucose = seq(from = 5, to = 20, by = .5))) %>%
data.frame() %>%
ggplot() +
aes(x = blood.glucose, # x-axis variable
y = fit) + # y-axis variable
geom_ribbon(aes(ymin = lower, # bottom edge of the ribbon
ymax = upper), # top edge of the ribbon
alpha = .3) + # ribbon transparency level
geom_line() +
theme_bw() +
labs(x = "Fasting Blood Glucose (mmol/l)",
y = "Mean Circumferential Shortening Velocity (%/s)") # axis labels
The above plot has a ribbon that represents a 95% confidence interval (lower
toupper
) for the MEAN (fit
) outcome. Sometimes we would rather display a ribbon for only the MEAN (fit
) plus-or-minus ONE STANDARD ERROR (se
) for the mean. You would do that by changing the variables that define the min and max edges of the ribbon (notice the range of the y-axis has changed):
effects::Effect(focal.predictors = c("blood.glucose"),
mod = fit_vel_glu,
xlevels = list(blood.glucose = seq(from = 5, to = 20, by = .5))) %>%
data.frame() %>%
ggplot() +
aes(x = blood.glucose,
y = fit) +
geom_ribbon(aes(ymin = fit - se, # bottom edge of the ribbon
ymax = fit + se), # top edge of the ribbon
alpha = .3) +
geom_line() +
theme_bw() +
labs(x = "Fasting Blood Glucose (mmol/l)",
y = "Mean Circumferential Shortening Velocity (%/s)")
Of course, you could do both ribbons together:
effects::Effect(focal.predictors = c("blood.glucose"),
mod = fit_vel_glu,
xlevels = list(blood.glucose = seq(from = 5, to = 20, by = .5))) %>%
data.frame() %>%
ggplot() +
aes(x = blood.glucose,
y = fit) +
geom_ribbon(aes(ymin = lower, # bottom edge of the ribbon = lower of the 95% CI
ymax = upper), # top edge of the ribbon = upper of the 95% CI
alpha = .3) +
geom_ribbon(aes(ymin = fit - se, # bottom edge of the ribbon = mean - SE
ymax = fit + se), # top edge of the ribbon = Mean + SE
alpha = .3) +
geom_line() +
theme_bw() +
labs(x = "Fasting Blood Glucose (mmol/l)",
y = "Mean Circumferential Shortening Velocity (%/s)") # axis labels


--- blog: true layout: page author: Julius Chrobak title: SQL vs. Bandicoot date: 2011 11 01 ---
Every time I write something in Bandicoot I realize how different this is comparing to SQL. I must admit the concepts in Bandicoot are very natural for me and I'm enjoying Bandicoot programming a lot more than writing queries in SQL.
I've decided to put a small page together to show the differences. I'm going to do this informally and skip the definitions of relations, variables, operators, and other constructs from the relational model. All you can find on this page are one-to-one comparisons of the well known SQL expressions: select from, where, join, and group by.
This is the most used expression in SQL. It returns all the rows from a table, allows you to define which columns to pick, or define new derived columns:
| SQL | Bandicoot |
|---|---|
select * from books |
books |
select title, author from books |
books project(title, author) |
select b.*, 2011 - year as age from books b |
books extend(age = 2011 - year) |
or everything together
select title, author, 2011 - year as age from books |
books project(title, author) extend(age = 2011 - year) |
select * from books where author = 'John Irving' |
books select(author == "John Irving") |
select * from books natural join stores |
books * stores |
note: there are several different join operators defined in SQL. Bandicoot supports only natural inner join (a full match on equality of all the columns with the same name and type):
select genre, count(*) as cnt, avg(pages) as pages from books group by genre |
(books, books project(genre)) summary(cnt = cnt(), pages = avg(pages, 0.0)) |
To get a better picture how this all works in reality I show you an example of a complete Bandicoot function. Let's imagine you have a simple database of books and stores and you want to find out what is the average price of books per author providing the genre you are interested in:
fn prices(g: string): rel {author: string, avgPrice: real} { onSell := stores * (books select(genre == g)); authors := onSell project(author); return (onSell, authors) summary(avgPrice = avg(price, 0.0)); }
To compare this with SQL I would need to pick a specific implementation of procedural language (ie Oracle's PL/SQL or Postgres' PL/pgSQL). To leave it simple I only write the select statement which executes the same calculation:
select author, avg(price) as avgPrice from books natural join stores where genre == g group by author


B0tbecue control interface
Action:
Restart
Stop
Raw
Say
Nick
OP
DeOP
Join
Part
Activate Global Digital Defense Network
Channel:
%channels%
Value:
Control password:
Plugins (loaded)
%plugins%
Users
%users%


Using GMaps.js is as easy as:
new GMaps({ el: '#map', lat: -12.043333, lng: -77.028333 });
You must define container ID, latitude and longitude of the map's center.
Note: You also can define zoom, width and height. By default, zoom is 15. Width and height in a CSS class will replace these values.


Update Your Profile
Add a Description
Add an Abstract
Minimum Investment($)
Maximum Investment($)
Website URL
CEO Name


The ALS Association is incredibly grateful for the outpouring of support from people all over the world. We thank you for participating in the Ice Bucket Challenge and for making donations to support our fight against this disease. Please visit our Frequently Asked Questions for important information about our mission, structure and finances. We also want to provide you with information about our plans to put the Ice Bucket Challenge donations to work, supporting our short-term and long-term goals.
The ALS Association has demonstrated a strong track record of keeping fundraising and administration costs low and expenses on programs and services to fulfill our mission high. We are proud to have received the highest ratings from Charity Navigator, Charity Watch, the Better Business Bureau and GuideStar. We encourage you to review our ratings on these sites and also review our financial documents online here. New research projects across the country dedicated to solving ALS, also known as Lou Gehrig’s disease, have begun to receive millions of dollars in additional funding thanks to this year’s Ice Bucket Challenge. The funding marks the ALS Association’s first move toward distributing the $115 million it raised to fight the disease.
“We are tripling the amount annually that we spend on research,” said ALS Association President Barbara Newhouse. “We have a sense of urgency, but we also we recognize that we have to be good stewards of the donor dollars as we move this forward as quickly as researchers can research.”
Some of the first projects to receive funding include one trying to sequence the genes of 15,000 people with ALS, one partnering with pharmaceutical companies to advance drug treatment, and one developing gene therapy that might reduce the spread of the disease through the body. Hospitals and labs around the world that have received funding are Cedars-Sinai in Los Angeles, the University of California San Francisco, the New York Genome Center and others. The ALS Association has distributed more than $20 million so far and has committed to seeing any project it’s funded through to completion.
In addition to funding research, the Ice Bucket Challenge money will be used to improve treatment for people living with disease, Newhouse said. Despite the organization’s now-deeper pockets, Newhouse insists that it will take time before the group will determine fully how to best leverage its influx in cash. Newhouse said she’s been “inundated with proposals” for research projects, and they continue to arrive in her inbox. “It’s been amazing how many people have come out of the woodwork to say ‘I have the answer,’” she said. “We’re trying to sort through what’s fact and what’s fiction.”


Umm...I just don't know how to start my home page. Maybe,
my profile(🐱)
is the thing which you want to need.
i will keep this page as simple as possible.
Before program career.
Mathematics Competition during my high school.
(Long long ago...it seems an old story.)
ACM Life. (My Team:
TZC.Acfighting
.)
First (& maybe last )
paper
.
Projects:
Favorite projects:
Modules
webcomponents
For
Weex-Starter
.
Daily Notes
.
If you are playing Pokemon Go, you can try
this
.
BDC plan
. For someone who want to learn something.
Projects in
Zhejiang Lanmal E-Commerce Co., Ltd.
:
m.toomao.com
www.toomao.com
architecture


Toggle navigation
Project name
Home
About
Contact
Select School
Top Artists
{{artist}}
Top Tracks
{{track}}
Mood
Valence
Energy
Danceability
National Music Percentage
Top National Artists
{{nationalArtist}}


Need help logging into Glass?
If you havent changed anything the default username is user and the default password is pass.
In the GlassPi folder there should be a file name glassaccount.js. Edit the file and save.
The Glass login system is not secure. The javascript file with the password and username could be read! Make sure you make the password something you have never used.


|
Fig. 1
|
Endemic plant species richness (number of species per grid c ... |
|
Fig. 2
|
Change in species richness across New Guinea’s ecoregions un ... |
|
Fig. 3
|
Change in endemic useful plant richness across New Guinea’s ... |
|
Fig. 4
|
Spatial conservation priorities for endemic plants in the fa ... |
|
Fig. 5
|
Congruence in top 10% conservation priorities for 2070 for e ... |


DECEPTION A film review by Steve Rhodes Copyright 1995 Steve Rhodes
RATING (0 TO ****): *
Are you thinking about getting a camcorder ? Do you already own a camcorder? If you answered yes to either of these questions, then you MUST see DECEPTION. You will pay for the price of the admission many times over in just a single year by avoiding wasting tons of video tape.
The cinematography (Laszlo Kovacs) in DECEPTION contains in just over an hour and a half ALL possible bad camera techniques. By the sixth time you watch the underbelly of a jet roaring overhead or a close-up of silverware shaking in the sink as a jet flies by, you will be busy taking mental notes of what to avoid. You also get lots and lots of pans - many of them blurry to keep your viewers curiosity going. You will find how you can make your audience laugh during serious shots like the climbing a gigantic pyramid at dawn by using silly camera angles.
Oh yes, the movie itself? It is a mess. You say you want to know the plot. Well, this much I will tell you. A recent widower (Andie MacDowell) races around the globe trying to find who is taking the money out of all of the banks where her husband stashed money that she did not know he had in the first place. If you like Andie MacDowell like I do, then you do get to see her in almost every scene. If you like the costar, Liam Neeson, forget it, he hardly ever appears.
DECEPTION's silly plot is unimportant to you, of course, since you are seeing this film in order to save on tape purchases. Truth be told, the plot is so crazy and so full of holes that it keeps your attention in a strange sort of way. It is so bad, it is fascinating.
DECEPTION (also known as RUBY CAIRO) runs a mercifully short 1:30. It is rated PG-13 for some violence and bad language, but on the whole it is a pretty tame show. I give it a very generous * for somehow keeping my attention by being so ridiculous I kept wondering what would happen next. Non-camcorder owners should avoid this show.
**** = One of the top few films of this or any year. A must see film. *** = Excellent show. Look for it. ** = Average movie. Kind of enjoyable. * = Poor show.  Totally unbearable.
REVIEW WRITTEN ON: December 13, 1993
Opinions expressed are mine and not meant to reflect my employer's.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


About Xinmeng
I'm currently a Master of Computer Science Student at Northeastern University. I got my Bachelor degree in Business Administation at University of Texas at Austin. After graduated, I gained practical experience in supply chain management and accounting. In 2017, I started to learn Python by myself, and found my interest in computer science. I got passion for coding and ready to learn new knowledge and frameworks all the time.
During spare time, I love to travel and meet friends. One of my dreams is to become a Gourmet. Currently, I'm training my skills in Ukelele, Ski and Caligraphy.
Life
Education
Experience
College life at Austin - which is reported as #1 city to live in the USA. Besides enjoying the BBQ and water sports, also gained practical experience in supply chain management at Chevron.
Interned at Apache Power Industrial as supply chain analyst and accountant. Monitored and prepared reconciled AP for international multicurrency vendors. Analyzed supply chain based on sales projection and implemented strategic ordering plan.
Obtain certificate in pre-med and nutrition. Volunteered at St Davis Medical Center. Helped inpatient department and discharing patients.
Enroll in Northeastern University. Focus on computer science study. Learnt computer basic from the beginning. Gained experience in multiple mini projects.


The bitcoin-spock project was created for writing Spock
tests of Bitcoin RPC
and
Omni Core RPC
(formerly Master Core) functions. In addition to the Spock specifications there is a collection
of test support classes written in Java and Groovy.
Some of these support packages should probably be broken out in to separate projects, modules, and/or jars.
For the time being it is simplest to keep them all in one project/module/jar.
The functionality consists of:
- A client library for talking to bitcoind via JSON-RPC
- A library for writing command-line tools that talk to bitcoind via JSON-RPC
- Omni Protocol extensions to the JSON-RPC client for Omni Core
- Classes defining abstractions from the Omni Protocol (Master Protocol) Specification
- Omni Protocol-specific command-line tools
- Classes for fetching, parsing, and comparing Omni Protocol consensus information


Welcome to our animal shop! From the Ocean is not just like any other pet store. Every product in our store is also 100% legal. All of our animals are all healthy and happy.
The ocean is still an undiscovered place even if it is located in our world. The ocean life is filled with many exotic animals. These creatures have huge variety of size, shapes, and colors.
If you love animals from the ocean then you came to the right place! We have a huge variety of fish to choose from, ranging from clown fish to sharks. We also sell other creatures like the sea urchins, reefs, and other exotic creatures that you can't even describe. Not only that, we have free delivery around the world!


|
Belle GunnessBack before Vogue was so in vogue and thin wasn't really in, there was a fat old lady from Norway whose talent with the pen won her many a Norse heart. Her name was Brynhilde Poulsatter Storset, but most everyone who knew her called her Belle.Belle was no real prize in the fuck-worthy department. She was 9 when she came to the US in 1881 and changed her name to make herself sound more attractive. But back in those heady days, men wanted workers, not dancers, and Belle was a stocky and strong young woman. She grew into a thick, tree-like stature: 5'7" tall, and 200 pounds of mostly muscle. In 1883, at the age of 24, she married Mads Sorenson, a farmer who was also from Norway. They moved to Chicago and opened a candy store, squeezing out four children along the way. Belle poisoned her daughter Caroline in 1896, then her son Axel in 1898. Then, for shits and giggles, she burnt down the candy shop that same year. Belle and Mads took the insurance money and moved to the other side of Chicago.
How Many Strychs Does it Take to Kill a Man? 9.Mads was impressively long lasted for one of Belle's relations, but in 1900, after 17 years of faithful marriage, Belle poisoned Mads too. Insurance companies around this period were laughably incompetent. Belle garnered money from Mads' death, as well as from the sudden fire that took her house away shortly after Mads was buried.Using the $13,000 insurance pay-off she received, Belle moved herself and three children to a 40 acre farm in La Porte, Indiana. Yes, that's three children. Lord knows why, but one of Belle's neighbors decided to dump their daughter, Jennie Olsen, on Belle and skip town. The actual method of killing is lost to history, but in 1903, Jennie was never seen around the farm any more. Belle said she'd gone off to finishing school, but more likely she was sent to the backyard in a gunny sack instead.
Must have Cock!Always a strong and resourceful woman, Belle raised and slaughtered pigs and cows, earning just enough to keep herself afloat. She didn't really need a man around the house, but eventually her vagina got to tingling, and she began the hunt for a new lover.In 1902, she found Peter Gunness, a gentle old Norseman who evidently got a big boner when he saw how adept Belle was at gutting a pig. Belle proposed, and the pair were wed in the spring. Just before the marriage, Belle begged her betrothed to take out a large life insurance policy and to sign her as the beneficiary. Typically, this is a big alarm trigger for most folks, but Gunness was something of a dolt.  Belle told authorities that a sausage grinder had fallen on him. Belle's children knew otherwise. She did keep his last name, though. Touching. Interestingly, Belle kept the child she gave birth to a month after Guness' death. Well, kept her for a little while. Belle placed an ad in numerous matrimonial journals, a sort of combination mail-order-bride catalog and personals periodical. Because of these journals two score men eventually went to their graves. the luring of prey to a killer via epistles is nothing new. The age of email and irc has only exacerbated matters. Had Belle Guness owned a computer... well, she didn't have any electricity anyway. Belle netted herself husband after husband thanks to Norwegian journals. And they always seemed to leave her a large life insurance policy after their deaths. Most of these men lost their personal wealth, as well. Belle's ad specifically asked for any visiting suitor to bring large sums of cash to prove their worth and sincerity. The money was the only thing that didn't end up in the backyard wrapped in a gunny sack. After only seven murders, Belle met George Anderson. She immediately proposed marriage, and he accepted. But then, the night after she proposed, George awakened with a start and saw Belle standing over him, staring down at him with a candle in her hand. George was majorly creeped out. He screamed. She screamed. They had themselves a jolly old round of primal scream therapy. In the morning, Georgie boy left town and related the story to friends and relatives. he was the only man ever to survive Belle Guness. Number 42 -- the NippleIn 1908, after killing off horny and lonely old men for eight years straight, Belle decided to retire. She took out a life insurance policy on herself, always a bad sign. By this time, the local insurance man had Belle's address on speed-file. On the way out of town, Belle stopped into a local saloon for a drink. There, she met a 5' 3", 150 pound middle aged woman. After buying the woman a few drinks, belle invited her out to the farm, promising a job and good pay.  She dressed the body in her clothes and laid her in the basement. Belle was flattering herself. The body was a lot more attractive and shapely than her own.But the size difference never really hurt her. On April 28, after herding her remaining 3 children into the basement, she locked the door, set fire to the house, and was never seen again.
And She Lived Happily Ever AfterBelle Guness got away with 42 murders in all. After the fire, local authorities came round the house and started digging. There were corpses everywhere. Some were in gunny sacks, some were naked. Others were scattered across the fields. there were countless bones and fragments left unaccounted for. Some reports cite as many as 20 unexplained right arms.For years after the killings, Belle was reportedly seen around La Porte by locals and neighbors. One nosey neighbor claimed to have seen Belle on April 30, at Almetta Hay's house. Eight years later, after Hay had gone the way of the Dodo, snooping locals found a rotted skull behind the bed. It was the head of the dead woman from the bar. Not that finding a head did Belle any harm. She was never found. in 1917, a nurse called the cops when he thought Belle was checking into his hospital, but the lady in question vanished before he got back from the phone. in 1931, Esther Carlson was tried in L.A. for poisoning her 81-year-old husband, but La Porte couldn't afford to send anyone to L.A. to look at the picture found in Esther's purse: a photo of three daughters. Esther died in jail before the trial. |


Carousel3D is an interactive rotating 3D HTML/JS carousel made with ThreeJS. The Carousel3D object uses the ThreeJS CSS3DRenderer to display and rotate 3D tiles. Each tile is actually just an HTML div element so you should be able to generate and load your own HTML elements, such as images, videos, or text.
true
."black"
."blue"
or "red"
.{ 'w':120, 'h':160 }
.{'x':0, 'y':250, 'z':-200}
.20
.-46
.#000000
.#ffffff
.false
.0
.40
.


- Click on the buttons below to try the activities.
- In the left-hand window, you will be given instructions to complete your task.
- In the right-hand window you can attempt to complete your activity.
- Stop when you reach the page that says "Activity Completed", or when you feel that you have completed the task.
- Close the exercise window to move on to the next exercise.


Myth: Bats are blind
Bats use echolocation - a sort of radar - to find their way around.
They can "see" much better than any person!
Myth: All bats have rabies
Not true. Like many wild animals such as skunks, raccoons and foxes, bats can carry rabies. But the chances of being bitten by--and getting rabies from--a bat are extremely small.
In fact, bee stings are actually way more dangerous to people!
No matter what, the best advice is never to touch a bat or any other wild animal.
Myth: Bats attack people
Most bats are gentle animals and would much rather get out of a person's way than to attack him or her.
Myth: Bats fly into people's hair
Simply not true. Silly, and maybe even funny to picture, but it just doesn't happen.
Myth: Bats are pests
Wrong. Bats help control pests! A single bat can snap up over 600 mosquitoes in one hour, as well as other little pests! Some species of bats even take part in the life cycle of plants by pollinating them.

Not true. There really are vampire bats. But they live only in tropical regions of Central and South America. Although they do feed on blood, it is usually animal blood. The bat drinks by making a quick slice with its sharp teeth and lapping up a spoonful or two.  Vampire bats actually have helped people. Vampire bat saliva contains chemicals - called anticoagulants - that keep blood from clotting. From their research on vampire bats, scientists have developed a medicine to help heart patients. Guess what they called that drug? Draculin!


Ultimately, I think I’d be more secure if I could be my own boss.
When I change my profile picture to support a cause, it’s because …
I might not be organized about everything, but I’m organized about my money.
When I want to (or have to) learn something new in my financial life, I …
Cha-ching! I inherit a lot of money from a long-lost relative. I spend it on:
(If not, you can go back and change your answers. We'll be waiting right here.)


On the Manage custom attributes page, you can add, update, or delete custom attributes for your customers or for your customer's subscriptions.
Custom attributes are a means to store additional customer information such as data that is needed for controlling the cost and activity accounting. For example, you may want to specify the profit center to which a particular customer's revenue is to be accounted. Since there is no standard for such data, you can define your own custom attribute for storing the profit center. The custom attributes will be included in the billing data that is generated every month. The information can then be used, for example, as a reference for an external accounting, billing, or CRM system.
When defining custom attributes for subscriptions, you can decide whether you yourself want to specify the attribute value, or whether the customer must enter the value when he subscribes to one of your services.
When defining custom attributes for customers, you can decide whether you yourself want to specify the attribute value, or whether the customer administrator must enter the value by editing the profile of the customer organization on a marketplace. Custom attributes for customers are always applied to all subscriptions of customers of a specific supplier. For example, credentials for accessing an external account such as OpenStack or Amazon Web Services (AWS) can be set as customer-specific attributes.
For every custom attribute, you can enter a default value. This value is used as long as no specific value for an individual customer or an individual subscription is entered. If the value of a custom subscription attribute is to be specified by the customer, the corresponding field is preset with the default value during the subscription process. If the customer's administrator or subscription manager changes this value during the subscription process, the new value is automatically applied to all subscriptions of the customer.
To specify the value of a custom attribute for an individual customer, use the Manage customer menu option in the Customer menu. To specify the value of a custom attribute for an individual subscription, use the Manage subscription attributes menu option in the Customer menu.
Custom attributes are available for customers of your brokers when you grant them the permission to offer and sell your services. Custom attributes are not available for customers of your resellers.
To add custom attributes:
To edit custom attributes:
To delete custom attributes:


Welcome to the Clark House o' Plague. Cora's running a fever now. Aww crud...
10/31/2009, 11:26:59 AM
Favs: 0
Retweets: 0
link--- layout: tweet ---
Welcome to the Clark House o' Plague. Cora's running a fever now. Aww crud...
10/31/2009, 11:26:59 AM
Favs: 0
Retweets: 0
link


CHAPTER 446
DEBT ADJUSTING
Section
446-1 Definitions
446-2 Debt adjusting prohibited; penalty; contracts void
446-3 Persons not affected
446-4 Certain loan functions not affected


If you want to get the lowest textbook prices in the nation, follow these three easy steps:
Now that's the way to start your semester!
Don't miss out, this deal is for September only!
Bookstoregenie.com


This site contains advanced features that are not compatible with your browser. Please make sure you have the latest version installed, then click here to try again


#include <tcpclient.h>
Inherits TcpEndPoint.
Typical usage:
TcpClient client; client.open(InetAddress(HTTP_PORT, WEB_SITE_URL)); std::vector<uint8> data; client.send(data); client.receive(data); client.close();
Definition at line 27 of file tcpclient.h.
Public Member Functions | |
| void | open (const InetAddress &remote_address) |
| TcpClient () |
| TcpClient | ( | ) |
| void open | ( | const InetAddress & | remote_address | ) |
Opens a connection to the remote address.
| remote_address | remote address to connect to |
| SocketError | on error. |


|
lwIP
2.1.2
Lightweight IP stack
|
Macros | |
| #define | BRIDGEIF_PORT_NETIFS_OUTPUT_DIRECT NO_SYS |
| #define | BRIDGEIF_MAX_PORTS 7 |
| #define | BRIDGEIF_DEBUG LWIP_DBG_OFF |
| #define | BRIDGEIF_FDB_DEBUG LWIP_DBG_OFF |
| #define | BRIDGEIF_FW_DEBUG LWIP_DBG_OFF |
| #define BRIDGEIF_DEBUG LWIP_DBG_OFF |
BRIDGEIF_DEBUG: Enable generic debugging in bridgeif.c.
| #define BRIDGEIF_FDB_DEBUG LWIP_DBG_OFF |
BRIDGEIF_DEBUG: Enable FDB debugging in bridgeif.c.
| #define BRIDGEIF_FW_DEBUG LWIP_DBG_OFF |
BRIDGEIF_DEBUG: Enable forwarding debugging in bridgeif.c.
| #define BRIDGEIF_MAX_PORTS 7 |
BRIDGEIF_MAX_PORTS: this is used to create a typedef used for forwarding bit-fields: the number of bits required is this + 1 (for the internal/cpu port) (63 is the maximum, resulting in an u64_t for the bit mask) ATTENTION: this controls the maximum number of the implementation only! The max. number of ports per bridge must still be passed via netif_add parameter!
| #define BRIDGEIF_PORT_NETIFS_OUTPUT_DIRECT NO_SYS |
BRIDGEIF_PORT_NETIFS_OUTPUT_DIRECT==1: set port netif's 'input' function to call directly into bridgeif code and on top of that, directly call into the selected forwarding port's 'linkoutput' function. This means that the bridgeif input/output path is protected from concurrent access but as well, all bridge port netif's drivers must correctly handle concurrent access! == 0: get into tcpip_thread for every input packet (no multithreading) ATTENTION: as ==0 relies on tcpip.h, the default depends on NO_SYS setting


Simple Link Component
Link Component
Can Hide Component
Simple Todo List Component
Exclamation Component
Message Component
Parent Component
Todo List Component
Melisandre Component
Simple Render Component
Got Quotes
Instantiated JS Vue
Instantiated JS Vue With methods
Extend JS Component
Extend Java Component
Focus Directive
Kitten Component
Reverse Component
v-for with Index Component
v-for with Range Component
v-for on Object Component
Even numbers Component
Recursive Component
Binding inline Style Component
Prop Default Value Component
Button +1 Component
Greet Component
v-on With DOM Event Component
Todo Text Component
Todo Text Computed Component
Share Data Model Component
Counter With Event Component
Tree Component


Health Hub
Be confident in your health.
Health Hub is your online doctor.
During this pandemic, the decision to visit the doctor can be a difficult one.
However, medical needs and conditions don't just go away.
Health Hub is a smart, simple, and secure tool that uses data science and machine learning to accurately predict your chances of having and contracting medical conditions.
Smart
Health Hub predicts your likelihood of suffering from life-altering health conditions. Our web application connects to IOT devices in your home to automatically gather data, which is processed by a machine learning model supported by data from thousands of patients.
Simple
Health Hub is simple to use.
Once you set up your account, our tool will track
and analyze important health information to determine how healthy you are.
Real-time data and results will be accessible from
the Health Hub dashboard.
Secure
We understand that medical data needs to stay private. Therefore, we use tools like blockchain - the world's most secure database implementation - to ensure that your information is stored and used safely. Health Hub has you covered.
Our Mission
We want to make healthcare easy.
Whether you like or not, your health data is being tracked and collected by today's big companies. What if I told you there was a way to protect your data and use it to protect your well being? Meet Health Hub. Health Hub is a decentralized and personalized dashboard that tracks your health statistics and predicts health risks.  With healthcare deductables rising and a pandemic going on, doctors are more inaccessible and expensive than ever. Just take a look at the chart on the right! Health Hub allows users to obtain daily health insights and determine whether a trip to the doctor is urgent or not. This both saves our users money and lets doctors prioritize their time for patients who really need care. Our mission is to make health easy.
About Us
Adam Gluck
Adam is a senior at Dublin Coffman High School. As an aspiring technologist, he wanted to create a project that used cutting edge technology and created social good. He is proud to have helped create Health Hub which has allowed him to apply his machine learning background to help people with their healthcare.
Riya Tyagi
Riya is a freshman at Phillips Exeter Academy who enjoys computer programming and machine learning. With her love of learning, she hopes to improve the world and inspire others, which is why she is honored to be working on Health Hub. When she is not coding or making up sci-fi theories, you can find her hiking or tinkering around.
Taurean Lee
Taurean is currently a Junior at the Urban Assembly Gateway School for Technology. He is avidly actively learning topics involving the bleeding edge of technology such as Quantum Mechanics, BMI(Brain Machine Interfaces), and Deep Learning using Python.
Contact us!
If you have any questions, concerns, or comments, don't hesitate to reach out. We will respond within a few business days.


List of cars
{% for car in object_list %} Model: {{ car.model }}, Brand: {{ car.brand }}, Color: {{ car.color }}, Number: {{ car.number }}
{% endfor %}
Actions:
Update
or
Delete


Blockaudit is a decentralized platform that allows you to create databases. It does all the dirty work for you by automatically setting up blockchain based backend service allowing you to focus on what matters.
The backend of the DAPP will be built on the Cardano blockchain, the first blockchain platform to evolve out of a scientific philosophy and a research-first driven approach. It was developed by a large global collective of expert engineers and researchers.
This will enable developers to create records of: bank statements, medical history, investment performance, legislation, goverment budgets and even historical events and dates audited and verified on a public ledger. Once the records are created, they can't be edited or manipulated. All done without a third party that has to be trusted.
The project is open source based, ready for contributions from great minds across the globe.
Blockchain enables trustless exchange of ideas, capital, records information and more.
The Daedalus Wallet is a highly secure wallet based on the Ouroboros algorithm. Daedalus will add more cryptocurrencies and be developed over time along with Cardano, to become a universal wallet, blockchain application platform and an app store.
This enables developers to create records of: bank statements, medical history, investment performance, legislation, goverment budgets and even historical events and dates audited and verified on a public ledger.
Create a trackrecord that can not be edited, manipulated or simply undermined by a larger fund with a better legal infrastructure. With the help of blockchain technology you can create a transparent and detailed investment record without a central authority proving that the transactions that make it up even exist.
 Using smart contracts your investors will be able to keep your accountible as they will be able to see every move you make as it happens, in stead of finding about it the next quarter.
A digital blockchain property register that identified land using GPS coordinates would allow property ownership to be verified and transferred at low cost. Some third world countries like Rwanda have already woken up to this, and as part of its digital transformation plan is looking to port its ledger onto the blockchain. There are similar noises in both Kenya and Ghana, as government officials begin to see that the technology might let them leapfrog the legacy systems that are currently used in the western world.
Using the blockaudit decentralized application, you can easily build landmark records and publish them on your blockchain off choice.
Blockchain technology can be used to securely store health records and maintain a single version of the truth. The different organisations such as doctors, hospitals, laboratories, pharmacists and health insurers can request permission to access a patient’s record to serve their purpose and record transactions on the distributed ledger.
Blockaudit provides a simple solution for interacting with a such ledger. The platform is built to securely store and share electronic health records. By digitizing health records and empowering users we can leverage countless industry synergies.
Now it's your turn: start building what you dream of in blockaudit app builder! Could your business be enhanced by operating on a cryptographically secure, decentralized, tamper-proof network?
Check out the many great projects* already being built on Cardano. And since you'll be among the first developers in the world that are able to program decentralized applications, some of them might need your help.
* the above list is maintained by an independent party and the blockaudit.io does not endorse its content or any particular project
If you feel more comfortable around a terminal, you can clone blockaudit source files using git clone + https://github.com/railaru/blockaudit-stable.git.


a.b is the composition of the relations a and b. For each tuple in a of the form (a0, a1, ..., an, X), and each tuple in b of the form (X, b1, ..., bn), the new relation a.b contains a tuple (a0, a1, ..., an, b1, ... bn). Only the last atom in tuples of a are matched with the first atom in tuples of b. Note that the matched atom is removed from the resulting tuple.
Due to some clever definitions of Semantics, it can also be used to access fields of a signature. See levels of understanding for examples of different ways to interpret the dot.


Class: Aws::FSx::Types::OpenZFSCreateRootVolumeConfiguration
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
|
Class Chain:
self,
Struct
|
|
|
Instance Chain:
self,
::Aws::Structure ,
Struct
|
|
| Inherits: |
Struct
|
| Defined in: | gems/aws-sdk-fsx/lib/aws-sdk-fsx/types.rb |
Overview
The configuration of an Amazon FSx for OpenZFS root volume.
Constant Summary
Instance Attribute Summary
-
#copy_tags_to_snapshots ⇒ Boolean
rw
A Boolean value indicating whether tags for the volume should be copied to snapshots of the volume.
-
#data_compression_type ⇒ String
rw
Specifies the method used to compress the data on the volume.
-
#nfs_exports ⇒ Array<Types::OpenZFSNfsExport>
rw
The configuration object for mounting a file system.
-
#read_only ⇒ Boolean
rw
A Boolean value indicating whether the volume is read-only.
-
#record_size_ki_b ⇒ Integer
rw
Specifies the record size of an OpenZFS root volume, in kibibytes (KiB).
-
#user_and_group_quotas ⇒ Array<Types::OpenZFSUserOrGroupQuota>
rw
An object specifying how much storage users or groups can use on the volume.
Instance Method Summary
Instance Attribute Details
#copy_tags_to_snapshots ⇒ Boolean
(rw)
A Boolean value indicating whether tags for the volume should be
copied to snapshots of the volume. This value defaults to false
.
If it's set to true
, all tags for the volume are copied to
snapshots where the user doesn't specify tags. If this value is
true
and you specify one or more tags, only the specified tags are
copied to snapshots. If you specify one or more tags when creating
the snapshot, no tags are copied from the volume, regardless of this
value.
# File 'gems/aws-sdk-fsx/lib/aws-sdk-fsx/types.rb', line 6713
class OpenZFSCreateRootVolumeConfiguration < Struct.new( :record_size_ki_b, :data_compression_type, :nfs_exports, :user_and_group_quotas, :, :read_only) SENSITIVE = [] include Aws::Structure end
#data_compression_type ⇒ String
(rw)
Specifies the method used to compress the data on the volume. The
compression type is NONE
by default.
NONE
- Doesn't compress the data on the volume.NONE
is the default.ZSTD
- Compresses the data in the volume using the Zstandard (ZSTD) compression algorithm. Compared to LZ4, Z-Standard provides a better compression ratio to minimize on-disk storage utilization.LZ4
- Compresses the data in the volume using the LZ4 compression algorithm. Compared to Z-Standard, LZ4 is less compute-intensive and delivers higher write throughput speeds.
# File 'gems/aws-sdk-fsx/lib/aws-sdk-fsx/types.rb', line 6713
class OpenZFSCreateRootVolumeConfiguration < Struct.new( :record_size_ki_b, :data_compression_type, :nfs_exports, :user_and_group_quotas, :, :read_only) SENSITIVE = [] include Aws::Structure end
#nfs_exports ⇒ Array
<Types::OpenZFSNfsExport> (rw)
The configuration object for mounting a file system.
# File 'gems/aws-sdk-fsx/lib/aws-sdk-fsx/types.rb', line 6713
class OpenZFSCreateRootVolumeConfiguration < Struct.new( :record_size_ki_b, :data_compression_type, :nfs_exports, :user_and_group_quotas, :, :read_only) SENSITIVE = [] include Aws::Structure end
#read_only ⇒ Boolean
(rw)
A Boolean value indicating whether the volume is read-only. Setting
this value to true
can be useful after you have completed changes
to a volume and no longer want changes to occur.
# File 'gems/aws-sdk-fsx/lib/aws-sdk-fsx/types.rb', line 6713
class OpenZFSCreateRootVolumeConfiguration < Struct.new( :record_size_ki_b, :data_compression_type, :nfs_exports, :user_and_group_quotas, :, :read_only) SENSITIVE = [] include Aws::Structure end
#record_size_ki_b ⇒ Integer
(rw)
Specifies the record size of an OpenZFS root volume, in kibibytes
(KiB). Valid values are 4, 8, 16, 32, 64, 128, 256, 512, or 1024
KiB. The default is 128 KiB. Most workloads should use the default
record size. Database workflows can benefit from a smaller record
size, while streaming workflows can benefit from a larger record
size. For additional guidance on setting a custom record size, see
Tips for maximizing performance in the Amazon ::Aws::FSx
for OpenZFS
User Guide.
# File 'gems/aws-sdk-fsx/lib/aws-sdk-fsx/types.rb', line 6713
class OpenZFSCreateRootVolumeConfiguration < Struct.new( :record_size_ki_b, :data_compression_type, :nfs_exports, :user_and_group_quotas, :, :read_only) SENSITIVE = [] include Aws::Structure end
#user_and_group_quotas ⇒ Array
<Types::OpenZFSUserOrGroupQuota> (rw)
An object specifying how much storage users or groups can use on the volume.
# File 'gems/aws-sdk-fsx/lib/aws-sdk-fsx/types.rb', line 6713
class OpenZFSCreateRootVolumeConfiguration < Struct.new( :record_size_ki_b, :data_compression_type, :nfs_exports, :user_and_group_quotas, :, :read_only) SENSITIVE = [] include Aws::Structure end


§ PongGameDisplay()
| view.PongGameDisplay.PongGameDisplay |
( |
| ) |
|
Constructor for PongGameDisplay.
Constructor by default set the game to single mode
§ bombTime()
| boolean view.PongGameDisplay.bombTime |
( |
| ) |
|
checks if it should start displaying the bomb
- Returns
- startBomb
§ getBallSize()
| int view.PongGameDisplay.getBallSize |
( |
| ) |
|
gets the size of the ball
- Returns
- ballSize
§ getBallX()
| int view.PongGameDisplay.getBallX |
( |
| ) |
|
gets the x-position of the ball
- Returns
- ballX
§ getBallY()
| int view.PongGameDisplay.getBallY |
( |
| ) |
|
gets the y-position of the ball
- Returns
- ballY
§ getBombX()
| int view.PongGameDisplay.getBombX |
( |
| ) |
|
gets the x-position of the bomb
- Returns
- bombX
§ getBombY()
| int view.PongGameDisplay.getBombY |
( |
| ) |
|
gets the y-position of the bomb
- Returns
- bombY
§ getBottomScore()
| int view.PongGameDisplay.getBottomScore |
( |
| ) |
|
gets the player score
- Returns
- scoreBottom
§ getBottomX()
| int view.PongGameDisplay.getBottomX |
( |
| ) |
|
gets the x-position of the player paddle
- Returns
- bottomPadX
§ getBottomY()
| int view.PongGameDisplay.getBottomY |
( |
| ) |
|
gets the y-position of the player paddle
- Returns
- bottomPadY
§ getMode()
| int view.PongGameDisplay.getMode |
( |
| ) |
|
gets the mode of the game
- Returns
- gameMode
§ getTopScore()
| int view.PongGameDisplay.getTopScore |
( |
| ) |
|
gets the score of AI
- Returns
- scoreTop
§ noBomb()
| void view.PongGameDisplay.noBomb |
( |
| ) |
|
defines the game mode does not contain a bomb
set the flag for the advance to be false
§ paintComponent()
| void view.PongGameDisplay.paintComponent |
( |
Graphics |
g | ) |
|
|
protected |
draws shapes on the screen
when the game is started, by default draws the ball and paddles in the middle, otherwise, draws objects by passed in values.
Initial positioning
- ball at the center of the screen
- paddle in the middle of the frame width
Draw rectangles by passed in values
Draw the ball by passed in values
Draw the bomb if the mode is the advance mode
Draw scores on the screen by passed in values
§ setAdvance()
| void view.PongGameDisplay.setAdvance |
( |
| ) |
|
sets the game mode to be advanced
set the flag to advance
§ setBall()
| void view.PongGameDisplay.setBall |
( |
int |
x, |
|
|
int |
y |
|
) |
| |
sets the positions of the ball
- Parameters
-
| x | is the x-position of the ball |
| y | is the y-position of the ball |
- Exceptions
-
| ArithmeticException | ball position could not be out of the game frame |
§ setBallSize()
| void view.PongGameDisplay.setBallSize |
( |
int |
s | ) |
|
sets the size of the ball
- Parameters
-
- Exceptions
-
| ArithmeticException | ball size should not be less than zero |
§ setBomb()
| void view.PongGameDisplay.setBomb |
( |
int |
x, |
|
|
int |
y |
|
) |
| |
sets the positions of the bomb
- Parameters
-
| x | is the x-position of the bomb |
| y | is the y-position of the bomb |
- Exceptions
-
| ArithmeticException | bomb position could not be out of the game frame |
§ setBottom()
| void view.PongGameDisplay.setBottom |
( |
int |
x | ) |
|
sets x-position for the player paddle
- Parameters
-
- Exceptions
-
| ArithmeticException | paddle x-position could not be out of the game frame |
§ setBottomPaddle()
| void view.PongGameDisplay.setBottomPaddle |
( |
int |
x, |
|
|
int |
y |
|
) |
| |
sets the positions of the player paddle
- Parameters
-
| x | is the x-position of the player paddle |
| y | is the y-position of the player paddle |
- Exceptions
-
| ArithmeticException | player paddle position could not be out of the game frame |
§ setBottomScore()
| void view.PongGameDisplay.setBottomScore |
( |
int |
s | ) |
|
sets the score for player
- Parameters
-
- Exceptions
-
| ArithmeticException | player score could not be less than zero |
§ setInset()
| void view.PongGameDisplay.setInset |
( |
int |
i | ) |
|
sets the distance between frame and the paddle
- Parameters
-
- Exceptions
-
| ArithmeticException | distance between paddle and frame could not be set out of the frame |
§ setPaddleHeight()
| void view.PongGameDisplay.setPaddleHeight |
( |
int |
h | ) |
|
sets the height of the paddle
- Parameters
-
- Exceptions
-
| ArithmeticException | paddle height could not be less than zero |
§ setPaddleWidth()
| void view.PongGameDisplay.setPaddleWidth |
( |
int |
w | ) |
|
sets the width of the paddle
- Parameters
-
- Exceptions
-
| ArithmeticException | paddle width could not be less than zero |
§ setTop()
| void view.PongGameDisplay.setTop |
( |
int |
x | ) |
|
sets x-position for the ai paddle
- Parameters
-
- Exceptions
-
| ArithmeticException | paddle y-position could not be out of the game frame |
§ setTopPaddle()
| void view.PongGameDisplay.setTopPaddle |
( |
int |
x, |
|
|
int |
y |
|
) |
| |
sets the positions of the AI paddle
- Parameters
-
| x | is the x-position of the AI paddle |
| y | is the y-position of the AI paddle |
- Exceptions
-
| ArithmeticException | ai paddle position could not be out of the game frame |
§ setTopScore()
| void view.PongGameDisplay.setTopScore |
( |
int |
s | ) |
|
sets the score for ai
- Parameters
-
- Exceptions
-
| ArithmeticException | ai score could not be less than zero |
§ timeForBomb()
| void view.PongGameDisplay.timeForBomb |
( |
| ) |
|
defines the game mode contains a bomb
set the flag for the advance to be true
§ ADVANCE
| final int view.PongGameDisplay.ADVANCE =1 |
|
private |
§ ballSize
| int view.PongGameDisplay.ballSize |
|
private |
§ ballX
| int view.PongGameDisplay.ballX |
|
private |
§ bombX
| int view.PongGameDisplay.bombX |
|
private |
§ bottomPadX
| int view.PongGameDisplay.bottomPadX |
|
private |
§ first
| boolean view.PongGameDisplay.first |
|
private |
§ frameHeight
| int view.PongGameDisplay.frameHeight |
|
private |
§ frameWidth
| int view.PongGameDisplay.frameWidth |
|
private |
Variable declarations for the display
- frame dimension
- ball information
- bomb information
- player scores
- paddle information
§ gameMode
| int view.PongGameDisplay.gameMode |
|
private |
§ inset
| int view.PongGameDisplay.inset |
|
private |
§ padW
| int view.PongGameDisplay.padW |
|
private |
§ scoreTop
| int view.PongGameDisplay.scoreTop |
|
private |
§ SINGLE
| final int view.PongGameDisplay.SINGLE =0 |
|
private |
§ startBomb
| boolean view.PongGameDisplay.startBomb |
|
private |
§ topPadX
| int view.PongGameDisplay.topPadX |
|
private |
The documentation for this class was generated from the following file:


I posted earlier that I’d been having a hard time working with the assigned episodes this week. When I got home, I decided to watch a different episode and see what would happen. I turned on Will the Real Martian Please Stand Up? from season two of The Twilight Zone. I hadn’t ever seen this one, and the episodes with UFO’s and aliens involved always intrigued me.
(As a kid, I borrowed a TON of UFO books from the library, and then I started to get freaked out, so I stopped.)
I loved the disparity between the characters in this episode, and I thought I had it all figured out. Well, it turned out that I forgot I was in the Zone, and Serling pulled a fast one on me. Again.
I decided to do another minimalist book cover for this episode, mostly because the image popped into my head immediately. Plus, I figured the one I did on A Clockwork Orange was done before the class started, so technically, I’m not redoing a project I’ve already completed.
I used a couple tricks taught to me today by Shannon Tate after commenting on her beautiful House of Leaves book cover. They really helped me achieve more texture in the image overlay and the text, which made me happy.
I feel like I’m back on the horse and I’m looking forward to (maybe) getting another project done this weekend, and definitely starting fresh next week.
—
Book image photo credit: ~Brenda-Starr~ via Compfight cc
Written on May 31st , 2013 by Brian Bennett Categorized in: All ds106
Leave a comment


BLADE RUNNER 2049
Kartin Leung z5061484
SITE PLAN
PRECEDENTS
DIAGRAMS
THE HOUSE
FLOOR PLAN
ELEVATION
SECTION 1
SECTION 2
PERSPECTIVE
THE CINEMA
FLOOR PLAN
ELEVATION
SECTION 1
SECTION 2
PERSPECTIVE