//
My First Game
It was a drowsy Friday afternoon in astrophysics class when Gabe joked that I should program a geometry-themed knockoff of Cookie Clicker
(a trending web game at the time). We passed the idea around for a few days, and I eventually took the idea seriously. Deciding to use only
code I wrote myself, I was able learn how games worked under the hood. Shape Clicker utilizes a fully custom game engine written natively in
JavaScript. The task was daunting. My knowledge of game design at the time was powerfully dwarfed by knowledge I lacked. But despite adverse
odds, I chose to move forward. I googled problems I couldn’t solve. I tried, failed, tried again, and six months later, my first game was born!
//
Features
Custom Game Engine
Shape Clicker runs on a game engine I coded myself. The game utilizes the HTML canvas element for visuals and a looping setTimeout() function as a game loop.
Advanced Trigonometry
Calculating the way an n-sided polygon rotates in an inverse plane was my biggest hurdle. While it is certainly old-hat now, it was extremely daunting at the time.
Supports Any Resolution
While it doesn't work on mobile, Shape Clicker was created with different sized screens in mind. The canvas will scale up to your native resolution and the game still runs flawlessly.
Variable FPS
The game engine supports variable framerate. The earned score will be the same regardless of the browser refresh rate. Most indie games don't even do this!
Session-based Savegames
Shape Clicker uses PHP user sessions to save your data, allowing you to return later and pick up your clicking addiction right where you left off.
Polymorphism and OOP
This was the first project I ever used object inheritance. Every placeable object inherits properties from a shape superclass that gets used by drawing and update loops.
Copyright © 2016 Daniel Timko


Book Online
Select a Branch
Nasr City
New Cairo
El-Haram
Maadi
Reservation Name
Pick a Day
SAMPLE CALENDAR
Open 7 days a week, we welcome you into our store to explore our mouth-watering range of deli meats, cheeses, dips, pates, meals, salads, general provisions, pantry finds, coffee, cakes and much much more.
We hope to see you in store soon....
Alice Springs Chicken Quesadillas
Ahi Sesame Salad
Firecracker Salmon
Baked Stuffed Mushrooms
Mozzarella With Marinara
Pecan-Crusted Chicken
Sirloin and Lobster Tail
Crab Topped Tilapia
Parmesan Herb Crusted Chicken
Chicken Balsamico
Lemon Rosemary Chicken
Angel Hair With Artichokes
Chocolate Thunder From Down Under
Carrot Cake
Sweet Adventure Sampler Trio
Red Velvet Cheesecake
Tiramisu
Lemon Cream Cake


Wonderful Websites
Hello there, I found some awesome links.
Open Culture!
Project Gutenberg!
Old Book Illustrations!
Project by Gipsi
Github Learning Lab


--- title: conv sidebar: function_reference_sidebar permalink: SO3Kernel.conv.html folder: function_reference toc: false ---
convolution of an SO3Kernel function with a function or a kernel on SO(3)
We convolute an SO3Kernel \(f\) with another SO3Kernel or an SO3Fun \(g\) by the convolution
\[ (f *L g)(R) = \frac1{8\pi^2} \int{SO(3)} f(q) \cdot g(q^{-1}\,R) \, dq \]
which in this case is similar to the so caled right sided convolution, see SO3FunHarmonic/conv.
The convolution of an SO3Kernel with an S2Kernel or an S2Fun \(h\) is defined by
\[ (f * h)(\xi) = \frac1{8\pi^2} \int_{SO(3)} f(q) \cdot h(q^{-1}\,\xi) \, dq \].
| psi1, psi2 | SO3Kernel |
| phi1 | S2Kernel |
| SO3F1 | SO3Fun |
| sF1 | S2Fun |
| psi | SO3Kernel |
| SO3F2 | SO3Fun |
| sF2 | S2Fun |
| phi2 | S2Kernel |
SO3FunHarmonic.conv SO3FunRBF.conv S2FunHarmonic.conv S2Kernel.conv


Looking for someone to mind our fun and loving dog Rex for 3 days while we go to a wedding in Killarney
Activity: Dog Minding
Date: 13/12/20 to 16/12/20
Length of Time: 3 Days
Really lovely dog, easy to mind
Posted by Karl Smith on 3/1/20Had a great experience minding Rex, great dog
Posted by Nikita Smirnoff on 16/5/19Would mind again 100%, 10/10 experience
Posted by Anonymous on 3/7/19


--- layout: index title: Home Page ---
This site is currently in construction. Please come back some time later. About Me...


Rohr faults media pressure for Tammy’s Eagles snub
by Ebenezer BajelaEbenezer Bajela
Super Eagles coach, Gernot Rohr, has revealed that the negative pressure from the media was the reason Chelsea and England striker Tammy Abraham rejected the chance to play for Nigeria.
The Nigeria Football Federation were unable to convince Tammy and his Chelsea teammate Fikayo Tomori to pledge their allegiance to Nigeria and play for the Eagles before playing for the Three Lions against Czech Republic and Kosovo respectively.
There were claims that the 22-year-old ditched Nigeria due to lack of proper financial package but the German while addressing reporters in Abuja shunned talks suggesting that financial considerations compelled the Chelsea player to choose England over Nigeria. It is not the first time that the federation have lost players of Nigeria descent to other countries but Rohr said that Tammy was not given the chance to think through as media pressure made it difficult.
‘’This is a very special case where we have players like Ola Aina, Tammy Abraham, Tomori and a host of others who were in the news concerning their international career.
‘’If you put too much pressure, it is not good for the players. You must sit down together, speak. We are working on it but it is not good to announce. Give them time to think about it.
‘’It is always difficult for the players to pick a country to play for. It is like looking for a girlfriend and put her under pressure, she will not come but if you wait for a good moment to speak with her, perhaps she will come.’’
Copyright PUNCH.
All rights reserved. This material, and other digital content on this website, may not be reproduced, published, broadcast, rewritten or redistributed in whole or in part without prior express written permission from PUNCH.
Contact: theeditor@punchng.com


test module of cma
package.
Usage:
python -m cma.test -h # print this docstring python -m cma.test # doctest all (listed) files python -m cma.test list # list files to be doctested python -m cma.test interfaces.py [file2 [file3 [...]]] # doctest only these
or possibly by executing this file as a script:
python cma/test.py # same options as above work cma/test.py # the same
or equivalently by passing Python code:
python -c "import cma.test; cma.test.main()" # doctest all (listed) files python -c "import cma.test; cma.test.main('list')" # show files in doctest list python -c "import cma.test; cma.test.main('interfaces.py [file2 [file3 [...]]]')" python -c "import cma.test; help(cma.test)" # print this docstring
File(name)s are interpreted within the package. Without a filename
argument, all files from attribute files_for_doc_test
are tested.
| Function | doctest |
doctest all (listed) files of the cma package. |
| Function | get |
Undocumented |
| Function | is |
bytes (in Python 3) also fit the bill |
| Function | main |
test the cma package. |
| Function | various |
various doc tests. |
| Constant | PY2 |
Undocumented |
| Variable | files |
Undocumented |
| Function | _clean |
(permanently) remove entries in folder which begin with any of start_matches, where "" matches any string, and which are not in protected. |
| Variable | _files |
files written by the doc tests and hence, in case, to be deleted |
doctest all (listed) files of the cma
package.
Details: accepts verbose and all other keyword arguments that
doctest.testfile
would accept, while negative verbose values
are passed as 0.
test the cma
package.
The first argument can be '-h' or '--help' or 'list' to list all files to be tested. Otherwise, arguments can be file(name)s to be tested, where names are interpreted relative to the package root and a leading 'cma' + path separator is ignored.
By default all files are tested.
| See Also | |
| python -c "import cma.test; help(cma.test)" |
various doc tests.
This function describes test cases and might in future become helpful as an experimental tutorial as well. The main testing feature at the moment is by doctest with cma.test.main() in a Python shell or by python -m cma.test in a system shell.
A simple first overall test:
>>> import cma >>> res = cma.fmin(cma.ff.elli, 3*[1], 1, ... {'CMA_diagonal':2, 'seed':1, 'verbose':-9}) >>> assert res[1] < 1e-6 >>> assert res[2] < 2000
Testing args
argument:
>>> def maxcorr(m): ... val = 0 ... for i in range(len(m)): ... for j in range(i + 1, len(m)): ... val = max((val, abs(m[i, j]))) ... return val >>> x, es = cma.fmin2(cma.ff.elli, [1, 0, 0, 0], 0.5, {'verbose':-9}, args=[True]) # rotated >>> assert maxcorr(es.sm.correlation_matrix) > 0.85, es.sm.correlation_matrix >>> es = cma.CMAEvolutionStrategy([1, 0, 0, 0], 0.5, ... {'verbose':-9}).optimize(cma.ff.elli, args=[1]) >>> assert maxcorr(es.sm.correlation_matrix) > 0.85, es.sm.correlation_matrix
Testing output file consistency with diagonal option:
>>> import cma >>> for val in (0, True, 2, 3): ... _ = cma.fmin(cma.ff.sphere, 3 * [1], 1, ... {'verb_disp':0, 'CMA_diagonal':val, 'maxiter':5}) ... _ = cma.CMADataLogger().load()
Test on the Rosenbrock function with 3 restarts. The first trial only finds the local optimum, which happens in about 20% of the cases.
>>> import cma >>> res = cma.fmin(cma.ff.rosen, 4 * [-1], 0.01, ... options={'ftarget':1e-6, ... 'verb_time':0, 'verb_disp':500, ... 'seed':3}, ... restarts=3) ... # doctest: +ELLIPSIS (4_w,8)-aCMA-ES (mu_w=2.6,w_1=52%) in dimension 4 (seed=3,...) Iterat #Fevals ... >>> assert res[1] <= 1e-6
Notice the different termination conditions. Termination on the target function value ftarget prevents further restarts.
Test of scaling_of_variables option
>>> import cma >>> opts = cma.CMAOptions() >>> opts['seed'] = 4567 >>> opts['verb_disp'] = 0 >>> opts['CMA_const_trace'] = True >>> # rescaling of third variable: for searching in roughly >>> # x0 plus/minus 1e3*sigma0 (instead of plus/minus sigma0) >>> opts['scaling_of_variables'] = [1, 1, 1e3, 1] >>> res = cma.fmin(cma.ff.rosen, 4 * [0.1], 0.1, opts) >>> assert res[1] < 1e-9 >>> es = res[-2] >>> es.result_pretty() # doctest: +ELLIPSIS termination on tolfun=1e-11 final/bestever f-value = ...
The printed std deviations reflect the actual value in the parameters of the function (not the one in the internal representation which can be different).
Test of CMA_stds scaling option.
>>> import cma >>> opts = cma.CMAOptions() >>> s = 5 * [1] >>> s[0] = 1e3 >>> opts.set('CMA_stds', s) #doctest: +ELLIPSIS {'... >>> opts.set('verb_disp', 0) #doctest: +ELLIPSIS {'... >>> res = cma.fmin(cma.ff.cigar, 5 * [0.1], 0.1, opts) >>> assert res[1] < 1800
Testing combination of fixed_variables and CMA_stds options.
>>> import cma >>> options = { ... 'fixed_variables':{1:2.345}, ... 'CMA_stds': 4 * [1], ... 'minstd': 3 * [1]} >>> es = cma.CMAEvolutionStrategy(4 * [1], 1, options) #doctest: +ELLIPSIS (3_w,7)-aCMA-ES (mu_w=2.3,w_1=58%) in dimension 3 (seed=...
Test of elitism:
>>> import cma >>> res = cma.fmin(cma.ff.rastrigin, 10 * [0.1], 2, ... {'CMA_elitist':'initial', 'ftarget':1e-3, 'verbose':-9}) >>> assert 'ftarget' in res[7]
Test CMA_on option and similar:
>>> import cma >>> res = cma.fmin(cma.ff.sphere, 4 * [1], 2, ... {'CMA_on':False, 'ftarget':1e-8, 'verbose':-9}) >>> assert 'ftarget' in res[7] and res[2] < 1e3 >>> res = cma.fmin(cma.ff.sphere, 3 * [1], 2, ... {'CMA_rankone':0, 'CMA_rankmu':0, 'ftarget':1e-8, ... 'verbose':-9}) >>> assert 'ftarget' in res[7] and res[2] < 1e3 >>> res = cma.fmin(cma.ff.sphere, 2 * [1], 2, ... {'CMA_rankone':0, 'ftarget':1e-8, 'verbose':-9}) >>> assert 'ftarget' in res[7] and res[2] < 1e3 >>> res = cma.fmin(cma.ff.sphere, 2 * [1], 2, ... {'CMA_rankmu':0, 'ftarget':1e-8, 'verbose':-9}) >>> assert 'ftarget' in res[7] and res[2] < 1e3
Check rotational invariance:
>>> import cma >>> felli = cma.s.ft.Shifted(cma.ff.elli) >>> frot = cma.s.ft.Rotated(felli) >>> res_elli = cma.CMAEvolutionStrategy(3 * [1], 1, ... {'ftarget': 1e-8}).optimize(felli).result ... #doctest: +ELLIPSIS (3_w,7)-... >>> res_rot = cma.CMAEvolutionStrategy(3 * [1], 1, ... {'ftarget': 1e-8}).optimize(frot).result ... #doctest: +ELLIPSIS (3_w,7)-... >>> assert res_rot[3] < 2 * res_elli[3]
Both condition alleviation transformations are applied during this test, first in iteration 62ish, second in iteration 257ish:
>>> import warnings >>> import cma >>> ftabletrot = cma.fitness_transformations.Rotated(cma.ff.tablet, seed=10) >>> es = cma.CMAEvolutionStrategy(4 * [1], 1, { ... 'tolconditioncov':False, ... 'seed': 8, ... 'CMA_mirrors': 0, ... 'CMA_diagonal_decoding': 0, ... 'ftarget': 1e-8, ... }) # doctest:+ELLIPSIS (4_w... >>> while not es.stop() and es.countiter < 90: ... X = es.ask() ... es.tell(X, [cma.ff.elli(x, cond=1e22) for x in X]) # doctest:+ELLIPSIS NOTE ...iteration=... >>> with warnings.catch_warnings(record=True) as warns: ... while not es.stop(): ... X = es.ask() ... es.tell(X, [ftabletrot(x) for x in X]) # doctest:+ELLIPSIS >>> assert not warns or isinstance(warns[0].message, UserWarning) >>> assert es.countiter <= 355 and 'ftarget' in es.stop(), ( ... "transformation bug in alleviate_condition?", ... es.countiter, es.stop())
Integer handling:
>>> import warnings >>> idx = [0, 1, 5, -1] >>> f = cma.s.ft.IntegerMixedFunction(cma.ff.elli, idx) >>> with warnings.catch_warnings(record=True) as warns: ... es = cma.CMAEvolutionStrategy(4 * [5], 10, dict( ... ftarget=1e-9, seed=5, ... integer_variables=idx ... )) # doctest:+ELLIPSIS (4_w,8)-... >>> assert isinstance(warns[-1].message, UserWarning) # depending >>> es.optimize(f) # doctest:+ELLIPSIS Iterat #Fevals function value ... >>> assert 'ftarget' in es.stop() and es.result[3] < 1800 >>> # mixing integer and fixed variables >>> es = cma.CMA(5 * [1], 1, {'verbose':-9, 'integer_variables':[1,2,4], ... 'fixed_variables':{1:0}}) >>> assert es.opts['integer_variables'] == [1, 3] >>> # TODO: do more testing here or in the class
Parallel objective:
>>> def parallel_sphere(X): return [cma.ff.sphere(x) for x in X] >>> x, es = cma.fmin2(cma.ff.sphere, 3 * [0], 0.1, { ... 'verbose': -9, 'eval_final_mean': True, 'CMA_elitist': 'initial'}, ... parallel_objective=parallel_sphere) >>> assert es.result[1] < 1e-9 >>> x, es = cma.fmin2(None, 3 * [0], 0.1, { ... 'verbose': -9, 'eval_final_mean': True, 'CMA_elitist': 'initial'}, ... parallel_objective=parallel_sphere) >>> assert es.result[1] < 1e-9
Some sort of interactive control via an options file:
>>> es = cma.CMAEvolutionStrategy(4 * [2], 1, dict( ... signals_filename='cma_signals.in', ... verbose=-9)) >>> s = es.stop() >>> es = es.optimize(cma.ff.sphere)
Test of huge lambda:
>>> es = cma.CMAEvolutionStrategy(3 * [0.91], 1, { ... 'verbose': -9, ... 'popsize': 200, ... 'ftarget': 1e-8 }) >>> es = es.optimize(cma.ff.tablet) >>> if es.result.evaluations > 5000: print(es.result.evalutions, es.result)
For VD- and VkD-CMA, see cma.restricted_gaussian_sampler
.
>>> import sys >>> import cma >>> assert cma.interfaces.EvalParallel2 is not None >>> try: ... with warnings.catch_warnings(record=True) as warn: ... with cma.optimization_tools.EvalParallel2(cma.ff.elli) as eval_all: ... res = eval_all([[1,2], [3,4]]) ... except: ... assert sys.version[0] == '2'


