{% extends "base.html" %} {% block page %}
Hello and welcome to Emergent, the ultimate opensauce Twitter clone (or something along the lines). Feel free to contribute stuff.
This site is so very under construction that it may, or may not, lead to catastrophic death of people and things dear to you. Please avoid using Emergent while drunk, high, pregnant and/or retarded. Thank you very much,
Project Emergent developers.
Register now for just ${{price}}.99
Link to status page. Login required.


cupcake physics
Blog
About This Blog
Over my career, I have come across a lot of different problems in physics. And while tackling these problems I remember a lot of the struggles that I had with the material - the little misconceptions that I wish somebody had highlighted when I got stuck. My goal is to create an online resource that gives good explanations of some of the problems and research papers that I have struggled with over the years.
You have to be willing to read through some math (sometimes a lot of math) in order to get the full meaning of each post. I have labeled each post with a one, two, or three cupcake difficulty depending on the sophistication of the math involved. Posts ranked with one cupcake are considered introductory physics problems. These are the types of problems you would see in an AP physics class or introductory college level science program (algebra or basic calculus might be needed). Two cupcakes signify medium difficulty. These are problems that are generally seen in an undergraduate physics curriculum (sometimes even engineering curricula). Finally, three cupcake problems are those that are seen in graduate school or later. You generally need sophisticated math techniques, a deep understanding of the material, or a lot of patience to work through these problems.
I will always do my best to provide correct explanations, but every once in awhile, you may notice a mistake. If you do, just leave a comment at the bottom of the post, and I will fix it as soon as possible.
A Note About Solutions
I have worked through a veritable mountain of problems over my physics career. I know how tempting it is to pull up a solution online and read it over instead of mucking through the work yourself. You all know what I am about to say here - don't do it.
Studies have shown that simply reading through a solution is one of the worst ways to learn. If you really want to understand physics, you have got to sit down, pull out a pencil and paper, and tackle difficult problems. That is going to take time and effort - there is no way around that. Thus, if you are referencing these pages for your homework, always try the problem by yourself first. Take some chances with your analysis and try out a few different strategies. Then (and only then) should you refer to these solutions.
A Note About Comments
A blog just isn't a blog without comments! If you have any questions or comments, please leave a note at the bottom of the post. All of the comments on this blog are managed by Disqus. I have enabled the Guest Comment feature, so you should be able to leave messages, even if you are not a registered Disqus user. I will try to answer comments as soon as I can. If your comment is particularly good, I might even expand it into a new post.
A Note About Smaller Devices
Some of the posts contain a lot of math with long lines of symbols. This is especially true in some of the more advanced posts involving derivations. Although I do try to format the site appropriately for all device types, it is easier to view long equations on larger screens. Some of the equations may not display well on a cell phone screen.
A Note About Javascript
This website uses Javascript all over the place. The equations are generated by MathJax. The graphs are generated by D3. Make sure that you have Javascript enabled if you want to make full use of this website. Most modern browsers do this automatically, so it should not be a problem for the average Cupcake Physics user.


Components
Properties
Message to parents with events
Custom Input
{{searchText}}
Content Distribution with Slots
Alguma coisa ruim aconteceu. =/


Welcome
We are OldSkool, a leading supplier of global streetwear brands, including names such as Stussy, Carhartt, Gramicci, Afends and many more.
With worldwide shipping and unbeatable prices - now's a great time to pick out something from our range.
Shop New ArrivalsOur yearly flash sale is now on! Grab yourself a bargain from the world's leading streetwear brands.
Shop All Sale Items


ANNOUNCEMENTS some text here about special stuff! Total Shakes:{{ total_shakes[0] }} Shakes Today:{{ shakes_today[0] }} SPECIALS list of specials shake 1 shake 2 shake 3 Store Links link 1 link 2 link 3 Enter Shakes Sold


Map
Bot 0 - Offline
Message:
Queue message:
Script
Proactive
►
Can you tell me more?
Wizard name:
Notes


my portifolio
name:
Dickson njuguna.
am a 19 years of age
About me.
my background
education level:
- primary = josnah.
- highschool = pioneer
- bootcamp = moringa school of coding
job experience.
eperieved in job marketing, sales
back in the days i used to work in a shop.
I decided to take a course in moringa school of coding to enbark on this journey
to learn the different pricipals of coding
to gain enough skills to get a job
to set a career path in future
some of my latest projects
brief description on my projects...
they include my favourite things.
the things i love doing in my free time
and alos a recipe of my favourite dish..which is rice pilau
hope it describes more about my personality


