|
c-iterplus
1.0.0
Type safe, Generic, Lazy abstractions for working with c-iterator
|
"Syntactic sugar". More...
Go to the source code of this file.
Macros | |
| #define | IT_GEN_ASSOC_(T, expr) Iterable(T) : (expr) |
| #define | IT_GEN_ASSOC(Texpr) IT_GEN_ASSOC_ Texpr |
| #define | FN_GEN_ASSOC_(Ret, expr, ...) Ret (*)(__VA_ARGS__) : (expr), Ret(*const)(__VA_ARGS__) : (expr) |
| #define | FN_GEN_ASSOC(RetExprArgs) FN_GEN_ASSOC_ RetExprArgs |
| #define | itrble_selection(it, ...) _Generic((it), MAP(IT_GEN_ASSOC, __VA_ARGS__)) |
| #define | fn_selection(fn, ...) _Generic((fn), MAP(FN_GEN_ASSOC, __VA_ARGS__)) |
| #define | take(it, n) |
Build an iterable that consists of at most n elements from given it iterable. More... | |
| #define | drop(it, n) |
Build an iterable that drops (skips) the first n elements from given it iterable. More... | |
| #define | map_selection(it, fn, when_u32_numtype) itrble_selection((it), (uint32_t, fn_selection((fn), (NumType, (when_u32_numtype), uint32_t)))) |
| #define | map(it, fn) |
Map the function fn over it to make a new iterable. More... | |
| #define | filter(it, pred) |
Filter an iterable by given pred and make a new iterable. More... | |
| #define | filtmap_selection(it, fn, when_str_u32, when_str_numtype) |
| #define | filter_map(it, fn) |
| Map and filter an iterable at the same time. More... | |
| #define | chain(itx, ity) |
| Chain together 2 iterables of the same element type. More... | |
| #define | reduce(it, fn) itrble_selection((it), (uint32_t, reduce_u32))(it, fn) |
Reduce the given iterable, it , by the accumulating function fn . More... | |
| #define | takewhile(it, pred) |
Build an iterable that continuously consumes elements from given it while pred is satisfied. More... | |
| #define | dropwhile(it, pred) |
Build an iterable that continuously drops elements from given it until pred is no longer satisfied. More... | |
| #define | collect(it, lenstore) itrble_selection((it), (uint32_t, collect_u32))(it, lenstore) |
Collect the given iterable, it , into an array, and store its length in len. More... | |
| #define | fold_selection(it, fn, when_str_str, when_str_u32) |
| #define | fold(it, init, fn) fold_selection((it), (fn), fold_str_str, fold_str_u32)((it), (init), (fn)) |
Left fold an iterable, it , with the accumulating function fn and starting value init . More... | |
| #define | enumerate(it) |
Build an iterable that consists of a Pair of the indices and the elements in given iterable it . More... | |
| #define | zip(itx, ity) |
Build an iterable that zips together the given iterables itx , and ity to yield Pair structs. More... | |
Functions | |
| Iterable (uint32_t) prep_u32tk(IterTake(uint32_t) *tk | |
| Iterable (NumType) prep_numtypetk(IterTake(NumType) *tk | |
| Iterable (string) prep_strtk(IterTake(string) *tk | |
| Iterable (Pair(size_t, uint32_t)) prep_u32enumr(IterEnumr(uint32_t) *enumr | |
| Iterable (Pair(uint32_t, uint32_t)) prep_u32u32zip(IterZip(uint32_t | |
Variables | |
| NumType * | tk |
| NumType NumType(* | fn )(uint32_t)) |
| bool(* | pred )(uint32_t)) |
| uint32_t * | zipstr |
"Syntactic sugar".
Convenience macros for using the iterplus utilities.
These examples use C11's _Generic
to statically dispatch to the correct functions based on the type of the iterplus structs. Syntax sugar, as you may know them. These are the definitions of those sugar macros.
Unfortunately (or fortunately), _Generic
resolves during compile time, not preprocess time. This means the expressions allowed within _Generic
are much stricter than what you'd be able to get away with in regular macros.
For this reason, we need wrapper functions, that take a pre-allocated iterplus struct, the iterable to put into said struct (and other stuff if necessary), and return an Iterable corresponding to that iterplus struct.
These wrapper functions are defined in sugar.c
The structure pre-allocation and passing to this functions is done in the _Generic
macros by taking the address of a compound literal. The iterable struct, and other such members that have a varying type cannot be filled up inside the _Generic
assoc list expressions, which is why the functions need to do it for us.
| #define chain | ( | itx, | |
| ity | |||
| ) |
Chain together 2 iterables of the same element type.
| it | The first iterable. |
| n | The second iterable. |
| #define collect | ( | it, | |
| lenstore | |||
| ) | itrble_selection((it), (uint32_t, collect_u32))(it, lenstore) |
Collect the given iterable, it
, into an array, and store its length in len.
| it | The iterable to reduce. |
| lenstore | Pointer to a size_t variable, to store the length in. |
| #define drop | ( | it, | |
| n | |||
| ) |
Build an iterable that drops (skips) the first n
elements from given it
iterable.
| it | The source iterable. |
| n | The number of elements to drop from the iterable. |
n
is passed, usual unsigned wrap around takes place. i.e -1
wraps around to SIZE_MAX
| #define dropwhile | ( | it, | |
| pred | |||
| ) |
Build an iterable that continuously drops elements from given it
until pred
is no longer satisfied.
| it | The source iterable. |
| pred | The The function to test each element with. Must be a function returning bool , and taking a singular argument, the type of which should be the same as the type the iterable yields. |
| #define enumerate | ( | it | ) |
Build an iterable that consists of a Pair of the indices and the elements in given iterable it
.
| it | The source iterable. |
| #define filter | ( | it, | |
| pred | |||
| ) |
Filter an iterable by given pred
and make a new iterable.
| it | The source iterable. |
| pred | The function to filter the iterable with. Must be a function returning bool , and taking a singular argument, the type of which should be the same as the type the iterable yields. |
| #define filter_map | ( | it, | |
| fn | |||
| ) |
Map and filter an iterable at the same time.
| it | The source iterable. |
| pred | The function to filter the map and then filter the iterable with. Must be a function returning a Maybe , and taking a singular argument, the type of which should be the same as the type the iterable yields. Nothing values are filtered out, Just values are kept in (only the raw value). |
| #define filtmap_selection | ( | it, | |
| fn, | |||
| when_str_u32, | |||
| when_str_numtype | |||
| ) |
| #define fold | ( | it, | |
| init, | |||
| fn | |||
| ) | fold_selection((it), (fn), fold_str_str, fold_str_u32)((it), (init), (fn)) |
Left fold an iterable, it
, with the accumulating function fn
and starting value init
.
| it | The source iterable to fold. |
| init | The starting accumulator value. |
| fn | The accumulating function. Must be a function returning the same type as init, and taking 2 arguments- first one being the accumulator, and second one being the iterable element. |
| #define fold_selection | ( | it, | |
| fn, | |||
| when_str_str, | |||
| when_str_u32 | |||
| ) |
| #define map | ( | it, | |
| fn | |||
| ) |
Map the function fn
over it
to make a new iterable.
| it | The source iterable. |
| fn | The function to map over the iterable. Must be a function taking a singular argument, the type of which should be the same as the type the iterable yields. |
| #define reduce | ( | it, | |
| fn | |||
| ) | itrble_selection((it), (uint32_t, reduce_u32))(it, fn) |
Reduce the given iterable, it
, by the accumulating function fn
.
| it | The iterable to reduce. |
| fn | The accumulating function. |
| #define take | ( | it, | |
| n | |||
| ) |
Build an iterable that consists of at most n
elements from given it
iterable.
| it | The source iterable. |
| n | The maximum number of elements to take from the iterable. |
n
is passed, usual unsigned wrap around takes place. i.e -1
wraps around to SIZE_MAX
| #define takewhile | ( | it, | |
| pred | |||
| ) |
Build an iterable that continuously consumes elements from given it
while pred
is satisfied.
| it | The source iterable. |
| pred | The The function to test each element with. Must be a function returning bool , and taking a singular argument, the type of which should be the same as the type the iterable yields. |
| #define zip | ( | itx, | |
| ity | |||
| ) |
Build an iterable that zips together the given iterables itx
, and ity
to yield Pair structs.
| itx | The first iterable. |
| ity | The second iterable. |
itx
, second element being from ity
.


doing' great, Ringo's proud of you
and so am I.
PUMPKIN
Which one is it?
JULES
It's the one that says Bad
Motherfucker on it.
Pumpkin looks in the bag and – sure enough – there's a wallet
with "Bad Motherfucker" embroidered on it.
JULES
That's my bad motherfucker. Now open
it up and take out the cash. How
much is there?
PUMPKIN
About fifteen hundred dollars.
JULES
Put it in your pocket, it's yours.
Now with the rest of them wallets
and the register, that makes this a
pretty successful little score.
VINCENT
Jules, if you give this nimrod fifteen
hundred buck, I'm gonna shoot 'em on
general principle.

Besides, I ain't givin' it to him.
I'm buyin' somethin' for my money.
Wanna know what I'm buyin' Ringo?
PUMPKIN
What?
  You
read the Bible?
PUMPKIN
Not regularly.
JULES
There's a passage I got memorized.
Ezekiel 25:17.  Blessed is
he who, in the name of charity and
good will, shepherds the weak through
the valley of the darkness. For he
is truly his brother's keeper and
the finder of lost children.  And you will know I am the
Lord when I lay my vengeance upon
you."   I never really
questioned what it meant.
Now I'm thinkin', it could mean you're
the evil man. And I'm the righteous
man.  Or is
could by you're the righteous man
and I'm the shepherd and it's the
world that's evil and selfish. I'd
like that.  The truth is you're the weak.
And I'm the tyranny of evil men. But
I'm tryin'. I'm tryin' real hard to
be a shepherd.
Jules lowers his gun, lying it on the table.
Pumpkin looks at him, to the money in his hand, then to
Yolanda.
She looks back.

Jules, who was never risen from his seat the whole time,
takes a sip of coffee.
JULES
(to himself)
It's cold.
He pushes it aside.
Vincent appears next to Jules.
VINCENT
I think we oughta leave now.
JULES
That's probably a good idea.
Vincent throws some money on the table and Jules grabs the
briefcase.
Then, to the amazement of the Patrons, the Waitresses, the
Cooks, the Bus Boys, and the Manager, these two bad-ass dudes
– wearing UC Santa Cruz and "I'm with Stupid" tee-shirts,
swim trunks, thongs and packing .45 Automatics – walk out of
the coffee shop together without saying a word.
FADE OUT
THE END
|


Demonstrates:
blocking events in formatter HTML
logs first 30 hits (where HTML is changed)
View Source:
View the source for this example on Github


I'm Alexandr Konichenko aka JFAexe
Some kind of a computer user
Interested in developing tools & games
Fave
Languages: Go | Rust
Games: Hotline Miami | Brigador | Nuclear Throne


