Since I'm pretty new to blogging I haven't found the platform yet that I like best. I decided blogger was a little too plain and wordpress had some better layouts but didn't give me enough control, so I've decided to move to jekyll hosting using github pages.
I won't be posting here any longer. Please direct all traffic to zacblanco.github.io.
EDIT:
I just want to add my previous post about an updated site-- well. Now that I'm using Jekyll I won't be able to keep that as the landing page. You can still find it and view-source zacblanco.github.io/s-old/index.html


Choose a .mp3 or .wav file to use:
Click Start button to start:
Start
Difficulty (5-10):
WASD To move


Email ID
First Name
Last Name
Contact Number
Date of Birth
Save Changes
Edit profile
Change Password
Close
Verify it's you.
Old password
New password
Confirm new password
Close
Verify your Identity
Verify
Loading...


PHPUnit is the de-facto standard for unit testing in PHP projects. It provides both a framework that makes the writing of tests easy as well as the functionality to easily run the tests and analyse their results.
vfsStream is a stream wrapper for a virtual file system that may be helpful in unit tests to mock the real file system.
Behat is a framework for Behavior Driven Development (BDD) that is inspired by Cucumber.
phploc is a tool for quickly measuring the size of a PHP project.
pdepend can generate a large set of software metrics from a given code base. These values can be used to measure the quality of a software project and they help to identify the parts of an application where a code refactoring should be applied.
phpmd scans PHP source code and looks for potential problems such as possible bugs, dead code, suboptimal code, and overcomplicated expressions
phpcs tokenises PHP, JavaScript and CSS files and detects violations of a defined set of coding standards. It is an essential development tool that ensures your code remains clean and consistent. It can also help prevent some common semantic errors made by developers.
phpcpd is a Copy/Paste Detector (CPD) for PHP code. It scans a PHP project for duplicated code.
phpdcd is a Dead Code Detector (DCD) for PHP code. It scans a PHP project for code that is no longer used.
hhvm-wrapper is a convenience wrapper for HHVM's static analyzer, for instance.
phpDox is the documentation generator for PHP projects. This includes, but is not limited to, API documentation.
The goal of the Template for Jenkins Jobs for PHP Projects is to provide a standard template for Jenkins (the leading open-source continuous integration server) jobs for PHP projects.


Home
About
Events
Resources
Documents
Contact
If you would like to contribute to this website, check out its
GitHub page
!
Minutes
September 2015 Meeting Minutes
Aug 2015 Meeting Minutes


5 Minutes Worse Spent
This is a website designed to showcase how poorly you can spend 5 minutes (or more). Go to the Browse page to look for some time wasters or select from the popular time wasters below.
Popular Time Wasters
About
This website was created for my fellow time wasters! Whether it be putting off final studying or just relaxing from a stressful day, take your mind off things by taking 5 minutes. I recommend putting on lo-fi hip-hop while you waste your time. Here is a link to my fave Spotify playlist brah.
The Creator
My name is Gavin Lifrieri, and I am currently a freshman at Harvard College hoping to concentrate in CS brah. The github repo for this thing can be found here. Look at the README for info brah.


Wow. I finally tried Salvia divinorum for the first time. Boy was I glad I had read up on it and spent time visualizing how I wanted the experience to be. It was incredible!!!
I went to a friend's place to watch hockey - the ulterior motive being for three of us to get together and give Salvia at try for the first time in a comfortable setting, with people that wouldn't be acting like jerks. I decided I would give it a go after the first period of the game. I packed the small bowl of my water pipe very tightly, with approximately a gram of salvia leaf. I had this Salvia for about 2 weeks, but I hadn't really felt ready to try it until now - I wasn't nervous at all. Without hesitating I lit the bowl with a regular lighter (keeping the flame on it) and took my first big hit, held it for 15 seconds, let it out and and then took my second hit. As I was leaning forward to place the pipe back on the table, I felt a small giggle rising out of the depths, and a bit of strange pressure on the front of my face.
Well.... No one would have convinced me that a person could experience what happened next. I let out the giggle, along with all of my second hit in a messy, giant blow, as the giggle from the depths immediately turned into a 'perfect storm' of uncontrollable, loony laughter. There was also a sense of sliding forward and forward and forward, but the intensity with which the laughter came on really had me in disbelief, because just after the first giggle, but before I could even say to myself 'Is this IT?!?! Oh my God! This can't be it! WOW IT IS!' - I had lost it. The laughing grew and grew and grew. There was no going backwards, there was no calming myself, or relaxing to analyze the experience, or even catching my breath. There was only forwards and forwards with more and more intensity.
I quickly let myself go and everything felt incredibly, genuinely, hysterically funny. The entire scene of me and my friends in the the living room took on a whole feeling of being in a sitcom, performing, being watched by an audience, all in my head. The cheers from the crowd at the hockey game on TV were for us! I was laughing with the crowd/audience. I was the source of the funny and I was laughing at it all. Immediately after my initial burst of laughter and obvious spiral down into a complete lack of control, my friend said, 'Come ON?!?!' in a skeptical, character-typical kind of way, which I greatly appreciated and made me laugh even more, his next words were, 'Fuc*ing RIGHT!
Everything my friends said to me, everything they did, everything I did, elicited the same kind of internal response as I would get from watching a character driven running gag, like Seinfeld, or Trailer Park Boys - a warm, driven, imaginative, familiar and satisfying sense - Kramer bursting through Jerry's door with the funniest expression ever - Ricky with his six-paper joints and reckless, self-centered interpretation of reality - except TIMES 10!!!! So there was the incredible laughter, which I was very thankful for - it was exactly what I had wanted and preconditioned myself to experience after watching about 50 YouTube videos of various degrees of Salvia trips.
I also immediately noticed that my centre of balance was WAYYY off, as if my head weighed 100 lbs. I would lean a little one way and it felt like I was falling over. But I wasn't, it just felt that way. When I leaned forward I felt a huge roller coaster ride rush downward. When I put my hands over my eyes to wipe away tears from laughing I ACTUALLY SAW the roller coaster tracks and the tunnel I was riding in. I had heard many times in videos and read of people describing a tunnel - I know exactly what they were talking about. I had presence of mind enough to speak to my friends between laughing fits, but only enough to say, 'OH MY GOD', and make airplane noises, 'Vrrrrreeaaaaaoooooooohhhhmmmmmmmm-HAAHAHAHAHAHEEHEEHEEHEEHAHAHAHAHAAAAAAAAAAAAAH!!!!' with my arms stretched out - my friends were impressed.
So the laughing and roller coaster lasted about four minutes. Then I snapped out of it! Still giggly, very relaxed, but completely awestruck at what I had just experienced. Before I had come back to earth my friend had already packed a bowl and lit it up, but he hadn't used the pipe right at all and just sat there telling us, 'Yeah, I feel a little strange'. But no laughter. I was really disappointed for him. My other friend tried it next and being a veteran pipe user, got the required dose for a breakthrough, but his experience also seemed to be less like a carnival ride and more like a meditation. There was no laughter, he just closed his eyes and described feeling as if he were riding on the front of a car, driving forward very fast(the same sensation as my roller coaster), and seeing a big fence along the sides of a tunnel(the same as my roller coaster tracks?!?)
I waited until the second intermission of the game (45 minutes later) to do it again, and I had enough time to squeal,'It's happening again hahahahaheeeheehheee', before the ride started all over!!! Again, laughing in disbelief, and the disbelief making me laugh. This time though, I felt a little embarrassed for a few moments as it seemed like I was acting a lunatic with my laughing, and I knew my friends couldn't relate because they didn't experience the same thing. My friend said, 'You're freaking out the dog!', but rather than let that ruin my rush and turn things dark I just let myself go and laughed and laughed. The Roller coaster was even more vivid. I was in another world.
This was incredible. I think it's all in the dose (of course) - I'm really excited to explore other experiences with stronger and lighter doses. I was disappointed that my friends didn't get the laughing fit - it was invigorating! The closest thing I can think of is having the most incredibly fun carnival ride.   I imagine it's the way they've trained themselves to respond to the crazy motion and fear, and rushes, and the adrenaline boost! That's what I felt like - one of these people that enjoys the adrenaline rush from riding the craziest, highest, most jolting and life-threatening carnival ride you could imagine.
It was a Super Fun Happy Slide! It helped to feel and believe that I had fully prepared myself by reading up on the drug and other people's experiences. I think I had an idea of what I could expect and that helped me to really enjoy the rush! I can't wait to get back on this ride!
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.


| Name | Description | |
|---|---|---|
| IdentityVisitor | There is no summary. |
| Name | Description | |
|---|---|---|
| Add | There is no summary. |
|
| AddChecked | There is no summary. |
|
| And | There is no summary. |
|
| AndAlso | There is no summary. |
|
| ArrayIndex | There is no summary. |
|
| ArrayLength | There is no summary. |
|
| Call | There is no summary. |
|
| Coalesce | There is no summary. |
|
| Conditional | There is no summary. |
|
| Constant | There is no summary. |
|
| Convert | There is no summary. |
|
| ConvertChecked | There is no summary. |
|
| Divide | There is no summary. |
|
| Equal | There is no summary. |
|
| ExclusiveOr | There is no summary. |
|
| GreaterThan | There is no summary. |
|
| GreaterThanOrEqual | There is no summary. |
|
| Invoke | There is no summary. |
|
| Lambda | There is no summary. |
|
| LeftShift | There is no summary. |
|
| LessThan | There is no summary. |
|
| LessThanOrEqual | There is no summary. |
|
| ListInit | There is no summary. |
|
| MemberAccess | There is no summary. |
|
| MemberInit | There is no summary. |
|
| Modulo | There is no summary. |
|
| Multiply | There is no summary. |
|
| MultiplyChecked | There is no summary. |
|
| Negate | There is no summary. |
|
| NegateChecked | There is no summary. |
|
| New | There is no summary. |
|
| NewArrayBounds | There is no summary. |
|
| NewArrayInit | There is no summary. |
|
| Not | There is no summary. |
|
| NotEqual | There is no summary. |
|
| Or | There is no summary. |
|
| OrElse | There is no summary. |
|
| Parameter | There is no summary. |
|
| Power | There is no summary. |
|
| Quote | There is no summary. |
|
| RightShift | There is no summary. |
|
| Subtract | There is no summary. |
|
| SubtractChecked | There is no summary. |
|
| TypeAs | There is no summary. |
|
| TypeIs | There is no summary. |
|
| UnaryPlus | There is no summary. |