A Logger produces a LogEvent that contains the log message along with
metadata (timestamp, calling function) and dispatches it to one or several
Appenders which are responsible for the output (console, file, ...) of the
event. lgr comes with a single pre-configured Logger called the
root Logger
that can be accessed via lgr$<...>
. Instantiation of new
Loggers is only necessary if you want to take advantage of hierarchical
logging as outlined in vignette("lgr", package = "lgr")
.
# Cannonical way to initialize a new Logger (see "Creating Loggers") lg <- get_logger("logger")
# R6 constructor (not recommended for productive use) lg <- Logger$new(name = "(unnamed logger)", appenders = list(), threshold = NULL, filters = list(), exception_handler = default_exception_handler, propagate = TRUE) lg$log(level, msg, ..., timestamp = Sys.time(), caller = get_caller(-7)) lg$fatal(msg, ..., caller = get_caller(-8L)) lg$error(msg, ..., caller = get_caller(-8L)) lg$warn(msg, ..., caller = get_caller(-8L)) lg$info(msg, ..., caller = get_caller(-8L)) lg$debug(msg, ..., caller = get_caller(-8L)) lg$trace(msg, ..., caller = get_caller(-8L)) lg$config(cfg = NULL, file = NULL, text = NULL) lg$add_appender(appender, name = NULL) lg$remove_appender(pos) lg$handle_exception(...) lg$set_name(x) lg$set_exception_handler(fun) lg$set_propagate(x) lg$set_threshold(level) lg$set_appenders(x) lg$spawn(name, ...) lg$filter(event) lg$add_filter(filter, name = NULL) lg$remove_filter(pos) lg$set_filters(filters) lg$ancestry lg$appenders lg$exception_handler lg$inherited_appenders lg$last_event lg$name lg$parent lg$propagate lg$threshold lg$filters
If you are a package developer you should define a new Logger for each package, but you do not need to configure it. Usually only the root logger needs to be configured (new Appenders added/removed, Layouts modified, etc...).
Loggers should never be instantiated directly with Logger$new()
but rather
via get_logger("name")
. If "name"
does not exist, a new
Logger with that name will be created, otherwise the function returns a
Reference to the existing Logger.
The name
is potentially a /
separated hierarchical value like
foo/bar/baz
. Loggers further down the hierarchy are children of the loggers
above.
All calls to get_logger()
with the same name return the same Logger
instance. This means that Logger instances never need to be passed between
different parts of an application.
If you just want to log to an additional output (like a log file), you want a new Appender, not a new Logger.
You can modify the fields of an existing Logger with
logger$set_<fieldname>(value)
(see examples). Another way to configure
loggers is via its $config()
method.
name
, set_name(x)
character
scalar. A name for the Logger that should be
unique among Loggers. This logger name is used in the Loggers print
method and can be used by Appenders to indicate which logger the
log message came from. If you define a Logger for an R Package (the most
common case for defining new Loggers), the logger name should be the
same name as the Package name. If you do not define a Logger name
manually, a warning will be thrown.
appenders
, set_appenders(x)
A single Appender or a list
thereof. Appenders control the output of a Logger. Be aware that a Logger
also inherits the Appenders of its ancestors
(see vignette("lgr", package = "lgr")
for more info about Logger
inheritance structures).
threshold
, set_threshold(level)
character
or integer
scalar.
The minimum log level that triggers this Logger
exception_handler
, set_exception_handler()
a function
that
takes a single argument e
. The function used to handle errors that occur
during logging. Defaults to demoting errors to warnings.
propagate
, set_propagate()
TRUE
or FALSE
. Should LogEvents
be passed on to the appenders of the ancestral Loggers?
filters
, set_filters(filters)
a list
that may contain
functions
or any R object with a filter()
method. These functions
must have exactly one argument: event
which will get passed the
LogEvent when the Filterable's filter()
method is invoked.
If all of these functions evaluate to TRUE
the LogEvent is passed on.
Since LogEvents have reference semantics, filters can also be abused to
modify them before they are passed on. Look at the source code of
with_log_level()
or with_log_value()
for examples.
In addition to the active bindings used to access the fields described above, Loggers also have the following additional read-only bindings:
ancestry
A named logical
vector of containing
the propagate value of each Logger upper the inheritance tree. The names
are the names of the appenders. ancestry
is an S3 class with a custom
format()
/print()
method, so if you want to use the plain logical
vector use unclass(lg$ancestry)
inherited_appenders
A list
of all inherited
appenders from ancestral Loggers of the current Logger
last_event
The last LogEvent produced by the current Logger
fatal(msg, ..., caller = get_caller(-8L))
Logs a message with
level fatal
on this logger. If there are unnamed arguments in ...
,
they will be passed to base::sprintf()
along with message. Named
arguments will be passed as custom fields to LogEvent. If there are named
arguments the names must be unique. caller
refers to the name of the
calling function and if specified manually must be a character
scalar.
error(msg, ..., caller = get_caller(-8L))
Logs a message with level error
on this logger.
The arguments are interpreted as for fatal()
.
warn(msg, ..., caller = get_caller(-8L))
Logs a message with level warn
on this logger.
The arguments are interpreted as for fatal()
.
info(msg, ..., caller = get_caller(-8L))
Logs a message with level info
on this logger.
The arguments are interpreted as for fatal()
.
debug(msg, ..., caller = get_caller(-8L))
Logs a message with level debug
on this logger.
The arguments are interpreted as for fatal()
.
trace(msg, ..., caller = get_caller(-8L))
Logs a message with level trace
on this logger.
The arguments are interpreted as for fatal()
.
log(level, msg, ..., timestamp, caller)
If the level
passes the Logger threshold
a new LogEvent
with level
, msg
, timestamp
and caller
is created. Unnamed
arguments in ...
will be combined with msg
via base::sprintf()
.
Named arguments in ...
will be passed on to LogEvent$new()
as custom
fields. If no unnamed arguments are present, msg
will not be passed
to sprintf()
, so in that case you do not have to escape "%"
characters.
If the new LogEvent passes this Loggers filters, it will be dispatched
to the relevant Appenders and checked against their thresholds and
filters.
config(cfg = NULL, file = NULL, text = NULL
Load a Logger
configuration. cfg
can be either a special list object, the path to
a YAML config file, or a character scalar containing YAML. The arguments
file
and text
can used alternatively and enforce that the supplied
argument is of the specified type.
See logger_config for details.
add_appender(appender, name = NULL)
, remove_appender(pos)
Add or remove an Appender. Supplying a name
is optional but
recommended. After adding an Appender with
logger$add_appender(AppenderConsole$new(), name = "console")
you can
refer to it via logger$appenders$console
. remove_appender()
can
remove an Appender by position or name.
spawn(...)
Spawn a child Logger.
get_logger("foo/bar")$spawn("baz")
is equivalent to
get_logger("foo/bar/baz")
, but can be convenient for programmatic use
when the name of the parent Logger is not known.
filter(event)
Determine whether the LogEvent x
should be passed
on to Appenders (TRUE
) or not (FALSE
). See also the active binding
filters
add_filter(filter, name = NULL)
, remove_filter(pos)
Add or remove a filter. When adding a filter an optional name
can
be specified. remove_filter()
can remove by position or name (if one
was specified)
LoggerGlue
uses glue::glue()
instead of base::sprintf()
to construct
log messages. glue is a very well designed package for
string interpolation. It makes composing log messages
more flexible and comfortable at the price of an additional dependency and
slightly less performance than sprintf()
.
glue()
lets you define temporary named variables inside the call.
As with the normal Logger, these named arguments get turned into custom
fields; however, you can suppress this behaviour by making named argument
start with a "."
. Please refer to vignette("lgr", package = "lgr")
for
examples.
#> INFO [12:43:08.785] Today is 2019-03-25lgr$fatal("This is a serious error")#> FATAL [12:43:08.788] This is a serious error# You can create new loggers with Logger$new(). The following creates a # logger that logs to a temporary file. tf <- tempfile() lg <- Logger$new("mylogger", appenders = AppenderFile$new(tf)) # The new logger passes the log message on to the appenders of its parent # logger, which is by default the root logger. This is why the following # writes not only the file 'tf', but also to the console. lg$fatal("blubb")#> FATAL [12:43:08.796] blubbreadLines(tf)#> [1] "FATAL [2019-03-25 12:43:08.796] blubb"#> <Logger> [all] lg/child #> #> inherited appenders: #> console: <AppenderConsole> [info] -> console #> memory : <AppenderDt> [ all] -> in memory data.table#> lg/child#> [1] "lg/child"# use formatting strings and custom fields tf2 <- tempfile() lg$add_appender(AppenderFile$new(tf2, layout = LayoutJson$new())) lg$info("Not all %s support custom fields", "appenders", type = "test")#> INFO [12:43:08.854] Not all appenders support custom fields {type: test}#> FATAL [2019-03-25 12:43:08.796] blubb #> INFO [2019-03-25 12:43:08.854] Not all appenders support custom fields#> {"level":400,"timestamp":"2019-03-25 12:43:08","logger":"mylogger","caller":"eval","msg":"Not all appenders support custom fields","type":"test"}# cleanup unlink(tf) unlink(tf2) # The following works because if no unnamed `...` are present, msg is not # passed through sprintf() (otherwise you would have to escape the "%") lg$fatal("100%")#> FATAL [12:43:08.864] 100%# LoggerGlue lg <- LoggerGlue$new("glue") lg$fatal("blah ", "fizz is set to: {fizz}", foo = "bar", fizz = "buzz")#> FATAL [12:43:08.873] blah fizz is set to: buzz {foo: bar, fizz: buzz}


{% extends "base.html" %} {% import "bootstrap/wtf.html" as wtf %} {% block title %}New Event{% endblock title %} {% block custom_css %} {% endblock %} {% block page_content %}
This value is required.
Select tags that best describe this post


(HTML (head )head (BODY (table (TBODY (tr (td (table (TBODY (tr (td (table (TBODY (tr (td )td )tr )TBODY )table )td )tr )TBODY )table )td )tr )TBODY )table )BODY )HTML


of
<<
<
►
▮▮
>
>>
Search
Sites to Search
danbooru.donmai.us
derpibooru.org
(login for less filtering)
e621.net
gelbooru.com
(need to be logged in)
ibsearch.xxx
konachan.com
rule34.xxx
safebooru.org
yande.re
Options
Seconds per Slide
Max. Width
Max. Height
Auto-Fit Slide
Include WEBM
Hotkeys
Full-screen (F11)
Previous (← or A)
Next (→ or A)
Back 10 (W)
Forward 10 (S)
Play/pause (Enter or space)
Issues or suggestions: chirmayanashaar@gmail.com


CloudFormation Stacks
CloudFormation Stacks
Inspect individual component stacks and see examples of how to use them together. If you're logged into your AWS console you can launch stacks right from this site.
Check out some examples More about stacksQuick Starts are built by AWS solutions architects based on best practices for security and high availability. These reference deployments implement key technologies automatically on the AWS cloud, often with a single click and in less than an hour.
View Quick Starts


Introducing Mathscapes Research — A Vision for the technology of the Future
Flashback → 2008. I was already in awe of prime numbers and was quick (and naive?) to assume that this is possibly the solution to information compression. Already being acquainted with computer programming, I started to write algorithms to compress information using prime numbers and gradually realized why such algorithms are not practical enough despite being theoretically valid.
But the entire process made me sufficiently curious to be driven by the idea of optimal algorithms and computational complexity to start a company that will fundamentally create and design algorithms that are instrumental in the advancement of technology.
And with this objective along with other two similar projects, I began BetaSpark in the year 2008 and however, things always remained under the hood. Only after completing my post graduation, I was able to contribute more time on this and started explicating the long term vision and the philosophy. And while I was finishing writing the first draft of the vision, I thought of changing the name to reflect the philosophy and paradigm of the organization. It is now called Mathscapes Research. Following is the excerpt from the long shot vision that I have envisioned for Mathscapes.
Mathscapes design optimal algorithms with mathematics.
Mathematics is what I think, is the framework for abstraction and logic. It is the single most powerful language to decode and design. Constantly looking for the patterns that can help create better algorithms. They are at the heart of technology.
Often the most simple looking problems are the hardest. Finding just a solution do not suffice — most of our resources are limited, and optimal algorithms will allow better utilization of resources. This very point brings us to Mathematics — it sets up the foundation for us to theorize the patterns, conjectures, and design algorithms that are not just correct but efficient too.
“Abstraction consists essentially in the creation and utilization of ambiguity.” [..] “Logic moves in one direction, the direction of clarity, coherence, and structure. Ambiguity moves in the other direction, that of fluidity, openness, and release. Mathematics moves back and forth between these two poles. [..] It is the interaction between these different aspects that gives mathematics its power.” — William Byers (How Mathematicians Think, Princeton University Press, 2007)
Mathscapes’ pursuit is to transform the way the world engages with technology.
Technology is constantly changing our world. It is everything that is making our work or life simpler. While that may be a good thing, we cannot not anticipate all the implications. Who should be held responsible for damage caused by this advancement? What if we could see the future? Would we change our decisions then?
Technology is what we believe is the consequence of life. Like life, technology may also be inevitable, or maybe both are same? We are probably at the ascent of the exponential curve of the supermassive technology outbreak. How much exaggerating it may sound, it seems inevitable. Will we able to coexist with it? And If so, how technology should evolve optimally? What should we do now to change the future?
Cite as
Gaurav Singh (2016, June 14). Introducing Mathscapes Research — A Vision for the technology of the Future. Retrieved , from https://mathscapes.xyz/notes/introducing-mathscapes-research/.


How to change feedback you’ve left on eBay by adding follow-up comments or upgrading feedback
by Jennifer Still, Business Insider US- It’s not possible to change feedback on eBay, but you can add a follow-up comment to elaborate on feedback you’ve left.
- You may wish to change eBay feedback if you’ve made a typo or have either experienced or resolved an issue with the seller since leaving your initial review, but unfortunately it isn’t currently possible.
- However, you can upgrade feedback to neutral or positive if you wish.
- Visit Business Insider’s homepage for more stories.
When you’ve purchased something on eBay, it’s always helpful to the seller when you leave positive feedback to let other users know that the seller is reliable, timely, and accurately describes their products.
Likewise, it can also be a way to warn others of a fraudulent seller if they don’t send the item you bought or you receive something broken, faulty, or completely different than what was described.
That being said, you may want to change feedback you’ve left on eBay if you realize you’ve made an error in your comment or you’ve since had an issue (or resolved one) with the seller in question.
While eBay doesn’t allow you to change feedback once it’s been left, you can leave a follow-up comment with additional information.
Here’s how to do it.
How to change feedback on eBay by following up
1. Log into your account on the eBay website using your username and password.
2. Visit the eBay Feedback Forum directly. Alternatively, you can access this via the My eBay “Leave feedback” shortcut.
3. On the right-hand side of the eBay Feedback Forum, click the “Follow up to feedback left” link.
4. From the list of transactions on the next page, choose the feedback you want to leave an additional comment on and click “Follow up.”
5. Type your next feedback comment in the box provided, then click “Leave Follow-up Comment.” Your new comment will then be posted to the seller’s feedback profile.
Note that you can also change ratings from neutral or negative to positive if you ask the seller to send you a revision request. Once you receive the request, you only need to accept it and change the rating to your new preferred choice, then save the changes.


Coding for accessibility is not only about coding for people with disabilities.
It's just as much about coding for people without.
Take me for example: I really don't like using a mouse.
In fact, chances are that most of you don't either.
As developers, we spend most of our time manipulating text.
If we can accomplish a task with a keyboard, we likely prefer doing so.
By making sure you code with accessibility in mind, every user of your application will benefit.
If you can do a thing with a mouse–whatever it may be–you must also be able to do the thing with a keyboard.
No excuses! Seriously.
The above will only react to mouse interaction, not keyboard interaction.
The above will react to mouse and keyboard interaction.
Buttons now only react visually to mouse interaction and not keyboard interaction.
As a rule of thumb make sure that focus
appears alongside hover
.
If you have an implicit relation between elements of your UI, make that relation explicit.
Sighted users will be able to infer the relation between the button and the thing it toggles, but users who rely on screen readers will not.
By making the relation between the button and the thing it toggles explicit, screen readers will now play along as well.
Make a habit of not assuming how people will interact with your UI. Leave all doors open!


- Coq au Vin Cook me like one those french roosters
- Easter South Portuguese Lamb So intense.
- Portuguese egg and citrus pudding Saudade.
- Celeriac and apple mash with a twist A superb side for anything that used to make oinc oinc
- Chocolaty and Hazelnut tart So intense.
- Pumpkin and Goat cheese pie with thyme Goat to eat this
- Feta and chouriço frittata It's like a fancy omolete
- Pork fillet with orange and mustard Lean, mean, tasty dish
- Cauliflower mash The side kick every superhero (meal) needs
- Easy chicken stew Straight from my mum's repertoire, the easiest recipe you will ever prepare
- Celeriac gratin Or how to convert a fancy recipe into a meal for the masses
- Seafood and bean stew Or, when you miss the Atlantic Ocean eat _feijoada de marisco_.
- Salmon and Cabbage with Dill Vinaigrette Don't let the hipsters take our cabbage.
- Peas with pouched egg and chouriço Comfort food from Portugal... as it is most Portuguese food
- Stew with Uzbek spices Some food just needs to be shared with friends
- Hommous Sometimes is best to keep it simple, and sometimes simple is also worldly and healthy.
- Parsnip, garlic and blue cheese Autumn arrived, but don't run. This is really good.
- Salmon and spinach in a bed of celeriac Some recipes get so bastardized that their mother wouldn't recognized them
- Liver and Chicken hearts stew with cabbage and parsnip chips Because cold weather requires warm food
- Tahini and tuna salad A salad for the tuna lovers
- Feta cheesecake An odd ingredient makes for a wonderful cake
- Refreshing Mallorca salad A refreshing summer salad with unusual ingredient combinations
- Duck breast with Pumpkin mash A special meal for normal people
- Tomato and salmon salad A summer salad with salmon and egg
- A Raffaello copycat Fast and easy coconut flavored recipe


--- layout: post title: 'SEVEN DAYS OF THE NEW MOUNTAIN GOATS ALBUM: DAY 2' date: 2009-10-07 21:38:55.000000000 -07:00 type: post published: true status: publish categories: - lists - reviews - SEVEN DAYS OF THE NEW MOUNTAIN GOATS ALBUM tags: - catholicism - creeds - mountain goats - quotes - SEVEN DAYS OF THE NEW MOUNTAIN GOATS ALBUM meta: _publicize_pending: '1' _edit_last: '6192' aktt_tweeted: '1' original_post_id: '370' _wp_old_slug: '370' author: login: falsefridays email<EMAIL_ADDRESS>display_name: Jim Withington first_name: '' last_name: '' excerpt: SOME BULLETS IN WHICH I FIRE OFF SOME THOUGHTS ABOUT THIS HERE THE LIFE OF THE WORLD TO COME BUSINESS ---
SOME BULLETS IN WHICH I FIRE OFF SOME THOUGHTS ABOUT THIS HERE THE LIFE OF THE WORLD TO COME BUSINESS
-- "I used to live. Here."* We have the first earworm from this album, and it serves to (again) show that JD's smarts extend beyond lyrical radditude to things like "knowing which song should be a first single." Which leads me to ...
--The tracking on this album. Clearly, clearly, a music fan set the order here, if for no other reason than that "1 John 4:16" occupies the magical track seven spot (on the vinyl, anyway), which also is the last track on side B of the first record. You need some time after this one, time to walk over to the turntable, take a deep breath, and swap the record out. And to breathe some more.
--Recommended: instead of swapping, just keep moving the needle back. Don't fight this impulse. You want this song. Over and over. You need this song like you've needed "Palmcorder," or "Autoclave," or "The Best Ever Death Metal Band Out of Denton" or "Broom People." Indulge that want. Because putting your iPod on repeat won't ever beat physically having to tell your -record player, "Nope, nope. We're doing this again." This will be the song that teaches that lesson. It will also be the song that makes me learn piano.
--Speaking of which, I'm holding out hope that this will be the tour where we see a piano involved, because there are just too many songs that need it now.
--If you haven't attended many Catholic masses (I almost said "if you aren't Catholic," to be truthful) you might not know "the life of the world to come" as a phrase. If you are Catholic, the recontextualizing of this phrase perhaps pointed out something you'd never realized before--that phrase sounds amazing, is musical, and the way that a roomful of people chanting the Nicene Creed lands on it feels much the same way that you perhaps felt the first time you sang "I am gonna make it, through this year, if it kills me."
 And Darnielle agreed with him (noting, well, "it's not as quiet as Get Lonely"). I read that, dumbstruck, thinking, "wow, inside voice's so totally spot on of a description." No "Lovecraft in Brooklyn," indeed.
 The man knows how to tell a story, how to draw an audience in. In medias res, motherfucker.
I'm enjoying this project, but it's time for hanging out with the family now. I can't wait for five more days of documenting my favorite band.
*"Genesis 3:23"
**"Romans 10:9"


DANGER !!!
One of the strenght of the smart contract the program itself is recorded on the blockchain is also one of the big weakness.
The program becomes immutable, hence it is not possible to update it in case of Bugs.
Patterns exists to overcome the problem, but those patterns also allow the contract owner to change the contract terms unilaterally.
Rule of Tumb: Be carefull when dealing with smart contracts in permiossionless block chains. Use extra cautions where your counterpart is the owner / creator of the contract.


Support Information
If you have any questions or problems, please contact your administrator.
Make sure that your computer is ready to view content.
New to UHC On Air? Check out the frequently asked questions.
Need help? Click here for technical support.
Find useful tips to prepare your computer for the program.


- Calibre
- citations, [1], [2]
- citations, generalized
- cite, [1], [2]
- code blocks
-
command-line options
- doconce format
- comment lines
|
- comments, inline
- computer code blocks
- conf.py (Sphinx configuration)
- Creole wiki output
- cross referencing
- cross-document referencing
|


Unity Editor Script [UNDER CONSTRUCTION]
Language: C# (Unity)
I programmed editor shortcut tools for quick access use in project.


Scroll down or click the button bellow or the buttons on the upper right of the screen so you can get to know me :)
About Me!About me? I love games as a matter of fact I make them as much as I play them, I'm a Game Artist but I do Game Designs as well
My Game ArtI can make Logo designs as well as Vector Art using Adobe AI or Adobe PS or 3D designs using Autodesk Maya
Got an amazing idea for a game? Pitch it to me and i'll make a game design out of it!
Want to learn amazing creative softwares? I got your back I offer tutorials for Autodesk Maya, Adobe Products, 3D Coat, Substance Products
Of course the field I love the most, Let's say you're a programmer and you don't like making art or designs for your game or interface for an app. contact me and i'll get the job done!
Want to avail my services? That's great! Give me a call or send me an email and I will get back to you as soon as possible!
(+63)09162251504


