|
Apache Ignite.NET
|
Event Subscription functionality together with various events emitted by Ignite. More...
Classes | |
| class | CacheEvent |
| In-memory database (cache) event. More... | |
| class | CacheQueryExecutedEvent |
| Cache query execution event. More... | |
| class | CacheQueryReadEvent |
| Cache query read event. More... | |
| class | CacheRebalancingEvent |
| In-memory database (cache) rebalancing event. Rebalance event happens every time there is a change More... | |
| class | CheckpointEvent |
| Grid checkpoint event. More... | |
| class | DiscoveryEvent |
| Grid discovery event. More... | |
| class | EventBase |
| Base event implementation. More... | |
| class | EventReader |
| Event reader. | |
| class | EventType |
| Contains event type constants. The decision to use class and not enumeration is dictated by allowing users to create their own events and/or event types which would be impossible with enumerations. More... | |
| interface | IEvent |
| Represents a Ignite event. More... | |
| interface | IEventFilter |
| Represents an event filter. More... | |
| interface | IEventListener |
| Represents an event listener. More... | |
| interface | IEvents |
| Provides functionality for event notifications on nodes defined by ClusterGroup. All members are thread-safe and may be used concurrently from multiple threads. More... | |
| interface | IEventStorageSpi |
| Manages local event storage. More... | |
| class | JobEvent |
| Ignite job event. More... | |
| class | MemoryEventStorageSpi |
| In-memory event storage. More... | |
| class | NoopEventStorageSpi |
| No-op event storage interface, does not store anything. More... | |
| class | TaskEvent |
| Ignite task event. More... | |


The Loaders API describes how to use cookies in conjunction with data objects, including creating new cookie interfaces, creating new cookie support implementations, and reusing existing supports. The Nodes API also permits use of cookies to add behavior to nodes.


Connect with coaches directly, you can ping coaches to view profile.
02
COLLABORATION
Work with other student athletes to increase visability. When you
share and like other players videos it will increase your visability as a player. This is the team work
aspect to Surface 1.
03
GROWTH
Resources and tools for you to get better as a student Athelte. Access
to training classes, tutor sessions, etc
01
CONNECTION
Connect with coaches directly, you can ping coaches to view profile.
02
COLLABORATION
Work with other student athletes to increase visability. When you
share and like other players videos it will increase your visability as a player. This is the team work
aspect to Surface 1.
03
GROWTH
Resources and tools for you to get better as a student Athelte. Access
to training classes, tutor sessions, etc
PLAYERS
01
CONNECTION
Connect with talented athlete directly, you can watch their skills
through video showreels directly from Surface 1.
02
COLLABORATION
Work with recruiter to increase your chances of findingtalented athlete.
03
GROWTH
Save your time, recruit proper athlets for your team.
01
CONNECTION
Connect with talented athlete directly, you can watch their skills
through video showreels directly from Surface 1.
02
COLLABORATION
Work with recruiter to increase your chances of findingtalented athlete.
03
GROWTH
Save your time, recruit proper athlets for your team.
01
BE ACTIVE
Post videos with your skills, Like and follow others to be more popular.
02
FIND CONTACT
Contact others to find right coach or athlete you are looking for.
03
WORK IT
Enjoy being a student athlete, the recruiting process can be overwhelming, we want to make this a enjoyable
experience.


--- layout: page title: Never Miss Your Favorite Player's At Bats ios_url: "https://itunes.apple.com/us/app/on-deck-baseball-alerts/id911024857?ls=1&mt=8" ---
Just enable notifications and choose your favorite player. There is no step 3.
With minimal Vin Scully exposure. You only have time for a few at bats today. Watch the best ones live.
than 100 at bats left, ever! Watch them live on TV or your favorite streaming service.


Agile and Friends
Radan Skorić
Waterfall method
- BRUF
-
Distinct phases:
- Requirements
- Design
- Implementation
- Verification
- Maintenance
Change!
Unexpected Change!
Unexpected Late Change!
2001, Snowbird, Utah
17 Software development experts
The birth of the Agile Manifesto
We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:
Individuals and interactions
over
processes and tools
Working software
over
comprehensive documentation
Customer collaboration
over
contract negotiation
Responding to change
over
following a plan
That is, while there is value in the items on
the right, we value the items on the left more.
Scrum
Sprint - timeboxed effort
Sprint planning
- Select Product Backlog items
- Breakdown to create the Sprint Backlog
Sprint Review
Sprint Retrospective
Scrum & Agile values
- Everyone creates the sprint together
- Working software at the end of each sprint
- Customers are involved in between sprints
- The product backlog can change for the next sprint
Values to principles
Welcome change
=> Discover the need for it early
=> Remove ambiguity
=> Show working software often
Other agile methodologies
- Kanban
- Scrumban
- Extreme programming
Importance of culture
- All together
- Shared success
- Chicken vs Pig
- Valuable work


--- layout: main title: Digital Multimedia Design program_heading: The Program future_heading: Three colleges, one program. ---
To find out more regarding advising, admissions, credit transfers, and financial aid, go to the World Campus DMD Information Request Form .
For any other questions, contact us at<EMAIL_ADDRESS>Most programs take place within one college. The Digital Multimedia Design program expands access to a wider range of courses – those typically out of reach for students enrolled in one academic program. Our students take advanced level courses accross the College of Arts and Architecture, College of Communications, and College of IST making it the first interdisciplinary fully-online undergraduate program at Penn State University.


After the glowing success (or whatever) of The Zoo and The Pirates of Penzance, I returned to the Savoy Club in Glasgow.
This year's show was Princess Ida, one of Gilbert and Sullivan's lesser-known works. It is full of glorious music, but that may be its downfall. It is rather too full of glorious music - to the extent that it is in three Acts. Or to be more exact, it is described as being in "a Prologue and two Acts". Whatever it's called, that means two trips to the bar and a rather long show.
The show was good fun to do, once again Kathryn Lloyd-Evans sang beautifully. I also discovered that a costume of tights and a tunic could be very uncomfortable, especially when the tunic barely went down past the backside and tights barely came up to the knees!
I don't have any production photos of this show, but I do have some rehearsal pictures that I will try to provide as soon as I can.


Sgvizler
Test page for Sgvizler. Tests chart types. Due to the amount of
data gathered in total for these charts, some might not show up
but give an error at first. Try then to reload page.
All queries are sent
to http://sws.ifi.uio.no/sparql/npd
1: gPieChart
2: gBarChart
3: gAreaChart
3a: gSteppedAreaChart
4: gColumnChart
5: gLineChart
9: gScatterChart
12: gGeoMap
12a: gGeoChart
12b: gBubbleChart
13: gMotionChart
15: gTreeMap
16: gOrgChart
17: gTimeline
18: sMap
19: gTable
20: sList
21: sDefList
22: sText


黒の手番です。62 はどう動かしますか？


In Memory Of John Conway (Dec 1937 - Apr 2020). May he rest in peace
To restart the simulation click in the grid
The Game of Life, also known simply as Life, is a cellular automaton devised by the British mathematician John Horton Conway in 1970. The game is a zero-player game, meaning that its evolution is determined by its initial state, requiring no further input. One interacts with the Game of Life by creating an initial configuration and observing how it evolves. It is Turing complete and can simulate a universal constructor or any other Turing machine.


|
Bullet Collision Detection & Physics Library
|
The btConeShape implements a cone shape primitive, centered around the origin and aligned with the Y axis. The btConeShapeX is aligned around the X axis and btConeShapeZ around the Z axis. More...
#include <btConeShape.h>
Public Member Functions | |
| BT_DECLARE_ALIGNED_ALLOCATOR () | |
| btConeShape (btScalar radius, btScalar height) | |
| virtual btVector3 | localGetSupportingVertex (const btVector3 &vec) const |
| virtual btVector3 | localGetSupportingVertexWithoutMargin (const btVector3 &vec) const |
| virtual void | batchedUnitVectorGetSupportingVertexWithoutMargin (const btVector3 *vectors, btVector3 *supportVerticesOut, int numVectors) const |
| btScalar | getRadius () const |
| btScalar | getHeight () const |
| void | setRadius (const btScalar radius) |
| void | setHeight (const btScalar height) |
| virtual void | calculateLocalInertia (btScalar mass, btVector3 &inertia) const |
| virtual const char * | getName () const |
| void | setConeUpIndex (int upIndex) |
| choose upAxis index More... | |
| int | getConeUpIndex () const |
| virtual btVector3 | getAnisotropicRollingFrictionDirection () const |
| the getAnisotropicRollingFrictionDirection can be used in combination with setAnisotropicFriction See Bullet/Demos/RollingFrictionDemo for an example More... | |
| virtual void | setLocalScaling (const btVector3 &scaling) |
| virtual int | calculateSerializeBufferSize () const |
| virtual const char * | serialize (void *dataBuffer, btSerializer *serializer) const |
| fills the dataBuffer and returns the struct name (and 0 on failure) More... | |
| Public Member Functions inherited from btConvexInternalShape | |
| BT_DECLARE_ALIGNED_ALLOCATOR () | |
| virtual | ~btConvexInternalShape () |
| const btVector3 & | getImplicitShapeDimensions () const |
| void | setImplicitShapeDimensions (const btVector3 &dimensions) |
| warning: use setImplicitShapeDimensions with care changing a collision shape while the body is in the world is not recommended, it is best to remove the body from the world, then make the change, and re-add it alternatively flush the contact points, see documentation for 'cleanProxyFromPairs' More... | |
| void | setSafeMargin (btScalar minDimension, btScalar defaultMarginMultiplier=0.1f) |
| void | setSafeMargin (const btVector3 &halfExtents, btScalar defaultMarginMultiplier=0.1f) |
| void | getAabb (const btTransform &t, btVector3 &aabbMin, btVector3 &aabbMax) const |
| getAabb's default implementation is brute force, expected derived classes to implement a fast dedicated version More... | |
| virtual void | getAabbSlow (const btTransform &t, btVector3 &aabbMin, btVector3 &aabbMax) const |
| virtual const btVector3 & | getLocalScaling () const |
| const btVector3 & | getLocalScalingNV () const |
| virtual void | setMargin (btScalar margin) |
| virtual btScalar | getMargin () const |
| btScalar | getMarginNV () const |
| virtual int | getNumPreferredPenetrationDirections () const |
| virtual void | getPreferredPenetrationDirection (int index, btVector3 &penetrationVector) const |
| Public Member Functions inherited from btConvexShape | |
| BT_DECLARE_ALIGNED_ALLOCATOR () | |
| btConvexShape () | |
| not supported on IBM SDK, until we fix the alignment of btVector3 More... | |
| virtual | ~btConvexShape () |
| btVector3 | localGetSupportVertexWithoutMarginNonVirtual (const btVector3 &vec) const |
| btVector3 | localGetSupportVertexNonVirtual (const btVector3 &vec) const |
| btScalar | getMarginNonVirtual () const |
| void | getAabbNonVirtual (const btTransform &t, btVector3 &aabbMin, btVector3 &aabbMax) const |
| virtual void | project (const btTransform &trans, const btVector3 &dir, btScalar &minProj, btScalar &maxProj, btVector3 &witnesPtMin, btVector3 &witnesPtMax) const |
| Public Member Functions inherited from btCollisionShape | |
| BT_DECLARE_ALIGNED_ALLOCATOR () | |
| btCollisionShape () | |
| virtual | ~btCollisionShape () |
| virtual void | getBoundingSphere (btVector3 ¢er, btScalar &radius) const |
| virtual btScalar | getAngularMotionDisc () const |
| getAngularMotionDisc returns the maximum radius needed for Conservative Advancement to handle time-of-impact with rotations. More... | |
| virtual btScalar | getContactBreakingThreshold (btScalar defaultContactThresholdFactor) const |
| void | calculateTemporalAabb (const btTransform &curTrans, const btVector3 &linvel, const btVector3 &angvel, btScalar timeStep, btVector3 &temporalAabbMin, btVector3 &temporalAabbMax) const |
| calculateTemporalAabb calculates the enclosing aabb for the moving object over interval [0..timeStep) result is conservative More... | |
| bool | isPolyhedral () const |
| bool | isConvex2d () const |
| bool | isConvex () const |
| bool | isNonMoving () const |
| bool | isConcave () const |
| bool | isCompound () const |
| bool | isSoftBody () const |
| bool | isInfinite () const |
| isInfinite is used to catch simulation error (aabb check) More... | |
| int | getShapeType () const |
| void | setUserPointer (void *userPtr) |
| optional user data pointer More... | |
| void * | getUserPointer () const |
| void | setUserIndex (int index) |
| int | getUserIndex () const |
| virtual void | serializeSingleShape (btSerializer *serializer) const |
Private Member Functions | |
| btVector3 | coneLocalSupport (const btVector3 &v) const |
Private Attributes | |
| btScalar | m_sinAngle |
| btScalar | m_radius |
| btScalar | m_height |
| int | m_coneIndices [3] |
Additional Inherited Members | |
| Protected Member Functions inherited from btConvexInternalShape | |
| btConvexInternalShape () | |
| Protected Attributes inherited from btConvexInternalShape | |
| btVector3 | m_localScaling |
| btVector3 | m_implicitShapeDimensions |
| btScalar | m_collisionMargin |
| btScalar | m_padding |
| Protected Attributes inherited from btCollisionShape | |
| int | m_shapeType |
| void * | m_userPointer |
| int | m_userIndex |
The btConeShape implements a cone shape primitive, centered around the origin and aligned with the Y axis. The btConeShapeX is aligned around the X axis and btConeShapeZ around the Z axis.
Definition at line 23 of file btConeShape.h.
Definition at line 18 of file btConeShape.cpp.
|
virtual |
Implements btConvexShape.
Definition at line 108 of file btConeShape.cpp.
| btConeShape::BT_DECLARE_ALIGNED_ALLOCATOR | ( | ) |
|
inlinevirtual |
Implements btCollisionShape.
Definition at line 54 of file btConeShape.h.
|
inlinevirtual |
Reimplemented from btConvexInternalShape.
Definition at line 152 of file btConeShape.h.
Definition at line 67 of file btConeShape.cpp.
|
inlinevirtual |
the getAnisotropicRollingFrictionDirection can be used in combination with setAnisotropicFriction See Bullet/Demos/RollingFrictionDemo for an example
Reimplemented from btCollisionShape.
Reimplemented in btConeShapeZ, and btConeShapeX.
Definition at line 93 of file btConeShape.h.
|
inline |
Definition at line 88 of file btConeShape.h.
|
inline |
Definition at line 43 of file btConeShape.h.
|
inlinevirtual |
Implements btCollisionShape.
Reimplemented in btConeShapeZ, and btConeShapeX.
Definition at line 80 of file btConeShape.h.
|
inline |
Definition at line 42 of file btConeShape.h.
Reimplemented from btConvexInternalShape.
Definition at line 117 of file btConeShape.cpp.
Implements btConvexShape.
Definition at line 103 of file btConeShape.cpp.
|
inlinevirtual |
fills the dataBuffer and returns the struct name (and 0 on failure)
Reimplemented from btConvexInternalShape.
Definition at line 158 of file btConeShape.h.
| void btConeShape::setConeUpIndex | ( | int | upIndex | ) |
choose upAxis index
Definition at line 39 of file btConeShape.cpp.
|
inline |
Definition at line 49 of file btConeShape.h.
|
virtual |
Reimplemented from btConvexInternalShape.
Definition at line 133 of file btConeShape.cpp.
|
inline |
Definition at line 45 of file btConeShape.h.
|
private |
Definition at line 30 of file btConeShape.h.
|
private |
Definition at line 29 of file btConeShape.h.
|
private |
Definition at line 28 of file btConeShape.h.
|
private |
Definition at line 27 of file btConeShape.h.