| DOSE: |
20 tablets |
oral |
DXM |
(capsule) |
| |
|
smoked |
Cannabis |
(plant material) |
This isn't an account of one trip, but a collective pool of my fantastic exploits on Robo, otherwise known as Robitussin. I'm going to weave some of the best features and parts of my robo trips into one story though, as trying to leap back and forth between different experiences could prove to be aggravating for the reader, and I want people to stick around and read this. No parts of the story will be fabricated.
 In any matter, on every occasion I make sure I get Robo without guaifenesin, as it will make you vomit, among other more serious things (I vomit anyway, but taking the guaifenesin is like holding up a slab of meat to the wolves).
After ingesting the robo, I packed a couple of bowls with my friends A, B, C and D. I'm not sure if the weed intensifies the experience (as I've never tried without), but its fun with it.
After smoking I lied down and listen to music. I started lying down when I’m coming up on Robo because I don't throw up this way.  In my experience, this mind-dependant onset is so much better than running around to find an altered state; its subtlety is key to contributing to a profound experience.
I've never cared much about the time when robo starts to take affect, but I'd say it's about 40 mins after ingesting the pills. At this time I started to feel really giddy, it's a characteristically kid-like feeling, where everything you do could turn into an adventure.
  But a little into ‘Strawberry Fields Forever', his moves became more calculated and considerate. It was the most amazing theatrical performance I had ever experienced, I felt like he was some live-action old time movie. I’d occasionally go out to touch him, but would fall back onto the bed before ever reaching that sort of tangible reality check; it was more fun like that.
After his ‘show’ we smoked a couple more bowls and I decided to go up to the trampoline with A and B. The robo had made most of my body go a little numb and my vision a little blurry (along with sobriety), so after jumping around a little we started doing things just to see how it felt. At one point we held hands in a circle and played a game of ring around the rosie, just without the words. Instead we ran as fast as we could, keep in mind our drug-induced clumsiness, around and round until I had convinced myself that our child’s play was actually a skydive, except I stayed in the clouds making aerial figure 8s long after we’d fallen to the ground.
A little later though, I came back to the trampoline, and just sat looking at the stars. I started rambling about things that didn’t make any sense, until I could trigger imagery to go along with my words. I finally got it when I started talking about how the stars sorta looked like snow, and how the bars and netting around the trampoline made it seem like we were all in a snow globe, and that if we bounced around, it would be like we were just figurines in a snow globe. The strange thing was, was that when I started to bounce A and B did also. I loved how we were all in it together, no judgments and no fabrications. We were just completely determined that we were figurines in our frost encumbered world.
I went along with this group enthusiasm and quickly determined we were actually in an Easter egg, and that the trees encompassing the trampoline was just grass, and we had been hidden, and that when we were discovered, we had to be really happy for our finder. So when it happened, we all put our hands and feet in the air and smiled our hugest smiles, screaming and hollering our truest congratulations.
After things got settled down a little more C and D had joined us on the trampoline, and we all just started talking. I didn’t know C that well, he was a friend of D’s that wasn’t part of our regular round up, but he was the closest to me so I started talking to him.
It’s really weird the things you’re willing to talk about on robo. It’s like a truth serum and any walls that you’ve built for yourself in respectable society come crashing down. I remember specifically talking about how I don’t feel like I fit in with how sexual people are, and how strange it was to me that people build entire lives around trying to get some, and C admitted to me how he felt the same way, and that it’s a big reason guys feel insecure about themselves, because they want to seem cool for the female species.
I bring this up because I had always kept my ‘asexuality’ to myself until that point, and when we got into other conversations and more intimate details I felt like I wanted to be with C for the rest of my life. That he was someone who understood all of my peculiarities and could make peace with them.
I always feel this way on robo at some point (with anyone I’m with), and even if it’s imagined then, it’s a feeling that I long for more than anything in the world now. It has become my purpose to find that sort of deep and platonic connection with someone, because it is the most overwhelmingly securing feeling I’ve ever experienced.
After some more major bonding we all go inside and watch movies until we pass out, and remain comatose until our adventure continues. The ‘day-after robo’ ritual, which honestly deserves a headline of its own, I’ll wrap it up with a quick summary:
See, the day after robo, you still have a little retarded glow about you, and instead of letting it annoy you with actually trying to do something productive, my friends and I have decided it’s really just an extension of the whole robo experience.
  He opts for a conversation between old friends Arnold Schwarzenegger, George Bush, and Bill Cosby. And the thing is, A has this sort of Jew fro thing that wiggles on his forehead whenever he gets really into Arnold, and that’ll usually keep B and I entertained for hours. And basically for the rest of the day we smoke weed and take nature rides in the car listening to happy Beatles music until we’re back to normal…The End.
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.


The formal grammars and accompanying text appearing here describe the syntax of Scheme programs and data. Consult the Summary of Forms and Procedures and the individual descriptions given in Chapters 4 through 8 for additional details on specific syntactic forms.
Programs and data are formed from tokens, whitespace, and comments. Tokens include identifiers, booleans, numbers, characters, strings, open and close parentheses, the open vector parenthesis #(, the dotted pair marker . (dot), the quotation marks ' and `, and the unquotation marks , and<EMAIL_ADDRESS>Whitespace consists of spaces and newline characters and in some implementations also consists of other characters, such as tabs or form feeds. A comment consists of a semicolon ( ; ) followed by any number of characters up to the next line break. A token may be surrounded by any number of whitespace characters and comments. Identifiers, numbers, characters, and dot are delimited by whitespace, the start of a comment, an open or close parenthesis, or a string quote.
In the productions below, <empty> stands for the empty string. An item followed by an asterisk ( * ) represents zero or more occurrences of the item, and an item followed by a raised plus sign ( + ) represents one or more occurrences. Spacing between items within a production appears for readability only and should be treated as if it were not present.
Programs. A program consists of a sequence of definitions and expressions.
| <program> | <form>* | |
| <form> | <definition> | <expression> |
Definitions. Definitions include variable and syntax definitions, begin forms containing zero or more definitions, let-syntax and letrec-syntax forms expanding into zero or more definitions, and derived definitions. Derived definitions are syntactic extensions that expand into some form of definition.  Expressions include core expressions, let-syntax or letrec-syntax forms expanding into a sequence of one or more expressions, and derived expressions. The core expressions are self-evaluating constants, variable references, applications, and quote, lambda, if, and set! expressions. Derived expressions include and, begin, case, cond, delay, do, let, let*, letrec, or, and quasiquote expressions plus syntactic extensions that expand into some form of expression.
| <expression> | <constant> | |
| | | <variable> | |
| | | (quote <datum>) | ' <datum> | |
| | | (lambda <formals> <body>) | |
| | | (if <expression> <expression> <expression>) | (if <expression> <expression>) | |
| | | (set! <variable> <expression>) | |
| | | <application> | |
| | | (let-syntax (<syntax binding>*) <expression>+) | |
| | | (letrec-syntax (<syntax binding>*) <expression>+) | |
| | | <derived expression> | |
| <constant> | <boolean> | <number> | <character> | <string> | |
| <formals> | <variable> | (<variable>*) | (<variable>+ . <variable>) | |
| <application> | (<expression> <expression>*) |
Identifiers. Identifiers may denote variables, keywords, or symbols, depending upon context. They are formed from sequences of letters, digits, and special characters. With three exceptions, identifiers cannot begin with a character that can also begin a number, i.e., they cannot begin with ., +, -, or a digit. The three exceptions are the identifiers ..., +, and -. Case is insignificant in symbols so that, for example, newspaper, NewsPaper, and NEWSPAPER all represent the same identifier.
| <identifier> | <initial> <subsequent>* | + | - | ... | |
| <initial> | <letter> | ! | $ | % | & | * | / | : | < | = | > | ? | ~ | _ | ^ | |
| <subsequent> | <initial> | <digit> | . | + | - | |
| <letter> | a | b | ... | z | |
| <digit> | 0 | 1 | ... | 9 |
Data. Data include booleans, numbers, characters, strings, symbols, lists, and vectors. Case is insignificant in the syntax for booleans, numbers, and character names, but it is significant in other character constants and in strings. For example, #T is equivalent to #t, #E1E3 is equivalent to #e1e3, #X2aBc is equivalent to #x2abc, and #\NewLine is equivalent to #\newline; but #\A is distinct from #\a and "String" is distinct from "string".
| <datum> | <boolean> | <number> | <character> | <string> | <symbol> | <list> | <vector> | |
| <boolean> | #t | #f | |
| <number> | <num 2> | <num 8> | <num 10> | <num 16> | |
| <character> | #\ <any character> | #\newline | #\space | |
| <string> | " <string character>* " | |
| <string character> | \" | \\ | <any character other than " or \> | |
| <symbol> | <identifier> | |
| <list> | (<datum>*) | (<datum>+ . <datum>) | <abbreviation> | |
| <abbreviation> | ' <datum> | ` <datum> | , <datum> | ,@ <datum> | |
| <vector> | #(<datum>*) |
Numbers. Numbers can appear in one of four radixes: 2, 8, 10, and 16, with 10 the default. The first several of productions below are parameterized by the radix, r, and each represents four productions, one for each of the four possible radixes. Numbers that contain radix points or exponents are constrained to appear in radix 10, so <decimal r> is valid only when r is 10.
| <num r> | <prefix r> <complex r> | |
| <complex r> | <real r> | <real r> @ <real r> | |
| | | <real r> + <imag r> | <real r> - <imag r> | |
| | | + <imag r> | - <imag r> | |
| <imag r> | i | <ureal r> i | |
| <real r> | <sign> <ureal r> | |
| <ureal r> | <uinteger r> | <uinteger r> / <uinteger r> | <decimal r> | |
| <uinteger r> | <digit r>+ #* | |
| <prefix r> | <radix r> <exactness> | <exactness> <radix r> | |
| <decimal 10> | <uinteger 10> <exponent> | |
| | | . <digit 10>+ #* <suffix> | |
| | | <digit 10>+ . <digit 10>* #* <suffix> | |
| | | <digit 10>+ #+ . #* <suffix> | |
| <suffix> | <empty> | <exponent> | |
| <exponent> | <exponent marker> <sign> <digit 10>+ | |
| <exponent marker> | e | s | f | d | l | |
| <sign> | <empty> | + | - | |
| <exactness> | <empty> | #i | #e | |
| <radix 2> | #b | |
| <radix 8> | #o | |
| <radix 10> | <empty> | #d | |
| <radix 16> | #x | |
| <digit 2> | 0 | 1 | |
| <digit 8> | 0 | 1 | ... | 7 | |
| <digit 10> | <digit> | |
| <digit 16> | <digit> | a | b | c | d | e | f |
| R. Kent Dybvig The Scheme Programming Language, Second Edition © 1996. Electronically reproduced by permission of Prentice Hall, Upper Saddle River, New Jersey. http://www.scheme.com Illustrations © 1997 Jean-Pierre Hébert to order this book about this book |


