Complete an individually-designed project that can take different forms (R Markdown Report, interactive Shiny app, interactive dashboard, etc.) related to identifying and solving a data-related problem in education using R.
The scope of the project must involve making substantial progress toward a research-related goal.
These goals can take a number of different forms, including:
We are more focused on the process you take than the specifics of your project, as we discuss next.
A draft is due approximately two-thirds of the way through the semester, and your final project is due in presentation (screen recording via Zoom) form at the very end of the semester.
Stage 1 - Initial ideas posted in a class-wide Google Slides presentation, 3/18; do so here: https://docs.google.com/presentation/d/1KWU5bhxZmV63vkNtQNxHo-2YI_iYJmSW2oOZ_jtFeP0/edit?usp=sharing - You will provide feedback to peers in your base group (by 3/25)
Stage 2
In this stage, you will revised and expand upon the final project ideas you detailed in the Google Slides presentation (see Stage 1 above for a link to the presentation). To do this, you will create and share your own Google Doc.
First, create a Google Doc. In this document, please add information on the following elements.
You may copy this over with the prompts if you would like, replacing the instructions following each colon:
Title: A tentative title for your final project - consider something memorable that also accurately describes the goal of your project
Overview: One paragraph on what topic, question, or problem you are considering working on for your final project. As a starter, consider including within this paragraph a sentence to establish why you are pursuing the topic, question, or problem you are for your final project.
Depending on the specifics of your project, specify either (or both) the substantive (e.g., why might what you are doing be important / of interest to others) and/or technical (e.g., what you’ll be learning and doing) parts of your project.
Data: One paragraph on the data you plan or hope to use: Its source, dimensions, technical information about what format(s) it is in, and what parts/subsets (if relevant) you might use.
Product: What form(s) will your final project take? Our baseline assumption is that you will share an R Markdown report with the code and output of your code, but, there are additions you can make to this, as well as entirely different products that you can create. Examples of other products include specific figures, hosting the R Markdown report on your own website and/or on R Pubs, creating a dashboard or an interactive Shiny web application, creating an R script, starting an APA-formatted manuscript, etc. (the sky is the limit!)
Major Goals / Milestones: In a bullet-point list, describes the major goals / milestones for your project. Most projects will include between 3-5 of these.
For instance, for a project that involves creating a map of the locations of users’ social media accounts, these might be goals / milestones such as:
Key questions and / or concerns: Add bullet points with any key questions and / or concerns that you have. In this, identify specific gaps where you don’t know how to complete a goal / milestone (those you detailed above) or where you don’t know what the step is.
To submit this document, add a link here, and please share the document with us<EMAIL_ADDRESS>and<EMAIL_ADDRESS>Please share the document with these email addresses; we have e-mail aliases that causes issues with Google Docs, but sharing will work with the above addresses: https://docs.google.com/spreadsheets/d/1A6YlySv6h41UUZXwO80pQhQwNKEMvz_eHc3fY9Y41Cw/edit?usp=sharing. If helpful to you, instructions for how to share a Google Doc are here: https://support.google.com/docs/answer/2494822?co=GENIE.Platform%3DDesktop&hl=en
Stage 3 - Final project - Submission of a product (likely a rendered .Rmd
file, but possibly something) and a five-ten minute recording of your work; why you chose to work on this, what you did, and what you want to do next, 5/5 - strict deadline - In your five-ten minute recording, please describe: - The topic of your project - Why you chose this topic - what problem it solve or question it helped/helps you to answer - What you did, including the learning/independent work you had to do to be able to achieve what you did - What you are most proud of about your final project - What you still want to know more about/what you want to do next having completed your final project - We recommend using Zoom and recording to the Cloud - then using that link to share your recording (more details below)
Available data sets:


|
DeBox Analytics
|
IAnalyticsManager that uses the mixpanel SDK More...
Public Member Functions | |
| MixPanelAnalyticsManager (AutoTimestampModeType timestampModeType) | |
| Create a new MixPanelAnalyticsManager More... | |
| override void | Initialize () |
| Does nothing More... | |
| override void | Identify (string id) |
| Activate account tracking More... | |
| override void | Increment (string attribute, int value) |
| Increment attribute value in MixPanel People More... | |
| override void | Increment (string attribute, float value) |
| Increment attribute value in MixPanel People More... | |
| override void | Set (string attribute, object value) |
| Set attribute value in MixPanel People More... | |
| override void | SetOnce (string attribute, object value) |
| Set attribute value once in MixPanel People More... | |
| override void | AddToList (string attribute, params object[] values) |
| Append list attribute values in MixPanel People More... | |
| override void | UnionList (string attribute, params object[] values) |
| Not supported More... | |
| override void | IntersectList (string attribute, params object[] values) |
| Not supported More... | |
| override void | RemoveFromList (string attribute, params object[] values) |
| Not supported More... | |
| override void | SetTrackingAttribute (string attributeName, object value) |
| Set a Super Property for tracked events More... | |
| override void | SetTrackingAttributeOnce (string attributeName, object value) |
| Set a Super Property once for tracked events More... | |
| override void | TrackRevenue (string product, int quantity, float price) |
| Not supported yet More... | |
| override void | Flush () |
| Call Mixpanel.Flush() More... | |
| Public Member Functions inherited from DeBox.Analytics.BaseAnalyticsManager | |
| void | TrackEvent (string eventName) |
| Performs TrackEventInternal More... | |
| void | TrackEvent (string eventName, Dictionary< string, object > attributes) |
| Performs TrackEventInternal More... | |
| virtual bool | SupportsFeature (AnalyticsFeatureType feature) |
| Returns true if the manager supports the specified feature More... | |
Protected Member Functions | |
| override void | TrackEventInternal (string eventName) |
| Track an event More... | |
| override void | TrackEventInternal (string eventName, Dictionary< string, object > attributes) |
| Track an event with attributes More... | |
| override string | GetTimestampAttributeName () |
| Returns the timestamp attribute this manager uses. Defaults to DEFAULT_EVENT_TIME_ATTRIBUTE_NAME More... | |
| override AnalyticsFeatureType | GetSupportedFeatures () |
| Mask of supported features of this manager More... | |
| Protected Member Functions inherited from DeBox.Analytics.BaseAnalyticsManager | |
| BaseAnalyticsManager (AutoTimestampModeType timestampModeType) | |
| Initialize this base with the specified mode More... | |
| virtual DateTime | GetCurrentTime () |
| Returns the current date-time. More... | |
Additional Inherited Members | |
| Public Types inherited from DeBox.Analytics.BaseAnalyticsManager | |
| enum | AutoTimestampModeType { AutomaticallyTimestamp, DontAutomaticallyTimestamp } |
| Properties inherited from DeBox.Analytics.BaseAnalyticsManager | |
| bool | AutoTimestampEvents [get, protected set] |
| If this is true, this manager auto-stamps the current time to tracked events More... | |
IAnalyticsManager that uses the mixpanel SDK
Enable this manager by defininig the 'DEBOX_ANALYTICS_MIXPANEL' pre-processor define
Definition at line 16 of file MixPanelAnalyticsManager.cs.
| DeBox.Analytics.MixPanelManager.MixPanelAnalyticsManager.MixPanelAnalyticsManager | ( | AutoTimestampModeType | timestampModeType | ) |
Create a new MixPanelAnalyticsManager
| timestampModeType | See BaseAnalyticsManager |
Definition at line 24 of file MixPanelAnalyticsManager.cs.
|
virtual |
Append list attribute values in MixPanel People
| attribute | |
| values |
Implements DeBox.Analytics.BaseAnalyticsManager.
Definition at line 89 of file MixPanelAnalyticsManager.cs.
|
virtual |
Call Mixpanel.Flush()
Implements DeBox.Analytics.BaseAnalyticsManager.
Definition at line 184 of file MixPanelAnalyticsManager.cs.
|
protectedvirtual |
Mask of supported features of this manager
Implements DeBox.Analytics.BaseAnalyticsManager.
Definition at line 241 of file MixPanelAnalyticsManager.cs.
|
protectedvirtual |
Returns the timestamp attribute this manager uses. Defaults to DEFAULT_EVENT_TIME_ATTRIBUTE_NAME
Can be overridden
Reimplemented from DeBox.Analytics.BaseAnalyticsManager.
Definition at line 189 of file MixPanelAnalyticsManager.cs.
|
virtual |
Activate account tracking
| id | account id |
Implements DeBox.Analytics.BaseAnalyticsManager.
Definition at line 39 of file MixPanelAnalyticsManager.cs.
|
virtual |
Increment attribute value in MixPanel People
| attribute | |
| value |
Implements DeBox.Analytics.BaseAnalyticsManager.
Definition at line 59 of file MixPanelAnalyticsManager.cs.
|
virtual |
Increment attribute value in MixPanel People
| attribute | |
| value |
Implements DeBox.Analytics.BaseAnalyticsManager.
Definition at line 49 of file MixPanelAnalyticsManager.cs.
|
virtual |
Does nothing
Implements DeBox.Analytics.BaseAnalyticsManager.
Definition at line 31 of file MixPanelAnalyticsManager.cs.
|
virtual |
Not supported
| attribute | |
| values |
| NotImplementedException |
Implements DeBox.Analytics.BaseAnalyticsManager.
Definition at line 114 of file MixPanelAnalyticsManager.cs.
|
virtual |
Not supported
| attribute | |
| values |
| NotImplementedException |
Implements DeBox.Analytics.BaseAnalyticsManager.
Definition at line 125 of file MixPanelAnalyticsManager.cs.
|
virtual |
Set attribute value in MixPanel People
| attribute | |
| value |
Implements DeBox.Analytics.BaseAnalyticsManager.
Definition at line 69 of file MixPanelAnalyticsManager.cs.
|
virtual |
Set attribute value once in MixPanel People
| attribute | |
| value |
Implements DeBox.Analytics.BaseAnalyticsManager.
Definition at line 79 of file MixPanelAnalyticsManager.cs.
|
virtual |
Set a Super Property for tracked events
| attributeName | |
| value |
Implements DeBox.Analytics.BaseAnalyticsManager.
Definition at line 154 of file MixPanelAnalyticsManager.cs.
|
virtual |
Set a Super Property once for tracked events
| attributeName | |
| value |
Implements DeBox.Analytics.BaseAnalyticsManager.
Definition at line 164 of file MixPanelAnalyticsManager.cs.
|
protectedvirtual |
Track an event
| eventName |
Implements DeBox.Analytics.BaseAnalyticsManager.
Definition at line 134 of file MixPanelAnalyticsManager.cs.
|
protectedvirtual |
Track an event with attributes
| eventName | |
| attributes |
Implements DeBox.Analytics.BaseAnalyticsManager.
Definition at line 144 of file MixPanelAnalyticsManager.cs.
|
virtual |
Not supported yet
| product | |
| quantity | |
| price |
| NotImplementedException |
Implements DeBox.Analytics.BaseAnalyticsManager.
Definition at line 176 of file MixPanelAnalyticsManager.cs.
|
virtual |
Not supported
| attribute | |
| values |
| NotImplementedException |
Implements DeBox.Analytics.BaseAnalyticsManager.
Definition at line 103 of file MixPanelAnalyticsManager.cs.


try
statements that catch
java.lang.Error
or any of its subclasses and do not rethrow the error.
Statements that catch java.lang.ThreadDeath
are not
reported.
Example:
try {
executeTests(request);
}
catch (OutOfMemoryError ex) { // warning: Error 'ex' not rethrown
return false;
}


