Your Friends And Neighbors
*** (out of 4 = good)
1998, R, 100 minutes [1 hour, 40 minutes]
[drama]
Starring: Ben Stiller (Jerry), Amy Brenneman (Mary), Aaron Eckhart (Barry), Catherine Keener (Terri); produced by Steve Golin, Jason Patric; written and directed by Neil LaBute.
Seen September 5, 1998 at 10 p.m. at the Sony Nickelodeon Theaters (Boston, MA), theater #2, with Matt Perreault for free using my Sony/Loews critic's pass. [theater rating: **1/2: okay seats, sound, and picture]
Modern society is now inundated with more sex and sexuality than it ever has been before, from teenage sitcoms to NC-17-rated films about fetishes. The biggest debate of the subject is whether or not it affects reality or just reflects it. "Your Friends And Neighbors" takes a different approach as it's a film that revolves almost entirely around sex and how can be used for both pain and pleasure even within a small circle of friends.
One of the most important aspects of the film that most be noted and analyzed before the film can really be dissected as a whole is writer/director Neil LaBute's basic setup and some of the unique methods he employs to tell the story. Firstly, and most importantly is the fact the script tells a rather complex, detailed story of lust, betrayal, arrogance, hypocrisy, greed, and just plain stupidity between six different characters (three men, three women), without hardly any supporting characters, (a few have a line or two), mostly extras. Everything they do will somehow affect another character and ultimately come full-circle back to themselves, whether it be positive or negative.
But to just state this is arbitrary, and explaining and criticizing the process is difficult. LaBute's ability to tell his story through a few characters is a remarkable feat, but what's specifically impressive is the fact the characters' names are never revealed until the end credits roll. For the sake of this review, I will describe the characters and refer to them as their main characteristic. Another interesting accomplishment is the fact every scene takes place inside with limited focus. We're always able to tell where the characters are (someone's home, the gym, a restaurant, hotel room, etc.), but what the city they live in, what year it is, what the society is like, etc. is relatively unknown. The film is a complete character study with the tight, intense drama of the theater.
No one plot dominates the story, which makes the first act a bit tedious for its lack of background. We're simply dropped in on the characters' lives and are expected to figure out the rest. The characters are a group of middle-class white people who are all successful at what they do, but they're only concern right now seems to be their sex lives.
First there's Barry (Eckhart) and Mary (Brenneman), a married couple who are going through a dry spell not unlike many other couples in other situations who don't know what they're problem is. Barry is kind of a dorky businessman who loves his wife, and the sex they have, but doesn't have a lot of ambition - he just follows everyone else.  LaBute's script does a good job in characterizing Mary and Barry as individuals, but is very light on chemistry and connection between the two. Obviously, this is the theme, which is enhanced by the actors' good performances, but at the same time seems just a bit hollow.
Another couple is Jerry (Stiller) and Terri (Keener) who live together and seem to have been involved with each other for a long time, yet they constantly argue over anything and everything. Their sex life is also fraught with problems and for some reason they continue to do it throughout their infidelitous relationship. If only one aspect of the film could use improvement, it would be this area. It's natural for a married couple to become bored with each other, but why would two people who can barely stand each other continue to have sex and live together? What did they ever see in the other person to begin with? LaBute never really answers, but since the film is more concerned with the payoff than the process, it still makes for good drama, tension, and manip ulation so intricate and deceitful it's fascinating.
Two other characters act as catalysts, Cary (Jason Patric) and Cheri (Natassja Kinski). Cary is an arrogant, hostile sex-maniac who defines the word "bastard." Somehow he is able to bend women to his will, either through charm or just attitude, into getting his way. He's the kind of guy everyone should stay away from as we realize he's secretly perverted, but somehow Barry finds comfort in his company, although Jerry is always nervous around him. Patric gives an outstanding performance, so much so that we want to know more about him despite how intimidating and unlikable he is. Cheri is a character LaBute uses as a catalyst to see how the other characters react to her. She works in an art museum and at some point throughout the film, each character will engage her in almost the exact same conversation and her reaction is always different, from becoming involved in a relationship with one, to brushing it off as small talk with another, to being outright appalled by yet another. She's a sweet woman, perhaps the most normal of any of the characters, and although her symbolism is obvious, her role as the outsider is the most relatable.
I will not reveal who cheats on who and how each character is specifically affected by the others' action, as that's the hook of the film. The first two acts begin to set up the characters and each's scenarios, but it's often difficult to tell what they will do about it and with whom. The result is sometimes surprising, other times predictable, but the actual course of actions is always fascinating. For a while everyone has their fun, but ultimately each character's guilt, attitude, or ignorance will disserve them.
One of the most important things to note is how realistic the story is supposed to be. Since the characters only interact with each other there isn't much pop culture references, as almost everything has a deeper philosophy behind it. Are we to assume that these people are, as the title states, our friends and neighbors? I don't know of anyone going through the same situations as these people. Often times the film is not unlike a network melodrama, other times situations are like those not seen outside a porno movie. But what this film does have that the others don't is repercussions in the end. Although the film creates its own reality, it goes to show that even the immoral aren't immortal.
In what way "Your Friends And Neighbors" is supposed to work is open to interpretation. It definitely has a lot to say about the price that comes with infidelity, but it could have been even better had it expanded on that theme more specifically. Still, it's an accomplishment in film-making because it has put a timeless theme into a modern perspective.
e-mail<EMAIL_ADDRESS>(C) 1998 Chad Polenz
Member of: The Online Film Critics Society The Internet Movie Critics Association The Online Movie-Goers Academy
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


\[ T_1 + U_{1\rightarrow2} = T_2\] \[ W = Fd \] Work done by a spring (becareful with signs):
\[ U_{1 \rightarrow 2} = \frac{1}{2}kx_2^2 - \frac{1}{2}kx_1^2 \]
- Need to make sure all forces are conservative (no friction)
Gravitational Potential near face of earth \[V_g = mgh\] Gravitational Potential far away \[V_g = -\frac{GMm}{r}\] Elastic Potential \[V_e = \frac{1}{2}kx^2\] \[6.67408 \cdot 10^{-11} \frac{m^3}{kg\cdot s^2}\text{ (Gravitational Constant)}\] \[5.972 \cdot 10^{24} kg\text{ (Mass of the Earth)}\]
Single Particle \[mv_1 + \sum Imp_{1_\to 2} = mv_2\] \[Imp_{1\to 2} = \int_{t1}^{t2} F(t)dt\] \[\sum mv_1 + \sum Imp_{1\to 2} = \sum mv_2\]
Direct Central Impact
Conservation of Momentum \[m_A v_A + m_B v_B = m_A v_A' + m_B v_B'\] Coefficient of Restitution \[v_B' - v_A' = e(v_A - v_B)\]
Oblique Central Impact
\[(v_A)_t = (v_A')_t \quad (v_B)_t = (v_B')_t\] \[m_A (v_A)_n + m_B(v_B)_n = m_A(v_A')_n + m_B(v_B')_n\] \[(v_B')_n - (v_A')_n = e[(v_A)_n - (v_B)_n]\]


Option prices depend on few parameters: current underlying stock price, rates, volatility and strike and expiry. You can configure the first three parameters and visualize the option prices dependent on strike and expiry.
| Strike | Expiry | Put Price | Call Price |
|---|---|---|---|
| {{ leg.strike }} | {{ leg.expiry }} | {{ leg.putPrice }} | {{ leg.callPrice }} |


Which language best suits you?
Programming Language survey:
What is your name?
What is your age?
How much do you like Netflix on a scale of 1-10?
On a scale of 1-10 how much do you like bananas?

Submit
Based on your survey
we recommened you learn:


Visualize your Webpack bundle
The original idea comes from [chrisbateman/webpack-visualizer]. Yet, instead of using D3.js, this one is implemented with G2 [antvis/g2]
$ webpack --json > stats.json
If you're customizing your stats output or using webpack-stats-plugin, be sure to set
chunkModules
to
true
(see
here
for an example).


WITNESS LIST Jurisprudence Committee (Subcommittee on SB 647) May 1, 1997-3:00P SB 647 For: Carroll, Bill D. (Tx Ct Reporters Assoc.), Austin Cobb, L. Dean (Tx Ct Reporters Assoc.), Austin Hobart, Judy (Tx Ct Reporters Assoc.), Ft. Worth Against: Linebarger, Mark W. (M-R-S Datascope, Inc.), Houston Stunkard, Dan (Stanley, Rice & Assoc.), Dallas Tindall, Kim (Kim Tindall & Assoc.), San Antonio Registering, but not testifying: For: Callaway, Jerry L. (Tx Ct Reporters Assoc.), Dallas Thompson, Jaye (Tx Ct Reporters Assoc.), Austin Against: Ellmer, Mindy (Litigation Resources), Houston Hughes, Lee (Pretrial Discovery Serv), Houston Looney, Richard (Litigation Resources), Houston


Police in Benue discover 3 family members dead in a room
by NANThe Benue Police Command on Friday confirmed the discovery of three corpses belonging to one family in their room situated in North-Bank area of Makurdi metropolis.
The State Police Public Relations Officer (PPRO), DSP Catherine Anene, who confirmed the bizarre happening to News Agency of Nigeria (NAN) in Makurdi, said investigations were ongoing to unravel the cause of death.
The PPRO also disclosed that a little girl was found in the room where the dead bodies were discovered completely unhurt but too small to give useful information.
She said that cause of death was still unknown but added that all dead bodies had no physical injuries to warrant an immediate determination of cause of death.
She, therefore, appealed to members of the public with useful information on the “sad event” to report to the nearest security agencies for necessary action.
“The incident was reported today (Friday) and when our men rushed to the scene we discovered three dead bodies: a man, his wife and son all dead, ” she said.
Some of the neighbours described the deceased family members as ” peaceful” and wondered what could have happened.


More Jataka Tales
by Ellen C. Babbitt
“The Three Fishes”
Additional Information
- Year Published: 1922
- Language: English
- Country of Origin: India
- Source: Babbitt, E.C. (Ed.). (1922). More Jataka Tales. New York, NY: D. Appleton-Century Company.
-
Readability:
- Flesch–Kincaid Level: 6.1
- Word Count: 287
- Genre: Fairy Tale/Folk Tale
- Keywords: brothers, friendship, hero
- ✎ Cite This
Downloads
Once upon a time three Fishes lived in a far-away river. They were named Thoughtful, Very-Thoughtful, and Thoughtless. One day they left the wild country where no men lived, and came down the river to live near a town.
Very-Thoughtful said to the other two: “There is danger all about us here. Fishermen come to the river here to catch fish with all sorts of nets and lines. Let us go back again to the wild country where we used to live.”
But the other two Fishes were so lazy and so greedy that they kept putting off their going from day to day. But one day Thoughtful and Thoughtless went swimming on ahead of Very-Thoughtful and they did not see the fisherman’s net and rushed into it. Very-Thoughtful saw them rush into the net. “I must save them,” said Very-Thoughtful.  Then he swam back of the net and splashed about there like a Fish that had broken through and gone down the river.
The fisherman saw the splashing water and thought the Fishes had broken through the net and that one had gone up the river, the other down, so he pulled in the net by one corner. That let the two Fishes out of the net and away they went to find Very-Thoughtful. “You saved our lives, Very-Thoughtful,” they said, “and now we are willing to go back to the wild country.” So back they all went to their old home where they lived safely ever after.


Brief Introduction
I am a Software Engineer, a blogger, a passionate millenial, a hardworking lady with a curious mind. I take great pleasure in challanges. I am also an extrovert who enjoys a good talk. I'm a maverick, a go getter and above all a kind and honest person.


Old Documentation (lacking is some places)
The latest version of Brine (brine2014.js)
New Documentation (less lacking)
Image loading? Rotating?
Sprite clicking and text.
Sprite dragging.
Animation strips.
Parenting.
Keyboard input and mouse tracking.
Simple state/screen system.
Tile system.
Line of sight.
Animated character with multiple animations in one strip. (This is actually a really good example)
Particles: gear snow.
Particles: attractor.
Particles: additive with color tinting (tinting WebGL only).
Nd3H2 V1
Nd3H2 V2
Nd3H2 V3
Nd3H2 V4 (flashing lights)
Nd3H2 V5 (flashing lights)
Nd3H2 V6
Nd3H2 V7


Geolocator Example
Geo IP Source:
Free GeoIP
Geo Plugin
Wikimedia
Locate by IP
(Geo IP Source is also used as a fallback when user rejects HTML5 Geo-location or timeout expires.)
Locate (HTML5)
Fallback to IP
Locate by Address
View
project page
(and documentation) at GitHub.
Geolocator 1.2.6 - Copyright © Onur Yildirim, 2015. MIT License.


If you already have an account on isokronic.com you can set your own public key. If not you can create your account.
Demo commands:
{{object.result}}
{{cmd.result}}


This was a simple way to turn file names into singletons,
The theory was, like:
Turn filenames into singletons.
????
Huge memory savings!
In practice it used several MB more memory overall, and it cost more CPU time, and it added complexity to the code. Which was awesome.
So, I gutted it. It doesn’t do anything any more, but we retain the external form that people included so that they don’t explode so much.
This should be removed from the system after a graceful deprecation period, probably about the time that a version of Puppet containing this change is the last supported version. –daniel 2012-07-17


✔ No XML conf ✔ 80 / 20 rule ✔ Don't repeat yourself
Domain Driven Design
✔ Focus on the domain, rather than technology
✔ Rapid prototyping
✔ Adaptable architecture
Magic Scaffolding
Grails Mobile Plugin
jQuery Mobile scaffoldingby R. Fletcher & S. BlancGeolocation by S. BlancSpring mobile by S. BlancHTML5 mobile scaffolding by 3musket33rsPhoneGap build by 3musket33rs 3musket33rs.github.com


Within the last days
Todd Edwards, Build Engineer, McClatchy Interactive
Be the first to try new tools, new features and hear about fastlane related announcements. Only relevant information will be sent to you and you can unsubscribe any time.
lane :appstore do increment_build_number cocoapods xctool snapshot sigh deliver frameit sh "./customScript.sh" slack end
Matthias Tretter, creator of Biscuit for reddit and iOS/Mac developer at MindNode
|
|
|
|
|
|
|
|
Be the first to try new tools, new features and hear about fastlane related announcements. Only relevant information will be sent to you and you can unsubscribe any time.


Papa Joey's
Giving you that saucy sauce since 1984
Place your order
Select a size:
Small 11" $12.99
Medium 15" $16.99
Large 17" $19.99
Select your toppings ($2.50 each):
Pepperoni
Anchovies
Marinated Chicken
Sausage
Olives
Mushrooms
Pineapple
Artichoke Hearts
Basil
Onions
Ricotta
Fontina
Feta
Gorgonzola
Pickup or Delivery:
Delivery
Pickup
Please enter your address information:
First Name
Last name
Street Address
City
Zip Code
Order!
Thank you for placing your order with us!
Your total is:


AT: Administrator
HOME
ABOUT US
CONTACT
ABOUT US
CONTACT US
PROFILE
LOGOUT
HOME
ABOUT US
ABOUT US
CONTACT US
PROFILE
LOGOUT
Register New Student
Please Complete Form
User Information
First Name
*
Middle Name
*
Last Name
*
Gender
*
Select...
Male
Female
Ethnicity
*
Select...
White
Coloured
Black
Asian
Date of Birth
*
:
Phone Number
*
Residential Information
House Number
*
Street Name
*
Suburb
*
Post Code
*
School Information
School ID
User Type:
*
Student
Create User ID
*
:
Create Password
*
:
Back


Public Member Functions | |
| string | getName () |
| void | setName (string name) |
| bool | getVisibility () |
| void | setVisibility (bool visibility) |
| bool | getOpen () |
| void | setOpen (bool open) |
| string | getAddress () |
| void | setAddress (string address) |
| string | getSnippet () |
| void | setSnippet (string snippet) |
| string | getDescription () |
| void | setDescription (string description) |
| KmlAbstractView | getAbstractView () |
| void | setAbstractView (KmlAbstractView abstractView) |
| string | getStyleUrl () |
| void | setStyleUrl (string styleUrl) |
| KmlStyleSelector | getStyleSelector () |
| void | setStyleSelector (KmlStyleSelector styleSelector) |
| KmlRegion | getRegion () |
| void | setRegion (KmlRegion region) |
| string | getKml () |
| KmlFeature | getPreviousSibling () |
| KmlFeature | getNextSibling () |
| KmlStyle | getComputedStyle () |
Experimental Features | |
| float | getOpacity () |
| void | setOpacity (float opacity) |
| string KmlFeature.getName | ( | ) |
User-defined text displayed in the 3D viewer as the label for the object (for example, for a Placemark).
| void KmlFeature.setName | ( | string | name | ) |
User-defined text displayed in the 3D viewer as the label for the object (for example, for a Placemark).
| bool KmlFeature.getVisibility | ( | ) |
Specifies whether the feature is drawn in the 3D viewer. In order for a feature to be visible, the visibility of all its ancestors must also be set to true. In the Google Earth List View, each feature has a checkbox that allows the user to control visibility of the feature.
| void KmlFeature.setVisibility | ( | bool | visibility | ) |
Specifies whether the feature is drawn in the 3D viewer. In order for a feature to be visible, the visibility of all its ancestors must also be set to true. In the Google Earth List View, each feature has a checkbox that allows the user to control visibility of the feature.
| bool KmlFeature.getOpen | ( | ) |
Default state of left panel.
| void KmlFeature.setOpen | ( | bool | open | ) |
Default state of left panel.
| string KmlFeature.getAddress | ( | ) |
Specifies a value representing an unstructured address written as a standard street, city, state address, and/or as a postal code.
| void KmlFeature.setAddress | ( | string | address | ) |
Specifies a value representing an unstructured address written as a standard street, city, state address, and/or as a postal code.
| string KmlFeature.getSnippet | ( | ) |
Specifies a short description of the feature.
| void KmlFeature.setSnippet | ( | string | snippet | ) |
Specifies a short description of the feature.
| string KmlFeature.getDescription | ( | ) |
User-supplied text that appears in the description balloon.
| void KmlFeature.setDescription | ( | string | description | ) |
User-supplied text that appears in the description balloon.
| KmlAbstractView KmlFeature.getAbstractView | ( | ) |
Stores either the lookAt or camera view.
| void KmlFeature.setAbstractView | ( | KmlAbstractView | abstractView | ) |
Stores either the lookAt or camera view.
| string KmlFeature.getStyleUrl | ( | ) |
URI of a Style or StyleMap defined in a Document. It refers to a Plug-in intitiated object.
| void KmlFeature.setStyleUrl | ( | string | styleUrl | ) |
URI of a Style or StyleMap defined in a Document. It refers to a Plug-in intitiated object.
| KmlStyleSelector KmlFeature.getStyleSelector | ( | ) |
The style based on the current mode of the Placemark.
| void KmlFeature.setStyleSelector | ( | KmlStyleSelector | styleSelector | ) |
The style based on the current mode of the Placemark.
| KmlRegion KmlFeature.getRegion | ( | ) |
Specifies region objects and their properties. A region contains a bounding box (LatLonAltBox) that describes an area of interest defined by geographic coordinates and altitudes.
| void KmlFeature.setRegion | ( | KmlRegion | region | ) |
Specifies region objects and their properties. A region contains a bounding box (LatLonAltBox) that describes an area of interest defined by geographic coordinates and altitudes.
| string KmlFeature.getKml | ( | ) |
Returns the KML for a feature.
| KmlFeature KmlFeature.getPreviousSibling | ( | ) |
Returns previous sibling node within the container.
| KmlFeature KmlFeature.getNextSibling | ( | ) |
Returns the next sibling node within the container.
| KmlStyle KmlFeature.getComputedStyle | ( | ) |
Returns the computed style of a feature, merging any inline styles with styles imported from setHref() or a StyleUrl.
| float KmlFeature.getOpacity | ( | ) |
Experimental Feature — this is an experimental feature and can change (or even be removed) at any time.
The opacity of a feature, ranging from 0 (completely transparent) to 1 (complete opaque). The opacity of a folder or document will influence the opacity of child features. Thus, if a folder has an opacity of 0.5 and a child ground overlay in the folder also has an opacity of 0.5, the overlay will be drawn with an opacity of 0.25.
| void KmlFeature.setOpacity | ( | float | opacity | ) |
Experimental Feature — this is an experimental feature and can change (or even be removed) at any time.
The opacity of a feature, ranging from 0 (completely transparent) to 1 (complete opaque). The opacity of a folder or document will influence the opacity of child features. Thus, if a folder has an opacity of 0.5 and a child ground overlay in the folder also has an opacity of 0.5, the overlay will be drawn with an opacity of 0.25.


| DOSE: T+ 0:00 |
30 mg |
oral |
4-HO-MPT |
(capsule) |
| T+ 0:30 |
joints/cigs |
smoked |
Cannabis |
|
| T+ 2:30 |
1 bowl |
smoked |
Cannabis |
|
250mg of 4-HO-MPT was secured from an online retailer, my experience with Tryptamines is pretty vast and this one had been getting some very good reviews.
30mg of 4-HO-MPT was put inside a gelcap, I chose to go with a higher dose then most of the experiences I've read because I'm usually a hard head when it comes to Tryptamines and I wanted the 'full experience'.
[0:00] swallow gelcap and begin the waiting process, I expected to wait anywhere from 15 to 45 minutes.
[0:06] Alert already? Can't be, chalk it up to placebo effect.
[0:16] A calming feeling falls over me and I sense maybe a hint of stomach discomfort, so little it could have easily have been imagined. Nothing comes of it.
[0:30] Definitely something now, I feel light headed and slightly anxious. There are hints of color changes like my previous experiences with 4-Aco-DMT, except instead of reds and golds it seems to be greens. I'm sitting at my laptop chatting to friends, which is still an easy task. I roll and light a joint to try and accelerate the coming effects.
[0:46] The mental effects have begun, the joint I'm smoking is taking a very long time to smoke because I keep forgetting I'm smoking it and it keeps going out repeatedly in my hand or the ashtray. I feel a sense of overall well-being. Visuals start to creep up on me, shimmering on the sides of my visual field and a distinct shift in color to green.
[0:55] Effects continue to increase and finally I manage to finish the joint I'm smoking. I notice an interesting effect I have not noticed on other Tryptamines, my eyes feel, and the effect on my vision makes it look like they are watering but when I go to wipe them they are completely dry, for some reason this seems very neat to me and I enjoy looking around like this for a couple minutes. The usual restlessness has begun in my legs, along with the all too familiar Tryptamine yawns, but right now anxiousness is the main feeling.
[1:10] By now I feel I am either a ++.5 or +++, but something else has changed, this doesn't feel like friendly territory, the head-space I'm in is somewhat confusing and it's very difficult to chat with my friends so I put on some music and stop paying attention to the computer. I'm going to have to say here the feeling is not all that great, there is next to no euphoria, and I would describe the head-space as more '2c-like' then 'Tryptamine-like'. The visuals are now in full effect and there is some movement and warping, a lot of shimmering in my peripheral vision, nothing like the beautiful sparkling fairy-tale like visuals of 4-Aco-DMT. Closed eye visuals are zero (but this is par for the course for me, on any drug, at any dose, except DMT).
[1:26] Effects seem to have plateaued, but still seem somewhat difficult. The open eye visuals are still boring and I'm in a confused mental state, there is little flowing of ideas and no insight, I start to wonder what all the fuss was about with this one. At this point I just lie back, close my eyes and listen to the music. For me music and Tryptamines go together like nothing else I have ever experienced, I feel like I'm a part of the music and the baselines flow through me like pure cosmic energy. This does not happen on 4-HO-MPT for me, the music is cold and distant, almost distracting but I leave it on anyways and try to get something out of this experience.
[2:00] I'm having a hard time telling how much time has passed, but I definitely feel the drug has started to drop off. I open my eyes and look at the clock.... 30 minutes? That's it? I'm not experiencing much time dilation, it hadn't felt that long since I closed my eyes, the feeling was more of disappointment. 30 minute plateau? I expected this drug to be short acting, but not this short acting, I'm down to a ++ now.
[2:30] +.5 now and I smoke a bowl to try and bring it back up with marginal success. The music stops, but what feels like a slight buzzing in my ears continues... audio hallucinations? That's very interesting... I debate for a couple minutes if it is really audio hallucinations or just my roommate in the next room listening to his music at a volume I can barely hear... even after closely paying attention I can still not figure out which it is, I never did figure it out but the effect seemed to only last maybe 15 minutes.
[3:00] 3 hours after ingestion I'm at a +. The lingering effects can only be described as unpleasant, gone are the visuals and I'm left with a confused/uncomfortable head-space, similar to the last couple hours of an LSD trip.
[5:00] Trying to wait it out is not working and I finally realize the only way to end this is to go to bed, which I do, I toss and turn for about 30 minutes but after that sleep is good and I sleep through the night without any disturbances. In the morning I feel 100%, no hangover at all but also no glow that usually hangs around the day after tripping.
Summary: After reading all the great reviews online and having high hopes for this drug, it leaves me significantly disappointed. What were these people so impressed with who had tried this before me? Did I take too much? I don't think so, the effects were not overwhelming, did the Marijuana have a negative effect? I mix Marijuana with all my psychedelics without issue, so I doubt it. Maybe it's just one of those things, different people get different effects.
The duration is so short as to be useless, which sometimes is OK if you don't feel like tripping for 6+ hours but the difficult mental state the drug leaves me in after the major effects have worn off pretty much negates doing the drug early in the day with the plan to accomplish anything afterwards. No euphoria to speak of at all and boring visuals. Is it worth doing? For a psychonaut looking to just check it off the list, yes. For someone looking for a good time, probably not. The experience wasn't terrible overall and certainly not a 'bad trip' it was just uninteresting and plain with more of a head-trip then I expected. Look elsewhere, there are much better Tryptamines then this one out there.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


If you can see this, React is not working right. This is probably because you're viewing this on your file system instead of a web server.Try running
python -m SimpleHTTPServer 8080and going to http://localhost:8080/.
If you can see this, React is not working right. This is probably because you're viewing this on your file system instead of a web server.Try running
python -m SimpleHTTPServer 8080and going to http://localhost:8080/.


Context
Hypothyroidism occurs when your thyroid gland does not produce enough of the hormone thyroxine.
Our project consists on developing a device that can regulate thyroid hormone imbalances. This device will be designed to sense T3 at skin level through our engineered E.coli, which will contain an intein-mediated protein splicing linked to eGFP expression. A DIY turbidostat will be considered to maintain the cellular culture conditions constant. eGFP luminescence will be electronically sensed and based on this measurement a PDI control system will generate a feedback response so as to self-regulate and restore the normal levels of T3 hormone in the human body. On top of that, a platform with the database will be provided as a tool to help clinicians remotely monitor the levels of hormones.
Hypothyroidism occurs when your thyroid gland does not produce enough of the hormone thyroxine.
AIM: reestablish hormonal imbalance
HOW? by detecting the levels of T3 hormone on the skin (with engineered E.Coli) and delivering T3 precursor in response through the implementation of an external feedback circuit.
Morbi interdum mollis sapien. Sed ac risus. Phasellus lacinia, magna lorem ullamcorper laoreet, lectus arcu.
Ut convallis, sem sit amet interdum consectetuer, odio augue aliquam leo, nec dapibus tortor nibh sed.
Suspendisse mauris. Fusce accumsan mollis eros. Pellentesque a diam sit amet mi ullamcorper vehicula.


[[barChartTitle]]
[[locationTimelineErrorMessage]]
Summary of Provider Attributes
Other Emails & Phones in Ads for [[emailDisplay.email.emailAddress]]
[[mentionsErrorMessage]]
None
[[imageDisplayTitle]]
[[imageErrorMessage]]
[[itineraryTitle]]
[[locationTimelineErrorMessage]]
[[emailDisplay.offerLocation.location.length]] Locations
[[locationErrorMessage]]
{{recordsListTitle}}
[[offersErrorMessage]]


September
26
2011
Introducing the RhoGallery API
Since we launched RhoGallery last year, one of the more tedious parts of the system was consumer and group management. That's why today we're excited to announce the RhoGallery API. Now your gallery consumers and groups can be managed through a simple REST API. We're also releasing a companion ruby client you can find on github.
Getting started with the RhoGallery API from ruby is simple:
$ gem install rhogallery
require 'rhogallery'
Next, find your RhoHub API token on your profile page:
Then, initialize the RhoGallery API with your username and token:
RhoGallery.credentials = {:username => 'lars', :token => '4133af952fe67aba3ec23f73264547398225bad22a23a0000d'}
That's it! Now you can create,read,update or delete RhoGallery consumers and groups:
RhoGallery::Consumer.find_all
=> [{"name":"John Doe","devices":["ios","android","blackberry"],"deactivated_id":null,
"created_at":"2011-01-14T17:49:42Z","cell":"+555555",
"updated_at":"2011-06-21T21:14:12Z",
"tags":"","deleted":false,"password":"f3df5b5853c26e9b664262a5f590df8d",
"login":"john","invited":true,
"email":"john@doe.com","active":true}]
consumer = RhoGallery::Consumer.new({
:login => "some_login", :name => "some name", :cell => "+55555", :email =><EMAIL_ADDRESS>})
=> #<RhoGallery::Consumer:0x1018881a8 @attributes={:login => "some_login", :name => "some name", :cell => "+55555", :email =><EMAIL_ADDRESS>consumer.save
=> true
Complete documentation is available on the RhoGallery API github project.


{% include head.html critical-css="critical-error.css" prefetch-blog=false %}
Opss!?! Seems like you're offline


sshare
A tiny, accessible, Medium-like share dialog. ~2.2kb gzipped.
Github
Try highlighting some text within this paragraph to see the dialog appear. You can also use the arrow keys. When active, the dialog is focused and tabbable. Just kidding, not supported in Firefox or Safari AFAIK, the text loses selection on blur 😭. When inactive, the dialog is removed from the DOM entirely. Pressing ESC, resizing, and the window losing focus will also hide the dialog.
This text is not selectable. The dialog should not appear if text is selected within this paragraph. Pabst single-origin coffee coloring book kombucha, schlitz franzen tilde fashion axe selvage gochujang scenester humblebrag small batch try-hard. Green juice PBR&B offal truffaut pork belly pug synth.
Pabst single-origin coffee coloring book kombucha, schlitz franzen tilde fashion axe selvage gochujang scenester humblebrag small batch try-hard. Green juice PBR&B offal truffaut pork belly pug synth. Lyft godard fanny pack taxidermy pop-up, knausgaard tofu yr freegan portland artisan yuccie.
Pabst single-origin coffee coloring book kombucha, schlitz franzen tilde fashion axe selvage gochujang scenester humblebrag small batch try-hard. Green juice PBR&B offal truffaut pork belly pug synth. Lyft godard fanny pack taxidermy pop-up, knausgaard tofu yr freegan portland artisan yuccie.


This form will display information regarding the Project Type's Name, Submission Category and Budget Calculation type.
What is the Budget Calculation Type field used for?


A tool to teach the basics of commodities trading. This functional paper trader allows for simulated buying and selling of commodities at current daily prices
A tool to help businesses relocate to indianapolis. Uses over 15,000 data points to help find the best location for your business
A google chrome extension that allows users to take breaks for short intervals. After the break is over the url is blocked for a certin period of time


Play chess over Twitter, SMS, iMessage, Slack, email, and most messaging services
Status:
Last Move: None
Paste this URL to your opponent


US and Australian hostages freed in Taliban prisoner swap
Afghan officials say the deal is aimed at restarting talks with the Taliban.
by Arutz Sheva StaffThe Taliban has freed two Western hostages in exchange for three imprisoned senior terrorists, officials and Taliban sources say.
American Kevin King and Australian Timothy Weeks were released three years after being kidnapped outside the American University of Afghanistan in Kabul where they worked as professors. The three militants arrived in Qatar from Afghanistan as part of the swap.
Afghan officials say the deal is aimed at restarting talks with the Taliban. President Ashraf Ghani said last week the decision was "a tough, but important" one and a "humanitarian gesture".
The swap includes Anas Haqqani, a leading figure and fund-raiser in the Haqqani militant group, and two other senior commanders, who had been held in prison by Afghan authorities,
Anas Haqqani's older brother, Sirajuddin, leads the Haqqani network of fighters and is a deputy leader of the Taliban, which has a political office in Qatar.
It is unclear if they have been handed over yet to the Taliban.
The fate of 10 Afghan soldiers who the Taliban are reportedly to free as part of the deal is unclear, the New York Times reported.


Image handling¶
Image Utils¶
-
class
impresso_commons.images.img_utils.
BoxStrategy
¶ An enumeration.
-
impresso_commons.images.img_utils.
get_imgdimensions
(image_data)¶ Returns image height and width
Olive Boxes¶
Functions to support re-computation of Olive box coordinates.
-
impresso_commons.images.olive_boxes.
compute_box
(scale_factor, input_box)¶ Compute IIIF box coordinates of input_box relative to scale_factor.
Parameters: - scale_factor (float) – ratio between 2 images with different dimensions
- input_box (str) – string with 4 values separated by spaces
Returns: new box coordinates
Return type: str
-
impresso_commons.images.olive_boxes.
compute_scale_factor
(img_source_path, img_dest_path)¶ Computes x scale factor bewteen 2 images
Parameters: - img_source_path (full path to the image) – the source image
- img_dest_path (full path to the image) – the destination image
Returns: scale factor
:rtype:float
-
impresso_commons.images.olive_boxes.
convert_box
(input_box)¶ Convert a box with [x y x y] coordinates to [x y w h]
Parameters: input_box (str) – box with 4 coordinates, x and y upper left and lower right Returns: box with 4 coordinates, x and y upper left, width and height Return type: str
-
impresso_commons.images.olive_boxes.
get_iiif_url
(page_id, box)¶ Returns impresso iiif url given a page id and a box
Parameters: - page_id (str) – impresso page id, e.g. EXP-1930-06-10-a-p0001
- box (str (4 coordinate values blank separated)) – iiif box (x, y, w, h)
Returns: iiif url of the box
Return type: str
-
impresso_commons.images.olive_boxes.
get_scale_factor
(issue_dir_path, archive, page_xml, box_strategy, img_source_name)¶ Returns the scale factor in Olive context, given a strategy to choose the source image.
Parameters: - issue_dir_path (str) – the path of the issue
- archive (zipfile.ZipFile) – the zip archive
- page_xml (bytes) – the xml handler of the page
- box_strategy (str) – the box strategy such as found in the info.txt from jp2 folder
- img_source_name – as found in the info.txt from jp2 folder
Returns: the hopefully correct scale factor
Return type: float
Olive box coordinates were computed according to an image source which we have to identify. Image format coverage is different from issue to issue, and we have to devise strategies.
The tif is present and is the file from which the jp2 was converted. Dest: Tif dimensions can therfore be used as jp2 dimensions, no need to read the jp2 file. Source: Image source dimension is present in the page.xml (normally).
In this case the jp2 was acquired using the png with the highest dimension. Dest: It looks that in case of several png, Olive also took the highest for the OCR. It is therefore possible to rely on the resolution indicated in the page xml, which should be the same as our jp2. N.B.: the page width and heigth indicated in the xml do not correspond (usually) to the highest resolution png (there is therefore a discrepancy in Olive file between the tag ‘images_resolution’ on the one hand, and ‘page_width|height’on the other). It seems we can ignore this and rely on the resolution only in the current case. Source: the highest png Here source and dest dimension are equals, the function returns 1.
To be checked if it happens. In this case, there is no choice and Olive OCR and JP2 acquisition should be from the same source => scale factor of 1. Here we do an additional check to see if the page_width|height are the same as the image ones. The only danger is if Olive used another image file and did not provide it.
Same as Case 3, scale factor of 1. Here we do an additional check to see if the page_width|height are the same as the image ones. (there is only one image and things should fit, not like in case 2)
-
impresso_commons.images.olive_boxes.
test
()¶ a testing function


Learning Journal
Code 401 - Advanced Software Development in Python
by Jeffery Ray Russell
View Entry Details
Title, Date
Journal Entry Here
Return to Home Page


Sometimes we don’t care about the direction of a link when identifying matching subgraphs. For example, we might care only that a path exists between two objects, but not about the direction of that path. In such a case, we want to create a query that requires that two objects be linked, but that doesn’t require a specific direction for that link.
An undirected edge in a QGraph query indicates that there must be a link between the corresponding database objects without concern for the direction of that link. To see how this affects query results, let’s look at the following sample database and query. Figure 2.8 shows a fragment of a database containing information about Web pages and their connections.
Figure 2.9 is a simple query designed to find sets of two linked objects. Because we don’t care whether the link goes from A to B or vice versa, we use an undirected edge to represent that connection.
The results of running this query on the above database fragment are shown in Figure 2.10.
Ignoring link direction lets this query
match any pair of objects as long as those objects have a link
connecting them. As we saw before, QGraph finds as many
matches as it can, including subgraphs that duplicate the elements of
another match but that map those database elements to different query
elements.
In this example, we have two subgraphs that include the
linked objects home.html and
page1.html. In one subgraph,
home.html matches vertex
A; in the other it matches vertex
B. The link matching edge
X always follows its direction in the
database (from home.html to
page1.html), even though it points from
A to B in
one subgraph and from B to
A in the other.


--- layout: post title: Rough sketch date: '2018-06-05T14:52:49+02:00' categories: - Storyboards - Horses - Sketches picture_url: https://film-Storyboards.tumblr.com/post/174606188816 ---


What you do today can improve all your tomorrows.
In order to succeed, we must first believe that we can.
Aim for the moon. If you miss, you may hit a star.
Don't watch the clock. Do what it does and keep going.
If you can dream it, you can do it.
it does not matter you go, as long as you do not stop.
Yearlong supply of chipotle burritos
Get a reimbursment for any hackathon you want to got to in the continental US or Canada
Quadcopters? Skydiving? A trip to the moon? What could it be?
A cool Star Wars droid
$100 Newegg.com gift cards for each group member
Prize bags on prize bags on prize bags.
Automatic Interview for the KPCB Fellowship Program
A brand new Surface Pro for each group member
A brand new Surface Pro tablet for each group member
One year for each of Wolfram Programming Cloud Developer Level, Wolfram Mathematica Online, and Wolfram|Alpha Pro for the best 3 uses of Wolfram technology, plus $300 to be split amongst the best team
Soylent
Get reviewed for the prestigious Thiel Fellowship
3-5 grants from 1517 to help you develop your hackathon
Footsie pajamas of your favorite cartoon characters


knowledgegraphupdater package¶
knowledgegraphupdater.kgupdater module¶
-
class
knowledgegraphupdater.kgupdater.
KnowledgeGraphUpdater
(auto_update=None)¶ Bases:
object
A Knowledge Graph Updater, which consists of all functionalities related to updating the knowledge graph.
- Parameters
auto_update (bool) – whether the knowledge graph will be updated automatically once triples are extracted, or wait for user confirmation
-
delete_all_knowledge_from_article
(article_url)¶ Delete triples that are extracted from an article, from the knowledge graph. Triples from the articles must have been extracted beforehand and stored in DB.
- Parameters
article_url (str) – URL of the article source
-
delete_article_pending_knowledge
(article_url, triples)¶ Deletes pending article triples, that have been added to the knowledge graph, from the database.
- Parameters
article_url (str) – URL of the article source
triples (list) – list of pending triples to be deleted
-
delete_knowledge
(triples)¶ Remove triples from knowledge graph.
- Parameters
triples (list) – list of triples (in the form of dictionaries)
-
extract_new_article
(url, extraction_scope='noun_phrases', kg_auto_update=False)¶ Scrape an article given the URL and extract the triples from the article.
- Parameters
url (str) – URL of article whose triples are going to be extracted
extraction_scope (str) – The scope of the extraction, deciding whether it should include only relations between ‘named_entities’, ‘noun_phrases’, or ‘all.
kg_auto_update (bool) – whether the non-conflicting triples are added to the knowledge graph or not.
-
get_all_articles
()¶ Returns all articles’ URLs, headlines, and dates, in the form of dictionaries.
- Returns
list of dictionaries of articles
- Return type
list
-
get_all_articles_knowledge
()¶ Returns all triples that have been extracted from all scraped articles.
- Returns
list of all triples extracted from all articles
- Return type
list
-
get_all_extracted_articles
()¶ Returns all articles’ URLs, headlines, and dates, whose triples have been extracted, in the form of dictionaries.
- Returns
list of dictionaries of articles
- Return type
list
-
get_all_pending_knowledge
()¶ Returns all pending triples (that are not currently in the knowledge graph) for all scraped articles.
- Returns
list of all pending triples extracted from all articles
- Return type
list
-
get_all_unresolved_corefering_entities
()¶ Returns all unresolved corefering entities extracted from articles.
- Returns
list of unresolved corefering entities
- Return type
list
-
get_article_knowledge
(article_url)¶ Returns all triples of that have been extracted from the specified article, regardless of whether the triple has been added to the knowledge graph or not.
- Parameters
article_url (str) – URL of the article source
- Returns
list of triples extracted from the article if exist, or None
- Return type
list or None
-
get_article_pending_knowledge
(article_url)¶ Returns all pending triples (that are not currently in the knowledge graph) for the specified article.
- Parameters
article_url (str) – URL of the article source
- Returns
list of pending triples extracted from the article if exist, or None
- Return type
list or None
-
get_entity
(subject)¶ Returns all triples that has the subject parameter as the subject.
- Parameters
subject (str) – subject in DBpedia format
- Returns
list of Triples
- Return type
list
-
get_knowledge
(subject, relation, objects=None)¶ Returns triple from the knowledge graph that has the given conditions. If objects are given, it will return back the triple if it exist in the knowledge graph.
- Parameters
subject (str) – subject of the triple in DBpedia format
relation (str) – relation of the triple in DBpedia format
objects (list or str) – (list) of objects of the triple in DBpedia format, this parameter is optional
- Returns
list of triples
- Return type
list
-
insert_all_nonconflicting_knowledge
(article_url)¶ Insert non-conflicting triples of an article to the knowledge graph.
- Parameters
article_url (str) – URL of the article source
-
insert_articles_knowledge
(articles_triples)¶ Insert triples that are related to an article to the knowledge graph. If the triple has conflict, mark the conflict as ‘added’ in the db. If the triple doesn’t exist on db, add the triple to the db.
- Parameters
articles_triples (dict) – dictionary of article triples
-
insert_entities_equality
(entity_a, entity_b)¶ Resolve two entities as the same.
- Parameters
entity_a (str) – a DBpedia resource/entity (must be prepended by “http://dbpedia.org/resource/”)
entity_b (str) – a DBpedia resource/entity (must be prepended by “http://dbpedia.org/resource/”)
-
insert_knowledge
(triple, check_conflict)¶ Insert triple to the knowledge graph.
- Parameters
triple (dict) – the triple to be inserted to the knowledge graph
check_conflict (bool) – whether it should check for conflicts first or not.
- Returns
list of conflicts if there are conflicts and check_conflict is True, None otherwise
- Return type
list or None
-
update_missed_knowledge
(kg_auto_update=None, extraction_scope=None)¶ Extract triples from stored articles whose triples has not been extracted yet, and save the triples to the DB. If the auto_update mode is active, the non-conflicting triples are added automatically to the knowledge graph.
- Parameters
kg_auto_update (bool) – an optional parameter that sets whether the non-conflicting triples are added to the knowledge graph or not. This will only matter if the auto_update field is False. If the auto_update field is already True, then this parameter will not be looked upon.
extraction_scope (str) – The scope of the extraction, deciding whether it should include only relations between ‘named_entities’, ‘noun_phrases’, or ‘all.


I want to make things
that make a difference.
About
Mission-driven full stack developer with a passion for thoughtful UI design, collaboration, and teaching.
Gaby is a highly experienced and creative coder. He is spontaneous in his decisions and believes in body asleep mind awake. He would offer his help to any developer who in need for this help. If you give him a pc and put Pink Floyd music, he will write the best code.
As a bug fixer and a mentor, He intend to use his obsessive attention to detail, his unequivocal love for making things, and his mission-driven work ethic to literally change the world.
I want to do things that make a difference.
Experience
Free school of programming for people who have a passion for digital and want to build a career in technology but cannot pursue a traditional university education.
- Mentored 2 classes of total of 45 students to become full stack developers
- Created exercises for teaching Laravel and Front-end API integration
- Mentored and helped students on how to think about the problem and how to learn
- Planned and managed multiple internal web application
Digital / Tech studio which focuses on designing and delivering digital products for clients across Europe and MENA region.
- Take briefs from clients
- Plan project schedules
- Secure linux servers and deploy projects
- Highlight any issues and strive to resolve them
- Verify, prioritize, and fix software bugs
- Build new features
- Deployed Redmine on private server
- Stack: PHP / WordPress / React / SQL / Javascript / Sass
American Digital/Online Marketing Agency
Develop Core Product
- Verify, prioritize, and fix software bugs
- Build new features.
- Stack: PHP / WordPress / SQL / Coffeescript / jQuery / Sass / Hybrid App
Accomplishments
- Developed a mobile app using Onsen UI and Monaca
- Built a quiz game for a church with admin panel using vanilla PHP
- Introduced to JIRA software and Agile methodology
Projects
Garder Le Cap is a new challenge for Gwenael.
This time, he not only wants to dedicate his effort to the war wounded, but goes further and invites all the sportsmen and women around the world to join him by being among the «other heroes» of this adventure, by dedicating their event or their sporting challenge to this same great cause. He now embodies the motto of his former regiment, the 1st RPIMa: WHO DARE WINS!.BOT (Building Opportunities Today) is a socially responsible outsourcing platform.
BOT offers digital opportunities to economically marginalized women and youth whom reside in all parts of Lebanon.Codi Tech is a free school of programming for people who have a passion for digital
and want to build a career in technology but cannot pursue a traditional university education.A 35 year old company involved in the importation and distribution of spirits with soul.
- Developed the website based on UI design
- Selected a theme that has a similar design and build on it
- Developed a visual images system
A unique blend of Yerba Mate and Sicilian Lemons.
- Maintained the website and server plus adding new features
- Continued using Sage theme and Bedrock boilerplate
A global UNICEF initiative bringing together diverse groups of young professionals.
- Maintained two website and server plus adding new features
- Made the website Adapt the GDPR rules.
- Maintained a WordPress multi-site
A venture capital and investment management firm with a focus on frontier markets.
- Transferred the website from
- Made the website Adapt the GDPR rules.
- Maintained a WordPress multi-site
commercial company specializing primarily in marketing veterinary drugs. vaccines and poultry equipment.
- Front-end development in Bootstrap
- Contributed creative strategy and UX
- Worked with MVC framework, Laravel server
Open door depending on user picture. Automate and control who can enter your house from mobile, and
Restaurant website to show of menu item and facilitate the customers experience.
- Front-end development in Bootstrap
- Designed and developed the look and feel of the website
- Worked with MVC framework, Laravel server


GNUPOD_OTGSYNC(1) User Commands GNUPOD_OTGSYNC(1) NAME gnupod_otgsync - helper script for On-The-Go stuff SYNOPSIS gnupod_otgsync [OPTION]... DESCRIPTION Helper script for On-The-Go stuff. Not for humans, called by GNUpod. AUTHOR Written by Adrian Ulrich REPORTING BUGS Report bugs to<EMAIL_ADDRESS>COPYRIGHT Copyright © Adrian Ulrich This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. SEE ALSO The full documentation for gnupod is maintained as a Texinfo manual. If the info program and GNUpod are properly installed at your site, the com‐ mand info gnupod should give you access to the complete manual. gnupod_otgsync 1.00 June 2005 GNUPOD_OTGSYNC(1)


ShakenOL_Floquet package¶
Submodules¶
ShakenOL_Floquet.FloquetEffectiveHamiltonian module¶
ShakenOL_Floquet.FloquetH_Approx module¶
ShakenOL_Floquet.Floquet_Engineering_OL_PositionRep module¶
ShakenOL_Floquet.OpticalLatticeModule module¶
Created on Mon May 18 20:03:38 2020
@author: german
-
class
ShakenOL_Floquet.OpticalLatticeModule.
OpticalLattice
(V=1.0, phi_x=0, omega=1.0)[source]¶ Bases:
object
ShakenOL_Floquet.cli module¶
ShakenOL_Floquet.planewavesorthonormality module¶
Created on Sat May 23 06:47:12 2020
@author: german
ShakenOL_Floquet.scipy_odes_demo module¶
ShakenOL_Floquet.setup module¶
ShakenOL_Floquet.versioneer module¶
The Versioneer¶
- like a rocketeer, but for versions!
- https://github.com/warner/python-versioneer
- Brian Warner
- License: Public Domain
- Compatible With: python2.6, 2.7, 3.2, 3.3, 3.4, and pypy
- [![Latest Version]
(https://pypip.in/version/versioneer/badge.svg?style=flat) ](https://pypi.python.org/pypi/versioneer/) * [![Build Status] (https://travis-ci.org/warner/python-versioneer.png?branch=master) ](https://travis-ci.org/warner/python-versioneer)
This is a tool for managing a recorded version number in distutils-based python projects. The goal is to remove the tedious and error-prone “update the embedded version string” step from your release process. Making a new release should be as easy as recording a new tag in your version-control system, and maybe making new tarballs.
## Quick Install
- pip install versioneer to somewhere to your $PATH
- add a [versioneer] section to your setup.cfg (see below)
- run versioneer install in your source tree, commit the results
## Version Identifiers
Source trees come from a variety of places:
- a version-control system checkout (mostly used by developers)
- a nightly tarball, produced by build automation
- a snapshot tarball, produced by a web-based VCS browser, like github’s “tarball from tag” feature
- a release tarball, produced by “setup.py sdist”, distributed through PyPI
Within each source tree, the version identifier (either a string or a number, this tool is format-agnostic) can come from a variety of places:
- ask the VCS tool itself, e.g. “git describe” (for checkouts), which knows about recent “tags” and an absolute revision-id
- the name of the directory into which the tarball was unpacked
- an expanded VCS keyword ($Id$, etc)
- a _version.py created by some earlier build step
For released software, the version identifier is closely related to a VCS tag. Some projects use tag names that include more than just the version string (e.g. “myproject-1.2” instead of just “1.2”), in which case the tool needs to strip the tag prefix to extract the version identifier. For unreleased software (between tags), the version identifier should provide enough information to help developers recreate the same tree, while also giving them an idea of roughly how old the tree is (after version 1.2, before version 1.3). Many VCS systems can report a description that captures this, for example git describe –tags –dirty –always reports things like “0.7-1-g574ab98-dirty” to indicate that the checkout is one revision past the 0.7 tag, has a unique revision id of “574ab98”, and is “dirty” (it has uncommitted changes.
The version identifier is used for multiple purposes:
- to allow the module to self-identify its version: myproject.__version__
- to choose a name and prefix for a ‘setup.py sdist’ tarball
## Theory of Operation
Versioneer works by adding a special _version.py file into your source tree, where your __init__.py can import it. This _version.py knows how to dynamically ask the VCS tool for version information at import time.
_version.py also contains $Revision$ markers, and the installation process marks _version.py to have this marker rewritten with a tag name during the git archive command. As a result, generated tarballs will contain enough information to get the proper version.
To allow setup.py to compute a version too, a versioneer.py is added to the top level of your source tree, next to setup.py and the setup.cfg that configures it. This overrides several distutils/setuptools commands to compute the version when invoked, and changes setup.py build and setup.py sdist to replace _version.py with a small static file that contains just the generated version data.
## Installation
First, decide on values for the following configuration variables:
VCS: the version control system you use. Currently accepts “git”.
style: the style of version string to be produced. See “Styles” below for details. Defaults to “pep440”, which looks like TAG[+DISTANCE.gSHORTHASH[.dirty]].
versionfile_source:
A project-relative pathname into which the generated version strings should be written. This is usually a _version.py next to your project’s main __init__.py file, so it can be imported at runtime. If your project uses src/myproject/__init__.py, this should be src/myproject/_version.py. This file should be checked in to your VCS as usual: the copy created below by setup.py setup_versioneer will include code that parses expanded VCS keywords in generated tarballs. The ‘build’ and ‘sdist’ commands will replace it with a copy that has just the calculated version string.
This must be set even if your project does not have any modules (and will therefore never import _version.py), since “setup.py sdist” -based trees still need somewhere to record the pre-calculated version strings. Anywhere in the source tree should do. If there is a __init__.py next to your _version.py, the setup.py setup_versioneer command (described below) will append some __version__-setting assignments, if they aren’t already present.
versionfile_build:
Like versionfile_source, but relative to the build directory instead of the source directory. These will differ when your setup.py uses ‘package_dir=’. If you have package_dir={‘myproject’: ‘src/myproject’}, then you will probably have versionfile_build=’myproject/_version.py’ and versionfile_source=’src/myproject/_version.py’.
If this is set to None, then setup.py build will not attempt to rewrite any _version.py in the built tree. If your project does not have any libraries (e.g. if it only builds a script), then you should use versionfile_build = None and override distutils.command.build_scripts to explicitly insert a copy of versioneer.get_version() into your generated script.
tag_prefix:
a string, like ‘PROJECTNAME-‘, which appears at the start of all VCS tags. If your tags look like ‘myproject-1.2.0’, then you should use tag_prefix=’myproject-‘. If you use unprefixed tags like ‘1.2.0’, this should be an empty string.
parentdir_prefix:
a optional string, frequently the same as tag_prefix, which appears at the start of all unpacked tarball filenames. If your tarball unpacks into ‘myproject-1.2.0’, this should be ‘myproject-‘. To disable this feature, just omit the field from your setup.cfg.
This tool provides one script, named versioneer. That script has one mode, “install”, which writes a copy of versioneer.py into the current directory and runs versioneer.py setup to finish the installation.
To versioneer-enable your project:
1: Modify your setup.cfg, adding a section named [versioneer] and populating it with the configuration values you decided earlier (note that the option names are not case-sensitive):
[versioneer] VCS = git style = pep440 versionfile_source = src/myproject/_version.py versionfile_build = myproject/_version.py tag_prefix = “” parentdir_prefix = myproject- ````
2: Run versioneer install. This will do the following:
- copy versioneer.py into the top of your source tree
- create _version.py in the right place (versionfile_source)
- modify your __init__.py (if one exists next to _version.py) to define __version__ (by calling a function from _version.py)
- modify your MANIFEST.in to include both versioneer.py and the generated _version.py in sdist tarballs
versioneer install will complain about any problems it finds with your setup.py or setup.cfg. Run it multiple times until you have fixed all the problems.
3: add a import versioneer to your setup.py, and add the following arguments to the setup() call:
version=versioneer.get_version(), cmdclass=versioneer.get_cmdclass(),
4: commit these changes to your VCS. To make sure you won’t forget, versioneer install will mark everything it touched for addition using git add. Don’t forget to add setup.py and setup.cfg too.
## Post-Installation Usage
Once established, all uses of your tree from a VCS checkout should get the current version string. All generated tarballs should include an embedded version string (so users who unpack them will not need a VCS tool installed).
If you distribute your project through PyPI, then the release process should boil down to two steps:
- 1: git tag 1.0
- 2: python setup.py register sdist upload
If you distribute it through github (i.e. users use github to generate tarballs with git archive), the process is:
- 1: git tag 1.0
- 2: git push; git push –tags
Versioneer will report “0+untagged.NUMCOMMITS.gHASH” until your tree has at least one tag in its history.
## Version-String Flavors
Code which uses Versioneer can learn about its version string at runtime by importing _version from your main __init__.py file and running the get_versions() function. From the “outside” (e.g. in setup.py), you can import the top-level versioneer.py and run get_versions().
Both functions return a dictionary with different flavors of version information:
- [‘version’]: A condensed version string, rendered using the selected style. This is the most commonly used value for the project’s version string. The default “pep440” style yields strings like 0.11, 0.11+2.g1076c97, or 0.11+2.g1076c97.dirty. See the “Styles” section below for alternative styles.
- [‘full-revisionid’]: detailed revision identifier. For Git, this is the full SHA1 commit id, e.g. “1076c978a8d3cfc70f408fe5974aa6c092c949ac”.
- [‘dirty’]: a boolean, True if the tree has uncommitted changes. Note that this is only accurate if run in a VCS checkout, otherwise it is likely to be False or None
- [‘error’]: if the version string could not be computed, this will be set to a string describing the problem, otherwise it will be None. It may be useful to throw an exception in setup.py if this is set, to avoid e.g. creating tarballs with a version string of “unknown”.
Some variants are more useful than others. Including full-revisionid in a bug report should allow developers to reconstruct the exact code being tested (or indicate the presence of local changes that should be shared with the developers). version is suitable for display in an “about” box or a CLI –version output: it can be easily compared against release notes and lists of bugs fixed in various releases.
The installer adds the following text to your __init__.py to place a basic version in YOURPROJECT.__version__:
from ._version import get_versions __version__ = get_versions()[‘version’] del get_versions
## Styles
The setup.cfg style= configuration controls how the VCS information is rendered into a version string.
The default style, “pep440”, produces a PEP440-compliant string, equal to the un-prefixed tag name for actual releases, and containing an additional “local version” section with more detail for in-between builds. For Git, this is TAG[+DISTANCE.gHEX[.dirty]] , using information from git describe –tags –dirty –always. For example “0.11+2.g1076c97.dirty” indicates that the tree is like the “1076c97” commit but has uncommitted changes (“.dirty”), and that this commit is two revisions (“+2”) beyond the “0.11” tag. For released software (exactly equal to a known tag), the identifier will only contain the stripped tag, e.g. “0.11”.
Other styles are available. See details.md in the Versioneer source tree for descriptions.
## Debugging
Versioneer tries to avoid fatal errors: if something goes wrong, it will tend to return a version of “0+unknown”. To investigate the problem, run setup.py version, which will run the version-lookup code in a verbose mode, and will display the full contents of get_versions() (including the error string, which may help identify what went wrong).
## Updating Versioneer
To upgrade your project to a new release of Versioneer, do the following:
- install the new Versioneer (pip install -U versioneer or equivalent)
- edit setup.cfg, if necessary, to include any new configuration settings indicated by the release notes
- re-run versioneer install in your source tree, to replace SRC/_version.py
- commit any changed files
### Upgrading to 0.15
Starting with this version, Versioneer is configured with a [versioneer] section in your setup.cfg file. Earlier versions required the setup.py to set attributes on the versioneer module immediately after import. The new version will refuse to run (raising an exception during import) until you have provided the necessary setup.cfg section.
In addition, the Versioneer package provides an executable named versioneer, and the installation process is driven by running versioneer install. In 0.14 and earlier, the executable was named versioneer-installer and was run without an argument.
### Upgrading to 0.14
0.14 changes the format of the version string. 0.13 and earlier used hyphen-separated strings like “0.11-2-g1076c97-dirty”. 0.14 and beyond use a plus-separated “local version” section strings, with dot-separated components, like “0.11+2.g1076c97”. PEP440-strict tools did not like the old format, but should be ok with the new one.
### Upgrading from 0.11 to 0.12
Nothing special.
### Upgrading from 0.10 to 0.11
You must add a versioneer.VCS = “git” to your setup.py before re-running setup.py setup_versioneer. This will enable the use of additional version-control systems (SVN, etc) in the future.
## Future Directions
This tool is designed to make it easily extended to other version-control systems: all VCS-specific components are in separate directories like src/git/ . The top-level versioneer.py script is assembled from these components by running make-versioneer.py . In the future, make-versioneer.py will take a VCS name as an argument, and will construct a version of versioneer.py that is specific to the given VCS. It might also take the configuration arguments that are currently provided manually during installation by editing setup.py . Alternatively, it might go the other direction and include code from all supported VCS systems, reducing the number of intermediate scripts.
## License
To make Versioneer easier to embed, all its code is hereby released into the public domain. The _version.py that it creates is also in the public domain.
-
ShakenOL_Floquet.versioneer.
git_pieces_from_vcs
(tag_prefix, root, verbose, run_command=<function run_command>)[source]¶


DELINEATE: Species Delimitation¶
DELINEATE is a package that implements the DELINEATE approach to species delimitation (Sukumaran, Holder, and Knowles, 2020). This approach integrates an explicit model of speciation into the multipopulation coalescent (also known as the “censored” or “multispecies” coalescent) model, to organize a set of population lineages sampled from one or more species into mutually-exclusive and jointly-comprehensive subsets, where each subset of population lineages represents a distinct species.
DELINEATE requires Python 3.7 or greater to run. Package and dependency management is greatly simplified if pip is installed as well.
Installation¶
Providing you have all the system requirements (see the installation guide), you can use the following command to install or upgrade DELINEATE directly from the package repositories:
python3 -m pip install -U git+https://github.com/jeetsukumaran/delineate.git
Documentation¶
- Installation
- Basic Concepts
- Quick Start
- A Complete Worked Example: Lionepha
- (Software Prerequisites)
- (Data Files)
- Introduction
- Background
- Stage I: Identification of Population Units using the Multipopulation Coalescent Model
- Stage II. Generating the (Multipopulation Coalescent, Ultrametric) Phylogeny of Populations
- Stage III. Assignment of Known vs. Unknown Species Identities
- Stage IV. Delimitation of Species Units
- Examination and Interpretation of the Results


Understanding PDF in iOS Deeply
Operating with PDF in iOS is really low-level task. It is not just using some built-in features of iOS to create your own product. Indeed, it requires intensive knowledge at very low iOS layer and at least basic PDF definition. This post tends to supply some aspects of processing PDF in iOS which aims to help developers easy to win this hard job.
PDF Specification
#### Basic Definitions (mixed up Typography) ##### Leading Leading is space between two lines. According to Wikipedia, In typography, leading /ˈlɛdɪŋ/ refers to the distance between the baselines of successive lines of type. However, there are more than one leading definition. The below image shows you 3 ways leading is defined.
X-height
X-height describes height of X character in a font collection as the image below demonstrates.
Descender and Ascender
In typography, Descender is a term refer to the part which is below word baseline (known as the underline of the word) and *Ascender** is the part of charater which is above the meanline. For example, in the image above, descender is a part from baseline to descent line (known as beardline), ascender is a part from meanline to ascender line (known as topline). Height of them are descent, ascent respectively. That means the height of a character is sum of three part: descent, x-height and ascent.
Font size
Font size is measuared by distance from ascent line to descent line. In general term, point is unit for desmonstrating font size which is equal to 1/72 inch per point (1 point = 1/72 inch. That means Arial 12pt = 1/6 inch = 4.3 mm). In PDF specification, Font information is usually in Resources dictionary which contains a Font dictionary. We can open PDF file by a text editor and search for Resources keyword to locate Font description.
Glyph
( Need more study )
Font
##### Font type (in PDF scope) There are some ways to divide font type into bucket. We can base on how a font be organized or how a font can be drawn.
If using font structure, we have two kinds:
- Simple Font
- Composite Font
Only Type 0
is composite font. Others are of simple font, included: Type 1
, Type 3
, TrueType
, CIDFont
.
Or if using drawing method, we also have two buckets:
- Bitmap-based font: Type 3
- Outline font (Raster font): Type 0
, Type 1
, TrueType
, CIDFont
.
Font and CIDFont
Font is a collection of glyphs. CIDFont is also a set of glyphs. But, CIDFont is only used as a component of Type 0 font, cannot be used directly like other Fonts .
Descendant Font
is CIDFont, Type 0 will use glyphs of descendant font to draw characters.
CIDToGIDMap
When CIDToGIDMap is Identity:
Font Symbolic
##### Font program
Font dictionary
#####
#
Reading PDF Flow
### PDF Operator PDF uses operators to determine what kind of text will be shown based on pre-defined format. However, it is so complex to understand how pdf is organized.
BT % Begin text object
/F1 1 Tf % Set text font and size
64 0 0 64 7.1771 2.4414 Tm % Set text matrix
0 Tc % Set character spacing
0 Tw % Set word spacing
ET
In the above block, you can see Tf, Tm, Tc, Tw are four operators which define font (and font size), text matrix, character spacing, word spacing are used. In clearly words, if you want to read and do some processing tasks relating to pdf content such as highlighting word or bolding word, you must handle with as much as possible operators to get exactly text block information for making your job be accurate as your desire. You may need to check operator table to know more about pdf operators.
Scanner Stack
Stack is data structure to store PDF Objects when PDF file is being read. Prefix strategy is the method to read objects from object stack. Below is an example.
BT % Begin text object
/F1 1 Tf % Set text font and size
64 0 0 64 7.1771 2.4414 Tm % Set text matrix
0 Tc % Set character spacing
0 Tw % Set word spacing
ET
Stack will be:
BT -> /F1 -> 1 -> Tf(operator) -> 64 -> 0 -> 0 -> 64 -> 7.1771 -> 2.4414 -> Tm(operator) -> … -> ET (top of the stack).
Getting PDF Objects from Scanner Stack
In iOS, you should implement some callback functions for several important operators to help scanner can recognize what sort of value must get for each operator when it scans through the pdf document. Fortunately, iOS supports us by providing Pop functions to get our desire objects when scanner meets a specific operator. Therefore, we must know clearly the format of each operator. For example, in the above block, Tf is font operator, when the value is Tf, scanner knows this operator and pop two most recent values: /F1 and 1 by two functions: CGPDFScannerPopName and CGPDFScannerPopNumber.
The following list displays Pop functions supplied by iOS. - CGPDFScannerPopObject - CGPDFScannerPopBoolean - CGPDFScannerPopInteger - CGPDFScannerPopNumber to get number, for example: get font’s size - CGPDFScannerPopName to get name, for example: get font’s name - CGPDFScannerPopString to get content string - CGPDFScannerPopArray - CGPDFScannerPopDictionary - CGPDFScannerPopStream
Copy from CGPDFScanner Reference
Parsing PDF Content
To parse exactly PDF content, we need to read all plain PDF information. However, except some pure control data, all streams in PDF are usually represented in compressed format. That means we need to decompress them to get the pure text. The compress algorithm is given clearly in stream description, for example:
12 0 obj
<< /Length 13 0 R /N 3 /Alternate /DeviceRGB /Filter /FlateDecode >>
/FlateDecode lets us that the encode algorithm is Flate and should use this algorithm to decode the stream.
As a standard, almost PDF creator use Flate Encoder to compress stream. Therefore, to decode that data, we can use some tools. In my experience, I usually use PDFToolkit (Server version) like this:
$ pdftk compressedPDF.pdf output decompressedPDF.pdf uncompress
Then, use less
command to see decoded text:
$ less decompressedPDF.pdf
Do that, now we can see pure PDF text specification. Hence, we can parse PDF content based on PDF Operators Specification.
By a reason that PDF stream (text content, image content, …) is usually compressed for decreasing data size, PDF Reader and/or PDF Parser must uncompresses that stream before rendering or parsing. Almost PDF Document stream is decoded using FlateDecode filter which is based on the zlib/deflate algorithm. For getting plain text to analyze, we can use some tools to convert compressed PDF to uncompressed PDF. In my case, I utilize pdftk with the command:
pdftk compressedPDF.pdf output uncompressedPDF.pdf uncompress
Besides that, someone suggests itextrups which is laid on iText library (written in Java). See the discussion here.
Processing PDF content
#### Get Text Rect Get Text Rect
CGPDFArrayRef rectArray;
if(CGPDFDictionaryGetArray(annotDict, "Rect", &rectArray)) {
//continue;
CGPDFReal coords[4];
for( int k = 0; k < arrayCount; ++k ) {
CGPDFObjectRef rectObj;
if(!CGPDFArrayGetObject(rectArray, k, &rectObj)) {
continue;
}
CGPDFReal coord;
if(!CGPDFObjectGetValue(rectObj, kCGPDFObjectTypeReal, &coord)) {
continue;
}
coords[k] = coord;
}
}
//blx,bly,trx,try>tlx,tly,w,h
CGRect rect = CGRectMake(coords[0],coords[3],coords[2]-coords[0],coords[3]-coords[1]);
Some add-on elements for showing PDF
### Annotation
Linking Media/Web Elements
Performing with Font and Charset Encoding
Problem with Identity-H Encoding
Identity-H is a encoding which is used by Google Docs (when you export your docs to PDF file).
References
#### For starter - Very detail introduction for reading PDF Content. Just paraphase the PDF specification but truly understandable. It is the best for newbie.. The backup file is at here.
-
PDF Specification, v.1.7. HTML form of PDF Specification v.1.7, 2006. I found that it is very clear and easy to focus rather than read a PDF version.
Advance
-
Displaying and Searching PDF Content on iPhone from scratch, for the first time do with PDF in iOS. Really helpful and full of information.
-
Cocoa China docs. Re-write Apple đocs in easy follow way. More information than original Apple docs.
-
Parsing table of contents by PSPDFKit creator.
Open Sources for iOS
- PDF Reader and PDFViewer by Julius Oklamcak.
- DTPDF - Wrapper for Scanning PDF by Oliver Drobnik.
- PDFKitten - A search and highlight library by Marcus Hedenström.
- FastPdfKit
Open sources for other language
-
Mozilla PDF. Good but there are some mistakes when parses complex tables. Take a test with this doc and this.
-
PDF Minner. Great pdf parser but still has mistakes with PDF generated by Google Docs which using composite font and Identity-H Encoding. Give a try with this document (its output is at here).
-
mupdf. This library is used by librelio on Android version.
-
PDFBox. An Apache opensource which supports fully PDF tasks including text extraction, filling, splitting, merging, signing, printing and PDF/A Validation. It’s written by Java.
-
iText. Also using Java as mainly language. Support backend and has an Android porting version.
blog comments powered by Disqus


Deep Deterministic Policy Gradient¶
Actions space: Continuous
References: Continuous control with deep reinforcement learning
Network Structure¶
Algorithm Description¶
Choosing an action¶
Pass the current states through the actor network, and get an action mean vector \(\mu\). While in training phase, use a continuous exploration policy, such as the Ornstein-Uhlenbeck process, to add exploration noise to the action. When testing, use the mean vector \(\mu\) as-is.
Training the network¶
Start by sampling a batch of transitions from the experience replay.
To train the critic network, use the following targets:
\(y_t=r(s_t,a_t )+\gamma \cdot Q(s_{t+1},\mu(s_{t+1} ))\)
First run the actor target network, using the next states as the inputs, and get \(\mu (s_{t+1} )\). Next, run the critic target network using the next states and \(\mu (s_{t+1} )\), and use the output to calculate \(y_t\) according to the equation above. To train the network, use the current states and actions as the inputs, and \(y_t\) as the targets.
To train the actor network, use the following equation:
\(\nabla_{\theta^\mu } J \approx E_{s_t \tilde{} \rho^\beta } [\nabla_a Q(s,a)|_{s=s_t,a=\mu (s_t ) } \cdot \nabla_{\theta^\mu} \mu(s)|_{s=s_t} ]\)
Use the actor’s online network to get the action mean values using the current states as the inputs. Then, use the critic online network in order to get the gradients of the critic output with respect to the action mean values \(\nabla _a Q(s,a)|_{s=s_t,a=\mu(s_t ) }\). Using the chain rule, calculate the gradients of the actor’s output, with respect to the actor weights, given \(\nabla_a Q(s,a)\). Finally, apply those gradients to the actor network.
After every training step, do a soft update of the critic and actor target networks’ weights from the online networks.
-
class
rl_coach.agents.ddpg_agent.
DDPGAlgorithmParameters
[source]¶ - Parameters
num_steps_between_copying_online_weights_to_target – (StepMethod) The number of steps between copying the online network weights to the target network weights.
rate_for_copying_weights_to_target – (float) When copying the online network weights to the target network weights, a soft update will be used, which weight the new online network weights by rate_for_copying_weights_to_target
num_consecutive_playing_steps – (StepMethod) The number of consecutive steps to act between every two training iterations
use_target_network_for_evaluation – (bool) If set to True, the target network will be used for predicting the actions when choosing actions to act. Since the target network weights change more slowly, the predicted actions will be more consistent.
action_penalty – (float) The amount by which to penalize the network on high action feature (pre-activation) values. This can prevent the actions features from saturating the TanH activation function, and therefore prevent the gradients from becoming very low.
clip_critic_targets – (Tuple[float, float] or None) The range to clip the critic target to in order to prevent overestimation of the action values.
use_non_zero_discount_for_terminal_states – (bool) If set to True, the discount factor will be used for terminal states to bootstrap the next predicted state values. If set to False, the terminal states reward will be taken as the target return for the network.


|
Binding of Isaac - Afterbirth+ Lua Reference/Guide
|
Public Member Functions | |
| Vector (float, float) | |
| Normalize () | |
| Vector | Normalized () |
| float | Dot (Vector second) |
| float | Cross (Vector second) |
| Vector | Lerp (Vector first, Vector second, float t) |
| float | Distance (Vector first, Vector second) |
| float | DistanceSquared (Vector first, Vector second) |
| Vector | Rotated (float AngleDegrees) |
| float | GetAngleDegrees () |
| Resize (float NewLength) | |
| Vector | Resized (float NewLength) |
| Clamp (float MinX, float MinY, float MaxX, float MaxY) | |
| Vector | Clamped (float MinX, float MinY, float MaxX, float MaxY) |
| float | Length () |
| float | LengthSquared () |
| Vector | __add (Vector Right) |
| Vector | __sub (Vector Right) |
| Vector | __mul (float Modifier) |
| Vector | __div (float Modifier) |
| Vector | __unm (Vector Right) |
Static Public Member Functions | |
| static Vector | FromAngle (float AngleDegrees) |
Public Attributes | |
| float | X |
| Components of vector. More... | |
| float | Y |
| Vector::Vector | ( | float | , |
| float | |||
| ) |
| Vector Vector::__div | ( | float | Modifier | ) |
Division operators
| Vector Vector::__mul | ( | float | Modifier | ) |
Multiplication operators
| Vector::Clamp | ( | float | MinX, |
| float | MinY, | ||
| float | MaxX, | ||
| float | MaxY | ||
| ) |
Clamps the vector based on left, top, right, bottom boundings. Doesn't keep direction
| Vector Vector::Clamped | ( | float | MinX, |
| float | MinY, | ||
| float | MaxX, | ||
| float | MaxY | ||
| ) |
Returns a clamped version of the vector.
| float Vector::Cross | ( | Vector | second | ) |
Cross product this is the 2x2 matrix determinant or the resulting z value for their 3D versions with z=0
Returns squared distance between two vectors
| float Vector::Dot | ( | Vector | second | ) |
Dot product
|
static |
Build a Vector from an angle, returns a normalized vector. Angle 0 will result in (1, 0). Angle 90 will result in (0, 1).
| float Vector::GetAngleDegrees | ( | ) |
Returns the angle the vector is facing. The vector (1, 0) will be at 0 degrees. The vector (0, 1) will be at 90 degrees.
| float Vector::Length | ( | ) |
Returns the length of the vector
| float Vector::LengthSquared | ( | ) |
Returns the length squared of the vector
Linear interpolation between two vectors for t = 0 returns first, for t = 1 returns second
| Vector::Normalize | ( | ) |
Normalizes this vector
| Vector Vector::Normalized | ( | ) |
Returns a normalized version of this vector
| Vector::Resize | ( | float | NewLength | ) |
Resizes the vector length.
| Vector Vector::Resized | ( | float | NewLength | ) |
Returns a resized version of the vector.
| Vector Vector::Rotated | ( | float | AngleDegrees | ) |
Returns a rotated version of the vector by AngleDegrees
| float Vector::X |
Components of vector.
| float Vector::Y |


Why I Don't Like Sudoku Anymore
Earlier this school year Ruchir and I kicked around the idea of trying to code a program that could solve sudoku puzzles. We talked about how we might do it, but in the midst of school and homework it fell off the map. That is until I became completely addicted to a sudoku app on my phone a week or so ago got inspired to take a crack at it.
I started to think about how a computer might play sudoku, and came up with two basic rules for figuring out the values of individual sudoku cells, both of which require sweeping over the entire puzzle first to determine all of the possible values for each open cell on the board (which is a task better suited for a computer than a human, trust me).
- Obvious Elimination: if a box has only one possible value, then it can only be set to that value.
- Unique Possibility: if a box has multiple possible values, but one of its possible values is not possible for any other open cell in that box’s row, column, or square, then it must be set to that value.
I was sure from my pen and paper/phone testing that these two rules alone would be enough to solve at least some sudokus, so I started thinking about how to design a sudoku board data structure. The sudoku board itself initially screams out for a 2D array of some sort, because ultimately all sudoku boards are just 9x9 squares made up of 81 individual cells (9 rows, 9 columns, and 9 3x3 boxes of cells):
However, we can’t just use a 2D array of integers, because each cell needs to hold more information than just its own value; it also needs to know all of the possible values it could be set to based on its position, and which row, column, and box it belong to so that when we later write methods to populate its list of possible values we can instantly know its location on the board.
A simple SudokuBox object should do the trick, with logic to determine its box number based on its row and column index, and methods that abstract low level interaction with its list of possible values (add, remove, and check if a value is present). Now we can represent the board as a 9x9 2D array of SudokuBox objects.
The central rule of all sudoku puzzles is that each row, column, and box on the greater 9x9 board must contain the numbers 1-9, non-repeating. What this means from a structure design standpoint is that we need to be able to quickly iterate through individaul rows, columns, and boxes in order to determine what values are still possible for cells in a given position. Iterating over the cells in a box was the first tricky piece of logic that came up in this project. Rows and columns are easy enough flip through, because one index of the 2D array stays the same, while the other increments:
...
SudokuBox[][] board = new SudokuBox[9][9];
// picking random row and column
int row = 3;
int column = 6;
// iterate over row
for (int i = 0; i < 9; i++)
board[row][i].doSomething();
// iterate over column
for (int i = 0; i < 9; i++)
board[i][column].doSomething();
However, iterating over a single box’s cells proves to be a little more complicated because the cells of a box live on three separate rows and three separate columns. The key to figuring this out is to subdivide the boxes into columns and rows of boxes. Take another look at the picture of the board above. If we start in the top-left corner and work left to right, going to the next row down once we reach the end of a line, we get boxes 0-8. Boxes 0, 1, and 2 all begin with a row index of 0, boxes 3, 4, and 5 begin at row 3, and boxes 6, 7, and 8 all begin at row 6. This pattern is pretty clear: to find a box’s start row, divide its number by 3 (rounding down to the nearest whole number, as integer division does in most programming languages), and then multiply by 3.
We follow the same basic process to figure out our starting column index of a given box, but this time we subdivide along the columns: boxes 0, 3, and 6 all begin with a column index of 0, boxes 1, 4, and 7 begin with a column index of 3, and boxes 2, 5, and 8 begin with a column index of 6. Regular division obviously won’t work here, but modulus divison will because each of these groups contain box numbers from the same equivalence class (0/3/6 mod 3 = 0, ¼/7 mod 3 = 1, and 2/5/8 mod 3 = 2).
...
int box = 4;
int start_row = (4/3)*3; // = 3, the start row for box 4
int start_column = (4%3)*3; // = 3, the start column for box 4
// iterate over box
for (int row = start_row; row < (start_row+3); row++) {
for (int column = start_column; column < (start_column+3); column++)
board[row][column].doSomething();
}
Now we’ve got the building blocks for a data structure that represents an entire sudoku board, and has logic in place that allow us to quickly pinpoint the location of a cell, and then traverse all its related cells to figure out what values should be possible for that cell. I call this the SudokuBoard. Notable methods in the class are fillPossibleAll(), which uses our traversing strategies from above to fill the possible values of every cell, and checkToSetAll() which checks every cell to see if it fits our Obvious Elimination or Unique Possibility rules.
The final class in my design is SudokuSolver, and it controls the flow of the operations specified in SudokuBoard. Basically, this solver class does the following by calling methods on a SudokuBoard object.
- While our puzzle is nt complete:
- Sweep through the entire board, using the cells who’s values we already know to determine the possible values for each empty cell.
- Sweep through the board again, checking every cell’s possible values against our two rules to see if we can fill in a cell with a definite value. If at any point we do set a cell’s value, jump back to step 1.1.
And it works! The program can solve the majority of puzzles that are labeled as easy and medium difficulty. But, it can’t solve hard puzzles. Why? Well, I did some research into sudoku and I found this [resource][sudokustrategy], which is basically a detailed list of the most common sudoku strategies. It describes more advanced patterns and methods of eliminating potential possible values by looking at possibility subsets.
comments powered by Disqus


Auditor General Makwetu disappointed at outcomes: Key points
by Jan GerberAuditor General Kimi Makwetu revealed on Wednesday the "disappointing" audit results for national and provincial governments for the 2018/2019 financial year.
READ MORE |
SA govt's irregular expenditure soars to R62bn, material losses at R2.8bn
Opposition parties slam the government after 'disappointing' audit reports
Audit outcomes: Western Cape best, no clean audits for Free State, regression for Gauteng
Here are some of his key findings:
- Overall, the audit outcomes have regressed since 2014/2015 with only 80 auditees improving and 91 regressing. Only 100 (26%) of the auditees managed to produce quality financial statements and performance reports and to comply with key legislation, thereby receiving a clean audit. In 2014/2015, 106 auditees had clean audits.
- There were serious weaknesses in the financial management of national and provincial governments that had not been addressed over the past five years.
- The financial health of auditees continued to deteriorate - with departments in particular struggling to balance their finances.
- Unauthorised expenditure remained high at R1.365bn.
- There was an emerging risk of increased litigation and claims against departments. Over a third of the departments had claims against them above 10% of their next year's budget.
- A deficit of R62.06bn was incurred by the 31% of public entities whose expenditure exceeded their revenue - 90% of the deficit related to the Road Accident Fund.
- Fruitless and wasteful expenditure continued to rise, with 223 auditees losing R849m in the current year. Over the five years, R4.16bn of government expenditure was fruitless and wasteful.
- Irregular expenditure increased to R62.60bn from the R51bn reported last year.
- Compiled by Jan Gerber


|
PCASIFT
|
#include <stdlib.h>
#include <assert.h>
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <pgm.h>
#include "config.h"
#include "image.h"
Macros | |
| #define | GAUSSKERN 4 |
| #define | PI 3.14159265358979323846 |
Functions | |
| void | normalizeMat (vector< vector< float > > &mat) |
| Normalizes a matrix to unit length. More... | |
| void | normalizeVec (vector< float > &vec) |
| Normalizes a vector to unit length. More... | |
| vector< float > | GaussianKernel1D (float sigma) |
| Creates a 1D Gaussian kernel. More... | |
| float | ConvolveLocWidth (vector< float > &kernel, Image *src, int x, int y) |
| Convolve an image along the X direction at a particular pixel location. More... | |
| void | Convolve1DWidth (vector< float > &kern, Image *src, Image *dst) |
| float | ConvolveLocHeight (vector< float > &kernel, Image *src, int x, int y) |
| Convolve an image along the Y direction at a particular pixel location. More... | |
| void | Convolve1DHeight (vector< float > &kern, Image *src, Image *dst) |
| void | BlurImage (Image *src, Image *dst, float sigma) |
| Does Gaussian smoothing of an image. More... | |
| vector< vector< float > > | GaussianKernel2D (float sigma) |
| Calculates a 2D Gaussian kernel. More... | |
| #define GAUSSKERN 4 |
Referenced by GaussianKernel1D(), and GaussianKernel2D().
| #define PI 3.14159265358979323846 |
Referenced by GaussianKernel1D(), and GaussianKernel2D().
Does Gaussian smoothing of an image.
| src | Source image |
| dst | Destination image |
| sigma | Sigma of Gaussian weighting function. |
References Convolve1DHeight(), Convolve1DWidth(), GaussianKernel1D(), Image::height, Image::Image(), and Image::width.
Referenced by KeypointDetector::BuildGaussianScales(), and KeypointDetector::ScaleInitImage().
References ConvolveLocHeight(), Image::height, Image::setPixel(), and Image::width.
Referenced by BlurImage().
References ConvolveLocWidth(), Image::height, Image::setPixel(), and Image::width.
Referenced by BlurImage().
| float ConvolveLocHeight | ( | vector< float > & | kernel, |
| Image * | src, | ||
| int | x, | ||
| int | y | ||
| ) |
Convolve an image along the Y direction at a particular pixel location.
| kernel | Kernel to convolve with. |
| src | Source image |
| x | x pixel location |
| y | y pixel location |
References Image::getPixel(), and Image::height.
Referenced by Convolve1DHeight().
| float ConvolveLocWidth | ( | vector< float > & | kernel, |
| Image * | src, | ||
| int | x, | ||
| int | y | ||
| ) |
Convolve an image along the X direction at a particular pixel location.
| kernel | Kernel to convolve with. |
| src | Source image |
| x | x pixel location |
| y | y pixel location |
References Image::getPixel(), and Image::width.
Referenced by Convolve1DWidth().
| vector<float> GaussianKernel1D | ( | float | sigma | ) |
Creates a 1D Gaussian kernel.
Kernel is always odd.
| sigma | Sigma of Gaussian weighting function. |
References GAUSSKERN, normalizeVec(), and PI.
Referenced by BlurImage().
| vector<vector<float> > GaussianKernel2D | ( | float | sigma | ) |
Calculates a 2D Gaussian kernel.
| sigma | Sigma of Gaussian weighting function. |
References GAUSSKERN, normalizeMat(), and PI.
| void normalizeMat | ( | vector< vector< float > > & | mat | ) |
Normalizes a matrix to unit length.
| mat | Matrix to normalize |
Referenced by GaussianKernel2D().
| void normalizeVec | ( | vector< float > & | vec | ) |
Normalizes a vector to unit length.
| vec | vector to normalize |
Referenced by GaussianKernel1D().