November 16, 2014
Tech BlogArrays and Hashes. Different and the same. Both make life much easier for the coder. And both make inputing information easier by the bulk. But how they gather and display information is very different. Different methods of writing each, and calling each. They store information differently and present information differently.
Arrays are just that, an Array. The arrays are like baskets that you can fill up. So instead of saying "I have 3 apples, 2 blankets, and passionfruite juice". You could instead say, I have a picnic. The picnic would be the array and it contains 3 apples 2 blankets and passionfruite juice. This is helpful in the code world in that I could say I have (an array) "Halo Guns" which contains all the guns from Halo, rather than saying them all out.
Now a hash is different, Hash is better thought of as an assignment tool. Imagine the last time you were at the DMV. You had to write out your name and other information a million times! Well not really, but in codeing big projects you might get close to it. So instead you create a hash. These are like arrays but instad of being a basket of stuff, its Garage with labled boxes. The garage (hash) could be called, Candy. And each box inside could be called different names like "sour, gummy, hot, ect." and in those boxes would be the candy like sour gummy worms or gummy bears. With a hash you can call specific elemants rather than the whole.
Hashes and arrays, dont be afraid of them. They can't hurt you......
badly at least muhahahahahaha!
Cheers
Keenan Sturtevant
.
November 16, 2014
Before I started Phase 0, I had a couple tasks to do. This way I had the tools to be successful in Phase 0. One of these tasks was to find out what kind of a learner I am. I am a Kinesthetic Learner. Kinesthetic Learning (also known as Tactile Learning) is a learning style in which learning takes place by the student carrying out a physical activity, rather than listening to a lecture or watching a demonstration. People with a preference for kinesthetic learning are also commonly known to be more hands on. Kinesthetic learners make up about five percent of the population. So I am pretty rare haha!
I have always known this about me, from cars to music. I am totally self taught in everything. Infact I can listen to a song, and play it back for you on an instrument (with one or two tries). I also learned how to work on and mod cars, by myself with trial and error. So I know how I learn, and I love learning this way. I need to be hands on and feel what I am doing at any time. This lets me experiment a little and see what happens if I push one way v.s. the other. I also know that I can learn with out any instruction at all. If I have the time to do so, I can sit down with something (like my guitar) and totally teach myself just by experimenting with it.
This is an advantage I think for me as far as DBC goes, actually its an advantage for me as far as a career goes. I can use my learning ability to my advantage. Standing out as a leader and the guy you can count on to finish a job, and to do it the best! So all of this code that I am learning, so long as I can try it myself, I will understand it fully. Which brings me to my second advantage. I know that I also have a growth mindset. Which means I never stop learning. I can never, ever, know everything about anything. And because of this I really listen to whats going on. And I adapt my methods to suit the task at hand.
I am bragging I know, and I will try not to. But truth is, being a Kinestheic learner with a growth mindset I have the advantage. And I plan to use it everyday of my life. I will never feel that I know enough about something, and I don't need people to hold my hands to do work. I can be self teaching, or I can teach others. And I wouldnt have it any other way.
DBC look out, here I come. And I plan on you guys remembering me!
Cheers
Keenan Sturtevant
.


Question: What is the difference between displaying html elements inline and displaying them in an inline-block?
If, for example, we are modifying some divs with inline, inline will make the divs show up in a row, next to each other, from left to right. The divs will follow the size of their contents and you cannot modify their width and height or modify top and bottom margins and padding (but you can modify left and right margins and padding). With inline block on the other hand, the divs will also appear in row next to each other, but you can set the div's width and height and modify top and bottom margins and padding as well. Inline-block therefore combines the aspects of inline element and block element, which would force a break after each block element. You can see the differences between the three in the picture below which I got from here.
So if these were the only divs on the page, the CSS might look like this:
div {
background-color: red;
border: 2px solid black;
display: inline; (or display: inline-block, etc)
}


If you are passionate about photography and want to be part of our team, contact us.
If you are passionate about photography and want to be part of our team, contact us.
If you are passionate about photography and want to be part of our team, contact us.
Let´s have a walk...
It has become one of the first tourist destination of Spain, it has everything to please the majority of visitors. The variety of artistic treasures, the Romanesque churches and the great names in modern art and architecture , Dali, Gaudi, Miro, Picasso...
Barcelona has the reputation of being the most cosmopolitan, modern and avant-garde city in Spain
Spanish
¡Hola! = Hi!
Euro
EUR
Warm & cool
High


#include <SlabStructs.h>
|
| void | initilaze (const char name[], size_t object_size, void(*constructor)(void *), void(*destructor)(void *), cache_block_header_s *block) noexcept |
| | Initialize the cache. More...
|
| |
| void | copyName (const char name[]) noexcept |
| | Copies at most MAX_NAME_LENGTH characters into the name string. More...
|
| |
| void * | allocate () noexcept |
| | Allocate one object from cache. More...
|
| |
| void | deallocate (void *object) noexcept |
| | Deallocate one object from cache. More...
|
| |
| int | shrink () noexcept |
| | Deallocate all empty slabs. More...
|
| |
| void | printInfo (std::ostream &os) noexcept |
| | Print info about the cache. More...
|
| |
| int | printErrorInfo (std::ostream &os) noexcept |
| | Print error message for the cache. More...
|
| |
|
| static size_t | slabSize (size_t object_size, size_t index_size) throw (std::overflow_error) |
| | Calculate the size of the slab. More...
|
| |
| static size_t | numOfObjects (size_t slab_size, size_t object_size, size_t index_size) throw (std::invalid_argument) |
| | Calculate the number of objects that can fit in one slab. More...
|
| |
| static size_t | unusedSpace (size_t slab_size, size_t object_size, size_t index_size) throw (std::invalid_argument) |
| | Calculate the size of the unused space in one slab. More...
|
| |
◆ allocate()
| void * os2bn140314d::cache_header_s::allocate |
( |
| ) |
|
|
noexcept |
Allocate one object from cache.
◆ copyName()
| void os2bn140314d::cache_header_s::copyName |
( |
const char |
name[] | ) |
|
|
noexcept |
Copies at most MAX_NAME_LENGTH
characters into the name string.
- Parameters
-
◆ deallocate()
| void os2bn140314d::cache_header_s::deallocate |
( |
void * |
object | ) |
|
|
noexcept |
Deallocate one object from cache.
- Parameters
-
| object | Pointer to the object |
◆ initilaze()
| void os2bn140314d::cache_header_s::initilaze |
( |
const char |
name[], |
|
|
size_t |
object_size, |
|
|
void(*)(void *) |
constructor, |
|
|
void(*)(void *) |
destructor, |
|
|
cache_block_header_s * |
block |
|
) |
| |
|
noexcept |
Initialize the cache.
- Parameters
-
| name | Human readable name of the cache |
| object_size | Size of the object |
| constructor | Constructor |
| destructor | Destructor |
| block | Pointer to the block where the header is located |
◆ numOfObjects()
| size_t os2bn140314d::cache_header_s::numOfObjects |
( |
size_t |
slab_size, |
|
|
size_t |
object_size, |
|
|
size_t |
index_size |
|
) |
| |
| throw | ( | std::invalid_argument |
| ) | | |
|
static |
Calculate the number of objects that can fit in one slab.
- Parameters
-
| slab_size | Size of the slab available for the objects and index |
| object_size | Size of one object |
| index_size | Size of one element indexing the slabd |
- Returns
- Number of objects
- Exceptions
-
| invalid_argument | Thrown when one of the parameters is 0 |
◆ printErrorInfo()
| int os2bn140314d::cache_header_s::printErrorInfo |
( |
std::ostream & |
os | ) |
|
|
noexcept |
Print error message for the cache.
- Parameters
-
- Returns
- Error code
◆ printInfo()
| void os2bn140314d::cache_header_s::printInfo |
( |
std::ostream & |
os | ) |
|
|
noexcept |
Print info about the cache.
- Parameters
-
◆ shrink()
| int os2bn140314d::cache_header_s::shrink |
( |
| ) |
|
|
noexcept |
Deallocate all empty slabs.
- Returns
- Number of blocks deallocated
◆ slabSize()
| size_t os2bn140314d::cache_header_s::slabSize |
( |
size_t |
object_size, |
|
|
size_t |
index_size |
|
) |
| |
| throw | ( | std::overflow_error |
| ) | | |
|
static |
Calculate the size of the slab.
- Parameters
-
| object_size | Size of one object |
| index_size | Size of one element indexing the slab |
- Returns
- Size of the slab in bytes
- Exceptions
-
| overflow_error | Thrown when size is bigger then the maximum allocation size |
◆ unusedSpace()
| size_t os2bn140314d::cache_header_s::unusedSpace |
( |
size_t |
slab_size, |
|
|
size_t |
object_size, |
|
|
size_t |
index_size |
|
) |
| |
| throw | ( | std::invalid_argument |
| ) | | |
|
static |
Calculate the size of the unused space in one slab.
- Parameters
-
| slab_size | Size of the slab available for the objects and index |
| object_size | Size of one object |
| index_size | Size of one element indexing the slabd |
- Returns
- Size of the unused space in bytes
- Exceptions
-
| invalid_argument | Thrown when one of the parameters is 0 |
◆ block_
Pointer to the block where this header is kept
◆ constructor_
| void(* os2bn140314d::cache_header_s::constructor_) (void *) |
Constructor of the cache objects
◆ destructor_
| void(* os2bn140314d::cache_header_s::destructor_) (void *) |
Destructor of the cache objects
◆ empty_
| SlabList os2bn140314d::cache_header_s::empty_ |
◆ error_
Error info about the cache
◆ full_
| SlabList os2bn140314d::cache_header_s::full_ |
◆ mutex_
| std::mutex os2bn140314d::cache_header_s::mutex_ |
Mutex used for synhronization in the cache
◆ name_
Human readable name of the cache
◆ next_
Pointer to the next cache header in list
◆ next_color_
| size_t os2bn140314d::cache_header_s::next_color_ |
The color of the slab that will be allocated next
◆ num_of_objects_
| size_t os2bn140314d::cache_header_s::num_of_objects_ |
Number of objects that can fit in one slab
◆ number_of_allocated_objects_
| size_t os2bn140314d::cache_header_s::number_of_allocated_objects_ |
Number of allocated objects in cache
◆ number_of_blocks_in_slab_
| size_t os2bn140314d::cache_header_s::number_of_blocks_in_slab_ |
Number of memory blocks in one slab
◆ number_of_slabs_
| size_t os2bn140314d::cache_header_s::number_of_slabs_ |
◆ object_size_
| size_t os2bn140314d::cache_header_s::object_size_ |
Size of one object in cache
◆ partial_
| SlabList os2bn140314d::cache_header_s::partial_ |
List of partially full slabs
◆ prev_
Pointer to the previous cache header in list
◆ unused_memory_size_
| size_t os2bn140314d::cache_header_s::unused_memory_size_ |
Size of unused memory in each slab
The documentation for this struct was generated from the following files:


Besides automatically numbering your revisions when you commit, Subversion repositories also have a couple of ‘meta-revisions’. The most important ‘meta-revisions’ are HEAD and BASE.
The HEAD revision refers to the most current revision in a repository. If you are browsing the HEAD revision of your repository and one of your teammates commits a change, those new changes will be included when you decide to check out a working copy of that revision or fetch specific information about it.
The BASE revision refers to the last revision you updated your working copy to. If you create a working copy of your repository at revision 100, the BASE revision of every file in your working copy is 100. If somebody else commits changes to the same file before you do, you can compare your local changes to the BASE revision, or update your file to let Subversion try and merge the new remote changes into your local copy. If the update succeeds, the BASE revision of your file will be changed to match the latest version in the repository.


Landing Page
Special Projects
This story is part of a series of specially designed stories that represents some of the best journalism The Post has to offer. Check out the rest of the special projects here.
Carl Fonticella | FOR THE POST
The last time Central Michigan came to Athens was the Bobcats' Homecoming game on October 12, 2013, back when Tyler Tettleton (#4) was quarterback. The Chippewas have been a thorn in Ohio's side, winning in 2013, 2014 and 2016.
10.05.17
Homecoming weekend aside, Ohio cornerback Jalen Fox is just happy to be back at Peden Stadium.
“It’s always great to play at home,” he said. “You’ve got the fans to your side. … It’s a great feeling just to stay home and be able to play here.”
Having spent three of its past four games on the road — the only such stretch in the season — Ohio (4-1, 1-0 Mid-American Conference) returns to friendlier confines Saturday to host Central Michigan (2-3, 0-1 MAC) for a 2 p.m. Homecoming kickoff.
The conference clash serves as the centerpiece for homecoming weekend, a time in which alumni descend up Athens in droves to reconnect with old friends and bask in school pride.
Many ex-Bobcats are expected to be in town, including recent graduates Jovon Johnson and Mike McQueen, Ohio running back Dorian Brown said.
“We’re going to treat this game like any other game,” Brown said. “But there’s gonna be a lot of hype behind it too. We’re gonna keep doing what we do.”
Offensively, what the Bobcats have been doing is running the football down the throat of their opponents. In last weekend’s 58-50 win at UMass, they averaged 7.5 yards per carry and racked up 298 rushing yards.
Redshirt junior running back A.J. Ouellette has led the way, tallying three straight 100-plus yard rushing games in a row. But redshirt senior Dorian Brown and freshman Julian Ross have chipped in with three touchdowns apiece. All three backs are averaging 4 yards per carry or better.
“I know there were some questions about us running the ball too much at the beginning of the year,” coach Frank Solich said. “But we stuck to it and I think it's played out pretty well.”
No kidding. Ohio is averaging 216 rush yards per game, which is 30th out of 129 NCAA Football Bowl Subdivision (FBS) teams and best in the MAC.
With all three running backs healthy, the Bobcat ground game will likely be in full force against Central Michigan, a team Ohio has struggled against mightily in the history of the matchup.
The Bobcats have a .194 win percentage (five wins in 31 meetings) against the Chippewas, their lowest all-time win percentage against a MAC opponent, including a 1-7 record since 2005. Last year, Central Michigan won 27-20 despite rushing for only 18 yards.
“I wish I had a good answer,” Solich said with a smile. “We have another opportunity this week at home.”
This year’s matchup — at least on paper — is a promising chance for Ohio to break its rough streak versus Central Michigan. The Chippewas have lost three games in a row by a combined 61 points, and needed triple overtime for a season-opening win over Football Championship Series (FCS) Rhode Island.
If the Chippewas are going to hurt the Bobcats, they'll look to do so through the air. Ohio surrendered more than 400 yards passing to UMass and has been on-again, off-again with its pass defense results this season.
“Maybe our coaching staff is throwing too much at our guys,” Solich said. “Maybe it's just a day of them not executing the way we know they can. We are looking at everything from alignments to coverages, (to) how we coach it, to how we call our defensive formations. We will make some changes."
Fatigue is a factor to consider for the struggles of the defensive unit, which lined up for 95 plays against the Minutemen after playing into double overtime against Eastern Michigan the week before.
But Ohio will certainly anticipate an electric atmosphere this weekend, which could spark the defense and help the Bobcats to a fourth-straight win.
“There will be a lot of excitement with Homecoming weekend,” Solich said. “You just hope that excitement carries over to the football field and they have their mind on the game and what they need to get done.”
Landing Page
This story is part of a series of specially designed stories that represents some of the best journalism The Post has to offer. Check out the rest of the special projects here.


About - Project
Open Source Image Uploader created with jquery. Build over Cropper Library.
- Customizable Image upload menu
- Edit Image before uploading
- Image Cropping facility
- Apply filters to Image
- Upload Image using ajax
- Easily Integrable with bootstrap
First Commit on 20/08/2019


Design Dojo is a student organization at Carnegie Mellon University Silicon Valley campus, that has a dedicated community practicing software product design techniques and design thinking through interactive, collaborative, and hands-on workshops and prototyping sessions.
Fill in your email address frequently use and we will push the newest event to your mailbox!
Subscribe


Google adds 10 more games to Stadia launch line-up, plus free Samurai Shodown
The likes of Football Manager 2020, Metro Exodus, and Rage 2 will now also be available to buy and stream when Stadia launches tomorrow.
When Google first announced their launch line-up of games last week a lot of people scoffed at the list of just 12 games, most of which were released last year.
And then when Microsoft announced that Project xCloud was getting all the games from Xbox Game Pass it seemed like Stadia was beginning to feel like an also-ran before it even started.
But while they might not know much about the games industry Google is, of course, a massive company with near infinite resources, so now, just a few days later, their launch line-up has increased to a total of 22.
Google Stadia launch games
- Assassin’s Creed Odyssey
- Destiny 2: The Collection
- GYLT
- Just Dance 2020
- Kine
- Mortal Kombat 11
- Red Dead Redemption 2
- Rise Of The Tomb Raider
- Samurai Shodown
- Shadow Of The Tomb Raider: Definitive Edition
- Thumper
- Tomb Raider: Definitive Edition
- A.O.T. 2 Final Battle
- Farming Simulator 19
- Final Fantasy XV
- Football Manager 2020
- Grid
- Metro Exodus
- NBA 2K20
- Rage 2
- Trials Rising
- Wolfenstein: Youngblood
All of the extra games are those that were originally scheduled for release sometime later this year, so there’s not technically any new ones – but it does show that Google can make things happen very quickly when they need it.
Advertisement Advertisement
That means there’s now more 2019 games in the launch line-up, including Football Manager 2020, Metro Exodus, and Rage 2.
There’s also Codemasters’ Grid which is the only major game to feature Stadia exclusive features, by having 40-car races that its developer claims would be impossible on any other format.
As a final bonus the excellent Samurai Shodown will be added as a second free game for Stadia Pro members, as well as the previously announced Destiny 2: The Collection.
Stadia launches tomorrow, 19 November but only the Stadia Pro version of the service – Stadia Base, which does not require a subscription, won’t be ready till next year.
Email<EMAIL_ADDRESS>leave a comment below, and follow us on Twitter


Seen on 4 September 1997 with Andrea for $8.75 at the East 86th Street Theatre
*Mimic*, for me, is a case of really wanting to like a movie and really looking forward to it and eventually realizing how idiotic that sort of optimism can be.
I was given ample warning way back when I saw Batman & Robin, when a young man, clipboard in hand, outside the theatre was giving away preview screening passes for Mimic. You had to be 17-34 years old to enter. By the time I called the RSVP number, they only wanted 17-24 years. So, I was washed up at 33...
*Mimic* starts off very strong; the opening credits were marvellous. An entomologist's dream and a creepy sequence for the rest of us, with sharp crisp images and slightly blurry, inky American Typewriter font. The mood continued with dark set design and evocative sets that showed New York City in crisis; children were falling prey to Strickler's Disease, which brings Susan Tyler (Mira Sorvino) to NYC.
To kill the Strickler's Disease, which is borne by cockroaches, Susan and Peter (Jeremy Northam) genetically engineer a new insect, the "Judas breed."  Unf ortunately, that does not happen, and three years later, some perplexing, frightening evidence shows up that points to the Judas breed's survival.
Up to this point, the movie is sufficiently creepy, and engaging. The CDC workers are being shadowed by a dark figure who is able to hang upside-down from ceilings, jump off buildings, etc. But there is some mysterious moviemaking law that states that hal fway through a decent creature feature all sense and writing goes out the window and it turns into a Die Hard film.
Once the CDC investigators (including Josh Brolin) actually get close to their prey, the whole film converts itself from smart thriller to splatter fest. Some people are killed instantly, some are "saved for later"--that is one of many facets that make no sense. A lot of the peripheral characters who could be interesting get lost in the shuffle--F. Murray Abraham as a fellow entomologist, Giancarlo Giannini as the immigrant shoeshiner, Alexander Goodwin as the strange "special" Chuy (Retarded? Autistic? We never quite find out what his problem is). Charles Dutton is completely wasted as Leonard, the ornery subway cop, who, by the way, should have a police radio on him, but doesn't. That alone is a major gaffe. They spend a good part of the film "seven sto ries underground" but there is ample sunlight. I could go on, but why bother?
In the end, what happens in Mimic makes little or no sense, the audience seemed to agree with my unspoken "enough already." Perhaps even 17-year-olds are not so easily fooled.
Pet Peeve: A lot of kids are harmed here, in a gratuitous way. Very unappealing.
--------------------------
Copyright (c) 1997, Seth J. Bookey, New York, NY 10021<EMAIL_ADDRESS>More movie reviews by Seth Bookey, with graphics, can be found at http://www.geocities.com/Athens/2679/kino.html
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


