|
CS 229 Machine Learning Final Projects, Autumn 2015
|
Navigation
Best Project Awards
Public Vote
-
Your Next Personal Trainer [poster] [report]
Brandon Garcia, Computer Science
Russell Kaplan, Computer Science
Aditya Viswanathan, Computer Science
Athletics & Sensing Devices
-
Sign Language Recognition using Temporal Classification [poster] [report]
Fahim Dalvi, Computer Science
Hardie Cate, Computer Science
Zeshan Hussain, Computer Science
Audio & Music
-
Blind Audio Source Separation Pipeline and Algorithm Evaluation [poster] [report]
Kai-Chieh Huang, Music
Wisam Reid, Music
Doron Roberts-Kedes, Music
Computer Vision
-
Smart Adaptive Sampling for Photorealistic Rendering: Learning Samplers for Monte Carlo Ray Tracing [poster] [report]
Winnie Lin, Computer Science, Mathematics
Timothy Wu, Symbolic Systems, Biology
Finance & Commerce
-
Prediction of Post-Collegiate Earnings [poster] [report]
Keith Wyngarden, Computer Science
Monica Agrawal, Computer Science
Priya Ganesan, Computer Science
General Machine Learning
-
Playing Tetris with Genetic Algorithms [poster] [report]
Jason Lewis, Computer Science
Life Sciences
-
Learning with Difference of Gaussian Features in the 3D Segmentation of Glioblastoma Brain Tumors [poster] [report]
Zhao Chen, Physics
Darvin Yi, Biomedical Informatics
Tianmin Liu, Physics
Natural Language
-
Improved Search for Explore Courses [poster] [report]
Sam Redmond, Computer Science, Mathematics
Eddie Wang, Computer Science
Physical Sciences
-
Landslides Susceptibility Mapping In Nepal Using Spatial Feature Vectors [poster] [report]
Markus Zechner, Petroleum Engineering
Kyu Koh Yoo, Petroleum Engineering
Muhammad Almajid, Petroleum Engineering
Theory & Reinforcement
-
Deep Reinforcement Learning for Flappy Bird [poster] [report]
Kevin Chen, Electrical Engineering
All Projects
Athletics & Sensing Devices
Activity Recognition Using Cell Phones [
poster] [
report]
Sanjay Srinivas, Travis Geis, Rohit Talreja
College Football Bowl Predictor [
poster] [
report]
Austin Childs, Evan Cheshire, Thomas Leung
Condition Monitoring Using Accelerometer Readings [
poster] [
report]
Cheryl Danner, Kelly Gov, Simon Xu
Draft Kings and Queens [
poster] [
report]
Eric Hermann, Adebia Ntoso
Finding the Optimal Fantasy Football Team [
poster] [
report]
Paul Steenkiste
Human Activity Recognition Using Wearable Devices Sensor Data [
poster] [
report]
Chenying Zhang, Shutong Zhang, Jason Wu
Human Activity Recognition: Accelerometers Unveil Your Actions [
poster] [
report]
Yinglan Ma, Yunong Jiang, Zhongjie Li
Identifying injury-inducing factors in baseball pitchers [
poster] [
report]
Prafull Sharma, Jae Jang, Raejoon Jung
Localization Through Wireless Access Point Channel State Information [
poster] [
report]
Alexander Dewing, Xiaonan Tong, Robert Sun
Machine Learning for Daily Fantasy Football Quarterback Selection [
poster] [
report]
Peter Dolan, Hassan Karaouni, Alec Powell
Predicting Final Scores of Major League Baseball Games [
poster] [
report]
Ben Weems, Nicolas Cserepy, Robbie Ostrow
Predicting Momentum Streaks in the NBA [
poster] [
report]
Brian Mittl, Vijay Singh, Whitney LaRow
Predicting Optimal Game Day Fantasy Football Teams [
poster] [
report]
Travis Swenson, Glenn Sugar
Predicting Short-Range Displacements From Sensor Data [
poster] [
report]
Jun-Ting Hsieh, Maurice Shih
Predicting Win Percentage and Winning Features of NBA Teams [
poster] [
report]
Nattapoom Asavareongchai, Evan Giarta
Sign Language Recognition using Temporal Classification [
poster] [
report]
Fahim Dalvi, Hardie Cate, Zeshan Hussain
Using Pre-NBA Data to Predict Early NBA Career Success [
poster] [
report]
Chris House, Ryan Edwards, Nathan Lord
Win Some, Learn Some [
poster] [
report]
Ivan Suarez Robles, Joseph Wu
Audio & Music
A Soundhound for the sound of hounds [
poster] [
report]
Robert Colcord, Ethan Geller, Matthew Horton
Acoustic Texture Classification [
poster] [
report]
Gabriele Carotti-Sha, Daniel Villamizar, Evan Penn
Automatic Playlist Generation [
poster] [
report]
Xingting Gong, Xu Chen
Automatic Rhythmic Notation from Single-Voice Audio Sources [
poster] [
report]
Shashwat Udit, Jack O'Reilly
Blind Audio Source Separation Pipeline and Algorithm Evaluation [
poster] [
report]
Kai-Chieh Huang, Wisam Reid, Doron Roberts-Kedes
Classification of Irish and Scandinavian Folk Music by Dance Type [
poster] [
report]
Elliot Kermit-Canfield, Iran Roman
Clustering Bach chorale melodies [
poster] [
report]
Hope Casey-Allen, Diego Hernandez, Jian Yang Lum
Clustering Music by Genres [
poster] [
report]
Kyuwon Kim, Rick Kim, Wonjin Yun
Electric Guitar Pickups Recognition [
poster] [
report]
Warren Jonhow Lee, Yi-Chun Chen
Experimenting with Algorithmic Composition Techniques [
poster] [
report]
Horia Margarit, Jessica Kuo
For-TUNE teller [
poster] [
report]
Gerard Touma, Sambhav Jain, Mridul Krishna
How Fire is Your Mixtape? [
poster] [
report]
Pedro Garzon, Vinson Luo, Reynis Vazquez-Guzman
Intelligent Rapid Voice Recognition Using Neural Tensor Networks, Support Vector Machines, and Reinforcement Learning [
poster] [
report]
Aashna Garg, Davis Wong Wertheimer, James Pitkin Cranston
Learning Instrument Identification [
poster] [
report]
Lewis Guignard, Greg Kehoe
Machine Learning in Automatic Music Chords Generation [
poster] [
report]
Ziheng Chen, Jie Qi, Yifei Zhou
Melody Extraction from Generic Audio Clips [
poster] [
report]
Connie Zeng, Hansohl Kim, Thaminda Edirisooriya
Offline Music Recommendation [
poster] [
report]
Emilien Dupont, William Zhang, Isabelle Jueli Rao
Predicting Musical Eras of Songs [
poster] [
report]
Yueyao Zhu, Jiaqi Xue, Yandi Li
Predicting Song Popularity [
poster] [
report]
Edric Kyauk, Edwin Park, James Pham
Predicting a Song's Path and Success Through the Billboard Hot 100 [
poster] [
report]
Cristian Cibils, Zach Meza, Greg Ramel
SpeakerTagger: a Speaker Diarization System [
poster] [
report]
Jordan Cazamias, Naoki Eto, Ye Yuan
Spectral Transition-Based Playlist Prediction [
poster] [
report]
Christopher Billovits, Rahul Prabala, Nipun Agarwala
Speech to Song Classification [
poster] [
report]
Emily Graber
Spoken Character Recognition [
poster] [
report]
Tian-Shun Jiang, Jason Liu, Yuki Inoue
Top 100 Song Classifier [
poster] [
report]
Gabriel Garza, Julien Kawawa-Beaudan
Computer Vision
3D model classification using convolutional neural network [
poster] [
report]
JunYoung Gwak
Automated Image Artifact Identification in Dark Energy Survey CCD Exposures [
poster] [
report]
Joseph DeRose, Warren Morningstar
Automatic Image Colorization [
poster] [
report]
Varun Ramesh, Harrison Ho
Calorie Estimation from Food Images [
poster] [
report]
Kaixi Ruan, Lin Shao
Classification of Novel Genres by Cover and Title [
poster] [
report]
Holly Chiang, Connie Wu, Yifan Ge
Classification of photographic images based on perceived aesthetic quality [
poster] [
report]
Sean Shi, Jeff Hwang
Classifying Non-Manual Markers in American Sign Language [
poster] [
report]
Alex Kuefler, Pamela Toman
Dynamic Eye Gaze Tracking and Prediction for Foveated Rendering and Retinal Blur [
poster] [
report]
Kushagr Gupta, Terry Kong, Suleman Kazi
Emotion Calssification on Face Images [
poster] [
report]
Mikael Jorda
Eyes around the world - Learning to alert and cluster live webcams [
poster] [
report]
Jee Ian Tam, Sean Rafferty
Facial Keypoint Detection [
poster] [
report]
Khashayar Khosravi, Seyedshahabaddin Mirjalili, Ashkan Esmaeili
FarmX: Leaf based disease identification in farms [
poster] [
report]
Kushal Chawda, Chanchal Hazra
Finding Poverty in Satellite Images [
poster] [
report]
Neal Jean, Rachel Luo
From Grayscale to Color: Digital Image Colorization using Machine Learning [
poster] [
report]
Jim Andress, Cristian Zanoci
Generating Motion Capture Animation for Arbitrary Rigs [
poster] [
report]
Marianna Neubauer, Shannon Kao
Handwritten Digit Recognition through Unsupervised Learning [
poster] [
report]
Qingyang Xu, Xinyi Jiang, Huy Pham
Learning of visualization of object recognition features and image reconstruction [
poster] [
report]
Chenyue Meng, Qiao Tan, Yuanlin Wen
Learning to recognize English sentence [
poster] [
report]
Chengshu (Eric) Li
Matching Handwriting With Its Author [
poster] [
report]
Ziran Jiang, Aditya Mundada
Object Classification Using RGB-D Data for Vision Aids [
poster] [
report]
Trisha Lian, Anthony Pelot, Kyle Chiang
Object classification for autonomous vehicle navigation of Stanford campus [
poster] [
report]
Sarah Thornton, Heather Blundell
Pedestrian Detection with RCNN [
poster] [
report]
Matthew Chen
Photo aesthetics evaluation system: an application of CNN and SVM [
poster] [
report]
Chen Qian, Zhi Li
Planet Labels - How do we use our earth? [
poster] [
report]
Timon Ruban, Vincent Sitzmann, Rishabh Bhargava
Smart Adaptive Sampling for Photorealistic Rendering: Learning Samplers for Monte Carlo Ray Tracing [
poster] [
report]
Winnie Lin, Timothy Wu
Spacecraft Navigation in Cluttered, Dynamic Environments Using 3D Lidar [
poster] [
report]
Andrew Bylard, Shreyasha Paudel
User Demographics and Profile Pictures as a Predictor of Attractiveness in AI Meets Online Dating Online Dating Profiles [
poster] [
report]
Huyen Nguyen, Tucker Leavitt, Duncan Wood
Using CNNs to Estimate Depth from Stereo Imagery [
poster] [
report]
Jayant Thatte, Skanda Shridhar, Tyler Jordan
Vision-Based Hand Hygiene Monitoring in Hospitals [
poster] [
report]
Boya Peng, Zelun Luo, Zuozhen Liu
Whale Detection & Identification from Aerial Photography [
poster] [
report]
Aditya Mahajan, Adrien Perkins
What can we learn from a movie's color? [
poster] [
report]
Ethan Chan, Rajarshi Roy, John Lee
What's your Type? Personalized Predictions of Facial Attractiveness [
poster] [
report]
Sam Crognale, Danish Shabbir
Your Next Personal Trainer [
poster] [
report]
Brandon Garcia, Russell Kaplan, Aditya Viswanathan
Finance & Commerce
A pairs trading strategy for GS/MS using machine learning [
poster] [
report]
Jiayu Wu
Anonymous Marketplace Vendor Exit Scam Detection [
poster] [
report]
Kevin Kiningham, Michael Graczyk
Are you open? [
poster] [
report]
Vaibhav Aggarwal, Narenkumar Pandian
Credit Estimation for Chinese Construction Companies [
poster] [
report]
Christopher Wang
Discriminative market price model for Magic: The Gathering cards based on card mechanics [
poster] [
report]
Neeraj (Neil) Sapra, Benjamin Pastel, Dustin Fink
Examining Long-Term Trends in Company Fundamentals Data [
poster] [
report]
Michael Dickens
Exploring Commodity and Stock Volatility using Topic Modeling on Historical News Articles -- Application to Crude Oil Prices [
poster] [
report]
Olufolake Ogunbanwo, Mustafa Al Ibrahim, Rui Jiang
Exploring the Structure of Private Foundations [
poster] [
report]
Thomas Dudley, Alex Fetisova, Darren Hau
Financial Magic [
poster] [
report]
Boris Perkhounkov, Cooper Frye, Emily Franklin
Forecast sales using store, promotion, and competitor data [
poster] [
report]
Tejinder Singh, Chris Jee
Forecasting Drug Store Sales Using Machine Learning Techniques [
poster] [
report]
Xi Wu, Hongyu Xiong, Jingying Yue
Forecasting Rossmann Store sales using store, promotion, and competitor data in machine learning techniques [
poster] [
report]
Xiuzhen Guo, Sen Lin, Eric Yu
Gradient Boosting Trees to Predict Store Sales [
poster] [
report]
Maksim Korolev
How can machine learning help stock investment? [
poster] [
report]
Xin Guo
KPI-Driven Predictive ML Models Approach Towards Municipal Budgeting Optimization [
poster] [
report]
Bo Shen, Bas Hendri, Kun Shao
Long-Short Strategy Using Bank Analysts Recommendations [
poster] [
report]
Thomas Ayoul, Nicolas Meiller, Alexandre Elkrief
Multifaceted Predictive Algorithms in Commodity Markets [
poster] [
report]
Blake Jennings, Vineet Ahluwalia, Hunter Ash
Portfolio Recommendation System [
poster] [
report]
Berk Eserol
Predicting Default Rate of a Lending Club User [
poster] [
report]
Simon Dae-oong Kim, Genki Kondo, Shun Chang
Predicting Financial Market Stability Using News and Google Trends Data [
report]
Anusha Balakrishnan, Kalpit Dixit
Predicting Future Employment, Productivity, and Income [
poster] [
report]
Jake McKinnon
Predicting Intraday Market Volatility Using Macroeconomic Headline News [
poster] [
report]
William Wright, Carolyn Campbell, Rujia Jiang
Predicting Movie Revenue from Pre-Release Data [
poster] [
report]
Thomas Lampo, Lili Yang, Benjamin Flora
Predicting Rossman Store Sales [
poster] [
report]
David Beam, Mark Schramm
Predicting Short-term Market Response to Liquidity Shocks [
poster] [
report]
Kartikey Asthana, Roberto Colon Quinones, Joshua Romero
Predicting Stock Prices through Textual Analysis of Web News [
poster] [
report]
Daniel Gallegos Ortega, Alice Hau
Predicting Student Earnings After College [
poster] [
report]
Miranda Strand, Tommy Truong
Predicting Valuations of Venture Capital-backed Private Companies [
poster] [
report]
Caroline Frost, Tigran Askaryan
Predicting business ratings on Yelp [
poster] [
report]
Yevhen Bochkov, Travis Gingerich
Predicting political ideology using campaign finance data [
poster] [
report]
Keri McKiernan, Joe Napoli
Prediction of Airline Ticket Price [
poster] [
report]
Ruixuan Ren, Yunzhe Yang, Shenli Yuan
Prediction of Post-Collegiate Earnings [
poster] [
report]
Keith Wyngarden, Monica Agrawal, Priya Ganesan
Prediction of Time of Peak Exchange Rate [
poster] [
report]
Lucio Dery, Charles Mulemi
Rossman Store Sales Prediction [
poster] [
report]
Tian Yang, Zhuyuan (Julia) Liu
Rossmann Store Sales Prediction [
poster] [
report]
Chenghao Wang, Yang Li
Rossmann Time Series [
poster] [
report]
Allen Huang, Jesiska Tandy
Rossmann store sales quantity prediction [
poster] [
report]
Vladimir Sazontyev
Sales Prediction for Rossmann Drug Stores [
poster] [
report]
Brian Knott, Andrew Simpson, Hanbin Liu
Sales Prediction with Time Series Modeling [
poster] [
report]
Gautam Shine, Sanjib Basak
Short Term Price Prediction in Financial Markets [
poster] [
report]
Kameshwar Chinta, William Yearick, Dharan Althuru
Using Decision Tree to predict repeat customers [
poster] [
report]
Jia En Nicholette Li, Jing Rong Lim
Using machine learning for medium frequency derivative portfolio trading [
poster] [
report]
Abhijit Sharang, Chetan Rao
General Machine Learning
A Personalized Company Recommender System for Job Seekers [
poster] [
report]
Ruixi Lin, Yue Kang, Yixin Cai
A study of ensemble methods in machine learning [
poster] [
report]
Kwhangho Kim, Jeha Yang
An Application of Machine Learning to Native Advertisements [
poster] [
report]
Kevin Grogan, Quinlan Jung
Analyzing Donations to 2016 Presidential Candidates [
poster] [
report]
Raphael Palefsky-Smith
Bitcoin UTXO Lifespan Prediction [
poster] [
report]
Robert Konrad, Stephen Pinto
Can Machines Recognize Expertise? [
poster] [
report]
Camila Pereira
Crime classification and prediction in San Francisco city [
poster] [
report]
Abhilash Sunder Raj, Addarsh Chandrasekar, Poorna Kumar
Gimme Food by The Yelping Stones [
poster] [
report]
Mark Kwon
Incorporating Nesterov Momentum into Adam [
report]
Timothy Dozat
ML in Network Intrusion Detection [
poster] [
report]
Liru Long, Xilei Wang, Xiaoxi Zhu
Machine Hound: Following an olfactory trail [
poster] [
report]
Marguerite Graveleau, Jacques de Chalendar, Clement Renault
Machine Learning Applied to Visual Odometry [
poster] [
report]
Boyang Zhang
Machine Learning Equalization Techniques for High Speed PAM4 Fiber Optic Communication Systems [
poster] [
report]
Ilya Lyubomirsky
MasterChef [
poster] [
report]
Vinaya Polamreddi, Juhi Amitkumar Naik
Modeling MOOC Dropouts [
poster] [
report]
Gaurav Aggarwal, Degao Peng
Neighborhood and Review Score Prediction for Airbnb Listings [
poster] [
report]
Emily Tang, Kunal Sangani
Online Detection of Code Reuse Attacks [
poster] [
report]
Yifan Lu, Christopher Hansen
Playing Tetris with Genetic Algorithms [
poster] [
report]
Jason Lewis
Plead or Pitch? Predicting the Performance of Kickstarter Campaigns [
poster] [
report]
Nihit Desai, Raghav Gupta, Karen Truong
Predict Employees' Computer Access Needs in Company [
poster] [
report]
Xin Zhou, Wenqi Xiang
Predicting A Student's Performance [
poster] [
report]
Vani Khosla
Predicting Bill Passage [
poster] [
report]
Pablo Hernandez, Noah Makow, Kyle Gulshen
Predicting Bill Votes in the House of Representatives [
poster] [
report]
Scott Kravitz, Tom Henighan
Predicting Congressional Bill Outcomes [
poster] [
report]
Arushi Jain
Predicting Recidivism [
poster] [
report]
Jeremy Kim, Miguel Camacho
Predicting Roles in "The Resistance" Board Game [
poster] [
report]
Tristan Breeden
Predicting Running Ability from Race History [
poster] [
report]
Matthew Millett
Predicting Wine Varietals from Reviews [
poster] [
report]
Kate Willison, Eli Ben-Joseph, Ron Tidhar
Predicting a Happier Place [
poster] [
report]
Lisa Wang, Karen Wang, Grant Means
Predicting quality of wine based on chemical attributes [
poster] [
report]
Zhenxiang Zhou, Yi Liu, Amelia Lemionet
Predicting winning rate of DotA2 games [
poster] [
report]
Kuangyan Song, Tianyi Zhang, Chao Ma
Prediction algorithm for crime recidivism [
poster] [
report]
Luis Ceferino, Julia Andre, Thomas Trinelle
Quantifying decision impact in MOBA games [
poster] [
report]
Edward Gan, Justin Huang, Frederic Ren
Recognizing network traces of various web services [
poster] [
report]
Alexander Schaub, Alexandros Hollender
Recommendation System Leveraging Heterogeneity of Relations in a Social Network [
poster] [
report]
Jayanth Ramesh, Pulkit Agrawal, Agrim Gupta
RoboCop: Crime Classification and Prediction in San Francisco [
poster] [
report]
John Cherian, Mitchell Dawson
Robust Streaming Video Traffic Classification [
poster] [
report]
Jordan Ebel
Service Capacity Estimation Through Telemetry Analysis [
poster] [
report]
Daniel De Freitas Adiwardana, Joe Wang
SocialSense: Quantifying Social Media Linkage and Malicious Intent Across the Web [
poster] [
report]
Joel Shackelford, Alexander Spizler, Yang Xu
Top-Rated Series Characterization and Audience Rating Prediction [
poster] [
report]
Yiwen Xu, Yushu Chai, Zihui Liu
Using Facebook Profiles to Predict Sexual Orientation [
poster] [
report]
Nikhil Bhattasali, Esha Maiti
What makes a good muffin? [
poster] [
report]
Ivan Ivanov
Life Sciences
Advanced machine learning techniques for thyroid cancer diagnosis [
poster] [
report]
Chenjie Yang, Jingtao Xu, Tiffany Liu
Advanced machine learning techniques for thyroid cancer diagnosis [
poster] [
report]
Akash Maharaj, Raghu Mahajan, Rajiv Krishnakumar
Automated Pathology through Machine Learning [
poster] [
report]
Sean Fischer
Automating Neurological Disease Diagnosis Using Structural MR Brain Scan Features [
poster] [
report]
Allan Raventos, Moosa Zaidi
Biomarker identification for early-stage diabetes diagnosis in mice liver cells [
poster] [
report]
Vincent Deo
Classication of Behavioral Decision using Pre-decision Neural Activity [
poster] [
report]
Blue Sheffer, Bora Erden
Classification of High Grade vs Low Grade GBM Tumor [
poster] [
report]
Vincent-Pierre Berges, Victor Storchan, Kevin Luo
Classifications of Subject Motion for Improved Reconstruction of Dynamic Magnetic Resonance Imaging [
poster] [
report]
Feiyu Chen
Computer aided detection of endolymphatic hydrops to aid the diagnosis of Meniere’s disease [
poster] [
report]
George Liu
Data fusion for predicting cancer survival [
poster] [
report]
Yufei Zhang, Linbailu Jiang, Siyi Peng
Detecting gene-by-environment interaction in coronary artery disease [
poster] [
report]
Bosh Liu, Robert Kirby
Determination of cell types in Chicken utricle [
poster] [
report]
Yanli Wang
Diagnosing Type II Diabetes [
poster] [
report]
Madeleine Gill, Katherine Holsteen, Haju Kim
Doctor Bayes [
poster] [
report]
Anthony Perez, Leonid Keselman, Brandon Beckhardt
ECG R-R Interval Estimation [
poster] [
report]
David Zeng
Identifying Cardiomyocytes from Acoustic Measurements [
poster] [
report]
Alex Lemon
Kernel learning framework for cancer subtype analysiswith multi-omics data integration [
poster] [
report]
Thomas Lau, Shivaal Roy, William Bradbury
Learning the topology of the genome from protein-DNA interactions [
poster] [
report]
Suhas Rao
Learning with Difference of Gaussian Features in the 3D Segmentation of Glioblastoma Brain Tumors [
poster] [
report]
Zhao Chen, Darvin Yi, Tianmin Liu
Machine Learning Classifier for Preoperative Diagnosis of Benign Thyroid Nodules [
poster] [
report]
Joshua Yoon, Blanca Villanueva
Medical Record Understanding [
poster] [
report]
Daniel Thirman
Medical image retrieval from 3D lesion content [
poster] [
report]
Blaine Rister
Methods for Prediction of Type 2 Diabetes [
poster] [
report]
Duyun Chen, Yaxuan Yang, Junrui Zhang
Needle Tumor Puncture Detection Using a Force and Position Sensor [
poster] [
report]
Nathan Usevitch, Joey Greer
Predicting Corporate Influence Cascades In Health Care Communities [
poster] [
report]
Shouzhong Shi, Chaudary Zeeshan Arif, Sarah Tran
Predicting ecological traits from fungal genomes [
poster]
Joe Wan
Predicting the progression of the ALS disease in Patients [
poster] [
report]
Michael Black, Neeharika Madduri, Durga Ganesh
Prediction of clinical outcomes in breast invasive carcinoma using omics data [
poster] [
report]
Anna Shcherbina, Alice Yu, Hunter Boyce
Reducing False Arrhythmia Alarms in the Intensive Care Unit [
poster] [
report]
Katarina Miller, Andrew Ward, Daniel Miller
Scanning probe microscopy based on reinforcement learning [
poster] [
report]
Eric Yue Ma
Techniques for Local Ancestry Inference in Admixed Populations [
poster] [
report]
Naveen Arivazhagan, Hyeji Kim, Edwin Yuan
The Price is Right? Estimating Medical Costs with Machine Learning [
poster] [
report]
Samantha Steele, Sarah Rosston
Thyroid Dysfunction: Prediction and Diagnostics [
poster] [
report]
Alexandra Pappas, Albert "Ya-Po" Lui
Tracing SPN dendritic branches and classifying their neuronal inputs [
poster] [
report]
Eddy Albarran, Xulu Sun
Unsupervised Learning for Analyzing Brain Tumors [
poster] [
report]
Teun de Planque, Guillermo Angeris, Christopher Elamri
Unsupervised learning of emergent structure in simulated neural data [
report]
Amelia Christensen
Using DNA methylation to predict white blood cells frequencies in tumor tissue samples [
poster] [
report]
Marcos Prunello, Ying-Cheng (Chris) Lee
Using Spectral Clustering to Sample Molecular States and Pathways [
poster] [
report]
Surl-Hee (Shirley) Ahn, Johannes Birgmeier
Natural Language
A Movie Recommender System from Tweets Data [
poster] [
report]
Mengyi Gao, Xiang Zhang
A Personal Conversational Model [
poster] [
report]
Lawrence Murata, Ana-Maria Istrate
Algorithmic Trading of Cryptocurrency Based on Twitter Sentiment Analysis [
poster] [
report]
Stuart Colianni, Stephanie Rosales, Michael Signorotti
Analysis on Yelp User Preference [
poster] [
report]
Yingran Xu, Jia Le Xu
Anomaly Detection in Lengthy Legal Documents [
poster] [
report]
Yanshu Hong, Tian Zhao
Application of Deep Learning in Yelp Review Analysis [
poster] [
report]
Yimin Liu, Ke Xu, Renfeng Jiang
Application of Unsupervised Learning For Business Segmentation, Using Yelp Data [
poster] [
report]
Charles Zhang, Eric Wang
Applying adversarial examples to text classification of natural language [
poster] [
report]
Onkur Sen
Assessing and Implementing Automated News Classification Algorithms [
poster] [
report]
Francisco Romero, Zahra Koochak
Autoranking Amazon Reviews [
poster] [
report]
Ilker Karakasoglu, Ivan Gozali
Autotagging and Evaluating Text Relevance [
report]
Chayakorn Pongsiri, Pakapark Bhumiwat, George Supaniratisai
Building an AI for the Wikipedia Game [
poster] [
report]
Zack Swafford, Alex Barron
Clustering a Customer Base Using Twitter Data [
poster] [
report]
Vanessa Friedemann
Contextual Code Completion [
poster] [
report]
Chinmayee Shah, Subhasis Das
Cuisine Classification from Ingredients [
poster] [
report]
Boqi Li, Mingyu Wang
Detecting Sarcasm In Text: An Obvious Solution to a Trivial Problem [
poster] [
report]
Chun-Che Peng, Mohammad Lakis, Jan Wei Pan
Divergent Recommendations for Yelp Users [
poster] [
report]
Sigberto Alarcon Viesca, Shifan Mao, Christopher Heung
Don't Feed the Trolls: Insult Detection on Online Communities [
poster] [
report]
Stephanie Tsai, Arun Kulshreshtha, Matthew Volk
Drug and Chemical Compound Named Entity Recognition using Convolutional Networks [
poster] [
report]
Mark Berger
Extracting keywords from emails using distributed word vectors [
poster] [
report]
Irving Rodriguez
Fast Tree-Structured Recursive Neural Networks [
poster] [
report]
Anand Avati, Nai-Chia Chen
Feature Engineering on Machine Comprehension [
poster] [
report]
Danyang Wang, Wei Chen, Xiaoshi Wang
Finding Influencers within Fuzzy Topics on Twitter [
poster] [
report]
Tal Stramer
How well does language-based community detection work for Reddit? [
poster] [
report]
Urvashi Khandelwal, Silei Xu
Improved Search for Explore Courses [
poster] [
report]
Sam Redmond, Eddie Wang
Language Identification from Text Documents [
poster] [
report]
Priyank Mathur, Arkajyoti Misra, Emrah Budur
Learning to Rank Comments Within Subreddit Submissions [
poster] [
report]
Jeff Setter, Don Mai, Alex Jin
Machine Learning Methods for News Popularity Prediction [
poster] [
report]
Xuandong Lei, Hongsheng Fang, Xiaoti Hu
Multiclass Emotion Analysis of Social Media Posts [
poster] [
report]
Alec Glassford, Berk Coker
Named Entity Recognition and Classification using Word Vectors [
poster] [
report]
Rajkiran Veluri, Zia Ahmed
Predicting Answer Quality on Community Q&A Websites [
poster] [
report]
Tin-Yun Ho, Ye Xu
Predicting Yelp Star Ratings Based on Text Analysis of User Reviews [
poster] [
report]
Junyi Wang
Predicting and Evaluating the Popularity of Online News [
poster] [
report]
He Ren, Quan Yang
Predicting and Identifying Hyperlinks in Wikipedia Articles [
poster] [
report]
Cindy Wang, Annie Hu, Neel Guha
Prediction of Yelp Ratings Based on Reviewer Comments Segmented by Business Type [
poster] [
report]
Kent Lee, James Ross
Question Answering on the bAbI Dataset using LSTMs [
poster] [
report]
Vincent Su
Rating the Raters: Bias Analysis on Yelp Reviews for Improved Star Rating System [
poster] [
report]
Qiaojing Yan, Haitong Li, Jingwei Ji
Similar language detection [
poster] [
report]
Daniel Levy, Shenglan Qiao
The Lowest Form of Wit: Identifying Sarcasm in Social Media [
poster] [
report]
Vivian Hsu, Saachi Jain
User review sentiment classification and aggregation [
poster] [
report]
Steven Garcia, Ping Yin
Physical Sciences
A Clustering Algorithm for Reduced Order Modeling of Shock Waves [
poster] [
report]
Tina White
Analyze Rainfall Frequency and Deriving IDF Curve Automatically [
poster] [
report]
Kanghee Lee
Data-Driven Discovery and Design of Superionic Lithium Conductors for High Performance Solid-State Lithium Ion Batteries [
poster] [
report]
Aditi Krishnapriyan, Austin Sendek
Data-driven fatigue crack evaluation based on wave propagation data [
poster] [
report]
Seongwoon Jeong
Declassification of the D-Wave One Quantum Machine [
poster] [
report]
Andrew Guo, Brian Wai
Design of Optical Reflection Spectrum using Machine Learning [
poster] [
report]
Tyler Hughes, Yu (Jerry) Shi
Earthquake-Induced Structural Damage Classification Algorithm [
poster] [
report]
Amory Martin, Max Ferguson
Energy Consumption Prediction for Optimum Storage Utilization [
poster] [
report]
Jose Ignacio del Villar Ortiz Mena, Eric Boucher, Robin Schucker
Estimating the Effect of Climate Change on Sea Level Rise [
poster] [
report]
Mala Alahmadi, Jan Kolmas
Event Identification in Continuous Seismic Data [
poster] [
report]
Alex Hakso, Fatemeh Rassouli
Gaussian Process Regression with K-means Clustering for Very Short-Term Load Forecasting of Individual Buildings at Stanford [
poster] [
report]
Carol Hsin
Identifying Volcanoes from Elevation Profile [
poster] [
report]
Elizabeth Culbertson
Identifying the Higgs Boson [
poster] [
report]
Anton Apostolatos, Guy Amdur, Leonard Bronner
Jet Charge Characterization at the LHC [
poster] [
report]
Krishna Soni, Thomas Dylan Rueter
Landslides Susceptibility Mapping In Nepal Using Spatial Feature Vectors [
poster] [
report]
Markus Zechner, Kyu Koh Yoo, Muhammad Almajid
Learning Chemical Trends in Heterogeneous Catalysis [
poster] [
report]
Charlie Tsai, Xinyan Liu, Leo Shaw
Model reductions in quantum optical devices [
poster] [
report]
Tatsuhiro Onodera, Edwin Ng, Gil Tabak
On the relation between solar flares and corona mass ejections, from a machine learning view [
poster] [
report]
Ruizhu Chen, Xin Zheng
Pile up subtraction and jet energy measurement in particle physics using machine learning [
poster] [
report]
Jiakun Li, Yujia Zhang, Vein Kong
Predicting Contrast Performance for the Gemini Planet Imager [
poster] [
report]
Jean-Baptiste Ruffio, Victoria Borish, Katherine Sytwu
Pulse-type classification for the Large Underground Xenon dark matter search [
poster] [
report]
Kelly Stifter
Reliability of seismic data for hydrocarbon reservoir characterization [
poster] [
report]
Geetartha Dutta
The classification of Higgs Boson Tau-Tau decay in the presence of severe background noise through neural networks [
poster] [
report]
Mohit Shridhar
Theory & Reinforcement
Deep Reinforcement Learning for Flappy Bird [
poster] [
report]
Kevin Chen
Deep Reinforcement Learning with POMDPs [
poster] [
report]
Maxim Egorov
Estimating Jumping Heights of a Small Legged Robot based on Terrain Properties, Control Efforts, and Tactile Sensor Measurements [
poster] [
report]
Amy Kyungwon Han, Tae Myung Huh, Lawrence Kim
Feature Cost Sensitive Random Forest [
report]
Anna Thomas
Generalized Newton-Stein Method [
report]
Murat Erdogdu
Learning Summary Statistics for Approximate Bayesian Computation [
poster] [
report]
Yiwen Chen
Learning to Play Atari Games [
poster] [
report]
David Hershey, Blake Wulfe
Memory Neural Networks [
poster] [
report]
David Biggs, Andrew Nuttall
Parameter Estimation with MOCK algorithm [
poster] [
report]
Bowen Deng
Reinforcement Learning For Adaptive Traffic Signal Control [
poster] [
report]
Jeffrey Glick
Subspace Clustering [
report]
Weiwei Feng
Swing Copters AI [
poster] [
report]
Monisha White, Nolan Walsh
Training Minesweeper [
poster] [
report]
Luis Gardea, Griffin Koontz, Ryan Silva
UAV Coordination Tables via Learning from Various Logic Tables [
poster] [
report]
Rachael Tompa