18:21 swallowed 40mg pFPP
20:00 I can feel the sight starts to lag
20:30 Smoked a joint
21:00 I'm feeling pretty good, nothing special in particular. I have some butterflies in my stomach, things tends to look soft
21:05 Swallowed another 40mg pFPP
21:14 Smoked some weed
21:17 Puts on my headphones and start to listen to trancemusic. I can feel that something strange is going on inside of me, I lay down on the couch.
21:45 I'm feeling really good, I'm getting chills from time to time from the music, the windows on the screen has become softer and the letters has a red/green glowing aura around it self. It rocks with the mothin of waves.
21:50 smokes a joint
21:54 Sometimes the letters turns into a big blur and I can't read what it says. The hair in my neck rises to heavy music. I lay myself down on the couch again.
21:56 i feel that it's easy to dream away in the music and the eyes roll back (I have no memory of writing this line)
22:38 At 22:28 I felt so damn good that I didn't even care about writing it until later on. The letters is moving more than ever before. (It feels like it was only ten minutes since my last note)
22:45 I smoke on my joint and my eyes easily rolls back when closing my eyes.
23:49 The letters is still moving on the screen and I still feel good, though the peak has passed and I'm listening to chillmusic now. I'm a bit tired
23:56 If I would have had something to make me more alert I could easily go out on a club and dance in this state of mind.
00:27 I'm going to bed. Things are still moving around
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


In the check, error handling can take place as well. Under this circumstance ,if maximum invocations is not a number the script will enter and run these tasks:
- An alert will be raised to notify the user of an error
- The process will call back to the form action so it can be redisplayed. It is best to think of gotoAction as a function call
- Return from this action, since the form has either been canceled or submitted by the form action that was called above
Steps to complete:
- Make the changes to your document as indicated on the right


Please Check Your Internet Connection.
Connection Maybe Disconnected Or Slow.
Tap Here To
Try Again!


Displays state-event charts, for graphical presentation of longitudinal data.
| Version: | 0.1 |
| Depends: | JM |
| Published: | 2013-08-20 |
| Author: | Rutger M. van den Bor and Willem M. van der Wal |
| Maintainer: | Rutger M. van den Bor <r.m.vandenbor at umcutrecht.nl> |
| License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| NeedsCompilation: | no |
| CRAN checks: | SEchart results |
| Reference manual: | SEchart.pdf |
| Package source: | SEchart_0.1.tar.gz |
| Windows binaries: | r-devel: SEchart_0.1.zip, r-release: SEchart_0.1.zip, r-oldrel: SEchart_0.1.zip |
| OS X binaries: | r-release: SEchart_0.1.tgz, r-oldrel: SEchart_0.1.tgz |
Please use the canonical form https://CRAN.R-project.org/package=SEchart to link to this page.


--- layout: post title: I'm presenting on "Schemas for the Real World" at Golden Gate Ruby Conference in September. date: type: post published: false status: draft categories: [] tags: [] meta: google_plus_activity_id: z13wwhtjlybqtp5aw04cglshilm2ehc4tbw author: login: admin email<EMAIL_ADDRESS>display_name: admin first_name: Carina C. last_name: Zon ---
I'm presenting on "Schemas for the Real World" at Golden Gate Ruby Conference in September.
App development, especially for social, challenges us to evaluate how to code for the complexity of modern life. Examples include the growing range of labels people ascribe to their important relationships, sexual orientation, and gender. Users are giving push-back to questions that carry ill-fitted assumptions.
Facebook, Google+, and developers in many other industries are grappling with these issues. The most resilient approaches will arise from an app's own foundations. We'll look at schemas' influence on product scope, UX, and analytics. Then we'll check out a range of approaches for bringing modern realities into any app's schema, views, and logic.
The Golden Gate Ruby Conference
2012 Golden Gate Ruby Conference. September 14–15, 2012 San Francisco, CA at UCSF Mission Bay Register · Home · Speakers · Schedule · Sponsors · Team · Location. Explore new possibilities in the birth...


Listen and Record
Finding application status...
Help
Add a new listening
- Click "New Listening" from the menu above
- Enter your approximate location
- If the potential participant is interested, hit the green button and start recording!
- If they are not interested, record the refusal with the red button and start over.


{% extends "layout.html" %} {% block content %} Men's Fashion Shop Now Women's Fashion Shop Now Luxury Fragrance Shop Now


Ophelia's Oasis
Manage Bookings
Billings
Reports
Occupancy Report
Expected Occupancy Report
Expected Room Income
Incentive Report
Base Rates
Manage Bookings
Select Date:
Get Reservations
No Bookings found
Select Rooms to be Allocated
×
Select Room Numbers:
Room Allocated Successfully!
Checked In Successfully
×
Checked Out Successfully
×
Charge Penalty
×
Penalty Charged


Experience with both front-end and backend web development, eager to learn more!
An app that uses Moment.js and Firebase to store and track times
A group project that uses Yelp and Google Maps APIs to collect data and find a meet-up spot
Social Media
Let's Connect!
LinkedIn
Github
Email


#assign findMap= "true">
findMap (Execute a query returning the result as a map of the objects)
Execute the query returning a map of the objects.
This query will execute against the EbeanServer that was used to create it.
You can use setMapKey()
to specify the property to be used as keys
on the map. If one is not specified then the id
property is used.
The name of the properties is the name they have on the Model, not the name of the database column.
```java
/* Assuming a list of Products exists
with Product(name: "P1", sku: "I1"), Product(name: "P2", sku: "I2")
*/ the following code:
Map map =
ebeanServer.find(Product.class)
.setMapKey("sku")
.findMap();
// map.get("I1").getName() <-- This returns P1
```


Wikidata Workshop 2023
Website of the Wikidata Workshop 2023, co-located with ISWC 2023
https://wikidataworkshop.github.io/2023/Wikidata Workshop 2022
Website of the Wikidata Workshop 2022, co-located with ISWC 2022
https://wikidataworkshop.github.io/2022/Wikidata Workshop 2021
Website of the Wikidata Workshop 2021, co-located with ISWC 2021
https://wikidataworkshop.github.io/2021/Wikidata Workshop 2020
Website of the Wikidata Workshop 2020, co-located with ISWC 2020
https://wikidataworkshop.github.io/2020/