By Ginny<EMAIL_ADDRESS>How to Make a Slip Knot
How to Cast On
How to Knit
How to Bind Off
Abbreviations
Yarn Weights


Volunteer Registration
Sign Up!!!
Start
Continue With Google+
Full Name
Email address
Postal Address
Country
Identification ID


--- title: Hadoop/HBase Capacity Planning layout: post ---
This blog is to provide guidance in sizing your first Hadoop/HBase cluster.
Totally need to check this out if you're using Hadoop or HBase.


A C D E F G I L M N O P R S T V W
All Classes All Packages
All Classes All Packages
All Classes All Packages
A
- AbstractAnalysisResult - Class in net.ssehub.comani.analysis
-
This abstract class represents a generic result of an analysis of a single commit.
- AbstractAnalysisResult() - Constructor for class net.ssehub.comani.analysis.AbstractAnalysisResult
-
Constructs a new instance of this class.
- AbstractCommitAnalyzer - Class in net.ssehub.comani.analysis
-
This abstract class defines the methods to be implemented by and the common elements, like the global
Logger
, for each specific commit analyzer. - AbstractCommitAnalyzer(Properties, IAnalysisQueue) - Constructor for class net.ssehub.comani.analysis.AbstractCommitAnalyzer
-
Constructs a new instance of this analyzer.
- AbstractCommitExtractor - Class in net.ssehub.comani.extraction
-
This abstract class defines the methods to be implemented by and the common elements, like the global
Logger
, for each specific commit extractor. - AbstractCommitExtractor(Properties, IExtractionQueue) - Constructor for class net.ssehub.comani.extraction.AbstractCommitExtractor
-
Constructs a new instance of this extractor.
- AbstractManager - Class in net.ssehub.comani.core
-
This abstract class defines common methods and elements of the specific commit extraction and analysis managers.
- AbstractManager(String, String, Properties, CommitQueue) - Constructor for class net.ssehub.comani.core.AbstractManager
-
Constructs an abstract manager.
- addArtifactName(String) - Method in class net.ssehub.comani.data.ChangedArtifact
-
Adds the given string as the name of this changed artifact.
- addArtifactPath(String) - Method in class net.ssehub.comani.data.ChangedArtifact
-
Adds the given string as the relative path to this changed artifact in the repository.
- addChangedArtifact(ChangedArtifact) - Method in class net.ssehub.comani.data.Commit
-
Adds the given
ChangedArtifact
to the list of changed artifacts of thisCommit
. - addCommit(Commit) - Method in class net.ssehub.comani.data.CommitQueue
-
Adds the given
Commit
to the end of this queue if its status isCommitQueue.QueueState.OPEN
and the queue is not full. - addCommit(Commit) - Method in interface net.ssehub.comani.data.IExtractionQueue
-
Adds the given
Commit
to the end of this queue if its status isCommitQueue.QueueState.OPEN
and the queue is not full. - addCommitHeader(String[]) - Method in class net.ssehub.comani.data.Commit
-
Adds the given set of strings as the commit header of this
Commit
. - addContentLine(String) - Method in class net.ssehub.comani.data.ChangedArtifact
-
Adds a new string representing a line of content of this changed artifact.
- addDate(String) - Method in class net.ssehub.comani.data.Commit
-
Add the given string as the date of this
Commit
. - addDiffHeaderLine(String) - Method in class net.ssehub.comani.data.ChangedArtifact
-
Adds a new string representing a line in the diff header to this changed artifact's diff header.
- addId(String) - Method in class net.ssehub.comani.data.Commit
-
Adds the given string as the id to this
Commit
. - addRelevantCodeChanges(String) - Method in class net.ssehub.comani.analysis.VerificationRelevantResult
-
Adds the given string as path of code file to this result.
- AnalysisManager - Class in net.ssehub.comani.analysis
-
This class manages the entire commit analysis process.
- AnalysisManager(String, String, Properties, CommitQueue) - Constructor for class net.ssehub.comani.analysis.AnalysisManager
-
Constructs the analysis manager.
- analysisProperties - Variable in class net.ssehub.comani.analysis.AbstractCommitAnalyzer
-
The properties determining the analysis process and the analyzer itself.
- AnalysisSetupException - Exception in net.ssehub.comani.analysis
-
Custom exception indicating and describing problems while setting-up an analysis.
- AnalysisSetupException() - Constructor for exception net.ssehub.comani.analysis.AnalysisSetupException
-
Constructs a new
AnalysisSetupException
. - AnalysisSetupException(String) - Constructor for exception net.ssehub.comani.analysis.AnalysisSetupException
-
Constructs a new
AnalysisSetupException
. - AnalysisSetupException(String, Throwable) - Constructor for exception net.ssehub.comani.analysis.AnalysisSetupException
-
Constructs a new
AnalysisSetupException
. - analyze() - Method in class net.ssehub.comani.analysis.AbstractCommitAnalyzer
-
Starts this commit analyzer and analyzes each commit available from the
AbstractCommitAnalyzer.commitQueue
until that queue is closed. - analyze(Commit) - Method in class net.ssehub.comani.analysis.AbstractCommitAnalyzer
-
Starts this commit analyzer, analyzes the given commit and returns the corresponding analysis result.
C
- ChangedArtifact - Class in net.ssehub.comani.data
-
This class represents a changed artifact as provided by the diff of a commit.
- ChangedArtifact() - Constructor for class net.ssehub.comani.data.ChangedArtifact
-
Constructs a new changed artifact.
- CLOSED - net.ssehub.comani.data.CommitQueue.QueueState
- ComAnI - Class in net.ssehub.comani.core
-
The main class of this tool for preparing and starting the internal processes.
- ComAnI() - Constructor for class net.ssehub.comani.core.ComAnI
- Commit - Class in net.ssehub.comani.data
-
This class represents a commit of a version control system.
- Commit() - Constructor for class net.ssehub.comani.data.Commit
-
Constructs a new and empty commit.
- Commit(String, String, String[], List<ChangedArtifact>) - Constructor for class net.ssehub.comani.data.Commit
-
Constructs a new commit based on the given information.
- commitQueue - Variable in class net.ssehub.comani.analysis.AbstractCommitAnalyzer
-
The commit queue from which extracted commit can be obtained.
- commitQueue - Variable in class net.ssehub.comani.core.AbstractManager
-
The
CommitQueue
for transferring commits from an extractor to an analyzer. - commitQueue - Variable in class net.ssehub.comani.extraction.AbstractCommitExtractor
-
The commit queue to which each extracted commit is send.
- CommitQueue - Class in net.ssehub.comani.data
-
This class realizes a commit queue.
- CommitQueue(int) - Constructor for class net.ssehub.comani.data.CommitQueue
-
Constructs an empty commit queue.
- CommitQueue.QueueState - Enum in net.ssehub.comani.data
-
This enumeration defines the different states of the commit queue.
- CommitSerializer - Class in net.ssehub.comani.data
- CommitSerializer() - Constructor for class net.ssehub.comani.data.CommitSerializer
D
- DEBUG - net.ssehub.comani.core.Logger.LogLevel
- DEBUG - net.ssehub.comani.core.Logger.MessageType
- deserialize(Commit, File) - Static method in class net.ssehub.comani.data.CommitSerializer
-
Adds the information of the given CDMS-file to the given
Commit
.
E
- enableCommitCaching(File) - Method in class net.ssehub.comani.data.CommitQueue
-
Activates the optional saving of commits received via
CommitQueue.addCommit(Commit)
for future analyses. - ERROR - net.ssehub.comani.core.Logger.MessageType
- executeCommand(String[], File) - Method in class net.ssehub.comani.utility.ProcessUtilities
-
Executes the given command as a
Process
in the currentRuntime
. - executionSuccessful() - Method in class net.ssehub.comani.utility.ProcessUtilities.ExecutionResult
- extendCommand(String[], String) - Method in class net.ssehub.comani.utility.ProcessUtilities
-
Returns an extended array by appending the given element at the end of the given array.
- extract(File) - Method in class net.ssehub.comani.extraction.AbstractCommitExtractor
-
Starts this commit extractor for extracting all commits from the given repository.
- extract(File, List<String>) - Method in class net.ssehub.comani.extraction.AbstractCommitExtractor
-
Starts this commit extractor for extracting all commits of the given commit list from the given repository.
- extract(String) - Method in class net.ssehub.comani.extraction.AbstractCommitExtractor
-
Starts this commit extractor to parse the given string to a
Commit
object. - ExtractionManager - Class in net.ssehub.comani.extraction
-
This class manages the entire commit extraction process.
- ExtractionManager(String, String, Properties, CommitQueue, String) - Constructor for class net.ssehub.comani.extraction.ExtractionManager
-
Constructs the extraction manager.
- extractionProperties - Variable in class net.ssehub.comani.extraction.AbstractCommitExtractor
-
The properties determining the extraction process, e.g., the fully-qualified class name of the extractor to use, or the path to the directory, in which extracted commits shall be saved.
- ExtractionSetupException - Exception in net.ssehub.comani.extraction
-
Custom exception indicating and describing problems while setting-up an extractor.
- ExtractionSetupException() - Constructor for exception net.ssehub.comani.extraction.ExtractionSetupException
-
Constructs a new
ExtractionSetupException
. - ExtractionSetupException(String) - Constructor for exception net.ssehub.comani.extraction.ExtractionSetupException
-
Constructs a new
ExtractionSetupException
. - ExtractionSetupException(String, Throwable) - Constructor for exception net.ssehub.comani.extraction.ExtractionSetupException
-
Constructs a new
ExtractionSetupException
.
F
- FileUtilities - Class in net.ssehub.comani.utility
-
This class provides utility methods for creating, deleting, and checking files and directories.
G
- getAnalysisProperties() - Method in class net.ssehub.comani.core.Setup
-
Returns the
Setup.analysisProperties
as defined in the properties file. - getAnalysisResult() - Method in class net.ssehub.comani.analysis.AbstractAnalysisResult
-
Returns textual description of this analysis result as a single string.
- getAnalysisResult() - Method in class net.ssehub.comani.analysis.VerificationRelevantResult
-
Returns textual description of this analysis result as a single string.
- getArtifactName() - Method in class net.ssehub.comani.data.ChangedArtifact
-
Returns the string denoting the name of this changed artifact.
- getArtifactPath() - Method in class net.ssehub.comani.data.ChangedArtifact
-
Returns the string denoting the relative path to this changed artifact in the repository.
- getChangedArtifacts() - Method in class net.ssehub.comani.data.Commit
-
Returns all artifacts changed by this commit.
- getCommand() - Method in class net.ssehub.comani.utility.ProcessUtilities.ExecutionResult
-
Returns the
command
executed byProcessUtilities.executeCommand(String[], File)
, which provided this result. - getCommandString(String[]) - Method in class net.ssehub.comani.utility.ProcessUtilities
-
Returns a single string consisting of the elements of the given array in ascending order of their index separated by a single whitespace.
- getCommit() - Method in class net.ssehub.comani.data.CommitQueue
-
Returns the first
Commit
in the queue if its status isCommitQueue.QueueState.OPEN
. - getCommit() - Method in interface net.ssehub.comani.data.IAnalysisQueue
-
Returns the first
Commit
in the queue if its status isCommitQueue.QueueState.OPEN
. - getCommitHeader() - Method in class net.ssehub.comani.data.Commit
-
Returns the header of this commit.
- getCommitIdentifier() - Method in class net.ssehub.comani.analysis.AbstractAnalysisResult
-
Returns the identifier (e.g., SHA) of the commit to which this analysis result belongs to.
- getCommitString() - Method in class net.ssehub.comani.core.Setup
-
Returns the
Setup.commitString
retrieved in interactive mode. - getContent() - Method in class net.ssehub.comani.data.ChangedArtifact
-
Return the content of this changed artifact.
- getCoreProperties() - Method in class net.ssehub.comani.core.Setup
-
Returns the
Setup.coreProperties
as defined in the properties file. - getDate() - Method in class net.ssehub.comani.data.Commit
-
Returns the date this commit was submitted.
- getDiffHeader() - Method in class net.ssehub.comani.data.ChangedArtifact
-
Returns the diff header of this changed artifact.
- getErrorOutputData() - Method in class net.ssehub.comani.utility.ProcessUtilities.ExecutionResult
-
Returns the
errorOutput
data of the process, which executed thecommand
. - getExecutionException() - Method in class net.ssehub.comani.utility.ProcessUtilities.ExecutionResult
-
Return the
executionException
, which might have been caught during the execution of the process for thecommand
. - getExtractionProperties() - Method in class net.ssehub.comani.core.Setup
-
Returns the
Setup.extractionProperties
as defined in the properties file. - getId() - Method in class net.ssehub.comani.data.Commit
-
Returns the id of this commit.
- getInstance() - Static method in class net.ssehub.comani.core.Logger
-
Return the single instance of the
Logger
. - getInstance() - Static method in class net.ssehub.comani.core.Setup
-
Returns the singleton instance of this class.
Important: the methodSetup.getInstance(String[])
for initializing the instance has to be called at least once before this method is called. - getInstance() - Static method in class net.ssehub.comani.utility.FileUtilities
-
Returns the single instance of the
FileUtilities
. - getInstance() - Static method in class net.ssehub.comani.utility.InfrastructureUtilities
-
Returns the single instance of the
InfrastructureUtilities
. - getInstance() - Static method in class net.ssehub.comani.utility.ProcessUtilities
-
Returns the single instance of the
ProcessUtilities
. - getInstance(String[]) - Static method in class net.ssehub.comani.core.Setup
-
Initializes and returns the singleton instance of this class.
- getProcessExitValue() - Method in class net.ssehub.comani.utility.ProcessUtilities.ExecutionResult
-
Returns the
processExitValue
, which indicates whether the process for executing thecommand
terminated normally or not. - getRelevantBuildChanges() - Method in class net.ssehub.comani.analysis.VerificationRelevantResult
-
Returns whether the commit this analysis result belongs to changes variability information in at least one build artifact.
- getRelevantCodeChanges() - Method in class net.ssehub.comani.analysis.VerificationRelevantResult
-
Returns the list of all code files (their path) for which the commit this analysis result belongs to changes variability information.
- getRelevantVariabilityModelChanges() - Method in class net.ssehub.comani.analysis.VerificationRelevantResult
-
Returns whether the commit this analysis result belongs to changes variability information in at least one variability model artifact.
- getStandardOutputData() - Method in class net.ssehub.comani.utility.ProcessUtilities.ExecutionResult
-
Returns the
standardOutput
data of the process, which executed thecommand
. - getWorkingDirectory() - Method in class net.ssehub.comani.utility.ProcessUtilities.ExecutionResult
-
Returns the
workingDirectory
used byProcessUtilities.executeCommand(String[], File)
to executed thecommand
. - go() - Method in class net.ssehub.comani.analysis.AnalysisManager
-
Starts the extraction or analysis process using the properties given during construction of this object.
- go() - Method in class net.ssehub.comani.core.AbstractManager
-
Starts the extraction or analysis process using the properties given during construction of this object.
- go() - Method in class net.ssehub.comani.extraction.ExtractionManager
-
Starts the extraction or analysis process using the properties given during construction of this object.
I
- IAnalysisQueue - Interface in net.ssehub.comani.data
-
This interface declares the methods a
CommitQueue
has to implement for its use by a commit analysis. - IExtractionQueue - Interface in net.ssehub.comani.data
-
This interface declares the methods a
CommitQueue
has to implement for its use by a commit extractor. - INFO - net.ssehub.comani.core.Logger.MessageType
- InfrastructureUtilities - Class in net.ssehub.comani.utility
-
This class provides utility methods for the main infrastructure, like updating the classpath.
- INIT - net.ssehub.comani.data.CommitQueue.QueueState
- instantiateAnalyzer(String, Properties, IAnalysisQueue) - Method in class net.ssehub.comani.utility.InfrastructureUtilities
-
Instantiates the desired commit analyzer defined by the given analyzer main class name by using the given analysis properties and queue.
- instantiateExtractor(String, Properties, IExtractionQueue) - Method in class net.ssehub.comani.utility.InfrastructureUtilities
-
Instantiates the desired commit extractor defined by the given extractor main class name by using the given extraction properties and queue.
- isOpen() - Method in class net.ssehub.comani.data.CommitQueue
-
Returns whether this queue is open (
true
) or not (false
). - isOpen() - Method in interface net.ssehub.comani.data.IAnalysisQueue
-
Returns whether this queue is open (
true
) or not (false
). - isReady - Variable in class net.ssehub.comani.core.AbstractManager
-
The flag for indicating whether this manager is ready to
AbstractManager.run()
(true
) or not (false
). - isReady() - Method in class net.ssehub.comani.core.AbstractManager
L
- log(String, String, String, Logger.MessageType) - Method in class net.ssehub.comani.core.Logger
-
Prints the given information to the console.
- logException(String, String, Throwable) - Method in class net.ssehub.comani.core.Logger
-
Prints the given
Throwable
and its cause(s) as an error message to the console. - logger - Variable in class net.ssehub.comani.analysis.AbstractCommitAnalyzer
-
The global logger for printing messages.
- logger - Variable in class net.ssehub.comani.core.AbstractManager
-
The logger for displaying messages on the console.
- logger - Variable in class net.ssehub.comani.extraction.AbstractCommitExtractor
-
The global logger for printing messages.
- Logger - Class in net.ssehub.comani.core
-
This class is used to print different types of information to the console.
- Logger.LogLevel - Enum in net.ssehub.comani.core
-
This enumeration defines the different log levels.
- Logger.MessageType - Enum in net.ssehub.comani.core
-
This enumeration defines the different types of messages.
M
- main(String[]) - Static method in class net.ssehub.comani.core.ComAnI
-
Represents the starting point of the internal processes and the overall tool.
N
- net.ssehub.comani.analysis - package net.ssehub.comani.analysis
-
This package contains all classes for realizing, connecting, and executing different commit extraction plug-ins.
- net.ssehub.comani.core - package net.ssehub.comani.core
-
Main package containing the core classes of this tool.
- net.ssehub.comani.data - package net.ssehub.comani.data
-
This package contains all classes of the internal data model, in particular, for representing and managing commits.
- net.ssehub.comani.extraction - package net.ssehub.comani.extraction
-
This package contains all classes for realizing, connecting, and executing different commit extraction plug-ins.
- net.ssehub.comani.utility - package net.ssehub.comani.utility
-
This package contains all utility classes providing methods, which are commonly used by infrastructure and plug-ins classes.
- noErrors() - Method in class net.ssehub.comani.core.AbstractManager
-
Returns whether errors occurred during extraction or analysis (
false
) or not (true
).
O
- OPEN - net.ssehub.comani.data.CommitQueue.QueueState
- operatingSystem - Variable in class net.ssehub.comani.core.AbstractManager
-
The name of the operating system on which the tool is currently executed.
- operatingSystemSupported(String) - Method in class net.ssehub.comani.analysis.AbstractCommitAnalyzer
-
Checks if the given operating system is supported by this commit analyzer.
- operatingSystemSupported(String) - Method in class net.ssehub.comani.extraction.AbstractCommitExtractor
-
Checks if the given operating system is supported by this commit extractor.
- outputDirectory - Variable in class net.ssehub.comani.core.AbstractManager
-
The string defining the output directory in which extracted commits or analysis results will be saved.
P
- plugInClassName - Variable in class net.ssehub.comani.core.AbstractManager
-
The fully-qualified class name of the desired extractor or analyzer (plug-in).
- ProcessUtilities - Class in net.ssehub.comani.utility
-
This class provides utility methods for executing commands as external
Process
and returning correspondingProcessUtilities.ExecutionResult
s. - ProcessUtilities.ExecutionResult - Class in net.ssehub.comani.utility
-
This class provides the results of the execution of a command via
ProcessUtilities.executeCommand(String[], File)
. - properties - Variable in class net.ssehub.comani.core.AbstractManager
-
The properties determining the extraction or analysis process, e.g., the fully-qualified class name of the respective plug-ins to use, or the path to the directory, in which extracted commits and analysis results shall be saved.
- PROPERTY_ANALYSIS_ANALYZER - Static variable in class net.ssehub.comani.analysis.AnalysisManager
-
The string representation of the properties' key identifying the fully-qualified class name of the analyzer to use.
- PROPERTY_ANALYSIS_CLASS - Static variable in class net.ssehub.comani.core.Setup
-
The string representation of the property's key identifying the user-defined analysis main class name.
- PROPERTY_ANALYSIS_OUTPUT - Static variable in class net.ssehub.comani.analysis.AnalysisManager
-
The string representation of the properties' key identifying the path to the directory to which the analysis results shall be saved.
- PROPERTY_ANALYSIS_OUTPUT - Static variable in class net.ssehub.comani.core.Setup
-
The string representation of the property's key identifying the user-defined analysis result directory.
- PROPERTY_CORE_COMMIT_QUEUE_MAX_ELEMENTS - Static variable in class net.ssehub.comani.core.Setup
-
The string representation of the property's key identifying the user-defined maximum number of elements (commits) in the
CommitQueue
. - PROPERTY_CORE_LOG_LEVEL - Static variable in class net.ssehub.comani.core.Setup
-
The string representation of the property's key identifying the user-defined log level.
- PROPERTY_CORE_OS - Static variable in class net.ssehub.comani.core.Setup
-
The string representation of the property's key identifying the operating system this tool is currently running on.
- PROPERTY_CORE_PLUGINS_DIR - Static variable in class net.ssehub.comani.core.Setup
-
The string representation of the property's key identifying the user-defined path to the directory, in which the extractor and analyzer plug-ins are located.
- PROPERTY_CORE_THREADS - Static variable in class net.ssehub.comani.core.Setup
-
The string representation of the property's key identifying the available processors of the machine this tool is currently running on.
- PROPERTY_CORE_VERSION_CONTROL_SYSTEM - Static variable in class net.ssehub.comani.core.Setup
-
The string representation of the property's key identifying the user-defined name of target version control system, e.g., from which the commits will be extracted.
- PROPERTY_EXTRACTION_CACHING - Static variable in class net.ssehub.comani.core.Setup
-
The string representation of the property's key identifying the user-defined directory for caching extracted commits.
- PROPERTY_EXTRACTION_CLASS - Static variable in class net.ssehub.comani.core.Setup
-
The string representation of the property's key identifying the user-defined extractor main class name.
- PROPERTY_EXTRACTION_COMMIT_LIST - Static variable in class net.ssehub.comani.core.Setup
-
The string representation of the property's key identifying the user-defined commit list file.
- PROPERTY_EXTRACTION_INPUT - Static variable in class net.ssehub.comani.core.Setup
-
The string representation of the property's key identifying the user-defined repository directory.
- PROPERTY_EXTRACTION_REUSE - Static variable in class net.ssehub.comani.core.Setup
-
The string representation of the property's key identifying the user-defined directory for reusing cached commits.
R
- readFile(File) - Method in class net.ssehub.comani.utility.FileUtilities
-
Reads the content of the given file and returns a list of strings in which each string contains a single line of the content of the file.
- readStream(InputStream) - Method in class net.ssehub.comani.utility.ProcessUtilities
-
Reads the data from the given
InputStream
and returns it as aString
. - run() - Method in class net.ssehub.comani.core.AbstractManager
S
- serialize(Commit, File) - Static method in class net.ssehub.comani.data.CommitSerializer
-
Saves the given
Commit
as CDMS-file to the given directory. - setCommitIdentifier(String) - Method in class net.ssehub.comani.analysis.AbstractAnalysisResult
-
Sets the identifier (e.g., SHA) of the commit to which this analysis result belongs to.
- setLogLevel(String) - Method in class net.ssehub.comani.core.Logger
-
Sets the new
Logger.LogLevel
for this logger based on the given log level number to increase or reduce the amount of information logged and displayed on the console. - setPluginsDirectory(File) - Method in class net.ssehub.comani.utility.InfrastructureUtilities
-
Adds the given directory as the plug-ins directory in which extractors and analyzers are located.
- setRelevantBuildChanges(boolean) - Method in class net.ssehub.comani.analysis.VerificationRelevantResult
-
Sets whether the commit this result belongs to changes variability information in at least one build artifact.
- setRelevantVariabilityModelChanges(boolean) - Method in class net.ssehub.comani.analysis.VerificationRelevantResult
-
Sets whether the commit this result belongs to changes variability information in at least one variability model artifact.
- setState(CommitQueue.QueueState) - Method in class net.ssehub.comani.data.CommitQueue
-
Sets the state of this queue to the given new
CommitQueue.QueueState
. - setup() - Method in class net.ssehub.comani.analysis.AnalysisManager
-
Performs the necessary setup and configuration of this manager before it is ready to
AbstractManager.run()
. - setup() - Method in class net.ssehub.comani.core.AbstractManager
-
Performs the necessary setup and configuration of this manager before it is ready to
AbstractManager.run()
. - setup() - Method in class net.ssehub.comani.extraction.ExtractionManager
-
Performs the necessary setup and configuration of this manager before it is ready to
AbstractManager.run()
. - Setup - Class in net.ssehub.comani.core
-
This class reads the configuration file and provides the user-defined properties for other components of the tool.
- SetupException - Exception in net.ssehub.comani.core
-
This class represents the specific type of exception thrown if checking and preparing the properties fails at some point, e.g., due to missing information, false arguments, etc.
- SetupException(String) - Constructor for exception net.ssehub.comani.core.SetupException
-
Constructs a new
SetupException
. - SetupException(String, Throwable) - Constructor for exception net.ssehub.comani.core.SetupException
-
Constructs a new
SetupException
. - SILENT - net.ssehub.comani.core.Logger.LogLevel
- STANDARD - net.ssehub.comani.core.Logger.LogLevel
T
- toString() - Method in class net.ssehub.comani.analysis.VerificationRelevantResult
- toString() - Method in class net.ssehub.comani.data.ChangedArtifact
- toString() - Method in class net.ssehub.comani.data.Commit
V
- valueOf(String) - Static method in enum net.ssehub.comani.core.Logger.LogLevel
-
Returns the enum constant of this type with the specified name.
- valueOf(String) - Static method in enum net.ssehub.comani.core.Logger.MessageType
-
Returns the enum constant of this type with the specified name.
- valueOf(String) - Static method in enum net.ssehub.comani.data.CommitQueue.QueueState
-
Returns the enum constant of this type with the specified name.
- values() - Static method in enum net.ssehub.comani.core.Logger.LogLevel
-
Returns an array containing the constants of this enum type, in the order they are declared.
- values() - Static method in enum net.ssehub.comani.core.Logger.MessageType
-
Returns an array containing the constants of this enum type, in the order they are declared.
- values() - Static method in enum net.ssehub.comani.data.CommitQueue.QueueState
-
Returns an array containing the constants of this enum type, in the order they are declared.
- VerificationRelevantResult - Class in net.ssehub.comani.analysis
-
This class represents a specific commit analysis result, which provides information about code, build, and variability model artifacts affected by the changes of the analyzed commit.
- VerificationRelevantResult() - Constructor for class net.ssehub.comani.analysis.VerificationRelevantResult
-
Constructs a new instance of this class.
- versionControlSystem - Variable in class net.ssehub.comani.core.AbstractManager
-
The name of the version control system from which the commits are extracted.
- versionControlSystemSupported(String) - Method in class net.ssehub.comani.analysis.AbstractCommitAnalyzer
-
Checks if the version control system specified in the configuration file of the tool is supported by this commit analyzer.
- versionControlSystemSupported(String) - Method in class net.ssehub.comani.extraction.AbstractCommitExtractor
-
Checks if the version control system specified in the configuration file of the tool is supported by this commit extractor.
W
- WARNING - net.ssehub.comani.core.Logger.MessageType
- writeFile(String, String, String, boolean) - Method in class net.ssehub.comani.utility.FileUtilities
-
Writes the given content to the file specified by the given path and file name.
All Classes All Packages