Welcome to Stauf's
Through a combination of art and science we roast each specific coffee bean to its most desirable flavor characteristic.
Through a combination of art and science we roast each specific coffee bean to its most desirable flavor characteristic.


Speech
The Parliamentary Under-Secretary of State for Schools talks about Roman Catholic schools and the benefits academy status can offer to faith schools.
Thank you so much.
I am delighted to be here. It makes a very nice change not to be in the House of Lords, where we’ve been holed up for the last fortnight, sleeping bags at the ready, while voting - or not voting - on the electoral reform bill.
Your timing is immaculate, as this morning we published the new Education Bill. I will say a bit more about that, and about academies in particular, in a moment.
But first of all, I just want to say a very big thank you for all that you do.
No one becomes a head or a teacher for fame, money or anything other than a deep conviction that education enriches children’s lives and helps them reach their full potential. I know how hard you all work - day in, day out - to increase opportunity and raise aspiration.
My mother was a teacher, so I was brought up to understand the importance of learning; how education transforms lives; and how books have the power to set people free. And I’m glad to say that at nearly 84, she is still going on doing a day a week to her local primary school to help children with their reading.
I also don’t need convincing about the fantastic job that Catholic schools in particular do.
The CES ‘Value Added’ report, published earlier this month, spells it out.
Your GCSE and Key Stage 2 results are consistently above the national average. Seventy-three per cent of your secondaries and 74 per cent of your primaries are rated outstanding or good by Ofsted, compared with 60 and 66 per cent nationally. And your leadership quality, teacher training and CVA scores far outstrip your peers.
So it was right that his holiness Pope Benedict celebrated your achievements on his visit last year, as part of the Year of Catholic Education - and it was a great treat to be at the Big Assembly at St Mary’s in Twickenham as the sun fought with the clouds, to hear his thoughtful speech about faith, society and schools.
I know your theme today is ‘stewards of the common good’. And I am sure that we have a shared purpose in seeking to promote the common good, working to overcome the situation whereby too many children have their life chances determined by where they are born.
We know the figures, but they bear repetition:
Gaps in attainment start young and get worse as children grow older. These figures are a reproach to us all.
And just as the Christian churches took the lead in setting up the first schools to teach the poor long before the State stepped in, I hope that we can work with you on the next stage of education reform in England.
Let me say a few words about our overall approach.
In a way, I hope the title of our white paper - The Importance of Teaching - says it all.
I know that there has been a lot of emphasis on the structural reforms we have introduced - the academies and Free Schools. But structures without people are nothing. We all know that the key to good schools are great heads and great teaching. So the purpose of the structural change is to give heads and teachers greater freedom and more control over their own destiny, so that they can get on with doing what they do best - teaching and running their schools.
Our white paper makes clear there is much to admire and build on in the current system: hundreds of outstanding schools, tens of thousands of great teachers, the best generation of heads and leaders ever.
But too many children are still being let down. There are still too many weak schools in deprived areas. Teaching is only rated as satisfactory in half of our schools. And other countries have not been standing still.
Over the last decade in the PISA world rankings for 15-year-olds, we have fallen from fourth to sixteenth in science, seventh to 25th in literacy, and eighth to 28th in maths.
So there is a big job to do.
That is why we have announced plans to strengthen teacher recruitment and training - expanding Teach First, increasing cash incentives for shortage subjects, making initial training more classroom-based, and creating a new national network of teaching schools and university teaching schools.
And we need to do more to support teachers in the classroom.
So in our Education Bill published today, we plan to introduce tougher discipline powers - so teachers can search for any items banned by the school rules, making it easier for heads to expel violent pupils; protecting teachers from malicious allegations; and removing 24 hours notice on detentions so schools, if they want to, can impose immediate punishments.
We also have plans for a slimmed-down but strong National Curriculum, more robust assessment and inspection, a fairer funding system, the new Pupil Premium, and to move away from central targets and red tape.
But I know there has been a lot of focus on academies - and that’s what I want to turn to now.
I am enthusiastic about academies for two main reasons.
First, because of their track record to date. Not all are perfect and not all have done equally well. But taking their results as a whole, their GCSE scores are improving at almost double the national average. And in terms of ethos, they have shown how to turn around the deep-seated culture of defeatism and low expectations in so many of our poorest areas.
Second, because evidence from around the world shows that there is a very strong correlation between top-performing education systems and autonomy at school-level - where heads and principals are free to determine how pupils are taught and how budgets are spent.
So while we want to carry on with the last government’s approach to use academies to raise standards in underperforming schools, we are also opening up the programme to all primary, secondary and special schools who want to convert.
What has been particularly exciting in recent months has been the number of approaches that we have been having from schools wanting to become academies in chains or clusters. I recognise that at the time of the Academies Act last summer the key message coming across was about autonomy. What has become clear to me when talking to schools is that perhaps even more powerful than autonomy is the combination of autonomy and partnership. That seems to me to combine the advantages of professional freedom, with the real move that there has been in recent years towards schools working together and learning from each other.
We don’t want academies to be seen as islands entire unto themselves - nor do the academy principles that I talk to. That is one of the reasons why we said in the Academies Act that we expected outstanding schools which wanted to convert to partner another local school which would benefit from their support.
As you may know, in November we announced a further opening up of the programme by saying that any school could apply for academy status, regardless of its Ofsted rating, if it applied as part of a group with a school that was rated as outstanding or good with outstanding features. There has been a very encouraging response to that, as schools have come up with their own ideas for working together - groups of secondaries, or primaries, or primaries clustered around a secondary, perhaps with a special school. This development seems to me to go with the grain of the culture of schools, and the fact that it is bubbling from the bottom up makes me think that it is all the more powerful.
So far as faith schools are concerned, we’ve also been clear that conversion to academy status would be on an ‘as is’ basis.
From the outset, I have been keen that faith schools should be free to become academies but equally clear I hope, that we have no wish to undermine the special status, values, freedoms, assets or anything else that is a part of a being a Catholic school or part of a family of Catholic schools.
So I understand why the CES was initially cautious about academies. I think that ‘beware governments bearing gifts’ is a good principle. Catholic schools have been here a lot longer than all of us and will be around a lot longer than this Government - I think I am allowed to say that without being accused of disloyalty. So you are right to think about the long term and to look before you leap.
To date, 204 new academies have opened since September - that’s at least one every working day - doubling the number open when the Coalition came to power and meaning more than one-in-ten secondaries overall are now academies.
And we expect many more to follow. Earlier this morning I was at a conference for special schools who want to become academies, where there was a great deal of enthusiasm.
And I know that many of you are also interested in the freedoms that academy status provides - over 150 Catholic schools have formally expressed an interest in converting.
The Department and the CES have been working closely together, and I believe we have made good progress in providing the reassurance the CES has sought.
We’ve helped to fund the CES to develop a tailored funding agreement to make clear that Catholicism will be at the heart of a faith academy’s object and conduct. It puts in black and white that diocesan boards will be able to appoint and maintain the majority of the governors - and that no principal can be appointed without fully consulting them.
So I hope the safeguards the CES understandably asked for are in place and that this will allow Catholic schools which want to become academies to become part of the patchwork quilt of provision that I would like to see and encourage.
Another part of this patchwork quilt, of course, are the new Free Schools. Set up under the Academies legislation, the first ones are due to open this September - new schools set up in under a year. There has been a fantastic response from inspirational teachers, charities and faith groups keen to open new schools, often in areas of the greatest need, to extend opportunity and raise aspiration.
But although I am a great enthusiast for academies, they are only part of the story. The Government is keen to set higher expectations and aspirations for the entire school system.
We know from international league tables and the pioneering research of Tony Blair’s former education advisor, Sir Michael Barber, that the more data you have on schools the easier it is to spot strengths and weaknesses.
That is one of the reasons that we have introduced the English Baccalaureate. We will of course listen to any strong cases about what should and shouldn’t be included but I think the basic principle is right - that while students should have the broadest possible curriculum, including a statutory requirement to offer RE, their parents should be able to know how they perform in the core academic subjects at 16.
We are also setting new floor standards for secondary schools. This will include both an attainment measure and a progression measure:
We expect there to be firm, decisive action when results are persistently below this level, where management is weak, where there is a little capacity to improve, or when there is serious Ofsted concern.
And we have recreated the post of schools commissioner to help us drive the process of school improvement forward. The highly respected chief executive of Haberdashers’ Aske’s Federation, Dr Elizabeth Sidwell, will take up the post in the spring.
These are just some of the areas where we have been pushing ahead. The Secretary of State, Michael Gove, has set a cracking pace and I know he is impatient for improvement. He is impatient for improvement because he sees the waste of talent, the loss of opportunity, the lottery of birth and the strides forward that other countries are making.
There is an economic imperative for those of a more Gradgrindian bent. But much more than that, there is a moral imperative. All of us here in different ways have had our lives changed for the better by education. Catholic schools have a long and proud tradition of transforming lives. I am very keen to work with you, to build even closer ties, and to see how we can develop that theme of autonomy and partnership together.
Published: 3 August 2012