I am a fourth year Software Engineering undergraduate at the University of Califorina, Irvine (UCI). At this institution, I engage in rigorous Computer Science and Informatics courses, partake in the Women in Information and Computer Science (WICS) Club events, and organize people who create entertainment in the Video Game Development Club (VGDC).
My incentive for pursuing a major where women only make up 18% of the U.S. Computer Science graduating classes (acm.org), is to assure underrepresented groups (regardless of gender, ethnicity, and sexual orientation) that there is a place for them in the STEM community.
2018
Jan 24th: Trip to NorCal to tour UC Berkeley's campus!
2017
Dec 11th: Submitted my undergraduate internship application to Microsoft Research Labs(MSR)! Research statement can be found here.
Nov 17th: Presented at the STEM Program's 6th Annual Fall Research Symposium!
Oct 31st:
IMPORTANT NEWS:
Look out for my collaboration the Cypress College's STEM Program in launching our very first high school outreach programs designed specifically to support underrepresented groups. Check out one of the resources we are implementing -> Google igniteCS!
Oct 19th - 22nd: Had an amazing time at the HENAAC Conference! Definitely attending next year.
Oct 5th: Got the secretary position for the LGBT Club at Cypress College!
Sept 22nd: Got selected to attend the HENAAC Conference!
Sept 6th: Turning 20 years old! ;D
Aug 29th: - Got the STEM Club leadership position: STEM Science Ambassador! Excited!
Aug 28th: Start of the Fall 2017 semester. One more semester after this one and I'm transferring! #stayingstrong
Aug 23rd: Got the position of STEM Family Group Leader for the STEM Program! The position allows me to showcase my leadership skills by conducting activities/events among an intimate group of STEM scholars all while assisting them with personal and school-related concerns!
Aug 19th: Marks the end of the STARS program at UC San Diego. Such an enriching and educational experience!
Aug 18th: Presented my research work and experience at the STARS Conference! (video posted soon)
Aug 16th: Created my first professional twitter account!
Aug 16th: Presented a talk at UC San Diego's Design Lab on 'Creating Tutorial Videos to Improve Public Enagement with Scientific Websites'.
Aug 14th-15th: Practiced my presentation for the STARS Conference.
Aug 11th: Completed the Gut Instinct Features Video and Gut Instinct Introduction Video.
Jul 17th: Submitted my abstract to the STARS program for my summer research project.
Jul 15th: Had a cool first experience at San Diego PRIDE!!
Jul 12th: Registered for Fall 2017 courses!
Jul 11th: Applied to be a family group leader for Cypress College's STEM program!
Jul 6th: Attended a STARS workshop conference.
Jul 1st: First time at the San Diego Zoo!
Jun 29th: Attended a Gut Instinct update meeting with The Knight Lab and Design Lab.
Jun 27th: Attended my first GRE course.
Jun 25th: First day of UC San Diego's STARS Program!
May 4th: Awarded the Cypress College Foundation Scholarship!
Apr 28th Attended UCLA’s Annual STOMP Conference.
Mar 30th: Received acceptance to UC San Diego’s Summer Training Academy for Research Success (STARS) program!
Mar 19th: Made the Cypress College Newsletter for feeding the homeless at La Palma Park via Coast-to-Coast Foundation.
Feb 9th: Achieved Dean’s Honor Roll Fall 2016 Semester (Top 6% of the student body).
2016
Sept 18th: STEM Club Feeding the Homeless Event via Coast-to-Coast Foundation.
Sept 9th: Got my first job ever and its at Gamestop!
Aug 28th: Got accepted to the STEM program at Cypress College!
Jul 21st: Achieved Dean’s Honor Roll Spring 2016 Semester. Makes up top 6% of the student body.
Jul 12th: Participated in Dr. Porter’s research on African Americans in STEM majors.
Apr 22nd: Achieved President’s Honor Roll 2015 Fall Semester. Makes up top 4% of the student body.
2015
Dec 10th: Completed my final English research paper on women in STEM careers with a specific focus on technological departments.
Oct 4th:
Completed my first PC build
(Photos under 'Projects' section).
Building My Custom PC
October 2015
After saving a bit of money from birthdays, holidays and high school graduation, I assembled my first desktop PC during the summer of 2015. At this time I had two incentives. The first was to produce a machine with the ability to support games and programs who heavily demanded certain necessary specifications. The second was to produce something related to my major for me to call my own. With minimal help from an IT Technician family friend, it was successfully built in a span of one week. The total cost accumulated to 1300 USD solely for the PC components including the case.
Studies
Lifestyle
UCSD STARS Program
June - August 2017
During the summer of 2017, I was selected by UC San Diego to engage in their Summer Training Academy for Research Success (STARS) program. I collaborated with PhD student Vineet Pandey as well as the inspiring Cognitive Science and Computer Science & Engineering University of California San Diego professor Scott Klemmer. For the duration of eight weeks, I became an asset to the ‘Gut Instinct: Creating Scientific Theories with Online Learners’ development team led by Vineet Pandey in UCSD’s Design Lab.
*Note: The lab talk video can be found by clicking the project name 'UCSD STARS Program' above.


Online ALAC
Home
Threads
Mentors
Profile
Sign Out
Search:
Go
Ask questions, participate in discussions, and receive mentor feedback
Register
Login


dims = {}
for varname in varnames:
dims.setdefault(varname, [])
return varnames, coords, dims
dims = {}
for varname in varnames:
if varname not in dims:
vals = trace.get_values(varname, combine=False, squeeze=False)
vals = np.array(vals)
shape_len = len(vals.shape)
if shape_len == 2:
dims[varname] = []
else:
dims[varname] = [f"{varname}_dim_{idx}" for idx in range(1, shape_len-2+1)]
return varnames, coords, dims
def verify_coords_dims(varnames, trace, coords, dims):


the and for (). with that from {background extinct The were sequence sloths margin {border-style are Lestodon collagen px;} was #ffffff;} Megatherium phylogenetic two been sequences analysis peptide between extant sloth this Choloepus has molecular one using American South acid del other Molecular data have more morphological then COLA []. al. analyses ground information mass most not only taxa Arroyo matches protein sister than which Although Bradypus MALDI amino ancient group including phylogenies phylogeny potential proteomics px; relationships results used {font-family University aDNA also bone both but could each font-size modern observed proteins specimens (Sheet BuckleyM, Journal Likelihood Maximum This Vizcaíno [], additional all described double; further its mammals range species spectra subsequent through DNA Florida, However, Mascot Nothrotheriops Proceedings Royal Society Xenarthra acquired among basal border-color border-width can collagen, comparison differences false fingerprints fossil giant here obtained position positive sloths, solid; study under variable well within xenarthran yield {font-style {font-weight (ESI) (MALDI) (Table (e.g., BuckleyM Facultad Fig File File). MS/MS Manchester, Mass Mylodon Mylodontidae Phylogenetic Rapid Trampas Universidad alpha although any bold carried courier; currently different due em; evolution():–. four funded funding greater groups highest las likely methods new noted number out permits placed proteome pt;} sample sequences, sequencing should since studies support their type unique variation where


--- layout: successCriteria title: "Pause, Stop, Hide" successCriteria: "2-2-2" successCriteriaTitle: "Pause, Stop, Hide" technology: "alt2" ---
Everyone wants to keep up with the latest trends in web and app design, which may include moving images, sound, blinking lights and fast updates.
But all those features can interfere with or destroy the user experience for many people, distracting them from your key content or leaving them behind.
That's why it's key that users should be able to Pause, Stop, and Hide any moving and interactive features and experience a clean, quiet, still page.
Some people with visible and invisible disabilities can be overwhelmed, confused and even made ill by images that move, blink, make sounds, scroll or update frequently.
Blinking and movement are particularly distracting for some people with a range of cognitive disabilities.
Some also might need more time to find, read, process or respond to the images and sounds.
And some assistive technology can’t process all your added features at their set speed or at all.
Avoid autoplay where unnecessary.
Create a function to Pause, Stop, and Hide elements that: Move, Blink or Scroll, Update or makes Sounds.
Pausing gives users more time to experience each image and requires unpausing to continue.
Stop should be available even for short-lived sounds and images.
Hide allows users to see a page without any of the distractions.
Create a parallel text experience for those who don't want movement or sound, so they can access the information without having to watch, listen or feel.
Provide users with control over frequency of updates, except where auto-updating is essential to the function. Use jump-to-current function when users unpause, so they can get the latest information when they’re ready.
There is a 5-second exception for flashing content that is necessary. [NOTE: Why??]
Features where auto-updates are essential, such as streaming video, are allowed, where the person chooses to play it.
Animations showing update progress are allowed, as removing them might make users think the function was frozen or broken.
It may not be possible to translate everything in the movement feature into text. It is important to translate that which is essential to understanding.
The difference between blinking and flashing is the speed of the change. Blinking is slower; flashes occur faster than 3 times per second and are usually brighter and can trigger seizures.
For rules about Flashes, see also 2.3. Flashes are not included in this section because pausing and stopping functions are not enough to reduce their risks.
It is ok to require all users to view a 15-second advertisement before accessing other free video content.
How to use scripts to add pause, stop, hide features.
How to add buttons for clean, quiet, still experience option.
SL 11, 12, 24.
Carousels are not accessible for some people. It is better to have a slide show that someone clicks through at their own pace.
Videos, synchronized media presentations, animations, real-time games, advertisements, scrolling stock tickers, as well as auto-updated weather information, news and stock prices all need pause, stop, and hide features.
For "status" information like stock tickers, stock prices, weather information and news, unpausing should then jump-to-present to provide latest information.
Use pause functions in games so users can take more time for their turn and continue to participate in the competition.


This program creates a windowed program using Java Swing components that displays a circle and a slider that can change the circle's diameter between 100 and 200. The circle is updated in real-time, as are the displayed values for diameter, area, and circumference.
As the user moves the slider back and forth, the circle is redrawn and the values of the diameter, area, and circumference are updated.
Calculations: Area = pi *(diameter)^2 / 4; Circumference = pi * diameter
The code consists of the CircleWithSlider class that extends JFrame. An object of type CirclePanel is created, along with a JSlider to control the circle drawn by the CirclePanel. An anonymous inner class is created in the CircleWithSlider constructor to handle state change events generated by the slider, which calls the CirclePanel objects setDiameter method.
The calculations for area and circumference are performed using PI from java.lang.Math.PI.
Additionally, a JTextArea displays the diameter and the results of the calculations for area and circumference. It is also updated by the handler created in the anonymous inner class of the CircleWithSlider constructor.


It was hard but you did it! You now are the rightful heir of the throne
Restart the game and try once again!


The benefits of using a URL shortener service to share URLs are well known. But what many URL shortener services do under the guise of free is sell your and your user's data to 3rd party trackers. We built this service, not only
to offer a privacy-oriented option but also one which protects your URL from spambots. eg. WhatsApp/Telegram group chat links are often a target of spambots in online forums.
Captcha
The current approach is to challenge users with a captcha before they can see the original URL.  Given how URL shortener services are especially prone to
abuse, captcha offers the right balance between security and user experience. It is very hard to differentiate between a spambot and a legitimate user without
harvesting the user's activity data. The choice between violating user's privacy and an extra step is a simple one. You can also install
Privacy Pass extension to bypass the captcha
challenge while preserving user anonymity.
We rely on
hCaptcha for the captcha challenge. hCaptcha is a popular privacy-focused alternative to Google's
reCAPTCHA and is trusted by
large internet companies like
Cloudflare.
Of course, captcha is not a complete solution for spam in any way. There are
many businesses that employ an army of Humans to solve captchas. The
goal is to make it difficult enough so that it is not economically viable to spammers.
Also, everytime you solve a captcha, you make a small donation to the Wikimedia Foundation.
Security
To protect our users from Malware or Phishing, we do not auto-redirect users to the original URL. The users are shown the full URL in text and make a conscious decision on whether to visit the full URL or not.
Analytics
(Coming soon)
Credits
Illustration credits go to
pixeltrue.
Favicon is built using
Free Favicon Maker by Formito.
This service is
open-source and built by wonderful people
here.


The company has a monthly production capacity of
1,200,000
pounds (545 tonnes).
These are our principal products:
* Soon we will be able to offer fruit slices and frozen vegetables in accordance with IQF process (Individually Quick Frozen).


Copyright © 2011-2012 Krzysztof Jusiak (krzysztof at jusiak dot net) Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)