This Week in Rust
Hello and welcome to another issue of This Week in Rust! It’s a bit delayed due to finals, but like the spinning of the Earth it goes on.
Shameless plug: ask me to do things over my winter break!
What’s cooking on master?
52 PRs were merged this week.
Breaking Changes
- The much-discussed
Result
API changes have happened. The gist of it is that.ok()
and.err()
return Options. The other changes didn’t land, I assume they will be coming later. - The JIT support has been removed, due to lack of maintenance and upstream changes (this came with the LLVM upgrade).
- Keywords (except self) are no longer allowed as lifetime parameters.
Path::init
has been renamed back toPath::new
.std::str::from_utf8
no longer allocates.std::util::ignore
has been renamed tostd::prelude::drop
, to better reflect what it does.- Duplicate bindings are no longer
allowed in struct bindings. That
is,
let SomeStruct { foo, foo } = baz;
is no longer legal. - Dynamic library propagation is reimplemented.
extra::c_vec
has been modernized.MutableVector::mut_split
has been renamed tomut_split_at
.
Other changes
- A part of the tutorial has been rewritten.
- Vim highlighting has been updated.
deriving
has better error messages.StrSlice
has grown some documentation.- Snapshots are now statically linked.
- From the “changes I don’t really understand” department, trait lifetime parameters are early bound in associated functions.
- A race in the scheduler has been squelched.
- extra now has an LRU cache.
- A
log_enabled!(level)
macro has been added, for checking if the program is being run at a given log level. - Static linking now has docs!
- Memory usage when compiling librustc has been killed by 130MB with some well-placed indirection.
MutableVector
has another iterator:mut_chunks()
, for iterating over mutable slices.- The
reverse-complement
shootout benchmark has been rewritten.
New contributors
- Alexandros Tasos
- Diego Ongaro
- Julia Evans
- osa1
Meeting
The weekly
meeting
discussed using box
for placement new, some rustpkg discussion, dropping the
dependency on a system C++ library, and the above from_utf8
and Result
pull requests.
This Week in Servo
Servo is a web browser engine written in Rust and is one of the primary test cases for the Rust language.
We landed 19 PRs this week.
Notable additions
- Simon Sapin added the CSS visibility property in #1331.
- Juneyoung Cho landed local bookmark navigation in #1262.
- ms2ger added reporting exceptions to JS when the DOM implementation fails in #1304.
- Keegan McAllister and Patrick Kim landed several changes to continue our push to remove @-boxes to open up more of our data to safe parallel access across task boundaries.
New contributors
- Bruno de Oliveira Abinader
- Daniel Hedlund
New intern
- Isabelle Carter will be joining us as part of the GNOME Outreach Program for
Women, OPW, and will be
working on adding
position:fixed
support to Servo. The internship runs from December 10 through March 10.
Meetings
This week’s meeting was short and mostly covered some build system changes that Jack is working on. In short, we will use Rust’s static linking to make it easier to distribute a Servo binary and we are making a larger change to CMake in order to get both more reliable parallel/incremental builds and get support for cross-compilation.
Announcements etc
- Evict-BT - an issue tracker that integrates loosely with git.
- Rust with Emscripten
- Day 36: On programming without malloc
- Rust experience report - a pre-0.1 raytracer and response to the language.
- Rust frontend to GCC
- Types in Rust, for Beginners
- Thoughts on DST, part 4
- Slides from pnkfelix’s codemash presentation.
- An ML thread on redundant APIs involving
Option
- What do you want in a Rust Docker image?
- A huge thread on lots of things Rust
- Rust bindings to libsodium/NaCl


Functions for calculating sample size and power for clinical trials with multiple (co-)primary endpoints.
| Version: | 1.0 |
| Depends: | R (≥ 3.1.0), mvtnorm |
| Imports: | stats |
| Suggests: | knitr, rmarkdown |
| Published: | 2017-02-02 |
| Author: | Matthias Kohl [aut, cph], Srinath Kolampally [cre, aut, cph] |
| Maintainer: | Srinath Kolampally <kolampally.srinath at gmail.com> |
| License: | LGPL-3 |
| NeedsCompilation: | no |
| Materials: | NEWS |
| CRAN checks: | mpe results |
| Reference manual: | mpe.pdf |
| Vignettes: |
MPE |
| Package source: | mpe_1.0.tar.gz |
| Windows binaries: | r-devel: mpe_1.0.zip, r-release: mpe_1.0.zip, r-oldrel: mpe_1.0.zip |
| OS X binaries: | r-release: mpe_1.0.tgz, r-oldrel: mpe_1.0.tgz |
Please use the canonical form https://CRAN.R-project.org/package=mpe to link to this page.


‘Use yogurt instead of costly tomatoes’, PTI leader advises people
by News DeskKhyber-Pakhtunkhwa Information Minister Shaukat Yousafzai has suggested an ingenious way to bring down skyrocketing prices of tomatoes, which recently crossed Rs300 per kg in the domestic market. He advised the masses to stop buying the costly commodity altogether and use yogurt as its replacement in their daily meals.
“We have stopped using tomatoes in our curries … we use yogurt instead. You should also stop using it until its prices come down to normal level,” he can be heard saying in a video that went viral on social media on Sunday.
“Look, it all depends on demand and supply … prices will go up due to increased demand and when you stop using it altogether then automatically prices will reduce,” Yousafzai explained.
“Problem with Pakistanis is we always cry over increasing prices of beef, mutton and chicken but refuse to quite using these commodities resulting in their soaring prices … it’s better to get rid of them and the prices will automatically come down.”
The comment comes as the price of tomatoes reached its highest-ever mark and the price control committees failed to enforce the government-approved rates throughout the country.
The price hike is attributed to a cessation in supply of tomatoes from Iran and of red tomatoes from Balochistan.
Last week, Adviser to the Prime Minister on Finance Abdul Hafeez Shaikh drew public ire for comments on tomato prices. In a video shared widely on social media platforms, Shaikh was seen dismissing reporters’ concerns over the rising prices of tomatoes.
“Look, tomatoes are being sold for Rs17 per kilogramme at the sabzi mandi,” said the PM’s adviser.
When reporters informed him that the fruit was being sold for Rs240 per kg by retailers in Karachi, Shaikh dismissed their assertion as a lie.


RMQ Grid Playground
Click and Drag on grid to create.
Delete a frame
Click on a non-grid frame for confirmation delete.
Double Click on a non-grid frame to quickly delete.


Item 5.10.10.c.
Use the data in Table 5.10.5to create a graph which compares the types of vehicles driven in Norway and the United Kingdom. Why did you choose the type of graph you did? What does the graph tell you about the differences between Norway and the United Kingdom?in-context


|
|
|||
|
Risk-Based Testing and Quality Assurance Solutions |
|||
|
Quality Software is Like a Mosaic — All the Pieces Fit. |
|||
|
Mosaic Solutions: |
|||
|
Test Planning and Execution: We can supply a test team or fill any resource gaps in your test team. >>more |
Mosaic’s Testing/Test Automation Framework: Mosaic’s patent-pending, ready-to-implement test framework provides the highest level of reuse in the industry. Your tests, test data, and automation scripts will be fully reusable. Moreover, you can use commercial, open source, and/or home grown automation tools. >>more |
Test Data Management: Rather than store your input and expected results test data in numerous, difficult to maintain spreadsheets, use the power of a database to make your test data reusable and maintainable. >>more |
|
|
Looking for a user friendly, robust test planning tool? an alternative to QC? a framework for Selenium? Check out RSTAR. >>morex |
Sizing Systems using Testable Requirements: Mosaic has pioneered the use of testable requirements to measure the size of a system. >>more |
|
|
Mosaic’s patent application on SOFTWARE TESTING SUPPORTING HIGH REUSE OF TEST DATA has been allowed. >>more |
|
|
RSTAR at a glance >>more See RSTAR in action:
|
|
Beyond keyword and data-driven testing -- see 5 ways RSTAR is different. >>more Mosaic’s testing framework achieves full reuse of testing assets! Watch our video and see the benefits! Why Full Reuse Karen Johns, Director at Mosaic contributes “Cost Reduction through Reusable Test Assets” to the newly published book “How to Reduce the Cost of Testing”. >>more |
©2009-2014 Mosaic, Inc.


| MPI_TYPE_DUP(type, newtype) | |
| IN type | datatype (handle) |
| OUT newtype | copy of type (handle) |
int MPI_Type_dup(MPI_Datatype type, MPI_Datatype *newtype)
MPI_TYPE_DUP(TYPE, NEWTYPE, IERROR)
INTEGER TYPE, NEWTYPE, IERROR
MPI::Datatype MPI::Datatype::Dup() const
MPI_TYPE_DUP is a new type constructor which duplicates the existing type with associated key values. For each key value, the respective copy callback function determines the attribute value associated with this key in the new communicator; one particular action that a copy callback may take is to delete the attribute from the new datatype. Returns in newtype a new datatype with exactly the same properties as type and any copied cached information. The new datatype has identical upper bound and lower bound and yields the same net result when fully decoded with the functions in Section Decoding a Datatype . The newtype has the same committed state as the old type.


Student Hilary has the following grade for her subjects. Compute the average mark of student Hilary and output her corresponding grade.
Write a program that will loop from from 0 to 100 and on every number divisible by three, print beep and on every number divisible by five, print boop so if the number is divisible by five and three it must print beepboop.
Write a program to output following pattern, using a nested for loop.