Experience
Advanced
PM Product Management
Showing 1-{{pages*10}} Out of {{total}} Results
{{item.nm}}
{{item.dsg}}
{{item.ct}}, {{item.st}}, {{item.cn}}
Worked at - {{item.org}}
More Likely to Move


Hi
i loaded up the example sketch for the temp node and there are some errors its throwing when i try to compile i quite cant figure:
emontx_lib.ino: In function 'void emontx_sleep(int)':
emontx_lib:17: error: 'UNO' was not declared in this scope
emontx_lib:17: error: 'wdt_reset' was not declared in this scope
print_to_serial.ino: In function 'void print_to_serial()':
print_to_serial:3: error: 'struct Payload' has no member named 'realPower'
print_to_serial:5: error: 'ct1' was not declared in this scope
print_to_serial:12: error: 'struct Payload' has no member named 'T1'
print_to_serial:14: error: 'struct Payload' has no member named 'T2'
print_to_serial:16: error: 'struct Payload' has no member named 'T3'
print_to_serial:18: error: 'struct Payload' has no member named 'T4'
i downloaded the sketch as its shown here:https://github.com/openenergymonitor/emonTxFirmware/blob/master/emonTx_temperature_examples/emontx_lowpower_temperature/emontx_lowpower_temperature.ino
the 2 last files listed as requirements i got from github... the libraries i got from the links in the sketch
Re: Error in example temp sketch
i guess most of them are related to print to serial... but is that one relly needed? most of it in there are sure related to printing power usage to the serial port but i will not be sitting with the laptop in the closet with my hotwater cylinder...
but an explanation on whats wrong would be apriciated...
Re: Error in example temp sketch
print to serial stuff cleared... i just edited the file to contain only temp and battery....
but i cant quite figure the first 2 errors...
Re: Error in example temp sketch
Did you get the openenergymonitor files as I suggested in that other thread ?
http://openenergymonitor.org/emon/node/2255
either git clone or archive download ?
Re: Error in example temp sketch
yep i did
Re: Error in example temp sketch
emontx_lib.ino:
void send_rf_data()
{
rf12_sleep(RF12_WAKEUP);
// if ready to send + exit loop if it gets stuck as it seems too
int i = 0; while (!rf12_canSend() && i<10) {rf12_recvDone(); i++;}
rf12_sendStart(0, &emontx, sizeof emontx);
// set the sync mode to 2 if the fuses are still the Arduino default
// mode 3 (full powerdown) can only be used with 258 CK startup fuses
rf12_sendWait(2);
rf12_sleep(RF12_SLEEP);
}
void emontx_sleep(int seconds) {
// if (emontx.battery > 3300) {
for (int i=0; i<seconds; i++) {
delay(1000);
if (UNO) wdt_reset();
}
// } else Sleepy::loseSomeTime(seconds*1000);
}
Re: Error in example temp sketch
its line no 4 from button its complaing about
Re: Error in example temp sketch
Strange, if I download from your link given above, it compiles without problems. And there is no reference to emontx.lib in that code at all. So it should not try to use that.
Can you check again that you try to compile the correct sketch?
Jörg.
Re: Error in example temp sketch
yep i will.... but in master sketch it says:
Other files in project directory (should appear in the arduino tabs above)
- emontx_lib.ino
- print_to_serial.ino
its line 35-37
Re: Error in example temp sketch
to make sure here is the master sketch and the 2 others attached
above line 35 it says:
THIS SKETCH REQUIRES:
Libraries in the standard arduino libraries folder:
- JeeLib https://github.com/jcw/jeelib
- EmonLib https://github.com/openenergymonitor/EmonLib.git
- OneWire library http://www.pjrc.com/teensy/td_libs_OneWire.html
- DallasTemperature http://download.milesburton.com/Arduino/MaximTemperature
of course it needs the libs... but since the words requires is meant for the whole block i assumed the sketch needs the 2 other files too.... and its emontx_lib.ino the fault comes up
emontx_lib.ino: In function 'void emontx_sleep(int)':
emontx_lib:17: error: 'UNO' was not declared in this scope
emontx_lib:17: error: 'wdt_reset' was not declared in this scope
the line that causes it is:
if (UNO) wdt_reset();
Re: Error in example temp sketch
Yes, but nothing from the emontx-lib.ino is used.
Re: Error in example temp sketch
I can also compile your sketch_apr17a.ino without problems !?!
There is also no reference to the other libs (ok, apart from the comment :-) ).
Re: Error in example temp sketch
ok... just strange they put the the other 2 ino's as required but dont use them....
Re: Error in example temp sketch
running without problems if remove those 2 ino's.... i guess they forgot to remove them as requirement
Re: Error in example temp sketch
I think they just converted an existing sketch to the lowpower_temperature sketch and forgot to delete the comments.
But if you just load the emontx_temperature_power.ino and press compile, it just compiles. What did you try instead (just curious)?
Edit: crossposting :-) So you loaded the 'required' files and tried to compile.
Re: Error in example temp sketch
yep... i put the 2 other ino's together with the master sketch... mainly bacause it said they where where required...
Re: Error in example temp sketch
I guys, thanks for noticing this. Yes, we forgot to delete the comments that we copied across from another example. I've updated the github.
Cheers,


This year, our chapter is headed to Anaheim, California for our National Leadership Conference. To pay for this trip, we have decided to put our many business skills to use and fundraise through an online yard sale.
Learn MoreIn our shop, you can find a wide variety of items, as well as a rating on their current condition. 100% of the profits go towards paying for our trip to the National Leadership Conference.
Learn MoreNot looking for anything new, but still want to support your local FBLA? You can donate to us on our donations page!
Learn More


Math support in Sphinx¶
New in version 0.5.
Since mathematical notation isn’t natively supported by HTML in any way, Sphinx supports math in documentation with several extensions.
The basic math support is contained in sphinx.ext.mathbase
. Other math
support extensions should, if possible, reuse that support too.
Note
mathbase
is not meant to be added to the :confval:`extensions` config
value, instead, use either sphinx.ext.imgmath
or
sphinx.ext.mathjax
as described below.
The input language for mathematics is LaTeX markup. This is the de-facto standard for plain-text math notation and has the added advantage that no further translation is necessary when building LaTeX output.
Keep in mind that when you put math markup in Python docstrings read by
autodoc
, you either have to double all backslashes,
or use Python raw strings (r"raw"
).
mathbase
provides the following config values:
mathbase
defines these new markup elements:
-
:math:
¶ Role for inline math. Use like this:
Since Pythagoras, we know that :math:`a^2 + b^2 = c^2`.
-
.. math::
¶ Directive for displayed math (math that takes the whole line for itself).
The directive supports multiple equations, which should be separated by a blank line:
.. math:: (a + b)^2 = a^2 + 2ab + b^2 (a - b)^2 = a^2 - 2ab + b^2
In addition, each single equation is set within a
split
environment, which means that you can have multiple aligned lines in an equation, aligned at&
and separated by\\
:.. math:: (a + b)^2 &= (a + b)(a + b) \\ &= a^2 + 2ab + b^2
For more details, look into the documentation of the AmSMath LaTeX package.
When the math is only one line of text, it can also be given as a directive argument:
.. math:: (a + b)^2 = a^2 + 2ab + b^2
Normally, equations are not numbered. If you want your equation to get a number, use the
label
option. When given, it selects an internal label for the equation, by which it can be cross-referenced, and causes an equation number to be issued. Seeeqref
for an example. The numbering style depends on the output format.There is also an option
nowrap
that prevents any wrapping of the given math in a math environment. When you give this option, you must make sure yourself that the math is properly set up. For example:.. math:: :nowrap: \begin{eqnarray} y & = & ax^2 + bx + c \\ f(x) & = & x^2 + 2xy + y^2 \end{eqnarray}
-
:eq:
¶ Role for cross-referencing equations via their label. This currently works only within the same document. Example:
.. math:: e^{i\pi} + 1 = 0 :label: euler Euler's identity, equation :eq:`euler`, was elected one of the most beautiful mathematical formulas.
sphinx.ext.imgmath
– Render math as images¶
New in version 1.4.
This extension renders math via LaTeX and dvipng or dvisvgm into PNG or SVG images. This of course means that the computer where the docs are built must have both programs available.
There are various config values you can set to influence how the images are built:
sphinx.ext.mathjax
– Render math via JavaScript¶
New in version 1.1.
This extension puts math as-is into the HTML files. The JavaScript package MathJax is then loaded and transforms the LaTeX markup to readable math live in the browser.
Because MathJax (and the necessary fonts) is very large, it is not included in Sphinx.
sphinx.ext.jsmath
– Render math via JavaScript¶
This extension works just as the MathJax extension does, but uses the older package jsMath. It provides this config value:


Let's build a pipeline! Ingest pipelines are an easy way to modify documents before they're indexed in Elasticsearch. They're composed of processors which can change your data in many ways. Create a pipeline below while cycling through your samples to see its effect on your data.


What is containerization?
Containerization is an application or system distribution method that isolates the application or system and its dependencies from the underlying infrastructure. It is an OS-level virtualization that allows users to deploy and run distributed applications or systems in containers without launching an entire virtual machine for each app. Application containers include all of the runtime components – such as configuration files, binaries and libraries – needed to run the app. Multiple containers can run on a single host and access the same OS kernel via APIs. System containers, also called infrastructure containers, include the host operating system, application libraries and execution code. System containers can host application containers. Containers work on bare-metal systems, cloud instances and virtual machines, across Linux and some Windows and Mac OSes. A host machine could have multiple OSes supporting multiple containers – all sharing the same physical resources.
How to containerization work
Application containerization is like a lightweight alternative to full machine virtualization. It involves encapsulating an application in a container with its own operating environment so the application can run on any physical or virtual machine without dependency worries. Each container operates independently of others and uses minimal resources from the host OS. Containers create a safe space for app code to consume host resources without depending on (or conflicting with) other applications using the same OS. Application containers consume fewer resources than virtual machines because containers share resources without a full operating system under each app. Containers can scale up microservices to meet rising demand for an application component and distribute the load.
Benefits of containerization


