{% load compress %} {% compress css %} {% endcompress %}
{% include "handlebars/table_tab.html" %} {% include "handlebars/uploader/parser_options.html" %} {% include "handlebars/uploader/uploading.html" %} {% include "handlebars/uploader/file_list.html" %} {% include "handlebars/uploader/step1.html" %} {% include "handlebars/uploader/table_options.html" %} {% include "handlebars/uploader/error.html" %} {% include "handlebars/table/change_description.html" %} {% include "handlebars/table/rename.html" %} {% include "handlebars/table/toggling_public.html" %} {% include "handlebars/table/display.html" %} {% include "handlebars/table/loading.html" %} {% include "handlebars/table/error.html" %} {% include "handlebars/open_id/google.html" %} {% include "handlebars/wayf/chooser.html" %} {% include "handlebars/email_urls/user_list.html" %} {% include "handlebars/email_urls/email_list.html" %} {% include "handlebars/email_urls/dataset_list.html" %} {% include "handlebars/shared_queries/loading.html" %} {% include "handlebars/shared_queries/list.html" %} {% include "handlebars/shared_queries/error.html" %} {% include "handlebars/default_home_screen.html" %} {% include "handlebars/load_error/bad_host.html" %} {% include "handlebars/boilerplate.html" %} {% include "handlebars/query_queue/display.html" %} {% include "handlebars/query_queue/loading.html" %} {% include "handlebars/query/interface.html" %} {% include "handlebars/query/sharing_panel_public.html" %} {% include "handlebars/query/sharing_panel_private.html" %} {% include "handlebars/query/running.html" %} {% include "handlebars/query/save_panel.html" %} {% include "handlebars/query/error.html" %} {% include "handlebars/query/sharing_panel.html" %} {% include "handlebars/all_tables/loading.html" %} {% include "handlebars/all_tables/list.html" %} {% include "handlebars/all_tables/error.html" %} {% include "handlebars/query.html" %} {% include "handlebars/tagged_queries/loading.html" %} {% include "handlebars/tagged_queries/list.html" %} {% include "handlebars/tagged_queries/error.html" %} {% include "handlebars/favorite_sidebar.html" %} {% include "handlebars/all_queries/table_name_cell.html" %} {% include "handlebars/all_queries/loading.html" %} {% include "handlebars/all_queries/table_date_cell.html" %} {% include "handlebars/all_queries/list.html" %} {% include "handlebars/all_queries/table_owner_cell.html" %} {% include "handlebars/all_queries/error.html" %} {% include "handlebars/saved_query/change_description.html" %} {% include "handlebars/saved_query/rename.html" %} {% include "handlebars/saved_query/deleting.html" %} {% include "handlebars/saved_query/display.html" %} {% include "handlebars/saved_query/loading.html" %} {% include "handlebars/saved_query/overwrite_panel.html" %} {% include "handlebars/saved_query/in_process.html" %} {% include "handlebars/saved_query/loading_preview.html" %} {% include "handlebars/saved_query/building_snapshot.html" %} {% include "handlebars/saved_query/edit.html" %} {% include "handlebars/saved_query/not_found.html" %} {% include "handlebars/saved_query/preview_error.html" %} {% include "handlebars/saved_query/error.html" %} {% include "handlebars/saved_query/description_area.html" %} {% include "handlebars/saved_query/confirm_delete.html" %} {% include "handlebars/saved_query/change_statement.html" %} {% include "handlebars/dataset/accept.html" %} {% include "handlebars/dataset/details.html" %} {% include "handlebars/dataset/not_found.html" %} {% include "handlebars/manage_credentials/interface.html" %} {% include "handlebars/manage_credentials/loading.html" %} {% include "handlebars/manage_credentials/error.html" %} {% include "handlebars/sidebar_lists.html" %} {% include "handlebars/my_queries/loading.html" %} {% include "handlebars/my_queries/list.html" %} {% include "handlebars/my_queries/error.html" %} {% include "handlebars/recent_queries.html" %} {% include "handlebars/tab_nav_overflow.html" %} {% include "handlebars/query/sharing_name_cell.html" %} {% compress js %} {% endcompress %}


HELP TODAY
We can help Refugees in the IDP Camps that need Food and Supplies
Learn more
What we do and how you can help
Our Goals and Achievements so far
Children back to school
Farmers Funded
Refugees being Fed
Camps Setup
If you can help in our causes, you can bring smiles to the faces of people. Since 2013, we have fed over 60,000 people affected by insurgency and natural disasters and sent over 3000+ children back to school.
Want to become a member of our causes and make a difference in the lives of people during this time?


What's a deepjs collider?
You saw in the previous sections that when you manipulate layers with the up or bottom tool, you can have collisions. The default behaviour is that the top layer overwrite the value (except arrays that are merged).
A deepjs collider let you manage those collisions so you can have a different behaviour than the default one.
API
- .replace( by, query )
- inject success in callback.
- .insertAt( value, index )
- inject error in callback.
- .remove( query )
- if success : inject success in doneCB. else : inject error in failCB.
- .removeAt( index, howMuch )
- if success : inject success in doneCB. else : inject error in failCB.
- .up( ... )
- inject success (if any) and error (if any) in callback.
- .bottom( ... )
- inject success (if any) and error (if any) in callback.
- .equal( needed )
- inject success (if any) and error (if any) in callback.
- .validate( schema )
- inject success (if any) and error (if any) in callback.
.replace(value)
This method set the collided property with the given value.
For example you want to override the default merging of colliding arrays by a replacement.
deep.nodes({ b:[1,2,3] }) .up({ b:deep.collider.replace([4,5]) }) .log()
.insertAt(value,position)
This method insert the "value" at the desired "position" in the array.
deep.nodes({ b:[1,2,3] }) .up({ b:deep.collider.insertAt(["hello"],2) }) .log()
Make your own collider
You can of course build your custom colliders. This is done with the deep.collider.Collider.add() function.
Let's learn this through a simple example :
You want to use a collider that sum the numbers that collides.
deep.collider.Collider.add("sum", function(input, value){ return input + value; }); var a = { balance:10 }; var b = { balance:deep.collider.sum(33) }; deep.nodes(a).up(b).log();
Colliders are chainable
You can use more than one collider by simply adding them to the chain.
example of 2 or more chained colliders


ScalaMill Blog.
Visit us for boosting your productivity
ScalaMill Blog
Visit us for boosting your productivity
Your pathway to functional, reactive, pragmatic programming,
follow our blog to get updates in functional reactive and big data ecosystem.
Your pathway to functional, reactive, pragmatic programming,
follow our blog to get updates in functional, reactive and big data ecosystem.