This example consists of a body that is attached to the world system with a spherical joint. On this body, a "rotor", i.e., a body with rotational symmetry is present. Two kinds of models are shown:
The simulation reveals that both the kinematic movement and the reaction forces on the environment (object "world" and "fixed" respectively) are identical for both models.
A typical usage scenario is to model a complete drive train of a vehicle, including the automatic gearbox, with elements of the "Mechanics.Rotational" library, but using the "Rotor1D" model instead of the "Rotational.Components.Inertia" component. This drive train model can be mounted on a 3-dim. multi-body model of the vehicle. Additionally, one rigid body has to be fixed to the vehicle that has the mass, center of mass and inertia tensor of the complete drive train. Both models together, give exactly the same effect, as if every part of the drive train would have been modelled solely with mult-body components. One benefit of this modeling is that the simulation is much faster.


Gecode::Search::FailStop Class Reference
[Stop-objects for stopping search]
Stop-object based on number of failures More...
#include <search.hh>
Public Member Functions | |
| FailStop (unsigned long int l) | |
| Stop if failure limit l is exceeded. | |
| unsigned long int | limit (void) const |
| Return current limit. | |
| void | limit (unsigned long int l) |
| Set current limit to l failures. | |
| virtual bool | stop (const Statistics &s, const Options &o) |
| Return true if failure limit is exceeded. | |
Protected Attributes | |
| unsigned long int | l |
| Failure limit. |
Detailed Description
Stop-object based on number of failures
The number of failures reported (by the statistics) is the number since the engine started exploration. It is not the number since the last stop!
Definition at line 850 of file search.hh.
Constructor & Destructor Documentation
| Gecode::Search::FailStop::FailStop | ( | unsigned long int | l | ) | [inline] |
Member Function Documentation
| unsigned long int Gecode::Search::FailStop::limit | ( | void | ) | const [inline] |
| void Gecode::Search::FailStop::limit | ( | unsigned long int | l | ) | [inline] |
| bool Gecode::Search::FailStop::stop | ( | const Statistics & | s, | |
| const Options & | o | |||
| ) | [virtual] |
Return true if failure limit is exceeded.
Implements Gecode::Search::Stop.
Member Data Documentation
unsigned long int Gecode::Search::FailStop::l [protected] |
The documentation for this class was generated from the following files:


McDonald's to host free polio vaccination hubs in NCR, Mindanao
The Department of Health partners with McDonald's Philippines for the next rounds of the nationwide polio vaccination program
by Michelle AbadSubscribe
Email Address
Newsletters
- Glenda Gloria's Take this Tuesday
- Huddle by Miriam Grace Go
- The Newsbreak Agenda by Chay Hofileña
- Sometimes, all you need is video by Lilibeth Frondoso


Thousands march in Hanover to protest far-right demo
by AFPAround 7,000 people marched in the German city of Hanover on Saturday to counter a gathering of around 120 far-right nationalists called to denounce media coverage of neo-nazi groups.
The counter-protesters, carrying a range of flags and placards, many defending diversity and freedom of the press, marched in the northern city.
Police put the total turnout for two separate counter-demonstrations at 7,000. They said around 120 members of the far-right National Democratic Party (NPD) turned out for their protest.
Earlier in the week, police had tried to ban the NPD demonstration, arguing it posed a danger to public safety, but on Friday a court ruled that it could go ahead.
The NPD called their demonstration to denounce journalists -- a number of whom they named -- who have investigated the far-right in Germany.
German Foreign Minister Heiko Maas tweeted: "We were able to see in Hanover what is true for all of Germany: the neo-nazis and fear-mongers who stir up hate against journalists are a minority."
One journalist the NPD singled out was Julian Feldmann, who made a programme for German state television about suspected Nazi war criminal Karl Münter, implicated in a 1944 massacre of 86 people in Ascq, northern France.
In a television interview, former SS soldier Münter blamed the victims of the massacre and also made negationist remarks about the Holocaust. While awaiting trial on charges of incitement and disparaging the memory of Nazi victims, Münter died at the age of 96 in September.
Founded in 1964, the NPD has around 6,000 members.
In January 2017, the constitutional court, the highest jurisdiction in Germany, rejected moves to ban the party -- the second time it has blocked such a move in 15 years.


| HBASE-5928 |
Hbck shouldn't npe when there are no tables. |
Minor |
. |
Elliott Clark |
Elliott Clark |
| HBASE-5902 |
Some scripts are not executable |
Trivial |
scripts |
Nicolas Liochon |
Nicolas Liochon |
| HBASE-5894 |
Table deletion failed but HBaseAdmin#deletetable reports it as success |
Minor |
. |
xufeng |
xufeng |
| HBASE-5963 |
ClassCastException: FileSystem$Cache$ClientFinalizer cannot be cast to Thread |
Major |
. |
Andrew Purtell |
Ted Yu |
| HBASE-5964 |
HFileSystem: "No FileSystem for scheme: hdfs" |
Major |
. |
Andrew Purtell |
Andrew Purtell |
| HBASE-5975 |
Failed suppression of fs shutdown hook with Hadoop 2.0.0 |
Major |
. |
Jimmy Xiang |
Jimmy Xiang |
| HBASE-5922 |
HalfStoreFileReader seekBefore causes StackOverflowError |
Critical |
Client, io |
Nate Putnam |
Nate Putnam |
| HBASE-5806 |
Handle split region related failures on master restart and RS restart |
Major |
. |
ramkrishna.s.vasudevan |
Chinna Rao Lalam |
| HBASE-6029 |
HBCK doesn't recover Balance switch if exception occurs in onlineHbck() |
Major |
hbck |
Maryann Xue |
Maryann Xue |
| HBASE-5741 |
ImportTsv does not check for table existence |
Major |
mapreduce |
Clint Heath |
Himanshu Vashishtha |
| HBASE-6018 |
hbck fails with a RejectedExecutionException when >50 regions present |
Major |
. |
Jonathan Hsieh |
Jonathan Hsieh |
| HBASE-6021 |
NullPointerException when running LoadTestTool without specifying compression type |
Minor |
util |
Andrew Purtell |
Andrew Purtell |
| HBASE-6011 |
Unable to start master in local mode |
Major |
. |
Andrew Purtell |
Andrew Purtell |
| HBASE-5546 |
Master assigns region in the original region server when opening region failed |
Minor |
master |
gaojinchao |
Ashutosh Jindal |
| HBASE-6056 |
Restore hbase-default version check |
Major |
. |
stack |
stack |
| HBASE-5840 |
Open Region FAILED_OPEN doesn't clear the TaskMonitor Status, keeps showing the old status |
Major |
regionserver |
Gopinathan A |
rajeshbabu |
| HBASE-5757 |
TableInputFormat should handle as many errors as possible |
Major |
mapreduce |
Jan Lukavsky |
Jan Lukavsky |
| HBASE-5927 |
SSH and DisableTableHandler happening together does not clear the znode of the region and RIT map. |
Major |
master |
Jieshan Bean |
rajeshbabu |
| HBASE-6069 |
TableInputFormatBase#createRecordReader() doesn't initialize TableRecordReader which causes NPE |
Critical |
mapreduce |
Jie Huang |
Jie Huang |
| HBASE-6070 |
AM.nodeDeleted and SSH races creating problems for regions under SPLIT |
Major |
. |
ramkrishna.s.vasudevan |
ramkrishna.s.vasudevan |
| HBASE-5986 |
Clients can see holes in the META table when regions are being split |
Major |
. |
Enis Soztutar |
Enis Soztutar |
| HBASE-6050 |
HLogSplitter renaming recovered.edits and CJ removing the parent directory race, making the HBCK think cluster is inconsistent. |
Major |
. |
ramkrishna.s.vasudevan |
ramkrishna.s.vasudevan |
| HBASE-6002 |
Possible chance of resource leak in HlogSplitter |
Major |
wal |
Chinna Rao Lalam |
Chinna Rao Lalam |
| HBASE-6065 |
Log for flush would append a non-sequential edit in the hlog, leading to possible data loss |
Critical |
wal |
chunhui shen |
chunhui shen |
| HBASE-6047 |
Put.has() can't determine result correctly |
Major |
Client |
Wang Qiang |
Alex Newman |
| HBASE-6088 |
Region splitting not happened for long time due to ZK exception while creating RS_ZK_SPLITTING node |
Major |
. |
Gopinathan A |
rajeshbabu |
| HBASE-6115 |
NullPointerException is thrown when root and meta table regions are assigning to another RS. |
Minor |
. |
rajeshbabu |
ramkrishna.s.vasudevan |
| HBASE-5916 |
RS restart just before master intialization we make the cluster non operative |
Critical |
. |
ramkrishna.s.vasudevan |
ramkrishna.s.vasudevan |
| HBASE-6095 |
ActiveMasterManager NullPointerException |
Minor |
master |
Jimmy Xiang |
Jimmy Xiang |
| HBASE-6126 |
Fix broke TestLocalHBaseCluster in 0.92/0.94 |
Major |
. |
stack |
stack |
| HBASE-6133 |
TestRestartCluster failing in 0.92 |
Major |
. |
stack |
stack |
| HBASE-5722 |
NPE in ZKUtil#getChildDataAndWatchForNewChildren when ZK not available or NW down. |
Major |
Zookeeper |
Uma Maheswara Rao G |
Uma Maheswara Rao G |
| HBASE-5733 |
AssignmentManager#processDeadServersAndRegionsInTransition can fail with NPE. |
Major |
master |
Uma Maheswara Rao G |
Uma Maheswara Rao G |
| HBASE-6049 |
Serializing "List" containing null elements will cause NullPointerException in HbaseObjectWritable.writeObject() |
Major |
io |
Maryann Xue |
Maryann Xue |
| HBASE-6068 |
Secure HBase cluster : Client not able to call some admin APIs |
Major |
security |
Anoop Sam John |
Matteo Bertozzi |
| HBASE-6016 |
ServerShutdownHandler#processDeadRegion could return false for disabling table regions |
Major |
master |
chunhui shen |
chunhui shen |
| HBASE-6122 |
Backup master does not become Active master after ZK exception |
Major |
. |
ramkrishna.s.vasudevan |
ramkrishna.s.vasudevan |
| HBASE-6089 |
SSH and AM.joinCluster causes Concurrent Modification exception. |
Major |
. |
ramkrishna.s.vasudevan |
rajeshbabu |
| HBASE-6141 |
InterfaceAudience breaks 0.94 on older versions of hadoop |
Major |
. |
Elliott Clark |
Elliott Clark |
| HBASE-5874 |
When 'fs.default.name' not configured, the hbck tool and Merge tool throw IllegalArgumentException. |
Major |
hbck |
fulin wang |
fulin wang |
| HBASE-6158 |
Data loss if the words 'merges' or 'splits' are used as Column Family name |
Major |
master, regionserver |
Aditya Kishore |
Aditya Kishore |
| HBASE-6046 |
Master retry on ZK session expiry causes inconsistent region assignments. |
Major |
master |
Gopinathan A |
ramkrishna.s.vasudevan |
| HBASE-6160 |
META entries from daughters can be deleted before parent entries |
Major |
Client, regionserver |
Enis Soztutar |
Enis Soztutar |
| HBASE-6146 |
Disabling of Catalog tables should not be allowed |
Major |
Client |
Anoop Sam John |
Anoop Sam John |
| HBASE-6185 |
Update javadoc for ConstantSizeRegionSplitPolicy class |
Major |
documentation |
nneverwei |
|
| HBASE-6237 |
Fix race on ACL table creation in TestTablePermissions |
Major |
security, test |
Andrew Purtell |
Andrew Purtell |
| HBASE-6164 |
Correct the bug in block encoding usage in bulkload |
Major |
mapreduce |
Anoop Sam John |
Anoop Sam John |
| HBASE-5918 |
Master will block forever at startup if root server dies between assigning root and assigning meta |
Major |
master |
chunhui shen |
chunhui shen |
| HBASE-6248 |
Jetty init may fail if directory name contains "master" |
Minor |
master |
Dave Revell |
Dave Revell |
| HBASE-6246 |
Admin.move without specifying destination does not go through AccessController |
Major |
Coprocessors, security |
ramkrishna.s.vasudevan |
rajeshbabu |
| HBASE-6236 |
Offline meta repair fails if the HBase base mount point is on a different cluster/volume than its parent in a ViewFS or similar FS |
Major |
hbck |
Aditya Kishore |
Aditya Kishore |
| HBASE-5875 |
Process RIT and Master restart may remove an online server considering it as a dead server |
Major |
. |
ramkrishna.s.vasudevan |
ramkrishna.s.vasudevan |
| HBASE-6240 |
Race in HCM.getMaster stalls clients |
Critical |
. |
Jean-Daniel Cryans |
ramkrishna.s.vasudevan |
| HBASE-6200 |
KeyComparator.compareWithoutRow can be wrong when families have the same prefix |
Blocker |
. |
Jean-Daniel Cryans |
Jieshan Bean |
| HBASE-6227 |
SSH and cluster startup causes data loss |
Major |
master |
chunhui shen |
chunhui shen |
| HBASE-6229 |
AM.assign() should not set table state to ENABLED directly. |
Major |
. |
rajeshbabu |
rajeshbabu |
| HBASE-6195 |
Increment data will be lost when the memstore is flushed |
Major |
regionserver |
ShiXing |
ShiXing |
| HBASE-6265 |
Calling getTimestamp() on a KV in cp.prePut() causes KV not to be flushed |
Critical |
regionserver |
Lars George |
Lars George |
| HBASE-6210 |
Backport HBASE-6197 to 0.94 |
Blocker |
. |
stack |
ramkrishna.s.vasudevan |
| HBASE-5955 |
Guava 11 drops MapEvictionListener and Hadoop 2.0.0-alpha requires it |
Major |
. |
Andrew Purtell |
Lars Hofhansl |
| HBASE-6303 |
HCD.setCompressionType should use Enum support for storing compression types as strings |
Minor |
io |
Gopinathan A |
Andrew Purtell |
| HBASE-6269 |
Lazyseek should use the maxSequenseId StoreFile's KeyValue as the latest KeyValue |
Major |
regionserver |
ShiXing |
ShiXing |
| HBASE-6281 |
Assignment need not be called for disabling table regions during clean cluster start up. |
Major |
. |
rajeshbabu |
rajeshbabu |
| HBASE-5876 |
TestImportExport has been failing against hadoop 0.23 profile |
Major |
. |
Ted Yu |
Jonathan Hsieh |
| HBASE-6326 |
Avoid nested retry loops in HConnectionManager |
Critical |
. |
Lars Hofhansl |
Lars Hofhansl |
| HBASE-6293 |
HMaster does not go down while splitting logs even if explicit shutdown is called. |
Major |
. |
rajeshbabu |
Lars Hofhansl |
| HBASE-5909 |
SlabStats should be a daemon thread |
Major |
. |
Jean-Daniel Cryans |
Lars Hofhansl |
| HBASE-6328 |
FSHDFSUtils#recoverFileLease tries to rethrow InterruptedException but actually shallows it |
Minor |
master, regionserver |
Nicolas Liochon |
Nicolas Liochon |
| HBASE-6311 |
Data error after majorCompaction caused by keeping MVCC for opened scanners |
Blocker |
regionserver |
chunhui shen |
chunhui shen |
| HBASE-6313 |
Client hangs because the client is not notified |
Major |
. |
binlijin |
binlijin |
| HBASE-6329 |
Stopping META regionserver when splitting region could cause daughter region to be assigned twice |
Major |
master |
chunhui shen |
chunhui shen |
| HBASE-4379 |
[hbck] Does not complain about tables with no end region [Z,] |
Major |
hbck |
Jonathan Hsieh |
Anoop Sam John |
| HBASE-6357 |
Failed distributed log splitting stuck on master web UI |
Major |
master |
Jimmy Xiang |
Jimmy Xiang |
| HBASE-6337 |
[MTTR] Remove renaming tmp log file in SplitLogManager |
Major |
. |
chunhui shen |
chunhui shen |
| HBASE-6284 |
Introduce HRegion#doMiniBatchMutation() |
Major |
Performance, regionserver |
Ted Yu |
Anoop Sam John |
| HBASE-6369 |
HTable is not closed in AggregationClient |
Major |
. |
binlijin |
binlijin |
| HBASE-6375 |
Master may be using a stale list of region servers for creating assignment plan during startup |
Major |
master |
Aditya Kishore |
Aditya Kishore |
| HBASE-6377 |
HBASE-5533 metrics miss all operations submitted via MultiAction |
Major |
metrics, regionserver |
Andrew Purtell |
Andrew Purtell |
| HBASE-6380 |
bulkload should update the store.storeSize |
Critical |
regionserver |
Jie Huang |
Jie Huang |
| HBASE-6394 |
verifyrep MR job map tasks throws NullPointerException |
Minor |
Replication |
Jimmy Xiang |
Jimmy Xiang |
| HBASE-6397 |
[hbck] print out bulk load commands for sidelined regions if necessary |
Trivial |
hbck |
Jimmy Xiang |
Jimmy Xiang |
| HBASE-5883 |
Backup master is going down due to connection refused exception |
Major |
master |
Gopinathan A |
Jieshan Bean |
| HBASE-6420 |
Gracefully shutdown logsyncer |
Major |
wal |
Jimmy Xiang |
Jimmy Xiang |
| HBASE-6392 |
UnknownRegionException blocks hbck from sideline big overlap regions |
Major |
. |
Jimmy Xiang |
Jimmy Xiang |
| HBASE-6426 |
Add Hadoop 2.0.x profile to 0.92+ |
Major |
. |
Lars Hofhansl |
Lars Hofhansl |
| HBASE-6325 |
[replication] Race in ReplicationSourceManager.init can initiate a failover even if the node is alive |
Major |
. |
Jean-Daniel Cryans |
Jean-Daniel Cryans |
| HBASE-6319 |
ReplicationSource can call terminate on itself and deadlock |
Major |
. |
Jean-Daniel Cryans |
Jean-Daniel Cryans |
| HBASE-5966 |
MapReduce based tests broken on Hadoop 2.0.0-alpha |
Major |
mapreduce, test |
Andrew Purtell |
Jimmy Xiang |
| HBASE-6406 |
TestReplicationPeer.testResetZooKeeperSession and TestZooKeeper.testClientSessionExpired fail frequently |
Major |
. |
Lars Hofhansl |
Lars Hofhansl |
| HBASE-6440 |
SplitLogManager - log the exception when failed to finish split log file |
Major |
. |
Jimmy Xiang |
Jimmy Xiang |
| HBASE-4470 |
ServerNotRunningException coming out of assignRootAndMeta kills the Master |
Critical |
. |
Jean-Daniel Cryans |
Gregory Chanan |
| HBASE-6445 |
rat check fails if hs_err_pid26514.log dropped in tests |
Major |
. |
stack |
stack |