@* * Copyright 2017 HM Revenue & Customs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @import common.Constants @import views.html.helpers.backButton @import uk.gov.hmrc.play.views.html.helpers.form @()(implicit request: Request[_], messages: Messages) @main_template(title = Messages("page.declaration.title"), bodyClasses = None) { @backButton(controllers.seis.routes.CheckAnswersController.show().toString)
@Messages("page.declaration.description")


Address: Cornell College Campus
District: Cornell College
Year Built: 1909
Builder: Grant Miller
Architect: Grant Miller
Owner: Cornell College
Use: P.E. & gymnasium facility
Physical Description:
Style-
Construction Type-Rectangle with 2 projecting, full height mass (bsement, entries, parapet)
Features:
¨ Hip roof, terracotta, tin ridge protector
¨ Walls are brick with quoins style corners
¨ Limestone horizontal banding at 1st floor and below eave line and on parapet
¨ Windows on 1st floor are 2 pane with rectangle frame set in full arch of brick with keystone
¨ Windows on 2nd floor are 2 pane with rectangle frame with linestone and sills-jack arch lintel
¨ Single pane skylight on 3rd floor
¨ No windows on north façade 1st and 2nd floors
¨ Entrance mass highly ornate brick arch with radiating pattern
¨ 2nd floor window is leaded glass, limestone sill, jack arch
History/Comments:
The original porch included skylights and was replaced by composition shingles in 1959.
Sources:
B.R.F.
Cornellian
Mount Vernon Record.


Implementation of a procedure (Domingue, 2012; see also Karabatsos, 2001 and Kyngdon, 2011) to test the single and double cancellation axioms of conjoint measure in data that is dichotomously coded and measured with error.
| Version: | 0.0.9 |
| Depends: | R (≥ 2.14.0), parallel, methods |
| Suggests: | snow, Rmpi |
| Published: | 2012-12-15 |
| Author: | Ben Domingue |
| Maintainer: | Ben Domingue <ben.domingue at gmail.com> |
| License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| NeedsCompilation: | no |
| Citation: | ConjointChecks citation info |
| Materials: | README NEWS |
| CRAN checks: | ConjointChecks results |
| Reference manual: | ConjointChecks.pdf |
| Package source: | ConjointChecks_0.0.9.tar.gz |
| Windows binaries: | r-devel: ConjointChecks_0.0.9.zip, r-release: ConjointChecks_0.0.9.zip, r-oldrel: ConjointChecks_0.0.9.zip |
| OS X binaries: | r-release: ConjointChecks_0.0.9.tgz, r-oldrel: ConjointChecks_0.0.9.tgz |
| Old sources: | ConjointChecks archive |
Please use the canonical form https://CRAN.R-project.org/package=ConjointChecks to link to this page.


| Total net profit | 2.97 | Gross profit | 20.65 | Gross loss | -17.68 |
| Profit factor | 1.17 | Expected payoff | 0.2 | ||
| Absolute drawdown | 1.18 | Maximal drawdown (%) | 9.57 (89.02%) | ||
| Total trades | 15 | Profit trades (% of total) | 9 (60.0%) | Loss trades (% of total) | 6 (40.0%) |
| Long positions (won %) | 9 (55.56%) | Short positions (won %) | 6 (66.67%) | ||
| Largest | profit trade | 5.2 | loss trade | -3.3 | |
| Average | profit trade | 2.29 | loss trade | -2.95 | |
| Minimum | profit trade | 0.43 | loss trade | -2.54 | |
| Maximum | take profit in pips | 69.8 | stop loss in pips | -38.9 | |
| Average | take profit in pips | 27.1 | stop loss in pips | -31.1 | |
| Minimum | take profit in pips | 4.3 | stop loss in pips | -26.5 | |
| Maximum | Reward-Risk | 2.4 | Duration in minutes | 3176 | |
| Average | Reward-Risk | 0.9 | Duration in minutes | 493.9 | |
| Minimum | Reward-Risk | 0.1 | Duration in minutes | 46 | |
| Maximum | consecutive wins (profit in money) | 4.0 (5.09) | consecutive losses (loss in money) | 3.0 (-9.03) | |
| Average | consecutive wins | 2.0 | consecutive losses | 1.0 |
| Total net profit | -0.93 | Gross profit | 10.96 | Gross loss | -11.89 |
| Profit factor | 0.92 | Expected payoff | -0.1 | ||
| Absolute drawdown | -1.39 | Maximal drawdown (%) | 6.59 (126.73%) | ||
| Total trades | 9 | Profit trades (% of total) | 5 (55.56%) | Loss trades (% of total) | 4 (44.44%) |
| Largest | profit trade | 5.2 | loss trade | -3.3 | |
| Average | profit trade | 2.19 | loss trade | -2.97 | |
| Minimum | profit trade | 0.43 | loss trade | -2.54 | |
| Maximum | take profit in pips | 53.2 | stop loss in pips | -38.9 | |
| Average | take profit in pips | 22.7 | stop loss in pips | -31.5 | |
| Minimum | take profit in pips | 4.3 | stop loss in pips | -26.5 | |
| Maximum | Reward-Risk | 1.4 | Duration in minutes | 3176.0 | |
| Average | Reward-Risk | 0.7 | Duration in minutes | 594.9 | |
| Minimum | Reward-Risk | 0.1 | Duration in minutes | 58.0 | |
| Maximum | consecutive wins (profit in money) | 3.0 (3.76) | consecutive losses (loss in money) | 2.0 (-6.05) | |
| Average | consecutive wins | 1.0 | consecutive losses | 1.0 |
| Total net profit | 3.9 | Gross profit | 9.69 | Gross loss | -5.79 |
| Profit factor | 1.67 | Expected payoff | 0.65 | ||
| Absolute drawdown | -2.81 | Maximal drawdown (%) | 2.98 (53.69%) | ||
| Total trades | 6 | Profit trades (% of total) | 4 (66.67%) | Loss trades (% of total) | 2 (33.33%) |
| Largest | profit trade | 3.27 | loss trade | -2.98 | |
| Average | profit trade | 2.42 | loss trade | -2.9 | |
| Minimum | profit trade | 1.33 | loss trade | -2.81 | |
| Maximum | take profit in pips | 69.8 | stop loss in pips | -33.8 | |
| Average | take profit in pips | 33.8 | stop loss in pips | -30.6 | |
| Minimum | take profit in pips | 13.3 | stop loss in pips | -29.6 | |
| Maximum | Reward-Risk | 2.4 | Duration in minutes | 1043.0 | |
| Average | Reward-Risk | 1.1 | Duration in minutes | 342.3 | |
| Minimum | Reward-Risk | Duration in minutes | 46.0 | ||
| Maximum | consecutive wins (profit in money) | 3.0 (8.36) | consecutive losses (loss in money) | 1.0 (-2.81) | |
| Average | consecutive wins | 3.0 | consecutive losses | 1.0 |


We've just upgraded an application with about 20K LOC (Lines Of Code) from Rails 2.3.14 to Rails 3.2.6 and Ruby 1.8.7 to Ruby 1.9.3. Here we'll share some details about the experience and the process we took for the upgrade.
Before the upgrade, it’s advisable to migrate to the latest Rails 2.3 version (2.3.14).
Versions running out of support…
Why upgrade? Ruby 1.8.7 is slowly running out of support and Ruby on Rails 2.3.x is already out of maintenance and out of security support. If wondering which Ruby on Rails version are supported at the moment, it’s 3.2 for bugfixes and 3.1 for security fixes (see this thread discussion on rails-core mailing list).
How to approach the upgrade…
There are several schools of thought regarding this matter:
- Upgrade both your ruby version to 1.9.1+ and your stack to Rails stack simultaniously.
- Upgrade your Rails stack and then upgrade your Ruby version
- Upgrade your Ruby version and then your Rails stack
We went with the first.
This was because although we have a relatively large application, we found that most of the gems being used were easily replaced and had no conflicts with Rails 3.x.
Upgrade now…
The upgrade process to Rails 3.x is rather straight forward as most of the gems have already been ported to support Rails 3.x and many and most have documentated how to do the change. In the rare case that one of your gems does not support rails 3, they are easily replaced.
Here is how we upgraded:
Start by installing the rails_upgrade plugin:
1
|
|
Then run the rake task that does a check for required upgrades:
1
|
|
The output is rather descriptive. It hightlights all the changes required and even links to blog posts for those of you who would like additional information on how to approach the changes.
Run the backup task. This backs up all of your routes, environments, application, etc.
1
|
|
There is a rake task to upgrade all of your routes to the new DSL. We found that we needed to make minor changes after this task was run.
1
|
|
Yet another rake task for generating a Gemfile from config.gem directives.
In Rails 3, bundler handles all your gems and dependencies (Fortunately our app was already using bundler). If yours isn’t the rails_upgrade plugin is nice enough to do this for you!
1
|
|
Now it’s just a matter of upgrading the Rails version ensuring that you have not locked any of the other gems at a version incompatible with your upgrade. Then let bundler do it’s thing:
1
|
|
Then run all the generators for gems like rspec, cucumber and setup spork, guard.
1 2 3 4 |
|
If using cucumber and it’s old web steps, you’ll need to add cucumber-rails-training-wheels to the Gemfile. It’s also good to setup the assets pipeline in order to get the full benefits from newest version of Rails.
From here we went about fixing our specs (aren’t they just fabulous?). We feel this is an important step as it will expose problems and give you deprecation warnings.
We didn’t go as far as to fix every spec and cuke. Just to the point where we felt comfortable upgrading again!
So we generated a new Rails 3.2.6 application in another folder and carefuly moved across the Rails configuration files (production.rb, development.rb, Rakefile, etc).
After some more bug and deprecation warning fixes we have a stable app once again! :)
Now all that’s left to do is clean up the old backup files, old rails scripts/* files and your vendor/plugins and you’re done!
Happy upgrades!


Case study 2018 #Casestudy
Paper 3 – May/Nov 2018
About paper 3
The paper is normally written on the same day as paper 2 and has a duration of 1 hour, with a maximum mark of 30, counting for 20% of the total subject grade. Every year, it is a based on a case study or scenario that changes.
Here is the case study for the May/November 2018 exams.
The topic is Self Driving Cars and Machine Learning
How to study paper 3: http://ib.compscihub.net/paper3
autonomous driving: IB material
Please download our lesson materials to your own computer!
http://pan.rdfz.cn:80/#/link/67792FE072EEF80505C04AD8440C69CF 有效期限截止：2017-12-16
Class assignment:
Overview/ Survey of AI as a whole picture 20171122
Our paper 3 course are going to be in 4 stages:
Stage 1: study MIT course
Learn MIT 6.S094- Deep Learning and Self-Driving Cars Course!
Course website:
https://selfdrivingcars.mit.edu/ ,all slides are videos can be downloaded from this page
There are 5 lectures, each about 90 minutes.
Lecture 1:
learning summary deadline 20171120
Lecture 2:
learning summary deadline 20171206
Lecture 3: learning summary
Lecture 4: learning summary
Lecture 5: learning summary
Stage 2: practical hands-on projects
During course learning, you will do the following 2 projects:
Deep Traffic:
Tutorial:
https://selfdrivingcars.mit.edu/deeptraffic/
project page:
https://selfdrivingcars.mit.edu/deeptrafficjs/ create and evaluate your own NN
DeepTraffic: learning summary + project submission
DeepTesla:
Tutorial:
https://selfdrivingcars.mit.edu/deeptesla/
project page:
https://selfdrivingcars.mit.edu/deepteslajs/
DeepTesla: learning summary + project submission
Stage 3: Baidu apollo auto driving platform
We are going to simulate our own self driving cars in baidu open source platform.
You are going to have a contest for auto drive!
http://apollo.auto/index_cn.html
http://apollo.auto/developer_cn.html
http://mp.weixin.qq.com/s/9pdQU1L0CJwu_pjEIIg--Q
https://m.sohu.com/a/202555419_355140/?pvid=000115_3w_a
Stage 4: summarize all the key points in the case study material
To formulate your own case study booklet + webpage
Then we are going to review all materials to develop an online high school self driving course by ourselves.
https://computersciencewiki.org/index.php/Template_for_student-defined_terms Template for students defined terms
challenges faced:
- understand the basic functioning of CNNs as outlined in the case study (Tom)
- analyse and test the nearest-neighbour and Dijkstra’s algorithms that have been considered for the bus and taxi projects (Arthur)
- be able to respond to the social and ethical challenges to their project (Charles)
- incorporate appropriate technology throughout the town that would support their autonomous vehicles project. (Alex)
social issues:
- the “Trolley Problem”
- the use of neural networks that produce solutions that we don’t really understand (Michael)
- the beta-testing of autonomous car systems on public roads. (Doris)
- understand the basic theory involved in the functioning of the path-fnding algorithms being employed. (Enzo)
- Autonomous (Doris)
- Backpropagation (Tom)
- BigO notation (Doris)
- Bounding boxes (Doris)
- Brute-force (Enzo)
- Convolutional neural networks (CNNs) (Tom)
- Cost function (Arthur)
- Deep learning (Tom)
- Dijkstra’s algorithm (Enzo)
- End-to-end learning (Tom)
- Feature maps (Activation maps) (Alex)
- Filters (Kernels) (Alex)
- Filter stride (Alex)
- Greedy algorithm (Arthur)
- Machine learning (Michael)
- Max-pooling / Pooling (Charles)
- Multi-layer perceptron (MLP) (Arthur)
- Nearest neighbour algorithm (Arthur)
- Overfitting (Charles)
- Point clouds （Doris）
- Receptive field (Alex)
- Sensor Fusion (Charles)
- Society of Automotive Engineers (Enzo)
- Shift invariance (Spatial invariance) (Michael)
- Vehicle-to-vehicle (VTV) protocol (Michael)
- Vehicle-to-infrastructure (VTI) protocol (Michael)


Hurray! School is happy to confirm that you have booked a lesson with us for {{ datetime }} (UTC{{ timeoffset }}) with our teacher {{ teacher }} Looking forward to seeing you online! Our Skype address is super_school


Madras Sappers troops to get ITI degrees after service
by Akhil KadidalBengaluru's largest home-grown military unit, the Madras Engineers Group (MEG), has acquired accreditation as an Industrial Training Institute (IIT) that will help keep its soldiers gainfully employed once they leave the army.
The average shelf life of a soldier in the army is 20 years, the MEG said, adding that the ITI accreditation will impart degrees to many of its soldiers indicating their qualification in various trades, which would make them on a par with tradesmen in the civilian field.
"At the current time, this pilot programme has 155 soldiers within its ambit under four different trade classifications — among them, surveying and electrical work, which they can take into civilian life," explained an officer of the group, wishing anonymity.
The acquisition of this accreditation shows the changing nature of the MEG, as it prepares to commemorate its 239th Corps Day on Monday, indicating its genesis from an imperial-era unit that helped build Bengaluru, to a modern unit of the Indian Army keeping up with the times.
Corps Day is meant to recognise the MEG's forging with the Bombay and Bengal Sappers into the army's Corps of Engineers on November 18, 1780. But the group will mark the day by doing what it always does: going about its business, the officer said.
Notwithstanding demands to supply combat engineers, the unit had, until a few decades ago, a mandate to build infrastructure across urban spaces and in underdeveloped parts of the country. In Bengaluru alone, the group was responsible for the construction of iconic structures such as the Oriental Building on St Mark's Road.


Maxwell changelog
v1.1.4: "george flunk"
- add support for a bunch more charsets (gbk, big5, notably)
- fix Maxwell's handling of kafka errors - previously we were trying to crash Maxwell by throwing a RuntimeException out of the Kafka Producer, but this was a failure. Now we log and skip all errors.
v1.1.3: "the button I push to not have to go out"
This is a bugfix release, which fixes:
- https://github.com/zendesk/maxwell/issues/376, a problem parsing RENAME INDEX
- https://github.com/zendesk/maxwell/issues/371, a problem with the SERIAL datatype
- https://github.com/zendesk/maxwell/issues/362, we now preserve the original casing of columns
- https://github.com/zendesk/maxwell/issues/373, we were incorrectly expecting heartbeats to work under 5.1
v1.1.2: "scribbled notes on red pages"
- pick up latest mysql-connector-j, fixes #369
- fix an issue where maxwell could skip ahead positions if a leader failed.
- rework buffering code to be much kinder to the GC and JVM heap in case of very large transactions / rows inside transactions
- kinder, gentler help text when you specify an option incorrectly
v1.1.1: scribbled notes on blue pages
- fixes a race condition setting the binlog position that would get maxwell stuck
v1.1.0: "sleep away the afternoon"
- much more efficient processing of schema updates storage, especially when dealing with large schemas.
- @lileeyao added --exclude-columns and the --jdbc_options features
- @lileeyao added --jdbc_options
- can now blacklist entire databases
- new kafka key format available, using a JSON array instead of an object
- bugfix: unsigned integer columns were captured incorrectly. 1.1 will recapture the schema and attempt to correct the error.
v1.1.0-pre4: "buck buck buck buck buck buck-AH!"
- Eddie McLean gives some helpful patches around bootstrapping
- Bugfixes for the patch-up-the-schema code around unsigned ints
v1.1.0-pre3:
- forgot to include some updates that back-patch unsigned column problems
v1.1.0-pre2: "yawn yawn"
- fix performance issues when capturing schema in AWS Aurora
- fix a bug in capturing unsigned integer columns
v1.0.1: "bag of oversized daisies"
- fixes a parsing bug with
CURRENT_TIMESTAMP()
v1.0.0: "Maxwell learns to speak"
Since v0.17.0, Maxwell has gotten: - bootstrapping support - blacklisting for tables - flexible kafka partitioning - replication heartbeats - GEOMETRY columns - a whole lotta lotta bugfixes
and I, Osheroff, think the damn thing is stable enough for a 1.0. So there.
v1.0.0-RC3: "C'mon and take it"
pull in support for replication heartbeats. helps in the flakier network environs.
v1.0.0-RC2: "same thing, just without the v"
- fixes the way ALTER DATABASE charset= was handled
- adds proper handling of ALTER TABLE CONVERT TO CHARSET
v1.0.0-RC1: "Richard Buckner's release"
- modifications to the way the bootstrap utility works
- fix a race condition crash bug in bootstrapping
- fix a parser bug
v1.0.0-PRE2: "an embarassment of riches"
1.0.0-PRE2 brings in a lot of changes that got merged while we were testing out PRE1. so, hey.
- Configurable names for the
maxwell
schema database (Kristian Kaufman) - Configurable key (primary key, id, database) into the kafka partition hash function (Kristian Kaufman)
- Configurable Kafka partition hash function (java hashCode, murmur3) (Kristian Kaufman)
- support GEOMETRY columns, output as well-known-text
- add
--blacklist_tables
option to fully ignore excessive schema changes (Nicolas Maquet) - bootstrap rows now have 'bootstrap-insert' type
v1.0.0-PRE1: "drunk conversations with sober people"
- Here we have the preview release of @nmaquet's excellent work around bootstrapping initial versions of mysql tables.
v0.17.0: "wrists of William"
v0.17 is a large bugfix release with one new feature.
- FEATURE: allow specifying an alternative mysql schema-storage server and replication server
- BUGFIX: properly handle case-sensitivity by aping the behavior of the master server. Fixes #230.
- BUGFIX: parse some forms of CHECK( ... ) statements. Fixes #203.
- BUGFIX: many more SQL-parser fixes. We are mostly through some thousands of lines of SQL produced by mysql-test.
v0.16.2: "The best laid plans"
This is a large-ish bugfix release. - Support, with reservations, binlog_row_image=MINIMAL - parser bug: handle table names that look like floating points - parser bug: fix for entity names that have '.', '\', etc in them - handle UPPERCASE encoding names - support UCS2 (start trying to operate ok on the mysql-test suite) - use ObjectOutputStream.reset to fix memory leaks when buffering to disk
v0.16.1: "me and room service"
This is a bug-fix-roundup release: - support ALTER DATABASE - fix a bunch of parse errors: we've started running mysql-test at maxwell and are fixing up failures. - some modifications to the overflow-to-disk logic; we buffer the input and output, and we fix a memory leak
v0.16.0: "Kristian Kaufmann's version"
Version 0.16.0 introduces a feature where UPDATE statements will now show both the new row image and the old values of the fields that changed. Thanks @kristiankaufmann
v0.15.0: "the littlest little city"
- fix a parse problem with indices ordered by ASC/DESC
v0.15.0-RC1: "it's later than you think"
- large transactions now buffer to disk instead of crushing maxwell.
- support ALGORITHM=[algo], LOCK=[lock] for 5.6 alters
v0.14.6: "It's about being American. Sort of."
- fix TIME column support
- fix parsing on millisecond precision column defintions
- fix CREATE SCHEMA parsing
v0.14.5: "false is the new true"
- handle BOOLEAN columns with true/false defaults
v0.14.4: "You'd think we'd be at 1.0 by now, wouldn't you?"
- fixes parsing of "mysql comments" (
/*! .. */
) - More performance improvements, another 10% in a tight loop.
v0.14.3: "Peanuts. My girlfriend thinks about peanuts."
- fixes a regression in 0.14.2 that creates duplicate copies of the "mysql" database in the schema.
v0.14.2: "Maxwell Sandvik 88"
- capture the mysql database along with the rest of the schema. Eliding it was a bad premature optimization that led to crashes when tables in the mysql database changed.
v0.14.1: "be liberal in what you accept. Even if nonsensical."
- fixes a parser bug around named PRIMARY KEYs.
v0.14.0: "the slow but inevitable slide"
This release introduces row filters, allowing you to include or exclude tables from maxwell's output based on names or regular expressions.
v0.13.1: "well that was somewhat expected"
v0.13.1 is a bug fix of v0.13.0 -- fixes a bug where long rows were truncated.
v0.13.0 contains:
- Big performance boost for maxwell: 75% faster in some benchmarks
- @davidsheldon contributed some nice bug fixes around
CREATE TABLE ... IF NOT EXISTS
, which were previously generating new, bogus copies of the schema. - we now include a "scavenger thread" that will lazily clean out old, deleted schemas.
v0.13.0: "Malkovich Malkovich Malkovich Sheldon?"
Lucky release number 13 brings some reasonably big changes:
- Big performance boost for maxwell: 75% faster in some benchmarks
- @davidsheldon contributed some nice bug fixes around
CREATE TABLE ... IF NOT EXISTS
, which were previously generating new, bogus copies of the schema. - we now include a "scavenger thread" that will lazily clean out old, deleted schemas.
This release has a pretty bad bug. do not use.
v0.12.0: "what do I call them? Slippers? Why, are you jealous?"
- add support for BIT columns.
v0.11.4: "13 steps"
this is another bugfix release that fixes a problem where the replication thread can die in the middle of processing a transaction event. I really need to fix this at a lower level, ie the open-replicator level.
v0.11.3: ".. and the other half is to take the bugs out"
this is a bugfix release:
- fix problems with table creation options inside alter statements ( ALTER TABLE foo auto_increment=10
)
- fix a host of shutdown-procedure bugs
the test suite should also be way more reliable, not like you care.
v0.11.2: "savage acts of unprovoked violence are bad"
This is a bugfix release. It includes:
- soft deletions of maxwell.schemas to fix A->B->A master swapping without creating intense replication delay
- detect and fail early if we see binlog_row_image=minimal
- kill off maxwell if the position thread dies
- fix a bug where maxwell could pick up a copy of schema from a different server_id (curse you operator precedence!)
v0.11.1: "dog snoring loudly"
- maxwell gets a very minimal pass at detecting when a master has changed, in which it will kill off schemas and positions from a server_id that no longer is valid. this should prevent the worst of cases.
v0.11.0: "cat waving gently"
This release of Maxwell preserves transaction information in the kafka stream by adding a xid
key in the JSON object, as well as a commit
key for the final row inside the transaction.
It also contains a bugfix around server_id handling.
v0.10.1: "all 64 of your bases belong to... shut up, internet parrot."
- proper support for BLOB, BINARY, VARBINARY columns (base 64 encoded)
- fix a problem with the SQL parser where specifying encoding or collation in a string column in the wrong order would crash
- make table option parsing more lenient
v0.11.0-RC1: "goin' faster than a rollercoaster"
- merge master fixes
v0.10.0: "The first word is French"
- Mysql 5.6 checksum support!
- some more bugfixes with the SQL parser
v0.11.0-PRE4: "except for that other thing"
- bugfix on v0.11.0-PRE3
v0.11.0-PRE3: "nothing like a good night's sleep"
- handle SAVEPOINT within transactions
- downgrade unhandled SQL to a warning
v0.11.0-PRE2: "you really need to name a PRE release something cutesy?"
- fixes for myISAM "transactions"
v0.11.0-PRE1: "A slow traffic jam towards the void"
- fix a server_id bug (was always 1 in maxwell.schemas)
- JSON output now includes transaction IDs
v0.10.0-RC4: "Inspiring confidence"
- deal with BINARY flag in string column creation.
v0.9.5: "Long story short, that's why I'm late"
- handle the BINARY flag in column creation
v0.10.0-RC3: "Except for that one thing"
- handle "TRUNCATE [TABLE_NAME]" statements
v0.10.0-RC2: "RC2 is always a good sign."
- fixes a bug with checksum processing.
v0.10.0-RC1: "verify all the things"
- upgrade to open-replicator 1.3.0-RC1, which brings binlog checksum (and thus easy 5.6.1) support to maxwell.
v0.9.4: "we've been here before"
- allow a configurable number (including unlimited) of schemas to be stored
v0.9.3: "some days it's just better to stay in bed"
- bump open-replicator to 1.2.3, which allows processing of single rows greater than 2^24 bytes
v0.9.2: "Cat's tongue"
- bump open-replicator buffer to 50mb by default
- log to STDERR, not STDOUT
--output_file
option for file producer
v0.9.1: "bugs, bugs, bugs, lies, statistics"
- Maxwell is now aware that column names are case-insenstive
- fix a nasty bug in which maxwell would store the wrong position after it lost its connection to the master.
v0.9.0: Vanchi says "eat"
Also, vanchi is so paranoid he's worried immediately about this.
- mysql 5.6 support (without checksum support, yet)
- fix a bunch of miscellaneous bugs @akshayi1 found (REAL, BOOL, BOOLEAN types, TRUNCATE TABLE)
v0.8.1: "Pascal says Bonjour"
- minor bugfix release around mysql connections going away.
v0.8.0: the cat never shuts up
- add "ts" field to row output
- add --config option for passing a different config file
- support int1, int2, int4, int8 columns
v0.7.2: "all the sql ladies"
- handle inline sql comments
- ignore more user management SQL
v0.7.1: "not hoarders"
- only keep 5 most recent schemas
v0.7.0: 0.7.0, "alameda"
- handle CURRENT_TIMESTAMP parsing properly
- better binlog position sync behavior
v0.6.3: 0.6.3
- better blacklist for CREATE TRIGGER
v0.6.2: v0.6.2
- maxwell now ignores SAVEPOINT statements.
v0.6.1: v0.6.1
- fixes a bug with parsing length-limited indexes.
v0.6.0: kafkakafkakafa
Version 0.6.0 has Maxwell outputting a JSON kafka key, so that one can use Kafka's neat "store the last copy of a key" retention policy. It also fixes a couple of bugs in the query parsing path.
v0.5.0: 0.5.0 -- "People who put commas in column names deserve undefined behavior"
- maxwell now captures primary keys on tables. We'll use this to form kafka key names later.
- maxwell now outputs to a single topic, hashing the data by database name to keep a database's updates in order.
v0.4.0: 0.4.0, "unboxed cat"
v0.4.0 fixes some bugs with long-lived mysql connections by adding connection pooling support.
v0.3.0: 0.3.0
This version fixes a fairly nasty bug in which the binlog-position flush thread was sharing a connection with the rest of the system, leading to crashes.
It also enables kafka gzip compression by default.
v0.2.2: 0.2.2
Version 0.2.2 sets up the LANG environment variable, which fixes a bug in utf-8 handling.
v0.2.1: v0.2.1
version 0.2.1 makes Maxwell ignore CREATE INDEX ddl statements and others.
v0.2.0: 0.2.0
This release gets Maxwell storing the last-written binlog position inside the mysql master itself.
v0.1.4: 0.1.4
support --position_file param
v0.1.3: 0.1.3
Adds kafka command line options.
v0.1.1: 0.1.1
v0.1.1, a small bugfix release.
v0.1: 0.1
This is the first possible release of Maxwell that might work. It includes some exceedingly basic kafka support, and JSON output of binlog deltas.