--- layout: archive title: Zulip Chat Archive permalink: /stream/144837-PR-reviews/topic/mergify.html ---
Have you used it before? I'm writing a configuration file now. I can show it here for comments
pull_request_rules: - name: automatic merge on CI success and review conditions: - status-success=continuous-integration/travis-ci/pr - "#approved-reviews-by>=1" - "#review-requested=0" - "#changes-requested-reviews-by=0" - base=master - label=['ready-to-merge'] actions: - delete_head_branch - merge: method: squash - name: remove outdated reviews conditions: - status-success=continuous-integration/travis-ci/pr - "#approved-reviews-by>=2" actions: - dismiss_reviews: approved: True - remove: ['ready-to-merge']
I'm testing it out on my fork. Can't seem to get it to work. My config file look like
pull_request_rules: - name: automatic merge with strict conditions: - status-success=continuous-integration/travis-ci/pr - status-success=continuous-integration/travis-ci/push - base=master actions: merge: method: squash strict: true
What does strict
mean?
https://doc.mergify.io/strict-workflow.html
That's probably best if we automate merges
I set those rules, but it still just merged straight away before Travis passed.
Both the PR build and the push build?
Exactly those rules.
I mean, did neither build terminate before the merge?
Neither build terminated
Screenshot-2019-04-01-at-19.28.42.png Only one box is ticked, but it says success.
Is the list of condition a disjunction or a conjunction?
Try removing the last condition
Now it doesn't tell me anything.
That's frustrating
Can I let you look into it?
But travis has also stopped.
I'll have a go at sorting it out.
Thanks! Let me know if you need something
If this works, it seems like a really good idea!
Yes! That could make things simpler. We could merge a branch by clicking "update branch" and adding the label "ready-to-merge". We have to remember to get back to them if they fail to merge though and we can't do more than one PR at a time with this approach
What does status-success=continuous-integration/travis-ci/push
mean if status-success
is an array of strings? Will it fail if the array contains more than just that one string?
I know what's going on. "merge" means merge straight away with no further user input. We definitely don't want that. I never clicked "merge" on this PR https://github.com/ChrisHughes24/mathlib/pull/16
I don't think you can set it up to have a "merge when ready" button. You could do some hack, where you add a label to instigate a merge or something like that.
I would put that in condition
Maybe that was obvious to you, looking at your script.
So I think your script is about right, but just with strict
added.
I setup some test PRs. I set up one of them to break after I changed mathlib. https://github.com/ChrisHughes24/mathlib/pulls Hopefully #20 will merge, but #21 and #22 won't
Cool! Let's see what happens.
Hmm... it seems that https://github.com/ChrisHughes24/mathlib/pull/20 is ready to merged. But the merge didn't automatically happen
It's because Travis failed because it's failing on master.
Hmm... ok. Bit weird that it says all the tests passed though. Too bad.
Can we see the Travis logs for the failing master builds? I can't find links from Githubs commit log
It's weird that the links aren't on the PRs any more.
This is the problematic test run: https://travis-ci.org/leanprover-community/mathlib/jobs/513991382
The first two stages went fine. Then the "Test" stage timed out because of no output in 10 minutes.
Travis is failing at the leanchecker stage since the pi PR. I noticed this earlier but haven't had time to investigate.
We have a trick to prevent this kind of issue. Let me take a look
If only there were some tool that could automatically and transparently handle these merge issues for us...
A tool that figures out what part of a PR is too hard for leanchecker, and fixes it?
I'd like that tool too.
Well that would be awesome. But I was thinking of a tool that merely checks whether 2 or 3 maintainers approve of a PR, and then waits till the build passes, and then merges.
That's what this thread (mergify) is about
I wonder if there's a way of automating the update of a PR when no branch is building and that it's marked as ready-to-merge
Do you want to test this on #854 by marking it ready-to-merge
? ;-)
We have a trick to prevent this kind of issue. Let me take a look
@Simon Hudon what is this trick? I've several times had trouble with the test stage timing out after 10 minutes, and never known how to diagnose the problem.
here is the trick: https://github.com/leanprover-community/mathlib/compare/2f088fc1cb98...5995d460bc69
What is the status here? @Chris Hughes Did you rerun your experiment now that master is back on track?
Yes. It all seems to be working as expected.
That's great news.
Can maintainers override the mergify workflow? Or do they always have to abide, once we implement it?
I think Simon's setup is opt-in. Giving something the ready-to-merge
tag is explicitly approving the mergify workflow.
Right. So then I don't really understand @Chris Hughes's concern over here: https://github.com/leanprover-community/mathlib/pull/871#discussion_r271218389
It's set up to only auto-merge if there's at least one approving review. For very easy PRs, Chris wants to be able to say "auto-merge this once Travis finishes successfully," without also having to post an empty approving review.
Aah, got it
@Simon Hudon @Chris Hughes I've fixed the errors with the mergify config. I don't think I diverted from your intentions.
nice! Thanks!
I'm happy with the current state of the PR. Any objections to me merging?
How does the second condition work?
Why do you need the review conditions. We want it to remove the label whenever there's a commit, regardless of the reviews.
You're right, I'll change it to:
- base=master
And it only triggers after a commit? This isn't what I would expect.
I also don't understand the 2nd rule
Yeah, it's confusing to me too. Here is where I got it from: https://doc.mergify.io/examples.html#removing-stale-reviews
Why is strict_method
back to squash
?
That's not a valid value
If it's set to merge, I think all the commits to the PR branch will be in the history of the branch.
The question you need to answer is: If pr-branch
is outdated, and I need to update it, I will use strict_method
to update pr-branch
to current master
.
Possible values are rebase
and merge
.
I didn't realise squash wasn't a valid value.
No, it will still use squash
, when it is performing the merge from pr-branch
into master
.
I see.
Then merge is correct.
I misunderstood.
No worries. Btw, merge
is the default value. So we can remove that line, if we want.
Okay, let's do that.
I just tested the second part on my fork. It does indeed do the right thing.
Mergify is now happy: it says that there are no syntax errors in the config file
Hmm... the README looks bad: https://github.com/leanprover-community/mathlib/tree/enable-mergify#mathlib
There is a problem
https://github.com/ChrisHughes24/mathlib/pull/35
I can't add the ready-to-merge
label to this, without mergify immediately removing it.
In fact I don't think it was behaving as expected at all.
The badge in the README is now fixed
To me the 2nd rule reads like
if (empty condition) then (remove reviews and remove label "ready-to-merge")
The condition isn't really empty. But it's only testing if we want to merge something into master
@Chris Hughes Can you test whether it also dismisses reviews as soon as you make them?
I can't make an approving review on my own PR.
Could you make a PR to my fork, and I'll make an approving review.
I think maybe it only cares about reviews by admin.
Done: https://github.com/ChrisHughes24/mathlib/pull/37
It didn't remove it.
Now what happens if it's edited
If what is edited?
I added the tag ready-to-merge, so the event triggered, but it didn't remove the review. I can't edit the PR, because it's from Johan's fork.
If there's a commit I meant.
Ok, I'll make another commit.
Done
Ok, it removed your review
So it's going to have to be slightly less nice.
We need an approving review, and a tag?
This means we can't use the "ready-to-merge" label.
So I suggest we ask for an approving review of a maintainer
I suggest both.
But the second condition has to only remove approving review and not labels.
And maybe there is a Github team of mathlib maintainers, and you can match on them in the mergify config with @something
mergify only cares about reviews from people with write
permission on the repository.
Which I guess is a lot of people if it's talking about leanprover-community
and not just leanprover-community/master
Do you mean leanprover-community/mathlib
or leanprover-community/mathlib/master
?
Yes.
I don't know which of those two mergify means
But it says repository, so I guess leanprover-community/mathlib
You can do a regex match on the people who left a review
It does mean that if the list of maintainers changes, you also need to update this config file.
The attribute is approved-review-by
and it takes an array of strings (the authors) as an argument. So we can use that.
What is the suggested workflow to get mergify to merge once the build succeeds?
@Simon Hudon I don't understand your question
One maintainer gives an approving review, and someone gives a ready-to-merge
label.
But you were saying that the label ready-to-merge
couldn't be used as intended
Mergify won't remove it. (Or it will always remove it.)
But @Chris Hughes thinks it is still a useful flag. And maybe I agree.
I think the maintainers need to agree on what they mean with an "Approving review"
What does "always remove it" mean?
We can't use the second condition to remove the label.
If you try to build a rule that removes the tag after new commits, the rule will remove the label as soon as it is added.
Because it will be removed as soon as it's added, regardless of whether there are any commits.
Scenario: Maintainer gives approving review, thinking "looks good, but not exactly ready-to-merge
". Doofus comes by and gives tag ready-to-merge
. → Mergify goes ahead and merges.
But only the maintainers can give a label so we should be ok as long as we don't choose doofuses as maintainers
I don't think that scenario is any different from a doofus merging random PRs. Only click ready-to-merge
, if it's ready to merge.
I second that comment
So we shouldn't remove the label automatically. Is this right?
Yes.
Hmmm, I thought I saw people assigning WIP to their PRs.
Maybe that's a special label?
Can you assign a label?
Didn't realise that. I remember not being able to do it when we were at leanprover
, but I guess you have write access to community.
@Simon Hudon @Chris Hughes So how about "Only click Approved review if it's ready to merge"?
If we have the label mechanism, do we also need the approved review mechanism. Maybe they should be two separate options: either you tag it as ready to merge or you approve a review
The label mechanism is fragile
Because an "old" label is not dismissed when someone pushes new commits
You don't need to be a maintainer to give a label.
Also :point_up:
Are you sure? Johan, have you tried adding a label?
blast
Ok a review too then
But the new rule has to be "Only give an approving review if it's ready to merge"
Hmm... how about we make the rule "If it is approved by the person that got assigned, then merge"
It might mean making 8 duplicate rules in the config file
One for each maintainer
But that is not very hard to maintain. And it is closer to current mathlib policy.
I just assigned @Kevin Buzzard to #854
I don't think that affects the issue at hand. But apparently this is possible
blast! We have much less security than I thought on repo
/me is a doofus :warning:
I think you have a good idea. Let's go with that
Haha! No duh! :P
Also, it means that we shouldn't try to hack a has_review_by = assigned
because that is unsecure.
Explicitly test against a list of maintainers.
I'm on a flaky connection, so I can't currently edit the file.
Is the second rule of any use?
It would be nice if the presence of a mergify.yml
created a "Pass this to mergify" button next to the regular merge button...
But I'm not going to PR to mergify (-;
The current second rule doesn't have too much use anymore.
I don't know what happens if someone pushes new commits in the 60 minutes between Mario's approval and Mergifies merging.
maybe it's good to keep the rule in place
It's going to reject the merge and we're going to need to update it again
independent of the 2nd rule?
With 50 open PRs at the same time, a few people might end up upgrading at the same time which will create a race condition and require one of them to start over. It might be better if we don't require a strict workflow
Yes
I think mergify maintains a queue
We still need the second rule.
@Johan Commelin I don't think mergify can resolve that race condition with strict merge
@Chris Hughes why?
I'm hopping on a bike. See you :bicycle:
In case there's a commit after an approving review.
The strict:smart
means that there won't be a race, there'll just be a queue instead.
How does that work?
I just looked it up
That sounds good. Let's do that
@Chris Hughes Can you try this rule and see if it takes 7 reviews?
- name: automatic merge on CI success and review conditions: - status-success=continuous-integration/travis-ci/pr - "#changes-requested-reviews-by=0" - base=master - label=ready-to-merge - approved-reviews-by=['avigad','rwbarton','digama0','cipher1024','ChrisHughes24','robertylewis','patrickmassot'] actions: delete_head_branch: {} merge: method: squash strict: smart strict_method: merge
Also, you're saying that we need the second rule to remove stale reviews but why does it not work to remove ready-to-merge
?
That's an invalid configuration. Not sure why
what if you only write - approved-reviews-by='avigad'
? or `- approved-reviews-by=avigad?
@Simon Hudon For some (buggy) reason Mergify will dismiss-old-reviews only when there is an actual new commit, but it will label: remove [foobar]
whenever something happens (for example, when "adding foobar
" happens).
Ok, I filed an issue: https://github.com/Mergifyio/mergify-engine/issues/360
maybe we should add - label!=ready-to-merge
in the conditions
no, that's dumb
I upvoted your issue
In the mean time, are we ready to merge the mergify
setup?
Is Mergify ready to merge the setup?
Huh?
/joke
Not as is. It's not doofus proof currently.
You got me
/me is a doofus :warning:
And the configuration Simon posted is invalid.
What is missing to make it doofus proof?
Oh, that
ok
I'll happily break mathlib if you give me the chance
I think we want 1 rule for every maintainer
We don't want the maintainer of foobarology to approve of a PR in xyzzygies and suddenly the PR is merged by Mergify.
This is invalid for some reason
pull_request_rules: - name: automatic merge on CI success and review conditions: - status-success=continuous-integration/travis-ci/pr - "#changes-requested-reviews-by=0" - base=master - label=ready-to-merge #- approved-reviews-by=avigad actions: delete_head_branch: {} merge: method: squash strict: smart strict_method: merge
What is the error message?
The current version in the PR is approved of by Mergify
Mergify configuration is invalid: position (3:15)
I have no clue what is wrong. But the syntax highligher also isn't highlighting the 3rd line
maybe an indentation issue? is this yaml syntax?
This works and its indistinguishable
pull_request_rules: - name: automatic merge when CI passes conditions: - status-success=continuous-integration/travis-ci/pr - "#changes-requested-reviews-by=0" - base=master - label=ready-to-merge - approved-reviews-by=['avigad','rwbarton','digama0','cipher1024','ChrisHughes24','robertylewis','patrickmassot'] actions: merge: method: squash strict: smart strict_method: merge
The difference is on the 2nd line
You indented the - name
Good!
Now, do we need 7 identical rules or is it ok to enumerate the maintainers?
I think we need 7 rules
But that's really up to the maintainers...
Do you regard the maintainer of foobargles a doofus when it comes to xyzzygies?
@Simon Hudon Approve of this to test.
https://github.com/ChrisHughes24/mathlib/pull/47
Do I make a review and approve?
I think you need to invite me to review
Are foobargles and xyzzygies two of your projects Johan?
I think you can just click the "Changed files" tab
And then "Review changes" -> "Approve"
Foobargles and xyzzygies are both fundamental objects in scitamehtam
https://github.com/Mergifyio/mergify-engine/issues/360#issuecomment-479148498
obviously!
I just wanted to know if you knew it
obviously
:grinning_face_with_smiling_eyes:
Looks like your review didn't trigger it @Simon Hudon
Would <=
instead of =
work?
I don't think so...
You could write a regex though
Something like ~= nameA|nameB|nameC
Modulo quotes etc
In fact, I think you don't need any quotes
uh!
Nice
I haven't really been following what's going on here, but I think there's no need (at least currently) to formally enforce a policy of which maintainers can approve what kind of PRs
I agree @Reid Barton and I think the idea hasn't been considered seriously
There is no such policy.
I am thinking that Mergify PRs that have been approved by the maintainer assigned to the PR.
Everyone can assign everyone to every PR
We don't want the maintainer of foobarology to approve of a PR in xyzzygies and suddenly the PR is merged by Mergify.
Then I don't understand what this is about...?
Using regexes to match usernames sounds like a bad idea to me
you don't want to accidentally allow notrwbarton
to merge PRs for example, it just seems like there is too much scope for error
What I mean is that we can choose how careful maintainers should be with giving "approving" reviews.
Oh, I see
If we want to allow them to use it as a signal to another maintainer that they think a PR is fine, even if they don't want to trigger a merge, then we could follow my proposal
Otoh, if the approve of a PR that was assigned to them, then I guess they also think that it is ready for merging. So Mergify can go ahead.
And of course we can decorate the regex with ^(theregex)$
This is showing up as Simon not having reviewed https://github.com/ChrisHughes24/mathlib/pull/47/checks?check_run_id=91331543
With approved-reviews-by=cipher1024
Weird...
No, I did approve that PR
Exactly... I can see that on the "Conversation" tab. But Mergify isn't picking this up.
Maybe because it's a stale review
But you don't have "Rule 2"
@Simon Hudon Could you approve again?
I just did
Still doesn't fly
And it didn't change the status
This will match only reviewers with admin or write permission on the repository.
I think that explains the issue
Ah!
Give me permission then
Sorry, I can't do that (-;
I'm not enough of a doofus
Sent an invite
It would be nice if it said "write permission on the base branch".
Would save us a bunch of headaches
Tada! :tada:
It got merged! Well done @Simon Hudon @Chris Hughes
:tada: :tada:
Yay!
I think this addresses the doofus objection
I did follow closely. Did you find a website that will review all of Kenny's algebra PR and merge them?
Only the extra-maintainer doofus objection
But the intra-maintainer doofus objection still stands... You'll have to figure that out amongst yourselves though
Can you approve this one @Simon Hudon
https://github.com/ChrisHughes24/mathlib/pull/48
Just to see if the list of maintainers works
Do we still want the label?
By the way, there is a strict upper bound on the number of tests that @Chris Hughes can perform: at some point the README file in his fork will be empty.
Probably we don't want the label. But we'll have to be careful merging mergify, because there are a bunch of open PRs with approving reviews.
I think we can keep the label for two reasons: communicate with each other and avoid mistreating existing PRs
So the list version isn't working, it seems
I guess it means that you require all those people to approve
Maybe 7 conditions then.
I went ahead and edited the config into the 7 + 1 rules
I'm happy with that. What about you guys?
I think I can just merge this. We don't need to wait for the build
Let's go for it!
(Sorry I was distracted: trying to prove a theorem)
silly theorem getting in the way of real work
done
Let's try it for a couple of rounds and then advertise it. How about that?
Cool!
Does mergify only use the .mergify.yml
file on master
or does it use the one in the current branch?
Current branch
That might be a security issue ...
Yes, just realised.
How about exploiting it to commit a fix to the mergify repository?
Hahaha! To they use their own tool?
Yes.
Although mergify is disabled for PRs that change the configuration
So there is no problem
How do you do that?
It's disabled by default
We're fine
ooof :)
I almost wrote a panicked issue to them :P
Now I'm trying to change how travis deals with PRs. Right now, every time you push to a PR, you get two builds. I'd like them to cancel the push build. We'd get way more builds in.
Travis does seem to be less generous with allocating build time lately. A lot more queued builds.
I think it's because of duplicated work
I feel like disabling PR builds and only keeping push builds
But then, people creating PRs from other repos wouldn't get a build automatically
Regarding Travis slowdowns, I guess it's probably possible to pay for more time/power, right? Does anyone know how much this costs? I can't find it immediately on their website.
Or maybe one of the full profs can ask/instruct/request a local sysadmin to setup and maintain a CI server?
Those are possibilities. But right now, we're misusing the resources that we do have so first, let's see if we can use them better
And Robb: https://travis-ci.com/plans
Huh. travis-ci.com is different from travis-ci.org.
Should it become necessary, we could probably put a bit of Jasmin's Lean Forward money to an upgraded account. I don't know what the limitations are on the free account, so it's not clear which upgrade would be appropriate, or how much Jasmin would be willing to spend.
I think premium might be better than what we currently get
Open source projects get a pretty sweet deal
Okay, yeah, I doubt that would happen.
@Simon Hudon Your change fixed the old error on minchaowu's PR, but there's a new one, which is the same as the error on all the other PRs.
mergify doesn't seem to be working:
https://github.com/leanprover-community/mathlib/pull/865/checks?check_run_id=92382766
I'm going try and remove the protection on master for a moment. Let's see if that makes a difference
One thing we could do is go back to a way of working with two repo. That would fix the permission situation and that would lighten the load on mathlib Travis build budget
@Simon Hudon what happened when you removed the branch protection? If you do that, you could try a fresh start of mergify, by approving and tagging e.g. https://github.com/leanprover-community/mathlib/pull/831
We just got one successful build. It corresponds to me disabling the protection
Should we reenable the protection by enabling "Require review from Code Owners", and making administrators code owners for every file?
How do we set the code owners?
https://help.github.com/en/articles/about-code-owners
That sounds like a great solution!
Let's do it!
We can set @mathlib-maintainers
as the owner
Do you know where the update branch button has gone by the way?
I do not
@Scott Morrison I'm not sure your interruption control code works. Can you look at it?
I'm told signal
is not in scope.
Why is #862 failing? Is it because the pr build finished before the push build perhaps? It says push build has failed when it has passed.
I'll look into it. It might be because of a new rule I'm trying out
I think the best thing would be to make sure that the branch protections <= mergify conditions
It didn't say it had failed actually, it says pending.
the next two PRs should merge automatically now
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


TS.html.display.splash.splash_html = function() { return `
Right-click files for more options. Drag files to trash to delete.
To learn more see our FAQ. Bug reports and feature requests can be filed at https://github.com/PenguinOfTheSky/AuthorPal