{% load static %}
We love to dance! And we love to teach dancing
Salsa LA / ON 2 | Bachata | Rueda de Casino | Cha - Cha
{% for ab in about %}{{ ab.about_description }}
{% endfor %}Bachata Takes Over Bucharest
BtoB Dance Festival
If you plan to start learning to dance latino
Here is our program
We LOVE to DANCE and TEACH


Boy Friday
A simple post notification.
Notification Conditions
These are the conditions that will be considered to get notifications.
(
Title
Body
contains exactly
contains any word
contains all words
)
Add Row
Evaluate
Clear Table
Title
Author
Created


Smuggling HTTP headers through reverse proxies
Under some conditions, it is possible to smuggle HTTP headers through a reverse proxy, even if it was explicitly unset before. This is possible in some cases due to HTTP header normalization and parser differentials. Because HTTP headers are commonly used as way to pass authentication data to the backend (for example in mutual TLS scenarios), this can lead to critical vulnerabilities.
In the following post, I will describe some theoretical and practical scenarios and how to abuse them. Some of these methods were used to bypass authentication for critical internal applications.
If you do not want to read the detailed description, there is Recap at the end of this post.
Client certificate authentication over a reverse proxy
During an audit of an internal platform, I took a deeper look at an authentication method we often use internally. This authentication is done via smartcard and offers a simple way for us to authenticate a user by his email address with a X509 client certificate. Because it’s available to a lot of employees, it is a fast and better way to authenticate than old username plus password.
The process is easy to implement on the first thought. Our internal guidelines, as well as a lot of popular resources on the Internet, use something like this:
1) A reverse proxy in front of the backend does the mutual TLS (mTLS) flow and ensures a valid client certificate. 2) Some X509 fields like an email address or a full name are extracted from the certificate. 3) The fields are added as additional headers and the request is forwarded to the backend. 4) The backend authenticates the user (by the passed fields).
You see what can be a big problem here: Only some headers will separate an attacker from an authentication bypass (or some privilege escalation).
To prevent this, it is usually recommended to unset headers passed in the original request.
This is an example configuration:
<VirtualHost *:443>
# activate HTTPS on the reverse proxy
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/mycert.crt
SSLCertificateKeyFile /etc/apache2/ssl/mycert.key
<Location /auth/cert>
# activate the client certificate authentication
SSLCACertificateFile /etc/apache2/ssl/client-accepted-ca-chain.crt
SSLVerifyClient require
SSLVerifyDepth 3
# enrich request with client certificate data
RequestHeader set SSL_CLIENT_S_DN "%{SSL_CLIENT_S_DN}s"
ProxyPass http://localhost:8080/
ProxyPassReverse http://localhost:8080/
</Location>
</VirtualHost>
So in theory, this looks pretty safe. But as you might have already guessed - it’s not (always). Let us first explore how normalization may result in unexpected behaviour.
Normalization, attacker’s best friend
Depending on the combination of reverse proxy, backend software and even framework used, an attacker passed HTTP header will be normalized and may interfere with “filters” which are set in place.
For every following scenario, I will use the following Apache configuration. This will unset/remove the header CLIENT_VERIFIED
and then pass the request to an application running at :1337.
RequestHeader unset CLIENT_VERIFIED
<Location />
ProxyPass http://localhost:1337/
ProxyPassReverse http://localhost:1337/
</Location>
Before diving into this, I was a bit surprised that what I tried even nearly worked. As can be read in a lot of posts and documentation, Apache and Nginx will silently drop all headers with underscores in them. However I found some problems with this: This is not done when requests are passed via ProxyPass on Apache. This seems to be overlooked by a lot of frameworks which falsely document this behavior.
The apache documentation states that this is happening when HTTP headers are passed via environment variables:
A special case are HTTP headers which are passed to CGI scripts and the like via environment variables (see below). They are converted to uppercase and only dashes are replaced with underscores; if the header contains any other (invalid) character, the whole header is silently dropped
Apache and django (deployed with gunicorn)
In the backend I’ve setup a simple django application with the following code, which returns all headers:
def index(request):
headers = [f"{k}:{v}" for k,v in request.META.items()]
return HttpResponse('\n'.join(headers))
So with the configuration above, the following request will of course not pass CLIENT_VERIFIED
to the backend, because Apache will unset it before:
GET / HTTP/1.1
Host: localhost
CLIENT_VERIFIED<EMAIL_ADDRESS>Now let’s take a step back first. How does django/python/gunicorn handle a HTTP request? Python usually does this over WSGI, a specification describing how a web server communicates with a web application. It’s derived from CGI times. As soon as CGI is (or was) involved, things get a bit strange. Because of how headers were passed in the CGI days as environment variables, there was a problem with hyphens (and underscores) in header names. This led to the decision to normalize these header values:
When HTTP headers are placed into the WSGI environ, they are normalized by converting to uppercase, converting all dashes to underscores, and prepending HTTP_.
A header passed as “foo-bar” to a django app is therefore converted/normalized to HTTP_FOO_BAR
. If you add 1 and 1 now, you should see how this will implicate our scenario:
The unset
(or set
to an empty string) in the Apache config is therefore ineffective.
This conflation was already documented in a security advisory by django some years ago. The mentioned fix (“In order to prevent such attacks, both Nginx and Apache 2.4+ strip all headers containing underscores from incoming requests by default.”) does not happen in a reverse proxied environment. However, even if this would be done, we are not using underscores in our request here, because they are converted to underscores anyway.
Important: This also works if apache unsets a hyphen header name (like CLIENT-VERIFIED
). You can then just pass the header with an underscore (like CLIENT_VERIFIED
) and django will happily convert it to HTTP_CLIENT_VERIFIED
.
Apache and flask (deployed with gunicorn)
Flask (which makes use of werkzeug) has its own way of handling headers (and hyphens). The following code was used (in the flask app):
@app.route('/')
def index():
headers = [f"{k}:{v}" for k,v in request.headers]
header_str = '\n'.join(headers)
is_authenticated = request.headers.get('CLIENT_VERIFIED', False)
return f"{header_str}\n\n{is_authenticated}"
This code will print out all headers and echo if there is a CLIENT_VERIFIED
value passed (which - based on the Apache config - should not be possible).
Let’s give it a try:
Request:
GET /login_cst HTTP/1.1
Host: <IP_ADDRESS>
CLIENT_VERIFIED: foobar
Response:
HTTP/1.1 200 OK
Date: Wed, 22 Apr 2020 18:16:07 GMT
Server: gunicorn/20.0.4
Content-Type: text/html; charset=utf-8
Content-Length: 160
Vary: Accept-Encoding
Host:localhost:1337
X-Forwarded-For:<IP_ADDRESS>
X-Forwarded-Host:<IP_ADDRESS>
X-Forwarded-Server:<IP_ADDRESS>
Connection:Keep-Alive
False
As you can see here, Flask (werkzeug) does its own normalization here, capitalizing each word and converting to hyphens.
Now let’s try to abuse this normalization and bypass the “authentication”:
You can see here that is_authenticated
returned a value. This is possible because werkzeug overwrites the __getitem__
method, replacing hyphens with underscores. This way, our smuggled header is now accessible at request.headers.get('CLIENT_VERIFIED')
. Great success!
I have to admit at this point that one of my own applications I wrote was vulnerable to exactly this attack. The main problem here is that (a) I accepted the auth headers in a middleware and therefore not under a specific path, and that (b) header normalization lead to bypassing of the unset
.
Important: This method also works the other way around: If Apache unset’s a header like FOO-BAR
, we can just send FOO_BAR
which will be normalized and is then still accessible in flask with request.headers.get('FOO-BAR')
.
Apache and PHP
PHP does work the same way as django here, normalizing a client-verified
header and making it available under $_SERVER['HTTP_CLIENT_VERIFIED']
. The backend is not able to distinguish if it was also originally sent as CLIENT_VERIFIED
(from a potential reverse proxy) or directly from the client.
GET /phpinfo.php HTTP/1.1
Host: <IP_ADDRESS>
client-verified<EMAIL_ADDRESS>[...]