Lytham Festival 2020: here are all the headliners to perform at Lytham Green and when
Lytham Festival bosses have revealed their 'biggest and best' line-up yet as Lancashire's biggest music event prepares to welcome another host of global superstars to the Lytham Green next summer.
25 Nov 2019, 08:00 by Nicola Jaques
Here are all the headliners announced to play across five nights in the Main Proms Arena in July 2020 for the 11th Lytham Festival.
1. Wednesday July 1 - Westlife Hailed astheUKs top selling album group of the 21stCentury, the Irish pop superstars will open the Lytham Festival with all of their greatest hits includingSwear It Again,Flying Without WingsandYou Raise Me Up
2. Thursday July 2 - Lewis Capaldi Rising singer songwriterLewis Capaldiheadlines the Main Proms Arena. Its been a meteoric rise to success for the Scottish solo artist who is currently enjoying huge adoration on both sides of the Atlantic
3. Friday July 3 - Snow Patrol Indie rockersSnow Patrolare the Friday night headliners. The Northern Irish band have racked up an impressive number of accolades including more than17 million global album sales and an Ivor Novello award
4. Saturday July 4 - Lionel Richie International superstarLionel Richie will performhits from his extensive and much-loved repertoire spanning five decades.His music is part of the fabric of pop music and Richie has sold more than 100 million albums worldwide.
5. Sunday July 5 - Little Mix Pop superstars Little Mix are bringing their unmissable live show to Lytham Festival 2020.