Analytical, goal oriented leader with proven track record in management and enforcement Space Fleet Operations or Frontend Development. Wide range of hands-on experience, including:
- Large scale construction projects oversight
- Advanced forms of mind control
- Planetary scale demolitions operations
- Fugitive recovery services
Notable achievements
Designed, built and piloted a custom pod racer. 32 BBY Boonta Eve Classic Race Champion
In my spare time at Wald’s Parts junk shop I designed and built a Class III open cockpit Podracer capable of 588 mph top speed. Went on to win the Boonta Eve Classic race in 32 BBY - first ever win by a human. Generated documented company revenue of over 59 wupiupi during the course of my enslavement.
Oversight of DS1 and DS2 Orbital Battle Stations construction projects
During my tenure as a Supreme Imperial Fleet Commander I was in charge of large capital construction projects for the Deep Space Fleet. Performed acceptance testing of the DS1 SuperLaser in 0 BBY by annihilating Alderaan - a terrestrial class planet in the Core Worlds region. Successfully tripled the deep space fire power of the imperial fleet in accordance with the Tarkin Doctrine before losing both projects to run-away photon torpedoes.
Experience
Sith Empire Headquarters, Dromund Kaas
Supreme Commander of Imperial Forces, Emperor’s Enforcer
- As the right-hand man to Emperor Sidious, hunted down jedi survivors and enforced the will of the empire
- Oversaw construction of the first generation Death Star
- First ever Imperial Supreme Commander
Wally’s Parts / Toyarian Watto junk shop, Mos Espa,
Tatooine
Enslaved Volunteer
- General help and front-desk retail operations at the junk shop, second hand droid parts, mechanical / droid repair services
- Designed and piloted custom-built Podracer, ran track-side operations for the podracing team
Formal training
Green Fox Academy, Earth
Full stack developer
- Padawan to Knight Tojas
- Learned programming with a specialisation in JavaScript and Front-end technologies
Sith Empire, Coruscant
Master of the Dark Side of the Force
- Apprentice to Sith Lord Darth Sidious
Jedi Order Academy, Coruscant
Master of Jedi Force
- Padawan to Knight Obi Wan Kenobi
- Bodyguard to Senator Padme Amidala during the Clone Wars of 22 BBY
- Graduated with honors


A module for using ldap to manipulate objects in AD. This module creates two basic object classes: Domain, and ADObject. The Domain class is used for every interaction with the Active Directory service itself, such as creating, modifying, or searching for objects. The ADObject class represents an object in the directory. It could be a user, computer, OU, or any object. It has an attribute called 'properties' that is a dict of the properties of the object. To modify a property, you change it in the dict and call set_properties(). Every ADObject has a '_domain_obj' property that is a link to the Domain object, which will do the actual modifications to the directory. User, Computer, Group, and Container all inherit from ADObject, and add some attributes and methods for convenience. For example, the User object has disable() and enable() methods for disabling and enabling user accounts, and a 'disabled' property to make it easier to tell if an object has been disabled. Copyright 2010 Google Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
| Function | ad_time_to_unix | Converts AD double-wide int format to seconds since the epoch format. Note: cribbed from filetimes.py at http://reliablybroken.com/b/2009/09/ |
| Function | text_time_to_unix | Converts alternate time format text strings to seconds since the epoch. |
| Function | bitmask_bool | Returns True or False depending on whether a particular bit has been set. |
| Function | escape | Escapes text to be used in an ldap filter. |
| Class | Domain | Represents an Active Directory Domain. |
| Class | ADObject | A generic AD Object. |
| Class | User | An Active Directory user object. |
| Class | Computer | An Active Directory computer object. |
| Class | Container | An Active Directory CN or OU object. |
| Class | Group | An Active Directory Group object. |
Converts AD double-wide int format to seconds since the epoch format. Note: cribbed from filetimes.py at http://reliablybroken.com/b/2009/09/
| Parameters | ad_time | a 64-bit integer time format used by AD with the number of 100ns intervals since January 1, 1601. |
| Returns | An int with the number of seconds since January 1, 1970. |
Converts alternate time format text strings to seconds since the epoch.
Some Active Directory properties are stored in a YYYYMMDDHHMMSS.0Z format. See http://msdn.microsoft.com/en-us/library/aa772189(VS.85).aspx for details.
| Parameters | text_time | the string containing the time value. |
| Returns | The number of seconds since the epoch. |
Returns True or False depending on whether a particular bit has been set.
Microsoft uses bitmasks as a compact way of denoting a number of boolean settings. The second bit, for example, might be the ADS_UF_ACCOUNTDISABLE bit, so if the second bit is a 1, then the account is disabled, and if it is a 0, then it is not.
As an example, to create the 'disabled' property of a User object, we use the userAccountControl property and ADS_UF_ACCOUNTDISABLE constant.
bitmask_bool(user.user_account_control, constants.ADS_UF_ACCOUNTDISABLE) This will return True if the bit is set in user.user_account_control.
| Parameters | bitmask: a number representing a bitmask | |
| value | the value to be checked (usually a known constant) | |
| Returns | True if the bit has been set, False if it has not. |


I am currently a Senior majoring in Visual Arts and minoring in Natural Sciences and Design at New York University Abu Dhabi. I'm currently working on User Interface and User Experience Design where I aim to provide positive and memorable experiences to the users. I aspire to be a designer who focuses on minute details, and be part of a greater change that can make a positive impact on people’s perspectives and lives.
Currently, I am passionate about problem solving through visuals, and designing user-friendly and human-centered apps. I also have a basic to intermediate knowledge on web development using HTML, CSS and Javscript.


| Recorded Crime Offences (Number) by Garda Station, Type of Offence and Year |
|||||||
|---|---|---|---|---|---|---|---|
| 2011 | 2012 | 2013 | 2014 | 2015 | 2016 | ||
| Store Street, D.M.R. North Central Division | 03 ,Attempts/threats to murder, assaults, harassments and related offences | 338 | 289 | 304 | 305 | 437 | 457 |
| 06 ,Robbery, extortion and hijacking offences | 171 | 132 | 121 | 131 | 165 | 107 | |
| 07 ,Burglary and related offences | 276 | 212 | 267 | 351 | 268 | 241 | |
| 08 ,Theft and related offences | 4648 | 4449 | 5014 | 5008 | 5998 | 5483 | |
| See Background Notes |