$_SERVER['HTTP_CLIENT_VERIFIED']	<td<EMAIL_ADDRESS>[...]
Intentionally duplicating headers
There is also some interesting behaviour when the reverse proxy sets a header (for example SSL_Test
) and the clients chooses a header name which will be the same, after normalization: SSL-Test
. After normalization, this header will be SSL_TEST
.
When doing this with Apache and flask/django, the headers are concatenated - with the client header first:
<VirtualHost *:443>
# [...]
<Location />
RequestHeader set SSL_Test<EMAIL_ADDRESS>ProxyPass http://localhost:1337/
ProxyPassReverse http://localhost:1337/
</Location>
</VirtualHost>
The result (in this example from django):
<EMAIL_ADDRESS>As you can see, the client value is prepended. While I have to agree that its not very promising in this situation, this may become handy when adding a value to X-Forwarded-For
, X-Forwarded-Host
, etc. which is set by Apache by default:
Now let’s take the following nginx configuration, where the result looks a bit more promising:
server {
listen 80 default_server;
location /foo {
proxy_set_header SSL_Test<EMAIL_ADDRESS>proxy_pass http://localhost:1337
}
}
The resulting response (flask):
Ssl-Test: some@user.com,foobar
(or for django SSL_TEST: some@user.com,foobar
).
A direct match can not be bypassed with this, but you may have success passing some filters. An example could be using a filter to match for a @corp.com
suffix:
@app.route("/login")
def login_certificate():
email = request.headers.get('SSL_CLIENT_S_DN_Email', False)
if not email.endswith('@corp.com'):
return abort(403)
return "authenticated"
Sending @corp.com
as a header value now will bypass the above method then, because it will be appended and therefore endswith
returns a success:
SSL_CLIENT_S_DN_EMAIL: some<EMAIL_ADDRESS>A real world authentication bypass
There was a slightly different scenario on some internal platforms. The authentication configuration differed in a substantial part (to the one I described in the beginning of this article). It looked like this:
<VirtualHost *:443>
# virtualhost config
# [...]
<Location /auth/cert/smartcard.xhtml>
# do client certification stuff
SSLVerifyClient require
SSLVerifyDepth 3
SSLOptions +StrictRequire +StdEnvVars
# set headers for backend
RequestHeader set SSL_CLIENT_S_DN_Email "%{SSL_CLIENT_S_DN_Email}s"
RequestHeader set SSL_CLIENT_S_DN_CN "%{SSL_CLIENT_S_DN_CN}s"
RequestHeader set SSL_CLIENT_VERIFY "%{SSL_CLIENT_VERIFY}s"
</Location>
ProxyPass http://localhost:8443/
ProxyPassReverse http://localhost:8443/
</VirtualHost>
As you can see, the authentication headers were only set when client authentication was handled (said otherwise: the path matched). The backend application (a Java application running on Tomcat) only accepted this specific headers under the /auth/cert/smartcard.xhtml
path. Example authentication flow:
- User requests
/auth/cert/smartcard.xhtml
- Apache will ensure that the client sends a valid certificate
- Apache will enrich the original request with authentication information extracted from the certificate and forward it.
- Backend receives the enriched requests at
/auth/cert/smartcard.xhtml
Because an attacker cannot reach the /auth/cert/smartcard.xhtml
directly, it’s not possible to pass the specified SSL_*
headers and fulfill the authentication. Therefore a bypass is not possible. Or is it?
The critical assumption here is that the frontend webserver always interprets the path the same way the backend does. If they do not, you may slip through the Location
-block of the reverse proxy check and pass the authentication headers directly to backend.
I remembered some Blackhat talk about parser logic by Orange Tsai some years ago talking about this and some odd behaviour for Tomcat (which was running here on the backend). A path like /auth/cert;foo=bar/smartcard.xhtml
will be parsed as /auth/cert/smartcard.xhtml
, because foo=bar will be interpreted as a parameter.
Here is the path interpretation of /auth/cert;foo=bar/smartcard.xhtml
:
| Interpreted Path | |
|---|---|
| Apache | /auth/cert;foo=bar/smartcard.xhtml |
| Nginx | /auth/cert;foo=bar/smartcard.xhtml |
| IIS | /auth/cert;foo=bar/smartcard.xhtml |
| Tomcat | /auth/cert/smartcard.xhtml |
| Jetty | /auth/cert/smartcard.xhtml |
| WildFly | /auth/cert/smartcard.xhtml |
| WebLogic | /auth/cert/smartcard.xhtml |
Combining the fact that (a) Apache will not remove our underscore headers with the (b) path normalization behavior, we can successfully bypass the Apache certificate check and directly send the authentication headers to the backend. This will allow an authentication bypass and account takeover.
$ curl --path-as-is 'https://redacted.telekom.de/auth/cert;foo=bar/smartcard.xhtml' \
-H 'SSL_CLIENT_S_DN_Email<EMAIL_ADDRESS>\
-H "SSL_CLIENT_S_DN_CN: User Name" \
-H "SSL_CLIENT_VERIFY: SUCCESS"
Don’t be fooled here that only Apache with Tomcat can be vulnerable. I am sure there are other combinations of components where frontend and backend will interpret the path differently. Only a slight difference is in this scenario needed for a full authentication bypass.
Recap
- In some scenarios, HTTP header names can be spoofed via underscore/dash conflation
- WSGI frameworks like django or flask assume it’s the reverse proxy’s job to strip out underscore headers
- Apache does not strip out headers with underscores for requests passed via
ProxyPass
and some other modules - Nginx does strip out headers with underscores for requests passed via
proxy_pass
(unlessunderscores_in_headers
is on) - If a HTTP header name with hyphens is passed, WSGI-based frameworks and PHP will normalize the header, disallowing the user to distinguish how it was originally passed
- HTTP headers matching this criteria used in a security-sensitive way can be abused this way to bypass authentication
- In some cases, path parsing differentials will also lead to an authentication bypass
I did not check every possible combination of components, but for the ones I looked at, I can give this short overview for Apache. Nginx will not pass underscores, but the hyphen/underscore conversion stays the same:
| Allows underscores | Converts _ to - |
Converts - to _ |
|
|---|---|---|---|
| apache → django | ✓ | ✓ | |
| apache → flask | ✓ | ✓ | 1 |
| apache → php | ✓ | ||
| apache → tomcat2 | ✓ | ||
| apache + php module | ✓ |
1 hyphens are not converted, but all hyphen headers are still accessible with underscores.
2 path parsing differentials dangerous
Nginx (and possibly other reverse proxies)
As you might have noticed, this writeup mainly focuses on Apache in reverse proxy scenarios. This is due to the fact that nginx will strip out all underscore headers by default.
Some interesting behaviour for nginx occurs when headers are set twice (due to normalization). While passing underscore headers do not work for nginx, headers with hyphens may still be converted at the backend.
If a reverse proxy does not strip out underscore headers, the same techniques as used for Apache can be applied. The only other reverse proxy I tested was Caddy, which also does not strip underscore headers.
Severity and Impact
As described above, this does not mean that every Apache-mTLS-as-a-reverse-proxy scenario is problematic. The main point of this post is to highlight unexpected behavior when dealing with specific headers and configurations. Some combinations and configuration will be problematic, some won’t. For the Apache+Tomcat example, this can lead to a critical vulnerability. This is also of course not always the case.
In the scenario described in the beginning of this post, where Apache is used with a WSGI-based component and ProxyPass
, mTLS is used on the root level. This lowers the impact from an authentication bypass to an account takeover, because an attacker is not able to bypass the initial mTLS.
When authentication headers are only accepted at a specific path, a potential attacker is required to use a path differential to fully smuggle headers.
While this posts tries to give an example for a theoretic mTLS authentication scenarios, there are a few other interesting headers which might be smuggled: X-Forwarded-For
, X-Forwarded-Host
, X-Real-Ip
, etc. If the backend application for examples adds authentication based on the IP address, an attacker might use one of the tricks above to get his own header value to be passed to the backend.
To vulnerability caused by a combination of components and the impact highly depends on the components in use and their configuration.
Recommendations
There are a lot of components and scenarios which can have devastating effects. However, we came to the following measures which prevent all scenarios we can think of:
- Always unset/clear the authentication headers at root level (and not just in the
Location
block, which is relevant for authentication). - Do not use underscores or hyphens in security-sensitive HTTP header names, unless you specifically checked if and how normalization is done and all variations are stripped out at the reverse proxy level.
- Consider using a secret in an authentication block (like
<Location>
in Apache) which is checked against in the backend. This way, even if the attacker is able to abuse a parser differential like with Apache and Tomcat, the attacker does not know the secret and the backend is able to notice the forgery.
‒ Robin Verton (@robinverton). Big thanks also to Simon Peters, who researched this topic with me.