|
Happy New Year Party of
2015/1/1
US Trip on Dec 2014 (with
My students etc)
Students @ UTaxas, UCDavis, UNL,
Purdue Students
@ Caltech, UCLA, USC
Students @ Stanford
Students @ UTaxas
US Trip on Dec 2014 (with
Faculty)
Prof. P. R. Kumar @TAMU Prof. Gustavo de
Veciana @ UTaxas
Prof. Tie Liu @TAMU Prof. I-Hong Hou @
TAMU
Prof. Dmitri Loguinov @ TAMU
Prof. David Tse@Stanford
University’s visit, Oct 2014
Photo with My First
Billionaire Student, Sept 2014
New Semester Party, Sept
2014
National Scholarship and
Best Presentation Award Celebration, 2014
Group Travel to Xiamen,
Aug 2014
http://iwct.sjtu.edu.cn/Personal/xwang8/Photos.files/2014-xiamentravel.pdf
MobiHoc 2014, Aug 2014
Prof. P. R. Kumar’s
visit, May 2014
Happy Birthday to Luoyi
Fu, May 2014
INFOCOM 2014， April 2014, Toronto, Canada
Graduation, April 2014
Congratulations
to Guanglin Zhang for his daughter, April 2014
Congratulations
to Gaofei Sun for being a father, Feb 2014
Group
party for the new year’s eve, Jan 2014
Prof.
Songwu Lu@UCLA’s visit Dec 2013
Prof.
Baochun Li@UToronto’s visit, Nov 2013
Congratulations
to Jinbei’s National Scholarship Award, Nov 2013
Congratulations to Ma Chuan for IEEE WCSP 2013
Best Paper Award
Mid-Autumn holiday dinner, Sept 2013
Summer Trip to Mountain Hua (华山之旅)，
Aug 2013
Congratulations to Qin Yi’s
Marriage (Honeymoon at The Republic of Maldives, 马尔代夫)，July
2013
Video for Yu Tuo (2012) and Liang Qingkai (2013)
excellent graduation presentation at SJTU
http://ex.jwc.sjtu.edu.cn/Page/videos/v12.html
Graduation, May 2013
Party for Zhang Jinbei’s
first TON paper, March, 2013
Congratulation Video for
Xinxin's marriage
http://www.tudou.com/programs/view/TR3oneT6Nok/
Graduation, May 2012
Prof.
Xiaojun Lin@Purdue, 2012
Yellow
Mountain Trip 2012
Dinner
Party, 2012
Prof.
Mingyan Liu @ UMICH, 2012
Annual
Party 2011
Graduation
May 2011
Prof.
Steven Low@Caltech visit
Prof.
Lili Qiu@UT-Texas visit
Luo Zhe’s
Birthday
Prof.
Pramod Viswanath@UIUC visit
Zhang
Meng’s Birthday, Oct 2011
Crab
Dinner (大闸蟹)， Oct 2011
Qin
Yi’s Birthday, Sept 2011
Graduation,
June 2011
Shangxing’s
birthday, 2011
Guanglin’s birthday, 2011
FLY’s birthday, 2011
Kite Flying, April, 2011
Birthday Dinner, 2010
Mid-Autumn Festival, 2010
Yellow Mountain Trip, Aug 2009
2009 Graduation
IWCT Group’s trip May 2007
My graduation, May 2006
|