Gift Guide 2019: Unique Gift Ideas For The Person Who Has It All
by Felicity CarterWe all know someone who seems to have it all, and every gift-giving occasion proves to be a challenge. Instead of scratching your head, take some inspiration from these unique gifting ideas, which include everything from new beauty must-haves to personalized bottles of Champagne and Basquiat-inspired snowboards.
Slip Pink Marble Travel Set
For those who travel, a silk pillow and matching sleep mask is the perfect flight companion. The Slip team actually special-commissioned and developed the fabric over ten years to achieve the right mix of shine, thickness, softness and durability. The pillow is intended to be anti-aging while protecting against sleep creases and bed head.
AERIN Shagreen Bar Set
Aerin Lauder, granddaughter of Estée Lauder, established her namesake label in 2012 after spending 20 years at the family firm. With exceptional taste, she looks to bring elegance and function to objects, including this stylish bar set. It contains a Fausto jigger and shaker with four julep cups, four coasters, a bottle opener, a corkscrew and a bottle stopper, along with four Mattea cocktail picks and four napkins. Bring on a chic evening.
THE SKATEROOM+ Jean-Michel Basquiat Set Of Three Printed Skateboards
Everyone loves the late American artist Jean-Michel Basquiat, and these oh-so-cool skateboards feature his designs on the front. Thanks to THE SKATEROOM, they’ve put Basquiat's original “Horn Players” print on this triptych. The trio have been produced in Canada from maple wood and, of course, come with a mounting kit so the recipient can display in the home.
Balmain Black Logo Towel
The person who has everything just may not have a designer towel, and this one comes from French fashion house Balmain. In the brand’s signature black, it features the Balmain logo right in the middle and is made from 100% cotton terrycloth. Practical and stylish for winter getaways and will surely upgrade any bathroom.
Fortnum's Personalized Blanc de Blancs Champagne
The British institution, Fortnum and Mason are known for being the Queen’s grocers and so their personalized Champagne is rather special. Laurent Hostomme produces their Blanc de Blancs Champagne, located within the Grand Cru region of Chouilly. It is 100% Chardonnay which has been aged for three years “sur latte’”for extra complexity to give a light fizz with floral notes and a hint of acidity. Make it even more special by customizing the label as you wish.
Stephanie Windsor Antiques Diamond-Embellished Oval Locket
Stephanie Windsor’s love for jewelry began ever since she saw her grandmother's antique necklaces. Exclusively curated for Barneys New York, her vintage pieces include this locket. Oval in shape, it has been crafted in 18k yellow gold and features a raised cross motif. From the Victorian era, it has been adorned with deluxe oval and round white diamonds arranged in a starburst pattern.
Jacquemus Grained-Leather Coin-Purse Bracelet
Simon Porte Jacquemus is known for playing with proportions, whether it’s oversized clothing or minuscule accessories. This is a super cute, totally unique boxy purse-cum-bracelet made from textured leather. It features a wide band, specially designed to be wrapped around the wrist, and a micro wallet that will fit the essentials: house keys and card.
LaCalifornienne Cartier Watch
Someone who has it all probably has an elegant watch, but the ones by laCalifornienne are different, fun and completely covetable. The Los Angeles-based firm draws inspiration from the pink and blue magic hour skies of California and translates this onto classic timepieces such as this Tank by Cartier.
FORNASETTI Ordine Architettonico Scented Candle Set
Piero Fornasetti was a Milanese painter, known for changing 20th-century art with his classical drawings. This set of three candles are housed in hand-painted ceramic pots that feature his classical façade drawings, making them perfect for all of those who are into art, architecture and elegant fragrances. Made from vegetal wax, it is mixed with their signature “Otto” scent of ultra-relaxing lavender and thyme along with orris and cedarwood.