How can we Help?
A fully functional search system.
Most comon Questions we Get
Frequent Questions
We get asked these questions a lot, so we made this small section to help you out identifying what you need faster.
Is this a PWA?
Yes. Our item is a PWA. We have a servier worker and a manifest.json file ready and prepared for you to use the item offline.
Is this a Cordova App?
No, but we have a ready built version in our portfolio and you can convert it to Cordova yourself. It's really simple.
Is this a WordPres Theme?
No. Our item is a HTML, CSS3 and JS Site Template. You can however convert it to a WordPress Theme.
Is this built with Boostrap?
Yes! We include 2 versions, one built with Boostrap, and a much more flexible and powerful custom AJAX version.


Mineral Trader Hitchi:
Just a minute, what's the hurry?
 Wouldn't you like to be an Artisan?
Don't get me wrong... I just wanted to find out what you thought about our six Dwarven guilds.
"Stop right there."


This northernmost island of the Maldives has become a popular stopover for yachts en route from Sri Lanka to the Red Sea.
Position 07° 04'56"N, 72° 55'08"E
See Maldives Clearance for main clearance information.
See Maldives Clearance Agents for a list of agents in Uligamu.
Clearance is now possible here and the authorities are reported to be very welcoming. Arriving yachts should call Customs on VHF 16.
There are strict restrictions on visiting ashore: visitors may not go ashore between 10 p.m. and 6 a.m., no alcohol may be taken ashore, women must be properly dressed, and no islanders may board a boat.
Cruisers report that it is cheaper to enter the Maldives via Uligamu than Male.
No agent is required if staying less than 3 days.
Last updated August 2015.
Anchor in 5m in clear sand just NW of a new harbour breakwater on the west side of the island, or further off in greater depths. If the wind is coming from the NW you should anchor off the south east side of the island.
Uligamu anchoring fee is free for the first 15 days and then just less than $4 per day.
Last updated August 2015.


Share this high score with...
To:
<EMAIL_ADDRESS>,
@googleaccess
,
+chrome
,
sergey.brin@goo
Subject:
All your base are belong to us.


{{> (config config.partials.head) title=config.defaultPageTitle }}
Looks like you've entered an incorrect page URL, or the page you are looking for no longer exists.


| I l@ve RuBoard |
15.3 HTMLgen: Web Pages from ObjectsOne of the things that makes CGI scripts complex is their inherent dependence on HTML: they must embed and generate legal HTML code to build user interfaces. These tasks might be easier if the syntax of HTML were somehow removed from CGI scripts and handled by an external tool. HTMLgen is a third-party Python tool designed to fill this need. With it, programs build web pages by constructing trees of Python objects that represent the desired page and "know" how to format themselves as HTML. Once constructed, the program asks the top of the Python object tree to generate HTML for itself, and out comes a complete, legally formatted HTML web page. Programs that use HTMLgen to generate pages need never deal with the syntax of HTML; instead, they can use the higher-level object model provided by HTMLgen and trust it to do the formatting step. HTMLgen may be used in any context where you need to generate HTML. It is especially suited for HTML generated periodically from static data, but can also be used for HTML creation in CGI scripts (though its use in the CGI context incurs some extra speed costs). For instance, HTMLgen would be ideal if you run a nightly job to generate web pages from database contents. HTMLgen can also be used to generate documents that don't live on the Web at all; the HTML code it produces works just as well when viewed offline. 15.3.1 A Brief HTMLgen TutorialWe can't investigate HTMLgen in depth here, but let's look at a few simple examples to sample the flavor of the system. HTMLgen is shipped as a collection of Python modules that must be installed on your machine; once it's installed, you simply import objects from the HTMLgen module corresponding to the tag you wish to generate, and make instances: C:\Stuff\HTMLgen\HTMLgen>python >>> from HTMLgen import * >>> p = Paragraph("Making pages from objects is easy\n") >>> p <HTMLgen.Paragraph instance at 7dbb00> >>> print p
Making pages from objects is easy
 Here, we make a HTMLgen.Paragraph object (a class instance), passing in the text to be formatted. All HTMLgen objects implement __str__ methods and can emit legal HTML code for themselves. When we print the Paragraph object, it emits an HTML paragraph construct. HTMLgen objects also define append methods, which do the right thing for the object type; Paragraphs simply add appended text to the end of the text block: >>> p.append("Special < characters > are & escaped") >>> print p
Making pages from objects is easy Special < characters > are & escaped
 Notice that HTMLgen escaped the special characters (e.g., < means <) so that they are legal HTML; you don't need to worry about writing either HTML or escape codes yourself. HTMLgen has one class for each HTML tag; here is the List object at work, creating an ordered list: >>> choices = ['python', 'tcl', 'perl'] >>> print List(choices)