|
Simbody
3.6
|
This is the client-side interface to an implementation-independent representation of "Decorations" suitable for visualization, annotation, logging, or debugging but which cannot have any effect on the behavior of a System or the evolution of a Study. More...
Public Types | |
| enum | Representation { Hide = 0, DrawPoints = 1, DrawWireframe = 2, DrawSurface = 3, DrawDefault = -1 } |
| Drawing modes. More... | |
Public Member Functions | |
| DecorativeGeometry () | |
| Default constructor creates an empty handle. More... | |
| ~DecorativeGeometry () | |
| DecorativeGeometry (const DecorativeGeometry &source) | |
| Copy construction is deep; the source object will be cloned to create an independent copy. More... | |
| DecorativeGeometry & | operator= (const DecorativeGeometry &source) |
| Copy assignment is deep; the handle will be cleared if necessary and then the source object will be cloned to create an independent copy. More... | |
| DecorativeGeometry & | setBodyId (int bodyId) |
| By default the geometry should be placed relative to the Ground frame. More... | |
| DecorativeGeometry & | setIndexOnBody (int index) |
| For selection or other purposes, you may want to use this method to store an index that can identify this particular piece of geometry. More... | |
| DecorativeGeometry & | setUserRef (void *userRef) |
| Use this method to store an arbitrary reference pointer with this DecorativeGeometry object. More... | |
| DecorativeGeometry & | setTransform (const Transform &X_BG) |
| This transform shifts the generated polygons with respect to this object's local frame. More... | |
| DecorativeGeometry & | setResolution (Real) |
| Each concrete DecorativeGeometry object is expected to have a default resolution that gets the point across but is cheap to draw and hence probably somewhat "chunky". More... | |
| DecorativeGeometry & | setScaleFactors (const Vec3 &scale) |
| Each concrete DecorativeGeometry object is expected to have a default size around "1", whatever that means for a particular object, and most objects also allow a user-specified size on construction. More... | |
| DecorativeGeometry & | setScale (Real scale) |
| Convenience method to set all three scale factors to the same value. More... | |
| int | getBodyId () const |
| Return the bodyId that was supplied to the most recent setBodyId() call for this DecorativeGeometry object, or zero if that method has not been called. More... | |
| int | getIndexOnBody () const |
| Return the index that was supplied to the most recent setIndexOnBody() call for this DecorativeGeometry object, or -1 if that method has not been called. More... | |
| void * | getUserRef () const |
| Return the pointer value that was supplied to the most recent setUserRef() call for this DecorativeGeometry object, or zero (nullptr) if that method has not been called. More... | |
| Real | getResolution () const |
| Return the current setting of the "resolution" factor. More... | |
| const Transform & | getTransform () const |
| Return the current value of the object's transform. More... | |
| const Vec3 & | getScaleFactors () const |
| Return the current setting of the "scale" factors. More... | |
| DecorativeGeometry & | setColor (const Vec3 &rgb) |
| Request a specific color for this DecorativeGeometry object. More... | |
| DecorativeGeometry & | setOpacity (Real) |
| Request a level of transparency for this DecorativeGeometry. More... | |
| DecorativeGeometry & | setLineThickness (Real) |
| Request an adjustment to the default rendering of lines and curves. More... | |
| const Vec3 & | getColor () const |
| Return the color specified for this object, if any, otherwise Vec3(-1) indicating that the default color will be used. More... | |
| Real | getOpacity () const |
| Return the opacity specified for this object. More... | |
| Real | getLineThickness () const |
| Return the line thickness specified for this object, if any, otherwise return -1 to indicate that the default line thickness should be used. More... | |
| DecorativeGeometry & | setFaceCamera (int shouldFace) |
| Set whether the geometry acts as a billboard, always rotating to face the camera. More... | |
| int | getFaceCamera () const |
| Get whether the geometry acts as a billboard, always rotating to face the camera. More... | |
| DecorativeGeometry & | setRepresentation (const Representation &) |
| Request a particular rendering representation of this DecorativeGeometry object. More... | |
| Representation | getRepresentation () const |
| Returns drawing mode: -1 means "use default"; see above for others. More... | |
| void | implementGeometry (DecorativeGeometryImplementation &) const |
| bool | isOwnerHandle () const |
| bool | isEmptyHandle () const |
| DecorativeGeometry (class DecorativeGeometryRep *r) | |
| bool | hasRep () const |
| const DecorativeGeometryRep & | getRep () const |
| DecorativeGeometryRep & | updRep () |
Protected Attributes | |
| DecorativeGeometryRep * | rep |
This is the client-side interface to an implementation-independent representation of "Decorations" suitable for visualization, annotation, logging, or debugging but which cannot have any effect on the behavior of a System or the evolution of a Study.
DO NOT confuse this with real geometry (like contact geometry) which can represent physically meaningful objects that may interact and change the behavior of a System. However, all geometry objects can generate DecorativeGeometry for their visualization.
Why is there a DecorativeGeometry facility at the System level at all, so far away from any application program? That's because for crude visualization and debugging purposes, the Subsystems themselves are best able to produce some illustrative geometry. Otherwise, you need a special purpose visualization tool which understands what's going on inside each subsystem. If you don't mind taking what you get, just ask each subsystem to generate what it thinks would be helpful visualization. To do that, the subysystems need a way to talk about geometry without knowing anything about how that geometry will eventually get onto someone's screen. And that's why we're here!
Each DecorativeGeometry object has its own local coordinate system and is defined self-consistently but independent of anything else. Clients can associate these with a reference frame (e.g. a body), and place the local frame of the geometry objects on the reference frame, or at a fixed transform from the reference frame. That places the DecorativeGeometry objects in a scene. We support both 3D objects which are attached to actors in the scene, and 2D "screen" objects like titles which are attached to the display rather than the actors. The classes here deal only with the local-frame definitions of the geometric objects, not their placement in the scene.
This is an abstract handle class using the PIMPL design pattern to hide the private implementation. This is effectively an abstract class although the virtual function table is hidden in the private part.
|
inline |
Default constructor creates an empty handle.
| SimTK::DecorativeGeometry::~DecorativeGeometry | ( | ) |
| SimTK::DecorativeGeometry::DecorativeGeometry | ( | const DecorativeGeometry & | source | ) |
Copy construction is deep; the source object will be cloned to create an independent copy.
|
inlineexplicit |
| DecorativeGeometry& SimTK::DecorativeGeometry::operator= | ( | const DecorativeGeometry & | source | ) |
Copy assignment is deep; the handle will be cleared if necessary and then the source object will be cloned to create an independent copy.
| DecorativeGeometry& SimTK::DecorativeGeometry::setBodyId | ( | int | bodyId | ) |
By default the geometry should be placed relative to the Ground frame.
If you want it attached to another reference frame (body), say so here. The geometry should be rendered with respect to the indicated body frame; however, the interpretation of this integer Id is left to the implementation. If you don't set the bodyId yourself it will be zero. For use in Simbody, the bodyId is interpreted as a MobilizedBodyIndex that can be mapped to a MobilizedBody that carries a reference frame.
The bodyId is copied if you copy the DecorativeGeometry object. If you are copying to a different body you'll need to change the bodyId afterwards.
| DecorativeGeometry& SimTK::DecorativeGeometry::setIndexOnBody | ( | int | index | ) |
For selection or other purposes, you may want to use this method to store an index that can identify this particular piece of geometry.
As an alternative, or addition, see setUserRef(). In any case the index is simply stored with the object and returned if you ask for it. If you don't set it the value is -1. The index is copied if you copy the DecorativeGeometry object. Be sure to change it afterwards if that is not the correct index for the copy. Simbody sets this index when DecorativeGeometry is added to a Body.
| DecorativeGeometry& SimTK::DecorativeGeometry::setUserRef | ( | void * | userRef | ) |
Use this method to store an arbitrary reference pointer with this DecorativeGeometry object.
This is particularly useful in selection operations where the rendering of this object has been picked by a user and you want to map it back to some meaningful object in your model. You can also use the setIndexOnBody() method to store some additional identifying information. If you don't set this pointer it will be set to zero (nullptr). This value is stored and returned only; no interpretation is done and the pointed-to object will not be deleted when the DecorativeGeometry object is deleted.
| DecorativeGeometry& SimTK::DecorativeGeometry::setTransform | ( | const Transform & | X_BG | ) |
This transform shifts the generated polygons with respect to this object's local frame.
Subsequent calls with other transforms simply replace the earlier one; they do not accumulate. The default transform is identity and you can call setTransform(Transform()) to put the transform back into its original state. This value affects the generated polygonal data.
| DecorativeGeometry& SimTK::DecorativeGeometry::setResolution | ( | Real | ) |
Each concrete DecorativeGeometry object is expected to have a default resolution that gets the point across but is cheap to draw and hence probably somewhat "chunky".
The resolution parameter here scales that default up or down. The face density in the displayed representation is roughly proportional to this value. 1.0 means to use the default resolution. Values less than 1.0 are lower resolution, and values greater than 1.0 are higher resolution. A value less than or equal to zero here is interpreted as an instruction to "use the default".
| DecorativeGeometry& SimTK::DecorativeGeometry::setScaleFactors | ( | const Vec3 & | scale | ) |
Each concrete DecorativeGeometry object is expected to have a default size around "1", whatever that means for a particular object, and most objects also allow a user-specified size on construction.
The x,y,z scale factors here are given in the object's coordinate frame, and apply to the object as the user built it, or to the default if the user didn't specify a size. The default scaling is 1,1,1 and any value less than or equal to zero here is interpreted as a request to "use the default" in that direction.
|
inline |
Convenience method to set all three scale factors to the same value.
| int SimTK::DecorativeGeometry::getBodyId | ( | ) | const |
Return the bodyId that was supplied to the most recent setBodyId() call for this DecorativeGeometry object, or zero if that method has not been called.
Copy construction and copy assignment copy the bodyId. This is intended to identify the body frame to which this geometry's placement should be relative; with the default zero value meaning the Ground or World frame.
| int SimTK::DecorativeGeometry::getIndexOnBody | ( | ) | const |
Return the index that was supplied to the most recent setIndexOnBody() call for this DecorativeGeometry object, or -1 if that method has not been called.
Copy construction and copy assignment copy the index. Interpretation of this integer is up to the caller.
| void* SimTK::DecorativeGeometry::getUserRef | ( | ) | const |
Return the pointer value that was supplied to the most recent setUserRef() call for this DecorativeGeometry object, or zero (nullptr) if that method has not been called.
Copy construction and copy assignment copy the pointer. Interpretation of this value is up to the caller.
| Real SimTK::DecorativeGeometry::getResolution | ( | ) | const |
Return the current setting of the "resolution" factor.
A return value of -1 means "use the default".
| const Transform& SimTK::DecorativeGeometry::getTransform | ( | ) | const |
Return the current value of the object's transform.
If none has been set this will be the identity transform. Note that this transform specifies how the polygons are placed with respect to the object's local frame.
| const Vec3& SimTK::DecorativeGeometry::getScaleFactors | ( | ) | const |
Return the current setting of the "scale" factors.
A return value of -1 in one of the factors means to "use the default" (which is typically 1) in that direction.
| DecorativeGeometry& SimTK::DecorativeGeometry::setColor | ( | const Vec3 & | rgb | ) |
Request a specific color for this DecorativeGeometry object.
The default is that the color is determined elsewhere. To explicitly request the default, set the color to Vec3(-1). The implementation will check the 0'th element (that is, the "R" element) and if it is less than zero will ignore the other two elements and use the default for all three.
| DecorativeGeometry& SimTK::DecorativeGeometry::setOpacity | ( | Real | ) |
Request a level of transparency for this DecorativeGeometry.
This does NOT affect the generated geometry here. The default is that opacity is determined elsewhere.
| DecorativeGeometry& SimTK::DecorativeGeometry::setLineThickness | ( | Real | ) |
Request an adjustment to the default rendering of lines and curves.
This does NOT affect geometry generated here; it is a request passed on to the renderer which will probably pass it on to the hardware. A value less than or equal to zero here is interpreted as "use the default".
| const Vec3& SimTK::DecorativeGeometry::getColor | ( | ) | const |
Return the color specified for this object, if any, otherwise Vec3(-1) indicating that the default color will be used.
| Real SimTK::DecorativeGeometry::getOpacity | ( | ) | const |
Return the opacity specified for this object.
| Real SimTK::DecorativeGeometry::getLineThickness | ( | ) | const |
Return the line thickness specified for this object, if any, otherwise return -1 to indicate that the default line thickness should be used.
| DecorativeGeometry& SimTK::DecorativeGeometry::setFaceCamera | ( | int | shouldFace | ) |
Set whether the geometry acts as a billboard, always rotating to face the camera.
The default is typically no except for text. If you want 3D text that moves with your model, set this to false. Here 0 means false, 1 means true, and -1 means "use default".
| int SimTK::DecorativeGeometry::getFaceCamera | ( | ) | const |
Get whether the geometry acts as a billboard, always rotating to face the camera.
Returns 0 for no, 1 for yes, -1 for "is using default".
| DecorativeGeometry& SimTK::DecorativeGeometry::setRepresentation | ( | const Representation & | ) |
Request a particular rendering representation of this DecorativeGeometry object.
The default is that the rendering representation choice is made elsewhere.
| Representation SimTK::DecorativeGeometry::getRepresentation | ( | ) | const |
Returns drawing mode: -1 means "use default"; see above for others.
| void SimTK::DecorativeGeometry::implementGeometry | ( | DecorativeGeometryImplementation & | ) | const |
| bool SimTK::DecorativeGeometry::isOwnerHandle | ( | ) | const |
| bool SimTK::DecorativeGeometry::isEmptyHandle | ( | ) | const |
|
inline |
|
inline |
|
inline |
|
protected |