Name:required
Address:
Phone:
Fax:
Email:required
To see the dynamic effect, enter text in the required fields.
< back


no. 10| 05.28.2014 |
Breaking Up the Sausagefest.
Oh boy here we go. A guy writing about women's issues.
While challenges faced by women in the workplace aren't specific to the tech industry, it's a space where the problems at large are present to an extreme degree. STEM fields are still pretty boyclub.
Here's why I'm writing about it: even though I'm male, I've found I'm much more comfortable in mixed gender environments. Since I'm now pursuing a leap from a creative field (where I've typically had lots of female co-workers) to the technology industry proper, the gender count has been on my mind.
Some background: I was raised by parents that, for their generation, were atypical in their gender roles. The one who made breakfast every morning and gave weepy hugs when my sister or I came off stage after a high-school play? Dad. The one who handled the family finances and was quick to fight any threat to family or friend? Cue Mom.
For the record, Dad also taught me to run a drill press, and mom taught my sister how to make a good pie crust, so there was plenty of tradition in there too. Regardless, they gave me an unusual perspective on gender expectations.
Moreover, I'm not particularly butch. In both my professional and personal lives I've found I'm happier, more able to be myself, more relaxed, creative and confident in groups where both men and women were active, equal, and respectful members of the group. I appreciate the widened perspective and insight that can result. (Despite the occasional sigh or eye roll.)
So we all know the deal in the tech industry. Women are extraordinarily underrepresented. Aside from my personal preference, why does it matter? Why should we strive for balanced gender participation in STEM fields?
There are obvious reasons of economic fairness, but to me, there's something equally important. Writing code is ultimately about getting things done in the real world. It's about providing some kind of utility to the end user. Technology has proven to be a powerful cultural force, dramatically shaping and reshaping our culture and day to day existence. Making good choices about the paths we choose to follow requires broad perspective, and I think women and men working together can do a better job at meeting the wants and needs of the world at large.
So what's to be done? I can't pretend to have much of an answer, other than patience, and perseverance. I can say I've found the recently published excerpt from the Katty Kay and Claire Shipman book The Confidence Gap insightful and illuminating, and I've long appreciated Dan Kindlon and Michael Thompson's Raising Cain for its insight on the experience of growing up male. Both reveal experiences of men and women that are often hidden. Bringing those experiences forward can open dialog, and a good conversation can be a step in the right direction.


Automatically trades shares of Tesla through buy sell signals generated every minute from a trained LSTM model. Trades are executed using the Interactive Brokers API. The model was trained on price, running averages, option interest, and option volatility.
Used interactive brokers API to pull 90 days of historical price and options information for Tesla.
Define helper function to ready data. Format the data. Fit the model. Test the model.
Interactive Brokers Trader Workstation Papertrading Interface
Training Data = 25,000 events
Test data = 6,900 events
Repeated testing showed routine DOUBLING of portfolio value on an annualized basis.
TBD


700 (AKA Chinese James Bond)
Secret Green Mission:
- Collect five or more real messages.
Character Abilities:
- 敏銳: You may use Lock-On during other players' turns.
- 聯動: Whenever you use Lock-On, draw two cards, and give one card from your hand to another player.
- 風度: When you declare victory, you must select a female character in the game to win with you.


Multicast Management Fast Linux Deployment Toolkit
{%- if inProgress == "True" -%}
Multicast is active.
Deploying image {{ selectedImage }} - Process ID: {{ pid }}
{%- else -%}
The currently active image is {{ selectedImage }} and will {{ postImageAction }} after completion.
Choose the active image on the Image Management page.


HTML5 is the universal skeleton of every web page. The foundation that will make our work stable and organized.
CSS3 provides a unique style in any way we require, adapting as flexibly and fluidly as we want to the design expectations.
JAVA SCRIPT gives us the possibility of immersion for the user, making our creations interactive and in constant evolution.


Scotland rode their luck with goal-line call, admits Ryan Christie
by FSA EditorScotland might have trailed before Ryan Christie struck in Cyprus, with the Celtic winger admitting he believed the hosts had scored first.
Ryan Christie acknowledged Scotland were fortunate to survive an early scare against Cyprus, who looked to have taken the lead inside six minutes on Saturday.
Scotland won 2-1 in Nicosia to leapfrog Cyprus into third in Euro 2020 qualification Group I, although neither side can progress automatically to the finals.
The visitors could have been behind before Christie netted his first international goal after 12 minutes, however, as Giorgios Efrem’s shot against the crossbar appeared to bounce over the goal line.
No goal was given, allowing Christie to break the deadlock. Efrem later equalised but John McGinn’s swift riposte clinched the points.
Reflecting on the incident, Christie told Sky Sports: “From where I was, to be honest, it looked over the line. I’ve obviously not seen it back yet.
“We rode our luck a bit there in the first 10 minutes. It probably took us longer than we wanted to feel our way into the game.
“After that scare, we got to grips with the game. The goal came and, from there, we were pretty resilient.”
He added of his first Scotland goal: “I’m delighted, obviously.
“It’s something I’ve been desperate to do every time I’ve played for Scotland, and it’s probably taken me longer than I wanted. It’s nice to get it in a win, as well.”
Scotland play Kazakhstan on Tuesday but are already looking towards a home play-off semi-final in March 2020, where McGinn hopes their belief will be boosted by wins such as these.
“There’s a lot of new faces in the squad,” the in-form Aston Villa midfielder said. “That’s a game we might have drawn or lost in recent times, so it’s important we get a winning mentality in games like that.
“Even though it wasn’t pretty towards the end, it’s so important as we build towards March.


Pick the background color you like
Clicking on the below link will display an alert box
Click this LinkIf you click the button once,I will disappear.If you click it again, I appear
If you enter Hi in the text field, it will respond by saying Hello
On selecting options from the multiple select field, you will see the selected options below.
Selected values are :


Interface Specification¶
Clarifications¶
For the SoP Support Service, the incident type can be set to ‘aggravation’. This is intended to cover injuries or diseases covered by Section 27(d) and 30 of MRCA: basically non-service conditions made worse by service 1. If the incident type is ‘aggravation’, the user of the service needs to provide both an onset date (or range of dates) and an aggravation date (or range of dates). The requirement for both dates is to help evaluate SoP factors where the time between initial onset and aggravation is important.
Footnotes
- 1
See discussion in Larter and Military Rehabilitation and Compensation Commission (Compensation) [2017] AATA 67 (25 January 2017) for discussion) (http://www.austlii.edu.au/au/cases/cth/AATA/2017/67.html).


Family Foot Health Specialists Resources
The American College of Foot and Ankle Surgeons
The American College of Foot and Ankle Surgeons is the professional organization for podiatric surgeons, doctors of podiatric medicine (DPM) who are graduates of four-year podiatric medical colleges and have completed surgical residencies. The organization was established to develop surgical standards for the care of the foot and ankle, to sponsor research, and to conduct continuing education. Providing education to consumers on topics relating to foot health, foot and ankle deformities and injuries, care of the diabetic foot, and foot and ankle disorders caused by arthritis, aging, trauma and sports injuries, as well as congenital deformities and disease, is a key element of the College’s mission.
The American Podiatric Medical Association
The American Podiatric Medical Association is the premier professional organization representing the nation's Doctors of Podiatric Medicine (podiatrists). The APMA represents approximately 80 percent of the podiatrists in the country. Within APMA's umbrella of organizations are 53 component societies in states and other jurisdictions, as well as 22 affiliated and related societies.
The American Board of Foot and Ankle Surgery
The purpose of ABFAS is to serve the best interest of the public and medical profession by evaluating the initial and continuing qualifications of podiatric surgeons. The board reviews the credentials of voluntary candidtes, conducts oral and written examinations, and issues certificates.
The Tennessee Podiatric Medical Association
Here you will find patient information about your own foot health, we will assist you in finding a Podiatrist close to where you live and even more helpful tips and informative nuggets about your foot health. The information placed on this site is in no way intended to replace a physical physician visit. A history and physical examination is necessary when diagnosing any foot ailment or disease.


HIIT
HIIT (High Intensity Interval Training) is an intregral part to this and needs to be carried out as detailed below in order for the fat loss to be maximised.
HIIT is a specialised form of interval training that involves short intervals of maximum intensity exercise separated by longer intervals of low to moderate intensity exercise. Because it involves briefly pushing yourself beyond the upper end of your aerobic exercise zone, it offers you several advantages that the low intensity cardio doesn’t and takes a fraction of the time.
Its main purpose during CYCLE ONE is to improve fitness, melt away fat and increase the amount of calories you burn post workout – this is known as the after burn which ramps up your metabolic rate for sometimes up to 18 hours!
The great thing about ths cycle is that you get to choose the method of HIIT you enjoy the most. It can be applied to any piece of cardio equiment at the gym such as - Bike, Treadmill, Boxing Bag, Cross Trainer, Rower etc.
If you do not belong to a gym then you can use body weight exercises such as mountain climbers, burpees, star jumps and sprinting on the spot. The key here is to elevate your heart rate as much possible. Alernatively if you do enjoy classes such as cross fit, body pump, spin or circuits these will also count as a HIIT session so feel free to add them in to your training. Remember it’s one or the other DO NOT do two sessions per day.
Your HIIT Session should last no longer than 25 mins with 5 min warm up and 5 min cool down. This may not seem like enough to you but trust me if you train hard enough then it really is enough to melt your body fat.
Workout
WORKING SETS: 12 -15 DURATION: 30 - 45 SECONDS MAX (HR or EFFORT)
RESTING SETS: 12 -15 DURATION : 45 - 60 secs:
Example workouts
HIIT Home workout for beginners
Chest and triceps HIIT workout
Definition
HIIT (ONE WORKING SET FOLLOWED BY ONE RESTING SET) DURATION 25 MINS PLUS 5 MIN WARM UP & 5 MIN COOL DOWN – TOTAL OF 35 MINS WORKING SETS = INTENSE PART OF THE SESSION I.E. SPRINTING RESTING SETS = THE POINT AFTER THE WORKING SET WHEN YOU REST AND RECOVER I.E. WALKING OR STOPPING


The Perfect Gift Card - Your online account
» Obtain your Gift Card balance
» Review your Gift Card purchases
» Review your Gift Card details
Error
Invalid card number or password.
Card Number
Card PIN/PAC


{% extends "base.html" %} {% block content %}
By {{deck.creator}}
Subject: {{deck.subject}}
{{deck.description}}


{% extends "_post.html" %} {%hyde title: "iPod syncing for Muine" created: 2005-05-11 15:02:03 %} {% block article %} {%article%}
A while ago I started working on a plugin for Muine that syncs your library with an iPod. I worked on it a bit more lately and it seems to be coming along, so I’m trying to get people to test it. You need this and this, to start.
Right now there is no HAL integration, as I’m having an incredibly difficult time figuring out the correct way to integrate with that stuff. What it will do, however, is mount/umount your iPod assuming it is setup correctly in fstab (correct device, ‘user’ option, etc). It defaults to /media/ipod for the mount point, but that is configurable through a gconf key (/apps/muine/ipod/mount_path).
I’ve been using it for the last few days with no serious problems. I do suggest you backup your iTunesDB file before giving it a shot, though, as corrupting that is the worst thing that can happen. You can find it at /media/ipod/iPod_Control/iTunes/iTunesDB. If you encounter problems, feel free to email me.
Update: You will need muine 0.8.3 or greater to use this plugin, as previous versions lack the necessary interface.
Another Update: I’ve checked ipod-sharp and muine-ipod into arch at http://www.snorp.net/bazaar.
{%endarticle%} {% endblock %}


--- title: "Co-Author Network March 2020" ## weight: date: '2020-03-05' authors: ["bgonzalezbustamante"] ## categories: [] ## tags: [] summary: 'Network plotted on March 5, 2020' ---
This project remains active, however, it was transferred to the Training Data Lab site in June 2023.


Thanksgiving travel update: United, Delta issue waivers ahead of major storm
by Justin BoggsThis story will be updated to reflect updated travel information.
Air travel could be snarled heading into Thanksgiving thanks to a large snowstorm poised to sweep across the country on Tuesday and Wednesday.
As a result, United and Delta have both announced waivers for some travelers impacted by this week's storm. The waivers allow travelers to rebook their flight without penalty.
Adding insult to injury, a second storm could toil with travelers following the holiday.
According to the National Weather Service, nearly a foot of snow is expected to fall in Denver, which is a major hub for United Airlines. The National Weather Service also cautioned drivers who will use Interstates 70, 26 and 76.
United Airlines announced on Sunday travel waivers for those departing from Denver now through Nov. 29.
The pre-Thanksgiving storm is then expected to travel north, where 5-7 inches of snow are expected around Minneapolis. Minneapolis is a major hub for Delta.
Delta announced late Monday waivers for those flying out of Minneapolis.
Although snow is expected to stay well to the north and west, Chicago, Indianapolis, Detroit and Cincinnati are expecting an extreme wind event. Much of the Midwest was placed under a high wind watch for Wednesday.
Another storm is expected to sweep across the Rockies and Upper Midwest on Friday and Saturday, but it is too early to predict the amount of snow.


I'd like to announce that we'll be re-offering the advanced web development class I'm calling "Building Complex Web Applications" this spring from Aug 13-15 (this time in Hanover NH).
The course will be similar to the introduction to web development course that we've put on in the past but will cover more advanced topics related to client-side development.
Some of the concepts / frameworks that we'll cover are listed below:
Attendees should be familiar with the basics of web development and have some JavaScript experience. If you're interested, but aren't sure if you're ready for the advanced class, we'll be doing the introduction class later this year, keep an eye open for that announcement.
There is no tuition for the course, but attendees will be responsible for paying for their labor and travel to the course location, if you have a couple people where you sit that would be interested this is your chance to lobby for hosting the course at your location and save the travel funding. We would just need a room that could accommodate 10-15 people and their laptops.
If you have any questions or would like more details, please just let me know.
If you are interested in attending, please send an email to Will Breitkreutz. If you want to host the training, let me know and note how many people at your location might be interested in participating.
Please feel free to forward this invite to anyone you think might be interested.


API Introduction¶
While Pheres’s implementation is organized in modules, the top-level package pheres
contains the entire public API.
To use pheres, the prefix is always just pheres
(e.g. pheres.jsonable
).
The only exception to that is the pheres.types
module, which is intended to import all values used for type-hints at once.
This documentation retains the module architecture to separate the different functionalities of pheres
in a logical manner.


<%= slug %> |
Thank you for your interest in Slows! Someone from our catering staff will be in touch with you shortly to confirm and discuss the details of your request. Here's the information we received:
| colspan="2"> Contact | |
| > Customer Name | ><%= details.name %> |
| > Customer Email | ><%= details.email %> |
| > Customer Phone | ><%= details.phone %> |
| colspan="2"> Event | |
| > Event Type | ><%= details.event_type %> |
| > Guest Count | ><%= details.guests %> |
| > Start Time | ><%= start %> |
| > End Time | ><%= end %> |
| > Flexibile Timing? | ><%= flexible %> |
| > Special Instructions | ><%= details.instructions %> |
| colspan="2"> Service | |
| > Service Type | ><%= service.type %> |
| > Closest Slows | ><%= slows.label %> |
| colspan="2"> Address | |
| > Street Address | ><%= address.street %> |
| > City | ><%= address.city %> |
| > State | ><%= address.state.name %> |
| > Zip | ><%= address.zip %> |
Do you see anything wrong or missing or did you forget to add some details? No worries, just Reply to this email and we'll get it straightened out.


Welcome!
Welcome to my little space on the Internet. I am a big fan of all things Computer related which is only eclipsed by my love of Jesus Christ, Family and Friends. I love to make my creations and tools available for free via a mix of MIT, GNU GPL and Creative Commons Licensing
Creative Commons Images
Have you ever been searching for an image and you know just what you want but all the images are under heavy copyright Licenses with large watermarks to enforce. I sure have and because of this I decided to make my own and place them in a Creative Commons Licensing, namely Attribution-ShareAlike CC BY-SA. Check it out HERE!
Open Source Code
Feel free to check out my GitHub for my open source projects that I am working on. All are licensed under MIT or GNU GPL. While some script I post are very simple, I have found them to be great tools in my career in IT. I hope to contribute more and get a start on some of my current project ideas.


|
Copley Motion Library
|
PVT trajectory segment cache object. More...
Public Member Functions | |
| PvtSegCache () | |
| Default constructor. Clears the cache. | |
| void | Clear () |
| Clear the cache. | |
| void | AddSegment (uint8 *seg, uint16 id, uunit p) |
| Add the passed segment to the cache. More... | |
| bool | GetSegment (uint8 *seg, uint16 id) |
| Get the specified segment from the cache. More... | |
| bool | GetPosition (uunit *p, uint16 id) |
| Get the position corresponding to the specified segment from the cache. More... | |
PVT trajectory segment cache object.
This is used internally by the Amp object to keep track of PVT segments recently sent. It allows the amp object to recover if a segment is lost in transit by resending the missing segments.
Add the passed segment to the cache.
Segments must be passed in order and with no gaps between ID numbers. If this segment doesn't follow those rules then the cache will be cleared before the segment is added.
| seg | Points to an array of 8 bytes which make up the segment to be added. The segment data is copied into the cache. No copy of the pointer is kept locally. |
| id | The ID number of the passed segment. |
| p | The position corresponding to this segment. |
Get the position corresponding to the specified segment from the cache.
If the requested position is available, it will be copied to the passed pointer.
| p | A pointer to where the position information will be copied. |
| id | The ID number of the segment being requested |
Get the specified segment from the cache.
If the requested segment is available, it's contents will be copied to the passed pointer.
| seg | A pointer to an array of 8 bytes where the segment data will be copied on success. |
| id | The ID number of the segment being requested |


Bold ASCII Lines
问题描述 :
Your grandmother recently developed a passion for the internet and the new technologies in general, and is now discovering the wonders of ASCII art. Unfortunately, her sight is not as it once was, and she has difficulty seeing the pictures.
Moreover, she cannot merely increase the font size as she usually does, because doing so makes the characters stand out more on their own and less as a whole. You come up with a solution: writing a program which duplicates the ASCII lines in order to make them look bold.
Moreover, she cannot merely increase the font size as she usually does, because doing so makes the characters stand out more on their own and less as a whole. You come up with a solution: writing a program which duplicates the ASCII lines in order to make them look bold.
输入:
The first line of the input will contain n, the number of test cases. For each test case, the first line will contain the positive integers w and h, both of which will be at most 100. h lines will follow, each containing w ASCII characters.The character “.” (dot) will denote the background ASCII “color”, and the only other color will be “*” (star). For each image, add a 1-character wide border of dots around the image, and proceed to replace every single star character in the original picture with a , where the middle star is positioned where the original star was.
输出:
The first line of the input will contain n, the number of test cases. For each test case, the first line will contain the positive integers w and h, both of which will be at most 100. h lines will follow, each containing w ASCII characters.The character “.” (dot) will denote the background ASCII “color”, and the only other color will be “*” (star). For each image, add a 1-character wide border of dots around the image, and proceed to replace every single star character in the original picture with a , where the middle star is positioned where the original star was.
样例输入:
2 2 1 *. 3 3 .*. *.* .*.
样例输出:
.*.. ***. .*.. --- ..*.. .***. ***** .***. ..*..
(adsbygoogle = window.adsbygoogle || []).push({});
手机任意浏览器搜索 x 8 p p点 c o m 姐姐与弟弟尽然。。。。
手机任意浏览器搜索 x 8 p p点 c o m 姐姐与弟弟尽然。。。。
手机任意浏览器搜索 x 8 p p点 c o m 姐姐与弟弟尽然。。。。
手机任意浏览器搜索 x 8 p p点 c o m 姐姐与弟弟尽然。。。。
手机任意浏览器搜索 x 8 p p点 c o m 姐姐与弟弟尽然。。。。
手机任意浏览器搜索 x 8 p p点 c o m 姐姐与弟弟尽然。。。。
手机任意浏览器搜索 x 8 p p点 c o m 姐姐与弟弟尽然。。。。
手机任意浏览器搜索 x 8 p p点 c o m 姐姐与弟弟尽然。。。。
手机任意浏览器搜索 x 8 p p点 c o m 姐姐与弟弟尽然。。。。
手机任意浏览器搜索 x 8 p p点 c o m 姐姐与弟弟尽然。。。。
手机任意浏览器搜索 x 8 p p点 c o m 姐姐与弟弟尽然。。。。
后面的是python代码啊
加了星号 (*) 表示跳过此数据不读入. 因为scanf是不读取本行回车的
不错，再多来的CF上面的题
分析的很详细！赞一个
给力！
1234百位上出现的次数应该是200吧。
哎，path[0]应该是从零开始吧，为什么是赋值1呢？
大哥，你复制也看看是不是这题的答案才复制吧。
写的好····· Pollard Rho快速因数分解
不需要输出，只要函数返回值正确就行
约瑟夫也用说这么长……很成熟的一个问题了，分治的方法解起来o(n)就可以了，有兴趣可以看看具体数学的第一章，关于约瑟夫问题推导出了一系列的结论，很漂亮
第二个方法挺不错。NewHead代表新的头节点，通过递归找到最后一个节点之后，就把这个节点赋给NewHead，然后一直返回返回，中途这个值是没有变化的，一边返回一边把相应的指针方向颠倒，最后结束时返回新的头节点到主函数。
18题的C也是错误的
for(int i=1; i<=m; i++){
for(int j=1; j<=n; j++){
dp = dp [j-1] + 1;
if(s1.charAt(i-1) == s3.charAt(i+j-1))
dp = dp[i-1] + 1;
if(s2.charAt(j-1) == s3.charAt(i+j-1))
dp = Math.max(dp [j - 1] + 1, dp );
}
}
这里的代码似乎有点问题？ dp(i)(j) = dp(i)(j-1) + 1;这个例子System.out.println(ils.isInterleave("aa","dbbca", "aadbbcb"));返回的应该是false


If you would like to get in touch with me, please free to email<EMAIL_ADDRESS>I reply to all emails received within 24 hours, usually less! I am also an avid user of social media. Please feel free to connect with me on:
I genuinely look forward to hearing from you.


It's a simulator of the Single Rotation cellular automaton, that tracks positions of the cells and uses Lanczos interpolation to add an intermediate frames. Its primary purpose is a nice visual effect, a better tool for experiments with reversible cellular automata is the online simulator.
See also blog posts on them:
This cellular automaton acts on a grid of cells, where each cell is either dead or alive. On each generation, the grid is divided into 2x2 blocks, and if the block contains exactly one alive cell, the block is rotated by 90°. Thus "single rotation". After each generation, the 2x2 subdivision is alternated. This scheme is known as Margolus neighborhood.
Despite the simplicity, complex emergent behavior appears in this rule, resembling the iconic Game of Life. One important difference is that "Single Rotation" is time-reversible, that is: for every state it is always possible (and easy) to calculate previous state. You can play with this rule in the online simulator.
"Single Rotation" rule is conservative: it preserves total number of alive cells. Moreover, from the definition of the rule it is clear that it is possible to track position of the every individual alive cell. The application does this idea.
Cell coordinates are discrete, alive cells are "jumping" by 1 unit in some direction. To make animation more visually pleasing, this simulator interpolates intermediate positions, using Lanczos resampling.
One can easily check that in the "Single Rotation" rule a single cell would constantly rotate with period 4. To make this less annoying, a possibility to filter higher frequencies of the cell movement is added. For example, when "filter" setting is 4, then every oscillation with period 4 or less is replaced by the constant average value, and rotating cells visually stand still. Higher filter setting allow to cease oscillations of higher period. This is also done by Lanczos filter.
Both 3d and 2d simulators use a simple language to describe loaded scenes, that is superset of the RLE (i.e. bare RLE code for the pattern is a valid scene description). The language makes it simpler to combine multiple patterns and assign colors to cells.
Scene is described by a sequence of statements, separated by newlines or ";". Statement names are case-sensitive. Four statements are supported:
The 3D version visualizes world lines of cells, mapping time to 3rd dimension.
3D application accepts a range of advanced configuration parameters available via URL arguments. Argument names are case-sensitive.
Here are some my pages, where you can find more information about reversible cellular automata and Single Rotation rule.
Source code is available on Github, under the permissive MIT license. It is written in CoffeeScript.


--- layout: post status: publish published: true title: Android > Could not fetch model of type 'IdeaProject' using Gradle installation author: display_name: hojunbaek login: hojunbaek email<EMAIL_ADDRESS>url: '' author_login: hojunbaek author_email<EMAIL_ADDRESS>wordpress_id: 1810 wordpress_url: http://ezcocoa.com/?p=1810 date: '2013-06-30 04:47:34 +0900' date_gmt: '2013-06-30 04:47:34 +0900' categories: - Android tags: - tool - android - studio - gradle - IdeaProject comments: [] ---
I've moved to use between Eclipse to Android Studio.
It has still some bugs since beta version.
but It's pretty good.
Anyway I've got some bug that "could not fetch model of type 'IdeaProject' using Gradle Installation.
I bring a solution to StackoverFlow that link is followings.
// http://stackoverflow.com/questions/16609666/could-not-fetch-model-of-type-ideaproject-using-gradle-installation
you've to delete default files.
[code]
~/.android
~/.gradle
[/code]
Above folder that when you use Android Sutido first time. it can be made automatically.
after delete these files, you can see that it works well.


10 lines of code = 10 issues.500 lines of code = "looks fine".Code reviews.— Michal Konturek (@MichalKonturek) June 22, 2015
10 lines of code = 10 issues.500 lines of code = "looks fine".Code reviews.


Account¶
Account Auditor¶
-
class
swift.account.auditor.
AccountAuditor
(conf, logger=None)¶ Bases:
swift.common.daemon.Daemon
Audit accounts.
-
account_audit
(path)¶ Audits the given account path
Parameters: path – the path to an account db
-
run_forever
(*args, **kwargs)¶ Run the account audit until stopped.
-
run_once
(*args, **kwargs)¶ Run the account audit once.
-
validate_per_policy_counts
(broker)¶
-
-
swift.account.auditor.
random
() → x in the interval [0, 1).¶
Account Backend¶
Pluggable Back-end for Account Server
-
class
swift.account.backend.
AccountBroker
(db_file, timeout=25, logger=None, account=None, container=None, pending_timeout=None, stale_reads_ok=False)¶ Bases:
swift.common.db.DatabaseBroker
Encapsulates working with an account database.
-
create_account_stat_table
(conn, put_timestamp)¶ Create account_stat table which is specific to the account DB. Not a part of Pluggable Back-ends, internal to the baseline code.
Parameters: - conn – DB connection object
- put_timestamp – put timestamp
-
create_container_table
(conn)¶ Create container table which is specific to the account DB.
Parameters: conn – DB connection object
-
create_policy_stat_table
(conn)¶ Create policy_stat table which is specific to the account DB. Not a part of Pluggable Back-ends, internal to the baseline code.
Parameters: conn – DB connection object
-
db_contains_type
= 'container'¶
-
db_reclaim_timestamp
= 'delete_timestamp'¶
-
db_type
= 'account'¶
-
empty
()¶ Check if the account DB is empty.
Returns: True if the database has no active containers.
-
get_db_version
(conn)¶
-
get_info
()¶ Get global data for the account.
Returns: dict with keys: account, created_at, put_timestamp, delete_timestamp, status_changed_at, container_count, object_count, bytes_used, hash, id
-
get_policy_stats
(do_migrations=False)¶ Get global policy stats for the account.
Parameters: do_migrations – boolean, if True the policy stat dicts will always include the ‘container_count’ key; otherwise it may be omitted on legacy databases until they are migrated. Returns: dict of policy stats where the key is the policy index and the value is a dictionary like {‘object_count’: M, ‘bytes_used’: N, ‘container_count’: L}
-
is_status_deleted
()¶ Only returns true if the status field is set to DELETED.
-
list_containers_iter
(limit, marker, end_marker, prefix, delimiter, reverse=False)¶ Get a list of containers sorted by name starting at marker onward, up to limit entries. Entries will begin with the prefix and will not have the delimiter after the prefix.
Parameters: - limit – maximum number of entries to get
- marker – marker query
- end_marker – end marker query
- prefix – prefix query
- delimiter – delimiter for query
- reverse – reverse the result order.
Returns: list of tuples of (name, object_count, bytes_used, put_timestamp, 0)
-
make_tuple_for_pickle
(record)¶
-
merge_items
(item_list, source=None)¶ Merge items into the container table.
Parameters: - item_list – list of dictionaries of {‘name’, ‘put_timestamp’, ‘delete_timestamp’, ‘object_count’, ‘bytes_used’, ‘deleted’, ‘storage_policy_index’}
- source – if defined, update incoming_sync with the source
-
put_container
(name, put_timestamp, delete_timestamp, object_count, bytes_used, storage_policy_index)¶ Create a container with the given attributes.
Parameters: - name – name of the container to create
- put_timestamp – put_timestamp of the container to create
- delete_timestamp – delete_timestamp of the container to create
- object_count – number of objects in the container
- bytes_used – number of bytes used by the container
- storage_policy_index – the storage policy for this container
-
Account Reaper¶
-
class
swift.account.reaper.
AccountReaper
(conf, logger=None)¶ Bases:
swift.common.daemon.Daemon
Removes data from status=DELETED accounts. These are accounts that have been asked to be removed by the reseller via services remove_storage_account XMLRPC call.
The account is not deleted immediately by the services call, but instead the account is simply marked for deletion by setting the status column in the account_stat table of the account database. This account reaper scans for such accounts and removes the data in the background. The background deletion process will occur on the primary account server for the account.
Parameters: - server_conf – The [account-server] dictionary of the account server configuration file
- reaper_conf – The [account-reaper] dictionary of the account server configuration file
See the etc/account-server.conf-sample for information on the possible configuration parameters.
-
get_account_ring
()¶ The account
swift.common.ring.Ring
for the cluster.
-
get_container_ring
()¶ The container
swift.common.ring.Ring
for the cluster.
-
get_object_ring
(policy_idx)¶ Get the ring identified by the policy index
Parameters: policy_idx – Storage policy index Returns: A ring matching the storage policy
-
reap_account
(broker, partition, nodes, container_shard=None)¶ Called once per pass for each account this server is the primary for and attempts to delete the data for the given account. The reaper will only delete one account at any given time. It will call
reap_container()
up to sqrt(self.concurrency) times concurrently while reaping the account.If there is any exception while deleting a single container, the process will continue for any other containers and the failed containers will be tried again the next time this function is called with the same parameters.
If there is any exception while listing the containers for deletion, the process will stop (but will obviously be tried again the next time this function is called with the same parameters). This isn’t likely since the listing comes from the local database.
After the process completes (successfully or not) statistics about what was accomplished will be logged.
This function returns nothing and should raise no exception but only update various self.stats_* values for what occurs.
Parameters: - broker – The AccountBroker for the account to delete.
- partition – The partition in the account ring the account is on.
- nodes – The primary node dicts for the account to delete.
- container_shard – int used to shard containers reaped. If None, will reap all containers.
See also
swift.account.backend.AccountBroker
for the broker class.See also
swift.common.ring.Ring.get_nodes()
for a description of the node dicts.
-
reap_container
(account, account_partition, account_nodes, container)¶ Deletes the data and the container itself for the given container. This will call
reap_object()
up to sqrt(self.concurrency) times concurrently for the objects in the container.If there is any exception while deleting a single object, the process will continue for any other objects in the container and the failed objects will be tried again the next time this function is called with the same parameters.
If there is any exception while listing the objects for deletion, the process will stop (but will obviously be tried again the next time this function is called with the same parameters). This is a possibility since the listing comes from querying just the primary remote container server.
Once all objects have been attempted to be deleted, the container itself will be attempted to be deleted by sending a delete request to all container nodes. The format of the delete request is such that each container server will update a corresponding account server, removing the container from the account’s listing.
This function returns nothing and should raise no exception but only update various self.stats_* values for what occurs.
Parameters: - account – The name of the account for the container.
- account_partition – The partition for the account on the account ring.
- account_nodes – The primary node dicts for the account.
- container – The name of the container to delete.
- See also:
swift.common.ring.Ring.get_nodes()
for a description of the account node dicts.
-
reap_device
(device)¶ Called once per pass for each device on the server. This will scan the accounts directory for the device, looking for partitions this device is the primary for, then looking for account databases that are marked status=DELETED and still have containers and calling
reap_account()
. Account databases marked status=DELETED that no longer have containers will eventually be permanently removed by the reclaim process within the account replicator (seeswift.db_replicator
).Parameters: device – The device to look for accounts to be deleted.
-
reap_object
(account, container, container_partition, container_nodes, obj, policy_index)¶ Deletes the given object by issuing a delete request to each node for the object. The format of the delete request is such that each object server will update a corresponding container server, removing the object from the container’s listing.
This function returns nothing and should raise no exception but only update various self.stats_* values for what occurs.
Parameters: - account – The name of the account for the object.
- container – The name of the container for the object.
- container_partition – The partition for the container on the container ring.
- container_nodes – The primary node dicts for the container.
- obj – The name of the object to delete.
- policy_index – The storage policy index of the object’s container
- See also:
swift.common.ring.Ring.get_nodes()
for a description of the container node dicts.
-
reset_stats
()¶
-
run_forever
(*args, **kwargs)¶ Main entry point when running the reaper in normal daemon mode.
This repeatedly calls
run_once()
no quicker than the configuration interval.
-
run_once
(*args, **kwargs)¶ Main entry point when running the reaper in ‘once’ mode, where it will do a single pass over all accounts on the server. This is called repeatedly by
run_forever()
. This will callreap_device()
once for each device on the server.
Account Server¶
-
class
swift.account.server.
AccountController
(conf, logger=None)¶ Bases:
swift.common.base_storage_server.BaseStorageServer
WSGI controller for the account server.
-
DELETE
(ctrl, *args, **kwargs)¶ Handle HTTP DELETE request.
-
GET
(ctrl, *args, **kwargs)¶ Handle HTTP GET request.
-
HEAD
(ctrl, *args, **kwargs)¶ Handle HTTP HEAD request.
-
POST
(ctrl, *args, **kwargs)¶ Handle HTTP POST request.
-
PUT
(ctrl, *args, **kwargs)¶ Handle HTTP PUT request.
-
REPLICATE
(ctrl, *args, **kwargs)¶ Handle HTTP REPLICATE request. Handler for RPC calls for account replication.
-
server_type
= 'account-server'¶
-
-
swift.account.server.
app_factory
(global_conf, **local_conf)¶ paste.deploy app factory for creating WSGI account server apps


Automate Linux
Home
Add a Host
Edit Inventory
Linux
Windows
Log Out
Which Inventory would you like to automate?
Which job would you like to run?
Run Job!
No Data...


Help Center
Our Support
Alex Shelest
Browse Available Books
All Books
Most Recent
Most Popular
Free Book
Add book to library
Title of the book
Author's firtsname
Author's lastname
Cost
Categories
Must Read
Best
Classic
Non Fiction
Image
Add book


Gateway
BOT
22-Mar-19 08:39 PM
[dscrd-hush] <AkiraX> @dukeleto I agree
[dscrd-hush] <Seymour> @dukeleto Can you elaborate? I did not quite understand what to do. I would be grateful to you.
[dscrd-hush] <dukeleto> i have no idea what GUI wallet you are using, or what version
[dscrd-hush] <dukeleto> I just know that those URLs no longer work, because radix42 no longer has anything to do with Zcash
[dscrd-hush] <dukeleto> radix42 deleted all their repos and URLs and all the things
[dscrd-hush] <dukeleto> anything trying to hit that URL is out of date
Hush Swing Wallet - beware of watchonly addresses! - MyHush/hush-swing-wallet-ui
[dscrd-hush] <dukeleto> @Seymour git clone https://github.com/myhush/hush/ ; cd hush; ./zcutil/fetch-params.sh
[dscrd-hush] <TheTrunk> The development fund of zelcash is fairly limited and is locked and maintained by zel foundation. So there is just about $25k that are distributed accross all projects. So you clearly see that for the zelcore project to be successful it needs to have a revenue model which currently is a listing fee.
[dscrd-hush] <Seymour> @dukeleto Where should I enter this command ??
[dscrd-hush] <dukeleto> @TheTrunk i can understand the constraints, I have paid for Hush servers/domain/etc fees from my own pocket for a long time, and gotten some generous donations along the way
[dscrd-hush] <dukeleto> @FireMartZ seems like latest GUI wallet has the wrong URL for downloading sprout key
[dscrd-hush] <dukeleto> @Seymour the command line, if you have never used it before, this might not be viable
[dscrd-hush] <dukeleto> basically, sprout is going away
[dscrd-hush] <dukeleto> we are updating to sapling, so we won't need this stuff very soon.
[dscrd-hush] <Seymour> @dukeleto what am I supposed to do?
[dscrd-hush] <dukeleto> follow my instructions above
[dscrd-hush] <dukeleto> there you go, download those and put them in the Right Places
[dscrd-hush] <Seymour> @dukeleto I just can not run the command line, or rather it starts, but I can’t write anything there.
[dscrd-hush] <dukeleto> I don't use Windows nor do I use GUI wallets
[dscrd-hush] <Seymour> @dukeleto In the right place, where?
[dscrd-hush] <dukeleto> I gave my advice, I go back to my CLI world
[dscrd-hush] <Seymour> @dukeleto And who can help me ??
[dscrd-hush] <dukeleto> @TheTrunk is zelcore still closed source? I am not against your project supporting Hush, but it's never been something we paid you for, or asked for, or supported
(edited)
[dscrd-hush] <dukeleto> @Seymour #wallet-support
[dscrd-hush] <TheTrunk> sadly its still closed source (which is a company decision not mine). Supporting hush was purely mine decision yes as I liked the project.
[dscrd-hush] <TheTrunk> @Seymour download the two files above and put them into %AppData%\Roaming\ZcashParams directory
[dscrd-hush] <Seymour> @TheTrunk This is not a virus?))
[dscrd-hush] <Seymour> @TheTrunk Well thank you! I'm going to try now)
[dscrd-hush] <Seymour> @TheTrunk Open wallet, thank you very much, kind man! :-):technofrog: :feelsslideman:
[dscrd-hush] <Seymour> :technofrog:
[dscrd-hush] <dukeleto> @TheTrunk as always, I will pay bounties for good work and things like that. I am not saying an outright "no" to you, but it's not a "yes" either. I can see where you could work on things and earn bounties, for sure
[dscrd-hush] <dukeleto> you have a lot of useful skills
[dscrd-hush] <dukeleto> We have explorer and ElectrumX servers from KMD, since they provide those for asset chains. We are not against having secondaries, and might be willing to pay. The price of Hush is not very realistic right now, with such low liquidity, so it's hard to estimate paying for things before exchanges re-open
[dscrd-hush] <dukeleto> @Seymour glad you got it working
[dscrd-hush] <dukeleto> @TheTrunk paste a hush addr and I will tip you for helping @Seymour
[dscrd-hush] <TheTrunk> I see, I will try to code support for it as komodo is just awesome and exciting and it will allow us to integrate more asset chains easily later on anyway...
t1UPSwfMYLe18ezbCqnR5QgdJGznzCUYHkj Thanks for a tip