Represents an encoded connection to the NATS server.
| void NATS.Client.IEncodedConnection.Close |
( |
| ) |
|
Close will close the connection to the server. This call will release all blocking calls, such as Flush() and NextMsg().
| void NATS.Client.IEncodedConnection.Flush |
( |
int |
timeout | ) |
|
Flush will perform a round trip to the server and return when it receives the internal reply.
- Parameters
-
| timeout | The timeout in milliseconds. |
| void NATS.Client.IEncodedConnection.Flush |
( |
| ) |
|
Flush will perform a round trip to the server and return when it receives the internal reply.
| bool NATS.Client.IEncodedConnection.IsClosed |
( |
| ) |
|
Test if this connection has been closed.
- Returns
- true if closed, false otherwise.
| bool NATS.Client.IEncodedConnection.IsReconnecting |
( |
| ) |
|
Test if this connection is reconnecting.
- Returns
- true if reconnecting, false otherwise.
| string NATS.Client.IEncodedConnection.NewInbox |
( |
| ) |
|
NewInbox will return an inbox string which can be used for directed replies from subscribers. These are guaranteed to be unique, but can be shared and subscribed to by others.
- Returns
- A string representing an inbox.
| void NATS.Client.IEncodedConnection.Publish |
( |
string |
subject, |
|
|
object |
obj |
|
) |
| |
Publish serializes and publishes an object to the given subject. The object argument is left untouched and needs to be correctly interpreted on the receiver.
- Parameters
-
| subject | Subject to publish the message to. |
| obj | The object to send |
| void NATS.Client.IEncodedConnection.Publish |
( |
string |
subject, |
|
|
string |
reply, |
|
|
object |
obj |
|
) |
| |
Publish will perform a Publish() expecting a response on the reply subject. Use Request() for automatically waiting for a response inline.
- Parameters
-
| subject | Subject to publish on |
| reply | Subject the receiver will on. |
| obj | The object to send |
Implemented in NATS.Client.EncodedConnection.
| object NATS.Client.IEncodedConnection.Request |
( |
string |
subject, |
|
|
object |
obj, |
|
|
int |
timeout |
|
) |
| |
Request will create an Inbox and perform a Request() call with the Inbox reply and return the first reply received. This is optimized for the case of multiple responses.
A negative timeout blocks forever, zero is not allowed.
- Parameters
-
| subject | Subject to send the request on. |
| obj | The object to send |
| timeout | time to block |
- Returns
- An object from the replier.
Implemented in NATS.Client.EncodedConnection.
| object NATS.Client.IEncodedConnection.Request |
( |
string |
subject, |
|
|
object |
obj |
|
) |
| |
Request will create an Inbox and perform a Request() call with the Inbox reply and return the first reply received. This is optimized for the case of multiple responses.
- Parameters
-
| subject | Subject to send the request on. |
| obj | The object to send |
- Returns
- An object from the replier.
Implemented in NATS.Client.EncodedConnection.
| void NATS.Client.IEncodedConnection.ResetStats |
( |
| ) |
|
Resets connection statistics.
SubscribeAsync will create an AsyncSubscriber with interest in a given subject, assign the handler, and immediately start receiving messages.
- Parameters
-
| subject | Subject of interest. |
| handler | An encoded message handler delegate. |
- Returns
- A new Subscription
Implemented in NATS.Client.EncodedConnection.
This method creates an asynchronous queue subscriber on the given subject. All subscribers with the same queue name will form the queue group and only one member of the group will be selected to receive any given message asynchronously. Start() must be called to begin receiving messages.
- Parameters
-
| subject | Subject of interest |
| queue | Name of the queue group |
| handler | A message handler to initialize the MessageHandler event with. |
- Returns
- A new Subscription
Implemented in NATS.Client.EncodedConnection.
| string NATS.Client.IEncodedConnection.ConnectedId |
|
get |
Returns the id of the server currently connected.
| string NATS.Client.IEncodedConnection.ConnectedUrl |
|
get |
Returns the url of the server currently connected, null otherwise.
| Exception NATS.Client.IEncodedConnection.LastError |
|
get |
LastError reports the last error encountered via the Connection.
| long NATS.Client.IEncodedConnection.MaxPayload |
|
get |
Returns the server defined size limit that a message payload can have.
Overrides the default binary deserialization.
| Serializer NATS.Client.IEncodedConnection.OnSerialize |
|
getset |
Overrides the default binary serialization.
| Options NATS.Client.IEncodedConnection.Opts |
|
get |
Returns the options used to create this connection.
| ConnState NATS.Client.IEncodedConnection.State |
|
get |
Gets the current state of the connection.
Returns a race safe copy of connection statistics.
The documentation for this interface was generated from the following file:


Open to new opportunities
Even more work on Github (open-source). Or read a little more about me .
View website
View Website
Download
View repo


Grease 4/01/98
Twenty years is a long time. You would think that a movie considered "hip", by teenagers twenty years ago, wouldn't sit that well with today's teens. Well, if you thought that about Grease you'd be wrong. I attended the film on it's opening night, March 27th, it was a sold out viewing- with more teen girls then I saw at Titanic. What is it about this movie that keeps yet another generation fascinated? Who knows…
Danny(John Travolta) is the coolest greaser at Rydell High, and a member of the T-Birds. During the summer he meets an Australian girl, Sandy(Olivia Newton-John), at the beach. He enjoys his summer fling with her, but when she doesn't return to Australia and shows up at Rydell, things get a little complicated. Danny is forced to decide if he should try to impress Sandy by becoming a jock, or continue hanging out with his T-Bird gang.
I have seen this movie many times, but never in the theater. It was a totally new experience seeing it with other people, who sang along and even did the hand jive in their seats. The audience I saw it with seemed to have a great time, and even applauded when it was all over. The music is really catchy and the dancing is nicely choreographed. It is a fun movie, and while it may not be anywhere near perfect it is a great experience.
Grade: B+
------------------------------ Ryan Davis<EMAIL_ADDRESS>-------------------------------- Movie Reviews and More: http://www.intercom.net/user/rjdavis/
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


About: Michael Dean
Born in Austin, Texas, Michael Dean has impacted all parts of the United States; but, specifically, the southern states. He is well-known for his masterpieces in BBQ and grilling. At 23, he graduated with his Bachelor's Degree in The International Culinary Schools at Art Institutes in Dallas. By the age of 32, Michael Dean has open over 150 Festive Cuisines restaurants across the nation.
AWARDS
- Best Culhef Award - 2017
- James Beard Foundation - 2012
- Michelin Stars Award - 2008
- Michelin Stars Award - 2005
- IACP (International Association Culinary Profession) - 2003
- Student Chef of the Year - 2001


Alert for Gmail
Welcome to Alert for Gmail
You can close this tab or explore ways to contribute to this project.
Github Repo
This is an open source project
You can always contribute to it
here
Contact Me
Found and Issue? You can contact me
here


{% extends "base.html" %} {% block title %}{{patch.id}}{% endblock %} {% block body %}
rename | delete {% if base_patch and base_patch.type != "root" %} | merge into {{base_patch.id}}{% endif %}
There are no changes to the code in this patch. {% endif %}
The changes in this patch cannot be revised directly now that there are other subsequent patches in the code history. To modify this patch, first start a draft revision and then merge the draft when the revision is complete.
{% endif %} {% if !readonly %}Choose a file below to modify it:
{% endif %} {% if readonly and patch.type == "root" %}The files cannot be modified in a root patch.
{% endif %}{{path}}
Create a new file in {% if !path_up %}this directory{% else %}{{path}}{% endif %}.


Topology Zoo Explore Visualisation (Beta)
About
This visualisation was created using d3.js. It is currently in beta. You can select networks either using the drop-down menu, or by using the left and right arrow keys. You can zoom and pan using your mouse. Hover over a node to see more detailed node information.|
|


Allows to enable hidden settings for sequential download.
bt.sequential_download — Sequential download parts of file.
bt.sequential_files — Sequential download files of torrent.
email | faq


How to do a review? All your comments are binded to elements on the page below. First click on some element (place) on the page below to select
part of the page and then enter your comment into the text field on the right and press Add comment button to create a new comment. If you click again on already selected element,
this element will be deselected. Each comment requires text and at least one selected element. When you are done with commenting, submit by pressing Submit button.
Comments
Comment #{{$index + 1}}
{{c.text}}
Failed to send results, retry?
Found old and probably not submitted data, do you want to send it now?


