What’s wrong with estimates?
Nothing… Apart from pretty much everything with the way we use them…
If you are one of the people who actually enjoy spending their time giving estimates for how long a piece of software will take to write, you might as well stop reading this post. The last thing I ask of you is to leave me a comment below, so we can get to know each other. I’ve never met one of your kind…
If, on the other hand, you are one of the people who has spent long nights working on deadlines, overcommitted on work you couldn’t deliver, or been held accountable for estimates gone wrong for reasons not entirely within your control, (and we’ve all been there) then I would invite you to read on.
First, let’s go back, for a second, to look at WHY we are being asked to provide estimates.
Some of you will immediately think about planning. Some may think that they lead to predictability in software development iterations. Some may suggest we need them in order to make cost-based decisions. Others may argue that the analysis during the estimation process and breaking down into small tasks help better understand the requirements. Some may even go so far as propose that making good estimates shows you’re a good professional (“how well do you know your job, if you can’t provide a good estimate”).
I have heard all of the above arguments. And there is some truth in them all.

Let’s start with Planning
Clients want to know when they can finally get their hands on the feature you are working on. And they want to know that so they can plan other activities, coordinate with marketing, sales, etc. Right?
Wrong.
In fact, this is where the problem starts. Because if we unroll the statement above, we’ll see that you, my dear fellow developer, are now working on a feature that some client expects at a specific date and time.. Obvious? Why so?
My first problem is the “feature” part.
It seems someone has managed to convince the client to buy the outcome of (some weeks or months of) your work. Well, bravó to the sales person cause, in my eyes, what they’ve just done is… sell them a part of the future.
Selling software features is selling the future.
This is a subtle, but important point: they have not sold them your services for this period of time. We are talking about the outcome here, so they have sold them something which does not yet exist.
It may sound strange that I am insisting on this point, because “that’s just how the software industry works”, so you may consider it a given.
However, for me, this is a fundamental concept in our industry that is plain wrong. We have trained our customers to expect features (I’ve always liked how that word resembles “future”), rather than services.
And what is the problem with features, you may ask?
First of all, there’s … the communication gap:
We all know the above cartoon to be an exaggeration of what is happening in software development, but we all also know there’s some truth in it. The feature the client is expecting is different than what the team has built.
Agile Software Development comes to address that problem through iterative development and closer collaboration with the client. And yes, this can help, but only when the client is buying iterations, not features. Not when we are working in fixed scope, fixed budget contracts, with milestones and deadlines.
Estimates == Commitments
So, let’s talk about deadlines. And let’s start all the way up (on the business level), because once we have taken the first step in this direction, it’s very hard to go back.
Since you’ve decided to sell features (in fixed scope contracts), you also have deliverables. Therefore, you have a need for commitments. Because, remember, the client wants to know when the feature you’re working on will be ready.
And that was when they asked you for an estimate. And you gave some story points. BUT by providing one, you have just made a commitment. A commitment to deliver.
This is what we fail to understand about estimates. Estimates are treated as commitments.
They didn’t really ask “how much work is this”. They asked “when is it going to be ready”.
And to put it in our own terms, so that it’s clear:
You probably gave a java.time.Duration, they were looking for a java.time.Instant.
Which brings us back to selling the future. I am asked to make an estimate that is treated as a commitment that something will happen in the future.
And this is how I feel when that happens:
And this is all without touching the “Estimating in hours” pitfall. I am taking for granted that — as an industry — we have moved past that.
tl;dr
Estimates as a planning tool runs the great risk that they estimates are treated as commitments and not as forecasts for the amount of work a certain backlog item includes.
Enough with planning. Let’s move on to the other reasons for estimating:
Predictability
The main thinking here is: “If we keep track of how many points / hours / fruit sizes / etc. we’ve burned in the last few iterations, we will be able to start predicting what we will do in the upcoming ones”.
And, yes, I have seen this happen.
But just because it worked for somebody else, it doesn’t mean it will work for you. So, let me pose some challenges, as food for thought for the way you approach predictability:
- Are your iterations always a fixed length?
If some iterations are 9 days and others 11, you have already introduced one variable into your predictabilityCalculationEquation.
- Does your development team also do support?
If yes, you will have serious capacity fluctuations during your sprints. Nobody can predict how much support will come from clients during a certain iteration. Here’s another variable.
- If your development team does support, is there an explicit separation between support / development?
The concern here is context switching. The two are different kinds of activities, so you might want to consider ways to completely separate them. Some ideas include: rotating a person that is dedicated to support per day / week, or having the team group all support requests / tasks in a specific time of the day. Context switching is another variable.
- Does your development team accept interrupts from other departments?
If they do (and worse, if they also do support), then you are probably killing your devs’ flow. But that’s a whole other blog post on its own. Flow greatly affects how effective your developers are and that is very (very) hard to measure. With your understanding, i’ll call it a superVariable for your equation.
On the other hand, tracking effectiveness can be surprisingly simple. I don’t remember where I heard this concept from to attribute it properly, but I absolutely love it:
If you only count the number of uninterrupted hours of work, you already have a pretty good idea of how effective your team is!
Compare that to all the effort around tracking predictability…
- Does your team accept unplanned work during their iterations (of otherwise frozen requirements)?
If it does, and this is not support, then perhaps you should think whether iterations offer you much value anyway. Either way, the amount of unplanned work is another variable to consider.
- Do retrospectives take place after every sprint?
If it is predictability you’re after, do your teams actually spend time actively pursuing it? Or is this left to chance? Are you even tracking all the variables in your predictabilityCalculationEquation?
 But more on that when we talk about velocity below.
Cost-Based Decisions
Ask any businessman and he will tell you he needs to know what each feature is going to cost him before he can sign off on you building it.
I would too.
What makes all the difference in the world, however, is precision. Clearly, a few cents won’t make a difference. Neither will a few dollars / euros. A few tens of euros/dollars probably won’t either. When we start getting to hundreds, chances are you’ll start raising some eyebrows. Thousands, yup probably… But then again, it still depends on the project and the feature itself. What’s a few more thousand on a million dollar project?
It’s all relevant.
So, if your customer doesn’t really care whether a task takes 4 hours or 6, why are you being forced to estimate on hours?
Does it matter when you are delivering value that will greatly outweigh the cost? Remember: the value of a product is not the same thing as its price. A product with the exact same price probably has a different value for each of you reading this post.
And in most cases, your features are sold for their value (to the customer). Not their cost (your work hours). This is a crucial distinction in the business model of a company, so it is important to know what kind of company you work for.
As a general note before closing off this cost-based decisions part, please note: the focus here is on the estimate part, so that a decision can be made based on the cost. It doesn’t go into the retrospective part of tracking down what developers are spending their hours on, whether for lack of trust, or for understanding cost centres.
Better Understanding The Requirements
Moving on. Another reason for using estimates was that the estimation process typically undertaken at the start of an iteration (e.g. in a sprint planning meeting), allow you to refine the requirements and better understand what the customer wants.
I won’t go into too much detail on this one. Not only do I agree we need analysis, but, in fact, we are probably not doing enough upfront design. Some Agile Software Development methodologies don’t allow for too much of it.
Regardless, this still doesn’t go to say that this should come through estimates.
Professionalism
I won’t even go there. People who have brought up this argument have confused professionalism with empiricism. Being a good professional is not the same as being an experienced one.
Time for solutions
So… rants can be fun! Unfortunately, they’re not constructive unless they end up with some suggestions. Here are mine, because I don’t think estimates are completely worthless…. BUT:
-
there *IS *a lot of waste in trying to reach accurate estimates. We spend significantly more time improving the accuracy than what the business case justifies.
-
we should stop using estimates as commitments. This will allow us to eventually come up with more realistic planning — one that’s not based on deadlines.
-
we should stop worrying about predictability and** simply care about effectiveness**. If we trust our team, we should only care that they are being as effective as possible.
-
tracking Velocity is fine, as long as we are tracking just the Unit; not the actual number. If you have heard about using fruit sizes for estimates, then this will sound similar. However, the idea here is that we split the backlog items we estimate into 4 categories/buckets: “Hours”, “Days”, “Weeks”, “Months”.
This means:
-
“hours to complete” vs.
-
“days to complete” vs.
-
“weeks to complete” vs.
-
“months to complete” (you can probably make do even without this one).
I call these Time Unit Buckets.
In doing so:
-
First of all, we are considerably reducing the error margin for estimates.
-
We are keeping units of time which are easier for humans to relate to.
-
We are clearly communicating to other departments that** they should not expect hard deadlines from r&d**. Which is not a new thing btw, considering everyone already knows the truth about deadlines…
-
We make estimating / forecasting very (very!) fast. Once the main clarifications have been made, consensus doesn’t take more than a minute or two.
-
We can still track velocity as number of items in each bucket.
Please note what I am suggesting here is not entirely new or original. In fact, this is a similar approach to t-shirt sizes, or pieces of fruit. The important thing to keep in mind is relative sizing.
However, the trouble is, people still like to think in terms of time. I’ve witnessed many teams who always bring the discussion back to… hours. They may be talking to you about story points, but you can just tell… in their heads, it’s all “hours” and “days”.
And this is why i like the Time Unit Buckets analogy. Because it forces people to think in relative terms — and in so doing, it helps everyone understand that estimates are not commitments. But it also offers an easier mental model: time is easier to relate to…
All you have to do is forget the number you would put in front of the time unit, and just keep the unit itself.


Here we go, all about me - Dom O’Connell
Personal Details
My name is Dom O’Connell, , from Newark, Nottinghamshire, England.
Personal Information
I have been happily married to my wife, Samantha, since I was 21. I love my family, my friends, my wife and my God. I am a Christian, and my current home church is Everyday Champions Church in Newark.
Interests & Hobbies
I often spend my recreational time writing code and building projects. I love learning new skills relevant to my work. I find it incredibly satisfactory to learn how to do something new, so that’s what I spend my time doing.
I’m also a “tech geek”. Enjoy live production; lighting, sound, video etc. I volunteer on the production team at church, mostly doing lighting.
Other than that I enjoy films, and socialising - not that that’s particularly unique to me of course.
I’d like to be a “gamer” - but I find it too boring.
Work
I am fortunate enough to be in a job that reflects my interests. I thoroughly enjoy writing code, solving problems and helping build useful tools that people enjoy using. There is more on my work and employment here Employment and here Portfolio.


High five for biotech
by Staff reporterOur fifth annual edition on biotech will be online early February next year. The Biotech & theme will explore the sector’s role in transforming how different industries work day-to-day, with a focus on its impact on the world of food, fashion and the Global Goals. Email<EMAIL_ADDRESS>for our biotech digital edition media pack.