[gecode-users] Conditional constraints ?
Guido Tack
tack at gecode.org
Mon Feb 20 23:04:29 CET 2012
On 21 Feb 2012, at 08:33, Wajid Hassan wrote:
> Hi Christian,
>
> The problem in a nut shell is:
>
> I have two arrays of integer variables, Array1[x] and Array2[x]. I want to use the value assigned to the variables in Array1[] as an index of Array2[], something like this:
>
> rel(*this, Array2[Array1[x].val()] + (something) <= Array2[x+1]);
>
> Is there anything wrong with the above constraint or should this work?
That is what the element constraint is used for (you'll find it in the documentation). It works directly on variables, so you don't have to solve the sub-problem on x first.
Cheers,
Guido
--
Guido Tack,
http://www.csse.monash.edu/~guidot/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.gecode.org/pipermail/users/attachments/20120221/c96e2a60/attachment-0001.htm>
More information about the users
mailing list


Hi, I'm Katie and I'm a web developer.
I'm a web developer because I love the place where creativity and logic intersect. I like taking care to be precise and thoughtful, but also having the latitude to experiment in problem solving.
I'm a web developer because I want to make ideas come to life.
Download my resume


What do you understand about programming?
Why learn programming?
Click me for answer!
Learn to think about problems, decomposition, automate repetitive tasks, create, create and create!
Why not just outsource or use templates (Wix, Strikingly etc)?
Click me for answer!
Sure you can, but not all requirements fit the bill. If you want added flexibility, it's best to do it yourself!
Tools you need to get started?
- Integrated Development Environment (IDE) - where all the code goes
- Terminal - to install dependencies, manipulate files etc
- ....And of course, a keen sense to learn!
HTML, CSS, and Javascript
- HTML - Gives structure
- CSS - Beautify
- JS - Dynamic interactivity
HyperText Markup Language (HTML5)
Basic HTML Structure
The tag at the beginning of an HTML5 document alerts the browser which version of HTML it is supposed to comply with
The is for the HTML5 standard Document Type Definition (DTD)
HTML Elements
Comments -

,
,
,
,

/
///
/

<form>
Cascading stylesheets (CSS)
- Cascading stylesheets are used to style and present HTML
- CSS3
Classes and IDs
- Classes (.) - applied to more than one element
- ID (#)- applied to one element
How is it used?
- selector { property: value }
- e.g., #dropdown-list { font-size:50px; }
- id -> dropdown-list, property -> font-size, value -> 50px
Background
- background-color
- background-image
- background-size
- background-position
Others
- color
- font-family
- font-size
- width
- height
- padding
Where should I add in JS/CSS
Should I put the script/style internally?
Click me for answer!
You should only put your script/styles internally if the code is small, for larger projects, it is not recommended.
Manipulate me!
Press "Inspect Element" or "Shift-Command-C"
javascript
A programming language to add interactivity to webpages/apps
Variables
Use variables to store values
var x;
x = 5;
Qns: What is x?
Functions/Arguments
functionName(parameter1, parameter2, parameter3) {
code to be executed
}
e.g., function sayMyName() {alert('Hi Claire!');}
sayMyName();
Exercise time!
Write a function named tellFortune that:
- takes 4 arguments: number of children, partner's name, geographic location, job title
- outputs your fortune to the screen like so: "You will be a X in Y, and married to Z with N kids."
- Call that function 3 times with 3 different values for the arguments
if/else, while, for loops
Exercise time!
How to switch the light bulbs on/off?
https://www.w3schools.com/js/pic_bulboff.gif
https://www.w3schools.com/js/pic_bulbon.gif
To build: A deck of slides about yourself hosted online (How cool is that!)
Built with HTML, CSS, Javascript, Reveal.JS, NodeJS and Express
Reveal.JS
- A framework for easily creating beautiful presentations using HTML
- Documentation: https://github.com/hakimel/reveal.js/
What do you need to get started?
NodeJS Package Manager (npm)
npm install xxx --save
Fun exercise: to continue beautifying their slides at home throughout the week
- Auto-sliding?
- Page numbers?
- Slide transitions
- Images
- Videos
Hello my name is Stacy. I like cartoons.


dataset export COLLECTION_NAME FRAME_NAME GSHEET_ID GSHEET_NAME [CELL_RANGE]
export will render the contents of a collection as a CSV file or export to a Google Sheet based on a frame defined in the collection.
In the following examples we will be using a newly defined “frame” named “my-report”. The frame will have the following fields are being exported - ._Key,.title, and .pubDate with the following labels for those fields – id, title and publication date.
dataset frame publications.ds my-report \
"._Key=id" ".title=title" \
".pubDate=publication date"
The example blow creates a CSV file named ‘output.csv’. The collection is “publications.ds”.
dataset export publications.ds my-report > output.csv
Likewise we can export to a Google Sheet. SHEET_ID is the google sheet id, usually a very long alpha numeric string. If your URL looks like
https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit
The Sheet ID would be
1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms
CELL_RANGE is expressed in a letter colum row fashion E.g. A1:B10 would refer to the grid starting in the first column (i.e. A) and row (i.e. 1) moving to the lower left with the grid ending in column 2 (i.e. B) row 10. This forms the grid that will be written out. Typically this would be something like “A1:Z” which would translate start in the upper right cell of the spreadsheet and replace all cells to column Z going down.
dataset export publications.ds my-report "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms" Sheet1 "A1:Z"
Related topics: frame, import-csv, export-csv, import-gsheet


Performant Endpoint Visibility
Windows, macOS, CentOS, FreeBSD, and almost every Linux OS released since 2011 are supported with no dependencies. osquery powers some of the most demanding companies, including Facebook.
Downloads →Whether your goal is intrusion detection, infrastructure reliability, or compliance, osquery gives you the ability to empower and inform a broad set of organizations within your company.
Read community articles →Our build infrastructure ensures that newly introduced code is benchmarked and tested. We perform continuous testing for memory leaks, thread safety, and binary reproducibility on all supported platforms.
Read the code →Quick-start Instructions
~ $ osqueryi
Using a virtual database.
osquery> select username, pid, host from last;
+----------+------+---------------+
| username | pid | host |
+----------+------+---------------+
| teddy | 9005 | <IP_ADDRESS> |
+----------+------+---------------+


RStudio Server, Linux(Ubuntu), WSL(Windows Subsystem for Linux), and Docker
If I want to use RStudio Server, I need Linux as OS. Windows users like me need to set up WSL(Windows Subsystem for Linux) for RStudio Server. First of all, make sure if your Windows is the latest version.
- Setup WSL
Check
Virtual Machine Platform
and Windows Subsystem for Linux
. Then Restart your device.
- Change the WSL version to 2
# In the Windows PowerShell as Administrator
wsl --set-default-version 2
# See https://aka.ms/wsl2kernel if you have an issue
- Install Ubuntu
- Setup Ubuntu account
- Update Ubuntu
# In the Ubuntu
sudo apt update
sudo apt upgrade -y
# You cannot use ctrl+V in the Ubuntu. Instead Use the right click
- Install the latest R and RStudio Server
# See https://cran.r-project.org/bin/linux/ubuntu/
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
sudo add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/'
sudo apt update
sudo apt install -y r-base r-base-core r-recommended r-base-dev gdebi-core build-essential libcurl4-gnutls-dev libxml2-dev libssl-dev
## Install RStudio Server ##
wget https://rstudio.org/download/latest/stable/server/bionic/rstudio-server-latest-amd64.deb
sudo gdebi rstudio-server-latest-amd64.deb
- Run RStudio Server
sudo rstudio-server start
In the Web browser, http://localhost:8787
, and type username and password you already created for the Ubuntu account.
- Tip and Close RStudio Server
# Some packages may cause an install issue. You may need an dependency.
# https://jeroen.cran.dev/V8/
sudo apt-get install -y libv8-dev
# Then install R package V8
## To Close RStudio Server ##
sudo rstudio-server stop
- Docker
Run Docker. you can find Images tab in the left panel. Docker needs an image to run instead of files. We need Rstudio image.
Go to DockerHub. Then type
rocker
in the Search. You can find rocker/rstudio
. Copy docker pull rocker/rstudio
, then paste it in the Powershell.
You can find
rocker/rstudio
in the image tab of docker.
Click Run for it. In the option, choose Container names. For example, "rstudio-1". Then configure 4-digit Local Host like 1001.
Now you can see
rstudio-1
in the Containers/Apps tab. In the web browser, type http://localhost:1001/
. Both ID and Password are rstudio which was created by image creators.
- Update image for your project
# In the Powershell, check docker containers
docker ps -a
docker commit {Container ID} {New image name}
#ex# docker commit 40b8d16b7dba rstudio-2
Now you can find rstudio-2
in the image tab. This rstudio-2
has the same environment you already created. Just run this without typing the code in Ubuntu. If you make multiple containers, you can run multiple Rs at the same time.
- To Stop Vmmem
# In the Powershell
wsl --shutdown
- To setup xfce4
# In the Ubuntu
cat /etc/resolv.conf
# It will show nameserver.
nano ~/.bashrc
# It will open nano editor. In the nano, scroll down the bottom. Then,
export DISPLAY={the nameserver above}:0
#ex# export DISPLAY=<IP_ADDRESS>:0
# Save it with Ctrl+X. In Ubuntu
source ~/.bashrc
echo $DISPLAY
# If it show the nameserver, then type
startxfce4
However, the namesever can change. It is tiresome to change it everytime.
# In Nano, delete "export DISPLAY={the nameserver above}:0".
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
GDK_SCALE=1
# Then Save it.


---
layout: pages
route: /articles/testing-custom-linq-filter-operators
alternateRoute: /2013/08/testing-custom-linq-filter-operators.html
title: Testing Custom LINQ Filter Operators and LINQ Where Clauses
tags:
- coding
- csharp
systemTags:
- page:tech
- page:csharp
category: tech
---
Quick Summary
In my last post, I outlined how to build a Custom LINQ Filter Operator. In this post I will demonstrate how to write a unit test for that filter operator. The same basic methodology can be used for testing Where clauses in general.
We are writing a unit test for the extension method below. The purpose of this method is to filter the OfficeSupplyOrders, leaving only the orders that have an approval date and are not cancelled. You might see this method referenced elsewhere in code as context.OfficeSupplyOrders.WhereApproved() (assuming context is an entity framework DbContext).
public static IQueryable<OfficeSupplyOrder> WhereApproved(
this IQueryable<OfficeSupplyOrder> query)
{
return query.Where(v => v.ApprovalDate != null && !v.Cancelled);
}
Caveat
The tests we are writing will be in C# but often the clauses will actually be used to create a sql (or other LINQ provider) query. Be aware that there are differences between the 2, including how the sql query might handle nulls or case sensitivity. These tests are good for verifying the basic logic of the where clause but there are differences and you should be aware of them.
"Findable" and "Filtered"
The basic theory of this testing methodology is that the method we are testing will act like a filter. In order to exercise that filter, we will pass a list of items through it and look at which items were passed through and which ones were filtered.
To start out with, we will create two lists of items that will later be combined and passed through the filter. The first list is for "findable" items that will not be filtered by our custom filter. We will expect to find these items in the output after we run the list through the filter. The other list is for "filtered" items. We will expect that none of the items will be in the output after passing through our filter.
Findable
In order to determine what goes in each list, we need to examine our where clause. If it consists of a single clause or multiple clauses connected by the "&&" (and) operator, then we only need a single item in our findable list. This item will have all of the correct properties set to satisfy each of the clauses.
If the where clause consists of multiple clauses connected by the "||" (or) operator, then we need items in our findable list to exercise each of the clauses.
For example, in our WhereApproved filter above, an order will only pass the filter if both ApprovalDate is a non-null value and if the Cancelled field is false, so a single entry with those two properties set will be sufficient for the findable list.
Filtered
With the filtered list, the opposite is true. If the where clause consists of multiple clauses connected by the "&&" (and) operator, we need items in our filtered list to exercise each of those clauses.
But if the where clause consists of multiple clauses connected by the "||" (or) operator,then we only a single item to exercise each clause in our filtered list.
In our example, we need one order where ApprovalDate is null and another order where Cancelled is true to test both clauses.
If you have a mix of "&&" (and) and "||"(or), I will leave the logic exercise up to you to determine the correct entries. If the logic is too complex, you might consider splitting it into multiple filter operators that are easier to test.
[TestMethod]
public void WhereApprovedTest()
{
// arrange
var findableItems = new List<OfficeSupplyOrder>
{
new OfficeSupplyOrder{
ApprovalDate = new DateTime(2013, 8, 10),
Cancelled = false
},
};
var filteredItems = new List<OfficeSupplyOrder>
{
new OfficeSupplyOrder{
ApprovalDate = null,
Cancelled = false
},
new OfficeSupplyOrder{
ApprovalDate = new DateTime(2013, 8, 10),
Cancelled = true
}
};
var items = findableItems.Concat(filteredItems);
// act
var results = items.AsQueryable().WhereApproved().ToList();
// assert
findableItems.ForEach(v => Assert.IsTrue(results.Contains(v)));
filteredItems.ForEach(v => Assert.IsFalse(results.Contains(v)));
Assert.AreEqual(findableItems.Count, results.Count);
}
As you can see, we created our findable list, created our filtered list, combined the two lists, and passed the combined list to our filter. We then examine the results by comparing them against our original two lists to determine that the output is what we expect.
Summary
We created a unit test for a Custom LINQ filter operator. We examined the where clause to determine what kind of data we needed to pass to exercise the clause and added the items needed to the findable or filtered lists. We combined the two lists and passed the combination through our filter. We then examined the result to verify that it did filter exactly what we expected.


mahō ha futsū ni urikaisare hitobito no sēkatsu ni nezui te ita。
Magic is traded like common goods.


Total Employees: =$employees->num_rows;?>
Total Admins: =$admins->num_rows;?>
Total Drivers: =$drivers->num_rows;?>
Total Customers: =$customers->num_rows;?>
Total Fares: =$fares->num_rows;?>
Driver with most fare(Today): Bob
Driver with most fare(Last 7 days): Bob
Driver with most fare(Last 30 days): Bob
Customer with most rides(Today): Alice
Customer with most rides(Last 7 days): Alice
Customer with most rides(Last 30 days): Alice


V1: Basically the index.html has layed out the minimum foundation for the home page. It has displayed the navigation bar and has an introduction for people who visit the cite. Styles.css has has the color and fonts I wanted displayed one the site as of right now. These are all temporary and I may make drastic css changes in the future. 5/2/2020
V2: No new pages were added but css has helped in improving the looks of the site overall. There's a new background image and smoother ui in general to help make the pages look more inviting. There's even a prompt on the smash logo on the home page to take the user to the official smash website, if they wanted to find more info that I couldn't provide. 5/16/2020
V3: Added two more pages, one has been filled out while the other has not been yet. Changed css properties to make overall ui look more appealing. Added a table on the character page to have an easy to follow rundown on the different playstyles. Used flexboxes to make character images look tighter and ordered. 5/31/2020
V4: Did a temporary finish on the guide page. Added videos on guides on how to play the 3 main archetypes mentioned on the character page as well as a transition on the video plaers to make them look more appealing. 6/15/2020
Background image source
Home banner source
Remaining images from Smash Bros. Ultimate®
Mario guide
Link guide
Joker guide


--- layout: page title: Gallery type: gallery ---
1.
Afternoon, a story
2.
My Boyfriend Came
Back from the War
3.
The Letter
and the Fly
4.
slippingglimpse
5.
the HyperMacbeth
6.
Little Movies
7.
Zork (Dungeon)
8.
Ad Verbum
9.
Game, game, game
and again game
10.
Agrippa,
a book of the dead
11.
THE STRUGGLE
CONTINUES
12.
Star Wars,
one letter
at a time


Hi I'm
I am a student of MBA TECH CS in NMIMS University.
I love the internet, technology, and building beautiful things.
My favorite hobbies are gaming and building things on the internet.
My dream job would be to work in the software engineering industry.
I live in a metropolitian city in India.
Because programming is awesome and programming for the internet is even more awesome.


Fish Curry
Best served with white rice
- 🍳 Cook time: 30 min
- 🍽 Servings:5
Ingredients
- 3T neutral oil
- 1 onion
- 1 red onion
- 2 cloves of garlic
- 4cm ginger
- 1 red pepper
- 1t curry powder
- 250g green beans
- 4 tomatoes
- 200ml fish broth
- 200ml coconut milk
- 400g fish fillet (white fish)
Directions
- Boil green beans for 10 minutes
- Cut onions, tomato, garlic and fish.
- Heat oil on a wok and sauté the onion and garlic
- Add beans, tomato, broth and spices and boil for 6 minutes
- Add coconut milk, fish and pepper (whole) and boil for an additional 6 minutes.
Contribution
Recipe tags:
thai
fish


We are looking for outstanding backend engineers from North America to join our team. As part of the team, you would be responsible for the design, architecture and implementation of our native and distributed open source graph database, Dgraph.
Requirements:
- 3+ yrs of backend engineering experience.
- Experience developing distributed systems or databases.
- Experience building applications in C, C++ or Go.
Nice to haves:
- Previous experience at Google, Facebook, Twitter or Dropbox. Check out our Samurai equity multiplier.
- Bachelor's degree in Computer Science.
- Passionate about working on and contributing to Open Source.
If this sounds interesting to you, drop us a mail at join@dgraph.io


India Delhi Palace - Phoenix, Arizona | Restaurants - Dining Guide
Phoenix Arizona Dining - India Delhi Palace: Specializes in Indian cuisine. Enjoy tandoori breads, meat and vegetable curries, kebabs, pakoras (Indian fritters),... . Dining. India Delhi Palace. 5104 E. McDowell Road Phoenix, AZ 85008 .
http://www.azcentral.com/thingstodo/dining/779590928255
Indian Delhi Palace Phoenix | Food Delivery | GrubHub
View menus, reviews, and coupons for Indian Delhi Palace in Phoenix. Order delivery online . Delhi Palace. 5104 E Mcdowell Rd, Phoenix, AZ | 602-282- 0771 .
http://www.grubhub.com/phoenix/indian-delhi-palace/
Indian Delhi Palace - Phoenix, AZ Metro - Citysearch
Indian Delhi Palace in Phoenix, AZ. Come to Citysearch® to get information, directions, and reviews on Indian Delhi Palace and other Restaurants in Phoenix, .
http://phoenix.citysearch.com/profile/1625235/phoenix_az/indian_delhi_palace.html
Indian Delhi Palace Cuisine Of India Phoenix, 85008 - Reviews at ...
Indian Delhi Palace Cuisine of India reviews and recommendations - Phoenix. . 5104 E. McDowell Road Phoenix, AZ 85008. RestaurantsIndianPhoenixEast .
http://www.voiceplaces.com/indian-delhi-palace-cuisine-of-india-phoenix-2557121-l/
Indian Restaurants in Arizona, AZ, india cuisine, vegetarian, non veg ...
Indian Delhi Palace : : Directions & Maps. chicken tikka masala · dum aloo - vegetarian thali 5104 East McDowell Road Phoenix, Arizona 85008. Phone: 602 .
http://www.thokalath.com/arizona/restaurants.php
Indian Restaurants in Phoenix, AZ on Yahoo! Local
Results 1 - 10 of 43 . Indian Delhi Palace<PHONE_NUMBER> 5104 E Mcdowell Rd, Phoenix, AZ Get Directions Menu: Indian Delhi Special Salad, Indian Delhi .
http://local.yahoo.com/AZ/Phoenix/Food+Dining/Restaurants/Indian+Restaurants


Zinszer K, Morrison K, Verma A, Brownstein JS. ‘Spatial determinants of Ebola virus disease risk for the West African epidemic.’ Bulletin of the World Health Organization, under review.
Doll MK, Morrison KT, Buckeridge DL, Quach C. 2016. ‘Two Birds with One Stone: Estimating Population Vaccination Coverage from a Test-Negative Vaccine Effectiveness Case-Control Study.’ Clinical Infectious Diseases (in press).
Morrison K, Shaddick G, Henderson SB, Buckeridge DL. 2015. A latent process model for forecasting multiple time series in environmental public health surveillance.’ Statistics in Medicine.
Zinszer K, Morrison K, Anema A, Majumder M, Brownstein J. 2015. ‘The velocity of Ebola spread in parts of West Africa.’ The Lancet Infectious Diseases, 15(9): 1005-1007.
Doll M, Buckeridge D, Morrison K, Gagneur A, Tapiero B, Charest H, Quach C. 2015. ‘Effectiveness of monovalent rotavirus vaccine in a high-income, predominant-use setting.’ Vaccine, 33(51): 7307-7314.
Morrison K, Buckeridge D, Xiao Y, Moghadas S. 2014. The impact of geographic location of residence on disease outcomes among Canadian First Nations populations during the 2009 influenza A (H1N1) pandemic.’ Health and Place. 26: 53-59.
Morrison K, Nelson T, Nathoo F, Ostry A. 2012. ‘Application of Bayesian spatial smoothing models to assess agricultural self-sufficiency.’ International Journal of Geographical Information Science 26(7): 1213-1229.


Diagnostics
There are several options for diagnosing issues with Durable Functions. Some of these options are the same for regular functions and some of them are unique to Durable Functions. This article goes into detail about what options are available.
Application Insights
Application Insights is the recommended way to do diagnostics and monitoring in Azure Functions. The same applies to Durable Functions. For an overview of how to leverage Application Insights in your function app, see the Functions Monitoring topic of the Azure Functions documentation.
The Azure Functions Durable Extension also emits tracking events which allow you to trace the end-to-end execution of an orchestration. These can be found and queried using the Application Insights Analytics tool in the Azure Portal.
Tracking Data
Each lifecycle event of an orchestration instance will cause a tracking event to be written to the traces collection in Application Insights. This event contains a customDimensions payload with several useful fields (all prepended with prop__
):
- hubName: The name of the task hub in which your orchestrations are running.
- appName: The name of the function app. This is useful when you have multiple function apps sharing the same Application Insights instance.
- slotName: The deployment slot in which the current function app is running. This is useful when you leverage deployment slots to version your orchestrations.
- functionName: The name of the orchestrator or activity function.
- functionType: The type of the function - e.g. Orchestrator or Activity.
- instanceId: The unique ID of the orchestration instance.
- state: The lifecycle execution state of the instance. Valid values include:
- Scheduled: The function was scheduled for execution but hasn't started running yet.
- Started: The function has started running but has not yet awaited or completed.
- Awaited: The orchestrator has scheduled some work and is waiting for it to complete.
- Listening: The orchestrator is listening for an external event notification.
- Completed: The function has completed successfully.
- Failed: The function failed with an error.
- reason: Additional data associated with the tracking event. For example, if an instance is waiting for an external event notification, this field indicates the name of the event it is waiting for. If a function has failed, this will contain the error details.
- isReplay: Boolean value indicating whether the tracking event is for replayed execution.
- extensionVersion: The version of the Durable Task extension. This is especially important data when reporting possible bugs in the extension. Note that long running instances may report multiple versions if an update occurs while it is running.
The verbosity of tracking data emitted to Application Insights can be configured in the logger
section of the host.json
file.
{
"logger": {
"categoryFilter": {
"categoryLevels": {
"Host.Triggers.DurableTask": "Information"
}
}
}
}
By default, all tracking events are emitted. The volume of data can be reduced by setting Host.Triggers.DurableTask
to "Warning"
or "Error"
in which case tracking events will only be emitted for exceptional situations.
Warning
By default, Application Insights telemetry is sampled by the Azure Functions runtime to avoid emitting data too frequently. This can cause tracking information to be lost when many lifecycle events occur in a short period of time. See the Configure sampling section of the Azure Functions Monitoring topic to learn how this behavior can be configured.
Single Instance Query
Below is query showing the historical tracking data for a single instance of the Hello Sequence function orchestration. It's written using the Application Insights Query Language (AIQL). Note that it filters out replay execution so that only the logical execution path is shown.
let targetInstanceId = "bf71335b26564016a93860491aa50c7f";
let start = datetime(2017-09-29T00:00:00);
traces
| where timestamp > start and timestamp < start + 30m
| where customDimensions.Category == "Host.Triggers.DurableTask"
| extend functionName = customDimensions["prop__functionName"]
| extend instanceId = customDimensions["prop__instanceId"]
| extend state = customDimensions["prop__state"]
| extend isReplay = tobool(tolower(customDimensions["prop__isReplay"]))
| where isReplay == false
| where instanceId == targetInstanceId
| project timestamp, functionName, state, instanceId, appName = cloud_RoleName
The result is a list of tracking events that show the execution path of the orchestration, including any activity functions.
Note
Some of these tracking events may be out of order due to the lack of precision in the timestamp
column. This is being tracked in GitHub as issue #71.
Instance Summary Query
The following query can be used to query the status of all orchestration instances that were run in a specified time range.
let start = datetime(2017-09-30T04:30:00);
traces
| where timestamp > start and timestamp < start + 1h
| where customDimensions.Category == "Host.Triggers.DurableTask"
| extend functionName = tostring(customDimensions["prop__functionName"])
| extend instanceId = tostring(customDimensions["prop__instanceId"])
| extend state = tostring(customDimensions["prop__state"])
| extend isReplay = tobool(tolower(customDimensions["prop__isReplay"]))
| extend output = tostring(customDimensions["prop__output"])
| where isReplay == false
| summarize arg_max(timestamp, *) by instanceId
| project timestamp, instanceId, functionName, state, output, appName = cloud_RoleName
| order by timestamp asc
The result is a list of instance IDs and their current runtime status.
Logging
It's important to keep the orchestrator replay behavior in mind when writing logs directly from the orchestrator function. For example, consider the following orchestrator function:
public static async Task Run(
DurableOrchestrationContext ctx,
TraceWriter log)
{
log.Info("Calling F1.");
await ctx.CallActivityAsync("F1");
log.Info("Calling F2.");
await ctx.CallActivityAsync("F2");
log.Info("Calling F3");
await ctx.CallActivityAsync("F3");
log.Info("Done!");
}
The resulting log data is going to look something like the following:
Calling F1.
Calling F1.
Calling F2.
Calling F1.
Calling F2.
Calling F3.
Calling F1.
Calling F2.
Calling F3.
Done!
Note
Remember that while the logs claim to be calling F1, F2, and F3, those functions are only actually called the first time they are encountered. Subsequent calls that happen during replay are skipped and the outputs are replayed to the orchestrator logic.
If you want to only log on non-replay execution, you can write a conditional expression to log only if IsReplaying is equal to false
. Consider the example above, but this time with replay checks.
public static async Task Run(
DurableOrchestrationContext ctx,
TraceWriter log)
{
if (!ctx.IsReplaying) log.Info("Calling F1.");
await ctx.CallActivityAsync("F1");
if (!ctx.IsReplaying) log.Info("Calling F2.");
await ctx.CallActivityAsync("F2");
if (!ctx.IsReplaying) log.Info("Calling F3");
await ctx.CallActivityAsync("F3");
log.Info("Done!");
}
With this change, the log output is as follows:
Calling F1.
Calling F2.
Calling F3.
Done!
Debugging
Azure Functions supports debugging function code directly and that same support carries forward to Durable Functions, whether running in Azure or locally. However, there are a few behaviors to be aware of when debugging:
- Replay: Orchestrator functions regularly replay when new inputs are received. This means a single logical execution of an orchestrator function can result in hitting the same breakpoint multiple times, especially if it is set early in the function code.
- Await: Whenever an
await
is encountered, it yields control back to the Durable Task Framework dispatcher. If this is the first time a particularawait
has been encountered, the associated task is never resumed. Because the task never resumes, stepping over the await (e.g. F10 in Visual Studio) is not actually possible. Stepping over only works when a task is being replayed. - Messaging Timeouts: Durable Functions internally uses queue messages to drive execution of both orchestrator functions and activity functions. In a multi-VM environment, breaking into the debugging for extended periods of time could cause a another VM to pick up the message, resulting in duplicate execution. This behavior exists for regular queue-trigger functions as well, but is important to point out in this context since the queues are an implementation detail.
Tip
When setting breakpoints, if you want to only break on non-replay execution, you can set a conditional breakpoint which breaks only if IsReplaying is equal to false
.
Storage
By default Durable Functions stores state in Azure Storage. This means you can inspect the state of your orchestrations using tools such as Microsoft Azure Storage Explorer.
This is useful for debugging because you see exactly what state an orchestration may be in. Messages in the queues can also be examined to learn what work is pending (or stuck in some cases).
Warning
While it's easy and convenient to see execution history in table storage, you should avoid taking any dependency on this table at this time as the specifics of its usage may change prior to the general availability of the Durable Functions extension.


{% from "macros/_form.html" import render_form %} {% extends "admin/layout.html" %} {% block content %}
View profile Edit account