{title:'Handling Multi-Part Form Posts', updated:'8.0.0', flags:'todo'}
The Juneau framework does not natively support multipart form posts. However, it can be done in conjunction with the Apache Commons File Upload library or through the Servlet 3.0 API directly.
The following is an example that uses the File Upload library to allow files to be uploaded as multipart form posts.
The following shows using the


This document seeks to guide the reader through the steps involved in building OpenSSL and OpenLDAP (with SSL/TLS support) on Windows using the MinGW toolset (and MSYS). It is aimed primarily at an audience wishing to compile LDAP client libraries for high-level languages such as Python or Ruby.
Therefore, instructions are included for the appropriate modules in both of these languages (python-ldap and Ruby/LDAP, respectively).I used the following versions of various software packages. Other versions will likely work fine, but have not been tested.
The “natural habitat” of OpenSSL and OpenLDAP is the landscape of Unix-like POSIX-compliant operating systems (Linux, Mac OS X, *BSD, and so on). However, circumstances place many users in front of Windows machines, while still desiring software tailor-made for a POSIX environment. MinGW (Minimalist GNU for Windows) is one response to this dilemma. It allows compiling of a large quantity of GNU (freely available) software so that it runs natively on Windows. The resulting executables or DLLs are redistributable, needing no extra libraries in order to run. (Cygwin, an alternative, needs its own library for its binaries to work.)
MSYS (Minimal SYStem) is a build environment for MinGW, offering POSIX-similar behavior so that automatic configuration scripts and build tools run as intended.
MinGW installation is fairly straight-forward, if you download the automated installer. I use the default path, “C:\MinGW” for my installation.
For MSYS, start by downloading the exe file (1.0.10 at the time of this writing). I then downloaded most of the packages in the Technology Preview category, which may be unnecessary. Unfortunately, each of them needs to be installed separately. If you do not have the tar utility and its friends (or if you prefer a graphical interface), free compression utilities like TUGZip or 7-zip work very well.
A better alternative: (Thanks to Waldemar Osuch for this advice!) Simply download and install msysCORE-1.0.11-2007.01.19-1.tar.bz2, then run "msys/postinstall/pi.bat".
Once MSYS is installed and optionally upgraded, a couple other packages are needed: libiconv, zlib, and GNU regex. The first two are available as mingwPORTs, and that is how I installed them. Just follow the directions, and things should work fine. There is a user contributed port of GNU regex to MinGW available from the MinGW downloads. I used it, and it worked well.
If you have no need of security, OpenLDAP will work fine without OpenSSL. However, most prefer encryption when authenticating remotely. SSL/TLS in OpenLDAP depend on OpenSSL.
tar zxf openssl-0.9.8g.tar.gz
If you do not, TUGZip and 7-zip should extract the files without a problem. MinGW's tar has trouble with symlinks."mingw"
Conveniently, the previous line reads # MinGW
-DOPENSSL_USE_APPLINK:-mno-cygwin -shared:.dll.a
-DOPENSSL_USE_APPLINK:-mno-cygwin -Wl,--export-all -shared:.dll.a
./config --prefix=/mingw --openssldir=/mingw/openssl shared
(I do not think the openssldir is all that important, for our purposes anyway. The prefix, however, is.)make
make install
cp *.a /mingw/lib
cp *.dll /mingw/bin
This is what we came here to do. Again, I am only interested in the client libraries, so I do not intend to compile slapd, slurpd, etc. The same procedures may work with some modifications, but I have not tested it.
./configure --with-ssl --with-tls --disable-slapd --disable-backends --disable-slurpd --prefix=/mingw --sysconfdir=/c
make depend
make
make install
TLS_REQCERT never
[_ldap]
class = OpenLDAP2
defines = WIN32
library_dirs = /mingw/lib
include_dirs = /mingw/include
libs = ldap_r lber ssl crypto ws2_32 gdi32
# Installation options
[install]
compile = 1
optimize = 1
[bdist_wininst]
target_version = 2.5
/c/python25/python setup.py build --compiler=mingw32
/c/python25/python setup.py bdist_wininst
Note: Waldemar Osuch has some helpful advice:
When building the python extension I have temporarily tweaked
Mingw32CCompiler from distutils/cygwincompiler.py to force
static linking. No need for *.dll distribution.
294 # ld_version >= "2.13" support -shared so use it instead of
295 # -mdll -static
296 if self.ld_version >= "2.13":
297 shared_option = "-shared"
298 else:
299 shared_option = "-mdll -static"
300 #TODO Uncomment for python-ldap
301 #shared_option = "-mdll -static"
Now that you have come this far, I should point out that Ruby/LDAP builds fine using Microsoft Visual C++ 2003, and uses Microsoft's very own wldap32.dll. If you are interfacing with Active Directory, I would stick with the Microsoft option. However, if you are working with another solution, such as eDirectory or an OpenLDAP server, you may have security problems when wldap32.dll doesn't find exactly what it wants in terms of certificates, etc. Or, as in our situation, you may be developing Ruby on Rails apps locally, and want to be sure that your development environment uses similar libraries to the ones on your Linux or *BSD web server (which most likely uses OpenLDAP). Compiling Ruby/LDAP against OpenLDAP may be a good option.
./configure --prefix=/mingw --with-winsock2
make
make install
ruby extconf.rb
make
cp ldap.so lib
Gem::Specification.new do |spec|
spec.authors = ['Takaaki Tateishi', 'Ian Macdonald']
spec.email =<EMAIL_ADDRESS>spec.has_rdoc = true
spec.homepage = 'http://ruby-ldap.sourceforge.net/'
spec.name = 'ldap'
spec.summary = 'LDAP library for Ruby'
spec.description = <<-EOF
ldap is a Ruby library to perform queries on an LDAP server
EOF
spec.version = '0.9.7'
spec.platform = Gem::Platform::CURRENT
spec.files = Dir['lib/**/*.rb'] + Dir['lib/*.so']
spec.required_ruby_version = '>= 1.8.0'
spec.require_paths = ['lib']
end
gem build ldap.gemspec
gem install gem install ldap-0.9.7-x86-mswin32.gem