SHINE A film review by Steve Rhodes Copyright 1996 Steve Rhodes
RATING (0 TO ****): *** 1/2
It widely acknowledged that there is a fine line between genius and madness. Less well recognized is the narrow separation between a father's obsessive love and an abusive domination. SHINE is a true story of an Australian piano prodigy that examines this border between brilliance and insanity and between protection and suffocation. With some incredible performances, expect to see this movie on many best of the year lists.
As the story opens, we see an apparently homeless person, David Helfgott (Geoffrey Rush), babbling nonsense in the rain. His manic speech pattern has the cadence of an auctioneer, and his sentences sound like gibberish. As he does throughout his adult life, he smokes a cigarette rain or shine, even while jogging to get fresh air.
The story is told in a long series of flashbacks. The first is to David (Alex Rafalowicz) at about age seven playing in a piano contest. He loses, but one of the judges, Ben Rosen (Nicholas Bell), offers to tutor him.
You see David has never had a lesson other than from his autocratic and stubborn father, Peter (Armin Mueller-Stahl from THE MUSIC BOX). His father is self taught and proud of it. His children can learn music and become stars without help from the outside. He can teach them everything they need to know.
The sets by Vicki Niehus capture well the poverty of the Helfgott (means Help God) family. They live in a house with a corrugated aluminum exterior and a peeling paint interior. Rosen, in contrast, has a huge white house with verandas on every side and every floor.
When David (Noah Taylor from FLIRTING) becomes an adolescent, he is offered a place at a great music school in the US by Isaac Stern (Randall Berger). As Stern puts it, "America. You know, land of the free, home of the brave. You know, Mickey Mouse." But, it is not to be.
David's father runs the household with an iron glove. He does it as a protective mechanism since he is a Polish Jew who survived the Holocaust. Peter's violin had been smashed by his father. Peter abuses David, and one can assume that his father probably abused him. Most of Peter's abuse of his family is mental, but he does hit David some. He alternates behind hugging and telling him how much he loves him, and trying to toughen him up. Peter cautions his son, "In this world only the strong survive. The weak get crushed like insects."
The film has three great performances. Rush will probably draw the most praise, but I was just as impressed by Mueller-Stahl and Taylor. The effect that Peter has on David is devastating and almost terminal, but you will find yourself feeling sorry for Peter as well. He can barely cope with the world, and life has not been kind to him. In most films, when the father terrorizes the son this much, the audience instantly hates the villain father. Here it is much more complex. The script by Jan Sardi and the directing by Scott Hicks never go for the cheap thrills or easy put-downs. This is not a documentary, but it has a documentary's inherent authenticity.
Eventually, David gets a scholarship and goes to the Royal College in England. There he is trained by Cecil Parkes (John Gielgud), and there he finally plays the almost impossible Rachmaninoff Piano Concerto No. 3, known as Rack 3 to pianists. His father tried to force it on him at age seven.
The concert at the Royal College, where he plays the Rack 3, is the centerpiece of the film. The cinematography by Geoffrey Simpson (LITTLE WOMEN) is at its best here. Watch how David's hair is backlit so that you can see the sweat pouring off of every hair follicle. Simpson uses a blend of speeds which the editor (Philippa Karmel) then combines into a montage that leaves the viewer as exhausted as David.
At a certain point, David's brain snaps. It is easy to understand some of the possible reasons. After electroshock therapy he becomes little more that a curiosity back in Australia. Like an animal at a circus side show, he plays to amuse the crowds at restaurants. They get a kick out of seeing a guy who appears crazy being able to play such lovely and difficult classical music.
As could only happen in a true life story, there is an astrologer named Gillian (Lynn Redgrave) who shows up. Although engaged, she ditches her fiance to marry David. If it weren't real, this part would have been ludicrous.
There is much to admire in SHINE, but its beauty has to be seen and heard. The piano music in the film is played by the real life David Helfgott, and it is sublime. Words can not adequately convey this moving tale. Scott Hicks could have approached this story as a morose tragedy. Instead he has us look David in the eye and see his humanity and his gift. An uplifting story of a person who learns how to cope with the brutalities of his existence, and if not thrive, at least survive.
SHINE runs 1:45. It is rated PG-13. There is some rear male nudity, very brief sex, and the violence of hitting. There is no bad language. Given its frank treatment of child abuse, I would suggest the film is for kids only say eleven and up. I recommend the picture strongly and give it *** 1/2.
**** = One of the top few films of this or any year. A must see film. *** = Excellent show. Look for it. ** = Average movie. Kind of enjoyable. * = Poor show.  Totally unbearable.
REVIEW WRITTEN ON: December 17, 1996
Opinions expressed are mine and not meant to reflect my employer's.
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


This days I’m reading about Microservices. The idea is great. Instead of building a monolithic script using one language/framowork. We create isolated services and we build our application using those services (speaking HTTP between services and application).
That’s means we’ll have several microservices and we need to use them, and maybe sometimes change one service with another one. In this post I want to build one small container to handle those microservices. Similar idea than Dependency Injection Containers.
As we’re going to speak HTTP, we need a HTTP client. We can build one using curl, but in PHP world we have Guzzle, a great HTTP client library. In fact Guzzle has something similar than the idea of this post: Guzzle services, but I want something more siple.
Imagine we have different services: One Silex service (PHP + Silex)
use Silex\Application;
$app = new Application();
$app->get('/hello/{username}', function($username) {
return "Hello {$username} from silex service";
});
$app->run();
Another PHP service. This one using Slim framework
use Slim\Slim;
$app = new Slim();
$app->get('/hello/:username', function ($username) {
echo "Hello {$username} from slim service";
});
$app->run();
And finally one Python service using Flask framework
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/hello/<username>')
def show_user_profile(username):
return "Hello %s from flask service" % username
if __name__ == "__main__":
app.run(debug=True, host='<IP_ADDRESS>', port=5000)
Now, with our simple container we can use one service or another
use Symfony\Component\Config\FileLocator;
use MSIC\Loader\YamlFileLoader;
use MSIC\Container;
$container = new Container();
$ymlLoader = new YamlFileLoader($container, new FileLocator(__DIR__));
$ymlLoader->load('container.yml');
echo $container->getService('flaskServer')->get('/hello/Gonzalo')->getBody() . "\n";
echo $container->getService('silexServer')->get('/hello/Gonzalo')->getBody() . "\n";
echo $container->getService('slimServer')->get('/hello/Gonzalo')->getBody() . "\n";
And that’s all. You can see the project in my github account.