I'm a senior researcher at Microsoft AI and Research focusing on large-scale machine learning. Previously, I was a research scientist at Intel's Parallel Computing Laboratory. Much of my research is released part of SPLATT, an open source software toolkit for sparse tensor factorization. Another recent project is FROSTT, a collection of open sparse tensor datasets.
I completed my PhD in computer science at the University of Minnesota in April 2019. I was advised by George Karypis and focused on developing parallel algorithms for large-scale tensor factorization.
I was at the University of Kentucky from 2009 to 2012 and earned my BSc in computer science. While there, I did research under Mirek Truszczynski and Brent Seales.
I also completed four internships, most recently at the Intel Parallel Computing Lab where I developed high performance algorithms for graph analytics and was also involved in hardware-software codesign. Before Intel, I spent the summer of 2013 at Lawrence Livermore National Laboratory (LLNL) porting LULESH to OpenACC. The two summers before LLNL (2011 and 2012), I interned at Lexmark as the developer of a particle flow modeling engine in CUDA.


computing enthusiast / wii homebrewer
hey, welcome. this is my website. i'm 9x, i like computers and music. some of my favorite activities are searching around the internet for cool information and listening to modules.
some of my favorite modules that i can endlessly listen to are below.
currently i have no ongoing projects, but hopefully that changes in the future.