Da Vinci Payer Data exchange - Local Development build (v0.3.7). See the Directory of published versions
Previous Page - US Core Organization
The US Core Patient profile SHALL be used to express a members demographic information.
The essential fields in the Patient profile are:
| R4 Hierarchical Name | R4 Name | Card. | Type |
|---|---|---|---|
| Patient | Patient | 0..* | |
| Patient.id | id | 0..1 | id |
| Patient.us-core-race | us-core-race | 0..1 | (Complex) |
| Patient.us-core-ethnicity | us-core-ethnicity | 0..1 | (Complex) |
| Patient.us-core-birthsex | us-core-birthsex | 0..1 | code |
| Patient.identifier | identifier | 1..* | Identifier |
| Patient.identifier.system | system | 1..1 | uri |
| Patient.identifier.value | value | 1..1 | string |
| Patient.name | name | 1..* | HumanName |
| Patient.name.family | family | 1..1 | string |
| Patient.name.given | given | 1..* | string |
| Patient.gender | gender | 1..1 | code |
| Patient.birthDate | birthDate | 0..1 | date |
| Patient.communication | communication | 0..* | BackboneElement |
| Patient.communication.language | language | 1..1 | CodeableConcept |
The Member Number will be entered in the *identifier field. The code MB SHALL be used to identify the member identifier. See the example below:
{ "use" : "member", "type" : { "coding" : [ { "system" : "http://hl7.org/fhir/v2/0203", "code" : "MB", "display" : "Member Number" } ], "text" : "Health Plan Member Number" }, "system" : "http://plan.healthplan.com", "value" : "987654321" }
A collaboration of Health Plan experts have performed an evaluation of claims information and developed a mapping of data for Members to the US Core Patient profile. This is shown below as an assistance to implementers:
| Line | PayerSource | CMS BB 2.0 Field | Data Descriptor | FHIR Profile | Profile Field | ValueSet | Notes |
|---|---|---|---|---|---|---|---|
| 1.1 | Member | BENE_ID | Patientid | US Core Patient | .identifier.value | ||
| 2.1 | Member | DOB_DT | Date of birth | US Core Patient | .birthDate | ||
| 3.1 | Member | N/A | Date of Death | US Core Patient | .deceased[dateTime] | ||
| 4.1 | Member | BENE_COUNTY_CD | County | US Core Patient | .contact.address.district | ||
| 5.1 | Member | BENE_STATE_CD | State | US Core Patient | .contact.address.state | ||
| 6.1 | Member | BENE_CNTY_CD | Country | US Core Patient | .contact.address.country | ||
| 7.1 | Member | BENE_RACE_CD | Race code | US Core Patient | .us-core-race | ||
| 8.1 | Member | N/A | Ethnicity | US Core Patient | .us-core-ethnicity | ||
| 9.1 | Member | GNDR_CD | Gender code | US Core Patient | .gender | Valueset-administrative-gender - FHIR v3.0.1 | |
| 10.1 | Member | N/A | Name | US Core Patient | .name | ||
| 11.1 | Member | BENE_MLG_CNTCT_ZIP_CD | Zip code | US Core Patient | .contact.address.postalCode | ||
| 7.1 | Claim | N/A | Patient account number | US Core Patient | .identifier.value | ||
| 8.1 | Claim | N/A | Medical record number | US Core Patient | .identifier.value | ||
| F.1 | R4 | N/A | Birth sex | US Core Patient | .us-core-birthsex | US-Core-R4/ValueSet-birthsex | UNK |
| F.2 | R4 | N/A | Telecom | US Core Patient | .telecom | Provide If Available | |
| F.3 | R4 | N/A | Language | US Core Patient | .communication | Provide If Available |
Where an entry is provided in the CMS BB2.0 FIELD column above the definition of the field can be reviewed using the following URL:
https://bluebutton.cms.gov/resources/variables/{CMS_BB2.0_FIELD}/
Where {CMS_BB2.0_FIELD} is replaced with the Field value in lower case. For example:
https://bluebutton.cms.gov/resources/variables/bene_id/ https://bluebutton.cms.gov/resources/variables/dob_dt/
An example mapping of a Patient resource is shown here:
{ "resourceType" : "Patient", "id" : "example", "meta" : { "profile" : [ "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient" ] }, "text" : { "status" : "generated", "div" : "" }, "extension" : [ { "url" : "http://hl7.org/fhir/us/core/StructureDefinition/us-core-race", "extension" : [ { "url" : "ombCategory", "valueCoding" : { "system" : "urn:oid:2.16.840.1.113883.6.238", "code" : "2106-3", "display" : "White" } }, { "url" : "ombCategory", "valueCoding" : { "system" : "urn:oid:2.16.840.1.113883.6.238", "code" : "1002-5", "display" : "American Indian or Alaska Native" } }, { "url" : "ombCategory", "valueCoding" : { "system" : "urn:oid:2.16.840.1.113883.6.238", "code" : "2028-9", "display" : "Asian" } }, { "url" : "detailed", "valueCoding" : { "system" : "urn:oid:2.16.840.1.113883.6.238", "code" : "1586-7", "display" : "Shoshone" } }, { "url" : "detailed", "valueCoding" : { "system" : "urn:oid:2.16.840.1.113883.6.238", "code" : "2036-2", "display" : "Filipino" } }, { "url" : "text", "valueString" : "Mixed" } ] }, { "url" : "http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity", "extension" : [ { "url" : "ombCategory", "valueCoding" : { "system" : "urn:oid:2.16.840.1.113883.6.238", "code" : "2135-2", "display" : "Hispanic or Latino" } }, { "url" : "detailed", "valueCoding" : { "system" : "urn:oid:2.16.840.1.113883.6.238", "code" : "2184-0", "display" : "Dominican" } }, { "url" : "detailed", "valueCoding" : { "system" : "urn:oid:2.16.840.1.113883.6.238", "code" : "2148-5", "display" : "Mexican" } }, { "url" : "text", "valueString" : "Hispanic or Latino" } ] }, { "url" : "http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex", "valueCode" : "M" } ], "identifier" : [ { "use" : "member", "type" : { "coding" : [ { "system" : "http://hl7.org/fhir/v2/0203", "code" : "MB", "display" : "Member Number" } ], "text" : "Health Plan Member Number" }, "system" : "http://plan.healthplan.com", "value" : "987654321" }, { "use" : "usual", "type" : { "coding" : [ { "system" : "http://hl7.org/fhir/v2/0203", "code" : "MR", "display" : "Medical Record Number" } ], "text" : "Medical Record Number" }, "system" : "http://hospital.smarthealthit.org", "value" : "1032702" } ], "active" : true, "name" : [ { "family" : "Dent", "given" : [ "Arthur", "B." ] } ], "telecom" : [ { "system" : "phone", "value" : "555-555-5555", "use" : "home" }, { "system" : "email", "value"<EMAIL_ADDRESS>} ], "gender" : "male", "birthDate" : "1953-01-22", "address" : [ { "line" : [ "6518 Meadowridge Rd" ], "city" : "Elkridge", "state" : "MD", "postalCode" : "21075", "country" : "US" } ] }Generated Narrative with Details
id: example
identifier: Medical Record Number = 1032702 (USUAL)
identifier: Health Plan Member Number = 987654321 (USUAL)
active: true
name: Arthur B. Dent
telecom: ph:<PHONE_NUMBER>(HOME<EMAIL_ADDRESS>gender:
birthsex: Male
birthDate: Jan 22, 1953
address: 6518 Meadowridge Rd, Elkridge, MD 21075 US
race: White, American Indian or Alaska Native, Asian, Shoshone, Filipino
ethnicity: Hispanic or Latino, Dominican, Mexican
Refer to the US Core Additional examples of the US Core R4 Implementation Guide for further examples of completed Patient Profiles .


I'm a fourth year student at UCSD, studying Cognitive Science with a focus in Human Computer Interaction. I also have minors in Design, Business, and Computer Science.
I am passionate about speaking to people and understanding their needs. I want to design a future that makes living better, and more accessible. This includes designing mobile and web interfaces, as well as products and services.
When I'm not working on a design project, I am out hiking, camping, and adventuring new areas. Check out my work experience, and feel free to contact me at<EMAIL_ADDRESS>I worked in a team at Viasat during summer 2017. Our task was to design an app for Viasat's commercial internet service, Exede. Currently, users only had a website, which was not effective in solving easy problems, such as paying bills or troubleshooting. The goal was to provide an easy experience for customers to quickly access all their internet needs.
My team had designed an initial prototype before I joined. At this stage, the app was to mainly be used as a troubleshooting tool, to help people understand why their internet might not be working.
I joined in time for our first round of user testing. I wrote the interview procedure and questions, conducted and documented the interviews, and recommended design changes.
After three rounds of testing, with 9 users, we found that our color scheme was too distracting, especially for our target audience. We were using big blocks of color that made it hard for users to navigate through the app. Additionally, our users had a hard time understanding the functions of certain buttons, or the flow of certain processes.
For example, users did not realize that to start the reboot process, they simply have to press a button. Users automatically saw the word "reboot", and started having an anxious reacting, looking for a modem to unplug.
The information architecture was also causing trouble for users. Users had a hard time figuring out where certain functions would be in the navigation menu. We decided to add a billing menu to the navigation.
We toned down the color on the overall design, changed the language on the reboot screen to avoid triggering and incorrect responses, and reduced the amount of screens in the troubleshooting process to make the experience seem shorter and limit the amount of user intervention.
We tested users with our new design, and found that when we used the word "refresh" instead of "reboot", users were less tense and pressed the button. They trusted the app to solve the problem. They also understood the process and the navigation.
I was working on another project trying to use artificial intelligence to cut customer care costs. I was surprised that most of the calls were billing issues that could easily be solved by an intuitive app or website. After creating use case flows, I designed screens that allowed users to easily manage their payment methods, and understand their bills.
After user testing, I changed the layout of some screens. Originally, users were confused between the difference in "past transactions" and "future transactions" because they were placed too close to each other and looked similar. Therefore, I changed the language and placement to make a clear distinction. Additionally, I changed all editable fields to be the same color to remain consistent.
I worked in a team to analyze current popular music applications such as Spotify, Apple Music, and Amazon music and find opportunities for a better overall design. This analysis was completed through interviews, between-app workflow comparisons, a competitive analysis of Information Architecture, and a final mockup of a prototype redesign.
We interviewed 9 participants using Spotify, Apple Music, and Amazon Music to understand why people prefer certain apps, what they use these music apps for, and which music apps provide a good user experience.
We asked users to create playlists for different types of events, manage their playlists, share their playlists with friends, and search for new music. We defined two types of users based on our interviews.
We compared good and bad user workflows between Spotify, Amazon Music, and Apple Play. For example, we compared the experiences discovering new music using Apple Music and Spotify.
Apple Music currently does not have a good layout for discovering new music.
Once in browse, user can click on "new music"
They are immediately presented with music news
Only after scrolling down, a user sees new tracks
Overall, a user has to really search for new music, and is provided with irrelevant information throughout the task.
In contrast, Spotify's UI for discovering new music is very clear. Immediately, the home screen provides music a user might like based on algorithms.
Already on the home screen, there is a section for music "made for you" that is collected based on music you might like.
A list of new music is clearly presented, with the option to download the songs or play them.
A user can easily click on a new song and discover new music, add it to their playlist, or save it.
We compared the Information Architecture of Apple Play, Amazon Music, and Spotify to understand which platform provided the best and most intuitive navigation which we could integrate into our new design.
Apple Play has a navigation that is focused on the personalized experience. They have a menu for Library placed to the left, followed by a "For You" recommendation. However, listed under new music is Exclusive Film, Playlists, Hot Tracks, New Releases, and finally Videos. The top display listed under new film is Exclusive Film, which is not really music, and therefore in almost the wrong or unintuitive category.
Amazon Music's structure makes it an easy platform to search for new music. The first item in the nav menu is Browse, and every nav menu includes a search bar on the second level of its hierarchy. There is no social aspect included in the hierarchy, and it only creates a sense of searching for new music, rather than being connected to music other people are listening to.
Spotify lists library at the end of the navigation menu. People generally have the mental model where important items appear first in a list. Music listeners often listened to music in their own library, and were therefore confused when "library" appeared at the end of the navigation menu. Additionally, diving deeper into "genres", there are sections for "Global Top Music" and "Global Viral Music". The distinction between "Top Music" and "Viral Music" are unclear, and grouped together, even though "American Music" and "Country" are paired together. This design is inconsistent and uninformative.
Based on user testing and the Information Architecture Analysis we made several decisions about our app layout. We listed Home Library Friends Discover and Search in that order. Based on our interviews, people mainly want to access their own library, but that they also look to these music apps as a way to find new music. Therefore we added a Discover section to provide additional music recommendations. We also realized throughout our interviews that people rely on their friends for music, and want more of a social aspect to the app. Therefore we included a "Friends" section as a navigation menu. We took inspiration from Amazon's style of providing a search bar in every nav menu, and allowed our users to access their friend's music on the home page, in the "Friends" nav menu, and within Browse.
We originally showed the song that a friend was listening to right above the picture of a friend. However, we decided this layout was too similar to the current song that a user was listening to. We did not want our users to be confused between their current song playing, and what their friend was currently listening to. Therefore we put the song title below the picture of the friend, and made the design different than that of the music a user is listening to.
We wanted to create an effortless experience for users to find new music, in this case from their friends, and add it to their playlist
Users can see a list of their friends, and choose a specific one to see their music history
Users can click on a specific song
Each song has options
These options include adding it to a playlist and sharing with friends
A user can add it to an existing playlist, or create a new one
When a song is added to a playlist, there is a clear confirmation for user feedback
Overall this design is a lot more social based and provides a clear flow for user scenarios. It allows users the option to share a song, discover new music and artists, and easily manage their playlists.
I worked in a team and entered the Design for San Diego challenge. The were interested in the issue of safety in busy intersections around San Diego. Specifically, how we can leverage current existing technology and design to create a safer environment for drivers, pedestrians, and cyclists.
We went to several intersections around San Diego where fatal accidents occur most often. We observed cars disobeying street signs, interacting with pedestrians, and unsafe behavior from pedestrians.
A driver is about to make the wrong turn into a one-way street, but the pedestrian stops the driver. This interaction between pedestrians and drivers is important for safety.
In a less fortunate case, the driver does not notice the signs indicating a one-way street and makes a turn into oncoming traffic.
We also noticed pedestrians standing at the edge of a sidewalk often close enough to be hit by a car. Similarly, we saw tire tracks very close to sidewalks where people often stand.
Lines that indicate where a car should stop are often ineffective, and cars end up stopping in the middle of crosswalks.
We interviewed drivers, cyclists, and pedestrians to understand how these stakeholders feel about safety issues around intersections.
Based on all of this user testing, we defined the problem that there is too much information happening in intersections. Drivers have to be aware of pedestrians and cyclists who often come out of nowhere, directions, and important street information. All of this information can cause cognitive overload, and overwhelm drivers which leads to mistakes.
We created storyboards to portray some of our far out ideas.
The idea was to have cylclists, cars, and pedestrians all on different levels of streets to prevent contact between any stakeholder. This idea obviously was not feasible, however it made us think about ways to make the interaction between these parties safer.
We also thought about putting retractable spikes in the streets that would pop up when a car has a red light and physically prevent them from moving forward, also increasing safety. This too is not feasible, however it made us think about ways that we could metaphorically stop cars if not physically.
Our idea was an app that could be presented through a heads up display, or on the dashboard, that showed users important information from the streets. This included nearby pedestrians, cyclists, other cars, important street signs, and obstructions in the word. This information would be collected through the smart street lights which are currently in place in downtown San Diego. This street lights have the capability to process images, which we would then transfer to the cars. This would highlight important information in case drivers missed something.
We submitted all of our user testing and prototype to the Design for San Diego challenge and received a lot of constructive feedback. The main concern was that this design would be more distracting than helpful.
To address these concerns we tested out our prototype.
We tested our design by "WOZing" our prototype with drivers. We first looked at how distracted drivers were using google maps, and then tested the effectiveness of a device that would highlight important objects in the street.
We held a phone at the front and side of the car to capture different angles. We then skyped this screen to another phone and drew over objects that we viewed as a potential threat to safety, such as another car or pedestrian. We also tried to use auditory cues such as a beeping noise if a driver was in danger.
We decided to model our solution after google maps. The app would provide video footage of what was happening in the road if users wanted to glance at it, but not require them to always look at the interface for warnings. Our app would use auditory alerts by actually saying statements such as "watch out for the pedestrian". Additionally, the app will only alert drivers during dangerous situations. For example if the car was stopped while a pedestrian was crossing the street, there would not be an alert. The app would only warn the driver if the car started moving.
We envision a future with a personal assistant in every car. As more cars begin to implement cameras with a 360 degree view, this will be the reality.
Some additional features we hope to provide is to integrate artificial intelligence into PAC and add the functionality of being to ask it questions such as: “Is it safe to make a right lane change?” In that way, our system would mimic the "front seat driver", who warns the driver of possible collisions.
I worked in a team to design a plant watering system. We worked with an organization called "One Step", who challenged us to design an autonomous, solar powered plant watering system. Because of online and user research, we broadened the design requirements to create a general watering system that used energy efficient methods.
We identified our key stakeholders, and created a stakeholder analysis matrix to keep in mind throughout our design process.
Creating this helped us understand who might have interest in our project, why they have an interest, and how much influence they would have. This helped us address the proper way to design for each of our stakeholders. For example, although policymakers are concerned with lowering the amount of water used around California, the priorities and needs of gardeners is more important to us.
We conducted online research to gain context about our design challenge. Due do the drought and wildfired in California, policymakers have set laws restricting the amount of waters citizens can use, and setting heavy fines for wasting water. We found that sprinkler systems are often wasteful, and spray water in areas beyond the garden. Drip irrigation is the most effective method of watering plants, however most people don't have the knowledge or ability to implement these systems.
Based on interviews with 16 gardeners around California, we created a user profile.
Susan in 40 years old. She gardens as a hobby. Susan is in the upper-middle class. She has two kids that help her around the garden, but are not always around, or remember to water the plants. Susan travels a lot with her husband, and so neither of them are able to be home all the time. Susan grows flowers and fruit trees, which require different amounts of water at different times.
We identified key needs and insights based on our interviews with gardeners.
We created an analogous solution analysis to help us understand the benefits and drawbacks of what people currently use.
After drawing inspiration from existing solutions, we came up with sketches that utilized the pros of existing solutions, while avoiding the cons.
This design addresses the need for a cheap solution that can adapt to every type of garden. The design uses cheap recycled materials, and can be designed for every backyard. The strengths of this design is that it is environmentally sustainable, low budget, and adaptive because systems are created for specific gardens. It is open sourced, and provides a good opportunity for education. Some weaknesses are that this design has the potential of faster deterioration. It takes time to make and install the system from scratch, and people might have a hard time understanding instructions.
The core need that this design solves is an automatic system that reduces the amount of water saved. This design has a water insert that leads to a bucket that filtrates water. The tank can hold up to two weeks of water. Solar panels power an arduino, alongside soil sensors. Together, the arduino controls linear motors to stop or allow flow to plants based on soil sensors. It flows to plants through a drip watering system which allows for variable flow rate. The strengths of this design are that the filtration device removes physical impurities, the soil sensors monitors soil water needs, and the drip irrigation efficiently delivers water to plants. Some weaknesses are that the soil sensor could be inaccurate, and it needs user input every two weeks to sustain water source.
The core need that this design addresses is the desire to reduce water usage by using water efficiently. This design inputs water from a waterline, and waters as seen necessary based on a sensor chip. The excess water is collected at the bottom of the plants, and is then put back into the tank collecting water from a waterline. The strengths of this design are that it has sensor driven automation for efficiency. It is adaptable to different kinds of plant by adjusting the structure. Some weaknesses are that it has many different components means more things that could break or need replacement, and it might be difficult to teach users how to utilize and maintain the technology used.
We created a table to identify what criteria is important for our final solution, and the metrics we would use to assess each idea.
After showing our sketches to gardeners, we received vital feedback.
We made a Pugh Chart based on the feedback we received.
Based on these findings, we decided to use the online drip irrigation guide using certain components from the Solar Powered Drip Irrigation design. These components include the filtration bucket and the solar powered arduino system.
Our final design includes articles to increase knowledge and help people understand our guide. It also includes a cost estimator to calculate the required materials and cost based on individual's gardens, and a community forum for people to ask questions or give advice based on experience.
Articles help inform users about drip irrigation related topics to increase education.
Gardeners can input the specificities of their garden, and receive materials and instructions based on their needs.
The guide will list the amount of materials needed for each component, as well as a description of each material and a link to buy it online.
Finally, the guide will provide step by step instructions for building the system. For example, the instructions to build the actual pipes will look as follows...
Some problem that may arise from our design is that the materials can end up being costly and use up more resources, especially if people do not already own these materials. There is an education barrier, and people who are less tech-savvy might have difficulty implementing certain components. Additionally, the instructions may be hard for people to understand, and there are no other resources besides this guide to help gardeners. Future work would include video tutorials to help gardeners implement this design.


Due Feb 1, 11:55pm. Submit via eClass submission link on the main eClass
course page.
Late submission (with 20% deduction) Feb 3, 11:55pm.
Submit via separate eClass link for late submissions.
In this assignment, you implement a random player
for the game Gomoku, also called Five in a Row.
You do this by modifying the assignment 1 starter code
which is based on the Go0
program
from class, but modified to make your job easier.
The main steps are:
assignment1
, which contains:
assignment1-public-tests.gtp
with
sample test cases for your program.Gomoku or Five in a Row is played on a Go board. The game starts with an empty board, and players Black and White alternate to place a stone of their color on a grid point. Black goes first. The goal of the game is to create a line of five or more stones of your own color, either horizontally, vertically or diagonally. The first player to achieve that goal wins. If neither player creates five in a row, then the game is a draw.
For more information on the game, you can see the wikipedia page. Note that many variants of the rules are discussed on that page. We use what they call Free-style gomoku, which defines the win as five or more stones in a row, and puts no restrictions on which moves are allowed.
When implementing your solution based on the starter code, be aware of the commonalities and differences between the two games. First, the rules of Gomoku are much simpler. Checking legality of moves is simpler, there is no capturing, no suicide, and no ko rule to deal with. However, finding out whether the game is over is more complex. In Go, this is defined by consecutive passes. In Gomoku, you need to check if a player has five in a row.
We will test your program using the GTP commands below. These commands are already implemented in the starter code, but the implementation either is for Go or is just a stub that returns "unknown" or similar. You only need to change or implement the commands as indicated below.
boardsize
This command sets the board size (between 5 and 19 in our tests). It also initializes the board to all empty. You will not need to change this command.
clear_board
This command re-initializes the board to all empty, and throws away all the moves played so far. You will not need to change this command.
play color coordinate
Play a move of given color on the given coordinate. You will need to change this command to follow the Gomoku rules instead of the Go rules. Also, you need to implement different error handling. See Details of the play command below.
gogui-analyze_commands,
gogui-rules_game_id,
gogui-rules_board,
gogui-rules_board_size,
gogui-rules_side_to_move
These commands provide support for the game Gomoku in the GoGui 1.5.1 interface. These commands are already implemented and you do not have to change them.
gogui-rules_legal_moves
Produce a list of all legal moves for the current player, in alphabetic order.
Usage example (on empty 3x3 board):
gogui-rules_legal_moves = a1 a2 a3 b1 b2 b3 c1 c2 c3
You will need to change this command to use Gomoku rules instead of Go rules. See Details of the gogui-rules_legal_moves command below.
genmove color
This command generates and plays a random move.
This command implements random choice from the list of moves
created by legal_moves
.
You will need to change this command for end of game handling.
See Details for end of game below.
gogui-rules_final_result
This command checks if the game is over and outputs one of the following game results:
black white draw unknown
See Details for the gogui-rules_final_result command below. Also see Details for end of game.
The public test cases are in file assignment1-public-tests.gtp
in the assignment1
directory.
Most tests currently
fail, since the program does not implement those commands correctly yet.
See Testing Procedure below for examples.
Note that our given test cases only cover a small number of cases. For evaluation, we will use a more comprehensive set of tests.
All our tests will be on a Gomoku board of size 19x19 or smaller.
As in assignment1-public-tests.gtp
,
test cases are written as text files containing a sequence of GTP commands.
Test cases contain both unnumbered GTP commands to set up a position,
and numbered GTP commands to do the tests.
Each test is followed by the expected correct answer.
Submit a single tgz file called assignment1.tgz
which contains exactly the following (and nothing else):
A single directory assignment1
which contains all the files in your solution, namely:
assignment1
directory,
but with the python code modified to solve the assignment.presubmission.log
file.readme.txt
which lists the names and student IDs of your team. List the designated submitter first.
Follow the steps below on a standard undergraduate machine, and create a text file presubmission.log
that shows a copy of your command line presubmission testing.
assignment1
folder is correct, then create your submission with a command like
tar -cvzf assignment1.tgz assignment1
assignment1.tgz
into a new directorygogui-regress
with your program, using assignment1-public-tests.gtp
as inputscript
logging here with the command exit
presubmission.log
to your assignment1, and compress it again tar -tf
for a final check of your assignment1.tgz
contents. Use the checklist below--exclude=__pycache__
to get rid of them.
There will be total of 5 marks for this assignment.
presubmission.log
which shows the log of your correct test execution, and your readme.txt file (see below).Code that does not run, or just hardcodes the public tests case by case, will receive a mark of 0. If your code needs fixes, you need to submit a revised version before the late submission deadline. TA will not attempt to fix your code under any circumstances. Use the discussion forum or consult the teaching team in case of questions.
assignment1
folder.
You may create new files within this folder,
but it might not be necessary for this assignment.
Attempt to play a move of given color on the given coordinate. First check if the move is legal according to the rules of Gomoku. If yes, then play it and update the board according to the rules. If no, then output an error message and do not change the board. The format of an error message is:
illegal move: "copy of the input argument(s)" reason
The possible reasons for error messages are listed below. Check them in the order given and output the first error only:
In the starter code, this command is implemented for Go, not for Gomoku.
If the game is over, return an empty list. Otherwise, return a list of all empty points on the board in sorted order.
In the starter code, this command always returns an empty list.
The Go0/Go1 engine also implements a legal_moves command for the game of Go. You can just ignore that.
Here, one of the first three answers black, white, draw
should only be given if the game is over.
The fourth answer unknown
should always be returned if this command is called for a board where the game is not over yet.
In the starter code, this command just returns unknown
.
There are two different cases which end the game.
First, if a player creates a row of five or more stones, that player wins.
Second, if the board is completely filled with stones, but no player
has five in a row, then the game is a draw.
The gogui-rules_final_result
command should output either the color of the winner, or draw.
The genmove
command at the end of a game:
Before the end of a game, genmove
will play a random legal move.
If the game is over because the opponent just made five in a row, the
response of genmove
should be:
resign
If the game is over because the board is full and it is a draw, the response should be
pass
This is the only circumstance in which pass should be generated. The reason for this specification is that we can more easily use the tools for Go in this way.
In the starter code, genmove
is implemented for Go, not for Gomoku.
Created: Dec 27, 2018 Last modified: Jan 8, 2021
Martin Müller and Ting-Han Wei


This year, our team is comprised of 12 exceptionally talented teenagers from Vandegrift High School in Austin, Texas. With 4 veterans and 8 rookies, we have 6 juniors, 3 sophomores, and 3 freshman. All in all, we are just 5 girls and 7 guys all working to create an awesome robot and have fun.
Project Manager
Professional yet funny and personal bio will go here later once the information is collected
Assistant Project Manager
Professional yet funny and personal bio will go here later once the information is collected
Software
Professional yet funny and personal bio will go here later once the information is collected
Hardware
Professional yet funny and personal bio will go here later once the information is collected
Software
Professional yet funny and personal bio will go here later once the information is collected
Hardware
Professional yet funny and personal bio will go here later once the information is collected
Software
Professional yet funny and personal bio will go here later once the information is collected
Hardware
Professional yet funny and personal bio will go here later once the information is collected
Software
Professional yet funny and personal bio will go here later once the information is collected
Hardware
Professional yet funny and personal bio will go here later once the information is collected
Hardware
Professional yet funny and personal bio will go here later once the information is collected
Software
Professional yet funny and personal bio will go here later once the information is collected


LOSM: Linked Open Street Map
beta version
Obtain OSM URI, latitude and longitude of nodes named "London"
Obtain OSM URI and name of nodes in the nearby of the position of our Lab (limit expressed in meters)
Using spatial:withinCircle
Using spatial:withinBox
Spatial:within with WKT polygon
Results filtering by LinkedGeoData classes corresponding to Open Street Map tags
Results filtering by LinkedGeoData classes and properties
Results filtering by LinkedGeoData classes corresponding to Open Street Map keys
Obtain OSM URI and name of nodes in the nearby of our Lab (limit expressed in kilometers)
Obtain OSM URI and name of nodes in the nearby of our Lab(limit expressed in miles)
Connected elements
You can easily try the queries on the side panel
Demo Version
Query Editor
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX lgdo: <http://linkedgeodata.org/ontology/>
PREFIX spatial: <http://jena.apache.org/spatial#>
PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
PREFIX losm: <http://sisinflab.poliba.it/semanticweb/lod/losm/ontology/>
Parser not available.
Output Format
txt
html
xml
json


|
Document
|
Description
|
|
Changes
|
This document provides a history of the changes made to the
project, in a user friendly format, generated from the
xdocs/changes.xml file.
|
|
Change Log
|
This document provides a history of the most recent
changes made to the project taken directly from the
source code repository.
|
|
Developer Activity
|
This document provides a report of activity in terms of
CVS commits and breaks it out by developer.
|
|
File Activity
|
This document provides a report of activity in terms of
CVS commits and breaks it out by file.
|
|
Tasks
|
This document provides a list of tasks that need to
be completed for the project, generated from the
xdocs/tasks.xml file.
|
|
Task List
|
This document provides a list of tasks that need to
be completed for the project, generated from the
@task javadoc tag in java source code.
|
|
Metric Results
|
This document provides information on various source code
metrics that have been computed. These metrics can
provide useful information regarding the abstractness and
total number of classes.
|
|
Checkstyle Report
|
This document provides the results of the Checkstyle
report. This report provides an indication of how well
this project complies with its coding conventions.
|
|
Javadoc Report
|
This document the details of javadoc execution against
the project. This encourages the reduction of javadoc
errors.
|


Style and comfort coming to Birmingham city centre with a new ECCO store
Leading shoe brand ECCO opens new city centre store in Birmingham with the launch of its new TREDTRAY series
by Jonny DillonCombining style and comfort, ECCO has grown to become one of the world’s leading shoe brands, building its success on products with a great fit and top-quality leathers. ECCO owns and manages every aspect of the value chain, from its tanneries and shoe manufacturing facilities to its stores and website.
Founded in Denmark in 1963, the company is still family-owned and now sells its products in over 2,200 shops in 90 countries.
Based on its most modern retail concept, ECCO is launching a brand-new store in Birmingham from mid-November.
In conjunction with launching its brand-new store, ECCO will also introduce its new TREDTRAY series this month, putting the Danish brand right at the centre of the growing, global trend for workwear inspired boots.
Robust, with thick, lugged and non-slip soles, the ECCO TREDTRAY is in line with the fashion for utilitarian, highly functional boots. The series features autumnal and wintry styles in browns and greys, as well as a directional, edgy capsule collection of black boots.
These boots are perfect for the many wearing moments and styling options that the workwear trend demands. This is not about trekking in the great outdoors, but feeling comfortable and looking good from the commute to the coffee bar.
Stay dry with innovative waterproof technology
The TREDTRAY series features seven styles in ECCO’s new HM100K leather. This premium leather was created using a groundbreaking re-tanning process that was developed in the brand's own tanneries. HM100K leather is combined with ECCO’s waterproofing techniques to produce comfortable and completely waterproof shoes.
Whether you are exploring the wild on a damp, sodden day, or walking through the city in the driving rain, the state-of-the-art technology will protect your feet, keeping them dry and comfortable.
Seven styles feature the HM100K leather, while the other of the TREDTRAY styles are made with GORE-TEX®, and the remainder of the collection from Santiago, Nubuck, and full-grain leathers developed in ECCO’s tanneries.
Ultra-modern, lightweight comfort
The ECCO TREDTRAY was created using the company's own innovations, which will allow the style-conscious to embrace this trend in ultra-modern, lightweight comfort.
From the very first step you take in the ECCO TREDTRAY, it delivers lightweight comfort, achieved by combining a deep, lugged rubber tray outsole with ECCO FLUIDFORM™ Direct Comfort Technology.
Fluid P.U is injected into the tray outsole, forming itself around the edges of the anatomically-shaped last, resulting in not only a lightweight boot, but also a form-fitted feel.
The new store is located at 41a New Street, B2 4EG. For more information, go to www.eccoshoesuk.com


Northwave Partners with Slam Jam to Rejuvenate the Espresso for Luxe New Drop
The iconic ’90s sneaker is making a return.
by Patrick MontesLast fall, Northwave teamed up with Japanese label YSTRDY’S TMRRW to resurrect the Cream sneaker, reintroducing the style by producing two new colorways. Now, the Italian manufacturer is partnering with Slam Jam to bring back another notable ’90s silhouette: the Northwave Espresso.
Specifically, Northwave and Slam Jam are revealing plans to deliver four distinct spins on the Espresso, reworking the shoe in suede and leather — with a special “eco-fur” used for the interior lining — for new Black, Royal Blue, White and Red models. Debuted in 1991 and re-launched in Japan in 2014, the original Espresso was brought to life by blending the soles of snowboard boots with the uppers that are commonly found on sneakers; it’s billed as a “sneaker designed by snowboarders for people.”
You can take a look at the four new iterations of the Northwave Espresso above. For those interested in picking up their own pair, head on over to the official Slam Jam website, where the sneaker is currently retailing for about $143 USD.
For more, revisit the recently-announced Slam Jam x Nike Blazer “Class of 1977” collaboration.


Key Details Of Wits’ CAF Adventure
by Soccer LadumaBidvest Wits will start and end their CAF Confederation Cup adventure at home, with games in Mali, Libya and Guinea taking place in-between as they hope to progress out of the groups.
Read: Wits Discover Historic CAF Opponents
The Clever Boys made history for themselves recently when they booked their spot in the CCC proper after manoeuvring their way through the qualification rounds, and yesterday they discovered which teams they had been pitted against as they seek to secure a place in the quarterfinals.
Wits get underway against 16-time Guinean champions, Horoya AC, at Bidvest Stadium on December 1 according to CAF, with their first away trip seeing them travel to face 2012 CCC finalists, Djoliba AC of Mali. Their year will then end with a home tie against Libyan outfit, El Nasr.
Read: Chiefs Lose Analyst To Bafana
Gavin Hunt’s side find themselves alone in the group stages after TS Galaxy were knocked out at the final hurdle by Nigerian giants, Enyimba.
Wits’ fixture list in full:
Wits v Horoya - December 1
Djoliba v Wits - December 8
Wits v El Nasr - December 29
El Nasr v Wits - February 16
Horoya v Wits - February 23
Wits v Djoliba - March 8
The top two teams from the group will progress to the last eight where it goes from a league format to a knockout stage, and Hunt will be eager to progress further in the tournament after they smashed home 11 goals in four games in qualifying.
Do you think Wits can finish in the top two of this group?


| | |
- __builtin__.object
-
- HttpRequest
- RequestMockBuilder
class HttpRequest(__builtin__.object) |
| |
Encapsulates a single HTTP request. |
| |
Methods defined here:
- __init__(self, http, postproc, uri, method='GET', body=None, headers=None, methodId=None)
- Constructor for an HttpRequest.
Args:
http: httplib2.Http, the transport object to use to make a request
postproc: callable, called on the HTTP response and content to transform
it into a data object before returning, or raising an exception
on an error.
uri: string, the absolute URI to send the request to
method: string, the HTTP method to use
body: string, the request body of the HTTP request
headers: dict, the HTTP request headers
methodId: string, a unique identifier for the API method being called.
- execute(self, http=None)
- Execute the request.
Args:
http: httplib2.Http, an http object to be used in place of the
one the HttpRequest request object was constructed with.
Returns:
A deserialized object model of the response body as determined
by the postproc.
Raises:
apiclient.errors.HttpError if the response was not a 2xx.
httplib2.Error if a transport error has occured.
Data descriptors defined here:
- __dict__
- dictionary for instance variables (if defined)
- __weakref__
- list of weak references to the object (if defined)
|
class RequestMockBuilder(__builtin__.object) |
| |
A simple mock of HttpRequest
Pass in a dictionary to the constructor that maps request methodIds to
tuples of (httplib2.Response, content) that should be returned when that
method is called. None may also be passed in for the httplib2.Response, in
which case a 200 OK response will be generated.
Example:
response = '{"data": {"id": "tag:google.c...'
requestBuilder = RequestMockBuilder(
{
'chili.activities.get': (None, response),
}
)
apiclient.discovery.build("buzz", "v1", requestBuilder=requestBuilder)
Methods that you do not supply a response for will return a
200 OK with an empty string as the response content. The methodId
is taken from the rpcName in the discovery document.
For more details see the project wiki. |
| |
Methods defined here:
- __call__(self, http, postproc, uri, method='GET', body=None, headers=None, methodId=None)
- Implements the callable interface that discovery.build() expects
of requestBuilder, which is to build an object compatible with
HttpRequest.execute(). See that method for the description of the
parameters and the expected response.
- __init__(self, responses)
- Constructor for RequestMockBuilder
The constructed object should be a callable object
that can replace the class HttpResponse.
responses - A dictionary that maps methodIds into tuples
of (httplib2.Response, content). The methodId
comes from the 'rpcName' field in the discovery
document.
Data descriptors defined here:
- __dict__
- dictionary for instance variables (if defined)
- __weakref__
- list of weak references to the object (if defined)
| |


CSS4J FAQ
Click on the question to see the answer.
What is NSAC?
NSAC is a low-level event API for CSS parsing, an evolution of W3C's SAC. NSAC 2.x is not backwards-compatible with SAC, but similar enough that migrating from it should be relatively easy (if you require compatibility with SAC, you may still use version 1 of NSAC, shipped with css4j 1.x).
However, most developers use the higher-level CSS Object Model and do not need to care about NSAC except when handling var()
fallback values
or the var()
-related CSSLexicalValue
.
Are W3C's CSSValue
and CSSPrimitiveValue
interfaces supported?
That API was deprecated by W3C but version 1.0 does implement them. Version 2 and later uses those names but the actual interfaces are different and not backwards-compatible.
How do I access the document style sheets?
 W3C's DOM Level 2 Style standard provides the DocumentStyle
interface for that, see also Extensions to the Document Interface in the more modern CSSOM.
That is, just use document.getStyleSheets()
to get the list of style sheets.
Can I get the merged style sheet that applies to the document?
The document.getStyleSheet()
method does that.
Although you can add style rules to it, you may consider using overriden styles or the user-defined style sheet
(neither are included in the sheet returned by that method) instead.
How can I remove all the rules in a style sheet?
Use sheet.getCssRules().clear()
.
What is the difference between CSSParser
and CSSOMParser
? [2.0 or higher]
When parsing media queries, the CSSOMParser
class has an object-model internal factory
that directly produces CSSOM-enabled media queries, while CSSParser
has a -less useful- factory based on NSAC lexical units.
If you want to parse media queries you probably want to use CSSOMParser
, otherwise CSSParser
should be adequate.
Does css4j depend on dom4j?
The core module does not, but css4j-dom4j is one of the available DOM back-ends (and that one does depend on dom4j).
Does css4j-dom4j work with dom4j 1.x or 2.x?
Although the provided Maven build requires dom4j 2.x, the resulting jar file can be used in runtime with 1.x too. Css4j-dom4j makes no use of the methods that dom4j implements in 2.x but not in 1.6, so it is safe to use with 1.6. Recent versions aren't tested with 1.6 however.
Using the dom4j back-end prior to version 3.1, I find that dom4j does not support using the document's uri to retrieve relative urls. How can I work around?
You can manually set the base url, doing something like:
if (document.getBaseURL() == null) { document.setBaseURL(baseUrl); }
From version 3.1 onwards, the css4j-dom4j module does implement and support Document.setDocumentURI()
.
Does the DOM4J back-end make use of the DOM wrapper, internally?
No, they are independent back-ends.
How do I set up my document for computing paged-media styles?
Use document.setTargetMedium("print")
and then compute the styles. setTargetMedium
rebuilds the style
cascade for the new medium.
I have set up a style database, but the library complains about missing it.
Be sure to call document.setTargetMedium("medium")
, where the medium
must be the same for which the style database was set.
The style database is an abstraction that supplies initial values for properties that are User Agent-dependent. Why not just set them at the UA style sheet?
The user agent sheet depends on the document type and is not always loaded, while the style database is document-independent (but medium-specific).
Are the minification methods recommended for production use?
This library's support for minification (getMinifiedCssText()
and related methods) is not intended as a
general-purpose minification solution, but could be useful as part of a wider CSS toolchain, perhaps with a specialized
minifier at its end.
If you decide to use the minification methods in 1.x be sure to use this library's internal parser, and not the other SAC parsers. And if you use any kind of Internet Explorer hack, please use a sheet factory with the proper NSAC parser flags set. Some IE hacks are supported, but others may give unexpected results so you should be very careful about that.
Are this project's artifacts available on Maven Central?
No, as this project does not accept Maven Central's terms of use.