Spigot Server Builder
Home
Start
Spigot Versions
(current)
Settings
About
Spigot Versions
Latest Version:


About us
CSIRO
At the Commonwealth Scientific and Industrial Research Organisation (CSIRO), we shape the future. We do this by using science to solve real issues. Our research makes a difference to people, industry and the planet. We ask, we seek, we solve.
Since we started as the CSIR in 1926, we’ve advanced Australia with a range of inventions and innovations that have had significant positive impact on the lives of people around the world.
We're an Australian Government corporate entity, operating under the Science and Industry Research Act 1949, under the Department of Industry and Science.
Check out what we're up to at blogs.csiro.au, or follow us on Twitter or Facebook
Geoscience Australia
We apply geoscience to Australia's most important challenges by providing geoscience information, services and capability to the Australian Government, industry and stakeholders. We deliver a range of products that address important and significant national issues, and contributes information to decisions on economic, social and environmental management of the nation's resources.
As the national geoscientific agency, Geoscience Australia provides stewardship of a vast range of data that supports decision making in the management of Australia's precious water resources, hazard modeling for safer communities; and exploration for mineral and petroleum resources.
We're an Australian Government listed entity within the Industry and Science portfolio.
Check out what we're up to on Youtube, or follow us on Twitter.


EQ refers to a person’s ability to understand his/her emotion along with other person’s emotions. Emotion intelligent consists of five elements.
- Self-Awareness- To be aware of your own emotion and what you are going through, you will be in a better position to understand others. This also means you are aware of your strength and weakness.
- Self- regulation- Think before you speak. This helps to avoid any negativity when conversing with other people and will create more positive outcome.
- Motivation- Being self motivated is one of the traits of EI individuals. Money or prestigious titles are not motivating factors for them. Being driven to pursue goals for personal reasons, rather than for some kind of rewards (external motivation). Leading by example of how things can be done. Even when they are faced with challenges they try finding something good in that situation and not easily disappointed
- Empathy- When you are able to put yourself in other person shoes and think about a situation is known as empathy.
- Social skills- having great social skills will help to communicate effectively to other people. The ability to manage relationships and build networks.
IQ is basically comparing the level of intelligence possess by an individual whereas EQ is about controlling your emotion as well as other people emotions.
IQ is General Intelligence and EQ is Emotional Intelligence.
IQ measure how individual learn, understand and apply information whereas EQ measure how individual learn, understand and apply emotional knowledge.
People with high EI are better at motivating themselves.  They are also better at identifying and empathising with other people’s points of view – an essential trait for preventing and resolving conflicts at work. With a better understanding of our emotions, we can communicate our feelings in a more positive manner. We can also understand and relate to our colleagues, which can lead to better working relationships. EQ has a significant impact on job performance, interview skills, first impressions, salesmanship, as well as other aspects of business commonly associated with a rising star in the workplace.


| All Products | Price | Quantity | Total | |
|---|---|---|---|---|
| air jordan One mid | 35,000 |
|
70,000 | |
| The Crusty Croissant | 20,000 |
|
40,000 | |
| The Rolling Pin | 30,000 |
|
60,000 |


Preparation time
less than 30 mins
Cooking time
1 to 2 hours
Serves
Serves 4
An impressive Spanish dish to rustle up at your next dinner party. Use large raw prawns with the shell on if you can’t get hold of carabineros.
To make the alioli, put the crushed garlic in a small bowl and mix with a pinch of flaky salt, until smooth. Add the egg yolks and lemon juice and whisk together to combine. Slowly drizzle in the oil, while whisking until you reach a loose mayonnaise texture.
To make the stock, heat a drizzle of olive oil in a large saucepan over a medium heat and fry the prawn heads for 5 minutes. Pour over the stock and simmer for 10 minutes.
Transfer the stock to a blender and blend until smooth. Pass through a sieve into a bowl and set aside.
To make the bomba rice, heat a splash of oil in a large saucepan over a low-medium heat and fry the fennel, onions and garlic for 10–15 minutes, until just starting to colour. Add the rice and stir for 2 minutes. Add the anis, brandy and white wine, then the stock and simmer for 20–25 minutes, until the rice is just tender. Cover and set aside.
To make the squid and prawns, head a griddle pan until hot and cook the squid bodies for 45 seconds on each side, until just cooked, then set aside. Repeat with the prawns and tentacles.
Stir a spoonful of the alioli and the parsley through the rice and spoon onto plates to serve. Arrange the prawns, squid and tentacles on top and eat straight away.


NCR land to be measured under Section 18 of Sarawak land code
KUCHING, Nov 20 — From next year, native customary rights (NCR) land in the state will be measured under Section 18 of Sarawak Land Code.
Deputy Chief Minister, Datuk Amar Douglas Uggah Embas said in Budget 2020, Chief Minister Datuk Patinggi Abang Johari Openg on November 4 announced that a total of RM40 million has been allocated to measure customary land.
“He (Chief Minister) also ordered the land should be measured after this under Section 18 and to give land ownership letters to the land owners one by one.
“The land letters will be given without payment and this is the pledge of the Chief Minister to Sarawakians,” he said.
Douglas Uggah who is also Sarawak Modernisation of Agriculture, Customary Land and Regional Development Minister said when speaking at a dinner in conjunction with the 2018 Land Code Forum (Amendment) here tonight.
Elaborating further, Uggah said the state government would be paying compensation if the individually owned land measured under Section 6 before were developed.
“They (land owners) need not worry, the state government will pay compensation if their customary lands were developed to build roads, schools, clinics or for public use.
“To date, the state government had paid RM37 million in compensation. The Chief Minister also gave his assurance that the land measured under Section 6 earlier are recognised as customary land,” he said.
Works Minister, Baru Bian was earlier reported as saying the measurement of land under Section 18 would give advantage to owners as they do not have to pay fees and the land ownership letter would issued to the individual with unlimited tenure. — Bernama


Yu-Hsuan
Home
(current)
About Me
Photograph
Wood Works
Other
Contact
Get In Touch
Name
Subject
Description of the project
Email
Phone
Send it