python
tcl
perl
 In general, HTMLgen is smart about interpreting data structures you pass to it. For instance, embedded sequences are automatically mapped to the HTML code for displaying nested lists: >>> choices = ['tools', ['python', 'c++'], 'food', ['spam', 'eggs']] >>> l = List(choices) >>> print l

tools

python
c++

food

spam
eggs

 Hyperlinks are just as easy: simply make and print an Href object with the link target and text. (The text argument can be replaced by an image, as we'll see later in Example 15-3.) >>> h = Href('http://www.python.org', 'python') >>> print h python To generate HTML for complete pages, we create one of the HTML document objects, append its component objects, and print the document object. HTMLgen emits a complete page's code, ready to be viewed in a browser: >>> d = SimpleDocument(title='My doc') >>> p = Paragraph('Web pages made easy') >>> d.append(p) >>> d.append(h) >>> print d <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">    <META NAME="GENERATOR" CONTENT="HTMLgen 2.2.2"> <TITLE>My doc</TITLE>
Web pages made easy
 python   There are other kinds of document classes, including a SeriesDocument that implements a standard layout for pages in a series. SimpleDocument is simple indeed: it's essentially a container for other components, and generates the appropriate wrapper HTML code. HTMLgen also provides classes such as Table, Form , and so on, one for each kind of HTML construct. Naturally, you ordinarily use HTMLgen from within a script, so you can capture the generated HTML in a file or send it over an Internet connection in the context of a CGI application (remember, printed text goes to the browser in the CGI script environment). The script in Example 15-2 does roughly what we just did interactively, but saves the printed text in a file. Example 15-2. PP2E\Internet\Other\htmlgen101.pyimport sys from HTMLgen import * p = Paragraph('Making pages from objects is easy.\n') p.append('Special < characters > are & escaped') choices = ['tools', ['python', 'c++'], 'food', ['spam', 'eggs']] l = List(choices) s = SimpleDocument(title="HTMLgen 101") s.append(Heading(1, 'Basic tags')) s.append(p) s.append(l) s.append(HR( )) s.append(Href('http://www.python.org', 'Python home page')) if len(sys.argv) == 1: print s # send html to sys.stdout or real file else: open(sys.argv[1], 'w').write(str(s)) This script also uses the HR object to format a horizontal line, and Heading to insert a header line. It either prints HTML to the standard output stream (if no arguments are listed) or writes HTML to an explicitly named file; the str built-in function invokes object __str__ methods just as print does. Run this script from the system command line to make a file, using one of the following: C:\...\PP2E\Internet\Other>python htmlgen101.py > htmlgen101.html C:\...\PP2E\Internet\Other>python htmlgen101.py htmlgen101.html Either way, the script's output is a legal HTML page file, which you can view in your favorite browser by typing the output filename in the address field or clicking on the file in your file explorer. Either way, it will look a lot like Figure 15-1. Figure 15-1. Viewing htmlgen101.py output in a browserSee file htmlgen101.html in the examples distribution if you wish to inspect the HTML generated to describe this page directly (it looks much like the prior document's output). Example 15-3 shows another script that does something less hardcoded: it constructs a web page to display its own source code. Example 15-3. PP2E\Internet\Other\htmlgen101-b.pyimport sys from HTMLgen import * d = SimpleDocument(title="HTMLgen 101 B") # show this script text = open('htmlgen101-b.py', 'r').read( ) d.append(Heading(1, 'Source code')) d.append(Paragraph( PRE(text) )) # add gif and links site = 'http://www.python.org' gif = 'PythonPoweredSmall.gif' image = Image(gif, alt='picture', align='left', hspace=10, border=0) d.append(HR( )) d.append(Href(site, image)) d.append(Href(site, 'Python home page')) if len(sys.argv) == 1: print d else: open(sys.argv[1], 'w').write(str(d)) We use the PRE object here to specify preformatted text, and the Image object to generate code to display a GIF file on the generated page. Notice that HTML tag options such as alt and align are specified as keyword arguments when making HTMLgen objects. Running this script and pointing a browser at its output yields the page shown in Figure 15-2; the image at the bottom is also a hyperlink, because it was embedded inside an Href object. Figure 15-2. Viewing htmlgen101-b.py output in a browserAnd that (along with a few nice advanced features) is all there is to using HTMLgen. Once you become familiar with it, you can construct web pages by writing Python code, without ever needing to manually type HTML tags again. Of course, you still must write code with HTMLgen instead of using a drag-and-drop page layout tool, but that code is incredibly simple and supports the addition of more complex programming logic where needed to construct pages dynamically. In fact, now that you're familiar with HTMLgen, you'll see that many of the HTML files shown earlier in this book could have been simplified by recoding them to use HTMLgen instead of direct HTML code. The earlier CGI scripts could have used HTMLgen as well, albeit with additional speed overheads -- printing text directly is faster than generating it from object trees, though perhaps not significantly so (CGI scripts are generally bound to network speeds, not CPU speed). HTMLgen is open source software, but it is not a standard part of Python and must therefore be installed separately. You can find a copy of HTMLgen on this book's CD (see http://examples.oreilly.com/python2), but the Python web site should have its current location and version. Once installed, simply add the HTMLgen path to your PYTHONPATH variable setting to gain access to its modules. For more documentation about HTMLgen, see the package itself: its html subdirectory includes the HTMLgen manual in HTML format. |
| I l@ve RuBoard |


# jsdiff
[![Build Status](https://secure.travis-ci.org/kpdecker/jsdiff.png)](http://travis-ci.org/kpdecker/jsdiff)
A javascript text differencing implementation.
Based on the algorithm proposed in [“An O(ND) Difference Algorithm and its Variations” (Myers, 1986)](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=<IP_ADDRESS>.6927).
## Installation
npm install diff
or
bower install jsdiff
or
git clone git://github.com/kpdecker/jsdiff.git
## API
JsDiff.diffChars(oldStr, newStr[, callback]) - diffs two blocks of text, comparing character by character.
Returns a list of change objects (See below).

Returns a list of change objects (See below).
JsDiff.diffWordsWithSpace(oldStr, newStr[, callback]) - diffs two blocks of text, comparing word by word, treating whitespace as significant.
Returns a list of change objects (See below).
JsDiff.diffLines(oldStr, newStr[, callback]) - diffs two blocks of text, comparing line by line.
Returns a list of change objects (See below).
JsDiff.diffTrimmedLines(oldStr, newStr[, callback]) - diffs two blocks of text, comparing line by line, ignoring leading and trailing whitespace.
Returns a list of change objects (See below).
JsDiff.diffSentences(oldStr, newStr[, callback]) - diffs two blocks of text, comparing sentence by sentence.
Returns a list of change objects (See below).
JsDiff.diffCss(oldStr, newStr[, callback]) - diffs two blocks of text, comparing CSS tokens.
Returns a list of change objects (See below).
JsDiff.diffJson(oldObj, newObj[, callback]) - diffs two JSON objects, comparing the fields defined on each. The order of fields, etc does not matter in this comparison.
Returns a list of change objects (See below).
JsDiff.createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader) - creates a unified diff patch.
Parameters: * oldFileName : String to be output in the filename section of the patch for the removals * newFileName : String to be output in the filename section of the patch for the additions * oldStr : Original string value * newStr : New string value * oldHeader : Additional information to include in the old file header * newHeader : Additional information to include in thew new file header
JsDiff.createPatch(fileName, oldStr, newStr, oldHeader, newHeader) - creates a unified diff patch.
Just like JsDiff.createTwoFilesPatch, but with oldFileName being equal to newFileName.
JsDiff.applyPatch(oldStr, diffStr) - applies a unified diff patch.
Return a string containing new version of provided data.
convertChangesToXML(changes) - converts a list of changes to a serialized XML format
All methods above which accept the optional callback method will run in sync mode when that parameter is omitted and in async mode when supplied. This allows for larger diffs without blocking the event loop.
### Change Objects Many of the methods above return change objects. These objects are consist of the following fields:
- value: Text content
- added: True if the value was inserted into the new string
- removed: True of the value was removed from the old string
Note that some cases may omit a particular flag field. Comparison on the flag fields should always be done in a truthy or falsy manner.
## Examples
Basic example in Node
```js require(‘colors’) var jsdiff = require(‘diff’);
var one = ‘beep boop’; var other = ‘beep boob blah’;
var diff = jsdiff.diffChars(one, other);
- diff.forEach(function(part){
// green for additions, red for deletions // grey for common parts var color = part.added ? ‘green’ :
part.removed ? ‘red’ : ‘grey’;process.stderr.write(part.value[color]);
});
console.log() ``` Running the above program should yield

Basic example in a web page
```html


L.A. CONFIDENTIAL 1997 A film review by Timothy Voon Copyright 1997 Timothy Voon 3 :-) :-) :-) for a game of strategy on the chessboard of organised crime
Cast: Kevin Spacey, Russell Crowe, Guy Pearce, James Cromwell, David Strathairn, Kim Basinger, Danny DeVito Director: Curtis Hanson Screenplay: Curtis Hanson and Brian Helgeland based on the novel by James Ellroy
This movie is about good cops and bad cops, with shades of grey smudging the fine line in between.
The good cop (Guy Pearce) follows in the footsteps of his old man and carries his badge with honour and duty.  His motivation for joining the force is to catch the ghost of the murderer who killed his father, and any criminal that thinks he won't get caught. With more brains than brawn, and spectacles to go with intelligence, he's a goody two shoes who knows when to snitch on another cop and climb the political arena of justice at the same time.
The bad cop (Russel Crowe) watched his mother beaten to death by his father as a boy. His idea of justice comes with a fist and a punch before reading your rights.  This angry young man won't take no for an answer, and when it comes to battered women, he gives the abusive husband an equally good battering. He's not your regular textbook cop who follows the rules, and will take the law into his own hands by executing justice with the point of his gun. This renegade lone star is someone you don't want around in a highly volatile situation, but if your life is on the line he knows how to let the bullets fly.
The grey cop (Kevin Spacey) can't remember why he became a cop in the first place. His motivation and sense of right and wrong have become blurred by the glitz of Hollywood. He's a cop seeking media attention and knows how to play smart, look good and talk right.  His brushes with fame come in the form of catching movie stars and high profile politicians engaging the services of prostitutes. He'll do just about anything to make the headlines with a photo snap. His amoral life takes a turn when a set-up between a male prostitute and councillor goes badly wrong. This wakes up his conscience long since drowned by years of bribe taking and easy living. Before he can make amends for his waylaid calling, his life is snatched from him as easily as slipping a 50 dollar bill into your wallet.
The classy hooker (Kim Basinger) looks like Veronica Lake. She knows how to play both good cop and bad cop to her best advantage, and can make a man come as easily as slipping out of her lingerie and into bed. Her tools are seduction and trickery, but the moves are not hers to direct. She is a lowly pawn on the chessboard of crime that is used by a crafty master in the grand finale act of checkmate. She is lucky to survive the game when so many other important pieces have already been sacrificed for the greater goal of winning.
This is certainly one of the better suspense, mystery thrillers of the year, with intelligent script writing, plot control and motivation. Well worth a nod towards at the cinema.
Timothy Voon e-mail<EMAIL_ADDRESS>The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


{% extends "base-full.html" %} {% block title %}About Sunlight Academy{% endblock %} {% block content %}
Sunlight Academy is the interactive training portal of Sunlight Foundation and aims to provide instructional and educational resources to advance our goal to make government more transparent and accountable.
Whether you are an investigative journalist trying to get insight on a complex data set, an activist uncovering the hidden influence behind your issue or a congressional staffer in need of mastering legislative data, our transparency training program will teach you how to better connect the dots and make our tools and resources work for you.
The training modules in the Sunlight Academy range in teaching format from videos to multimedia presentations that cater to both didactic and experiential learners. Be sure to mark finished modules as “completed” to earn prizes and rewards. If you have any questions, comments or suggestions, please email<EMAIL_ADDRESS>Sunlight Academy is a project of Sunlight Foundation and is generously supported by the Ford Foundation.


November 5
For though we walk in the flesh, we do not war after the flesh. 2 Corinthians 10:3
Do you know why so many believers are losing the battles in their lives? They're fighting the wrong enemy! They've been deceived into believing that just because a person said or did something to hurt them, that person is the one they need to fight. But they're wrong. You see, the Bible says we don't wrestle with flesh and blood. And since people are definitely flesh and blood, they're never the source of our problem. "But, Brother Copeland, you just don't know what So-and-so did to me!" It doesn't matter. If you waste your time fighting Soand-so, your real enemy will get away scot-free.
Who is that real enemy? Look at Ephesians 6:12, "For we wrestle not against flesh and blood, but against principalities, against powers, against the rulers of the darkness of this world, against spiritual wickedness in high places." Satan and his demons. They are your lifelong enemies! They are behind every personal affront you encounter.
The people who hurt you and persecute you are only Satan's tools. When he wants to strike out at you, he uses them to get the job done. Remember this: Persecution is not the manifestation of another person's hate for you. It's a manifestation of Satan's fear of you. When you get into the Word and start swinging it around--using it like the sword of the Spirit it is--he gets scared. So he looks for some person he can send in there to stop you.
Next time someone hurts you, don't let yourself get sidetracked into fighting them. Bind the spirit behind them. Put flesh and blood battles behind and war with the weapons of the Spirit. Zero in on Satan with authority and the Word of God and bring your real enemy down!
Scripture Reading: Ephesians 6:10-18


HackWars
Dashboard
Challenge
Trade-off
Profile
NAME:
USERNAME:
DIBS:
125
STREAKS:
12
RANK:
FOLLOWERS:
50
FOLLOWING:
30
LANGUAGES:
Python
C++
BADGES
NOTIFICATION
NEW CHALLENGE UP!
Win the duel or loose your legendary badge.
Accept
INTERNSHIP
!! Congratulations !! You have bagged an opportunity to be an intern at HackWars !!
Accept


class: center, middle, inverse, title-slide # Using R for Data Analysis ### Elizabeth Davis ### San Diego Zoo Global ### 2019/05/08 (updated: 2020-06-30) ---  --- # Previously, we learned the basics of R -- ## But you may have gone away still feeling like you don't know how to navigate in R "space" -- ### In these next few sections, I'll go through *how to use R scripts effectively*, *how to understand R Studio*, and *how to read an R helpfile*, which should help you with feeling more confident in using R --- # How to use R Scripts effectively -- ## Go ahead and open an R script on your R studio. It will be the icon in the top left of your console. It looks like this: ![R Script icon](images/r-script-icon.png) --- # R Scripts are where you keep your code that you will use for your *data analysis*. -- ## It is a record of what you have done, so that you can replicate it in the future. 1 -- ### This is VERY important because projects sometimes take multiple days, if not weeks. .footnote[ [1] "making your analyses something that can be re-run easily as needed" ] --- # R Scripts are where you keep your code, so they are also where you should include *comments*, i.e. a way of explaining to others/your future self what you have done --- ## The most important thing is to use them as though *you may be hit on the head and lose your memory at any moment*. Be VERY clear about your process and why you are doing what you are. --- ![R Script example](images/r-script-example.png) --- #How to use R studio -- ## R Studio has a lot of in-built tools that help with effective coding. -- ## For example, R will automatically close parantheses and quotation marks for you; however, you need to be careful that this doesn't cause mistakes. -- ## R Studio will also show you when you make a mistake in your R Script, through red lines underlining code and a red "X" --- ![R Script example of errors](images/r-script-errors.png) -- ### You can see here where R is telling you that your code is faulty. -- ### You can also see that R Studio will color code differently according to its attribute: a different color for non-code "objects", for comments, and for "significant" commands like telling R which library to use. --- # Error Codes --  --- class: center, middle ## "Start associating error messages with joy because it probably means you are about to learn something!" --- # What do to do when you get an error code -- ## Read the code. This seems self-explanatory but it is where you can gain some understanding of what went wrong. -- ## As an example, what happens if you type "a" and press enter? -- ![Error example](images/error.png) --- ![Error example](images/error.png) -- ## This message has **three** parts -- ### 1) It tells us that it is an error -- ### 2) The location of the error, which is object "a" -- ### 3) The problem this mistake caused: there is no object a, because I haven't created it! --- # Sometimes errors are difficult to understand -- ## If you can't understand the error message immediately, then you have several options: -- ### 1) Check out the help file for the function/command you are using, if applicable -- ### 2) Google it! -- ### 3) Ask for help from Stack Overflow (bearing in mind that it can be challenging) or from R-Ladies (if you are a woman- sorry guys!) --- # Checking out the help file -- ## The help file can be challenging to understand, so Googling may be the easiest option for you. However, it is important to be familiar with R helpfiles. --- ![R help first bit](images/r-help-first-bit.png) --- ![R help second bit](images/r-help-second-bit.png) --- # Using R for data analysis -- ## "Statistics [and data analysis] is a problem-solving and decision-making process that is fundamental to scientific inquiry and essential for making sound decisions." -- ### Requires **critical thinking** (and practice!) --- class: center, middle ## I'm going to show you this process through working *backwards*: I'll show you results, findings, and interpretation, and from there show you how I did the data analysis. --- # Land use in the Greater Mekong Region: 2012 --- ![land use km](images/land-use-km.png) --- ![land use percent](images/land-use-percent.png) --- #Overall difference between the countries ```r library(formatR) land.indicators.2012.km <- read.csv("land-indicators-2012-km.csv") land.indicators.2012.percent <- read.csv("land-indicators-2012-percent.csv") # Land use by km2 summary(aov(land.indicators.2012.km$Amount ~ land.indicators.2012.km$Country)) ``` ``` ## Df Sum Sq Mean Sq F value Pr(>F) ## land.indicators.2012.km$Country 4 1.068e+11 2.669e+10 0.822 0.531 ## Residuals 15 4.869e+11 3.246e+10 ``` ```r # Land use by percent summary(aov(land.indicators.2012.percent$Amount ~ land.indicators.2012.percent$Country)) ``` ``` ## Df Sum Sq Mean Sq F value Pr(>F) ## land.indicators.2012.percent$Country 4 984.6 246.15 5.756 0.0411 * ## Residuals 5 213.8 42.76 ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ``` --- #Where is the difference between countries found? ```r TukeyHSD(aov(land.indicators.2012.percent$Amount ~ land.indicators.2012.percent$Country)) ``` ``` ## Tukey multiple comparisons of means ## 95% family-wise confidence level ## ## Fit: aov(formula = land.indicators.2012.percent$Amount ~ land.indicators.2012.percent$Country) ## ## $`land.indicators.2012.percent$Country` ## diff lwr upr p adj ## Laos-Cambodia -19.424650 -45.656703 6.807403 0.1396226 ## Myanmar-Cambodia -9.995385 -36.227438 16.236668 0.5884065 ## Thailand-Cambodia 9.686365 -16.545688 35.918418 0.6119421 ## Vietnam-Cambodia -0.111285 -26.343338 26.120768 1.0000000 ## Myanmar-Laos 9.429265 -16.802788 35.661318 0.6317063 ## Thailand-Laos 29.111015 2.878962 55.343068 0.0335155 ## Vietnam-Laos 19.313365 -6.918688 45.545418 0.1420955 ## Thailand-Myanmar 19.681750 -6.550303 45.913803 0.1340816 ## Vietnam-Myanmar 9.884100 -16.347953 36.116153 0.5968497 ## Vietnam-Thailand -9.797650 -36.029703 16.434403 0.6034348 ``` --- ## What does this tell us? -- ```r TukeyHSD(aov(land.indicators.2012.percent$Amount ~ land.indicators.2012.percent$Country)) ``` ``` ## Tukey multiple comparisons of means ## 95% family-wise confidence level ## ## Fit: aov(formula = land.indicators.2012.percent$Amount ~ land.indicators.2012.percent$Country) ## ## $`land.indicators.2012.percent$Country` ## diff lwr upr p adj ## Laos-Cambodia -19.424650 -45.656703 6.807403 0.1396226 ## Myanmar-Cambodia -9.995385 -36.227438 16.236668 0.5884065 ## Thailand-Cambodia 9.686365 -16.545688 35.918418 0.6119421 ## Vietnam-Cambodia -0.111285 -26.343338 26.120768 1.0000000 ## Myanmar-Laos 9.429265 -16.802788 35.661318 0.6317063 *## Thailand-Laos 29.111015 2.878962 55.343068 0.0335155 ## Vietnam-Laos 19.313365 -6.918688 45.545418 0.1420955 ## Thailand-Myanmar 19.681750 -6.550303 45.913803 0.1340816 ## Vietnam-Myanmar 9.884100 -16.347953 36.116153 0.5968497 ## Vietnam-Thailand -9.797650 -36.029703 16.434403 0.6034348 ``` --- class: center, inverse, middle ##From this we can interpret that there isn't much of a difference between the countries. There is, however a significant difference between Thailand and Laos, for **what their land is used for**. In general, Laos has used a lot less of their land for agriculture, compared to the other countries but especially compared to Thailand. --- #How did I get to this point? -- ##First, by looking at the data as it was in the `.csv` file. ![original data](images/original-data.png) --- ##Because this is a pretty simple dataset, I decided to do a basic analysis where I try to understand the difference between the countries. I decided to start by **visualizing the data**, using `ggplot2`. (Hopefully you all remember how to use it!) --- ### However, you may have noticed that our data is not easy to use for creating a `ggplot`. I cheated and went to the .csv file to turn my data into a format that could be read by `ggplot`, specifically, where all of the variables are columns. -- ![km2 data](images/km2-data.png) --- ### BUT, it wasn't as easy as doing this for the whole dataset. When I looked at the data, the data was represented in different formats, *kilometers squared* and *percent*. So, I had to create two datasets. .pull-left[ ###**km2** ![km2 data](images/km2-data.png) ] .pull-right[ ###**percent** ![percent data](images/percent-data.png) ] --- class: center, middle ## Hopefully you can see here why we couldn't plot these together. Kilometers squared is on a much larger scale than percent, i.e. 200,000 versus 35. --- To plot this data, I used the following code. Again, this took me some trial and error to get it right for both graphs. ```r require(tidyverse) require(scales) ggplot(land.indicators.2012.km, aes(x = Country, y = Amount, fill = Country)) + geom_bar(stat = "identity") + theme_bw() + scale_fill_viridis_d() + facet_wrap(~Land.Use.Type) + scale_y_continuous(name="Country", labels = comma) + ggtitle("Land Use Types Between Countries (km2)") + theme(text = element_text(size = 20)) ``` ```r ggplot(land.indicators.2012.percent, aes(x = Country, y = Amount, fill = Country)) + geom_bar(stat = "identity") + theme_bw() + scale_fill_viridis_d() + facet_wrap(~Land.Use.Type) + scale_y_continuous(name="Country", labels = comma) + ggtitle("Land Use Types Between Countries (%)") + theme(text = element_text(size = 20)) + scale_x_discrete(limits=c("Thailand","Vietnam","Cambodia", "Myanmar", "Laos")) ``` --- ![land use km](images/land-use-km.png) --- ![land use percent](images/land-use-percent.png) --- ## As you saw, after visualizing these graphs, I decided to perform an ANOVA on *country* and *amount* (of km2/percent of land used for other purposes), to see whether the country differences seen are significant. ### The ANOVA for percent was significant, so I performed the follow-up test of TUKEY's HSD to determine where the difference was, and found that Thailand and Laos significantly differed in the percent of their land used for agriculture. --- ## And that's it! There are probably all kinds of better and more interesting things that could be done with that data, but that will do for now. --- background-image: url("images/mountain.jpg") class: center, middle, inverse ## Let's take a break --- # Tidying our data with `dplyr` -- class: center, middle ## `dplyr` is a package within the `tidyverse`. It is widely used in R data analysis because it is quick and efficient at cleaning and sorting data.

 #### Disclaimer: I am not very good at using `dplyr` myself! So we will both be learning. --- class: center, middle ## First, we will load the `tidyverse` package (install it if you haven't already). ### We’re going to learn some of the most common dplyr functions: `select()`, `filter()`, `mutate()`, `group_by()`, and `summarise()`. --- # `select()` -- ## As the name implies, this is where we *select* the columns that we want to keep in a data frame. -- ### But first, you'll need to load the data. Do the following: ```r library(nycflights13) flights ``` ``` ## # A tibble: 336,776 x 19 ## year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time ## <int> <int> <int> <int> <int> <dbl> <int> <int> ## 1 2013 1 1 517 515 2 830 819 ## 2 2013 1 1 533 529 4 850 830 ## 3 2013 1 1 542 540 2 923 850 ## 4 2013 1 1 544 545 -1 1004 1022 ## 5 2013 1 1 554 600 -6 812 837 ## 6 2013 1 1 554 558 -4 740 728 ## 7 2013 1 1 555 600 -5 913 854 ## 8 2013 1 1 557 600 -3 709 723 ## 9 2013 1 1 557 600 -3 838 846 ## 10 2013 1 1 558 600 -2 753 745 ## # … with 336,766 more rows, and 11 more variables: arr_delay <dbl>, ## # carrier <chr>, flight <int>, tailnum <chr>, origin <chr>, dest <chr>, ## # air_time <dbl>, distance <dbl>, hour <dbl>, minute <dbl>, time_hour <dttm> ``` #### And take a look at our data using all of the tools I taught you in the first course (`head`, `summary`, and one you may not have used previously: `str`). --- # Using `select()` on your data -- ### The first argument to this function is the data frame (which `dplyr` calls a tibble), and the subsequent arguments are the columns to keep.   -- ### **Remember, if you want to use these commands to create a new dataframe, you need to apply these commands to an object, i.e.: -- ```r *jan_first_flights <- dplyr::filter(flights, month == 1, day == 1) ``` --- # But what if you want to use `select` AND `filter`? --- ## We use something called **pipes**. Pipes look like this ` %>% `. They take the output of one command and put it directly into the next.  The more you work with data, the more you'll understand what these commands are doing and how they'll help you, down the line. --- # Exercise -- ## Using pipes, subset `flights` to include rows where the year is 2013 and keep only the columns year, month, and dep_delay. ### How many rows are in that tibble? HINT: You can use the nrow() function to find out how many rows are in a tibble. --- # `mutate` ## Frequently you’ll want to create new columns based on the values in existing columns, for example to do unit conversions or find the ratio of values in two columns. For this we’ll use `mutate()` -- ### Let's create a new column of the flight duration. We can do this by using mutate and subtracting `arr_time` (arrival time) from the `dep_time` (departure time). ```r flights %>% mutate(duration = arr_time - dep_time) ``` ``` ## # A tibble: 336,776 x 20 ## year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time ## <int> <int> <int> <int> <int> <dbl> <int> <int> ## 1 2013 1 1 517 515 2 830 819 ## 2 2013 1 1 533 529 4 850 830 ## 3 2013 1 1 542 540 2 923 850 ## 4 2013 1 1 544 545 -1 1004 1022 ## 5 2013 1 1 554 600 -6 812 837 ## 6 2013 1 1 554 558 -4 740 728 ## 7 2013 1 1 555 600 -5 913 854 ## 8 2013 1 1 557 600 -3 709 723 ## 9 2013 1 1 557 600 -3 838 846 ## 10 2013 1 1 558 600 -2 753 745 ## # … with 336,766 more rows, and 12 more variables: arr_delay <dbl>, ## # carrier <chr>, flight <int>, tailnum <chr>, origin <chr>, dest <chr>, ## # air_time <dbl>, distance <dbl>, hour <dbl>, minute <dbl>, time_hour <dttm>, ## # duration <int> ``` --- # Split-apply-combine data analysis and the `summarize()` function -- ## Many data analysis tasks can be approached using the “split-apply-combine” paradigm: 1. Split the data into groups -- 2. Apply some analysis to each group -- 3. And then combine the results. -- `dplyr` makes this very easy through the use of the `group_by()` function, which splits the data into groups. --- ## When the data is grouped in this way `summarize()` can be used to collapse each group into a single-row summary. `summarize()` does this by applying an aggregating or summary function to each group. For example, if we wanted to group by month and find the number of rows of data for each year, we would do: -- ```r flights %>% group_by(month) %>% summarize(n()) ``` ``` ## `summarise()` ungrouping output (override with `.groups` argument) ``` ``` ## # A tibble: 12 x 2 ## month `n()` ## <int> <int> ## 1 1 27004 ## 2 2 24951 ## 3 3 28834 ## 4 4 28330 ## 5 5 28796 ## 6 6 28243 ## 7 7 29425 ## 8 8 29327 ## 9 9 27574 ## 10 10 28889 ## 11 11 27268 ## 12 12 28135 ``` --- ## Of course, that doesn't tell us much that is useful. Let's look at the mean departure delay for each month. -- ```r flights %>% group_by(month) %>% summarize(mean_dep_delay = mean(dep_delay, na.rm = TRUE)) ``` ``` ## `summarise()` ungrouping output (override with `.groups` argument) ``` ``` ## # A tibble: 12 x 2 ## month mean_dep_delay ## <int> <dbl> ## 1 1 10.0 ## 2 2 10.8 ## 3 3 13.2 ## 4 4 13.9 ## 5 5 13.0 ## 6 6 20.8 ## 7 7 21.7 ## 8 8 12.6 ## 9 9 6.72 ## 10 10 6.24 ## 11 11 5.44 ## 12 12 16.6 ``` --- ### The `na.rm` here is where we tell R to ignore any missing data which usually is shown as "NA". If we don't use this command and we have missing data, R will return an error. --- ## You can also group by multiple columns, which is very handy! -- ```r flights %>% group_by(carrier, month) %>% summarize(mean_dep_delay = mean(dep_delay, na.rm = TRUE)) ``` ``` ## `summarise()` regrouping output by 'carrier' (override with `.groups` argument) ``` ``` ## # A tibble: 185 x 3 ## # Groups: carrier [16] ## carrier month mean_dep_delay ## <chr> <int> <dbl> ## 1 9E 1 16.9 ## 2 9E 2 16.5 ## 3 9E 3 13.4 ## 4 9E 4 13.6 ## 5 9E 5 22.7 ## 6 9E 6 29.0 ## 7 9E 7 31.4 ## 8 9E 8 17.3 ## 9 9E 9 7.75 ## 10 9E 10 9.33 ## # … with 175 more rows ``` --- ## You can also use summarize on multiple variables (columns, for our flights data). For our example, let's look at the mean delay as well as the minimum value for departure time: -- ```r flights %>% group_by(carrier, month) %>% summarize(mean_dep_delay = mean(dep_delay, na.rm = TRUE), min_generation = min(dep_time, na.rm = TRUE)) ``` ``` ## `summarise()` regrouping output by 'carrier' (override with `.groups` argument) ``` ``` ## # A tibble: 185 x 4 ## # Groups: carrier [16] ## carrier month mean_dep_delay min_generation ## <chr> <int> <dbl> <int> ## 1 9E 1 16.9 15 ## 2 9E 2 16.5 555 ## 3 9E 3 13.4 14 ## 4 9E 4 13.6 15 ## 5 9E 5 22.7 33 ## 6 9E 6 29.0 7 ## 7 9E 7 31.4 13 ## 8 9E 8 17.3 651 ## 9 9E 9 7.75 3 ## 10 9E 10 9.33 636 ## # … with 175 more rows ``` --- # Long to wide and wide to long -- ## Our flights data is currently in "long" format, which is usually (but not always!!) how you are going to want your data to be, for the kinds of data analyses you'll be doing. Sometimes, you want to turn your data wide. --- ## To do this, we can make our data wide and compare carriers and their departure delays.  You also tell it which column contains the relevant numbers - the “values” column. -- ### In our example here, we see that there are quitea lot of NAs, so this is not a sensible way to organize our data. --- # As I told you a few minutes ago, you guys will usually be working with "long" data. So, you will want to know how to transform your "wide" data into this format. -- ## For this, you will use the `gather` function. -- ### In this case you specify what you want the name of the new key column to be, what you want the name of the new values column to be, and then you can either specify which columns are to be gathered up (which can be tedious if there are a lot or they are spread) or you can specify which columns you want to exclude. -- I will show you an example where we *exclude* a column. --- ```r # First we create a dataset called stocks stocks <- tibble( time = as.Date('2009-01-01') + 0:9, X = rnorm(10, 0, 1), Y = rnorm(10, 0, 2), Z = rnorm(10, 0, 4) ) #Then we use gather to change the wide data into long format stocks %>% gather("stock", "price", -time) ``` ``` ## # A tibble: 30 x 3 ## time stock price ## <date> <chr> <dbl> ## 1 2009-01-01 X 1.06 ## 2 2009-01-02 X -0.686 ## 3 2009-01-03 X 0.276 ## 4 2009-01-04 X 0.730 ## 5 2009-01-05 X -0.624 ## 6 2009-01-06 X 0.136 ## 7 2009-01-07 X -1.24 ## 8 2009-01-08 X 1.06 ## 9 2009-01-09 X 0.258 ## 10 2009-01-10 X -0.00981 ## # … with 20 more rows ``` --- class: center, middle # And that's it! You now know the basics of data carpentry with `dplyr`. -- ## Of course, R being R there is always more to learn, so be sure to check out the "Helpful R Sites" document to see examples of more tutorials. --- class: center, middle, inverse # Acknowledgements ### Grateful thanks to everyone on Twitter and especially Aleeza Gerstein at the University of Manitoba for kindly sharing her materials.


Fast, secure and borderless, trajans.market merchants transact with bitcoin.
trajans.market offers buyers protection enabled by blockchain technology when shopping select merchants.
Verified merchants have completed ID authenticity and are trusted merchants.


|
iDreamSky Game Engine
v1.0.0
|
GXShaderAttributeType encapsulate Type of Vertex Attribute of the Shader. 更多...
#include <GXDef.h>
公開型態 | |
| enum | { BOOL = 0, BVEC2 = 1, BVEC3 = 2, BVEC4 = 3, INT = 4, IVEC2 = 5, IVEC3 = 6, IVEC4 = 7, FLOAT = 8, VEC2 = 9, VEC3 = 10, VEC4 = 11, MAT2 = 12, MAT3 = 13, MAT4 = 14 } |
公開方法(Public Methods) | |
| GXShaderAttributeType (unsigned int order_=0) | |
| operator unsigned int () | |
| operator const unsigned int () const | |
| const unsigned int | getNumElements () const |
| const unsigned int | getElementType () const |
| const unsigned int | getSize () const |
| bool | set (const char *name) |
| void | read (InputStream &is) |
| void | write (OutputStream &os) const |
GXShaderAttributeType encapsulate Type of Vertex Attribute of the Shader.
| anonymous enum |
| 列舉值 | |
|---|---|
| BOOL |
Vertex Attribute is a bool. |
| BVEC2 |
Vertex Attribute is a BVector2. |
| BVEC3 |
Vertex Attribute is a BVector3. |
| BVEC4 |
Vertex Attribute is a BVector4. |
| INT |
Vertex Attribute is a int. |
| IVEC2 |
Vertex Attribute is a IVector2. |
| IVEC3 |
Vertex Attribute is a IVector3. |
| IVEC4 |
Vertex Attribute is a IVector4. |
| FLOAT |
Vertex Attribute is a float. |
| VEC2 |
Vertex Attribute is a Vector2. |
| VEC3 |
Vertex Attribute is a Vector3. |
| VEC4 |
Vertex Attribute is a Vector4. |
| MAT2 |
Vertex Attribute is a Matrix2. |
| MAT3 |
Vertex Attribute is a Matrix3. |
| MAT4 |
Vertex Attribute is a Matrix4. |