BrandLand is a Android app that recognises brand names and spits out info about them. It is currently in public beta testing and only supports two brands.
.apk.zip
Browser Themes
Download my Browser Themes to add the Blue and Orange carrot to your browser.


Series in
Rows
Columns
Type
Linear
Growth
Date
AutoFill
Date unit
Day
Weekday
Month
Year
Trend
Step Value
Stop Value
Add Level
Delete Level
Copy Level
Options...
SortBy
SortOn
SortOrder
Orientation
Sort top to bottom
Sort left to right
General
ScrollBars
Tab Strip
Clipboard
Settings
Allow Drag and Drop
Allow Drag and Fill
Allow Undo
Allow Drag and Merge
Allow User to Enter Formulas
Allow Zoom
Allow Overflow
Visibility
Vertical ScrollBar
ScrollBar ShowMax
Horizontal ScrollBar
ScrollBar MaxAlign
Setting
Tab Strip Visible
New Tab Visible
Tab Strip Editable
Tab Strip Ratio(as percentage)
%
Settings
Allow Copy Paste Excel Style
Allow Paste Extend Range
Header Options:
No Headers
All Headers
Row Headers
Column Headers
General
Grid Lines
Calculation
Headers
SheetTab
Column Count:
Row Count:
Frozen Column Count:
Frozen Row Count:
Trailing Frozen Column Count:
Trailing Frozen Row Count:
Selection Policy
Single Select
Range Select
MultiRange Select
Protect
Horizontal GridLine
Vertical GridLine
GridLine Color:
Reference Style:
A1
R1C1
Column Headers
Row Headers
Column Header Row Count:
Column Header Auto Text:
Blank
Numbers
Letters
Column Header Auto Index:
Default Row Height:
Column Header Visible
Row Header Column Count:
Row Header Auto Text:
Blank
Numbers
Letters
Row Header Auto Index:
Default Column Width:
Row Header Visible
Sheet Tab Color:
Settings
Input Message
Error Alert
Validation criteria
Allow:
Any value
Whole number
Decimal
List
Date
Text length
Custom
Data:
between
not between
equal to
not equal to
greater than
less than
greater than or equal to
less than or equal to
Ignore blank
In-cell dropdown
Show input message when cell is selected
When cell is selected, show this input message:
Title:
Input message:
Show error alert after invalid data is entered
When user enters invalid data, show this error alert:
Style:
Stop
Warning
Information
Title:
Error message:
Direction
Summary rows below detail
Summary columns to right of detail
Magnification
200%
100%
75%
50%
25%
Fit selection
Custom:
%
Choose the data that you want
Data Range:
Choose where you want the sparkline to be placed
Location Range:
IsFormulaSparkline
Enter the Sparkline weight(pt)
Negative Points:
Markers:
High Point:
Low Point:
First Point:
Last Point:
Percentage
Line 1:
Line 2:
Minimum Value:
Maximum Value:
Points:
Positive Color
Negative Color
Points1
Points2
MinX
MinY
MaxX
MaxY
HLine
VLine
XMinZone
YMinZone
XMaxZone
YMaxZone
Color 1:
Color 2:
Tags
Draw Symbol
Draw Lines
Dash Line
Data
Data:
DataOrientation:
Vertical
Horizontal
DateAxisData:
DateAxisOrientation:
Vertical
Horizontal
DisplayEmptyCellsAs:
Gaps
Zero
Connect
Show First
Show Last
Show High
Show Low
Show Negative
Show Markers
RightToLeft
Negative:
Markers:
Axis:
Series:
High Marker:
Low Marker:
First Marker:
Last Marker:
Line Weight:
Measure:
Target:
Maxi:
Forecast:
Good:
Bad:
Tickunit:
ColorScheme:
Vertical
Points:
Style:
Stacked
Spread
Jitter
Poles
StackedDots
Stripe
ScaleStart:
ScaleEnd:
ColorScheme:
ShowAverage
Vertical
Points:
ColorRange:
LabelRange:
Maximum:
TargetRed:
TargetGreen:
TargetBlue:
TargetYellow:
Color:
HighlightPosition:
TextOrientation:
Horizontal
Vertical
TextSize:
px
Vertical
Value:
ColorScheme:
Variance:
Reference:
Mini:
Maxi:
Mark:
TickUnit:
ColorPositive:
ColorNegative:
Legend
Vertical
Points:
BoxPlotClass:
5NS
7NS
Tukey
Bowley
Sigma3
ScaleStart:
ScaleEnd:
AcceptableStart:
AcceptableEnd:
ColorScheme:
Style:
Classical
Neo
Show Average
Vertical
PointsRange:
PointIndex:
Minimum:
Maximum:
ColorPositive:
ColorNegative:
LabelsRange:
Vertical
Points:
PointIndex:
ColorRange:
HighlightPosition:
Target:
Target2:
Label:
None
Single
Cumulate
Vertical
Data Range:
Empty Color:
Location Range:
Start Color:
Year:
Middle Color:
Month:
End Color:
Range Color
Location Reference:
value:
Barcode Type:
QRCode
EAN-13
EAN-8
Codabar
Code39
Code93
CODE128
GS1_128
CODE49
PDF417
DataMatrix
Color:
Background Color:
quietZoneLeft:
quietZoneRight:
quietZoneTop:
quietZoneBottom:
Where is the data for your table?
Name:
Table Element:
Format
Clear
Preview
Select the new data range for your table:
Note: The headers must remain in the same row,
and the resulting table range must overlap
the original table range.
Style Name:
Format...
Copies:
1
2
3
4
5
Scaling Type:
Duplex Mode:
Choose paper source by pdf page size
Print ranges
Index:
Count:
Add
Remove
Index
Count
Font
Alignment
Colors and Lines
Size
Protection
Properties
Text alignment
Horizontal:
Left
Center
Right
Automatic size
Internal margin
Automatic
Left:
Top:
Right:
Bottom:
Fill
Transparency
%
Line
Color:
Style:
None
Dotted
Dashed
Solid
Double
Groove
Ridge
Inset
Outset
Width:
Height:
Width:
Locked
Lock text
Object positioning
Allow all users of this worksheet to:
Source Name:
Column
Name:
Header
Display header
Caption:
Item Sorting and Filtering
Ascending(A to Z)
Descending(Z to A)
Hide item with no data
Visually indicate items with no data
Show items with no data last
Name:
Table Element:
Format
Clear
Preview
POSITION AND LAYOUT
SIZE
PROPERTIES
Position
Horizontal:
Vertial:
Disable resizing and moving
Layout
Number of columns:
Button Height:
Button Width:
Height
Width
Scale Height
%
Scale Width
%
Move and size with cells
Move and don't size with cells
Don't move and size with cells
Locked