HTML5 Boilerplate helps you build fast, robust, and adaptable web apps or sites. Kick-start your project with the combined knowledge and effort of 100s of developers, all in one little package.
HTML5 Boilerplate helps you build fast, robust, and adaptable web apps or sites. Kick-start your project with the combined knowledge and effort of 100s of developers, all in one little package.
Option One View sample badge
HTML5 Boilerplate helps you build fast, robust, and adaptable web apps or sites. Kick-start your project with the combined knowledge and effort of 100s of developers, all in one little package.
Option Two View sample badge
HTML5 Boilerplate helps you build fast, robust, and adaptable web apps or sites. Kick-start your project with the combined knowledge and effort of 100s of developers, all in one little package.
Option Three View sample badge
HTML5 Boilerplate helps you build fast, robust, and adaptable web apps or sites. Kick-start your project with the combined knowledge and effort of 100s of developers, all in one little package.


View and manage all the courses in department.
Float courses in the current session.
Add a new course to the department.


Wrap a series of <CButton>
components in
<c-button-group>
.
These classes can also be added to groups of links, as an alternative to the
<CNav>
components.
Combine button-like checkbox and radio toggle buttons into a seamless looking button group.
Join sets of button groups into button toolbars for more complicated components. Use utility classes as needed to space out groups, buttons, and more.
Feel free to combine input groups with button groups in your toolbars. Similar to the example above, you’ll likely need some utilities through to space items correctly.
Alternatively, of implementing button sizing classes to each button in a group, set
size
property to all <c-button-group>
's, including
each one when nesting multiple groups.
Put a <c-button-group>
inside another
<c-button-group>
when you need dropdown menus combined with a series
of buttons.
Create a set of buttons that appear vertically stacked rather than horizontally. Split button dropdowns are not supported here.