@ParametersAreNonnullByDefault
See: Description
| Class | Description |
|---|---|
| Exceptional<T> | |
| MoreArrays |
Static utility methods for unsorted and preferably small arrays.
|
| MoreLists |
Static utility methods pertaining to
List instances. |
| MoreMaps |
Static utility methods pertaining to
Map instances. |
| MorePreconditions | |
| MoreSets |
Static utility methods pertaining to
Set instances. |
| MoreStrings |
Static utility methods pertaining to
String or CharSequence
instances. |
| MoreSuppliers | |
| MoreThrowables |
Static utility methods pertaining to
Throwable instances. |
| Nullables |
Static utility methods pertaining to
Nullable instances. |
| Optionals | |
| SmartStringBuilder | |
| SmartStringBuilder.Options | |
| SmartStringBuilder.ValueOptions |


Mr. Roboger's Neighborhood
Enter a number of your choice to see a fun message!
(Required) Input number:
(Optional) Name:
Sort by:
Ascending order
Descending order
Submit
Your friendly message:


|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
See:
Description
| Interface Summary | |
|---|---|
| SingleAdaptorPerProxy | Marker interface for interface classes of GAT objects that should only have one adaptor per proxy object, because they have internal state. |
| Class Summary | |
|---|---|
| AdaptorInfo | An object that can hold information about a specific adaptor. |
| GAT | The GAT class is used to create GAT objects. |
| GATContext | An instance of this class is the primary GAT state object. |
| Preferences | An instance of this class represents user preferences for selecting adaptors. |
| TimePeriod | An instance of this class represents a time period. |
| URI | This class implements URIs. |
| Exception Summary | |
|---|---|
| AdaptorNotApplicableException | Thrown when an adaptor is created with parameters that do not make sense. |
| AdaptorNotSelectedException | Deprecated. This Exception will no longer be thrown by GAT adaptors, since an adaptor won't be invoked when it's excluded by the user's preferences. |
| CommandNotFoundException | Thrown when a local command is executed that doesn't exist |
| CouldNotInitializeCredentialException | Thrown when a credential could not be initialized |
| CredentialExpiredException | Thrown when a credential is found, but is expired |
| FilePoststageException | Thrown when something goes wrong during the poststaging |
| FilePrestageException | Thrown when something goes wrong during the prestaging |
| GATInvocationException | This exception is thrown when an invocation on a gat object fails. |
| GATIOException | |
| GATObjectCreationException | This exception is thrown when the GAT engine cannot instantiate a gat object. |
| InvalidUsernameOrPasswordException | This exception is thrown when the supplied username and/or password is not valid for an adaptor. |
| MethodNotApplicableException | Thrown when an adaptor is selected, but it cannot execute the requested operation. |
This package contains classes and interfaces which are used
throughout the GAT application API. The most important classes are
GATContext
and
Preferences
.
An instance of the class GATContext
is
the primary GAT state object and is used to broker resources on behalf of
the user.
An instance of the class Preferences
represents user preferences and is used to indicate the user's
preferences in selecting which adaptors are apropos for the user's needs.
|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |


Cosmic Age Converter
Please Enter Your Age
(optional) Enter Your Sex
Let's Explore!
Mercury
Venus
Earth
Mars
Jupiter
Saturn
Uranus
Neptune
Pluto
Each year here is
Earth years.
You would be
years old on
.
Based on average life expectancies,
.


| Critical |
This event means numerous devices on the network are affected by the event. Everyone who can should stop what they are doing and focus on fixing the problem. |
| Major |
A device is completely down or in danger of going down. Attention needs to be paid to this problem immediately. |
| Minor |
A part of a device (a service, and interface, a power supply, etc.) has stopped functioning. The device needs attention. |
| Warning |
An event has occurred that may require action. This severity can also be used to indicate a condition that should be noted (logged) but does not require direct action. |
| Indeterminate |
No Severity could be associated with this event. |
| Normal |
Informational message. No action required. |
| Cleared | This event indicates that a prior error condition has been corrected and service is restored |


Properties
- AllowReorder - Determines whether or not to allow drag/drop reordering. It is automatically set to true if ReorderTemplate is present
- CallbackCssStyle - A callback CSS style
- DataKeyField - The primary key field for data
- DataKeys - The indexed collection of data keys (one key for each row when data is bound)
- DataSourceID - ID of the data source to use to populate this control
- DragHandleAlignment - Sets the drag handle relative to the item row (Top, Bottom, Left, or Right)
- DragHandleTemplate - A template for the drag handle that a user clicks and drags to reorder items
- EditItemIndex - An index of an item that is currently in Edit mode. The default value is -1, which means no item is in edit mode
- EditItemTemplate - A template to display for a row that is in Edit mode
- EmptyListTemplate - A template to show when a list has no data. This item is not data-bindable
- HasFooter - Determines whether or not the list has a footer
- HasHeader - Determines whether or not the list has a header
- HasSeparators - Determines whether or not the list has separators
- InsertItemTemplate - A template to show for adding new items to the list
- ItemInsertLocation - Determines where new items are inserted into the list (Beginning or End)
- Items - A collection of reodered list items
- ItemTemplate - A template to display for items in the list
- LayoutType - The type of a layout to apply to items. If Table is selected, the DragHandleAlignment property is used to lay out items in relation to the drag handle. If not, items are simply wrapped in the Panel controls and can be positioned using CSS
- PostBackOnReorder - Determines whether or not to do a postback on reordering
- ReorderTemplate - A template to use as a visible drop element when a user is dragging an item. This template is not data-bindable
- RepeatedItemCount - Determines the count of repeated items
- ShowInsertItem - Determines whether or not the InsertItem is shown. If this value is not set and the InsertItemTemplate is set, the default value is set to true
- SortOrderField - The name of a column that controls the sort order of rows in the data base
Methods
- GetItemStyle(itemType, repeatIndex) - Returns style of the reorder list item
- RenderItem(itemType, repeatIndex, repeatInfo, writer) - Renders an item
- UpdateItem(rowIndex) - Updates the specified row with its current values


My name is Vinh Nguyen, and I am studying computer science at the University of Waterloo. Currently, I am in first year, aspiring to become a full stack developer. I have experience with HTML, CSS, Javascript and Java. I am comfortable with jQuery and at the moment, I am learning back end development
Interests:


I am a chemist. I have synthesized, extracted and tried many drugs. My occupation gives me the perfect cover to pursue my long-time interest in drugs, and my knowledge of their dosages, effects, and dangers is thorough and well informed. The few times in my life when I have bought or bartered for a drug, I have analyzed it to ensure its identity and purity, and if it wasn't 100% pure, I cleaned it up myself until it sparkled.
I don't mention this because I want to show off, but rather to convey that I am not a careless person, and that I have always taken precautions to assure my safety. This is the story of a simple drug that has caused me to systematically dismantle my rationality and question my humanity.
As a teenager I had been prescribed Dexedrine (amphetamine) for attention deficit disorder, and experimented with crushing and snorting the tablets. It was amusing for a while, but eventually left me feeling irritable and dull. I assumed that methamphetamine would be similar to amphetamine, and so I never got the urge to try it.
Flash forward to my mid-20's. As a graduate student, in organic chemistry, I had the opportunity to make all of the drugs that I wanted. I extracted pure cocaine from coca leaves and made the nicest crack I've ever seen. Lots of fun, leaves me feeling down for a day. I would smoke it and think occasionally about doing some more a couple of days afterwards, but never got the urge to binge non-stop. Opiates were very anti-addictive for me. I would take them and the thought wouldn't cross my mind to do any more.
Every once in a while, when the chemistry that I am *supposed* to be doing isn't going well, I cheer myself up with an easy 'extracurricular' project. A friend had given me a big bottle of pure pseudoephedrine, hoping that some day I would get around to converting it to methamphetamine and give him part of the product. I am kind of a drug elitist, and methamphetamine never really piqued my interest.
One lazy weekend I made about 25 g of pristine methamphetamine HCl, gave half to my friend (who had been waiting patiently the whole time), and put my half into a jar and forgot about it for almost a year.
My wife and I had been married for almost five years, and as far as I can remember we were happy. We planned on starting a family and living the typical domestic dream as soon as I finished my degree and got a job. Things were looking up, and I was close to finishing and moving into an exciting new phase of our life together.
Then for some unknown reason, I decided to pull that jar off of the shelf. Maybe just to look at the pretty pearlescent crystals, but as soon as I saw it, I felt strangely drawn to it. I weighed 20 mg out and ground it into a fine powder, and casually blew a line of it, revelling in the 'ghettoness' of doing meth. A friend of mine had plunged deeply into meth addiction -- hallucinations, paranoia, bugs under his skin and all, but I was a responsible person! I had tempted fate with all kinds of other drugs that were supposedly highly addictive and dangerous, and emerged without a scratch.
As the wave of energy coursed through me for the first time, I felt awakened and alive. I jogged around the block, euphoric and motivated. Work seemed to happen effortlessly, which for me was a great sensation. This stuff seemed to be much more effective than Dexedrine at keeping my focus, and it made me happy and sharp rather than irritable and dull like Dexedrine or Ritalin always did.
And then a couple of hours later a strange new feeling came over me. The jar of crystals seemed to be beckoning me, urging me to take some more. I was still high from the first hit, but I felt compelled to do some more. So I did. I blew another line, ignoring the nasty alkaloid drip in the back of my throat. I still remember thinking that such behavior was uncharacteristic for me. When trying something new, I liked to give it a solid mid-range dose, and then ride it out completely before trying it again. But something was different this time, and not 5 minutes after blowing my second line, I did a third. My heart raced and my eyes widened, but I was still feeling invincible and invigorated. That night, I didn't get to sleep until 5 AM, and only then after taking a couple Ambien to knock myself out for a couple of hours.
The next morning, I still felt amped, and the only thing I could think of was getting back to my little miracle jar. I generally prefer to snort drugs rather than smoke them, but I knew that smoking meth was much more effective than insufflation, and so my second day as a fearless tweaker I weighed 15 mg into a test tube and vaporized it over a bunsen burner. I drew the smoke deeply into my lungs and held it there for about ten seconds. The flavor wasn't nearly as nasty as I imagined it would be, and the vapor was pleasantly cool. As I exhaled the pretty white smoke, a pulse of electricity passed through me. This time, the energy was focused and I could feel the gush of dopamine and serotonin switching on every neuron in a way that even crack hadn't before.
I told my friends nonchalantly about my newfound hobby, and they gave me funny looks, but didn't express any concern as I had always demonstrated good judgment before. At the end of my first week, I tallied up my use, and found that every day I had taken one or two hits more than the day before.  I wasn't getting the same rush from smoking that I did the first few times, but I didn't care because I still felt good, and I was getting more work done than I had ever before in my life.
Weeks later, I would talk to my wife and realize that I wasn't really listening to her. I was amped and productive, but I lost the ability to think clearly. When asked for my opinion on something, I couldn't come up with one. I stopped telling jokes and making smalltalk with my friends and coworkers. When somebody would ask me if I was okay, I would get defensive and find myself resenting them for poking their nose into my business. Once I realized that my use was eliciting concern, I hid it, sneaking off to the bathroom or the janitor's closet every half hour to take a hit or three.
The pattern of my smoking developed into a cycle of 3 days of near sleeplessness followed by 12 hours of crashing during the day. Soon I was up to around 10-15 hits a day, with each hit less effective than the last. I was lucky to eat a bowl of cereal or a glass of juice each day, and my low fluid intake made my urine turn dark orange. In my first month I lost 25 lbs, and I was beginning to experience auditory and visual hallucinations. My sex drive vanished and I was incapable of getting an erection.
After a couple of months carrying on like this, my emotions were in ruins. I no longer cared what anybody thought, and I acted without regard for the feelings or wellbeing of anybody including my wife. The meth now only barely kept me above abject depression, and when I eventually had to crash due to physical exhaustion, the only thought in my mind was that a hit was exactly what I needed to feel better again.
Rather than accept the help of the people around me who love me, I pushed them away, resenting them for questioning my ability to take care of myself, and for getting between me and my false source of comfort. When my wife was brought to tears by her not understanding the change that had come over me, I questioned my love for her. In several months, methamphetamine had replaced the love that I had built over five years. Eventually, when she gave me an ultimatum, rightfully asking that I start demonstrating my love, or at least explain myself, in my atrophied mind I decided that I must not really love her anymore and told her as much.
I had completely lost control over myself, and decided that a chemical was more important to me than the love of my life, all in less than four months. I am still separated from her, and as a testament to the influence meth still has over me, I am incapable of remembering the happy times that we shared, and even as I write this today I am coming down from the three hits that I took this morning. My supply is dwindling, and I pray that I have the strength to resist making more.
It's easy to think that I am untouchable and that no drug can allow me to lose control, but at least in my case, no amount of knowledge or good intentions could have saved me once I found the perfect drug to monopolize my life. Methamphetamine turned me into a pathetic, heartless, lying monster and the saddest and most amazing thing is that I wasn't even aware that it was happening until it was too late.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Select:
Canada
Poland
Latvia
Bulgaria
Russia
Ukraine
Germany
United Kingdom
Sweden
Australia
United States
Norway
Multiple select:
Canada
Poland
Latvia
Bulgaria
Russia
Ukraine
Germany
United Kingdom
Sweden
Australia
United States
Norway
Select with autocomplete:
Canada
Poland
Latvia
Bulgaria
Russia
Ukraine
Germany
United Kingdom
Sweden
Australia
United States
Norway
Input with autocomplete:


{{ thisCampaign.strCampaignName }}
- Fund Me: $ {{ thisCampaign.strFundMe }}.00
- Funded : $ {{ thisCampaign.strReceivedFunds }}.00
{{ thisCampaign.strCampaignName }}
{{ thisCampaign.strCampaignIntro }}
{{ thisCampaign.strCampaignBody }}


- ORANGE - Static variable in class org.barghos.core.color.HDRColor3
-
Orange Color constant.
- ORANGE - Static variable in class org.barghos.core.color.HDRColor4
-
Orange Color constant.
- ORANGE - Static variable in class org.barghos.core.color.LDRColor3
-
Orange Color constant.
- ORANGE - Static variable in class org.barghos.core.color.LDRColor4
-
Orange Color constant.
- org.barghos.core - package org.barghos.core
-
This packet of barghos contains basic functionalities that are also used in the derived packets.
- org.barghos.core.api - package org.barghos.core.api
-
This package contains all interfaces from barghos-core.
- org.barghos.core.api.color - package org.barghos.core.api.color
-
This package contains all interfaces for colors.
- org.barghos.core.api.tuple - package org.barghos.core.api.tuple
-
This package contains all interfaces for tuples.
- org.barghos.core.color - package org.barghos.core.color
-
This package contains all basic implementations of LDR/HDR RGB/RGBA colors.
- org.barghos.core.event - package org.barghos.core.event
-
- org.barghos.core.pool - package org.barghos.core.pool
-
This package contains all pools for the barghos-core packet.
- org.barghos.core.pool.color - package org.barghos.core.pool.color
-
This package contains pools for colors.
- org.barghos.core.pool.tuple - package org.barghos.core.pool.tuple
-
- org.barghos.core.resource - package org.barghos.core.resource
-
- org.barghos.core.tuple - package org.barghos.core.tuple
-
This package contains all basic implementations of tuples.


{% extends "base.html" %} {% block dropdown %} {% endblock %} {% block content %}
| Brother: | School Status: | Brother Status: | Major: | Minor: |
| {{ brother }} | {{ brother.get_school_status_display }} | {{ brother.get_brother_status_display }} | {{ brother.major }} | {{ brother.minor }} |
| Brother: | Hometown: | Birthday: | T-Shirt Size: |
| {{ brother }} | {{ brother.hometown }} | {{ brother.birthday }} | {{ brother.t_shirt_size }} |
| Brother: | Campus Groups: |
| {{ brother }} |
{% for group in brother.groups.all %}
{{ group.name }}:
{% endfor %}
|


This is code from a simple echo server and client posted to the Newsgroup by Ray Tripamer (ray@asci.com). I've commented it to make it a little clearer why its doing what it is and to serve as something of an example of what you have to do to implement socket servers and clients in Tcl.
#!/usr/local/bin/tclsh7.5 # Read data from a channel (the server socket) and put it to stdout # this implements receiving and handling (viewing) a server reply proc read_sock {sock} { set l [gets $sock] puts stdout "ServerReply:$l" } # Read a line of text from stdin and send it to the echoserver socket, # on eof stdin closedown the echoserver client socket connection # this implements sending a message to the Server. proc read_stdin {wsock} { global eventLoop set l [gets stdin] if {[eof stdin]} { close $wsock ;# close the socket client connection set eventLoop "done" ;# terminate the vwait (eventloop) } else { puts $wsock $l ;# send the data to the server } } # open the connection to the echo server... set eshost "scoda" set esport 9999 # this is a synchronous connection: # The command does not return until the server responds to the # connection request set esvrSock [socket $eshost $esport] #if {[eof $esvrSock]} { # connection closed .. abort } # Setup monitoring on the socket so that when there is data to be # read the proc "read_sock" is called fileevent $esvrSock readable [list read_sock $esvrSock] # configure channel modes # ensure the socket is line buffered so we can get a line of text # at a time (Cos thats what the server expects)... # Depending on your needs you may also want this unbuffered so # you don't block in reading a chunk larger than has been fed # into the socket # i.e fconfigure $esvrSock -blocking off fconfigure $esvrSock -buffering line # set up our keyboard read event handler: # Vector stdin data to the socket fileevent stdin readable [list read_stdin $esvrSock] # message indicating connection accepted and we're ready to go puts "EchoServerClient Connected to echo server" puts "...what you type should be echoed." # wait for and handle either socket or stdin events... vwait eventLoop puts "Client Finished"Another option is to do an asynchronous client connection
set esvrSock [socket -async $eshost $esport]
# .... do whatever that we can't connect synchronously...
# resync with the connection,
#Socket becomes writable when connection available
fileevent $esvrSock writable { set connect 1 }
vwait connect
# will 'block' here till connection up (or eof or error)
fileevent $esvrSock writable {} ;# remove previous handler
if {[eof $esvrSock]} { # connection closed .. abort }
# set translation, buffering and/or blocking modes
fconfigure $esvrSock -translation {auto crlf} -buffering line
...
#!/usr/local/bin/tclsh7.5
set svcPort 9999
# Implement the service
# This example just writes the info back to the client...
proc doService {sock msg} {
# puts $sock "echosrv:$l"
puts $sock "$l"
}
# Handles the input from the client and client shutdown
proc svcHandler {sock} {
set l [gets $sock] ;# get the client packet
if {[eof $sock]} { ;# client gone or finished
close $sock ;# release the servers client channel
} else {
doService $sock $l
}
}
# Accept-Connection handler for Server.
# called When client makes a connection to the server
# Its passed the channel we're to communicate with the client on,
# The address of the client and the port we're using
#
# Setup a handler for (incoming) communication on
# the client channel - send connection Reply and log connection
proc accept {sock addr port} {
# if {[badConnect $addr]} {
# close $sock
# return
# }
# Setup handler for future communication on client socket
fileevent $sock readable [list svcHandler $sock]
# Read client input in lines, disable blocking I/O
fconfigure $sock -buffering line -blocking 0
# Send Acceptance string to client
puts $sock "$addr:$port, You are connected to the echo server."
puts $sock "It is now [exec date]"
# log the connection
puts "Accepted connection from $addr at [exec date]"
}
# Create a server socket on port $svcPort.
# Call proc accept when a client attempts a connection.
socket -server accept $svcPort
vwait events ;# handle events till variable events is set
Socket below means STREAM socket in AF_INET (Internet domain)
What's a socket? A socket is bidirectional communication channel. Bidirectional, because it allows sending and receiving. A socket is identified from the process point of view by a handle (file descriptor in UNIX). On the network side it's identified by a network host address AND a port number. It's created by the system call socket(2). When socket(2) returns a valid handle (file descriptor), it has already assigned the network address and a dynamically allocated port number that isn't in use by another socket on your local system. This combination of host address and port number is called the socket name.
To connect two sockets, to form something like a bidirectional pipe, a program must call connect(2) with the socket name of the remote socket given in sockaddr. Because it's very difficult, to guess the dynamic port number, there is way to change the 'name' of a socket. The system call to do that is bind(2). Bind has some restrictions. The port number you want must not be in use by any other socket on the local system. Thus, it's guaranteed, that all socket names all over the world are unique and name only one single handle in a process (as long as all the host addresses are unique). Only the superuser can bind to a port number below 1024 as these are allocated as 'system' services and we don't want to allow spoofing of these..
Since normally a server is sitting somewhere around, waiting for a client that wants to connect, it's usual to give the server socket a fixed name. Fixed name in this case means, that the server will create a socket and bind it to the current host address and a fixed port number. The file /etc/services is a list of hopefully all the port numbers for standard services
So let's fire up the server.
In Tcl, all the three steps are performed if you issue
socket -server {command} portPort must be the port number the client will use in it's connection request (see below).
What we now have is a server socket. Back to C. This socket becomes readable when a client wants to connect. But the readability in this case doesn't mean that you can read data from it. It's a hack to tell the server process that there's someone knocking at the door. So let's take a look at the client.
A client process too creates a socket. But it doesn't care about the socket name (except for special purposes that deal with security). So it leaves it untouched and directly tries to establish the connection using connect(2). The connect(2) system call needs the remote socket name of the server socket. The server explicitly 'named' it's socket (host+port), so this isn't any problem.
At this moment, the server socket becomes readable. The server now calls accept(2) on it's socket. accept(2) creates a new socket, again with a dynamically assigned port number. This new socket and the socket in the client form the bidirectional pipe. accept(2) returns the handle (file descriptor) of the new socket and fills a buffer with the socket name of the clients socket.
In Tcl, the two steps for the client (calling socket(2) and connect(2)) are performed if you issue
socket host port
What you might miss in Tcl is the accept step. But it's there. Because accept(2) normally blocks until there is at least one client that wants to connect, Tcl enforces that you go into the event driven world. After you created the server socket, Tcl controls the readability of the server socket in it's event loop. If it becomes readable, i.e. a client wants to connect, Tcl does the accept(2) and calls command with all the information given by accept(2). So command will be invoked one time for every client that connects to your server. But this requires, that the server get's back into the event loop. So you have to switch the communication socket in the server (that one given as argument to command) to nonblocking I/O and do everything in fileevent handlers.
It is important, that a server process is completely controlled by the event loop (default for Tk, using vwait in Tcl).


Fixed-Price - Entry Level ($) - Est. Budget: $400 - Posted 1 month ago
Want to develop an online home delivery app on which local stores can enlist themselves and the users can order products from any store of their choice the order details should get directed to the delivery boys who can buy and deliver the products. T ... more
Proposals: 15 to 20 Number of freelancers needed: 2
Client: Payment verified $600+ spent United States
Fixed-Price - Entry Level ($) - Est. Budget: $400 - Posted 1 month ago
Want to develop an online home delivery app on which local stores can enlist themselves and the users can order products from any store of their choice the order details should get directed to the delivery boys who can buy and deliver the products. T ... more
Proposals: 15 to 20 Number of freelancers needed: 2
Client: Payment verified $600+ spent United States
Fixed-Price - Entry Level ($) - Est. Budget: $400 - Posted 1 month ago
Want to develop an online home delivery app on which local stores can enlist themselves and the users can order products from any store of their choice the order details should get directed to the delivery boys who can buy and deliver the products. T ... more
Proposals: 15 to 20 Number of freelancers needed: 2
Client: Payment verified $600+ spent United States
Fixed-Price - Entry Level ($) - Est. Budget: $400 - Posted 1 month ago
Want to develop an online home delivery app on which local stores can enlist themselves and the users can order products from any store of their choice the order details should get directed to the delivery boys who can buy and deliver the products. T ... more
Proposals: 15 to 20 Number of freelancers needed: 2
Client: Payment verified $600+ spent United States
Fixed-Price - Entry Level ($) - Est. Budget: $400 - Posted 1 month ago
Want to develop an online home delivery app on which local stores can enlist themselves and the users can order products from any store of their choice the order details should get directed to the delivery boys who can buy and deliver the products. T ... more
Proposals: 15 to 20 Number of freelancers needed: 2
Client: Payment verified $600+ spent United States
Fixed-Price - Entry Level ($) - Est. Budget: $400 - Posted 1 month ago
Want to develop an online home delivery app on which local stores can enlist themselves and the users can order products from any store of their choice the order details should get directed to the delivery boys who can buy and deliver the products. T ... more
Proposals: 15 to 20 Number of freelancers needed: 2
Client: Payment verified $600+ spent United States


Since your last bill, the campaign, {{ campaignBillingStats['campaign_name'] }}, has had {{ campaignBillingStats['total_sessions'] }}
USSD sessions, {{ campaignBillingStats['total_shares'] }} sharing SMSs, and {{ campaignBillingStats['total_welcomes']}} welcome SMSs.