Dialog - test case 1
Test case - dialog element and polyfill
JS fallback for dialog
Javascript not available. No dialog for you :(
Implementation details
This is the native html dialog element with a javascript polyfil to make it work in browsers that do not natively support it.
Requires javascript so would need a non-js fallback. Test case displays the content in-page if javascript is not available.
Can be dismissed using UI or with esc key.
Uses the Google Chrome polyfill polyfil for dialog.
Results
Colour blindness
Awaiting result
Colour contrast
Awaiting result
Inverted Colours
Awaiting result
Increased font size
Awaiting result
Hit area
Awaiting result
Keyboard only (chrome)
Awaiting result
Screen readers
Jaws 16 / IE 11
Awaiting result
Jaws 13 / IE 9
Awaiting result
NVDA / Firefox
Awaiting result
VoiceOver / Safari (OS X)
Awaiting result
VoiceOver / Safari (iOS 9.2.1)
Awaiting result
Talkback / Firefox (Android Lollipop)
Awaiting result
Screen Magnifier / ZoomText
Awaiting result
Speech Recognition / Dragon
Awaiting result
Valid markup
Awaiting result
Progressive Enhancement
No Javascript
Awaiting result
No Javascript and no CSS
Awaiting result


WHAT IS RUTINA?
RUTINA is an online workspace with an aim to enhance the creative and productive workflow in day-to-day life.
Choose a template or create your own page.
- Take quick notes
- Make a playlist
- Upload photos
Our name comes from the Spanish origin of the English word routine. Our concept comes from the exact definition of the word itself: a sequence of actions regularly followed.
We understand that organization and planning are at the root of success, and we're here to encourage you to build a routine out of it.
Interactive productive workspace available via web and iOS app store.


Christian Pulisic inching closer to making American history
by Jake NisseAt just 21, Christian Pulisic is quickly moving up the record books.
Playing for Chelsea on Wednesday, the American scored his third career goal in the UEFA Champions League. That already makes him the second-most prolific American (tied with Sacha Kljestan) in the competition.
His latest strike — a virtual tap-in during a 2-2 tie vs. Valencia — means he is halfway to tying DaMarcus Beasley’s current record of six Champions League goals.
After going goalless in his first nine appearances at Chelsea, Pulisic has found his footing as of late. He now sits at six goals and five assists in all competitions, including five scores in his past four Premier League appearances.
The attacker may have to wait a bit to break Beasley’s scoring record, but another one could already be broken this season.
If Chelsea defeats Lille on Dec. 10 to book a spot in the competition’s knockout stages, Pulisic will likely beat or tie Beasley and Jermaine Jones’ joint record of 27 Champions league appearances.
The wonder-kid sits on 25 after Wednesday’s match.


Email<EMAIL_ADDRESS>Phone: +53 52472074
Fill The form and Submit
Put Your Code to get Info about your product shipping


I've added the IPs for my AR and NA nodes, both the primary and secondary servers.
I've added the static IPs of the actual nodes, and also floating IPs that point to the static IPs. If I ever change IP address for any reason, the static IPs will fail but the floating IPs will still forward to the new nodes, so I'll still be able to improve connectivity to the network without people updating.
Let me know if this is ok.


Allowed values are 0-14. A zero value means always download fresh screenshots. If you need a shorter interval than one day, you can use decimal numbers in the parameter, e.g. cacheLimit=0.041666 means: use image from cache only if it is not older than one HOUR (1/24=0.041666).


GCFMUL - GC - finalize() method should not unregister listeners
The finalize() method gets only called when there are no more references to the object. If the listeners are removed in the finalize() method the object will not be removed during garbage collection.
Wrong
public void finalize() {
remove (_button);
super.finalize();
}
private Button _button = new Button();
}
Tip: Do not call methods that remove listeners in the finalize() method body.


The button contains one property (click count). When `handle_button_click` is executed, the counter updates.
click count {{cntNumber}} times