Only the best experiences in a beat ! download
Welcome to the collection
Only the best
Buy the best
Share the best
Get notified, get our apps today


--- title: Notebooks keywords: fastai sidebar: home_sidebar summary: "A quick guide to adding a new Colaboratory notebook to your project repo and configuring it for use with nbdev." ---
Create a new python 3 notebook in Gooogle Colaboratory (Colab) and name it according to the nbdev convention of incremental numbering (00, 01, 02 etc) followed by an underscore and a name describing its contents. For example, if this is the third notebook added to the project, and it contains tests, an appropriate name might be '03_tests.ipynb'. Note that the new notebook may not be created directly in the project repository on Google Drive. If not, locate it on your Google Drive (commonly the 'Colab Notebooks' folder in '/My Drive'), and move it to the project repo by right clicking and selecting 'move'.
Then add and run the following code snippets in separate cells.
In the first cell add the following code where <module>
is the name of the .py file that the notebook will create. In the case of the 03_tests.ipynb notebook, the module name should be 'tests'. Submodules can be specified with <module.submodule>
.
# default_exp <module>
Then add the following code to connect your Colab instance to Google Drive. Alternatively, click on 'Mount Drive' in the Colab sidebar File tab and the above code is automatically inserted and run for you.
#hide
from google.colab import drive
drive.mount('/content/drive')
Add automatic reloading of modules when they change at source.
%load_ext autoreload
%autoreload 2
Required installs. Fastcore is required for running tests from nbdev.
#hide
!pip install nbdev
!pip install fastcore
Add a code cell that changes directory to the project repo early in the notebook.
#hide
%cd /content/drive/My drive/<repo>
Import modules:
#hide
#not deps but we need them to use nbdev and run tests
from nbdev import *
from nbdev.showdoc import *
from fastcore.test import *
Add a text cell with the following code and replace the placeholder text with the name/title for your notebook that you want to appear in the documentation. The '>' creates an indented paragraph.
# Notebook title
> Add an explanation/details of the module here.
Optionally add the in-notebook export cell. Running this cell exports modules directly from the notebook (without having to go to the command line). The nbdev docs suggest adding it as the final cell in the notebook.
#hide
from nbdev.export import notebook2script
notebook2script()
You're ready to go.
One more thing ... test_flags!
Certain cells, allthough containing legitimate code, cause problems with nbdev's integrated test system. For example, the code above to mount google drive (point 2) causes open unmounted notebooks to stall during test runs and the notebook to fail. To deal with this, Nbdev has test_flags.
Flags are denoted by #<flag_name>
placed at the top of cells and signal to nbdev how that cell should be treated. Nbdev has a number of built in flags, for example, #exports
and #hide
are flags, but we can also create custom test_flags to signal to nbdev that we want the cell contents excluded from test runs with nbdev_test_nbs
.
First, create one or more test_flags by editing the tst_flags
setting of settings.ini
with the desired flag, for example, tst_flags = <flag_name>
. The name can be anything not already in use as a flag and multiple test flags can be separated by | . Next simply add the name of the flag preceeded by #
to the top of notebook cells to be excluded from test runs. So, to exclude our troublesome drive.mount
code above we can specify a test_flag in settings.ini with tst_flags = tst_flag_colab
and them add #test_flag_colab
to the top of the cell:
#hide
#test_flag_colab
from google.colab import drive
drive.mount('/content/drive')
If your using Colab you are also likely writing code for GPUs, and device code tested with nbdev_test_nbs
in a Colab CPU instance will raise a cuda runtime error (100)
exception. You might, therefore, consider setting up another test_flag for this circumstance. Use the built in #all_flag
to exclude the entire notebook from tests.
Test_flags can be 'turned off' by passing it as an argument to the --flags attribute of nbdev_test_nbs
, like this nbdev_test_nbs --flag test_flag_colab
. In this case nbdev will ignore #test_flag_colab
during test runs and include flagged cells for testing. You can create and use any number of test flags in this way and the end product is a low-overhead, flexible testing environment - thanks nbdev!