Grand Master Xenos:
May the spirit of Shilen give set your mind at peace... I am Master Xenos of the Dark Elf Guild. I would be pleased to assist you. How may I help?
Listen to information about first class transfer.
Clan.
Alliance.
Quest.


Contents of Volume 4B Engineering Maintenance - Basic Equipment - Binder 2
01 Contents List.pdf
02 Volume 4 Part 1 Section 3 - Paper Tape Station.pdf
03 Volume 4 Part 1 Section 3 - Figures.pdf
04 Volume 4 Part 1 Section 3 - Teleprinter.pdf
05 Volume 4 Part 1 Section 3 - Figures.pdf
06 Volume 4 Part 1 Section 5 - Online Adaptor for Paper Tape and Teleprinter Control.pdf
07 Volume 4 Part 1 Section 6 - Online Program Facility.pdf
08 Volume 4 Part 1 Section 7 - Interface for Second Paper Tape Station.pdf
09 Volume 4 Part 1 Section 7 - Figures.pdf
index.htm
BACK TO PARENT

BACK TO TOP


|
To learn and create a realtime WebRTC app, you JUST need a website where you can upload your HTML file and "that's all you need to do!"
|
Screen Broadcasting!
WebRTC screen broadcasting: using Chrome tabCapture APIs to broadcast screen over many peers.
You need to download extension (in ZIP format) if you want to broadcast your screen. To join any broadcasted screen; you don't need to download ZIP file.
Note: This chrome extension only works on Google Chrome Canary.
|
WebRTC Video Broadcasting!
Broadcast video stream over many peers!
|
WebRTC Audio Broadcasting!
Broadcast audio stream over many peers!
Note: It works only on Google Chrome Canary.
|
WebRTC Experiment using socket.io!
socket.io over PubNub for signaling!
|
WebRTC Experiment using WebSocket!
WebSocket over PubNub for signaling!
|
XHR and ASP.NET MVC!
This experiment uses JSON model for signaling!
|
Simple client side experiment using WebSocket
Runs in only one tab; uses WebSocket for signaling.
|
Simple client side experiment
Runs in only one tab; uses JavaScript variables directly for signaling.
|
Simple client side experiment using socket.io
Runs in only one tab; uses socket.io for signaling.
|