- parsers
compound particles and turn lujvo into zei-lujvo.
- search in the English dictionary.
- mitysisku se pi'o lo lojbo vlaste
- búsqueda en el diccionario español
- recherche dans le dictionnaire français (facile)
- поиск в русском словаре
- Suche im Deutsch Wörterbuch
- Serĉo en Esperanta vortaro
- 汉语字典搜索
type mode (advanced users):
The results will appear as you type.
Parsers: type ".beta " (experimental), ".ilm " (camxes), ".gerna " (jbofi'e), or ".yacc " (official yacc) followed by the text to show the structure of sentences.
Lojban dictionary: type ".language-code word", where language code is one of jbo,en,ru,es,fr,ja,de,eo,zh. Additionally: jb is for the Dictionary with Examples (addendum to 'The Crash Course in Lojban'), fr-facile is for Facile French.
This searches in both directions.
Type ".zei " followed by the text to split all compound particles and turn lujvo into zei-lujvo.


View Feedback
Feedback Information
Name:
Nur Yusna Marlina binti Mohd Yusoff
Date:
20/11/1994
Time:
12:30pm
Remark:
Health status excellent!!!


ssh stream buffer class
More...
◆ ReadLine()
| string Medama.ObservableSsh.Buffer.ReadLine |
( |
bool |
forceReadLine = false | ) |
|
|
inline |
get line from ssh read buffer
◆ UpdateFromReadStream()
| Buffer Medama.ObservableSsh.Buffer.UpdateFromReadStream |
( |
StreamReader |
reader | ) |
|
|
inline |
◆ buffer
| char [] Medama.ObservableSsh.Buffer.buffer = Enumerable.Repeat((char)0, 65536).ToArray() |
◆ count
| int Medama.ObservableSsh.Buffer.count = 0 |
use count of ssh read buffer
◆ index
| int Medama.ObservableSsh.Buffer.index = 0 |
The documentation for this class was generated from the following file:
- Assets/Plugins/Medama/Scripts/ObservableSSH/Scripts/ObservableSSHBuffer.cs


|
cds
1.2.0
|
Michael's hash map (template specialization for gc::nogc) More...
#include <cds/container/michael_map_nogc.h>
Data Structures | |
| class | iterator_type |
| Forward iterator. More... |
Public Types | |
| typedef OrderedList | bucket_type |
| type of ordered list used as a bucket implementation | |
| typedef Traits | options |
| Traits template parameters. | |
| typedef bucket_type::key_type | key_type |
| key type | |
| typedef bucket_type::value_type | value_type |
| type of value stored in the list | |
| typedef bucket_type::pair_type | pair_type |
| Pair used as the some functor's argument. | |
| typedef gc::nogc | gc |
| No garbage collector. | |
| typedef bucket_type::key_comparator | key_comparator |
| key comparision functor | |
|
typedef cds::opt::v::hash_selector < typename options::hash > ::type | hash |
| Hash functor for value_type and all its derivatives that you use. | |
| typedef options::item_counter | item_counter |
| Item counter type. | |
|
typedef cds::details::Allocator < bucket_type, typename options::allocator > | bucket_table_allocator |
| Bucket table allocator. | |
| typedef iterator_type< false > | iterator |
| Forward iterator. | |
| typedef iterator_type< true > | const_iterator |
| Const forward iterator. |
Public Member Functions | |
| iterator | begin () |
| Returns a forward iterator addressing the first element in a set. | |
| iterator | end () |
| Returns an iterator that addresses the location succeeding the last element in a set. | |
| const_iterator | begin () const |
| Returns a forward const iterator addressing the first element in a set. | |
| const_iterator | end () const |
| Returns an const iterator that addresses the location succeeding the last element in a set. | |
| MichaelHashMap (size_t nMaxItemCount, size_t nLoadFactor) | |
| Initialize the map. | |
| ~MichaelHashMap () | |
| Clear hash set and destroy it. | |
| template<typename K > | |
| iterator | insert (const K &key) |
| Inserts new node with key and default value. | |
| template<typename K , typename V > | |
| iterator | insert (K const &key, V const &val) |
| Inserts new node. | |
| template<typename K , typename Func > | |
| iterator | insert_key (const K &key, Func func) |
| Inserts new node and initialize it by a functor. | |
| template<typename K > | |
| std::pair< iterator, bool > | ensure (const K &key) |
Ensures that the key key exists in the map. | |
| template<typename K > | |
| iterator | find (const K &key) |
Find the key key . | |
| void | clear () |
| Clears the map (non-atomic) | |
| bool | empty () const |
| Checks if the map is empty. | |
| size_t | size () const |
| Returns item count in the map. | |
| size_t | bucket_count () const |
| Returns the size of hash table. |
Protected Member Functions | |
| size_t | hash_value (key_type const &key) const |
Calculates hash value of key . | |
| bucket_type & | bucket (key_type const &key) |
Returns the bucket (ordered list) for key . |
Protected Attributes | |
| item_counter | m_ItemCounter |
| Item counter. | |
| hash | m_HashFunctor |
| Hash functor. | |
| bucket_type * | m_Buckets |
| bucket table |
Michael's hash map (template specialization for gc::nogc)
This specialization is intended for so-called persistent usage when no item reclamation may be performed. The class does not support deleting of map item.
See MichaelHashMap for description of template parameters.
The interface of the specialization is a little different.
|
inline |
Initialize the map.
The Michael's hash map is non-expandable container. You should point the average count of items nMaxItemCount
when you create an object. nLoadFactor
parameter defines average count of items per bucket and it should be small number between 1 and 10. Remember, since the bucket implementation is an ordered list, searching in the bucket is linear [O(nLoadFactor)
]. Note, that many popular STL hash map implementation uses load factor 1.
The ctor defines hash table size as rounding nMacItemCount / nLoadFactor
up to nearest power of two.
| nMaxItemCount | estimation of max item count in the hash set |
| nLoadFactor | load factor: estimation of max number of items in the bucket |
|
inline |
|
inline |
Returns the size of hash table.
Since MichaelHashMap cannot dynamically extend the hash table size, the value returned is an constant depending on object initialization parameters; see MichaelHashMap::MichaelHashMap for explanation.
|
inline |
Clears the map (non-atomic)
The function deletes all items from the map. The function is not atomic. It cleans up each bucket and then resets the item counter to zero. If there are a thread that performs insertion while clear
is working the result is undefined in general case: empty()
may return true
but the map may contain item(s).
|
inline |
Checks if the map is empty.
Emptiness is checked by item counting: if item count is zero then the map is empty. Thus, the correct item counting feature is an important part of Michael's map implementation.
|
inline |
|
inline |
Ensures that the key key
exists in the map.
The operation inserts new item if the key key
is not found in the map. Otherwise, the function returns an iterator that points to item found.
Returns std::pair<iterator, bool>
where first
is an iterator pointing to item found or inserted, second
is true if new item has been added or false
if the item already is in the list.
|
inline |
Find the key key
.
The function searches the item with key equal to key
and returns an iterator pointed to item found if the key is found, and end() otherwise
|
inline |
Inserts new node with key and default value.
The function creates a node with key
and default value, and then inserts the node created into the map.
Preconditions:
K
. In trivial case, K
is equal to key_type.Returns an iterator pointed to inserted value, or end()
if inserting is failed
|
inline |
Inserts new node.
The function creates a node with copy of val
value and then inserts the node created into the map.
Preconditions:
key
of type K
.val
of type V
.Returns an iterator pointed to inserted value, or end()
if inserting is failed
|
inline |
Inserts new node and initialize it by a functor.
This function inserts new node with key key
and if inserting is successful then it calls func
functor with signature
The argument item
of user-defined functor func
is the reference to the map's item inserted. item.second
is a reference to item's value that may be changed. User-defined functor func
should guarantee that during changing item's value no any other changes could be made on this map's item by concurrent threads. The user-defined functor can be passed by reference using boost::ref
and it is called only if the inserting is successful.
The key_type should be constructible from value of type K
.
The function allows to split creating of new item into two part:
key
;f
functorThis can be useful if complete initialization of object of value_type
is heavyweight and it is preferable that the initialization should be completed only if inserting is successful.
Returns an iterator pointed to inserted value, or end()
if inserting is failed


Profile Override¶
Override the IPython IPython.core.profiledir.ProfileDir
.
Initially created to implement a repr for the class, it was expanded in order to also modify the behavior that automatically adds the directories.:
PID
security
log
db
It automatically creates them in the current working directory and this behavior was not designed to be modifiable.
As a result, profiles are frequently created in the wrong dir often enough that it should be configurable behavior.
See Also¶
IPython.core.profileapp
How IPython implements the profile originally.
IPython.core.profiledir
The overridden class.
Profile App API¶
-
class
ReprProfileDir
(**kwargs)[source][source]¶ Bases:
IPython.core.profiledir.ProfileDir
An object to manage the profile directory and its resources.
The profile directory is used by all IPython applications, to manage configuration, logging and security.
This object knows how to find, create and manage these directories. This should be used by any code that wants to handle profiles.
Notes
Implements
__fspath__
to implement the pathlib protocol.
-
class
DirectoryChecker
(*args)[source][source]¶ Bases:
object
Checks for the presence of needed directories and creates them.
-
ensure_dir_exists
(path, mode=493)[source][source]¶ Ensure that a directory exists.
If it doesn’t exist, try to create it and protect against a race condition if another process is doing the same.
The default permissions are
0o755
, which differ fromos.makedirs()
default of0o777
.
-


The Science of Atoms and Molecules was designed to assist the realignment of high school science disciplines into a physics, chemistry, and biology sequence. SAM activities provide critical atomic-scale science content that can enable and take advantage of the revised sequence. The atomic and molecular model-based activities facilitate not only the disciplinary order but also four thematic sequences: Motion and Energy, Charge, Atoms and Molecules, and Light.


I recently graduated from the Code Fellows Computer Science and Web Development bootcamp, and am currently looking for work as a web developer. If you have any questions, please feel free to contact me!
You can contact me by phone during normal business hours, but email and twitter are the best ways to reach me.


Revision Control
Distributed Revision Control
Distributed revision control systems (DRCS) take a peer-to-peer approach, as opposed to the client-server approach of centralized systems. Rather than a single, central repository on which clients synchronize, each peer's working copy of the codebase is a bona-fide repository. Distributed revision control conducts synchronization by exchanging patches (change-sets) from peer to peer. This results in some important differences from a centralized system:
- No canonical, reference copy of the codebase exists by default; only working copies.
- Common operations (such as commits, viewing history, and reverting changes) are fast, because there is no need to communicate with a central server.
Rather, communication is only necessary when pushing or pulling changes to or from other peers.
- Each working copy effectively functions as a remote backup of the codebase and of its change-history, providing inherent protection against data loss.


Across: 1. His heavy drama school (8) 9. Revolutionary rose, even supervised (8) 10. Animal monarch who carries a load (6) 11. Join a team ... a glam outfit! (10) 12. Shot western without double in cast (6) 13. Among virtuosi, Lear simply reverts to the people (8) 16. 14 pieces swapped to make barrier (4) 18. Bard's one worker perhaps working with ten (7) 19. Bard's one of Pope's high end legates in ancient 17 (7) 22. 17 pieces swapped to make containers (4) 24. The idle political leaders largely sleep after lunch, most affected by a few drinks (8) 27. The Spanish rave about young ones (6) 28. Conventional term "man" is a problem (10) 29. Removing first canines caused irritations (6) 30. A lone ant injured soon after birth (8) 31. Does better than rejected Hamlet and Macbeth perhaps (8) Down: 2. Excited Once'ler seized Truffula top... a very light thing that could attract a positive charge (8) 3. Ghastly horn soured composition (10) 4. Godiva ran as idol stripped in city (8) 5. Bard's one who rations content (7) 6. Mistakes repurposed are art (6) 7. Tailed criminal as part of the job (6) 8. Crush and reuse submarine (8) 14. 22 has second highest position (4) 15. When such a device broken, I recollect, a circuit not present (10) 17. 16 has second lowest surfaces (4) 18. Element opposing capital forfeited East (8) 20. He makes a fortune, taking a second to become a composer (8) 21. Wildly revolutionary Lenin, say (8) 23. Bard's one to come up with classic English salutation (7) 25.  Put to work playing "Satin Doll" finally (6)


{% comment %} Any custom scripts that need to be loaded after main.min see this issue: https://github.com/mmistakes/minimal-mistakes/issues/794 {% endcomment %} {% if page.scripts %} {{ page.scripts }} {% endif %} {% include analytics.html %} {% include /comments-providers/scripts.html %}


Team Talk...
It is well known that, the cardinal virtues of human life are wisdom, temperance, justice and courage. All these four values can be attained through education. Education is not only for imparting knowledge but also for learning. Believing these base lines, our team had decided to start a tech magazine, e–flip to disseminate ever changing technology in general and electronics in particular.A farmer just plants or sows the seed but the nature nurtures it, in the same way the idea of ours was nurtured by our teachers and stood as a support in making our thoughts into reality. The main aim of e–flip is to deliver the state–of– art information about the existing-upcoming technologies and enlighten about working principles. Certainly our readers will be enriched with ample amount of knowledge regarding the technology stuff, supporting them to write their own articles, giving them privilege to present their articles in e–flip. Many hurdles were surrounded on the way of refining our thoughts in publishing and marketing. But the founder’s aim and vision cleared all the hurdles and today e–flip is at its final phase. The founder's vision to compile all their editorial thoughts onto papers and the papers into e–flip. Focusing on the riddles of technologies and solving them with similar brains is the underlying magic of e–flip. The readers feel the content to be easier and understandable. Hope the reader community supports us in the coming journey. The editorial board promises the readers that rich and trusted content in e–flip will be delivered every month.


Everyone has their own voice and your the only one that can control it, use it to change the world. ONE STEP AT A TIME!
Enjoy some of these pictures, videos, activities!
We will make it right, one re-useable step at a time. We will not look back at our mistakes but look forward to a better and healthier future. We must become SUSTAINABLE and stop hurting Mother Nature, She is all we got!


closed
by None at 2022-03-01 12:50:21.All EAD physlocs of various types ("code", "text") are intermingled in ASpace, with no structured way to tell them apart. In some cases, they include additional language like "Location code:", so we can't check for string length. We probably need to string-check for the presence of hard-coded location codes.
To further complicate things, the MARC exporter concatenates all physloc notes into one 500 field.
assigned
by None at 2022-03-01 12:51:49.labeled
by None at 2022-03-01 13:03:44.closed
by None at 2022-03-01 13:16:30.renamed
by None at 2022-03-01 13:16:46.see #146
assigned
by None at 2022-03-01 13:17:28.labeled
by None at 2022-03-01 19:18:03.closed
by None at 2022-03-01 19:18:08.submitted to WC
run over XML export: //record[not(datafield[@tag="982"])]/datafield[@tag="001"]
assigned
by None at 2022-03-01 19:18:36.labeled
by None at 2022-03-01 19:19:00.closed
by None at 2022-03-01 19:25:15.mentioned
by Tom G at 2022-03-01 19:59:56.subscribed
by Tom G at 2022-03-01 19:59:56.this will help SC staff remediate data issues
there's an endpoint for just that: [:GET] /repositories/:repoid/resources/:id/topcontainers
assigned
by None at 2022-03-01 20:44:20.assigned
by None at 2022-03-01 16:41:05.unassigned
by None at 2022-03-01 16:42:13.closed
by Jane Sandberg at 2022-03-01 16:50:52.@dependabot rebase
mentioned
by Dependabot at 2022-03-01 17:08:03.head_ref_force_pushed
by None at 2022-03-01 17:08:48.Thanks for your incredible work on this project, @christinach!
head_ref_force_pushed
by Christina Chortaria at 2022-03-01 12:25:08.head_ref_force_pushed
by Christina Chortaria at 2022-03-01 15:59:44.deployed
by None at 2022-03-01 16:05:16.referenced
by Jane Sandberg at 2022-03-01 16:50:52.merged
by Jane Sandberg at 2022-03-01 16:50:52.closed
by Jane Sandberg at 2022-03-01 16:50:52.head_ref_deleted
by Jane Sandberg at 2022-03-01 16:50:53.mentioned
by Christina Chortaria at 2022-03-01 16:51:35.subscribed
by Christina Chortaria at 2022-03-01 16:51:35.Thank you @pmgreen
@pmgreen what are the new external names? Locally when I pull the locations from Alma I dont see changes
firestone$pres
: Preservation Office: Contact<EMAIL_ADDRESS>lewis$serial
: Lewis Library - Serials (Off-Site)
assigned
by Christina Chortaria at 2022-03-01 17:40:14.mentioned
by Peter Green at 2022-03-01 17:41:01.subscribed
by Peter Green at 2022-03-01 17:41:01.mentioned
by Peter Green at 2022-03-01 19:06:41.subscribed
by Peter Green at 2022-03-01 19:06:41.This is the work around mentioned in https://github.com/pulibrary/bibdata/issues/1704
referenced
by Christina Chortaria at 2022-03-01 19:28:32.merged
by Christina Chortaria at 2022-03-01 19:28:32.closed
by Christina Chortaria at 2022-03-01 19:28:32.head_ref_deleted
by Christina Chortaria at 2022-03-01 19:28:32.@kevinreiss @carolyncole @sandbergja @regineheberlein this is the error we see in the events page when the scsb job to import the full dump got re-triggered when sidekiq restarted.
We documented the work around here: https://github.com/pulibrary/bibdata/blob/main/docs/scsb-file-exists-work-around.md This seemed to happen when the xml file was present. Some but not all. You can see from the error above that the first 10 files were OK with the unzip and then the error occurred on the 11th.
mentioned
by Kevin Reiss at 2022-03-01 12:33:24.subscribed
by Kevin Reiss at 2022-03-01 12:33:24.mentioned
by None at 2022-03-01 12:33:25.subscribed
by None at 2022-03-01 12:33:25.mentioned
by None at 2022-03-01 12:33:25.subscribed
by None at 2022-03-01 12:33:25.mentioned
by Jane Sandberg at 2022-03-01 12:33:25.subscribed
by Jane Sandberg at 2022-03-01 12:33:25.head_ref_force_pushed
by None at 2022-03-01 18:48:41.head_ref_force_pushed
by None at 2022-03-01 19:23:09.head_ref_force_pushed
by Christina Chortaria at 2022-03-01 19:49:33.head_ref_force_pushed
by None at 2022-03-01 14:32:25.deployed
by None at 2022-03-01 14:32:34.head_ref_force_pushed
by None at 2022-03-01 15:06:21.deployed
by None at 2022-03-01 15:06:39.referenced
by None at 2022-03-01 15:17:41.merged
by None at 2022-03-01 15:17:41.closed
by None at 2022-03-01 15:17:41.head_ref_deleted
by None at 2022-03-01 15:17:42.@kevinreiss I am closing this, since I finished the work in another branch.
closed
by None at 2022-03-01 16:24:34.mentioned
by Kevin Reiss at 2022-03-01 16:24:35.subscribed
by Kevin Reiss at 2022-03-01 16:24:35.head_ref_force_pushed
by None at 2022-03-01 16:06:57.ready_for_review
by None at 2022-03-01 16:07:34.deployed
by None at 2022-03-01 16:08:04.referenced
by Kevin Reiss at 2022-03-01 16:48:02.merged
by Kevin Reiss at 2022-03-01 16:48:02.closed
by Kevin Reiss at 2022-03-01 16:48:02.head_ref_deleted
by Kevin Reiss at 2022-03-01 16:48:03.referenced
by Kevin Reiss at 2022-03-01 18:23:10.merged
by Kevin Reiss at 2022-03-01 18:23:10.closed
by Kevin Reiss at 2022-03-01 18:23:10.head_ref_deleted
by Kevin Reiss at 2022-03-01 18:23:10.closed
by Kevin Reiss at 2022-03-01 18:23:10.I found same the pattern, good searches work sometimes but timeout otherwise.
referenced
by None at 2022-03-01 20:12:24.referenced
by Kevin Reiss at 2022-03-01 20:42:46.referenced
by Kevin Reiss at 2022-03-01 20:42:45.merged
by Kevin Reiss at 2022-03-01 20:42:45.closed
by Kevin Reiss at 2022-03-01 20:42:45.head_ref_deleted
by Kevin Reiss at 2022-03-01 20:42:46.assigned
by None at 2022-03-01 15:33:26.unassigned
by None at 2022-03-01 18:28:06.labeled
by None at 2022-03-01 23:24:03.labeled
by None at 2022-03-01 23:24:03.referenced
by Bess Sadler at 2022-03-01 13:10:50.merged
by Bess Sadler at 2022-03-01 13:10:50.closed
by Bess Sadler at 2022-03-01 13:10:50.head_ref_deleted
by Bess Sadler at 2022-03-01 13:10:51.referenced
by Trey Pendragon at 2022-03-01 17:25:08.merged
by Trey Pendragon at 2022-03-01 17:25:08.closed
by Trey Pendragon at 2022-03-01 17:25:08.head_ref_deleted
by Trey Pendragon at 2022-03-01 17:25:09.referenced
by Trey Pendragon at 2022-03-01 17:25:21.merged
by Trey Pendragon at 2022-03-01 17:25:21.closed
by Trey Pendragon at 2022-03-01 17:25:21.head_ref_deleted
by Trey Pendragon at 2022-03-01 17:25:22.assigned
by Trey Pendragon at 2022-03-01 18:13:39.Confirmed this seems to work in staging.
ready_for_review
by Trey Pendragon at 2022-03-01 23:52:24.@dependabot rebase
Looks like this PR is already up-to-date with main! If you'd still like to recreate it from scratch, overwriting any edits, you can request @dependabot recreate
.
mentioned
by Dependabot at 2022-03-01 17:07:29.@kelea99 -- we have a proposed fix for this. @christinach and I got it set up at https://catalog-qa.princeton.edu/ for you to take a look. Let us know what you think!
mentioned
by Christina Chortaria at 2022-03-01 21:40:13.subscribed
by Christina Chortaria at 2022-03-01 21:40:13.mentioned
by Kim Leaman at 2022-03-01 21:40:13.subscribed
by Kim Leaman at 2022-03-01 21:40:13.closed
by Bess Sadler at 2022-03-01 15:09:37.closed
by Kate Lynch at 2022-03-01 21:46:03.unassigned
by Kate Lynch at 2022-03-01 15:05:08.assigned
by Hector Correa at 2022-03-01 15:05:09.closed
by Kate Lynch at 2022-03-01 21:46:03.convert_to_draft
by Hector Correa at 2022-03-01 19:16:39.ready_for_review
by Hector Correa at 2022-03-01 21:17:34.referenced
by Kate Lynch at 2022-03-01 21:46:03.merged
by Kate Lynch at 2022-03-01 21:46:03.closed
by Kate Lynch at 2022-03-01 21:46:03.head_ref_deleted
by Kate Lynch at 2022-03-01 21:46:04.@carolyncole the same construction shows up in groups_vars/orangelight/qa.yml here and also here. Do we want to update those too?
@acozine I am unsure about those variables. I just know this one is needed for the library staging site.
mentioned
by None at 2022-03-01 00:33:48.subscribed
by None at 2022-03-01 00:33:48.mentioned
by Alicia Cozine at 2022-03-01 13:46:58.subscribed
by Alicia Cozine at 2022-03-01 13:46:59.referenced
by None at 2022-03-01 14:00:04.merged
by None at 2022-03-01 14:00:04.closed
by None at 2022-03-01 14:00:04.head_ref_deleted
by None at 2022-03-01 14:00:05.mentioned
by Alicia Cozine at 2022-03-01 14:03:13.subscribed
by Alicia Cozine at 2022-03-01 14:03:14.referenced
by James R. Griffin III at 2022-03-01 15:25:43.merged
by James R. Griffin III at 2022-03-01 15:25:43.closed
by James R. Griffin III at 2022-03-01 15:25:43.head_ref_deleted
by James R. Griffin III at 2022-03-01 15:25:44.We can see the base version number now, but the apt
task still fails, saying no version matches. The playbook should probably:
- check the installed version
- if the installed version matches the desired version, stop there
- if the installed version does not match the desired version, download node from nodejs.org/download/release/latest-v{{ desired_version }}.x/node-v{{ desired_version }}."whatever comes next"-linux-x64.tar.gz
, then unzip and install node from that . . . but I'm not sure how to do the matching in a sustainable way (meaning, a way that works now for 16.14.0 and will still work when 16.20.8 comes out); alternatively, we could update the node version to be more specific (for example, 16.14.0 instead of 16.x)
Helpful links: Listing of Node releases and support schedule Directory for Node 14 Directory for Node 16
Turns out they DO keep older releases on each line, see https://nodejs.org/download/release/v16.14.0/
The version we use should match https://github.com/pulibrary/orangelight/blob/main/.tool-versions
ready_for_review
by Trey Pendragon at 2022-03-01 17:45:58.referenced
by Trey Pendragon at 2022-03-01 21:31:26.merged
by Trey Pendragon at 2022-03-01 21:31:26.closed
by Trey Pendragon at 2022-03-01 21:31:26.head_ref_deleted
by Trey Pendragon at 2022-03-01 21:31:26.referenced
by Trey Pendragon at 2022-03-01 23:33:28.merged
by Trey Pendragon at 2022-03-01 23:33:28.closed
by Trey Pendragon at 2022-03-01 23:33:28.head_ref_deleted
by Trey Pendragon at 2022-03-01 23:33:28.referenced
by Christina Chortaria at 2022-03-01 15:15:33.merged
by Christina Chortaria at 2022-03-01 15:15:33.closed
by Christina Chortaria at 2022-03-01 15:15:33.head_ref_deleted
by Christina Chortaria at 2022-03-01 15:15:34.closed
by None at 2022-03-01 13:47:40.referenced
by None at 2022-03-01 13:47:40.merged
by None at 2022-03-01 13:47:40.closed
by None at 2022-03-01 13:47:41.head_ref_deleted
by None at 2022-03-01 13:47:41.referenced
by Trey Pendragon at 2022-03-01 17:21:50.merged
by Trey Pendragon at 2022-03-01 17:21:50.closed
by Trey Pendragon at 2022-03-01 17:21:50.head_ref_deleted
by Trey Pendragon at 2022-03-01 17:21:51.referenced
by Trey Pendragon at 2022-03-01 17:22:12.merged
by Trey Pendragon at 2022-03-01 17:22:12.closed
by Trey Pendragon at 2022-03-01 17:22:12.head_ref_deleted
by Trey Pendragon at 2022-03-01 17:22:13.referenced
by Trey Pendragon at 2022-03-01 17:22:26.merged
by Trey Pendragon at 2022-03-01 17:22:26.closed
by Trey Pendragon at 2022-03-01 17:22:26.head_ref_deleted
by Trey Pendragon at 2022-03-01 17:22:26.referenced
by Trey Pendragon at 2022-03-01 17:22:50.merged
by Trey Pendragon at 2022-03-01 17:22:50.closed
by Trey Pendragon at 2022-03-01 17:22:50.head_ref_deleted
by Trey Pendragon at 2022-03-01 17:22:50.referenced
by Trey Pendragon at 2022-03-01 17:23:20.merged
by Trey Pendragon at 2022-03-01 17:23:20.closed
by Trey Pendragon at 2022-03-01 17:23:20.head_ref_deleted
by Trey Pendragon at 2022-03-01 17:23:20.labeled
by None at 2022-03-01 15:17:29.labeled
by None at 2022-03-01 15:17:29.labeled
by None at 2022-03-01 15:17:29.referenced
by None at 2022-03-01 15:57:58.closed
by Trey Pendragon at 2022-03-01 17:33:40.referenced
by Trey Pendragon at 2022-03-01 17:33:39.merged
by Trey Pendragon at 2022-03-01 17:33:39.closed
by Trey Pendragon at 2022-03-01 17:33:40.head_ref_deleted
by Trey Pendragon at 2022-03-01 17:33:40.Per info Will just shared, it seems like this isn't possible due to how MARC records will be generated from ASpace, correct? @tpendragon If so, we can close this issue.
I'm not sure? I'd need to know more about the MARC records from ASpace strategy being talked about here.
Ahh, sorry. For some reason I assumed you would have been a part of the most recent conversation. Basically, we need to have that note/those codes at the collection level. So I think it's safe to say that we can delete this ticket/that this request is no longer valid.
@faithc Sounds good.
mentioned
by Trey Pendragon at 2022-03-01 19:45:19.subscribed
by Trey Pendragon at 2022-03-01 19:45:19.mentioned
by None at 2022-03-01 20:09:50.subscribed
by None at 2022-03-01 20:09:50.Need to upgrade production from Redis v3.0.6 to v.4.0.0.
We should either roll back sidekiq or upgrade redis on the prod/staging box.
@hackartisan made a good point that Pulfalight's pointed at the central redis machine. I don't think we're ready to upgrade that quite yet, so we should downgrade sidekiq at least.
renamed
by Shaun Ellis at 2022-03-01 19:34:30.labeled
by Trey Pendragon at 2022-03-01 20:06:40.mentioned
by None at 2022-03-01 20:16:09.subscribed
by None at 2022-03-01 20:16:09.assigned
by Trey Pendragon at 2022-03-01 20:18:36.referenced
by Trey Pendragon at 2022-03-01 20:18:43.closed
by None at 2022-03-01 20:32:41.Created https://github.com/pulibrary/princeton_ansible/issues/2799 for upgrading our redis server to 4.
referenced
by None at 2022-03-01 20:32:40.merged
by None at 2022-03-01 20:32:40.closed
by None at 2022-03-01 20:32:41.head_ref_deleted
by None at 2022-03-01 20:32:41.Looks like sidekiq is up-to-date now, so this is no longer needed.
labeled
by None at 2022-03-01 17:23:38.labeled
by None at 2022-03-01 17:23:38.closed
by None at 2022-03-01 20:33:24.head_ref_deleted
by None at 2022-03-01 20:33:25.Closing this ticket - @regineheberlein is implementing this in lib-jobs
via https://github.com/pulibrary/aspace_helpers/issues/2 and progress can be followed there.
closed
by Trey Pendragon at 2022-03-01 20:46:02.mentioned
by None at 2022-03-01 20:46:02.subscribed
by None at 2022-03-01 20:46:03.renamed
by Trey Pendragon at 2022-03-01 17:43:25.review_requested
by Trey Pendragon at 2022-03-01 18:59:27.referenced
by Trey Pendragon at 2022-03-01 21:02:16.merged
by Trey Pendragon at 2022-03-01 21:02:16.closed
by Trey Pendragon at 2022-03-01 21:02:16.head_ref_deleted
by Trey Pendragon at 2022-03-01 21:02:17.head_ref_force_pushed
by None at 2022-03-01 17:23:34.head_ref_force_pushed
by None at 2022-03-01 17:24:18.head_ref_force_pushed
by None at 2022-03-01 21:03:15.All updated.
referenced
by Trey Pendragon at 2022-03-01 21:31:27.closed
by Trey Pendragon at 2022-03-01 21:31:39.labeled
by None at 2022-03-01 23:28:58.labeled
by None at 2022-03-01 23:28:58.The example record looks exactly as I think it should after the temp changes in staging.
see discussion on slack starting around here: https://pulibrary.slack.com/archives/C031U4XCUH2/p1646171279971419
renamed
by Jane Sandberg at 2022-03-01 21:58:46.


{% extends "base.html" %} {% block breadcrumbs %}
Select the plugin archive file below and press upload to install it. If the plugin already exists you will be asked if you want to update it. You can optionally also provide a PGP signature file for use with agents that are configured to enforce signature checking on plugin installation.
Optional


Easily manage capacity, cycle time, productivity and the entire customer experience from your mobile device.
Service Workflow Suite, powered by Dealer-FX's ONE Platform, is designed to deliver the best customer experience in the business.
From initial connection to check-out and next service, every component works together to offer one seamless solution that provides real-time views of every vehicle and process.
View critical data from your DMS and every solution within Service Workflow Suite. Measure and report on total time for each step of service, in addition to the performance of each advisor and technician. Identify and remove process bottlenecks.
Reach customers with compelling and personalized messages. From recall notifications, service reminders to promotional offers ensure that your customers are always in the loop.
Utilize online booking to better manage the flow and efficiency of your shop. Book your customers faster with convenient online, BDC and mobile scheduling.
Quickly identify customers while presenting VIN-specific factory service menus with dealer pricing, all while performing the walk around on your tablet.
Give your technicians access to all the information available through an integrated multi-point inspection and analysis tool. Provide your team the real-time status of every vehicle in the shop, including promise times and potential roadblocks.
Deliver a convenient experience by accepting customer payments on the tablet, and in the service drive. Set future service expectations by presenting the vehicle’s factory maintenance roadmap.
Build relationships with your customers with timely, compelling invitations and reminders across any customer-preferred channel. Our BDC tool helps generate target lists for recalls, overdue & declined services and more.
I.C.E. (Integrated Customer Engagement) will transform every customer's vehicle ownership experience.
ONE Platform Generates Impressive Results*
| $97 | Increase in |
| Dollars Per VIN |
| 93% | Increase in |
| Factory Required Maintenance |
| 24% | Increase in |
| Parts & Service Revenue |
| 21% | Increase in |
| Numbers of ROs |
| 3X | Increase in |
| Customer Retention |
*Results represent multiple product configurations for dealerships across North America.
“The customer response has been great. When that iPad is turned around and presented, the customer jumps right in. The Dealer-FX team has been very professional and their solution has really brought us into the 21st century!”


-
Removes folder backgrounds from Springboard.
Works on iOS 10/11. iPhone X is supported!
iOS 12 support is unknown, if you would like to test it, go ahead, and please report it to 19card on Twitter. - Link to original Reddit thread here.
Depends on:
- None
Images
In this version
- Tweak no longer conflicts with another tweak called NoFolderBackgrounds.


About New Coder
About the Project
Learning something new is difficult; it takes guts. Folks come in with a lot of energy and eagerness, only to experience discouragement when there aren't a lot of resources to step beyond the 'learn syntax' to programming. Often there are questions of, "Well, I worked through this beginner book. Now what?" How do you answer that?
Many want to learn to code, and many choose Python as a first language. You direct them to Learn Python the Hard Way, Codecademy, or Dive into Python. Great! But now what?
I've built 5 digestible projects to gradually progress the Python learner from near drowning to a decent swimmer. The goal is to have new coders feeling accomplished and to continuing learning.
Contributions
A thank you
I want to give a huge thank you to:
- Horst Gutmann for his great ideas + large code contribution to the API tutorial,
- Alexander Afanasiev for taking charge on coding out the Scrapy tutorial and helping code out the GUI tutorial,
- Jair Trejo for taking my Sudoku code in C and translating it to Python,
- Ana Krivokapić for her great ideas on approaching the Sudoku game,
- and Stacy Jones, Hynek Schlawack, Sebastian Porst, and many others who read and worked through initial drafts.
To Contribute
If you are a new coder, and something is not clear to you, go ahead and file an issue or email me directly.
If you are a seasoned coder, there are many TODOs and issues that can be knocked out, and would be greatly appreciated!
I encourage teachers, mentors, workshop leaders, etc, to use these tutorials as material to teach off of, and to give feedback via filing an issue or emailing me.
About Me
I am an insomniac software engineer for Red Hat. I am also the founder of the San Francisco Chapter of PyLadies, a mentorship group for women in the Python and Open Source community.
I have a business degree in finance and economics, but fell in love with programming in 2011. I work on freeIPA, particularly on integrating the product into other Open Source projects.
I like to speak. A lot. I particularly talk on the Python community, as well as the work that I do with freeIPA integration. Email me if you would like to make my talks list longer.
I respond to twitter faster than email.
I vent sometimes. My personal projects can be found on GitHub.


Subqueries allow you to group complex substructures with numeric annotations just as you grouped individual query elements in Exercise 5.3.
In this example we want to find, for every faculty member, all their research projects and all the individuals associated with each of those research projects. We interpret links from faculty pages to research project pages to mean that this faculty member supervises the associated project. We similarly interpret links connecting research project pages to other individuals’ web pages as indicating involvement in or interest in that project, regardless of the direction of the link. Taken together, all these links identify individuals associated with a particular project. The subgraphs that match the query created in this exercise each identify a single faculty web page, all the research project pages it links to, and all the other faculty, student, and staff pages linked to or from those research project pages.
The structure of this query is a 2d-star. Similar to the 1d-star query shown in Exercise 5.3, a 2d-star is the cluster of 1d-stars directly linked to a core object. We use a subquery to specify the 1d-star substructure within a 2d-star query.
In describing this query we made several assumptions about how objects and links in the database correspond to entities and relationships in the world. Although these assumptions may seem reasonable, it’s important to remember that we might be wrong in some or all of these assumptions. If we go on to use the results of this query in a model, appropriate care must be taken in applying the models’s predictions to real world situations.
Exercise 5.5. Using subqueries in a query:
The query created in this exercise is also available in the
Proximity 4.3 distribution in
$PROX_HOME/doc/user/tutorial/examples/project-people.qg2.xml
.
Before beginning, make sure that you are serving the ProxWebKB database using Mserver. Start the Proximity Database Browser if it is not already running.
From the Query menu, choose New Query. Proximity starts the Query Editor.
Create an unannotated vertex labeled
project
. Add the condition
pagetype = ResearchProject
to this vertex.
Create another vertex labeled person
.
Add the condition
OR(pagetype = Faculty, pagetype = Student, pagetype = Staff)
to this vertex. Proximity requires the use of prefix notation and disjunctive normal form to express complex conditions.
Add the annotation
[0..]
to the
person vertex. This annotation makes
matching the person vertex
optional. Any pages matching the person
vertex will be included in the query results, but the query will match
appropriate research project web pages
regardless of whether they link to another faculty, student, or staff
page.
Create an undirected edge labeled
associated-with
linking the project vertex to the
person vertex. If you do not have
automatic edge annotation enabled, add the numeric
annotation [1..]
to this edge.
The correct annotation for an edge adjacent to an
optional
vertex is almost always [1..]
. See the
Proximity QGraph Guide
for an explanation of
why this is the appropriate annotation.
Click or press Ctrl-4 to choose the subquery tool. Drag the mouse to create a rectangle that contains both vertices and the connecting edge.
Release the mouse button. The Query Editor changes the color of the vertices inside the rectangle to red to indicate that they are part of a subquery.
All subqueries must be annotated. The Query Editor
automatically adds a [1..]
annotation to
new subqueries. To change this annotation, click inside the subquery
box and edit the subquery’s properties in the element properties
pane.
Create a vertex named prof
outside the
subquery area. Add the condition
pagetype = Faculty
to this vertex.
Create a directed edge named supervises
from the prof vertex
to the project vertex.
Add the numeric annotation [1..]
to the
supervises edge. The
boundary edge of a
subquery must be annotated.
Add the identity constraint
prof <> person
to the query. This constraint ensures that the same object does not match both the prof and person vertices in the same subgraph.
Check the status list at the bottom of the Query Editor window to make sure the query is valid. If the query is not valid, examine the errors and fix any problems before continuing.
[Optional] Add a name and description and save the query.
From the File menu, choose
Run or press Ctrl-R
to execute your query.
Proximity prompts you for a name for the results
container. Enter
proj-associated-people
and click
OK.
Proximity opens a window to show you a trace of the query execution. The last lines should be similar to the following excerpt (leading information showing elapsed time and execution thread has been omitted from the trace for brevity):
INFO kdl.prox.qgraph2.QueryGraph2CompOp - -> found 42 subgraphs INFO kdl.prox.qgraph2.QueryGraph2CompOp - -> query results saved in container: proj-associated-people INFO kdl.prox.qgraph2.QueryGraph2CompOp - * query: done Status: finished running query
Close this window after the query finishes.
Examine the query results in the proj-associated-people container. Click Home to go to the Proximity Database Browser start page. Click Containers, then click proj-associated-people. Proximity displays the list of subgraphs for this container.
Click 12 to see the details of this subgraph. This subgraph includes two research project objects.
Click graph to display the subgraph’s graph structure. Because graph layout is non-deterministic, your graph may look somewhat different than that shown below.
Continue to explore the results of your query. When you are finished, continue to the next section.


A: The license is MIT Open Source.
A: Flexify supports latest versions of modern browsers. This includes Chrome, Firefox, Safari and Edge.
A: Microsoft does not support Internet Explorer 10 and below anymore. Microsoft is planning to stop supporting IE 11 soon. The percentage of IE usage is about few percents combined and decreasing. It does not worth it to maintain these browsers anymore.
A: I was using Bootstrap for a long time and was pretty happy about it. But there are some things I missed in Bootstrap: simplicity, CSS dropdown menu which works on hover and not on click, etc. Every classname in Flexify is prefixed with [fx-] prefix for avoiding conflicts with other frameworks/libraries. You may use Flexify with another framework on the same project.
A: Flexbox provides simpler and more flexible layout options in CSS. More specifically, it provides:
To run SCSS you need to install:
To avoid installing all of that you can simply use CSS.


module OpenSSL::PKCS5
Provides password-based encryption functionality based on PKCS#5. Typically used for securely deriving arbitrary length symmetric keys to be used with an OpenSSL::Cipher from passwords. Another use case is for storing passwords: Due to the ability to tweak the effort of computation by increasing the iteration count, computation can be slowed down artificially in order to render possible attacks infeasible.
PKCS5 offers support for PBKDF2 with an OpenSSL::Digest::SHA1-based HMAC, or an arbitrary Digest if the underlying version of OpenSSL already supports it (>= 1.0.0).
Parameters¶ ↑
Password¶ ↑
Typically an arbitrary String that represents the password to be used for deriving a key.
Salt¶ ↑
Prevents attacks based on dictionaries of common passwords. It is a public value that can be safely stored along with the password (e.g. if PBKDF2 is used for password storage). For maximum security, a fresh, random salt should be generated for each stored password. According to PKCS#5, a salt should be at least 8 bytes long.
Iteration Count¶ ↑
Allows to tweak the length that the actual computation will take. The larger the iteration count, the longer it will take.
Key Length¶ ↑
Specifies the length in bytes of the output that will be generated. Typically, the key length should be larger than or equal to the output length of the underlying digest function, otherwise an attacker could simply try to brute-force the key. According to PKCS#5, security is limited by the output length of the underlying digest function, i.e. security is not improved if a key length strictly larger than the digest output length is chosen. Therefore, when using PKCS5 for password storage, it suffices to store values equal to the digest output length, nothing is gained by storing larger values.
Examples¶ ↑
Generating a 128 bit key for a Cipher (e.g. AES)¶ ↑
pass = "secret" salt = OpenSSL::Random.random_bytes(16) iter = 20000 key_len = 16 key = OpenSSL::PKCS5.pbkdf2_hmac_sha1(pass, salt, iter, key_len)
Storing Passwords¶ ↑
pass = "secret" salt = OpenSSL::Random.random_bytes(16) #store this with the generated value iter = 20000 digest = OpenSSL::Digest::SHA256.new len = digest.digest_length #the final value to be stored value = OpenSSL::PKCS5.pbkdf2_hmac(pass, salt, iter, len, digest)
Important Note on Checking Passwords¶ ↑
When comparing passwords provided by the user with previously stored values, a common mistake made is comparing the two values using “==”. Typically, “==” short-circuits on evaluation, and is therefore vulnerable to timing attacks. The proper way is to use a method that always takes the same amount of time when comparing two values, thus not leaking any information to potential attackers. To compare two values, the following could be used:
def eql_time_cmp(a, b) unless a.length == b.length return false end cmp = b.bytes.to_a result = 0 a.bytes.each_with_index {|c,i| result |= c ^ cmp[i] } result == 0 end
Please note that the premature return in case of differing lengths typically does not leak valuable information - when using PKCS#5, the length of the values to be compared is of fixed size.
Public Class Methods
Parameters¶ ↑
-
pass
- string -
salt
- string - should be at least 8 bytes long. -
iter
- integer - should be greater than 1000. 20000 is better. -
keylen
- integer -
digest
- a string or OpenSSL::Digest object.
Available in OpenSSL >= 1.0.0.
Digests other than SHA1 may not be supported by other cryptography libraries.
static VALUE ossl_pkcs5_pbkdf2_hmac(VALUE self, VALUE pass, VALUE salt, VALUE iter, VALUE keylen, VALUE digest) { VALUE str; const EVP_MD *md; int len = NUM2INT(keylen); StringValue(pass); StringValue(salt); md = GetDigestPtr(digest); str = rb_str_new(0, len); if (PKCS5_PBKDF2_HMAC(RSTRING_PTR(pass), RSTRING_LENINT(pass), (unsigned char *)RSTRING_PTR(salt), RSTRING_LENINT(salt), NUM2INT(iter), md, len, (unsigned char *)RSTRING_PTR(str)) != 1) ossl_raise(ePKCS5, "PKCS5_PBKDF2_HMAC"); return str; }
Parameters¶ ↑
-
pass
- string -
salt
- string - should be at least 8 bytes long. -
iter
- integer - should be greater than 1000. 20000 is better. -
keylen
- integer
This method is available in almost any version of OpenSSL.
Conforms to RFC 2898.
static VALUE ossl_pkcs5_pbkdf2_hmac_sha1(VALUE self, VALUE pass, VALUE salt, VALUE iter, VALUE keylen) { VALUE str; int len = NUM2INT(keylen); StringValue(pass); StringValue(salt); str = rb_str_new(0, len); if (PKCS5_PBKDF2_HMAC_SHA1(RSTRING_PTR(pass), RSTRING_LENINT(pass), (const unsigned char *)RSTRING_PTR(salt), RSTRING_LENINT(salt), NUM2INT(iter), len, (unsigned char *)RSTRING_PTR(str)) != 1) ossl_raise(ePKCS5, "PKCS5_PBKDF2_HMAC_SHA1"); return str; }


Sample Calling Corticon JavaScript Decision Service
Enter the payload to pass to the decision service:
Use the link below to run the decision service.
Run Decision Service


You should see no red.
You should see four colored overlapping squares, from back to front: a green square, a blue square, a yellow square and a purple square.


While you will find a lot of similarities across all programming languages, it seems each has its own little quirks when trying to implement the same ideas. In Ruby, we have hashes which hold key/value pairs where the keys are generally symbols and values can be any sort of object (string,number,array,even another hash). In JavaScript, the same data type exists but is known as an Object Literal. These contain key/value pairs in much the same manner and can be manipulated as hashes can be in Ruby. There are some key differences though as explained below.
I won't cover how there are differences in how to create the hash in Ruby vs an object literal in JS, they are different languages so you would expect difference in syntax. I will dive into how to access items within the types of data.
Ruby allows you to access items in a hash through bracket notation. You can see this below:
grocery_list = {cheese: 3, eggs: "dozen", steak: 1} grocery_list[:cheese] => 3By passing the key to the hash grocerylist, we will get the value of cheese in return. JavaScript has a similar notation but on top of that also has dot notation to access items in an Object Literal:
var myGroceryList = { cheese = 3, eggs = "dozen", steak = 1, }; myGroceryList[cheese] => 3 myGroceryList.cheese => 3These two different ways of accessing the same item in the object literal have their own advantages and disadvantages that you can read more about here.


if age < 25:
if speed > 140:
return red # young people, fast cars: high risk
else:
return yellow # young people: medium risk
if age > 75:
return red # old people: high risk
if miles_per_year > 30:
return red # a lot of driving: high risk
if miles_per_year > 20:
return yellow # a bit of driving: medium risk
return green # otherwise: low risk
Looking at the problem from the perspective of our data
Training
from sklearn.tree import DecisionTreeClassifier
clf = DecisionTreeClassifier(max_depth=5)
# X = [[100, 48, 10], ...]
# y = ['low risk', ...]
clf.fit(X_train, y_train)
clf.score(X_test, y_test)
# 70%
Prediction
# input = [[150, 30, 30], ...]
y_pred = clf.predict(input)
# y_pred = ['high risk', ...]
https://scikit-learn.org/stable/modules/classes.html
Training Score
Test Score
Training and test scores clearly divert
If both test and training is pretty bad, this is called underfitting


The Zapatec Calendar makes it easy for your users to pick out dates.
While powerful and packed with features, the Calendar is actually
quite easy to install.
- Use the wizard to
generate a calendar with just the right options.
- Check out the demos
page to see the different way the calendar can be configured.
- Check out the user
guide and the reference
manual to have an in depth view of the calendar.


Lisa M. Virga, M.S., LPC, NCC brings her experience working with diverse populations to her own private practice located in Middletown, New Jersey. She was the Senior Therapist and Consultant at Integrated Care Concepts and Consultation prior to beginning her own private practice. She received her M.S. in Mental Health Counseling from Monmouth University where she specialized in Family and Couples Counseling and is a National Certified Counselor. She also holds an ASI Certification and has clinical experience working with those who have a dual diagnosis. Lisa began her career creating specialized counseling interventions in communities where she worked as both an educator and counselor. She is also an adjunct professor of Psychology at Brookdale Community College where she teaches various courses.
Lisa incorporates the efficacious techniques of Cognitive Behavioral Therapy and Brief Solution Focused Therapy with a direct and dynamic style to support, motivate and empower her clients toward meaningful and purposeful change. As a creative and holistically minded therapist, she also incorporates sand play therapy and nature based interventions for those clients who wish to explore different modalities in the therapeutic process. Lisa offers phone, video and offsite sessions to her standing clients.


Go to IvoryTower Today
You must
log in
to IvoryTower first!
First Unread Thread:
Mark as read
View Options Page


In Mortal Kombat 11, Sindel's new fatality will make you scream
Hair today, gone tomorrow.
by Wesley Yin-PooleMortal Kombat 11 gets Sindel on Tuesday, 26th November as a DLC character, and developer NetherRealm has shown off her hair-raising new moves.
In the video below, NetherRealm's Tyler Lansdown and Stephanie Brownback run through the Queen of Edenia's new moveset. In Mortal Kombat 11, Sindel is a mix-up character, whereas in Mortal Kombat 9 she was very much a zoning character. She incorporates her deadly hair into many of her moves, such as her throws, and her scream is back in various forms. Of note, her bladed staff from 2004's Mortal Kombat Deception is back (you can see it on her hip). This was last seen in 2006's Mortal Kombat Armageddon, and is used in Mortal Kombat 11 in a number of moves.
Anyway, onto the good stuff. Sindel's fatalities lean heavily on her scream and hair. Here's fatality number one:
That's a bit by the numbers for me. Things get really juicy with Sindel's fatality number two.  Yum.
Sindel's second fatality instantly enters my top five favourite Mortal Kombat 11 fatalities, primarily because of the hair down the throat thing. It makes me wince every time I see it. There's something about choking on hair that rubs me up the wrong way. What a way to go.
This beauty, from D'Vorah, remains my favourite Mortal Kombat 11 fatality, though. Yikes!


I am third Year student at Maseno University taking Bachelor of Science in Mathematics and computer science. Am a Technology driven individual. I have built applications using Java, Python and Javascript. I love hiking and highly enlightened by natural features


Hello! This is a http encoding test-server. You can send a http POST
request to this url with a Content-Encoding=<input-charset>
and a Accept-Encoding=<output-charset>
and it will convert
the received data to the new format. Here is an example curl request:
curl -H "Accept-Charset: shift-jis" \ -H "Content-Encoding: utf-8" \ -s --data "こんにちは！" \ localhost:8080
This request will convert the input string from utf-8
to
shift-jis


"Hello! Sharing World"
CREATIVE COMMONS
GLOBAL SUMMIT 2015
Lorem, ipsum dolor sit amet consectetur adipisicing elit. Necessitatibus suscipit velit vero qui hic commodi quasi praesentium nemo magni. At similique perferendis, ipsum praesentium tempore sunt pariatur. Molestias, accusantium dolorum! Lorem ipsum dolor sit amet consectetur adipisicing elit. Incidunt sequi maxime ratione magni, illum odit ex cum, eos quisquam saepe commodi alias perspiciatis repellat molestias totam dolor dolorum veritatis. Odio! Lorem ipsum, dolor sit amet consectetur adipisicing elit. Vel mollitia sapiente cumque perferendis libero molestias possimus numquam recusandae dolor commodi fugiat hic consectetur, veniam ipsam culpa explicabo! Ipsa, eos laboriosam. Lorem ipsum dolor sit amet consectetur adipisicing elit. Molestiae consequatur voluptatibus voluptates iure sunt facere, nesciunt saepe, excepturi tenetur, corporis autem aspernatur quo iusto accusamus magnam. Iure placeat mollitia beatae?
Please contact us per Email for any further questions about CC Global Summit 2015!
Creative Commons Global Summit 2015 Logo
The Logo of CC Global Summit 2015 was decided through the log o competition from 8.June to 7.July. The Logo of CC Global Summit 2015 was decided through the log o competition from 8.June to 7.July. The Logo of CC Global Summit 2015 was decided through the log o competition from 8.June to 7.July.
See the past CC Global Summit Summits
Take a look at the past two CC Global Summits which took place in Buenos Aires and in Warsaw.
2013
CC Global Summit 2011 in Buenos Aires
2011
CC Global Summit 2011 in Warsaw