Adding User Authentication with OpenID Connect¶
In this quickstart we want to add support for interactive user authentication via the OpenID Connect protocol to our IdentityServer.
Once that is in place, we will create an MVC application that will use IdentityServer for authentication.
Adding the UI¶
All the protocol support needed for OpenID Connect is already built into IdentityServer. You need to provide the necessary UI parts for login, logout, consent and error.
While the look & feel as well as the exact workflows will probably always differ in every IdentityServer implementation, we provide an MVC-based sample UI that you can use as a starting point.
This UI can be found in the Quickstart UI repo. You can either clone or download this repo and drop the controllers, views, models and CSS into your IdentityServer web application.
Alternatively you can run this command from the command line in the same directory as your IdentityServer web application to automate the download:
iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/IdentityServer/IdentityServer4.Quickstart.UI/release/get.ps1'))
For Unix/Linux:
\curl -L https://raw.githubusercontent.com/IdentityServer/IdentityServer4.Quickstart.UI/release/get.sh | bash
Once you have added the MVC UI assets, you will also need to add MVC to the hosting application, both in the DI system and in the pipeline.
Add MVC to ConfigureServices
with the AddMvc
extension method:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
// configure identity server with in-memory stores, keys, clients and scopes
services.AddIdentityServer()
.AddDeveloperSigningCredential()
.AddInMemoryApiResources(Config.GetApiResources())
.AddInMemoryClients(Config.GetClients())
.AddTestUsers(Config.GetUsers());
}
Add MVC as the last middleware in the pipeline in Configure
with the UseMvc
extension method:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseIdentityServer();
app.UseStaticFiles();
app.UseMvcWithDefaultRoute();
}
See the readme for the quickstart UI for more information.
Note
The release
branch of the UI repo has the UI that matches the latest stable release. The dev
branch goes along with the current dev build of IdentityServer4. If you are looking for a specific version of the UI - check the tags.
Spend some time inspecting the controllers and models, the better you understand them, the easier it will be to make future modifications. Most of the code lives in the “Quickstart” folder using a “feature folder” style. If this style doesn’t suit you, feel free to organize the code in any way you want.
Creating an MVC client¶
Next you will add an MVC application to your solution. Use the ASP.NET Core “Web Application” (i.e. MVC) template for that. Don’t configure the “Authentication” settings in the wizard – you will do this manually in this quickstart. Once you’ve created the project, configure the application to use port 5002 (see the overview part for instructions on how to do that).
To add support for OpenID Connect authentication to the MVC application, add the following to ConfigureServices
in Startup
:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear();
services.AddAuthentication(options =>
{
options.DefaultScheme = "Cookies";
options.DefaultChallengeScheme = "oidc";
})
.AddCookie("Cookies")
.AddOpenIdConnect("oidc", options =>
{
options.SignInScheme = "Cookies";
options.Authority = "http://localhost:5000";
options.RequireHttpsMetadata = false;
options.ClientId = "mvc";
options.SaveTokens = true;
});
}
AddAuthentication
adds the authentication services to DI.
We are using a cookie as the primary means to authenticate a user (via "Cookies"
as the DefaultScheme
).
We set the DefaultChallengeScheme
to "oidc"
because when we need the user to login, we will be using the OpenID Connect scheme.
We then use AddCookie
to add the handler that can process cookies.
Finally, AddOpenIdConnect
is used to configure the handler that perform the OpenID Connect protocol.
The Authority
indicates that we are trusting IdentityServer.
We then identify this client via the ClientId
.
SignInScheme
is used to issue a cookie using the cookie handler once the OpenID Connect protocol is complete.
And SaveTokens
is used to persist the tokens from IdentityServer in the cookie (as they will be needed later).
As well, we’ve turned off the JWT claim type mapping to allow well-known claims (e.g. ‘sub’ and ‘idp’) to flow through unmolested:
JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear();
And then to ensure the authentication services execute on each request, add UseAuthentication
to Configure
in Startup
:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseAuthentication();
app.UseStaticFiles();
app.UseMvcWithDefaultRoute();
}
The authentication middleware should be added before the MVC in the pipeline.
The last step is to trigger the authentication handshake. For that go to the home controller and
add the [Authorize]
on one of the actions.
Also modify the view of that action to display the claims of the user, e.g.:
<dl>
@foreach (var claim in User.Claims)
{
<EMAIL_ADDRESS><EMAIL_ADDRESS>}
</dl>
If you now navigate to that controller using the browser, a redirect attempt will be made to IdentityServer - this will result in an error because the MVC client is not registered yet.
Adding support for OpenID Connect Identity Scopes¶
Similar to OAuth 2.0, OpenID Connect also uses the scopes concept. Again, scopes represent something you want to protect and that clients want to access. In contrast to OAuth, scopes in OIDC don’t represent APIs, but identity data like user id, name or email address.
Add support for the standard openid
(subject id) and profile
(first name, last name etc..) scopes
by adding a new helper (in Config.cs
) to create a collection of IdentityResource
objects:
public static IEnumerable<IdentityResource> GetIdentityResources()
{
return new List<IdentityResource>
{
new IdentityResources.OpenId(),
new IdentityResources.Profile(),
};
}
Note
All standard scopes and their corresponding claims can be found in the OpenID Connect specification
You will then need to add these identity resources to your IdentityServer configuration in Startup.cs
.
Use the AddInMemoryIdentityResources
extension method where you call AddIdentityServer()
:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
// configure identity server with in-memory stores, keys, clients and scopes
services.AddIdentityServer()
.AddDeveloperSigningCredential()
.AddInMemoryIdentityResources(Config.GetIdentityResources())
.AddInMemoryApiResources(Config.GetApiResources())
.AddInMemoryClients(Config.GetClients())
.AddTestUsers(Config.GetUsers());
}
Adding a client for OpenID Connect implicit flow¶
The last step is to add a new configuration entry for the MVC client to IdentityServer.
OpenID Connect-based clients are very similar to the OAuth 2.0 clients we added so far. But since the flows in OIDC are always interactive, we need to add some redirect URLs to our configuration.
Add the following to your clients configuration:
public static IEnumerable<Client> GetClients()
{
return new List<Client>
{
// other clients omitted...
// OpenID Connect implicit flow client (MVC)
new Client
{
ClientId = "mvc",
ClientName = "MVC Client",
AllowedGrantTypes = GrantTypes.Implicit,
// where to redirect to after login
RedirectUris = { "http://localhost:5002/signin-oidc" },
// where to redirect to after logout
PostLogoutRedirectUris = { "http://localhost:5002/signout-callback-oidc" },
AllowedScopes = new List<string>
{
IdentityServerConstants.StandardScopes.OpenId,
IdentityServerConstants.StandardScopes.Profile
}
}
};
}
Testing the client¶
Now finally everything should be in place for the new MVC client.
Trigger the authentication handshake by navigating to the protected controller action. You should see a redirect to the login page at IdentityServer.
After successful login, the user is presented with the consent screen. Here the user can decide if he wants to release his identity information to the client application.
Note
Consent can be turned off on a per client basis using the RequireConsent
property on the client object.
..and finally the browser redirects back to the client application, which shows the claims of the user.
Note
During development you might sometimes see an exception stating that the token could not be validated. This is due to the fact that the signing key material is created on the fly and kept in-memory only. This exception happens when the client and IdentityServer get out of sync. Simply repeat the operation at the client, the next time the metadata has caught up, and everything should work normal again.
Adding sign-out¶
The very last step is to add sign-out to the MVC client.
With an authentication service like IdentityServer, it is not enough to clear the local application cookies. In addition you also need to make a roundtrip to IdentityServer to clear the central single sign-on session.
The exact protocol steps are implemented inside the OpenID Connect middleware, simply add the following code to some controller to trigger the sign-out:
public async Task Logout()
{
await HttpContext.SignOutAsync("Cookies");
await HttpContext.SignOutAsync("oidc");
}
This will clear the local cookie and then redirect to IdentityServer. IdentityServer will clear its cookies and then give the user a link to return back to the MVC application.
Further experiments¶
As mentioned above, the OpenID Connect middleware asks for the profile scope by default. This scope also includes claims like name or website.
Let’s add these claims to the user, so IdentityServer can put them into the identity token:
public static List<TestUser> GetUsers()
{
return new List<TestUser>
{
new TestUser
{
SubjectId = "1",
Username = "alice",
Password = "password",
Claims = new []
{
new Claim("name", "Alice"),
new Claim("website", "https://alice.com")
}
},
new TestUser
{
SubjectId = "2",
Username = "bob",
Password = "password",
Claims = new []
{
new Claim("name", "Bob"),
new Claim("website", "https://bob.com")
}
}
};
}
Next time you authenticate, your claims page will now show the additional claims.
Feel free to add more claims - and also more scopes. The Scope
property on the OpenID Connect
middleware is where you configure which scopes will be sent to IdentityServer during authentication.
It is also noteworthy, that the retrieval of claims for tokens is an extensibility point - IProfileService
.
Since we are using AddTestUsers
, the TestUserProfileService
is used by default.
You can inspect the source code here
to see how it works.