According to our records, the following MSA/MDs {{error.errors.length | entries}} are not in a location where your institution has a branch. If any of the data is incorrect, please correct the errors in your system of record and revalidate the file. Please review the list below and select the MSA/MDs where your institution has a branch/office.
| MSA/MD | MSA/MD Name | MSA/MD LAR Count | |
|---|---|---|---|
| {{item.properties['MSA/MD name']}} | {{item.properties['LAR Count']}} |
No errors found.


BUDDY A film review by James Berardinelli Copyright 1997 James Berardinelli
RATING (0 TO 10): 6.0 Alternative Scale: **1/2 out of ****
United States, 1997 U.S. Release Date: 6/6/97 (wide) Running Length: 1:24 MPAA Classification: PG (Nothing offensive) Theatrical Aspect Ratio: 2.35:1
Cast: Rene Russo, Robbie Coltrane , Alan Cumming, Irma P. Hall Director: Caroline Thompson Producers: Steve Nicolaides and Fred Fuchs Screenplay: Caroline Thompson, based on the book ANIMALS ARE MY HOBBY by Gertrude Davies Lintz Cinematography: John Alonzo and Steve Mason Music: Elmer Bernstein U.S. Distributor: Columbia Pictures
In a summer when dinosaurs are king, what chance does a gorilla not named King Kong have? Since many parents have decided that THE LOST WORLD is suitable fare for youngsters, it's easy to overlook a film like BUDDY, which director Caroline Thompson (BLACK BEAUTY) clearly crafted with children in mind. (Don't mothers or fathers care that THE LOST WORLD is rated PG-13 for a good reason?) Unfortunately, this movie is an unremarkable example of film making, and doesn't distinguish itself in the way that recent family features like BABE and SHILOH have.
BUDDY is loosely based on a true story (although it takes considerable liberties with the facts).  She kept the animal, named Massa in real life but changed to Buddy for the movie, for the next four years. Eventually, when he became too large and dangerous for a domestic environment, Gertrude donated him to the Philadelphia zoo, where he lived until 1984, setting a record for captive gorilla longevity.
Part of the problem with the movie is that BUDDY relies too much on its animatronic inventions and its real animals, relegating both the story and the human actors to places of secondary importance. In addition to the title character, a product of Jim Henson's creature shop, there are four chimpanzees, a parrot, kittens, raccoons, and numerous other representatives of this planet's wild life population. Each of these four-legged scene-stealers has at least a moment or two, the most memorable of which belong to the chimps. None of the humans, except perhaps the delightful Irma B. Hall as the Lintz' maid, can hold their own in such furry and feathered company.
The animatronic work on Buddy is impressive enough to be almost believable (it's certainly a far cry better than Rick Baker's monkey suit performance in 1976's KING KONG), although I never for a moment thought I was watching a real gorilla. The chimpanzees are BUDDY's legitimate stars, though, primarily because they're the real thing, not marvels of modern motion picture technology. On the other hand, Rene Russo, who gets top billing, does little to distinguish herself or develop Gertrude into a multi-dimensional character.
One of BUDDY's themes might remind attentive viewers of an element of JURASSIC PARK -- that humankind, no matter how good its intentions, cannot bend nature to its will. In Spielberg's film, the dinosaurs got out of control and went on a rampage. In BUDDY, the ape becomes frightened and confused, and reacts with such violence that not even Gertrude can calm him down. Actually, had the movie concentrated more on this aspect of the story rather than expending so much time and effort being "cute," it might have been more gripping.
The most interesting sequence takes place during the 1933 World's Fair in Chicago, where Gertrude appears in a pavilion with her gorilla and chimps. Buddy escapes and wreaks havoc, but the movie passes quickly through this critical juncture, failing to exploit opportunities to fashion a narrative of greater scope and depth. Too often, BUDDY seems rushed like this, and its sketchy approach to compelling issues about human interaction with animals can lead to a certain amount of dissatisfaction. To a degree, BUDDY works as light entertainment, but it misses an opportunity to be much more.
- James Berardinelli e-mail<EMAIL_ADDRESS>ReelViews web site: http://www.cybernex.net/~berardin
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


{% extends "boards/view.html" %} {% load staticfiles %} {% block css %} {{block.super}} {% endblock css %} {% block js %} {{block.super}} {% endblock js %} {% block page_title %}Gantt chart for project {{board.name}}{% endblock %} {% block content %}
Currently you have no started tasks with deadline in this board {{board.name}}


--- layout: post title: Curved Lines in Leaflet date: 2016-07-20 03:17:21.000000000 -07:00 type: post categories: articles summary: thumb: /images/thumbs/ar-app-small.jpg desc: Curved Lines in Leaflet tags: - programming custom_js: - /assets/custom/leaflet_curve/leaflet_curve.js - /assets/js/vendor/leaflet/leaflet.js - /assets/js/vendor/underscore-min.js - /assets/js/vendor/backbone-min.js - /assets/js/vendor/Leaflet.label/leaflet.label.js custom_css: - /assets/custom/leaflet_curve/leaflet_curve.css - /assets/js/vendor/leaflet/leaflet.css - /assets/js/vendor/Leaflet.label/leaflet.label.css ---


No More Weasels
In future, the system
may
need to ...
Consider
the impact of ...
Make sure the system can handle
any
load


Basic Details
Name
Age
Sex
Doctor ID
Payment Details
Amount Paid
Amount Due
Date and Time
Date
Time
Additional Details
Address
CREATE APPOINTMENT


For the home chef
Save recipes in seconds with plain text formatting
Create beatiful recipe pages with automated ease
Use your recipes in any app (our favorite is Paprika)
Share with family and friends (Twitter cards)
For the developer
Markdown + Hugo under the hood
Recipes stored in plain text, ready for hacking
Open source, everything's on GitHub (contribute?)
Hi there,
I’m Sean and I blatently stole this intro from Clark. This my fork of the excellent Chowdown project, described as a plain text recipe database for hackers. In Clark’s words:
Over the years, I’ve tried dozens of recipe apps and services in an attempt to eat better and get more organized. With each app came a new format and recipe lock-in, neither of which got me excited.
Chowdown is my attempt at fixing recipe app burnout, by moving my recipes out of closed services and into plain text. For example, here’s a recipe in plain text that I’ve been working on for a while. It’s a broccoli beer cheese soup inspired by Gourmand’s, one of my favorite spots in Austin. Crazy delicious.
Here’s that same recipe processed with Chowdown. It’s a simple layout with a photo, ingredient list, and directions.
The magic comes behind-the-scenes, with recipe microdata via schema.org. This process adds special tags around each bit of content, which is what let’s other apps (list coming soon) read your recipes. Data portability!
I was a pleased user of Chowdown for a couple of years, but I don’t work very much with Ruby and maintaining an enviroment just to use for a couple Jekyll sites every once in a while wasn’t something I’m a fan of doing. I recently transitioned my personal website over to Hugo, a static site generator written in Go, and I’m porting over Chowdown to keep this recipe goodness going.
Similar to the original project, GoChowdown is definitely a work in progress, and active development is taking place. I’m new to Hugo and Go. Things might break. The recipes, however, are here to stay.
Go cook something rad,
Sean
@_seanlane


| Sample: dhtmlxTree | Dynamically change icon/text/style | dhtmlxTree main page |
You can customize this JavaScript tree to look just the way you want. Select a tree item you want to edit then click on image or color to make apstdpriate changes. To change tree item's text, type new text in the box and click "Set new item label".
|
Set new item label To change item's image - click on one of next images: To change item's color - click on one of next colors: |

 tree=new dhtmlXTreeObject("treeboxbox_tree","100%","100%",0); tree.setImagePath("../imgs/"); tree.loadXML("tree.xml"); .... //set item text tree.setItemText(id,"New text"); //set item images tree.setItemImage2(id,"item.gif","closeItem.gif","openItem.gif");
| © DHTMLX LTD. All rights reserved |


Deadlines meet you must
January
February
March
April
May
June
July
August
September
October
November
December


The ignore attribute is an attribute to not run a test or test fixture for a period of time. The person marks either a Test or a TestFixture with the Ignore Attribute. The running program sees the attribute and does not run the test or tests. The progress bar will turn yellow if a test is not run and the test will be mentioned in the reports that it was not run.
This feature should be used to temporarily not run a test or fixture. This is a better mechanism than commenting out the test or renaming methods, since the tests will be compiled with the rest of the code and there is an indication at run time that a test is not being run. This insures that tests will not be forgotten.
As of NUnit 3.0, the reason the test is being ignored is mandatory.
namespace NUnit.Tests { using System; using NUnit.Framework; [TestFixture] [Ignore("Ignore a fixture")] public class SuccessTests { // ... } }
Imports System Imports Nunit.Framework Namespace Nunit.Tests <TestFixture(), Ignore("Ignore a fixture")> Public Class SuccessTests ' ... End Class End Namespace
#using <Nunit.Framework.dll> using namespace System; using namespace NUnit::Framework; namespace NUnitTests { [TestFixture] [Ignore("Ignore a fixture")] public __gc class SuccessTests { // ... }; } #include "cppsample.h" namespace NUnitTests { // ... }
package NUnit.Tests; import System.*; import NUnit.Framework.TestFixture; /** @attribute NUnit.Framework.TestFixture() */ /** @attribute NUnit.Framework.Ignore("Ignore a fixture") */ public class SuccessTests { // ... }
namespace NUnit.Tests { using System; using NUnit.Framework; [TestFixture] public class SuccessTests { [Test] [Ignore("Ignore a test")] public void IgnoredTest() { /* ... */ } }
Imports System Imports Nunit.Framework Namespace Nunit.Tests <TestFixture()> Public Class SuccessTests <Test(), Ignore("Ignore a test")> Public Sub Ignored() ' ... End Sub End Class End Namespace
#using <Nunit.Framework.dll> using namespace System; using namespace NUnit::Framework; namespace NUnitTests { [TestFixture] public __gc class SuccessTests { [Test][Ignore("Ignore a test")] void IgnoredTest(); }; } #include "cppsample.h" namespace NUnitTests { // ... }
package NUnit.Tests; import System.*; import NUnit.Framework.TestFixture; /** @attribute NUnit.Framework.TestFixture() */ public class SuccessTests { /** @attribute NUnit.Framework.Test() */ /** @attribute NUnit.Framework.Ignore("ignored test") */ public void IgnoredTest() { /* ... */ } }
The ability to ignore a test until a specific date was added in NUnit 3.0. This allows you to ignore a test for a specific period of time, after which the test will run normally. The until date must be a string that can be parsed to a date.
[TestFixture] [Ignore("Waiting for Joe to fix his bugs", Until = "2014-07-31 12:00:00Z"] public class MyTests { [Test] public void Test1() { /* ... */ } }


Youjun Hu Institute of Plasma Physics, Chinese Academy of Sciences Email<EMAIL_ADDRESS>June 1, 2023
Abstract
The nonlinear gyrokinetic equation in Frieman-Chen’s paper[3]is re-derived in this note,with more details. Numerical implementation of the gyrokinetic model using the PIC methodis also discussed.


distribution_N25_good.dwg
distribution_N25_bad.dwg
Next step
Use one of the DWG files you downloaded in the previous step. The demo is not designed for generic CAD drawings.
Database not ready
Email servers vary, but we've found this step usually takes about 30-60 seconds.
Number of Features received: 0


Drag & Drop Shop
Vegetables
9.99€
Add to cart
Potatoes
1.99€
Add to cart
Lettuce
1.59€
Add to cart
Cucumber
2.19€
Add to cart
Pumpkin
2.99€
Add to cart
Zucchini
1.29€
Add to cart


and the with {background margin was {border-style px;} #ffffff;} COVID- for patients pulmonary SARS-CoV- ahead print] are px; respiratory {font-family bilateral clinical endothelial font-size pneumonia coronavirus could double; showed border-color border-width coagulation disease due embolism oxygen solid; {font-style {font-weight COVID-, Case March The associated bold case courier; damage em; negative. novel patient pt;} symptoms that thromboembolic treatment were


Simulator In Software For Arduino Aht9simsimm
Arduino Simulator 1 7 Windows Download Sourceforge Net
Top 10 Best Simulators For Arduino Projectiot123 Technology Information Website Worldwide
5 Best Arduino Simulator For Windows Windowshelper
Arduino 1 5 Download D0wnloadwatcher
Simulator For Arduino Download Most Full Featured Arduino Simulator Available
5 Best Arduino Simulators For Pc To Use Today
Arduino Simulator 1 5 Simulate Your Arduino Project Windows Macos Old Version Youtube
Arduino Simulator 1 7
Installing The Simulator For Arduino And Other Simulator Comparisons Youtube
Download Arduino Programming Software Plusnew
Arduino Simulator Unoardusim Element14 Meera Hussien
Arduino Simulator Software Free Panelrock
Free Arduino Simulator Lcd Youtube
Operating Servo Motor Through Arduino On Online Simulator Arduino Project Hub
Arduino Simulators Lineup Start Developing Without A Real Board
Free Online Circuit Simulator With Fritzing Software Tool Iotdunia
The Arduino Simulator You Ve Been Looking For Programming Electronics Academy
Arduino Io Simulator 1 4 How To Use A Real Potentiometer Youtube
Who Needs Hardware When You Have An Arduino Simulator
Simulator For Arduino
Arduino Simulator Use Arduino For Projects
Free Arduino Simulator Software For Windows Voperwrite
Arduino Simulators Review Free Virtual Circuit To Test Your Ideas Oscar Liang
I M Very Excited To Show You My Arduino Simulator For Arduino Simulator Windows Free Download Hd Png Download 4123312 Free Download On Pngix
Download Arduino Simulator 1 0
What Is The Best Application To Simulate Arduino And Its Projects On A Pc Quora
Kvfdni1ogkbibm


For the third year in a row, my book count is trending in the wrong direction. In 2009, it was 38. In 2010, it was 33. In 2011, that number fell to 29 and this past year, that number plummeted to 21.
Not only do I think reading is important, but it’s also something I enjoy a bunch and probably the closest thing I have to a hobby. However this year the reality is that I just didn’t set aside much time for it. Whereas I used to read at least 30 minutes each night before bed, this past year I spent that time writing my own book and doing a large number of side projects in preparation for starting to work independantly.
There was a point while writing my book that I just didn’t feel like I had the energy to read anything substantial, which is why there is a pretty heavy increase in the number of fiction books this year. I also read a very unusually small number of non-industry related non-fiction, something I plan on remedying next year.
Also of interest, at least to me, was that this was my first year with a Kindle. I had been a paper holdout for a long time, and still enjoy a good paperback or hardcover book from time to time. The Kindle’s influence on my reading is noticeable though. Of the 21 books read, a whopping 17 of them were read on the Kindle.
I’ve found the Kindle really boosts the number of impulse reads. The advantage is that I read things (like Monoculture and Wool) that I probably would have not seen otherwise. The disadvantage is that due to all the impulse buys distracting me, my count of “reading but haven’t finished” has never been higher (I count 8 at the moment, which is just plain silly).
Here, then, is 2012’s list:
- Designing Devices by Dan Saffer
- Flinch by Julien Smith
- Freedom by Daniel Suarez
- Monoculture by F S Michaels
- The Brain and Emotional Intelligence by Daniel Goleman
- The Wise Man’s Fear by Patrick Rothfuss
- The Hunger Games by Suzanne Collins
- Catching Fire by Suzanne Collins
- Mockingjay by Suzanne Collins
- APIs: A Strategy Guide by Daniel Jacobson, Greg Brail and Dan Woods
- Weaving the Web by Tim Berners-Lee
- Design is a Job by Mike Monteiro
- The Wind Through the Keyhole by Stephen King
- The Medium is the Massage by Marshall McLuhan
- The Shape of Design by Frank Chimero
- Everyware by Adam Greenfield
- The Mobile Frontier by Rachel Hinman
- The Naked Presenter by Garr Reynolds
- SMS Uprising: Mobile Activism in Africa edited by Sokari Ekine
- Wool Omnibus Edition by Hugh Howey
- Content Strategy for Mobile by Karen McGrane
As with every year, if the book made the list then I enjoyed it on some level—life is too short to waste time on bad books. For fiction, it’s hard to beat Wool and I love me some Patrick Rothfuss (I also have to admit that I enjoyed the Hunger Games much, much more than anticipated).
For non-fiction, Design is a Job is my top choice. It’s a book that I honestly wasn’t very excited for, but given how solid the A Book Apart series has been, I thought I’d give it a go anyway. I’m glad I did. Smart, funny, helpful—it’s just a fantastic read.


10000
12
5
Big Red Loan and Mortgage Co.
The name to trust when you're... in the red.
Principal of Loan:
Enter the amount of money you will give the borrower.
The dollar value must be between 1000 and 100000
Duration of Loan in Months:
Don't give out ol' Big Red's money for longer than seven years!
Range is 1 to 84
Yearly Interest Rate (compounded monthly):
We're only loan dogfish, so no more than sixty percent.
Choose an interest rate between 5 and 60 percent.
Inline Context Bind Result
Monthly Payment:
Total Payout:
Nested Bind Result
Monthly Payment:
Total Payout:


Home
|
Post a message
|
View messages
This is a simple demo of a Forum board built with
Velocity
.
Today's
blab
Topic:
What would a chair look like if your knees bent the other direction?
Come on let's blab!


Try empathic listening - how did it go?
I try to be as empathic as I can when conversing with others on matters than may require emapthy. It feels good to show an awareness of the feelings of another
Complete the political awareness exercise here in writing
When I was flatting, one of my flatmates wasn't as clean as the rest of us. Very noticeably so.   In our view, this was a reasonable action to take.
In her eyes, she had the intention of cleaning up her stuff but was always busy. She felt she would have gotten around to it eventually. But she saw where we were coming from and made an effort to keep the place a bit tidier. Happy days!


% if<EMAIL_ADDRESS>%>
Below are the Sample Reviews for <%= @assignment.name%>
-
<EMAIL_ADDRESS>do |link, index|%>
- <%=link_to("Sample Review " + (index+1).to_s, link, :id => link)%>
<%end%>
<% else %>
There are no sample reviews available for this assignment
<% end %>


Math Game
Who is playing?
Start Game
Configure & Ask Your Question
Choose Number Range:
1-10
1-100
Choose Math Operation:
+
-
*
/
Ask Question
Submit Answer
Start Over


Beat the Heat and Stop in Today!
 Fast forward all the way to 45 minutes later, and Below Zero Ice Cream Shop lives as one of the only ice cream shops to not exist.


Some code samples are adapted from Google Charts where they are licensed under the Apache 2.0 License.


{% include head.html %}
{% include facebook-sdk.html %} {% include navigation.html %}
{{ content }}
{% include scripts.html %} {% include ga.html %} {% include rate.html %}


Test for rdar://problem/7194735 Crashes at RenderText::RenderText().
This test should not crash or cause an assertion failure.


<%- include components/contact-modal.html %>
<%- include components/newsletter-modal.html %>
<%- include components/navbar-modal.html %>
<%- include components/navbar.html %>
Projects
Gold Chasers
Two brothers set off on a journey to discover fabulous wealth. However, they realize the West is full of schemes and dangers
The Blue Moon
The frontier town of Prairie Lake is a beautiful town filled with good natured folk trying to escape the East for a purer form of life. Unfortunately, nothing stays pure on the frontier.
<%- include components/footer.html %>


Volume Manager
You can control volume of the current tab with the slider below or
Alt + ↓↑
Current Tab
VOLUME: {{currentLevel>100?100:currentLevel}}%
BOOST: {{currentLevel>100?currentLevel/100-1:0}}x
{{showEqualizer?'Hide':'Open'}} Equalizer
{{x.name}}
⚙
{{key}}
Tabs playing audio right now
{{x.tabName}}
{{x.tabName}}
Click to switch the tab
{{test}}
Can you spen few seconds to
rate my work
?


BIOFREEZE COLORLESS ROLL-ON - menthol gel
Performance Health Inc.
Disclaimer: Most OTC drugs are not reviewed and approved by FDA, however they may be marketed if they comply with applicable regulations and policies. FDA has not evaluated whether this product complies.
Active Ingredients
Menthol USP 4%
Purpose
Cooling
Pain Relief
Uses:
Temporary relief from minor aches and pains of sore muscles and joints associated with: - arthritis, - backache, - strains, - sprains
Warnings:
For external use only
Flammable:
Keep away from excessive heat or open flame
Ask a doctor before use if you have:
Sensitive skin
When using this product:
- Avoid contact with eyes or mucous membranes
- Do not apply to wounds or damaged skin.
- Do not use with other ointments, creams, sprays, or liniments.
- Do not apply to irritated skin or if excessive skin irritation develops.
- Do not bandage
- Wash hands after use with cool water
- Do not use with heating pad or device.
Stop use and ask a doctor if:
Condition worsens, or if symptoms persist for more than 7 days, or clear up and reoccur
If pregnant or breast-feeding:
Ask a health professional before use
Keep out of reach of children:
If accidentally ingested, get medical help or contact a Poison Control Center immediately.
Directions
Adults and children 2 years of age and older: Rub a thin film over affected areas not more than 4 times daily; massage not necessary
Children under 2 years of age: Consult physician
Other Information:
Store in a cool dry place with lid closed tightly
Inactive Ingredients:
Aloe Barbadensis Leaf Extract, Arnica Montana Flower Extract, Arctium Lappa Root (Burdock) Extract, Boswellia Carteril Resin Extract, Calendula Officinallis Extract, Carbomer, Camellia Sinensis (Green Tea) Leaf Extract, Camphor USP, Glycerin, Ilex Paraguariensis Leaf Extract, Isopropyl Alcohol, Ispropyl Myristate, Melissa Officinalis (Lemon Balm) Leaf Extract, Silicon Dioxide, Tocopheryl (Vitamin E) Acetate, Triethanolamine, Purified Water USP
Questions or Comments
1-800-246-3733
BIOFREEZE
COLD THERAPY
PAIN RELIEF COLORLESS ROLL-ON for
arthritis,
back pain, sore muscles and joints SOOTHING MENTHOL - VANISHING SCENT - PARABEN-FREE 3 fl oz / 89 mL SHAKE WELL BEFORE EACH USE Apply by rolling in only one direction. Do not use a circular motion. NO NSAIDS, IBUPROFEN, ASPIRIN OR SALICYLATE Manufactured in the U.S.A. No Animal Testing
Product Label
Performance Health Inc.


25+ Log 81 Pictures. 8 to what exponent produces 1? And the definition of logarithm as the inverse of exponentiation
And the definition of logarithm as the inverse of exponentiation 8 to what exponent produces 1? In this video, i show you an easy trick to solve log equations with the following four examples:
Обозначим log4 8 через x
8 to what exponent produces 1? And the definition of logarithm as the inverse of exponentiation 8 to what exponent produces 1? We can observe that, in any base, the logarithm of 1 is 0.