The Synapse configuration language is designed to support a processing model where messages come into Synapse, are processed via some number of mediators and then delivered to an endpoint somewhere. It is currently direction agnostic, but directionality can easily be added as a selection mechanism for mediators (see below for details).
A Synapse configuration looks like the following at the top level:
<definitions> <registry provider="string">...</registry>? <localEntry key="string">...</localEntry>? <sequence name="string">...</sequence>? <endpoint name="string">...</endpoint>? <proxy name="string" ...>...</proxy>? <task name="string" ...>...</task>? mediator* </definitions>
The Synapse configuration is held in a single XML file called the 'synapse.xml' and this may refer to other configuration fragments and resources - which may be held in an external Registry or Repository. The Synapse release ships with a simple URL based registry implementation that could use a file system, web server etc. as the registry/repository backend. When using the file system, the contents could be held in a version controlled directory so that changes could be controlled and moved from Dev, QA, Staging to Production. The Synapse engine and the simple URL registry implementation support caching and dynamic refreshing of some configuration elements [sequences & endpoints] and resources such as XSLT's, Scripts, XSDs etc. Synapse can be easily integrated with an external registry by implementing the 'org.apache.synapse.registry.Registry' interface.
A Synapse configuration refers to resources stored on an external Registry via 'keys'. The 'localEntry' elements in a configuration provides the capability to define a new resource or configuration fragment; or to override any existing resource available under a registry with a local replacement. An example would be to use a localEntry to override the production endpoint definition for development time. Local entries could direct to an external URL for the resource content, or provide the text or XML content inline.
Synapse accepts messages for mediation via the exposed/enabled transports. These are configured via the 'axis2.xml' configuration file. By default the http, https and VFS transports are enabled. Using the JMS and Mail transports requires that these be enabled and configured for your environment via the axis2.xml file. Once a proxy service is defined, it could be configured to listen for messages on one or more of the enabled transports. A proxy service then listens for messages over the selected transports by exposing a virtual service. A proxy service maybe a SOAP or POX service over http/s or SOAP, POX or Plain Text service for other transports such as JMS and VFS - e.g. CSV content being its payload. Thus Synapse is able to switch between these message formats and transports, as well as introduce or terminate QoS aspects such as WS-Security/RM through proxy services.
Sequences define an ordered execution of a set of 'Mediators', where each 'Mediator' gets full access to the current message flowing through the system. Synapse ships with a common set of mediators that can handle most of the common tasks such as - logging, content based routing, transformations using XSLT/XQuery, validation, BSF scripting language based or Java class based mediation, database reporting or lookup, caching, throttling, cloning, splitting and aggregation etc. Writing a custom mediator in Java is easy and the supplementary documentation provides more details. The 'Class' and 'POJO' mediators allows one to plugin a Java class easily into the Synapse engine with minimal effort.
Typically proxy services associates mediation sequences for processing incoming and outgoing messages. A Synapse configuration holds two special sequences called the 'main' and 'fault' sequences. The 'main' sequence executes for any message that is not received by any particular proxy service. When using the http/s transports - this refers to the concept of 'Message Mediation' where Synapse may be configured as a transparent proxy to its clients. In this scenario, Synapse could receive all messages on the wire and mediate them as necessary and send them to the final destinations. The 'fault' sequence executes whenever Synapse itself encounters an error while processing a message - or when a fault handler has not been defined to handle exceptions. Typically a fault sequence would log the failed message and any other context information.
Endpoints define aspects to be considered when sending a message out from Synapse. Endpoints also allow load balancing, fail-over and timeout scenarios to be handled - or to introduce WS-Security, Addressing or RM for messages sent to an endpoint. An endpoint maybe defined as an Address or using a WSDL definition.
The <registry> element is used to define a remote registry which are referenced from within the configuration. The registry provider specifies an implementation class for the registry used, and optionally a number of configuration parameters may be specified to configure the connection to the registry.
<registry provider="string"/> <parameter name="string">text | xml</parameter>* </registry>
Registry entries loaded from a remote registry are cached within Synapse as dictated by the registry, and reloaded after the cache periods expires. Hence it is possible to define configuration elements such as (dynamic) sequences and endpoints, as well as resources such as XSLT's or XSDs off the registry, and update the configuration as these change dynamically over time.
The <localEntry> element is used to declare registry entries that are local to the Synapse instance, as shown below
<localEntry key="string" [src="url"]>text | xml</localEntry>
These entries are top level entries which are set globally for the entire system. Values of these entries can be retrieved via the extension XPath function "synapse:get-property(prop-name)".
An entry can be static text specified as inline text or static XML specified as an inline XML fragment or specified as a URL (using the src attribute). These local entries can override any existing entries with the same keys of the remote registry.
A <sequence> element is used to define a sequence of mediators that can be invoked later by name.
<sequence name="string" [onError="string"] [key="string"] [trace="enable"]> mediator* </sequence>
If the configuration defines a sequence named "main" then it is considered as the main mediation sequence of Synapse. If such a sequence is not defined locally, and a registry has been specified, the registry is looked up for a key named "main" to find the main mediation sequence. Synapse also supports the specification of mediators directly within the <definitions> tag, and if any mediators are present, will be considered to constitute the main sequence. In the absence of a main sequence, the Synapse runtime will create a default main sequence that consists of an implicit send mediator.
Synapse considers a sequence named "fault", or in its absence a registry entry with a key "fault" as its general fault handler sequence. If Synapse encounters an erroneous situation while processing a message through a sequence, it executes the defined error handling sequence for the current context - which may be specified as the 'onError' sequence for a sequence mediator. If a fault sequence is not specified or cannot be found through the registry, Synapse will create a default fault sequence that will perform a default logging of the message at the log level 'full'.
If an optional error handler sequence name is specified on any sequence through the attribute 'onError', an exception on this sequence will invoke the sequence specified by this key.
A Dynamic Sequence may be defined by specifying a key reference to a registry entry. As the remote registry entry changes, the sequence will dynamically be updated according to the specified cache duration and expiration. If tracing is enabled on a sequence, all messages being processed through the sequence would write tracing information through each mediation step to the trace.log file configured via the log4j.properties configuration. Setting the trace log level to TRACE would additionally dump the message at each mediation.
An <endpoint> element defines a destination for an outgoing message. An endpoint may be specified as an address endpoint, WSDL based endpoint, a load balanced endpoint or a fail-over endpoint as follows:
<endpoint [name="string"] [key="string"][trace="enable"]> address-endpoint | wsdl-endpoint | load-balanced-endpoint | fail-over-endpoint </endpoint>
All above endpoint types can have a name attribute. Such named endpoints can be refered by other endpoints, which only contain the key attribute. For example if there is an endpoint named as "foo", following endpoint can be used in any place, where "foo" has to be used. A tracing enabled endpoint would generate trace information into the trace log for each message that passes through.
<endpoint key="foo"/>
Address endpoint is an endpoint defined by specifying the EPR and other attributes of the endpoint directly in the configuration.The 'uri' attribute of the address element contains the EPR of the target endpoint. Message format for the endpoint and the method to optimize attachments can be specified in the format and optimize attributes respectively. Reliable messaging and security policies for the endpoint can be specified in the policy attribute of the enableRM and enableSec elements respectively. WS-Addressing can be engaged for the messaging going to the endpoint by the enableAddressing element. suspendDurationOnFailure attribute specifies the time duration in seconds to suspend this endpoint, if it is detected as failed. If this attribute is not specified, endpoint will never be recovered after a failure.
Address endpoints can timeout the responses if they failed to arrive Synapse in predefined time duration. This is done by the timeout elements. duration element inside the timeout element contains duration for the timeout in seconds. action element specifies the action to be performed once a timeout occurs. Allowed actions are discard and fault. If discard is specified, responses arriving after the timeout will be discarded without further processing. If fault is specified as the action, fault sequence applicable for the endpoint will be activated as soon as the timeout occurs and responses will not be processed after that.
<address uri="endpoint-address" format="soap11|soap12|pox" [optimize="mtom|swa"]> <enableRM [policy="key"]/>? <enableSec [policy="key"]/>? <enableAddressing/>? <suspendDurationOnFailure>suspend-duration</suspendDurationOnFailure>? <timeout> <duration>timeout-duration</duration> <action>discard|fault</action> </timeout>? </address>
WSDL endpoint is an endpoint based on a WSDL document. It can extract the target EPR from a given WSDL. The WSDL document can be specified either as a URI or as an inlined definition within the configuration. The service and port name containing the target EPR has to be specified in service and port attributes respectively. enableRM, enableSec, enableAddressing, suspendDurationOnFailure and timeout elements are same as for the Address endpoint.
<wsdl [uri="wsdl-uri"] service="qname" port/endpoint="qname"> <wsdl:definition>...</wsdl:definition>? <wsdl20:description>...</wsdl20:description>? <enableRM [policy="key"]/>? <enableSec [policy="key"]/>? <enableAddressing/>? <suspendDurationOnFailure>suspend-duration</suspendDurationOnFailure>? <timeout> <duration>timeout-duration</duration> <action>discard|fault</action> </timeout>? </wsdl>
A Load balanced endpoint distributes the messages (load) arriving at it among a set of listed endpoints by evaluating the load balancing policy and any other relevant parameters. Policy attribute of the load balance element specifies the load balance policy (algorithm) to be used for selecting the target endpoint. Currently only the roundRobin policy is supported. failover attribute determines if the next endpoint should be selected once the currently selected endpoint has failed. Default is true. The set of endpoints among which the load is distributed can be listed under the loadBalance element. Those endpoints can belong to any endpoint type mentioned in this document. For example, failover endpoints can be listed inside the load balance endpoint to load balance between failover groups.
The optional session element makes the endpoint a session affinity based load balancing endpoint. If it is specified, sessions are bound to endpoints in the first message and all successive messages for those sessions are directed to their associated endpoints. http sessions are supported currently, which identifies sessions based on http cookies. failover attribute mentioned above is not applicable for session affinity based endpoints and it is always set to false. If it is required to have failover behavior in session affinity based load balance endpoints, list failover endpoints as the target endpoints.
<session type="http"/>? <loadBalance [policy="roundRobin"] [failover="true|false"]> <endpoint .../>+ </loadBalance>
Failover endpoints send messages to the listed endpoints with the following failover behavior. At the start, first listed endpoint is selected as the primary and all other endpoints are treated as backups. Incoming messages are always sent only to the primary endpoint. If the primary endpoint fails, next active endpoint is selected as the primary and failed endpoint is marked as inactive. Thus it sends messages successfully as long as there is at least one active endpoint among the listed endpoints.
<failover> <endpoint .../>+ </failover>
A <proxy> element is used to define a Synapse Proxy service.
<proxy name="string" [transports="(http |https |jms )+|all"]> <description>...</description>? <target [inSequence="name"] [outSequence="name"] [faultSequence="name"] [endpoint="name"]> <inSequence>...</inSequence>? <outSequence>...</outSequence>? <faultSequence>...</faultSequence>? <endpoint>...</endpoint>? </target>? <publishWSDL key="string" uri="string"> <description>...</description> | <definitions>...</definitions> <publishWSDL>? <enableSec/>? // These two tags will removed after the recognition of the Security and RM can be done by looking at policy <enableRM/>? <policy key="string">...</policy>? // optional service level policies // (e.g. WS-Security and/or WS-RM policies) <parameter name="string"> // optional service parameters string | xml // (e.g. transport.jms.ConnectionFactory) </parameter> </proxy>
A proxy service is created and exposed on the specified transports through the underlying Axis2 instance, exposing service EPR's as per the standard Axis2 conventions - based on the service name. (Note: that currently Axis2 does not allow custom URI's to be set for services on some transports.) The Proxy service could be exposed over all enabled Axis2 transports such as http, https, JMS etc. or on a subset of these. Each service could define the target for received messages as a named sequence or a direct endpoint. Target inSequence or endpoint is required for the proxy configuration, and a target outSequence defines how responses should be handled. Any supplied WS-Policies would apply as service level policies, and any service parameters could be passed into the proxy services' AxisService instance using the parameter elements (e.g. the JMS destination etc). If the proxy service should enable WS-Reliable Messaging or Security, the appropriate modules could be engaged, and specified policies will apply.
A Dynamic Proxy may be defined by specifying the properties of the proxy as dynamic entries by refering them with the key. (For example one could specify the inSequence or endpoint with the remote key, without defining it in the local configuration) As the remote registry entry changes, the properties of the proxy will dynamically be updated accordingly. (Note: proxy service definition itself can not be specified to be dynamic; i.e <proxy key="string"/> is wrong)
Transport specific parameters
| Transport | Require | Parameter | Description |
| JMS | Optional | transport.jms.ConnectionFactory | The JMS connection factory definition (from axis2.xml) to be used to listen for messages for this service |
| Optional | transport.jms.Destination | The JMS Destination name (Defaults to a Queue with the service name) | |
| Optional | transport.jms.ReplyDestination | The Destination where a reply would be posted | |
| VFS | Required | transport.vfs.FileURI | The primary File (or Directory) URI in the vfs* transport format, for this service |
| Required | transport.vfs.ContentType | The content type for messages for this service | |
| Optional | transport.vfs.FileNamePattern | A file name regex pattern to match files against a directory specified by the FileURI | |
| Optional | transport.PollInterval | The poll interval (in seconds) | |
| Optional | transport.vfs.ActionAfterProcess | DELETE or MOVE | |
| Optional | transport.vfs.MoveAfterProcess | The directory to move files after processing (i.e. all files process successfully) | |
| Optional | transport.vfs.ActionAfterErrors | DELETE or MOVE | |
| Optional | transport.vfs.MoveAfterErrors | The directory to move files after errors (i.e. some of the files succeed but some fail) | |
| Optional | transport.vfs.ActionAfterFailure | DELETE or MOVE | |
| Optional | transport.vfs.MoveAfterFailure | The directory to move after failure (i.e. all files fail) | |
| Optional | transport.vfs.ReplyFileURI | Reply file URI | |
| Optional | transport.vfs.ReplyFileName | Reply file name (defaults to response.xml) | |
*VFS Transport URI examples
file:///directory/filename.ext
file:////somehost/someshare/afile.txt
jar:../lib/classes.jar!/META-INF/manifest.mf
jar:zip:outer.zip!/nested.jar!/somedir
ftp://myusername:mypassword@somehost/pub/downloads/somefile.tgz[?vfs.passive=true]
A <task> element is used to define a Synapse Startup Task.
<task class="org.my.synapse.Task" name="string"> <property name="stringProp" value="String"/> <property name="xmlProp"> <somexml>config</somexml> </property> <trigger ([[count="10"]? interval="1000"] | [cron="0 * 1 * * ?"] | [once=(true | false)])/> </task>
A task is created and scheduled to run at the specified time intervals or as specified by the cron expression. The Task class specifies the actual task implementation class (which must implement org.apache.synapse.startup.Task interface) to be executed at the specified interval/s, and name specifies an identifier for the scheduled task. Fields in the task class can be set using properties provided as string literals or as XML fragments. (For example; if the task implementation class has a field named "version" with a corresponding setter method, the configuration value which will be assigned to this field before running the task can be specified using a property with the name version)
There are three different trigger mechanisms to schedule tasks. A simple trigger is specified specifying a 'count' and an 'interval', implying that the task will run a 'count' number of times at specified intervals. A trigger may also be specified as a cron trigger using a cron expression. A one-time trigger is specified using the 'once' attribute as true in the definition and could be specified as true in which case this task will be executed only once just after the initialization of Synapse
A mediator token refers to any of the following tokens:
send | drop | log | property | sequence | validate | makefault | xslt | header | filter | switch | in | out | dblookup | dbreport | RMSequence | throttle | xquery | cache | clone | iterate | aggregate | class | pojoCommand | script | spring
In addition to the above, Synapse will be able to load custom mediators via the J2SE Service Provider model. Mediator extensions must implement the MediatorFactory interface.
The send token represents a <send> element. The <send> element is used to send messages out of Synapse to some endpoint, and stop further mediation of the message. The send mediator also copies any message context properties from the current message context to the reply message received on the execution of the send operation. This allows the reply messages to be correlated to the original messages in a flexible manner. Messages may be correlated by WS-A MessageID, or even simple custom text labels. Also see the property mediator.
In the simplest case, the place to send the message to is implicit in the message (via a property of the message itself)- that is indicated by the following:
<send/>
If the message is to be sent to one or more endpoints, then the following is used:
<send> (endpointref | endpoint)+ </send>
where the endpointref token refers to the following:
<endpoint key="name"/>
and the endpoint token refers to an anonymous endpoint defined.
The drop token refers to a <drop> element which is used to drop a message:
<drop/>
Once the <drop> mediator executes, further processing of the current message stops.
The log token refers to a <log> element which may be used to log messages being mediated:
<log [level="string"] [separator="string"]> <property name="string" (value="literal" | expression="xpath")/>* </log>
The optional level attribute selects a pre-defined subset of properties to be logged.
e.g.
A separator if defined will be used to separate the attributes being logged. The default separator is the ',' comma.
<property name="string" [action=set|remove] (value="literal" | expression="xpath") [scope=transport|axis2|axis2-client]/>
The property token refers to a <property> element which is a mediator that has no direct impact on the message but rather on the message context flowing through Synapse. The properties which does not specify the action thus set on the message context applies only to the current message and can be later retrieved through the synapse:get-property(prop-name) extension function. If a scope is specified for a property, the property could be set as a transport header property or an (underlying) Axis2 message context property, or as a Axis2 client option or as an Axis2 message context property. If a scope is not specified, it will default to the Synapse message context scope. Using the property element with action specified as "remove" you can remove the message context properties if available.
There are some well-defined properties that you can get/set:
There are also some Axis2 and module properties that are useful to set (with scope="axis2"):
<sequence key="name"/>
A sequence ref token refers to a <sequence> element which is used to invoke a named sequence of mediators.
<validate [source="xpath"]> <property name="validation-feature-id" value="true|false"/>* <schema key="string"/>+ <on-fail> mediator+ </on-fail> </validate>
The <validate> mediator validates the result of the evaluation of the source xpath expression, against the schema specified. If the source attribute is not specified, the validation is performed against the first child of the SOAP body of the current message. If the validation fails, the on-fail sequence of mediators is executed. Properties could be used to turn on/off some of the underlying features of the validator (See http://xerces.apache.org/xerces2-j/features.html)
<makefault [version="soap11|soap12"]> <code (value="literal" | expression="xpath")/> <reason (value="literal" | expression="xpath")> <node>? <role>? <detail>? </makefault>
The <makefault> mediator transforms the current message into a fault message, but does NOT send it. The <send> mediator needs to be invoked to send a fault message created this way. The fault message "to" header is set to the "faultTo" of the original message if such a header existed on the original message.
<xslt key="string" [source="xpath"]> <property name="string" (value="literal" | expression="xpath")/>* <feature name="string" value="true| false" /> </xslt>
The <xslt> mediator applies the specified XSLT transformation to the given element. If the source element is not specified, it defaults to the first child of the soap body. Optionally parameters (XSLT) could be passed into the transformations through the <property> elements.The <feature> defines a any feature which should be set to the TransformerFactory by explicitly. The feature 'http://ws.apache.org/ns/synapse/transform/feature/dom' turns on DOM based transformations instead of serializing elements into Byte streams and/or temporary files. However, this may not prove to be stable for all scenarios - especially for large message transformation.
<header name="qname" (value="literal" | expression="xpath") [action="set"]/> <header name="qname" action="remove"/>
The <header> mediator sets or removes a specified header from the current soap message. Currently the set header only supports simple valued headers. In the future we may extend this to have XML structured headers by embedding the XML content within the element itself. The optional action attribute specifies whether the mediator should set or remove the header. If omitted, it defaults to a set-header.
<filter (source="xpath" regex="string") | xpath="xpath"> mediator+ </filter>
The <filter> mediator either test the given xpath expression as a boolean expression, or match the evaluation result of a source xpath expression against the given regular expression. If the test succeeds, the filter mediator will execute the enclosed mediators in sequence.
<switch source="xpath"> <case regex="string"> mediator+ </case>+ <default> mediator+ </default>? </switch>
The <switch> mediator will evaluate the given source xpath expression into its string value, and match it against the given regular expressions. If the specified cases does not match and a default case exists, it will be executed.
<in>
mediator+ </in>
<out> mediator+ </out>
The In and Out mediators will execute the child mediators over the current message if the message matches the direction of the mediator. Hence all incoming messages would pass through the "<in>" mediators and vice versa.
<dblookup> <connection> <pool> ( <driver/> <url/> <user/> <password/> | <dsName/> <icClass/> <url/> <user/> <password/> ) <property name="name" value="value"/>* </pool> </connection> <statement> <sql>select something from table where something_else = ?</sql> <parameter [value="" | expression=""] type="int|string"/>* <result name="string" column="int|string"/>* </statement>+ </dblookup>
The dblookup mediator is capable of executing an arbitrary SQL select statement, and then set some resulting values as local message properties on the message context. The DB connection used maybe looked up from an external DataSource or specified in-line, in which case an Apache DBCP connection pool is established and used. Apache DBCP connection pools support the following properties:
More than one statement may be specified, and the SQL statement may specify parameters which could be specified as values or expressions. The types of parameters could be any valid SQL types. Only the first row of a result set will be considered and any others are ignored. The single <result> element contains the 'name' and the column' attributes. The 'name' attribute defines the name under which the result is stored in the Synapse message context, and the column attribute specifies a column number or name .
<dbreport> <connection> <pool> ( <driver/> <url/> <user/> <password/> | <dsName/> <icClass/> <url/> <user/> <password/> ) <property name="name" value="value"/>* </pool> </connection> <statement> <sql>insert into something values(?, ?, ?, ?)</sql> <parameter [value="" | expression=""] type="int|string"/>* </statement>+ </dblreport>
The dbreport mediator is very similar to the dblookup mediator, but writes information to a Database, using the specified insert SQL statement.
<RMSequence (correlation="xpath" [last-message="xpath"]) | single="true" [version="1.0|1.1"]/>
The <RMSequence> mediator can be used to create a sequence of messages to communicate via WS-Reliable Messaging with an WS-RM enabled endpoint (<enableRM>). The simple use case of this mediator is to specify a single="true" property, because this means that only one message is involved in the same sequence. However if multiple messages should be sent in the same sequence, the correlation property should be used with a XPath expression that selects an unique element value from the incoming message. With the result of the XPath expression, Synapse can group messages together that belong to the same sequence. To close the sequence neatly, for the last message of the sequence also an XPath expression should be specified. With the version attribute the WS-RM specification version to be used can be specified, 1.0 or 1.1.
<throttle [onReject="string"] [onAccept="string"] [id="string"]> <policy key="string"/> | <policy>..</policy> <onReject>..</onReject> <onAccept>..</onAccept> </throttle>
The Throttle mediator can be used for rate limiting as well as concurrency based limiting. A WS-Policy dictates the throttling configuration and may be specified inline or loaded from the registry. The Throttle mediator could be added in the request path for rate limiting and concurrent access limitation. When using for concurrent access limitation, the same throttle mediator ID must be triggered on the response flow so that completed responses are deducted from the available limit. The acceptance or rejection sequence is executed depending on the evaluation of the throttling policy against the current message.
<xquery [key="string"] [target="xpath"]> <variable name="string" type="string" [key="string"] [expression="xpath"]/>? </xquery>
The XQuery mediator can be used to perform an XQuery transformation. The 'variable' elements define a variable that could be bound to the dynamic context of the XQuery engine in order to access those variables through the XQuery script . The name of the variable corresponds to the name of variable declaration in the XQuery script. The 'type' of the variable must be a valid type defined by the JSR-000225 (XQJ API). The supported types are:
The expressions will be evaluated against the current SOAP envelope.
<cache (id="string")? hashGenerator="class" scope="string" timeout="milliseconds"> <onCacheHit (sequence="key")?> (mediator)+ </onCacheHit> <implementation type=(memory | disk) maxSize="int"/> </cache>
The <cache> mediator will evaluate the hash value of the incoming message as described in the hash generator implementation (which should be a class implementing the org.wso2.caching.digest.DigestGenerator interface) and looks in a cache for a matching response. If the generated hash value has been found in the cache then the cache mediator will execute the onCacheHit sequence which can be specified inline or refered to the registry.
<clone continueParent=(true | false)> <target to="uri" [soapAction="qname"] sequence="sequence_ref" endpoint="endpoint_ref"> <sequence> (mediator)+ </sequence> <endpoint> endpoint </endpoint> </target> </clone>
The <clone> mediator closely resembles the Message Splitter EIP and will split the message into number of identical messages all of which are identical with the cloning message and processed parallelly using either the specified sequence or endpoint (or both). Cloning message (parent) can be continued or dropped depending on the boolean value of the continueParent attribute which defaults to false and drops the parent when false. This drop is not a general drop, rather stop the message processing but does not closes the transport channel, leaving the ability of one or a set of cloned message responses to be sent back to the caller
<iterate continueParent=(true | false) preservePayload=(true | false) (attachPath="xpath")? expression="xpath"> <target to="uri" [soapAction="qname"] sequence="sequence_ref" endpoint="endpoint_ref"> <sequence> (mediator)+ </sequence> <endpoint> endpoint </endpoint> </target> </iterate>
The <iterate> mediator implements another EIP and will split the message in to number of different messages derived from the parent message by finding the matching elements of the XPATH expression specified in the configuration. New messages will be created for each and every matching element and processed parallelly using either the specified sequence or endpoint or both. Parent message can be continued or dropped in the same way as in the clone mediator. Iterate parent drop also is a channel blocking drop as per in the clone mediator.
<aggregate> <corelateOn expression="xpath"/> <completeCondition timeout="time-in-seconds"> <messageCount min="int-min" max="int-max"/> </completeCondition> <onComplete expression="xpath" sequence="sequence-ref"> (mediator +)? </onComplete> <invalidate sequence="sequence-ref" timeout="time-in-seconds"> (mediator +)? </invalidate> </aggregate>
The <aggregate> mediator implements the Message Aggregator EIP and will aggregate the messages splitted using either the clone or iterate mediators. At the same time it can aggregate messages on the presence of matching elements specified by the corelateOn XPATH expression. Aggregate will collect the messages coming in to that until the messages on the aggregation satisfies the complete condition. On completion of the aggregation it will execute the aggregated message using the onComplete sequence. Aggregated message will be created by combining the messages participating in the aggregation using the onComplete XPATH expression. If a particular aggregation fails to complete in a pre configured time, then that particular aggregation will be invalidated using the invalidate sequence.
<class name="class-name"> <property name="string" value="literal"> (either literal or XML child) </property> </class>
The <class> mediator creates an instance of the specified class and sets it as a mediator. The class must implement the org.apache.synapse.api.Mediator interface. If any properties are specified, the corresponding setter methods are invoked on the class, once, during initialization.
<pojoCommand name="class-name"> <property name="string" value="literal"> (either literal or XML child) </property> <property name="string" expression="xpath"/> </pojoCommand>
The <pojoCommand> mediator creates an instance of the specified command class (which may implement the org.apache.synapse.Command interface or should have a public void method named "execute"). If any properties are specified, the corresponding setter methods are invoked on the class and called the execute method of the command executed.
Synapse supports Mediators implemented in a variety of scripting languages such as JavaScript, Python or Ruby. There are two ways of defining script mediators, either with the script program statements stored in a separate file which is referenced via the local or remote registry entry, or with the script program statements embedded in-line within the Synapse configuration. A script mediator using a script off the registry (local or remote) is defined as follows:
<script key="string" language="string" [function="script-function-name"]/>
The property key is the registry key to load the script. The language attribute specifies the scripting language of the script code (e.g. "js" for Javascript, "rb" for ruby, "groovy" for Groovy, "py" for Python..). The function is an optional attribute defining the name of the script function to invoke, if not specified it defaults to a function named 'mediate'. The function is passed a single parameter - which is the Synapse MessageContext. The function may return a boolean, if it does not, then true is assumed, and the script mediator returns this value. An inline script mediator has the script source embedded in the configuration as follows:
<script language="string">...script source code...<script/>
The execution context environment of the script has access to the Synapse MessageContext predefined in a script variable named 'mc' . An example of an inline mediator using JavaScript/E4X which returns false if the SOAP message body contains an element named 'symbol' which has a value of 'IBM' would be:
<script language="js">mc.getPayloadXML()..symbol != "IBM";<script/>
Synapse uses the Apache Bean Scripting Framework for the scripting language support, any script language supported by BSF may be used to implement a Synapse Mediator.
Implementing a Mediator with a script language can have advantages over using the built in Synapse Mediator types or implementing a custom Java class Mediator. Script Mediators have all the flexibility of a class Mediator with access to the Synapse MessageContext and SynapseEnvironment APIs, and the ease of use and dynamic nature of scripting languages allows rapid development and prototyping of custom mediators. An additional benefit of some scripting languages is that they have very simple and elegant XML manipulation capabilities, for example JavaScript E4X or Ruby REXML, so this makes them well suited for use in the Synapse mediation environment. For both types of script mediator definition the MessageContext passed into the script has additional methods over the standard Synapse MessageContext to enable working with the XML in a way natural to the scripting language. For example when using JavaScript getPayloadXML and setPayloadXML, E4X XML objects, and when using Ruby, REXML documents.
The Synapse configuration language could be easily extended, with configuration extensions as well as mediation extensions. The Spring mediator is such an example.
A Spring configuration could be created as a localEntry or remote registry entry providing a URL or a key reference to a Registry. The configuration is then created on first use or as necessary (as per registry lookup semantics) by the mediators which reference this configuration.
<localEntry key="string"/> <localEntry key="string" src="url"/>
The name attribute specifies a unique name for the configuration, and the src, key or inlined XML references to the Spring configuration
<spring:spring bean="exampleBean1" key="string"/>
The <spring> element creates an instance of a mediator, which is managed by Spring. This Spring bean must implement the Mediator interface for it to act as a Mediator. The key will reference the Spring ApplicationContext/Configuration used for the bean


I am a first year masters student at University of Michigan studying Human-Computer Interaction. I am interested in going into UX Research or Product Management after graduation.
I grew up in Virginia and still begrudingly root for the DC area sports teams. I am patiently waiting for the day the Wizards bring a championship to the city.


On the first night, the man with the hammers came a-crashing through my door. I immediately identified him as Babinsky.
On the second night, the man with the hammers, who was not Babinsky after all, summoned men with whisks and men with tongs. I tried to reason with them.
On the third night, all of them, the man with the hammers included, went off on what they called “night-time manoeuvres”, and left me alone. I smoked my pipe and listened to the rain.
On the fourth night, Babinsky himself appeared. This time I think it really was him. He showed me some very, very convincing documentation.
On the fifth night, the kitchenette was flooded with dishwater. Luckily I had plenty of cloths and rags to mop it up.
On the sixth night, Babinsky and the man with the hammers and the men with whisks and the men with tongs sang Christmas carols. Their voices were surprisingly dulcet.
On the seventh night there was a pox upon my house.
On the eighth night I tossed and turned and could not sleep. Downstairs, Babinsky & Co were plotting an enormity.
On the ninth night they all went off to commit the enormity. I hid in a cubby so they would not take me with them. It was a tiny cubby and I became cramped.
On the tenth night, there was an important hockey match on television. I have never understood the rules of hockey, so I could not understand what Babinsky and the man with the hammers were so het up about.
On the eleventh night, I suddenly realised that the men with whisks and the men with tongs had never returned after committing the enormity. It also occurred to me that I had not read a word about the enormity in the Daily Shovel.
On twelfth night I took stock, and I peeled potatoes. I peeled potatoes and I peeled potatoes. By the light of the silvery moon I peeled potatoes, and then I peeled potatoes.


class MainActivity : AppCompatActivity
The Main Activity. Everything from the app is routed through here
MainActivity()
The Main Activity. Everything from the app is routed through here |
fun onCreate(savedInstanceState: Bundle?): Unit
Sets Theme to artisttheme Sets Colour of the Status Bar to colorPrimary Sets custom Toolbar and sets elevation off |
|
fun onCreateOptionsMenu(: Menu?): Boolean |
|
fun onOptionsItemSelected(item: MenuItem?): Boolean
If User clicks Logout, (logout) is called If User Clicks settings, Settings fragment replaces current fragment |
|
fun popStack(): Unit
Function that fragments can call to remove themselves |
|
fun toLogin(v: View): Unit
Anko Method to delegate User to LoginScreen |
|
fun toRegister(v: View): Unit
Anko Method to delegate User to RegisterScreen |