All social networks expect your site to have the Open Graph meta tags
If you are using a meta tag module such as ngx-meta, ng2-meta, angular meta service ...etc, it will not help the social network to recognize the meta tags, because they update them using javascript, and these social networks do NOT support javascript execution yet.
The inputs [title] [description] [image]
behave differently for each social
network, for example in facebook and pinterest they override the meta tags but some other social
networks only accept the meta tags like google+
so the ideal solution is to make your app SEO friendly (using a server side rendering, like Universal)
Share button component options:
Share button directive options:
interest button doesn't work without providing [image]
to the component, or [sb-image]
if you are using the directive
You can use the share buttons service to set global variables:
however some social networks auto-resize the share window like pinterest


19
1 Then Job replied:
2 "How long will you three torment me
and discourage me by calling me wicked?
3 You have insulted me many times;
are you not ashamed for saying these things to me?
4 Even if it were true that I had done wrong,
I have not injured you!
5 If you truly think that you are better than I am,
and if you argue that I must be guilty because I am suffering,
6 you should realize that it is God who has caused me to suffer.
It is as though he has a net and that he has caught me in it.
7 I cry out, 'People are murdering me!',
but no one answers me.
I call out loudly, but there is no one, not even God, who acts fairly toward me.
8 It is as though God has blocked my road,
and I cannot go anywhere;
it is as though he has forced me to try to find the road in the darkness.
9 He has taken away my good reputation;
it is as though he has removed a crown from my head.
10 He batters me from every side, and I will soon die.
I no longer expect him to do anything good for me.
11 He attacks me because he is very angry at me;
he considers me to be his enemy.
12 It is as though he were sending his army to attack me;
they surround my tent
and get ready to attack me.
13 God has caused my brothers to abandon me,
and for all those who know me to act like strangers to me.
14 All my relatives and good friends have left me.
15 The people who were guests in my house have forgotten me,
and my female servants consider that I am a foreigner whom they do not know.
16 When I summon my servants, they do not answer;
When I plead with them to come to help me, they do not come.
17 My breath smells very bad to my wife so she stays away from me,
and my brothers detest me.
18 Even young children despise me;
when I stand up to talk to them, they laugh at me.
19 My dearest friends detest me,
and those whom I love very much have turned against me.
20 My body is only skin and bones;
I am barely alive.
21 I plead with you, my three friends, pity me
because God has struck me very hard.
22 Why do you cause me to suffer, also? Do you think you are God?
Why do you never get enough of accusing me of doing wrong?
23 I wish that someone would take these words of mine
and write them permanently in a book in order that people can read them.
24 Or else, I wish that someone would carve my words on a rock with a chisel
in order that they would last forever.
25 But I know that the one who vindicates me in court is alive,
and that some day he will stand here on the earth and make the final decision about whether I deserve to be punished.
26 And even after diseases have destroyed my body,
still, in my body I will see God.
27 I will see him myself;
I will see him with my own eyes!
My emotions overwhelm me as I think about that!
28 If you three men say, 'What more can we do to cause him to suffer?'
and if you say, 'He is the one who has caused his own troubles,'
29 you should fear that God will punish you;
he punishes those like you with whom he is angry;
and when that happens, you will know that there is someone who judges people."


Before Change
from comicmodels.models import RegistrationRequest
def accept(self, request, queryset):
queryset.update(status=RegistrationRequest.ACCEPTED,
accepted=datetime.datetime.today())
// add user to participants group
// send email to user
After Change
def accept(self,request,obj):
obj.status = RegistrationRequest.ACCEPTED
obj.changed = datetime.datetime.today()
obj.save()
messages.add_message(request, messages.SUCCESS, "User ""+obj.user.username+""\
is now a participant for "+ obj.project.short_name +
". An email has been sent to notify the user")