When you are building a web app that involves dealing with a lot of time related information and presenting it to the user, you would like to show the time information in user’s time zone so users don’t have to do the timezone conversions.
In this post, i’ll try to solve this problem keeping Ruby on Rails as my web app framework. The approach would be same for any webapp except the change in code and syntax.
The most seamless way of showing time information in the user’s time zone is to track the time zone from the browser and run the time related operations on your server considering this time zone and return the time in this time zone. As simple as that.
Common solutions -
Let’s look at some common methods we can use with ROR -
As Eli has nicely written these up here - https://viget.com/extend/using-time-zones-with-rails , METHOD -1 has the short coming of not being able to detect the Day light savings METHOD -2 of JSTZ is preferred. This works 90% of the times but there is no guarantee that this solution works with any server side framework all the time.
The main reason is jstz determines the time zone and returns it as a String. There is no standard in the strings used by the software to represent the time zones unfortunately and due to this some of the cases fail even with Rails.
Just to confirm - please go you rails console and print the following.
You will observe that these are not the same string used by jstz if you can look at it’s time zone.
Hence, this solution does not work for all the cases as well. Also, it is observed that Rails keep adding support for new time zones as they are adopted by the cities / governments. Changing the strings of jstz to be same as Rails’s is one approach but i am not recommending that.
My approach -
My approach to solve this problem is purely based on the offsets. Because -
-
Offsets are the standard across the time zones unlike name, so we only pass the offset values to server let Rails / any server software decide the time zone name.
-
By tracking summer and winter offsets we can handle the daly light savings issues.
-
Another point to handle is the changes to the time zones and their adoption by the software - Cities and governments can always choose to change a time zone or apply changes to their day light savings. For example, Samoa was in SST (UTC - 11hrs) till December, 2011 but they switched their time zone later to WST (UTC + 13hrs). (Ref - http://www.timetemperature.com/pacific/samoa_time_zone.shtml). These changes might / might not have been picked up by user’s browser or the server software (Ruby / Rails in this case). We do not have control over the browser but we should be able to decide a baseline year from when we are considering the time zone changes.
Final solution -
I have put together my approach as a gem (that works for rails as of now but can easily be extended to others.) -
This is tested for rails 2.3.x, 3.x and 4.x and works fine for us.
Please follow the steps in README to use it in your app.
Open Issue -
Browsers some time do not keep them up to date with the time zone changes and they are buggy.
For example, as i am writing this, Google Chrome sends the offsets of Samoa time zone as WST for all the dates before and after 2011 which is an issue. Firefox sends the time zone offsets as SST for both the dates before and after 2011, which is also incorrect.
However, rails 4.x (ruby 2.2) knows that Samoa before 2011, December is SST and WST after that.
But, this is one of those edge cases. For the popular time zones browsers and rails does a very good job and the solution works.
Conclusion -
The approach i used worked for us in majority of the cases by choosing the correct baseline year. Only point to not is that Rails 2.x and 3.x might not be able to track the time zone changes that happened after their year. But these are <2% edge cases as we observed. But, the rest worked well.
Please feel free to be touch about any issues faced / bugs reported through the github page of the gem.
I would say “Time zones are some times complex as they change and there is a difference in the adoption across the browsers. But, majority of the time zones we have traffic from, are simple !”


The Musketeers - Charts & Stats
Version log
×
Error retrieving the server data.
Freaking out with dummy puppets in a swimming pool of caos.
Call the counter madness patrol!
Previous
Next
Previous
Next


When your developer runs git-push into the repository, git-receive-pack is run (either locally or over ssh) as that developer, so is hooks/update script. Quoting from the relevant section of the documentation:
Before each ref is updated, if $GIT_DIR/hooks/update file exists
and executable, it is called with three parameters:
$GIT_DIR/hooks/update refname sha1-old sha1-new
The refname parameter is relative to $GIT_DIR; e.g. for the
master head this is "refs/heads/master". Two sha1 are the
object names for the refname before and after the update. Note
that the hook is called before the refname is updated, so either
sha1-old is 0{40} (meaning there is no such ref yet), or it
should match what is recorded in refname.
So if your policy is (1) always require fast-forward push (i.e. never allow "git-push repo +branch:branch"), (2) you have a list of users allowed to update each branch, and (3) you do not let tags to be overwritten, then you can use something like this as your hooks/update script.
[jc: editorial note. This is a much improved version by Carl since I posted the original outline]
#!/bin/bash
umask 002
# If you are having trouble with this access control hook script
# you can try setting this to true. It will tell you exactly
# why a user is being allowed/denied access.
verbose=false
# Default shell globbing messes things up downstream
GLOBIGNORE=*
function grant {
$verbose && echo >&2 "-Grant- $1"
echo grant
exit 0
}
function deny {
$verbose && echo >&2 "-Deny- $1"
echo deny
exit 1
}
function info {
$verbose && echo >&2 "-Info- $1"
}
# Implement generic branch and tag policies.
# - Tags should not be updated once created.
# - Branches should only be fast-forwarded unless their pattern starts with '+'
case "$1" in
refs/tags/*)
git rev-parse --verify -q "$1" &&
deny >/dev/null "You can't overwrite an existing tag"
;;
refs/heads/*)
# No rebasing or rewinding
if expr "$2" : '0*$' >/dev/null; then
info "The branch '$1' is new..."
else
# updating -- make sure it is a fast-forward
mb=$(git-merge-base "$2" "$3")
case "$mb,$2" in
"$2,$mb") info "Update is fast-forward" ;;
*) noff=y; info "This is not a fast-forward update.";;
esac
fi
;;
*)
deny >/dev/null \
"Branch is not under refs/heads or refs/tags. What are you trying to do?"
;;
esac
# Implement per-branch controls based on username
allowed_users_file=$GIT_DIR/info/allowed-users
username=$(id -u -n)
info "The user is: '$username'"
if test -f "$allowed_users_file"
then
rc=$(cat $allowed_users_file | grep -v '^#' | grep -v '^$' |
while read heads user_patterns
do
# does this rule apply to us?
head_pattern=${heads#+}
matchlen=$(expr "$1" : "${head_pattern#+}")
test "$matchlen" = ${#1} || continue
# if non-ff, $heads must be with the '+' prefix
test -n "$noff" &&
test "$head_pattern" = "$heads" && continue
info "Found matching head pattern: '$head_pattern'"
for user_pattern in $user_patterns; do
info "Checking user: '$username' against pattern: '$user_pattern'"
matchlen=$(expr "$username" : "$user_pattern")
if test "$matchlen" = "${#username}"
then
grant "Allowing user: '$username' with pattern: '$user_pattern'"
fi
done
deny "The user is not in the access list for this branch"
done
)
case "$rc" in
grant) grant >/dev/null "Granting access based on $allowed_users_file" ;;
deny) deny >/dev/null "Denying access based on $allowed_users_file" ;;
*) ;;
esac
fi
allowed_groups_file=$GIT_DIR/info/allowed-groups
groups=$(id -G -n)
info "The user belongs to the following groups:"
info "'$groups'"
if test -f "$allowed_groups_file"
then
rc=$(cat $allowed_groups_file | grep -v '^#' | grep -v '^$' |
while read heads group_patterns
do
# does this rule apply to us?
head_pattern=${heads#+}
matchlen=$(expr "$1" : "${head_pattern#+}")
test "$matchlen" = ${#1} || continue
# if non-ff, $heads must be with the '+' prefix
test -n "$noff" &&
test "$head_pattern" = "$heads" && continue
info "Found matching head pattern: '$head_pattern'"
for group_pattern in $group_patterns; do
for groupname in $groups; do
info "Checking group: '$groupname' against pattern: '$group_pattern'"
matchlen=$(expr "$groupname" : "$group_pattern")
if test "$matchlen" = "${#groupname}"
then
grant "Allowing group: '$groupname' with pattern: '$group_pattern'"
fi
done
done
deny "None of the user's groups are in the access list for this branch"
done
)
case "$rc" in
grant) grant >/dev/null "Granting access based on $allowed_groups_file" ;;
deny) deny >/dev/null "Denying access based on $allowed_groups_file" ;;
*) ;;
esac
fi
deny >/dev/null "There are no more rules to check. Denying access"
This uses two files, $GIT_DIR/info/allowed-users and allowed-groups, to describe which heads can be pushed into by whom. The format of each file would look like this:
refs/heads/master junio
+refs/heads/pu junio
refs/heads/cogito$ pasky
refs/heads/bw/.* linus
refs/heads/tmp/.* .*
refs/tags/v[0-9].* junio
With this, Linus can push or create "bw/penguin" or "bw/zebra" or "bw/panda" branches, Pasky can do only "cogito", and JC can do master and pu branches and make versioned tags. And anybody can do tmp/blah branches. The + sign at the pu record means that JC can make non-fast-forward pushes on it.


Test purpose
- Test manipulation of a set of stack entitys via their group
- Test Group.getAllArtefactsAt functionality
- Create and use a scrawl Color object to generate randomized color strings in a restricted range of colors
- Move artefacts from one group object to another
- Start, stop and restart the core animation loop
- Dynamically add/remove event listeners to/from the stack
Touch test: should work as expected
Annotated code


Coca-Cola's 'Star Wars'-themed bottles come with light-up lightsabers on the label
by Michael BartiromoThe latest coveted “Star Wars” collectible isn’t found in toy stores, but rather in the refrigerated aisles of 7-Eleven locations around Singapore.
In honor of “The Rise of Skywalker,” Coca-Cola Singapore is currently offering customers the chance to own limited-edition Coca-Cola bottles featuring images of lightsabers that literally light up at the touch of a button. With only 8,000 currently available, however, fans are being tasked with going on a “galactic hunt” to track them down to 7-Eleven locations across the country.
LOOK: THIEVES STEAL FAYGO AFTER FAILING TO TAKE CASH
“Keep your eyes on these Limited Edition Lighted ‘Star Wars: The Rise of Skywalker’ Coca-Cola No Sugar Bottles! In anticipation of the upcoming movie, we will be releasing 5 clues to 5 locations per day on our FB, IG, and website on where to get your hands on one over the next 3 weekends,” the brand explained on social media last week.
“Let the #GalacticHunt begin!”
One of the “hunts” has already taken place this past weekend; future “hunts” are scheduled for Dec. 13–15, and Dec. 20–22. Those who successfully solve the riddles put forth by Coca-Cola Singapore will find a “Gatekeeper” who will be “secretly positioned” near a 7-Eleven, according to the brand. Winners will then be awarded one pass each, to be redeemed for a light-up bottle at the convenience store.
CLICK HERE TO SIGN UP FOR OUR LIFESTYLE NEWSLETTER
The bottles — which come in two designs, featuring either Rey holding a blue lightsaber or Kylo Ren holding a red one — were achieved by placing organic light-emitting diodes (OLEDs) within each label, according to Mothership. Designed by a German tech firm called Inuru, those labels are printed with circuits that require pressure to complete, allowing each lightsaber to illuminate only after the bottles are pressed in the correct spot.
CLICK HERE TO GET THE FOX NEWS APP
According to Coca-Cola Singapore, each bottle is also equipped to illuminate about 500 times, for around five seconds each — not that anyone who ends up owning one would ever do such a thing. As Fox News has documented in the past, the only way these collectibles will appreciate is if they're stored safely on shelves alongside your Boba Fett action figures.


Your story starts with us.
This mentorship Interaction system helps you to interact with your peers and mentors/students more effectively.
Awarded Agency
Divide details about your product or agency work into parts. A paragraph describing a feature will be enough.
Free Revisions
Keep you user engaged by providing meaningful information. Remember that by this time, the user is curious.
Verified Company
Write a few lines about each one. A paragraph describing a feature will be enough. Keep you user engaged!
Working with us is a pleasure
Mentorship programs around the world were affected due to covid-19. This shift, in the working conditions, demands a new solution. Our project aims to provide a solution to this problem, and make mentorship programs accessible to everyone. Mentorship programs will help students learn online easier and will make them grow and they can analyze their performance and growth easily.
Top Notch Services
Make learning as easy and as fun as it can be.
Here are our heroes
Omkar Agrawal
full stack Developer
Neha Sharma
UI/UX Designer
Anchal Tiwari
Frontend developer


Arsene Wenger: Barcelona have lost their charisma
The ex Arsenal boss was not impressed with the Catalans against Slavia
by Sport ENFormer Arsenal coach Arsene Wenger blasted Barcelona while working as a pundit. He thought their performance against Slavia Prague was bad and the attitude of the players was not right either.
"(Despite being) leaders of La Liga and their Champions League group... they are playing like a team in crisis, because the play is too slow, without dynamism, and very individualistic in the final meters. When they lose the ball they could concede a goal on the counter because they aren't closing down the space for the opponent."
Wenger added: "Barcelona are an interesting case because they have a history of brilliant collective team play and then they also had Leo Messi who made the difference. Today it seems they play expecting something from Messi. Before the music was beautiful, of a fantastic team waiting for Messi to appear. Today they have lost their charisma and you have to ask how much the last two Champions League failures have affected them. From outside it seems they've lost their charisma."


Spaghettiand tomatoes is a favourite meal that can be prepared in the shortest time possible ranging fron five to ten minutes. The recipe to make this meal does not contain many ingredients.
This is meal is most prefered by young kids.Tomatoes are used to make the meal taste great as well as give a colour to the meal.Tomatoes are rich in vitamin c, while spaghetti are rich in cabohydates.
Pumpkin
Pumpkin is one of the most preferable food for young kind who have not yet build strong teeth to chew. They appear in different varieties and can not be grow in all habitat.


Name must be at least 2 words
An optional field. This field is only validated when it has a value.Minimum 5 chars for this example.
This field uses HTML5 "pattern" attribute to be validated."\d+" - only digits are allowed
Number must be between 10 and 100
Should be of length 6 OR 8 characters
Notice that for a phone number user can input a '+' sign, a dash '-' or a space ' '
Choose something or choose not. what shall it be?
This is a multifield, which let the user input a serial number or credit card number for example, and the trick is to validate the combined result, which is stored in a hidden field
There is a hidden "Required" form field below, notice it will not be validated due to its lack of visibility. The reason for this is that sometimes there is a section in a form that is not visible until some action is taken, but you do not want to change all those fields' "required" attributes on-the-fly, so that is why.


This document builds on scopes
There are only about a million for the Java servlet container. There more recent and sophisticated ones try to do Dependency Injection for 'actions' or 'controllers'. If you want to use PicoContainer for a web framework, then you're likely to end up with three container levels. The root container would be common to all and known as the application-level container. One level further would be a session-level one, with the app one marked as its parent. One level further would be a request level one, with the session on marked as its parent. There are two not so subtle varations on how they would be used. One, we poineered with PicoContainer 1.x in 2003, the other inroduced with PicoContainer 2.x in 2007.
You make one instance of the app container. For each new HTTP Session you make a new session level container, and put it into the session itself - refer HttpSession.setAttribute(key,val). For each request, you make a new Request level container and discard it at the end of the request. For as long as it lives, the request level container's parent would be the session container.
There are two downsides of this approach. 1) you have to repeatedly add components to the session and request containers as they are instantiated. 2) the serialization of the session (by Tomcat etc) might cause more things to be serialized than you intend - i.e. the session container refers to the application container.
You make one instance of the app, session and request container on servlet load. For the Application one, you choose Caching as the behavior factory. For the session and request level ones, you choose Storing instead. You wrap the Storing behavior factory instances in HttpSessionStoring and reprogram each http request like so:
public class MyTinyPicoServlet extends HttpServlet { private DefaultPicoContainer requestContainer; private HttpSessionStoring sessionStoring; private HttpSessionStoring requestStoring; public void init(ServletConfig cfg) throws ServletException { PicoContainer appContainer = new DefaultPicoContainer(new Caching()); Storing sessionStoreBehavior = new Storing(); PicoContainer sessionContainer = new DefaultPicoContainer(sessionStoreBehavior, appContainer); sessionStoring = new HttpSessionStoring(sessionStoreBehavior, "sessionStore"); Storing requestStoreBehavior = new Storing(); requestContainer = new DefaultPicoContainer(requestStoreBehavior, sessionContainer); requestStoring = new HttpSessionStoring(requestStoreBehavior, "requestStore"); // populate app, session and request scoped containers. // appContainer.addComponent(HibernateManager.class, MyHibernateManager.class); // all users/people share one HibernateManager // sessionContainer.addComponent(ShoppingCart.class, FifoCart.class); // a new cart per person // requestContainer.addComponent("/addToCart.do", AddToCart.class); // requestContainer.addComponent("/removeFromCart.do", RemoveFromCart.class); // etc } protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { sessionStoring.retrieveSessionStoreOrCreateNewOne(req.getSession()); requestStoring.resetStore(); Action action = (Action) requestContainer.getComponent(req.getPathTranslated()); action.execute(req, resp); // yeah yeah, this is pretty basic sessionStoring.invalidateStore(); requestStoring.invalidateStore(); // trying to retrieve components from at session or request scopes from here on will result in an UnsupportedOperationException } }
HttpSessionStoring is not in the core jar, its in the 'gems' one.
Waffle - hopefully the pinnacle of Java action/controller web-frameworks.


--- title: Overview | BATHNES Digital Toolkit fabricator: true ---
This UI toolkit is a highly-modular design system for rapid web page development. It contains different materials that can be assembled into more complex page layouts.
This guide contains real working examples, code snippets, documentation, and style guidelines.
Start by adding the following files to your page:
<link rel="stylesheet" href="assets/patterns/styles/screen.css">
<script src="assets/patterns/scripts/app.js"></script>


IN THE COURT OF SH. SANDEEP GARG, PLEA BARGAINING MAGISTRATE, NEW DELHI CC No. 2243/1 U/s 41/42/43/44 Water (Prevention & Control of Pollution) Act, 1974 Delhi Pollution Control Committee Vs. M/s. Paradise Foam Industries & Anr. JUDGMENT:
a The date of commission : 19.04.2000 b The name of complainant : Delhi Pollution Control Committee c The name of accused : 1). M/s. Paradise Foam Industries at : K. No. 214, Nangli, Sakarawati, New : Delhi110 043.
: 2). P.K. Jain, M/s. Paradise Foam : Industries at K. No. 214, Nangli, : Sakarawati, New Delhi110 043.
d The offence complained of : U/s 41/42/43/44 Water (Prevention & : Control of Pollution) Act, 1974 BRIEF REASONS FOR THE DECISION:
1. The accused P.K. Jain, partner of M/s. Paradise Foam Industries has been summoned to face trial for offence U/s 41/42/43/44 Water (Prevention & Control of Pollution) Act, 1974 with the allegations that on 19.04.2000, he was found operating an industrial unit under the name & style of M/s. Paradise Foam Industries and was discharging 700-800 litres regenerated effluent from softening plant, without treating it, into a drain. He had not completed installation of ETP and discharged untreated effluents without any consent required under the Water Act and thereby committed offences punishable u/s 41/42/43/44 Water (Prevention & Control of Pollution) Act, 1974.
CC No. 2243/1 Delhi Pollution Control Commitee Vs. M/s. Paradise Foam Industries & Anr. 1 of 3
2. The complaint was filed in the court on 31.05.2000. During the pendency of trial, the accused P.K. Jain, partner of M/s. Paradise Foam Industries filed an application for plea bargaining. Notice was issued to the complainant DPCC and the matter was settled between the complainant DPCC and the accused on 07.06.2011. In terms of the settlement, accused P.K. Jain paid Rs. 55,000/- as compensation to the complainant DPCC.
3. In view of the admission of guilt, accused P.K. Jain, partner of M/s. Paradise Foam Industries is convicted for offence U/s 41/42/43/44 Water (Prevention & Control of Pollution) Act, 1974.
Announced in the open (Sandeep Garg) Court on 09.06.2011 Plea Bargaining Magistrate New Delhi. CC No. 2243/1 Delhi Pollution Control Commitee Vs. M/s. Paradise Foam Industries & Anr. 2 of 3 ORDER ON POINT OF SENTENCE
I have heard Ld. Counsel for complainant, Ms. Jitender Gaba and the Ld. Counsel for convict P.K. Jain, partner of M/s. Paradise Foam Industries on point of sentence. Learned Counsel for convict submits that he is the sole bread earner in his family and has to look after his children. Moreover, the industrial unit was shut down about ten years ago.
Heard. Considering the fact that the matter has been settled between the complainant, convict and the industrial unit was shut down long ago, he is sentenced to fine of Rs. 35,000/. IDSI for thirty days. Fine deposited. File be sent back to the court of Ld. ACMMI for consignment to record room.
Announced in the open (Sandeep Garg) Court on 09.06.2011 Plea Bargaining Magistrate New Delhi. CC No. 2243/1 Delhi Pollution Control Commitee Vs. M/s. Paradise Foam Industries & Anr. 3 of 3