# [film] "Dark City" A Postview, copyright 1998 p-m agapow
In grand pulp tradition, a man (Sewell) wakes up amnesiac in a hotel room with a dead woman. Terrified he flees into the shadowy city, pursued by a puzzled cop (Hurt), his supposed wife (Connelly) and a group of mysterious figures cloaked in black, none of whom have Australian accents. There's a deranged doctor (Sutherland) in there too.
The pursued amnesiac murderer is an oldie but a goodie, a hook around which one could build a tight and twisty plot. But that's not what happens here. The most mysterious thing about "Dark City", is why the plot starts shrouded in such mystery and then so easily gives up its secrets to lumber into a comic book action plot. Was this intentional or has the writer and director (Alex "The Crow" Proyas) misjudged his audience? I suspect the second, but let's look at the good things first. (As always with mystery films, one must speak elliptically on certain plot points so as to preserve the surprise for viewers - even if the filmmakers don't find the surprise useful.)
>From the opening scenes, Proyas' visual style draws you in.  Later, we move through the Escher-like streets of the city to where a singer sways slowly in front of a microphone as her band plays in the darkness just outside the spotlight. The dark city itself is a kind of painting, a composition carefully constructed for each shot. Indeed, the actors do not so much move through each scene as just stand carefully within them. Movement would disrupt the careful placement and so characters are more part of the scenery than part of the plot.
Although this objectifying of the cast is often bad, within "Dark City" it works. William Hurt as the laconic police lieutenant is playing little more than a cliche, but this cliche belongs here and is done very well. Likewise, Jennifer Connelly's role could best be described as "The Girl" and wouldn't go astray in dozens of other movies. Nor does it go astray here. Kiefer Sutherland, who was nearly due for lifetime membership in the Bad Movie Actors Guild (whether you read it as "BAD movie ACTORS" or "BAD MOVIE actors") here turns a surprisingly good job as the oddly pathetic collaborator Dr Schreber, struggling pathetically against his controllers.
But this returns us to the plot. The sad fact is that the mystery is all but over 40 minutes into the film, leaving nothing but the visual style. After the teasing open scene, the director is in a tearing hurry to explain it all to us, with a disastrous opening monologue which all but tells you what's going on. (Even one of the poster blurbs gives the secret away.) So by the halfway mark, the battle lines are drawn and all that remains is for our hero to go mano a mano with the bad guys. And you don't seriously think that he's going to lose, do you? This is mighty little to hang the rest of the film on. Actually it's surprising that Dark City works as well as it does given that thinness of its plot. Some viewers might complain that "Dark City" is illogical. Given the immense levels of technology and powers dealt with, it's more "a-logical". Anything could happen. It's more fantasy than science-fiction. This tends to underline the arbitrariness and lack of mystery.
"Dark City" is thus a bit of a mixed bag, the product of a single person's vision that perhaps needed some tempering by an outside point of view to bring it to full fruition. However, just on the basis of the first half and visuals I'd rate it [***/interesting] and Peter Greenaway on the Sid and Nancy scale.
"Dark City" (aka "Dark Empire", "Dark World") Released 1998. Director and writer Alex Proyas. Starring Rufus Sewell, Jennifer Connelly, William Hurt, Ian Richardson, Kiefer Sutherland, Bruce Spence, Richard O'Brien, Colin Friels, John Bluthal, Melissa George.
-- Paul-Michael Agapow (p.agapow@ic.ac.uk), Dept. Biology, Imperial College "We were too young, lived too fast and had too much technology ..."
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


Tags: music and stuff
Ian William Craig - Red Sun Through Smoke
[9.5/10]
Release date: 2020-03-20
Zelienople - Hold You Up
Meditative slowcore. Best pop record in 2020 so far. If David Sylvian one day decides to make slowcore music it’s very likely to sound just like this album.
Release date: 2010-01-01
[8.8/10]
Loke Rahbek, Frederik Valentin - Elephant
Ambient / experimental album. Not your average easy listening ambient album, this one uses a lot of different sound textures to create a wide range of moods, from lofi ambient tracks like Touch and Vision to The Heart of Things, which is almost field recording fused with indie folk instrumental ballad, then to tracks with more prevalent electronica influences like Scarlett and Solina. Good stuff…
Release date: 2003-04-01
[8.5/10]
Racine - Quelque Chose Tombe
FFO Tim Hecker, Kara-Lis Coverdale and Ben Frost. I think that pretty much covers just about every living person on earth?
Release date:
[8.5/10]
Alex Zhang Hungtai, Tseng Kuo Hung - Longone
Top notch ambient record. Don’t expect any Sunset Rollercoaster style indie rock on this album though, as the grooves in it are pretty well hidden underneath the various layers of synth textures, or in some tracks like the dissonant Scrambled Egg or Broken Gate, a lovely song with organ and piano playing in D major, there really isn’t such thing as a consistent groove.
Release date: 1992-01-01
這張很好聽
[8.4/10]
The Fear Ratio - They Can’t Be Saved
Who doesn’t love quality dub techno / ambient / IDM / industrial techno / any kind of trippy & immersive electronic music that makes you forget how much time has passed as you put the album on repeat and didn’t feel the need to change things up? Fav tracks: Sender, Grey Code, The Invisible Girl, though the entire album is pretty dope.
Release date: 2020-03-13
[8.4/10]
Horse Lords - The Common Task
Microtonal math rock. Truly an underrated band. Camille thinks it’s super annoying though.
Release date: 2020-03-13
[8.4/10]
Nicolas Jaar - Cenizas
While not really familiar with the stuff he put out under his own name, the AAL album from last month was spectacular in every aspect. This album is on the same level as the said AAL album: both are equally arresting and gnarly, but this one has more contrasts in tonalities and features more playful lead lines, like those pentatonic synth lines on Gocce.
Release date: 1992-01-01
[8.3/10]
Sega Bodega - Salvador
Glitchy minimalistic experimental / cloud pop. FFO Sophie and Rina Sawayama.
Release date: 2020-02-14
[8.3/10]
Le Berger - Our Imagined Self Importance
Twenty minutes of pure ambient goodness. People who dig William Basinski would also dig this.
Release date:
[8.3/10]
Mhysa - Nevaeh
Claustrophobic bedroom / experimental ambient pop. The extremely minimal instrumentals do contribute to an overall desolate atmosphere in the record. Good stuff.
Release date: 2019-10-25
[8.2/10]
Dan Deacon - Mystic Familiar
Neo-psychedelia / indie pop. Quality stuff, trippy & quirky & bright. I like his older stuff but I think this one is his best yet.
Release date: 2020-01-31
[8.2/10]
Pantha Du Prince - Conference Of Trees
Compared to his older stuff this one features more orchestral sounds and elements from the classical genre, but still retains that playfulness and subtle danceability found in other Pantha Du Prince albums.
Release date: 2020-03-06
[8.1/10]
The Flashbulb - Our Simulacra
I tried listening to The Flashbulb’s older breakbeat stuff when I was in high school and wasn’t impressed… guess people really acquire new appreciation for more interesting / challenging music as they grow older? Anyway this intense IDM album contains tracks ranging from laid back jazz to shredding tunes with catchy beats like Stabmyself. Good stuff.
Release date: 2020-03-24
[8.0/10]
Psypiritual, The Lasso - Kirlian
Jazz-hop / chill-hop. Didn’t pay a lot of attention to the lyrics but the flows on this album are tight AF. The instrumentals are what you’d expect from The Lasso, whose The Sound Of Lasso from last year is also super fire.
Release date: 2005-02-27
[8.0/10]
Star Searchers - Avatar Blue
Pretty decent vaporwave.
Release date:
[7.9/10]
Jacaszek - Music For Film
Haunting dark ambient. Not like one of those spooky dark ambient tunes that achieves nearly nothing music-wise, this one is bleak yet thoroughly enjoyable.
Release date: 2005-01-01
[7.8/10]
Vladislav Delay - Rakka
This one sounds more like Ben Frost than Vladislav Delay’s older minimal glitch techno. Turbulent yet majestic.
Release date: 2021-04-15
[7.8/10]
Odious Mortem - Synesthesia
Tech death. The vocals could be done better but the guitars on this record is outta this world.
Release date: 2014-05-23
[7.8/10]
Soccer Mommy - Color Theory
Indie folk / pop. I like her first album much more than this one… it is still a good album, just not as dazzling and refreshing.
Release date: 2020-02-28
[7.8/10]
Leo Takami - Felis Catus And Silence
Japanese ambient / new age meets guitar-focused jazz music. Kinda reminds me of softer songs from those Japanese jazz fusion giants…
Release date: 2020-02-28
[7.5/10]
Caribou - Suddenly
Though somewhat lacking in depth and complexity when it comes to songwriting this is definitely an album I can see people enjoy and for good reasons. I like the lofi hip-hop / R&B / pop vibe going on in this record, and the lead melodies are all done pretty well. The warped guitar and keys are very subtle but somehow still manage to sit in the mix just right.
Release date: 2020-02-28
[7.3/10]
Vyva Melinkolya - Violet
Shoegaze / indie pop. Fuzzy and worbly.
Release date: 2021-05-14
[7.3/10]
Hilary Woods - Birthmarks
Melancholic experimental drone folk.
Release date: 2013-04-16
[7.3/10]
Intronaut - Fluid Existential Inversions
I’d still say their best album is 2013’s Habitual Levitations. This album is least experimental among their discography, and overall doesn’t sound as well constructed. I do like the melodic parts with interesting chord changes, on the other hand the riffs are borderline repetitive and don’t really do much for me.
Release date: 2020-02-28
[7.0/10]
Electric Sewer Age - Contemplating Nothingness
Eerie experimental / ambient release. I like Coil more than the music Danny Hyde releases under this moniker.
Release date:
[7.0/10]
Real Estate - The Main Thing
Indie rock veterans tries and succeeds in ripping off their older materials. This is by no means an awful album, all the elements you love from their previous stuff are all present on this album, but the lack of innovations and new ideas places this album in an awkward position in Real Estate’s discography.
Release date: 2020-02-28
[6.4/10]
U.S. Girls - Heavy Light
I very much prefer U.S. Girls’ 2018 album In A Poem Unlimited, which is delightfully groovy and funky, to this one. This album contains elements from gospel, blues and country, but not really in a way that I find appealing.
Release date: 2020-03-06
[6.3/10]
Tycho - Simulcast
Wasn’t too keen on catching up with whatever Tycho was putting out… This album sounds like those background music you’d hear on vlogs of some Youtube content provider who happens to claim to be big fan of “alternative” / “indie” music. To be more specific I think the texture of the lead synths is actually pretty cool, but the songs are all pretty predictable and feel rather lackluster. Overall it just wasn’t a lot of fun listening to this album.
Release date: 2020-02-28
[6.0/10]
Code Orange - Underneath
I don’t like it… If I want metalcore / industrial crossover band I’d look for Vein over Code Orange any given day. The metal songs are pretty obnoxious with cringe worthy The softer, more alternative rock leaning tracks don’t do much for me either. Treading uncharted waters overall is definitely a good thing for bands, but this one just shows how such attempts could fail horribly.
Release date: 2020-11-08
[5.0/10]
Wouter Van Veldhoven - Verzamelen I
A collection of tracks by the artist in the past decade. Gentle, calm ambient music created with modular synth and recorded onto degraded tapes. More organic sounding than the Japanese variation of this kind of music.
Release date:
[8.4/10]
Zelienople - Pajama Avenue
Pretty classic slowcore. FFO Aerial M.
Release date:
[8.3/10]
Vatican Shadow - American Flesh For Violence
Who doesn’t love quality dub techno / industrial albums?
Release date: 2019-12-06
[8.3/10]
juneunit - juneunit
Very nicely executed dub techno / ambient.
Release date: 2019-10-20
[8.2/10]
輕描淡寫 - 小圈子
Dreamy vaporwave / ambient from… Shenzhen? 誰啊…
Release date: 2017-07-14
[8.2/10]
R Beny - Echo’s Verse
Deep, immersive ambient record.
Release date: 2019-05-15
[8.2/10]
SØS Gunver Ryberg - Entangled
Dark sounding industrial techno. There are danceable tracks like Palacelike Timescale Of Black, and then there are noise tracks like Trispider. Cool album.
Release date: 2020-05-09
[8.2/10]
Lawrence - Films & Windows
Decent deep house / ambient techno. 11 absorbing tracks, while not like a lot of artists nowadays that fuse their entire album into a singular narrative this still feels like a really cohesive album.
Release date: 2013-09-16
[8.1/10]
Brunnen - The Garden Of Perpetual Dreams
Experimental / ambient / noise album. Lots of diverse sound going on, there are almost The Caretaker like ambient tracks and then there are harsh tracks like The Revenge Of The Killer Maracas. Or maybe call it sound collage / hauntology music?
Release date:
[8.1/10]
Tony Njoku - Your Psyche’s Rainbow Panorama
Avant-pop / vaporwave pop. Need some more time to get familiarized with it…
Release date:
[8.0/10]
Roll The Dice - Until Silence
Epic experimental electronic music. There are growling tracks that reminds me of Ben Frost’s sound, and then there are slow, smooth piano-dominated tracks like Haunted Piano.
Release date:
[8.0/10]
Thantifaxath - Void Masquerading As Matter
I dig Sacred White Noise a lot but totally slept on this one when it came out in 2018. Compared to the former this record is not as discordant and eerie. Still a stellar black metal album though!
Release date:
[7.8/10]
Pye Corner Audio - Dark Phase
Acid club / IDM. Groovy stuff.
Release date: 2020-07-31
[7.7/10]
Mavi - Let The Sun Talk
Lofi jazz-hop. I think the lyrics are on point, but the instrumentals don’t really have a lot of kick.
Release date: 2019-10-18
[7.7/10]
Somaticae - Catharsis
Spooky ambient.
Release date: 2021-06-02
[7.6/10]
Sudan Archives - Sudan Archives
Hip-hop / R&B with unconventional violin lead lines. Pretty enjoyable.
Release date: 2019-11-01
[7.6/10]
Oto No Wa: Selected Sounds Of Japan 1988-2018
When compared with last year’s similarly themed compilation release by Topshelf, this one features tracks that are more playful and less contemplative. Still a good record but I’d take the one release by Topshelf any given day.
Release date: 2017-08-18
[7.5/10]
Nautilis - Are You An Axolotl
IDM / hip-hop. While stylistically diverse this album feels a bit unfocused than my liking.
Release date:
[7.4/10]
Edmund Finnis, Galya Bisengalieva, Robert Ames - Edmund Finnis: Brother
Sombre modern classical music. Too short…
Release date:
[7.2/10]
Yukari - Echo
Korean chillwave / dream pop. The entire album sounds pretty safe and harmless.
Release date: 2007-09-25
[7.1/10]
Kitty - Haha, I’m Sorry
The lyrics are pretty nonsensical but the songs themselves are alright, pretty neat cloud pop / rap stuff.
Release date: 2019-10-18
[7.0/10]
Comments


|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object GameObject.TileMap
public class TileMap
The TileMap class is used to represent the map or grid where GamePlay takes place. It is a container for all the objects that are drawn on the grid during gamePlay, including: walls, enemies, powerUps, and the door. This class is also in charge of drawing all of these objects on the grid.
| Field Summary | |
|---|---|
static int |
CAMERA_MOVING_LIMIT_LEFT
|
static int |
CAMERA_MOVING_LIMIT_RIGHT
|
static int |
NUM_OF_COLS
|
static int |
NUM_OF_ROWS
|
static int |
TILE_SIDE_LENGTH
|
static int |
TOTAL_HEIGHT_OF_ROWS
|
static int |
TOTAL_WIDTH_OF_COLUMNS
|
| Constructor Summary | |
|---|---|
TileMap(Player player,
int selectedStage,
java.lang.String userName)
Initialize a TileMap object to hold and interact with all the game objects that are present in a specified stage. |
| Method Summary | |
|---|---|
void |
addFlames(int bombPosX,
int bombPosY)
Populates the flames ArrayList with a new set of flames. |
void |
addNewEnemy()
Adds a new enemy to the enemies ArrayList. |
void |
countDownToHarderEnemySetSpawn()
Countdown timer used to trigger the spawn of a harder set of enemies once the 200 seconds that a stage lasts ends. |
void |
createEnemySet()
Populates the enemies ArrayList with a new set of enemies that matches the blueprint given by the current stage. |
EnemyType |
determineHarderEnemyTypeToSpawn()
Determines the hardest enemy type that follows the current hardest enemy type present on the grid. |
void |
determineIfShouldSpawnHarderEnemies()
Function called when a bomb explosion collides with a powerUp or the door. |
void |
drawEnemies(java.awt.Graphics2D g)
Draws the enemies on the grid. |
void |
drawObjects(java.awt.Graphics2D g)
Draws all the game objects contained within the TileMap instance on the grid. |
void |
drawTiles(java.awt.Graphics2D g)
Draws the wall and flame objects placed on the different tiles of the grid. |
void |
generateDoor()
Generate a door object to be placed randomly on the grid. |
void |
generatePowerUp()
Generate a powerUp following the blueprint given by the current stage. |
int |
getBombRadius()
Get the radius of explosion of a bomb. |
StageData |
getCurrentStage()
Retrieve the StageData object corresponding to the current stage difficulty. |
int |
getCurrentStageNumber()
Retrieve the current stage number the user is playing. |
Door |
getDoor()
Get the door object present on the grid. |
java.util.ArrayList<Enemy> |
getEnemies()
Retrieve the enemies present on the grid. |
java.util.ArrayList<Flame> |
getFlames()
Get the flame objects present on the grid. |
java.util.ArrayList<Enemy> |
getNewEnemySet()
Retrieve the new enemySet to be spawned once a bomb explodes on a powerUp or door. |
PowerUp |
getPowerUp()
Get the powerUp object contained in the grid. |
int |
getTimeToHarderSet()
Gets the value of timeToHarderSet |
int |
getTimeToHarderSetSpawn()
|
GameObject[][] |
getWalls()
Get the Wall objects present on the grid. |
void |
incrementBombRadius()
Increments the bomb explosion radius by 1 tile. |
boolean |
isBonusStage()
Determine whether the current stage is a bonus stage or not. |
boolean |
isHarderSetAlreadyCreated()
Determine whether a harder enemy set has been created or not. |
boolean |
isNextStageTransition()
Determine whether we are currently transitioning between stages or not. |
boolean |
isSpawnHarderSet()
Gets the boolean on whether to spawn harder enemies or not |
void |
moveEnemies(int playerPosX,
int playerPosY,
boolean playerIsVisible)
Displaces the enemies on the grid, and initiates their artificial intelligence chase mode if the player is at a specified distance. |
void |
nextStage()
Advances to the next stage in the progression of the game. |
void |
populateGridWithBlocks()
Populates the walls two dimensional array with the specific information about the walls present in the current grid. |
void |
setBombRadius(int bombRadius)
Sets the radius of the bomb |
void |
setBonusStage(boolean isBonusStage)
Set whether the TileMap instance represents a bonus stage or not. |
void |
setCurrentStage(int currentStage)
Specify the stage number that the TileMap instance represents. |
void |
setDoor(Door door)
Set the door object present on the grid. |
void |
setEnemies(java.util.ArrayList<Enemy> enemies)
Set the enemies present on the grid. |
void |
setFlames(java.util.ArrayList<Flame> flames)
Set the flames objects present on the grid. |
void |
setHarderSetAlreadyCreated(boolean harderSetAlreadyCreated)
Set whether a harder enemy set has been created or not. |
void |
setNextStageTransition(boolean nextStageTransition)
Specify whether we are transition between stages or not. |
void |
setPowerUp(PowerUp powerUp)
Set the powerUp present in the grid. |
void |
setSpawnHarderSet(boolean spawnHarderSet)
Sets the boolean to true or false on whether to spawn harder enemies |
void |
setTimeToHarderSet(int timeToHarderSet)
Sets value of timeToHarderSet |
void |
setTimeToHarderSetSpawn(int timeToHarderSetSpawn)
Sets the boolean for timetoHarderSetSpawn |
void |
setWalls(GameObject[][] walls)
Specify the walls present on the grid. |
void |
spawnSetOfHarderEnemies(int spawnPosX,
int spawnPosY)
Creates a new set of enemies of one difficulty higher than the current most difficult enemy present on the grid. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final int TOTAL_WIDTH_OF_COLUMNS
public static final int TOTAL_HEIGHT_OF_ROWS
public static final int NUM_OF_COLS
public static final int NUM_OF_ROWS
public static final int TILE_SIDE_LENGTH
public static final int CAMERA_MOVING_LIMIT_LEFT
public static final int CAMERA_MOVING_LIMIT_RIGHT
| Constructor Detail |
|---|
public TileMap(Player player, int selectedStage, java.lang.String userName)
player
- A player instance used to interact with various logic elements present
in this classselectedStage
- An integer specifying the stage number that will be used as the
blueprint for enemy generation and powerUp generation.userName
- | Method Detail |
|---|
public void drawObjects(java.awt.Graphics2D g)
g
- Graphics object corresponding to the JPanel where the game play state is rendered.public void determineIfShouldSpawnHarderEnemies()
public void drawTiles(java.awt.Graphics2D g)
g
- Graphics object corresponding to the JPanel where the game play state is rendered.public void drawEnemies(java.awt.Graphics2D g)
g
- Graphics object corresponding to the JPanel where the game play state is rendered.public void nextStage()
public void populateGridWithBlocks()
public void createEnemySet()
public void addNewEnemy()
public void generatePowerUp()
public void generateDoor()
public void addFlames(int bombPosX, int bombPosY)
bombPosX
- Integer representing the x coordinate where the bomb exploded.bombPosY
- Integer representing the y coordinate where the bomb exploded.public void countDownToHarderEnemySetSpawn()
public void spawnSetOfHarderEnemies(int spawnPosX, int spawnPosY)
spawnPosX
- Integer representing the x coordinate where the new enemies
will spawn.spawnPosY
- Integer representing the y coordinate where the new enemies
will spawn.public void moveEnemies(int playerPosX, int playerPosY, boolean playerIsVisible)
playerPosX
- Integer specifying the x position of the player on the grid.playerPosY
- Integer specifying the y position of the player on the grid.playerIsVisible
- Boolean specifying whether the player is visible or not.public EnemyType determineHarderEnemyTypeToSpawn()
public void setTimeToHarderSetSpawn(int timeToHarderSetSpawn)
timeToHarderSetSpawn
- Boolean is passed to set timeToHarderSetSpawn to True or Falsepublic void incrementBombRadius()
public StageData getCurrentStage()
public int getCurrentStageNumber()
public void setCurrentStage(int currentStage)
currentStage
- Integer specifying the stage number that the TileMap
represents.public java.util.ArrayList<Enemy> getEnemies()
public void setEnemies(java.util.ArrayList<Enemy> enemies)
enemies
- An ArrayList containing the enemy objects to be drawn on the grid.public GameObject[][] getWalls()
public void setWalls(GameObject[][] walls)
walls
- A two dimensional array representing the map. Each slot contains
a wall or a null object specifying that there is no wall.public java.util.ArrayList<Flame> getFlames()
public void setFlames(java.util.ArrayList<Flame> flames)
flames
- An ArrayList containing the flame objects to be drawn on the grid.public PowerUp getPowerUp()
public void setPowerUp(PowerUp powerUp)
powerUp
- A powerUp object to be drawn on the grid.public Door getDoor()
public void setDoor(Door door)
door
- public boolean isBonusStage()
public void setBonusStage(boolean isBonusStage)
isBonusStage
- A boolean representing whether the TileMap current represents a bonus
Stage or not.public boolean isHarderSetAlreadyCreated()
public void setHarderSetAlreadyCreated(boolean harderSetAlreadyCreated)
harderSetAlreadyCreated
- A boolean specifying whether a harder enemy set has been
created or not.public boolean isNextStageTransition()
public void setNextStageTransition(boolean nextStageTransition)
nextStageTransition
- A boolean representing whether we are in a stage transition or not.public int getTimeToHarderSetSpawn()
public int getBombRadius()
public void setBombRadius(int bombRadius)
bombRadius
- The radius of the bomb is passedpublic java.util.ArrayList<Enemy> getNewEnemySet()
public boolean isSpawnHarderSet()
public void setSpawnHarderSet(boolean spawnHarderSet)
spawnHarderSet
- Boolean is passed to set spawnHarderSet to true or falsepublic int getTimeToHarderSet()
public void setTimeToHarderSet(int timeToHarderSet)
timeToHarderSet
- int representing time regarding harder enemy spawn
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


The default Grid
1 of 3 jay mata di 1 of 3 jay mata di1 of 3 jay mata di
2 of 3
3 of 3
The Grid with width property
1 of 3 (wider)
2 of 3
3 of 3
1 of 3
2 of 3 (wider)
3 of 3
The Grid with column size="auto"
Variable width content
3 of 3
Stacked to horizontal
1 of 4
2 of 4
3 of 4
4 of 4
Reordering : Offsetting columns.
Move columns to the right by adding the offset property.
This property increases the margin left of the column by the number of specified columns.
Example - ion-col size="3" offset="3"
1 of 2
2 of 2
Reordering : Offsetting columns.
Offsets can also be added based on screen breakpoints.
Here's an example of a grid where the last column will be offset by 3 columns for md screens and up:
1 of 3
2 of 3
3 of 3
Reordering : Push and pull.
Reorder the columns by adding the push and pull properties. These properties adjust the left and right of the columns by
the specified number of columns making it easy to reorder columns. For example, in the following grid the column with
the 1 of 2 description will actually be the last column and the 2 of 2 will be the first column.
1 of 2
2 of 2
Alignment
Vertical alignment
1 of 4
2 of 4
3 of 4
4 of 4
#
#
#
1 of 4
2 of 4
3 of 4
4 of 4
#
#
#
1 of 4
2 of 4
3 of 4
4 of 4
#
#
#
1 of 4
2 of 4
3 of 4
4 of 4
#
#
#
Alignment
Vertical alignment: aplied on column
ion-col class="ion-align-self-start"
ion-col class="ion-align-self-center"
ion-col class="ion-align-self-end"
1 of 4
2 of 4
3 of 4
4 of 4
#
#
#
Alignment
Horizontal alignment.
The 4th row is : ion-row class="ion-justify-content-around". This seems to be really useful.
1 of 2
2 of 2
1 of 2
2 of 2
1 of 2
2 of 2
1 of 2
2 of 2
1 of 2
2 of 2


Pats Terrible Salmon Cookies
Home
About
Locations
Store
Sales
Store Sales Data
Add A New Location
Location Name:
Min Customers per Hour:
Max Customers per Hour:
Average Cookies Per Customer:
Add!


Explains a temporary solution how to use the Testability Explorer in Maven 2 projects.
Background
Testability Explorer is an open-source tool that identifies hard-to-test Java code. Right now, you can run the program from the Command Line or using the Ant Task. There is no Maven 2 plugin available at the moment. You have to use the maven-antrun-plugin
for the time being. However, there is one big problem. The Testability Explorer JAR files are not available yet in any Maven 2 repository. This page offers a temporary solution for this problem until the JAR files become available in any public Maven 2 repository.
Installing the JAR files to local Maven repo
In order to use the maven-antrun-plugin
with the com.google.ant.TestabilityTask
, you have to add two dependencies into your Maven 2 pom.xml under the dependencies section.
<dependency> <groupId>com.google.code.testability-explorer</groupId> <artifactId>testability-explorer</artifactId> <version>1.3</version> </dependency> <dependency> <groupId>com.google.code.testability-explorer</groupId> <artifactId>ant-testability-explorer</artifactId> <version>1.3</version> </dependency>
As said before, the JAR files are not available in any public repository. You have to add them manually into your local repository.
Running the Ant Task from Maven
Now that you have the JAR files available locally, you can use the maven-antrun-plugin
to run the Testability Explorer during builds.  Reports can be found in ${testability.report.dir}/results.xml" /> </tasks> </configuration> <goals> <goal>run</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
This will execute the com.google.ant.TestabilityTask
during the test phase of a Maven 2 run, ie. if you run mvn test
. Note: in the XML snippet above you have to replace my.package
with your own Java package that you want to have tested.
Prospects
The suggested solution is far from optimal. As the JAR files will become available in a public Maven 2 repository, you will not have to copy them manually into you local repository. Sooner or later, there will also be am official Maven 2 plugin, so that the maven-antrun-plugin
will not be required anymore.


Data
Here Response 8 has the highest counts, I assume it the quote that is granted.
Records: 60k
Features: 127
Target: Response (has 8 categories, 1-8)
Features:
1 Misc : Age ht wt bmi 4
2 Product Info : Product_Info_1 to 7 7
3 Employment Info : Employment_Info_1 to 6 6
4 Insured Info : InsuredInfo_1 to 7 7
5 Insurance History: Insurance_History_1 to 9 9
6 Family History : Family_Hist_1 to 5 5
7 Medical History : Medical_History_1 to 41 41
8 Medical Keywords : Medical_Keyword_1 to 48 48
Target: Response 1
ID : ID 1
---------------------------------------------------
Total Features: 127
Dependent Variable: 1 (Response)
Quadratic weighted kappa is rank based metric used for multiclass classification. It has the minimum value 0 (random guess) and maximum value 1 (total agreement).
from sklearn import metrics
score = metrics.cohen_kappa_score(ytest,ypreds,weights='quadratic')
I have tried various machine learning models for this project. The results are presented below.
Linear Regression
Weighted quadratic kappa = 0.569630318923444
Xgboost Classifier softprob
objective = "multi:softprob"
Cleaning eval_metric kappa
simple default 0.5377897181694622
detailed default 0.5438646999324421
simple custom 0.5530053047703208
detailed custom 0.5407784634778012
Xgboost poission regressor
objective = "count:poisson"
Model TrainKappa TestKappa
0 xgb reg 0.669651 0.603765
1 xgb reg + offset 0.720368 0.649496
2 xgb poisson 0.682188 0.609387
3 xgb poisson + offset 0.735050 0.655627
Xgboost poisson regressor ensemble voting
Model TrainKappa TestKappa
0 xgb reg 0.669651 0.603765
1 xgb reg + offset 0.720368 0.649496
2 xgb poisson 0.682188 0.609387
3 xgb poisson + offset 0.735050 0.655627
4 ensemble 0.623919 0.593312
5 ensemble + offset 0.683268 0.644076


In MacBooks with a Touch Bar, holding down the fn
function key
usually changes its behaviour. For instance, it might show the
Control Strip by default, and holding down would instead show the
F1
-F12
function keys.
This modification takes that idea further, by using the combination
⇧fn
as a hard toggle, like ⇪
Caps Lock is to ⇧
Shift.


Dismiss
Capture
Send


I forget my basic training. The browser of course does TCO, tail call optimization, so wrapping all event listeners will only cost a little when they are added, not when they run. When they run, it is just a couple of lookups, when they are created, its just making a closure object. It has close to zero cost.


TypeScript 2.2 adds support for the ECMAScript 2015 mixin class pattern. This pattern's quite useful since it's not easy to pass custom arguments to some Nest application building blocks, such as interceptors or guards. The mixin classes have much more applications, but here we're gonna focus on this single use-case.
For demonstration purposes, let's rewrite the CacheInterceptor
which we've built in the interceptors section and extract the isCached
condition.
{{ cacheInterceptor }}
Now the CacheInterceptor
is abstract and contains the single abstract member - the isCached
function.
Based on this class, we're gonna create the mixinCacheInterceptor
function.
{{ mixinCacheInterceptor }}
Notice The mixin()
is a helper function. Use it whenever you wanna create a mixin class.
This function takes the isCached()
predicate as an argument and assigns it to the mixin class.
The last step is to set up the interceptor:
{{ setup }}
The mixin()
function returns the class, so you can use it in the same manner as a plain, self-created classes.


I have often observed (e.g. Boettiger & Hastings (2012) ) that if purely stochastic transitions out of a potential well happen, then they happen fast (dispite the fact that waiting time for them to happen is very long). Yesterday Marc mentioned an interesting proof of this from Don Ludwig, who was able to show that the waiting time to reach a large deviation in a time \(t\), given that it reaches it at all, is of the same order as the return time from the large deviation to the equilibrium, \(\log(L/\sigma)\). That’s an absolutely fascinating conclusion, indeed a bit stronger than even I had expected (the waiting time until an escape is observed rather different! – of order \(\exp(L^2/\sigma^2)\).
Don’s derivation is repeated in pages 302-311 Marc’s “Theoretical Biologist’s Toolbox,” rather delightfully too (e.g. the “Kumura Maneuver”, or sidenotes such as “it is also kind of fun to do a web search with key words ‘Dawson’s Integral’”). Lande (1985) provides a somewhat different derivation of the same result.
Return time
The return time calculation is straight forward. Consider our OU model
\[dX = - X dt + \sigma dB_t\]
We ask for the return time into a neighborhood \(\sigma\) of the origin, starting at \(X_0 = L\) distant from the origin. The deterministic solution
\[ \tfrac{dx}{dt} = - x \]
implies $x_t = L (1 - e^{-t}) $, so setting \(x_t = \sigma_t\) and solving for \(t\), we find that \(x_t\) is within \(\sigma\) of \(t\) in time \(\log{L} - \log{\sigma}\), or \(\log{L/\sigma}\), as claimed.
Waiting time
The time we must wait before any trajectory can reach a given boundary is a classic hitting-time problem for the OU process that can be solved in several ways. Any of these basically start from PDE that must be satisfied for the hitting time (e.g. see Crispin Gardner, Stochastic Methods) for the OU process at stationary state (\(T_t = 0\)),
\[ \tfrac{\sigma^2}{2} T_{xx} - x T_x = -1 \]
With the appropriate boundary conditions \(T(L) = T(-L) = 0\). A little integration (see Dynkin’s formula) shows this scales as \(\exp(L^2/\sigma^2)\) (Compare to the Brownian walk that doesn’t have to escape any pull, which escapes at rate \(L^2/\sigma^2\).
Exit time
Most trajectories will thus return many times to the origin (stable point) before finally escaping. But if we focus just on the part of the trajectory from some value near the origin, that eventually escapes without ever crossing the origin again,
\[u_t(x,t) dt = Pr\left(\textrm{exit from }(0; L]\textrm{in the interval } (t, t + dt) \textrm{without having crossed} 0 | X(0) = x\right)\]
We are interested in comparing the average time taken by trajectories exiting by time \(t\) relative to the probability of exiting at all (i.e. as \(t \to \infty\)),
\[ T_c(x) = \frac{\int^{\infty}_0 t u_t(x,t) dt }{\lim_{t \to \infty} u(x,t) }\]
From here we set up the classic hitting time solution for the OU for the time-dependent PDE,
\[u_t = \frac{\sigma^2}{2} u_{xx} = x u_x \]
and with initial condition \(u(x,t=0) = 0\), \(u(0,t) = 0\), and \(u(L, t) = 1\). A bit of effort and an approximation to Dawson’s integral for \(L \gg x\) leads Don to bound the mean time to exit,
\[T_c(x) < \frac{1}{\sigma} \log\left(\frac{L}{\sigma}\right)\]
as claimed.
Results from Marc’s other suggestion
Marc also suggested exploring this by directly comparing steps left and right. A related way to measure the relative number of steps in the positive direction relative to the negative direction is Kendall’s tau rank correlation coefficient, which also looks at the number of increases relative to the number of decreases.
I’ve computed this statistic for my sample trajectories and plotted as a histogram here. The negative skew shows the tendancy to decrease (which is the direction of the deviation I selected – smaller population sizes)
I’ve also computed the ratio of steps up to steps down and histogrammed that: like the above, it shows more steps down than up, though not as dramatic as I might think by any means. Have to think about the role of the step size between observations in formulating this perhaps.
For the sake of completeness:
I may try and add a demonstration of Ludwig’s result above when I get some more free time to fiddle; will just need to add some additional simulations of return trajectories.
References
- C. Boettiger, A. Hastings, (2012) Early Warning Signals And The Prosecutor’S Fallacy. Proceedings of The Royal Society B: Biological Sciences 279 4734-4739 10.1098/rspb.2012.2085
- R Lande, (1985) Expected time for random genetic drift of a population between stable phenotypic states. Proceedings of the National Academy of Sciences https://www.pnas.org/content/82/22/7641.abstract


{% block js %} {% endblock %}
This is a template for a simple marketing or informational website. It includes a large callout called the hero unit and three supporting pieces of content. Use it as a starting point to create something more unique.
Learn more


Module table
Table Manipulation This library provides generic functions for table manipulation.
It provides all its functions inside the table table.
Most functions in the table library assume that the table represents an array or a list. For these functions, when we talk about the "length" of a table we mean the result of the length operator.
Type table
| table.concat(table, sep, i, j) |
Given an array where all elements are strings or numbers, returns
|
| table.insert(table, pos, value) |
Inserts element |
| table.maxn(table) |
Returns the largest positive numerical index of the given table, or zero if the table has no positive numerical indices. |
| table.remove(table, pos) |
Removes from |
| table.sort(table, comp) |
Sorts table elements in a given order,
in-place, from |
Type table
Field(s)
- table.concat(table, sep, i, j)
-
Given an array where all elements are strings or numbers, returns
table[i]..sep..table[i+1]...sep..table[j]
.The default value for
sep
is the empty string, the default fori
is 1, and the default forj
is the length of the table. Ifi
is greater thanj
, returns the empty string.Parameters
-
#table table
: table to handle. -
#string sep
: the separator, default value is an empty string. -
#number i
: start index, default value is 1. -
#number j
: end index, default value is lenght of the table.
Return value
#string: the concatenated table.
-
- table.insert(table, pos, value)
-
Inserts element
value
at positionpos
intable
, shifting up other elements to open space, if necessary.The default value for
pos
isn+1
, wheren
is the length of the table, so that a calltable.insert(t,x)
insertsx
at the end of tablet
.Parameters
-
#table table
: table to modify. -
#number pos
: index of insertion. -
value
: value to insert.
-
- table.maxn(table)
-
Returns the largest positive numerical index of the given table, or zero if the table has no positive numerical indices.
(To do its job this function does a linear traversal of the whole table.)
Parameter
-
#table table
: table to traverse.
Return value
#number: the largest positive numerical index of the given table, or zero if the table has no positive numerical indices.
-
- table.remove(table, pos)
-
Removes from
table
the element at positionpos
, shifting down other elements to close the space, if necessary.Returns the value of the removed element. The default value for
pos
isn
, wheren
is the length of the table, so that a calltable.remove(t)
removes the last element of tablet
.Parameters
-
#table table
: table to modify. -
#number pos
: index of deletion. (default value is the lenght of the table)
-
- table.sort(table, comp)
-
Sorts table elements in a given order, in-place, from
table[1]
totable[n]
, wheren
is the length of the table.If
comp
is given, then it must be a function that receives two table elements, and returns true when the first is less than the second (so thatnot comp(a[i+1],a[i])
will be true after the sort). Lua operator < is used instead.The sort algorithm is not stable; that is, elements considered equal by the given order may have their relative positions changed by the sort.
Parameters
-
#table table
: table to sort. -
comp
: a function which take to table and returns true when the first is less than the second.
-


GDB also can mimic a human user and use a ROM monitors normal debug
commands as a backend. This consists mostly of sending and parsing
ASCII
strings. All the ROM monitor interfaces share a common set
of routines in gdb/monitor.c
. This supports adding new ROM
monitor interfaces by filling in a structure with the common commands
GDB needs. GDb already supports several command ROM monitors, including
Motorola's Bug
monitor for their VME boards, and the Rom68k
monitor by Integrated Systems, Inc. for various m68k based boards. GDB
also supports the custom ROM monitors on the WinBond and Oki PA based
targets. There is builtin support for loading files to ROM monitors
specifically. GDB can convert a binary into an srecord and then load it
as an ascii file, or using xmodem
.


{% extends "./dash-layouts/dash-base.html" %} {% block main %} {% for app in curr_app_list %} {{title}}


Memory Game
00:00
Score: 0
New Game
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
Congratulations!
You've scored 5/10 in 60 seconds
Great!


By using BOLDCODE.IO, the user takes note and accepts the conditions listed here after.
In application of the french law n°2004-575 of June 21st, 2004 for the confidence in the digital economy, to report contentious content or if you are victim of fraudulent use of the website BOLDCODE.IO, thank you contact the site administrator at the email address<EMAIL_ADDRESS>The information collected by BOLDCODE.IO is never communicated to third parties without the express consent of the persons concerned.
Except in special cases and box on the collection medium, this information come from the voluntary registration of personal data provided by the user, with his explicit consent on the use and treatment of these data.
In application of the french law n°78-17 of January 6th, 1978 relative to the computing, files and freedoms, the Internet user has a right of access, rectification and deletion of personal information about him stored by BOLDCODE.IO, which he can exercise at any time with his responsible, Glenn ROLLAND, at the following address<EMAIL_ADDRESS>The website BOLDCODE.IO does not use any cookies, it is cookies free :)
However BOLDCODE.IO uses CLOUDFLARE for distribution purposes of the content of the pages, between the host and the user. This service may inserts a cookie for technical purposes to allow it to properly route the connection of the user in his infrastructure during the visit of the site.
BOLDCODE.IO is a website published by the company BOLDCODE SAS and published under the direction of Glenn ROLLAND.
The entire site boldcode.io, pages and contents, is the property of BOLDCODE SAS
Administrative contact of the site BOLDCODE.IO: Glenn ROLLAND<EMAIL_ADDRESS>BOLDCODE.IO declines any responsibility as for the possible ones interruptions of the BOLDCODE.IO website and its services.
The whole site BOLDCODE.IO, design, graphic charter and applications, was created and developed and is administered by BOLDCODE SAS.
In application of Articles L. 111-1 and L. 123-1 of the French Property Code Intellectual, all the contents of this site (texts, images, videos and any media in general), unless explicitly stated otherwise, is protected by the copyright. The reproduction, even partial, of the contents of the pages of this without the prior consent of BOLDCODE SAS is strictly prohibited (short citations are permitted by French law for comments and as long as they are strictly concomitant and are specified the original author and the web link to the source page).
BOLDCODE SAS is registered at Annecy RCS: 837 643 931
© Copyright BOLDCODE SAS — All rights reserved.


This API provides convertion tools to switch between:
Code sample:
So le_hex_StringToBinary will convert HexString to binString.
and le_hex_BinaryToString will convert binString to HexString.
Copyright (C) Sierra Wireless Inc. Use of this work is subject to license.


ETL Data Reader : Changelog¶
v 2.1.3¶
features:
parameter to set the integer from which the folder names will start when saving to file
v 2.1.2¶
fixed:
save_to
crashes when some special characters should be saved to filecertain images were not saved correctly (were saved completely black)
v 2.1¶
features:
parameter to save all images and labels to disk
fixed:
loading always returns numpy arrays
katakana encoded with “KE”, etc. are now converted to ケ, etc.
some of the empty images are not loaded anymore
v 2.0:¶
features:
multi processed loading of the data is now possible
changes:
breaking
the parameter ‘include’ expects now a list


I recently made the leap and decided to learn AngularJS. When I was hired, the company I was working for was doing a couple of projects in Angular, so I decided to expose myself to it just to see what all the hype was about and to ensure I had an idea what was goign on in meetings. Unfortunately, I had also just started learning JavaScript a couple months before that. In addition, I hadn't seriously programed in several years, and my academic education didn't focus on web technologies or functional programming as much as I would have liked (or maybe I just didn't pay attention). Therefore, I found myself learning core JavaScript, Jquery, AngularJS, CSS, HTML, Git, LESS and other enabling web technologies at the same time, which I imagine is a relatively common experience these days in the WebDev ecosystem, since we all start off at the same place, more or less, and many of these tchnologies are not taught (not in depth, anyway) in most universities' CS programs.
As you've likely read elsewhere, and luckily for us, AngularJS is relatively simple in it's basic form, and can be leveraged at many different levels in order to add varying degrees funcionality to a website. At it's most in depth, Angular controls all aspects of App functionalty, including routing, data binding and data structure tools. However, it's also simple to add certain bits of functionality (like data binding, which Angular makes as easy as pie) and then leave it at that. It's pretty easy to do the simple stuff, but it gets quite complex to create whole webapps with Angular. A good dveloper should expect that, though, right? WebApps are complex structures, and Angular just gives you some better tools to manage=-0 them. It's all JavaScript after all, anyway, and as the Dev, you're still responsible for persuading the framework to do your will in the most elegant and convincing way possible.
Given my experience learning Angular, I will pass on my lessons learned while learning basic Web Development as well. Once we learn something, it can be easy for programmers to take that information for granted, not quite remembering what it was like to start out and not know how things tied together, and not really knowing which questions to ask in order to figure it out. So, if you're an erxperienced WebDev, you may find that this article makes some pretty obvious points, but if you're new, hopefully my expereice can inform yours.
Angular is the only MVC framework that I have used. Therefore, I don't have the expertise to comment on it's relative difficulty/potential/etc. as far as other JavaScript frameworks go. However, I did quite a bit of research on the subject, and I've decided that Angular is worth sticking with. Here are some links that I found helpful:
https://www.airpair.com/js/javascript-framework-comparisonProbably the first thing that you will learn about in Angular is data binding, and this is because Angular can add some serious functionaliy to a website with very little effort. And at 142KB (as of this writing), it's not too expensive, either.
-allows you to add dynamic svg to your project in a semantically sound, testable and modular way. extends html, and allows you (encourages you) to create sematically-sound html lets you do cool things like this:


Interface NodeStore
- All Known Implementing Classes:
MapNodeStore
,TreeNodeStore
public interface NodeStore
This interface defines two types of method. First, factory methods to create implementations
of PatriciaNode
satisfying certain constraints, and which are able to work with the
implemented store.
Second, data access methods to add, remove and retrieve nodes from the store.
It is expected a node store will only interact with nodes it is compatible with. Whenever a method in this interface receives a node parameter, it is free to assume it is from an implementation it supports.
Currently, this is implemented by MapNodeStore
, which uses a in-memory hash map as store,
and TreeNodeStore
which represents a tree without store (i.e. each node has direct
references to its children), so the data access method are no-ops or throw exceptions (the reason
why there is a store at all is that we wish to share logic between tree and store
implementations, and implementing a store for store-less trees makes this much easier.
-
Method Summary
Modifier and Type Method Description <T extends PatriciaNode>
TaddNode(T node)
Adds a node to the store the returns it.PatriciaBranchNode
branchNode(Pair<Nibbles,PatriciaNode>... pairs)
Returns a new branch node with the give children.PatriciaExtensionNode
extensionNode(Nibbles keyFragment, PatriciaBranchNode child)
Returns a new extension node with the given key fragment and child node.PatriciaNode
getNode(byte[] cap)
Return a node from its cap value, or null if no such node exists.default PatriciaLeafNode
leafNode(Nibbles keySuffix, byte[] value)
Creates a new leaf node with the given key suffix and value.default PatriciaNode
prepend(Nibbles nibbles, PatriciaNode node)
Returns a new node that corresponds to the node that the given nibbles prepended.void
removeNode(PatriciaNode node)
Removes the node from the store.PatriciaBranchNode
withChild(PatriciaBranchNode branch, int nibble, PatriciaNode child)
Returns a copy ofbranch
with its child for the givennibble
set tochild
.PatriciaBranchNode
withValue(PatriciaBranchNode branch, byte[] value)
Returns a copy ofbranch
with its value set tovalue
(possibly null).
-
Method Details
-
leafNode
Creates a new leaf node with the given key suffix and value.The returned value must be added to the store.
-
extensionNode
Returns a new extension node with the given key fragment and child node.The returned value must be added to the store, nothing should be done with the child.
-
branchNode
Returns a new branch node with the give children.If the nibbles part of a pair is empty, the child must be a leaf node, and its value will be used as the value of the branch node. Otherwise the node will be inserted into the new branch node, potentially after being extended as an extension node or longer leaf node to accomodate the remaining nibbles past the first (which is "consumed" by the branch node).
The returned value must be added to the store, nothing should be done with the children.
-
withValue
Returns a copy ofbranch
with its value set tovalue
(possibly null).The returned value must be added to the store, while
branch
must be removed from the store if not null. -
withChild
Returns a copy ofbranch
with its child for the givennibble
set tochild
.child
is allowed to be null, but it is the responsability of the caller to ensure that the returned node is valid (i.e. has at a least a child and a value or two children).The returned value must be added to the store, while
branch
must be removed from the store. Nothing should be done with the child. -
prepend
Returns a new node that corresponds to the node that the given nibbles prepended. This results in a single node of the same type for leaf and extension nodes, and for an extension node holding the original node for branch nodes.The returned value must be added to the store, while
node
must be removed from the store if it does not become a child of the result. -
getNode
Return a node from its cap value, or null if no such node exists. -
addNode
Adds a node to the store the returns it. -
removeNode
Removes the node from the store.The behaviour is implementation-defined, and in particular, this does not guarantee that after calling this method
getNode(node.cap())
will return null.The major example is that for the chain state, reorgs are possible, so we want to keep old nodes around. However, we might want to record which block removed which nodes, so that we may eventually prune the tree.
-


Trendunicum.github.io
Best Place To Purchase Lopressor Generic online. Lopressor (Metoprolol) is a safe effective long-term treatment of hypertension. It is in a class of medications called beta blockers, working by slowing the heart rate and relaxing the blood vessels so the heart
Taking viagra lopressor Order now! Order online, Secure and Anonymous. Licensed and Generic products for sale. 100% secure bill. VeryCHeap Prices. Beställ Generic Lopressor Uk, Buy Lopressor Daily Use Online, Combien Online Lopressor Toronto, Acheter Lopressor Pas Cher Pharmacie, Purchase Metoprolol Online Cheap, Ny Cheap Lopressor Where To Purchase, Best Way Buy Lopressor Online, Achat Generic Lopressor Inglaterra, Where To Purchase Cheap Lopressor Switzerland, Qui Deja Acheter. Lopressor Da 100 mg Costo - Cheap Pharmacy Cheapest Generic Lopressor Pills Order 24/7 Customer. Generic Lopressor How To order Generic Lopressor Now. Lopressor (Metoprolol) is a safe effective long-term treatment of hypertension. It is in a class of medications called beta blockers, working by slowing the heart rate and relaxing the blood vessels so the heart Cheap 50 mg Lopressor Best Place To Purchase - #1 Online. Order 25 mg Lopressor online - Worldwide Shipping
Safe Buy 100 mg Lopressor cheap. Cheap Pharmacy. Cheapest Generic Lopressor Pills Order Generic Lopressor How Much Cost Lopressor Pills. Lopressor (Metoprolol) is a safe effective long-term treatment of hypertension. It is in a class of medications called beta blockers, working by slowing the heart rate and relaxing the blood vessels so the heart Best Place To Buy Generic Drugs - Order Lopressor
Average Cost Lopressor 25 mg - The Best Online Prices. Best Place To Order Generic Drugs - Price Lopressor. Lopressor (Metoprolol) is a safe effective long-term treatment of hypertension. It is in a class of medications called beta blockers, working by slowing the heart rate and relaxing the blood vessels so the heart
24h Online Support. Cheap Lopressor Buy Online. Best Place. Use this link to Order Generic Lopressor (Metoprolol) NOW! Achat Online Lopressor Angleterre Authentic Lopressor Sale Buy Generic Metoprolol Review.
Safe pharmacy To Buy Generic Lopressor online. Lopressor (Metoprolol) is a safe effective long-term treatment of hypertension. It is in a class of medications called beta blockers, working by slowing the heart rate and relaxing the blood vessels so the heart Generic Lopressor Best Place To Order Lopressor without prescription. Lopressor (Metoprolol) is a safe effective long-term treatment of hypertension.
Generisk Periactin Där jag kan få Periactin Danmark. Periactin (cyproheptadine) relieves seasonal and year-round allergy symptoms such as watery/itchy eyes, runny nose, and sneezing. BitCoin Accepted / Cheap Lopressor Pills Purchase / Trackable.
Bonus For Every Order :: Best Place To Buy Lopressor compare. Generic Lopressor Best Place To Buy Generic Lopressor Now. Lopressor (Metoprolol) is a safe effective long-term treatment of hypertension. It is in a class of medications called beta blockers, working by slowing the heart rate and relaxing the blood vessels so the heart
Order 25 mg Lopressor online Generic Lopressor Where To Order Lopressor Now. Lopressor (Metoprolol) is a safe effective long-term treatment of hypertension. It is in a class of medications called beta blockers, working by slowing the heart rate and relaxing the blood vessels so the heart Online Generic Lopressor Buy Generic Lopressor Safe Place To Buy Generic Lopressor Now. Lopressor (Metoprolol) is a safe effective long-term treatment of hypertension. It is in a class of medications called beta blockers, working by slowing the heart rate and relaxing the blood vessels so the heart does not have to pump as hard.
Cheapest Metoprolol Best Place To Buy - Free Airmail. Lopressor Best Place To Buy / We Ship With Ems, Fedex Taking viagra lopressor OrderOnline2018. Save Time And Costs - How Much Cost Metoprolol online. 100% Satisfaction Guaranteed :: Discount 25 mg Lopressor. Best Rx Online Pharmacy. Order Lopressor 100 mg. Trackable. BitCoin Accepted / Cheap Lopressor Pills Purchase / Trackable. Generic 25 mg Lopressor Mail Order :: Worldwide Shipping. Cheap Pharmacy Online. Achat Lopressor 25 mg France - Bufete. Online Generic Lopressor Buy - zarispa.com. Best Place To Order Generics - Cost Lopressor
Best Price And High Quality - Looking Metoprolol generic.
How Much 50 mg Lopressor generic - Drug Shop, Safe And Secure. Order Lopressor 50 mg Coupon Generic Lopressor Best Pharmacy To Order Cheapest Lopressor without prescription. Lopressor (Metoprolol) is a safe effective long-term treatment of hypertension. It is in a class of medications called beta blockers, working by slowing the heart rate and relaxing the blood vessels so the heart
Lopressor 50 mg Order - Airmail Shipping ips international.


The File objects allow you to work with files. You can read from and write to both text and binary files. Reading is also supported from files stored in your game packages (DCP files). The File object can be created using the following syntax:
var SomeFile = new File("c:\path\filename.txt"); |
| File | Creates a new file object for a specified filename. |
| Operations | |
| SetFilename | Sets the filename the File object operates on. |
| OpenAsText | Opens file for text reading or writing. |
| OpenAsBinary | Opens file for binary reading or writing. |
| Close | Closes the file. |
| SetPosition | Sets a new reading/writing point for a currently open file. |
| Delete | Deletes the file accosiated with this File object. |
| Copy | Copies the file to a new location. |
| Text file access | |
| ReadLine | Reads a line from a text file open for reading. |
| ReadText | Reads text from a text file open for reading. |
| WriteLine | Writes a line to a text file open for writing/appending. |
| WriteText | Writes text to a text file open for writing/appending. |
| Binary file access | |
| ReadBool | Reads a boolean value (1 byte) from a binary file open for reading. |
| ReadByte | Reads an 8-bit integer value from a binary file open for reading. |
| ReadShort | Reads a 16-bit integer value from a binary file open for reading. |
| ReadInt | Reads a 32-bit integer value from a binary file open for reading. |
| ReadFloat | Reads a 16-bit floating point value from a binary file open for reading. |
| ReadDouble | Reads a 32-bit floating point value from a binary file open for reading. |
| ReadString | Reads a zero-terminated string value from a binary file open for reading. |
| WriteBool | Writes a boolean value (1 byte) to a binary file open for writing/appending. |
| WriteByte | Writes an 8-bit integer value to a binary file open for writing/appending. |
| WriteShort | Writes a 16-bit integer value to a binary file open for writing/appending. |
| WriteInt | Writes a 32-bit integer value to a binary file open for writing/appending. |
| WriteFloat | Writes a 16-bit floating point value to a binary file open for writing/appending. |
| WriteDouble | Writes a 32-bit floating point value to a binary file open for writing/appending. |
| WriteString | Writes a zero-terminated string value to a binary file open for writing/appending. |
| Type (read only) | Returns always "file" |
| Filename (read only) | Returns the filename currently assigned to this object. |
| Position (read only) | Returns current reading/writing position within the file. |
| Length (read only) | Returns length of file. |
| TextMode (read only) | Returns true if the file is open in text mode. |
| AccessMode (read only) | Returns the access mode the file is open in (0 - not open, 1 - reading, 2 - writing, 3 - appending) |
Creates a new file object for a specified filename.
Sets the filename the File object operates on.
Opens file for text reading or writing.
Returns true is the file was successfuly open.
Opens file for binary reading or writing.
Returns true is the file was successfuly open.
Closes the file.
Files are closed automatically when their File objects are destroyed but it's a good idea to close the file explicitly immediately after you're done with working with it.
Sets a new reading/writing point for a currently open file.
Returns true if the position has been successfuly set.
Deletes the file accosiated with this File object.
Returns true if the file has been successfuly deleted.
Copies the file to a new location.
Returns true if the file has been successfuly copied.
Reads a line from a text file open for reading.
Returns a string value containing the line or null if file cannot be read / position is at the end of file.
Reads text from a text file open for reading.
Returns a string value containing the text or null if file cannot be read / position is at the end of file.
Writes a line to a text file open for writing/appending.
Returns true if the value has been successfuly written.
Writes text to a text file open for writing/appending.
Returns true if the value has been successfuly written.
Reads a boolean value (1 byte) from a binary file open for reading.
Returns the value or null if file cannot be read / position is at the end of file.
Reads an 8-bit integer value from a binary file open for reading.
Returns the value or null if file cannot be read / position is at the end of file.
Reads a 16-bit integer value from a binary file open for reading.
Returns the value or null if file cannot be read / position is at the end of file.
Reads a 32-bit integer value from a binary file open for reading.
Returns the value or null if file cannot be read / position is at the end of file.
Reads a 16-bit floating point value from a binary file open for reading.
Returns the value or null if file cannot be read / position is at the end of file.
Reads a 32-bit floating point value from a binary file open for reading.
Returns the value or null if file cannot be read / position is at the end of file.
Reads a zero-terminated string value from a binary file open for reading.
Returns the value or null if file cannot be read / position is at the end of file.
Writes a boolean value (1 byte) to a binary file open for writing/appending.
Returns true if the value has been successfuly written.
Writes an 8-bit integer value to a binary file open for writing/appending.
Returns true if the value has been successfuly written.
Writes a 16-bit integer value to a binary file open for writing/appending.
Returns true if the value has been successfuly written.
Writes a 32-bit integer value to a binary file open for writing/appending.
Returns true if the value has been successfuly written.
Writes a 16-bit floating point value to a binary file open for writing/appending.
Returns true if the value has been successfuly written.
Writes a 32-bit floating point value to a binary file open for writing/appending.
Returns true if the value has been successfuly written.
Writes a zero-terminated string value to a binary file open for writing/appending.
Returns true if the value has been successfuly written.


HTML, CSS & DOM Part 1
Feature wishlist
- Changes to images / fonts in grid layout when user hovers over an item
- Animations and interactive features like the robot here
- A good, clean responsive layout
Can you think of an analogy to describe HTML, CSS and the DOM? How would you describe it to your non-technical friend?
Imagine we are building a house. We use HTML to build the foundation and the general structure of the house.
Next comes CSS, we use it to design the look and feel of each individual room, it lets us have pink and purple walls with round or triangular corners.
DOM stands for Document Object Model. You could picture it like a tree-layout of all the HTML you have written. So if you
look at this page in the Chrome dev tools (right-click right here and select Inspect in Chrome),
all HTML is contained in the HTML tags. They are the trunk of our tree. The tree then branches into
a head and a body and each of those branches have even more smaller branches within them.
If we stick to our building a house analogy, you could look at the DOM as a description on how to
access your house and each element within that house.
What is meant by boxifying design?
When you first look at a layout for a new website that you are tasked to build, it is easiest to break it down into individual
boxes.
On this very page for instance you can see various boxes:
- The blue box at the top that contains the name of the site
- The navigation bar
- The area with all the content you are currently reading
- And the footer at the very bottom of the page
What is the box model?
You will hear the term box model a lot when you work with CSS. Each HTML element is its own little box and each one of those boxes consists of the actual content (e.g. an image or simply some text), some padding, a border and a margin.
In this box model it is important to note that the content and the padding all added up make up the size of an element. So
if you have an image that is 100 pixels wide and you add some padding of 10 pixels on either side,
the actual size of the image is 120 pixels. Use margins to add space between HTML elements.
Right-click anywhere on this page and select Inspect to open up Developer Tools in Google Chrome.
If you look to the area that contains all your styles and event listeners, you will see a tab called
computed. Click on it to have a look at how individual items on this page are laid out.


Because of its size, the Stacks editor is bundled independently of Stacks. You can install it a few ways:
{% header "h3", "NPM" %}The Stacks Editor is available as an NPM package. To make it available in your node modules, npm install @stackoverflow/stacks-editor


PyIDE
Theme:
default
night
neat
elegant
or
it by
# Some Example code import os from package import ParentClass @nonsenseDecorator def doesNothing(): pass class ExampleClass(ParentClass): @staticmethod def example(inputStr): a = list(inputStr) a.reverse() return ''.join(a) def __init__(self, mixin = 'Hello'): self.mixin = mixin # String Literals 'For\'' "God\"" """so loved the world""" '''that he gave his only begotten\' ''' 'that whosoever believeth \ in him' '' # Identifiers __a__ a.b a.b.c # Operators + - * / % & | ^ ~ < > == != <= >= <> << >> // ** and or not in is # Delimiters () [] {} , : ` = ; @ . # Note that @ and . require the proper context. += -= *= /= %= &= |= ^= //= >>= <<= **= # Keywords as assert break class continue def del elif else except finally for from global if import lambda pass raise return try while with yield # Python 2 Keywords (otherwise Identifiers) exec print # Python 3 Keywords (otherwise Identifiers) nonlocal # Types bool classmethod complex dict enumerate float frozenset int list object property reversed set slice staticmethod str super tuple type # Python 2 Types (otherwise Identifiers) basestring buffer file long unicode xrange # Python 3 Types (otherwise Identifiers) bytearray bytes filter map memoryview open range zip
MIME types defined:
text/x-python .


Class Promise
Promise-related helpers.
Inherited Members
Namespace: UnityFx.Async.Promises
Assembly: UnityFx.Async-netstandard2.0.dll
Syntax
public static class Promise
Methods
| Improve this Doc View SourceAll(IEnumerable<IAsyncOperation>)
Returns a promise that resolves when all of the promises in the enumerable argument have resolved.
Declaration
public static IAsyncOperation All(IEnumerable<IAsyncOperation> ops)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Collections.Generic.IEnumerable<IAsyncOperation> | ops | Operations to wait for. |
Returns
| Type | Description |
|---|---|
| IAsyncOperation | An operation that completes when all specified promises are resolved. |
Exceptions
| Type | Condition |
|---|---|
| ArgumentNullException | Thrown if |
| ArgumentException | Thrown if the |
See Also
| Improve this Doc View SourceAll(IAsyncOperation[])
Returns a promise that resolves when all of the promises in the enumerable argument have resolved.
Declaration
public static IAsyncOperation All(params IAsyncOperation[] ops)
Parameters
| Type | Name | Description |
|---|---|---|
| IAsyncOperation[] | ops | Operations to wait for. |
Returns
| Type | Description |
|---|---|
| IAsyncOperation | An operation that completes when all specified promises are resolved. |
Exceptions
| Type | Condition |
|---|---|
| ArgumentNullException | Thrown if |
| ArgumentException | Thrown if the |
See Also
| Improve this Doc View SourceRace(IEnumerable<IAsyncOperation>)
Returns a promise that resolves when any of the promises in the enumerable argument have resolved.
Declaration
public static IAsyncOperation Race(IEnumerable<IAsyncOperation> ops)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Collections.Generic.IEnumerable<IAsyncOperation> | ops | Operations to wait for. |
Returns
| Type | Description |
|---|---|
| IAsyncOperation | An operation that completes when any of the specified promises is resolved. |
Exceptions
| Type | Condition |
|---|---|
| ArgumentNullException | Thrown if |
| ArgumentException | Thrown if the |
See Also
| Improve this Doc View SourceRace(IAsyncOperation[])
Returns a promise that resolves when any of the promises in the enumerable argument have resolved.
Declaration
public static IAsyncOperation Race(params IAsyncOperation[] ops)
Parameters
| Type | Name | Description |
|---|---|---|
| IAsyncOperation[] | ops | Operations to wait for. |
Returns
| Type | Description |
|---|---|
| IAsyncOperation | An operation that completes when any of the specified promises is resolved. |
Exceptions
| Type | Condition |
|---|---|
| ArgumentNullException | Thrown if |
| ArgumentException | Thrown if the |
See Also
| Improve this Doc View SourceRejected()
Creates a promise that's already been rejected.
Declaration
public static IAsyncOperation Rejected()
Returns
| Type | Description |
|---|---|
| IAsyncOperation |
See Also
| Improve this Doc View SourceRejected(Exception)
Creates a promise that's already been rejected with the specified Exception.
Declaration
public static IAsyncOperation Rejected(Exception e)
Parameters
| Type | Name | Description |
|---|---|---|
| Exception | e |
Returns
| Type | Description |
|---|---|
| IAsyncOperation |
Exceptions
| Type | Condition |
|---|---|
| ArgumentNullException | Thrown if |
See Also
| Improve this Doc View SourceRejected(String)
Creates a promise that's already been rejected with the specified error message
.
Declaration
public static IAsyncOperation Rejected(string message)
Parameters
| Type | Name | Description |
|---|---|---|
| String | message |
Returns
| Type | Description |
|---|---|
| IAsyncOperation |
See Also
| Improve this Doc View SourceResolved()
Creates a promise that's already been resolved.
Declaration
public static IAsyncOperation Resolved()
Returns
| Type | Description |
|---|---|
| IAsyncOperation |
See Also
| Improve this Doc View SourceResolved<TResult>(TResult)
Creates a promise that's already been resolved with the specified value.
Declaration
public static IAsyncOperation<TResult> Resolved<TResult>(TResult result)
Parameters
| Type | Name | Description |
|---|---|---|
| TResult | result |
Returns
| Type | Description |
|---|---|
| IAsyncOperation<TResult> |
Type Parameters
| Name | Description |
|---|---|
| TResult |
See Also
| Improve this Doc View SourceSequence(IEnumerable<Func<IAsyncOperation>>)
Chain a number of operations using promises.
Declaration
public static IAsyncOperation Sequence(IEnumerable<Func<IAsyncOperation>> ops)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Collections.Generic.IEnumerable<System.Func<IAsyncOperation>> | ops | Functions each of which starts an async operation and yields a promise. |
Returns
| Type | Description |
|---|---|
| IAsyncOperation | An operation that completes when all promises in the sequence are resolved. |
Exceptions
| Type | Condition |
|---|---|
| ArgumentNullException | Thrown if |
| ArgumentException | Thrown if the |
See Also
| Improve this Doc View SourceSequence(Func<IAsyncOperation>[])
Chain a number of operations using promises.
Declaration
public static IAsyncOperation Sequence(params Func<IAsyncOperation>[] ops)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Func<IAsyncOperation>[] | ops | Functions each of which starts an async operation and yields a promise. |
Returns
| Type | Description |
|---|---|
| IAsyncOperation | An operation that completes when all promises in the sequence are resolved. |
Exceptions
| Type | Condition |
|---|---|
| ArgumentNullException | Thrown if |
| ArgumentException | Thrown if the |
See Also
Events
| Improve this Doc View SourceUnhandledException
Event raised for unhandled exceptions. For this to work you have to complete your promises with a call to Done().
Declaration
public static event EventHandler<ExceptionEventArgs> UnhandledException
Event Type
| Type | Description |
|---|---|
| System.EventHandler<ExceptionEventArgs> |


Public Methods |
| | Clipboard () |
| virtual | ~Clipboard () |
| void | freeGlobalMem () |
| | frees up the Global memory allocated for use of the clipboard.
|
| void | shiftUp () |
| | emulates the shift-key going up.
|
| void | paste () |
| | emulates a CTRL-V sequence to enact a Paste.
|
| void | copyToClipboard (const HWND& hwndOwner, PWCHAR pchar) |
| | copies the appropiate format to the clipboard.
|
| void | setFormats (bool _Unicode, bool _Rtf, bool _Html, int fontsize) |
| | sets information about which format to use & the appropiate font size.
|
Private Types |
| enum | {
LOTSOFTEXT = 524
} |
| enum | {
MAX_SIZE = 524
} |
Private Methods |
| void | my_strcpy (char* ptr, PTCHAR text, UINT size) |
| | utility functions copies from one buffer to the other base on size, NOT null-termination.
|
| void | makeHtml (PWCHAR pchar, PTCHAR text, const int fs) |
| | formulates HTML format for the clipboard. More...
|
| void | makeRtf (PWCHAR pchar, PTCHAR text, const int fs) |
| | formulates RTF format for the clipboard.
|
| const UINT | makeUnicode (PWCHAR pchar, PTCHAR text) |
| | formulates Unicode format for the clipboard. More...
|
| void | getFontName (string& fName) |
| | retrieves the current default font name from the registery.
|
Private Attributes |
| HGLOBAL | hHtml |
| | handles to global memory for each of the 3 formats.
|
| HGLOBAL | hRtf |
| HGLOBAL | hUnicode |
| bool | Unicode |
| | which clipboard format to use.
|
| bool | Rtf |
| bool | Html |
| int | fs |
| | Font size; this information comes from the user interface window.
|


The error classes for one-sided communication are defined in Table 9 . RMA routines may (and almost certainly will) use other MPI error classes, such as MPI_ERR_OP or MPI_ERR_RANK.
| MPI_ERR_WIN | invalid win argument |
| MPI_ERR_BASE | invalid base argument |
| MPI_ERR_SIZE | invalid size argument |
| MPI_ERR_DISP | invalid disp argument |
| MPI_ERR_LOCKTYPE | invalid locktype argument |
| MPI_ERR_ASSERT | invalid assert argument |
| MPI_ERR_RMA_CONFLICT | conflicting accesses to window |
| MPI_ERR_RMA_SYNC | invalid synchronization of RMA calls |
| MPI_ERR_RMA_RANGE | target memory is not part of the window (in the case of a window created with MPI_WIN_CREATE_DYNAMIC, target memory is not attached) |
| MPI_ERR_RMA_ATTACH | memory cannot be attached (e.g., because of resource exhaustion) |
| MPI_ERR_RMA_SHARED | memory cannot be shared (e.g., some process in the group of the specified communicator cannot expose shared memory) |
| MPI_ERR_RMA_FLAVOR | passed window has the wrong flavor for the called function |