These terms and conditions govern your use of this website; by using this website, you accept these terms and conditions in full. If you disagree with these terms and conditions or any part of these terms and conditions, you must not use this website.
[You must be at least [18] years of age to use this website. By using this website [and by agreeing to these terms and conditions] you warrant and represent that you are at least [18] years of age.]
Unless otherwise stated, [NAME] and/or its licensors own the intellectual property rights in the website and material on the website. Subject to the license below, all these intellectual property rights are reserved.
You may view, download for caching purposes only, and print pages [or [OTHER CONTENT]] from the website for your own personal use, subject to the restrictions set out below and elsewhere in these terms and conditions.
You must not:
[Where content is specifically made available for redistribution, it may only be redistributed [within your organisation].]
You must not use this website in any way that causes, or may cause, damage to the website or impairment of the availability or accessibility of the website; or in any way which is unlawful, illegal, fraudulent or harmful, or in connection with any unlawful, illegal, fraudulent or harmful purpose or activity.
You must not use this website to copy, store, host, transmit, send, use, publish or distribute any material which consists of (or is linked to) any spyware, computer virus, Trojan horse, worm, keystroke logger, rootkit or other malicious computer software.
You must not conduct any systematic or automated data collection activities (including without limitation scraping, data mining, data extraction and data harvesting) on or in relation to this website without [NAME'S] express written consent.
[You must not use this website to transmit or send unsolicited commercial communications.]
[You must not use this website for any purposes related to marketing without [NAME'S] express written consent.]
[Access to certain areas of this website is restricted.] [NAME] reserves the right to restrict access to [other] areas of this website, or indeed this entire website, at [NAME'S] discretion.
If [NAME] provides you with a user ID and password to enable you to access restricted areas of this website or other content or services, you must ensure that the user ID and password are kept confidential.
[[NAME] may disable your user ID and password in [NAME'S] sole discretion without notice or explanation.]
In these terms and conditions, "your user content" means material (including without limitation text, images, audio material, video material and audio-visual material) that you submit to this website, for whatever purpose.
You grant to [NAME] a worldwide, irrevocable, non-exclusive, royalty-free license to use, reproduce, adapt, publish, translate and distribute your user content in any existing or future media. You also grant to [NAME] the right to sub-license these rights, and the right to bring an action for infringement of these rights.
Your user content must not be illegal or unlawful, must not infringe any third party's legal rights, and must not be capable of giving rise to legal action whether against you or [NAME] or a third party (in each case under any applicable law).
You must not submit any user content to the website that is or has ever been the subject of any threatened or actual legal proceedings or other similar complaint.
[NAME] reserves the right to edit or remove any material submitted to this website, or stored on [NAME'S] servers, or hosted or published upon this website.
[Notwithstanding [NAME'S] rights under these terms and conditions in relation to user content, [NAME] does not undertake to monitor the submission of such content to, or the publication of such content on, this website.]
This website is provided "as is" without any representations or warranties, express or implied. [NAME] makes no representations or warranties in relation to this website or the information and materials provided on this website.
Without prejudice to the generality of the foregoing paragraph, [NAME] does not warrant that:
Nothing on this website constitutes, or is meant to constitute, advice of any kind. [If you require advice in relation to any [legal, financial or medical] matter you should consult an appropriate professional.]
[NAME] will not be liable to you (whether under the law of contact, the law of torts or otherwise) in relation to the contents of, or use of, or otherwise in connection with, this website:
These limitations of liability apply even if [NAME] has been expressly advised of the potential loss.
Nothing in this website disclaimer will exclude or limit any warranty implied by law that it would be unlawful to exclude or limit; and nothing in this website disclaimer will exclude or limit [NAME'S] liability in respect of any:
By using this website, you agree that the exclusions and limitations of liability set out in this website disclaimer are reasonable.
If you do not think they are reasonable, you must not use this website.
[You accept that, as a limited liability entity, [NAME] has an interest in limiting the personal liability of its officers and employees. You agree that you will not bring any claim personally against [NAME'S] officers or employees in respect of any losses you suffer in connection with the website.]
[Without prejudice to the foregoing paragraph,] you agree that the limitations of warranties and liability set out in this website disclaimer will protect [NAME'S] officers, employees, agents, subsidiaries, successors, assigns and sub-contractors as well as [NAME].
If any provision of this website disclaimer is, or is found to be, unenforceable under applicable law, that will not affect the enforceability of the other provisions of this website disclaimer.
You hereby indemnify [NAME] and undertake to keep [NAME] indemnified against any losses, damages, costs, liabilities and expenses (including without limitation legal expenses and any amounts paid by [NAME] to a third party in settlement of a claim or dispute on the advice of [NAME'S] legal advisers) incurred or suffered by [NAME] arising out of any breach by you of any provision of these terms and conditions[, or arising out of any claim that you have breached any provision of these terms and conditions].
Without prejudice to [NAME'S] other rights under these terms and conditions, if you breach these terms and conditions in any way, [NAME] may take such action as [NAME] deems appropriate to deal with the breach, including suspending your access to the website, prohibiting you from accessing the website, blocking computers using your IP address from accessing the website, contacting your internet service provider to request that they block your access to the website and/or bringing court proceedings against you.
[NAME] may revise these terms and conditions from time-to-time. Revised terms and conditions will apply to the use of this website from the date of the publication of the revised terms and conditions on this website. Please check this page regularly to ensure you are familiar with the current version.
[NAME] may transfer, sub-contract or otherwise deal with [NAME'S] rights and/or obligations under these terms and conditions without notifying you or obtaining your consent.
You may not transfer, sub-contract or otherwise deal with your rights and/or obligations under these terms and conditions.
If a provision of these terms and conditions is determined by any court or other competent authority to be unlawful and/or unenforceable, the other provisions will continue in effect. If any unlawful and/or unenforceable provision would be lawful or enforceable if part of it were deleted, that part will be deemed to be deleted, and the rest of the provision will continue in effect.
These terms and conditions [, together with [DOCUMENTS],] constitute the entire agreement between you and [NAME] in relation to your use of this website, and supersede all previous agreements in respect of your use of this website.
These terms and conditions will be governed by and construed in accordance with [GOVERNING LAW], and any disputes relating to these terms and conditions will be subject to the [non-]exclusive jurisdiction of the courts of [JURISDICTION].
We created these website terms and conditions with the help of a free website terms and conditions form developed by Contractology and available at www.yourwebsite.com. Contractology supply a wide variety of commercial legal documents, such as template data protection statements.
[[NAME] is registered with [TRADE REGISTER]. You can find the online version of the register at [URL]. [NAME'S] registration number is [NUMBER].]
[[NAME] is subject to [AUTHORISATION SCHEME], which is supervised by [SUPERVISORY AUTHORITY].]
[[NAME] is registered with [PROFESSIONAL BODY]. [NAME'S] professional title is [TITLE] and it has been granted in [JURISDICTION]. [NAME] is subject to the [RULES] which can be found at [URL].]
[[NAME] subscribes to the following code[s] of conduct: [CODE(S) OF CONDUCT]. [These codes/this code] can be consulted electronically at [URL(S)].
[[NAME'S] [TAX] number is [NUMBER].]]
The full name of [NAME] is [FULL NAME].
[[NAME] is registered in [JURISDICTION] under registration number [NUMBER].]
[NAME'S] [registered] address is [ADDRESS].
You can contact [NAME] by email to [EMAIL].
By using this WEBSITE TERMS AND CONDITIONS template document, you agree to the terms and conditions set out on yourdomain.com. You must retain the credit set out in the section headed "ABOUT THESE WEBSITE TERMS AND CONDITIONS". Subject to the licensing restrictions, you should edit the document, adapting it to the requirements of your jurisdiction, your business and your website. If you are not a lawyer, we recommend that you take professional legal advice in relation to the editing and use of the template.


--- layout: base permalink: /face/b title: Explosion of red roses --- Home About Services Portfolio STORIES FREEZING STORIES FOR LIFE PHOTOGRAPHS


CSS stands for Cascading Style Sheets. It allows us to make the website look however we want!
We need CSS to make our website look pretty!

CSS (AKA Stylesheets) have the file extension .CSS
When following best front-end practices .css files will live in a folder specifically for stylesheets
Example to add a stylesheet to our HTML
<link rel="stylesheet" href"styles/styles.css" >
The link tag links to an external file, in this case, is our stylesheet. The rel attribute tells the browser that the link is a stylesheet. The href tells the browser the location of the files.
You can use multiple stylesheets for one project. We can include as many links as we want. However, for this session, we will only use one.
First, a few quick vocabulary words:
Selector: the element weare creating the styles for.
Property: the part of the element we are styling (ie: color)
Value: the style we want (ie: for color we might use "blue")
selector {
property: value;
}
h2 {
color: green;
}
.cocktail {
color: pink;
}

Hey girl

You can also style elements differently based on element state. IE: We can change the look of an element if the user hovers over the element.
Pixels are the most common. There are others, but mostly will see pixels.
Percent - will make the element X% size bigger / smaller than the parent element.
rem/em - will make the element X times size bigger / smaller than the parent element.
vh/vw - will make the element take up X amount of the viewport height or width
Important note: Keep accessibility in mind when selecting colors. A big thing to note, is contrast being high enough. There are a lot of great tools to help with this.
RGB - rgb(Red, Green, Blue)
Each number passed into rgb is based on intensity. The higher the intensity, the more the color will be represented.
White: rgb(255, 255, 255)
Black: rgb(0, 0, 0)
Red: rgb(255, 0, 0)
Hexadecimal Numbers (#beb66d) - another way to represent colors.
Color Picker can be used to get the hex value for any color!
There are > 300 different propeties in CSS & ~infinite number of values!
Each property has a specific set of valid values, but dont worry!
You don't need to memorize them all, you just need to know how to look it up.
A wonderful resource for this: Mozilla CSS Documentation
In addition to tonight's worksheet, you can start out with CSS Diner - to practice CSS
Order Matters!
Properties override properties but whole rules dont override whole rules.
Later rules override earlier rules if the rule follows the same specificity
!important
is used
when all else fails. If a line of CSS is marked as !important, it will always win. This should be
used sparingly and it is bad practice. A better option is to use a more specific selector
instead.Normalize your CSS. Each browser has its own set of default styles. If we leave those as is, our site would look slightly different depending on the users browser. We can normalize our CSS to remedy this.
Some browsers have limitations in what CSS they allow. Browser prefixes are sometimes necessary and there are tools such as CanIUse to help us determine if we need a prefix.
Like most coding languages, CSS allows for comments. A comment in
CSS looks like: /* This is a comment */
See you soon!
We can group multiple selectors and apply one style broadly across the site. This works with both element selectors and class selectors.
h1, h2, h3, h4 {
color: green;
}
.cocktail, .coding {
color: pink;
}
We can increase specificity by combining selectors. This allows us to be able to style targeted elements.

Coding with a cocktail on the side.

I am learning CSS and web development.

p {
color: purple;
}
p.status {
color: seagreen;
}

I am learning CSS and web development.

I have 2 pets - a goofy dog and a grumpy cat.

p.about {
color: purple;
}
p.about.pets {
color: seagreen;
}
Combinig selectors lets us have so much control over our styles!!
We can use attribute selectors to target elements with a specific attribute.
Example
a[href="https://example.com"] {
background-color: wine;
}
The snippets above will find any  element with an href attribute that matches "https://example.com" and give it a wine background.
We can define selectors based on the location of the element in the DOM (browsers turn the HTML we write into the DOM)
Location selectors use the elements' relationships to eachother to navigate.
Elements relationships? What?
<parent>
<child>
<grandchild></grandchild>
</child>
<child></child>
</parent>

Most Important Item

Item 2

li em {
color: freshair;
}
Note the space between the selectors. This rule will tell the browser to change the text color to freshair for all  elements that have
 as an ancestor.
Combinators is a fancy word for combining selectors. There are a few different combinators.
Our last slide covered one of these, a Descendant Combinator... But thats not all!
Children Combinator: > it must match an existing parent child relationship in the DOM.
Valid as  is a child of

li > em {
color: vividtangerine;
}
Invalid as  is NOT a child of

ul > em {
color: vividtangerine;
}
Adjacent Combinator
We can use the + in our rules to apply style to the second element in the DOM. Sticking with our list example:
li + li {
color: electriclime;
}
This will style our second list item to have lime green as the text color.
There are other combinators! Here is a great reference for combinators.
We can change the style of an element based on the state of the element. So for example, an element may look different based on if the user hovers over the element.
The general syntax to create a state based selector is to use a colon between the selector and the state.
If there is no state with the selector, it is just the base style of the element.
button {
color: red;
}
button:hover {
color: blue;
}
The button in this CSS will have red text, but if a user hovers over it the text will turn blue.
We have learned ways to get more and more specific with our CSS. We can even style certain parts of a selector.
We do this by using pseudo-elements. Pseudo-elements tell the browser what part of the selector to style.
The general syntax for this is selector::pseudo-element, but lets look at an example.
p::first-line {
color: blue;
}
The snippet above will make the first line of all
 elements have blue text.
A few other common pseudo-elements are before and after this will just add some style before or after a selector.
Browsers are where our site will be viewed, it is also where we can debug our CSS and HTML.
See you soon!
The Box Model is a great way to visualize spacing on our site.
Other important layout properties:
display - specifies the display behavior of the element. Typically it will have either the value of "inline", meaning the element does not create a new line, or "block" meaning the element does create a new block.
.example {
display: block;
margin: 50px;
padding-left: 60px;
border-style: dotted;
border-color: green;
}

Hey girl

Hey girl

Hey girl

Hey girl

We can even use CSS to add icons to our site!
There are tools such as Font Awesome where we can get icons to use for free.
If used, tools like font awesome will need to be either imported in the css file or linked in the  of the HTML.
We talked about pseudo-elements earlier. This is the prime time to use one!
p::before {
font: var(--fa-font-solid);
content: "\f57b";
}
In short, the above snippet will put the icon from Font Awesome before any
 elements.
Have a great time making the web more beautiful!


Workforwardnola
Job seeker focused website for NOLA. There is a version live at http://careerpathnola.com (hosted by the City of New Orleans).
Dev setup
Requires Ruby 2.2.5 and Postgres (9.5+ preferred).
After cloning the repository for the first time, run bundle install
in the workforwardnola
directory.
Copy .env.example
to a new file called .env
. You can leave the admin password as-is for development, or change it.
Database Setup
Make sure Postgres is installed: which psql
should give a reasonable answer. Also create a file called .env
with the line DATABASE_URL=postgres://localhost:5432/workforwardnola
. (You may need to create a new DB in postgres called workforwardnola
.)
Run rake db:migrate
and rake db:seed
to set up the database structure and fill it with sample data. If the data doesn’t show up, try running rake db:reset
and rake db:seed
. Career data can also be loaded via http://localhost:9292/manage. and a spreadsheet.
Running app & deployment
Run the app by running bin/start
, with an optional command line argument "$IP:$PORT"
, all it does is call rerun -p "**/*.{rb,js,scss,mustache,ru,jpg,jpeg,png}" rackup
. The site will be available at http://localhost:9292. If there are errors when you try to refresh to see changes, try again - you may have been faster than the app regenerated.
The Code for America NOLA fellows team is no longer actively developing this. We had set up a deployment pipeline via heroku, syncing the staging site with the master branch and enabling review apps for pull requests. It worked well!
The “Email to yourself” career assessment feature requires the EMAIL_xxxx
config variables to be set. We use the pony gem to send emails, please see their documentation for more details.
Some changes have included various AWS services. In addition to SMTP from the pony gem, several config variables must be set for AWS services (S3 and SES). These are new additions added below the EMAIL_xxxx
config variables.
Setting up SES: SENDER_EMAIL
, OWNER_EMAIL
, AWS_ACCESS
, AWS_SECRET
must all be configured in .env
for the SES to work through the job form.
Setting up S3: Configure AWS_BUCKET
in .env
There is additionally an optional feature to write to google sheets using a file client_secret.json
. An example is included in client_secret.json.example
. If you do not wish to use this feature, do not create or use client_secret.json
! You can find information on the google-drive-ruby GitHub.
Updating content
For details on updating content see other files under the docs/
folder. Details on updating career info via spreadsheet specifically is in docs/career_assessment_how_to.md.
Deploying to production
The ADMIN_xxxx
and EMAIL_xxxx
config variables need to be set regardless of the deployment. ADMIN_USER
and ADMIN_PASSWORD
protect the /manage
part of the site, and the EMAIL_xxxx
variables are for the pony gem. After the app is up, make sure to load the career data via http://your_url_here/manage.
Redeploying for another city
Most of the content is specific to New Orleans and the Opportunity Centers, including which careers are highlighted.
Heroku
Setting up a Heroku pipeline is relatively straightforward. We set up a pipeline with a staging app (with automatic deploys from the master branch), production app (we periodically promote the app from staging to production), and review apps enabled. We used the Postgres add-on.
AWS
We are not AWS experts, so if you have recommendations to improve the following, please make a PR! We found that this requires at least a t2.micro instance to avoid out of memory errors during deployment.
- Create an IAM user (as recommended by Amazon) with appropriate permissions for deployment credentials. @antislice has no idea what specific permissions are needed for EB deployment, so we tested with admin.
- Install the Elastic Beanstalk client.
- Follow the Create an Application steps in this documentation.
- For steps 5/6, select
Ruby
andRuby 2.2 (Puma)
- SSH login is optional, but convenient
- At this point, you’ll want to set up the DB. We created an integrated Postgres database instance (v. 9.5.2) as described in here.
- Walk through Create an Environment
- ‼ At this point, stop and check on the instance type. You may need to configure a VPC.
- Try deploying:
eb deploy
Configuring the “email to yourself” feature requires extra configuration on EB.
Further notes on our initial test deployment and changes that were made:
- For steps 5/6, select


Email me. Please? See my Facebook Page! Follow me on Twitter! Check out my LinkedIn! Look at all the work I do on GitHub!


This is my website.Thanks for visiting!
This week we used a laser cutter to make our own stamps.Making a picture in Ai, we use different colours to reperesent lines which needed to be cut or engrave.


Data Brokers and Epsilon
2 min read
Today the CBS 60 Minutes program aired a segment on "data brokers" like Epsilon. The CEO of that company was interviewed on that show and highlighted the firm's openness and noted that consumers can request a "summary" of the data that they have on consumers. What was not noted in that segment is that this request can only be made by snail-mail (odd for a tech company, the form can be found here http:/
[caption id="attachment_1325" align="alignright" width="300"]
make this process as difficult as possible. I am going to mail this request tomorrow to see what I get back.
Here is their excuse for it
The mail process is designed to ensure security and to verify identity. Since we are matching your name and address to our database, we can be confident that we are mailing your information to you.
A justification for an obtuse process based on privacy rings a bit hollow for this company. I mean, they are selling my information.
In addition, by conducting this process through the mail, we believe that more consumers will have an opportunity to make a/this Marketing Data Summary request. Some consumers may not feel comfortable using other methods to verify their identity on the internet. We believe that conducting this process through the mail allows the greatest number of consumers access to their reports.
This does not explain why snail-mail is the only method.
#cbs #intelfreepress #marketingdatasummary #old #old #uncategorized


|
|
emonGLCD as an RF signal strength meter |
32 |
3 years 39 weeks ago by MartinR |
2 years 2 weeks ago by Robert Wall |
|
|
new build, readings are miles out |
31 |
3 years 46 weeks ago by mattnj |
3 years 46 weeks ago by calypso_rae |
|
|
Success using the STM32F103 microcontroller |
30 |
1 year 30 weeks ago by Guest |
1 year 29 weeks ago by dBC |
|
|
Forum SPAM blocker malfunction? |
30 |
3 years 8 weeks ago by glyn.hudson |
3 years 6 weeks ago by boelle |
|
|
Integer Maths is Magic! |
30 |
4 years 10 weeks ago by calypso_rae |
3 years 51 weeks ago by calypso_rae |
|
|
US Home Total Home Monitoring including Solar Array |
29 |
46 weeks 10 hours ago by rjsears |
45 weeks 3 days ago by rjsears |
|
|
Why different values? |
29 |
50 weeks 4 days ago by Patrik Arlos |
48 weeks 6 days ago by Robert Wall |
|
|
Pv power diversion to immersion with SSR ? |
29 |
1 year 28 weeks ago by scobo |
1 year 13 weeks ago by ajscheid |
|
|
Emoncms New Direction |
29 |
1 year 39 weeks ago by christophe_meyers |
1 year 5 weeks ago by Geoff Soord |
|
|
rebooted and now data is screwed (timeseries) |
29 |
2 years 6 weeks ago by boelle |
1 year 47 weeks ago by boelle |
|
|
Hello! New toys... |
29 |
3 years 12 weeks ago by Umski |
2 years 48 weeks ago by Umski |
|
|
Battery powered emonTX |
29 |
3 years 47 weeks ago by Jérôme |
2 years 40 weeks ago by Robert Wall |
|
|
Solar Power Divert with no voltage readings |
29 |
4 years 22 weeks ago by stuart |
4 years 21 weeks ago by Robert Wall |
|
|
Negative values for power! |
28 |
1 year 30 weeks ago by SimonK |
1 year 29 weeks ago by SimonK |
|
|
pulsed battery charging |
28 |
2 years 19 weeks ago by cypher007 |
2 years 18 weeks ago by octagon |
|
|
emon cms on rpi does not discover external harddrive???? |
28 |
3 years 39 weeks ago by boelle |
3 years 37 weeks ago by boelle |
|
|
Pool temperature monitor |
28 |
3 years 40 weeks ago by dsarrut |
2 years 50 weeks ago by Jérôme |
|
|
Import vs Export Measurement ... |
28 |
4 years 35 weeks ago by Guest |
4 years 34 weeks ago by calypso_rae |
|
|
Energy production during the night. |
27 |
1 year 14 weeks ago by CidiRome |
1 year 10 weeks ago by timneo |
|
|
Reading IrDA data from an Elster A100C electricity meter |
27 |
4 years 43 weeks ago by daveb |
1 year 18 weeks ago by E-Mike |
|
|
RaspberryPi as emonBase forwarder only - SD card life expectancy concern |
26 |
3 years 43 weeks ago by Jérôme |
2 years 35 weeks ago by g_mascolo |
|
|
Power monitoring of plugged in devices/appliances |
26 |
3 years 48 weeks ago by Guest |
3 years 45 weeks ago by fluppie007 |
|
|
Cracking Gas metering |
25 |
4 years 1 week ago by matt-carbon-coop |
49 weeks 4 days ago by Bra1n |
|
|
RF69 reliability, timing, temp sensors, mqtt & lowpowerlabs |
24 |
1 year 18 weeks ago by TrystanLea |
1 year 9 weeks ago by TrystanLea |
|
|
migrate emoncms from windows to raspberry |
24 |
2 years 2 weeks ago by brutzler |
2 years 1 day ago by Bill Thomson |
|
|
External immersion heaters |
24 |
3 years 37 weeks ago by Brian D |
1 year 44 weeks ago by Paul Reed |
|
|
120/240V split phase monitoring |
24 |
4 years 7 weeks ago by Guest |
1 year 15 weeks ago by Robert Wall |
|
|
Converting optical kWh pulse count into power reading |
23 |
1 year 26 weeks ago by Toberwine |
1 year 21 weeks ago by Toberwine |
|
|
PV Diverter System Up & Running - What Next? |
23 |
2 years 27 weeks ago by alandlaney |
2 years 17 weeks ago by dod |
|
|
Non-Intrusive Load Monitoring - one sensor, appliance level detail |
23 |
5 years 14 weeks ago by Guest |
1 year 2 weeks ago by Peter Galbavy |
|
|
Calibrating AC-AC Voltage |
22 |
3 years 30 weeks ago by Guest |
3 years 29 weeks ago by Guest |
|
|
feed suddenly negative |
21 |
2 years 17 weeks ago by boelle |
2 years 17 weeks ago by pb66 |
|
|
cant login to emoncms |
21 |
2 years 22 weeks ago by boelle |
2 years 22 weeks ago by boelle |
|
|
Induction cooker = resistive load ? |
21 |
3 years 2 weeks ago by Eric_AMANN |
2 years 51 weeks ago by Robert Wall |
|
|
British Gas Smart Meters - Part 1 |
21 |
3 years 23 weeks ago by jamesleesaunders |
1 year 48 weeks ago by jamesleesaunders |
|
|
Car keys not working. |
21 |
3 years 23 weeks ago by solar |
3 years 1 week ago by Robert Wall |
|
|
Individual circuit/appliance monitoring |
21 |
4 years 22 weeks ago by Guest |
4 years 21 weeks ago by Robert Wall |
|
|
3 Phases AC monitoring |
21 |
4 years 51 weeks ago by Guest |
1 year 8 weeks ago by Robert Wall |
|
|
Windows 10 |
20 |
1 year 29 weeks ago by Paul Reed |
1 year 25 weeks ago by davekramkowski |
|
|
Vrms reading in US / Canada |
20 |
1 year 35 weeks ago by hrant |
1 year 35 weeks ago by hrant |
|
|
How to contribute on OpenEnergyMonitor dev + development plans |
20 |
5 years 9 weeks ago by TrystanLea |
1 year 51 weeks ago by nbremond |
|
|
Using an emonTx V3.2 as a Mk2 PV Router |
19 |
2 years 6 days ago by calypso_rae |
1 year 49 weeks ago by Robert Wall |
|
|
Project announcement: Energy monitor light |
19 |
2 years 21 weeks ago by ondrej1024 |
1 year 5 weeks ago by puuhapet |
|
|
Emonlib on Beaglebone |
19 |
2 years 44 weeks ago by zaxter |
41 weeks 4 days ago by Robert Wall |
|
|
Can I monitor my electricity use with a direct network connection? |
19 |
2 years 45 weeks ago by MPooley |
2 years 44 weeks ago by MPooley |
|
|
Using screenshots on a Mac |
19 |
4 years 5 weeks ago by calypso_rae |
4 years 4 weeks ago by PaulOckenden |
|
|
MK2 PV code on emonTx feeding emonGLCD & emonBase |
19 |
4 years 13 weeks ago by Guest |
4 years 12 weeks ago by calypso_rae |
|
|
Digital Supply Meters for PV |
19 |
4 years 31 weeks ago by calypso_rae |
4 years 16 weeks ago by calypso_rae |
|
|
Water meter for water consumption monitoring |
18 |
46 weeks 6 hours ago by rjsears |
42 weeks 1 day ago by rjsears |
|
|
how critical is to have exactly 2.5v at the mid point |
18 |
1 year 6 weeks ago by ramunsa |
1 year 5 weeks ago by ramunsa |


`fd7bd46` cleans up the cc directory and adds links to ne... - gcharang
`d9fa81f` minor edits - gcharang
`4b8b8a8` minor edits - gcharang
`4d738c0` minor edits - gcharang
`87c5661` Merge pull request #81 from KomodoPlatform/dev - gcharang
E.g. if maker sets price for BEER/ETH pair and has 0 ETH he won't be able to spend taker payment (due to gas fees requirement), but MM2 will allow trade to start.
`4b589f2` adds third party resources doc - gcharang
`719eeb0` adds third party resources doc - gcharang
`f84f381` Merge pull request #82 from KomodoPlatform/dev - gcharang
`dd46b4e` updates third party resources doc - gcharang
`1ca28dc` updates third party resources doc - gcharang
`e49acd5` Merge pull request #85 from KomodoPlatform/dev - gcharang
adds native notifications support
need this setting pr and turn on setting for it to be work https://github.com/KomodoPlatform/Agama/pull/229
by default just normal toast notification
if notification setting turned on and operating systems has support for the notification we show native notification
even with setting on if os has no notifications support it will be fall back to toast notification
toast notifications
![agama-ubuntu-toast](https://user-images.githubusercontent...


Dayne Barry: a young race caller with a passion for horse racing
by Hayley ElgPUNTERS may not have known it but a talented teenager called one of the races at the weekend's Ballarat Cup.
Swan Hill's Dayne Barry, 17, has been calling races since 2014.
Barry has always loved horse racing and called his first race at Mt Wycheproof when he was just 12 years old.
On Saturday afternoon he called Race 4 - the Magic Millions 2YO Clockwise Classic over 1000 metres.
He called the race last year and so when he was asked back for this year's event he jumped at the opportunity.
When calling races he feeds off the crowd.
"I love the atmosphere and the excitement of the crowds," he said.
"But it's not always easy but I love to call a good competitive race."
He practices at his local track in Swan Hill and also near Bendigo.
With a passion for horse racing, he hopes to be make a name for himself as a career race caller, though he understands there are not a lot of jobs available and that he would have to leave his home town to do so.
If he cannot land a job as a race caller he would still like to be involved in the industry, perhaps as a trainer.


--- title: Using Wright's rules and a DAG to compute the bias of an effect when we measure proxies for X and Y author: Jeff Walker date: '2020-02-07' slug: using-wright-s-rules-and-a-dag-to-compute-the-bias-of-an-effect-when-we-measure-proxies-for-x-and-y categories: - causal analysis tags: - causal graph - fake data - Wright style path analysis keywords: - tech ---
This is a skeletal post to work up an answer to a twitter question using Wright’s rules of path models. Using this figure
the question is I want to know about A->Y but I measure A* and Y*. So in figure A, is the bias the backdoor path from A* to Y* through A and Y?
Short answer: the bias is the path as stated divided by the path from A to Y.
Medium answer: We want to estimate \(\beta\), the true effect of \(A\) on \(Y\). We have measured the proxies, \(A^\star\) and \(Y^\star\). The true effect of \(A\) on \(A^\star\) is \(\alpha_1\) and the true effect of \(Y\) on \(Y^\star\) is \(\alpha_2\).
So what we want is \(\beta\) but what we estimate is \(\alpha_1 \beta \alpha_2\) (the path from \(A^\star\) to \(Y^\star\)) so the bias is \(\alpha_1 \alpha_2\).
But, this is really only true for standardized effects. If the variables are not variance-standardized (and why should they be?), the bias is a bit more complicated.
TL;DR answer: In terms of \(\beta\) the estimated effect is
\[\begin{equation} \alpha_1 \alpha_2 \frac{\sigma_A^2}{\sigma_{A^\star}^2} \beta \end{equation}\]so the bias is
\[\begin{equation} k = \alpha_1 \alpha_2 \frac{\sigma_A^2}{\sigma_{A^\star}^2} \end{equation}\]The derivation is scratched out here:
This is easy and just uses Wright’s rules of adding up effects along a path
n <- 10^6
beta <- 0.6 # true effect
alpha_1 <- 0.9 # standardized effect of A on A* -- this is the correlation of A with proxy
alpha_2 <- 0.8 # standardized effect of Y o Y* -- this is the correlation of Y with proxy
A <- rnorm(n)
Y <- beta*A + sqrt(1 - beta^2)*rnorm(n)
astar <- alpha_1*A + sqrt(1 - alpha_1^2)*rnorm(n) # proxy for A
ystar <- alpha_2*Y + sqrt(1 - alpha_2^2)*rnorm(n) # proxy for Y
\(\beta\) is the true effect and the expected estimated effect is \(\alpha_1 \beta \alpha_2\) (using Wright rules) so \(\alpha_1 \alpha_2\) is the bias. Note this isn’t added to the true effect as in omitted variable bias (confounding). We can check this with the fake data.
alpha_1*beta*alpha_2 # expected measured effect
## [1] 0.432
coef(lm(ystar ~ astar)) # measured effect
## (Intercept) astar
## 0.0007277386 0.4313778378
check some other measures
var(A) # should be 1
## [1] 1.002161
var(Y) # should be 1
## [1] 1.001362
var(astar) # should be 1
## [1] 1.00204
var(ystar) # should be 1
## [1] 0.998893
cor(ystar, astar) # should be equal to expected measured effect
## [1] 0.4320569
n <- 10^5
rho_alpha_1 <- 0.9 # correlation of A and A*
rho_alpha_2 <- 0.8 # correlation of Y and Y*
rho_b <- 0.6 # standardized true effect of A on Y
sigma_A <- 2 # total variation in A
sigma_Y <- 10 # total variation in Y
sigma_astar <- 2.2 # total variation in A*
sigma_ystar <- 20 # total variation in Y*
alpha_1 <- rho_alpha_1*sigma_astar/sigma_A # effect of A on astar
alpha_2 <- rho_alpha_2*sigma_ystar/sigma_Y # effect of Y on ystar
beta <- rho_b*sigma_Y/sigma_A # effect of A on Y (the thing we want)
A <- rnorm(n, sd=sigma_A)
R2_Y <- (beta*sigma_A)^2/sigma_Y^2 # R^2 for E(Y|A)
Y <- beta*A + sqrt(1-R2_Y)*rnorm(n, sd=sigma_Y)
R2_astar <- (alpha_1*sigma_A)^2/sigma_astar^2 # R^2 for E(astar|A)
astar <- alpha_1*A + sqrt(1-R2_astar)*rnorm(n, sd=sigma_astar)
R2_ystar <- (alpha_2*sigma_Y)^2/sigma_ystar^2 # R^2 for E(ystar|Y)
ystar <- alpha_2*Y + sqrt(1-R2_ystar)*rnorm(n, sd=sigma_ystar)
Now let’s check our math in the figure above. Here is the estimated effect
coef(lm(ystar ~ astar))
## (Intercept) astar
## 0.004357835 3.950256435
And the expected estimated effect using just the standardized coefficients
rho_alpha_1*rho_alpha_2*rho_b*sigma_ystar/sigma_astar
## [1] 3.927273
And the expected estimated effect using the equation \(k \beta\), where k is the bias (this is in the top image of the derivation)
k <- rho_alpha_1*sigma_A/sigma_Y*rho_alpha_2*sigma_ystar/sigma_astar
k*beta
## [1] 3.927273
And finally, the expected estimated effect using the bias as a function of the unstandardized variables (this is in the bottom – part 2– image of the derivation)
k <- alpha_1*alpha_2*sigma_A^2/sigma_astar^2
k*beta
## [1] 3.927273
And the true effect?
beta
## [1] 3
Some other checks
coef(lm(ystar ~ Y))
## (Intercept) Y
## -0.03612649 1.60271514
alpha_2
## [1] 1.6
coef(lm(ystar ~ A))
## (Intercept) A
## -0.00254846 4.80956599
alpha_2*beta
## [1] 4.8
coef(lm(astar ~ A))
## (Intercept) A
## -0.002796505 0.991465329
alpha_1
## [1] 0.99
sd(A)
## [1] 2.014547
sd(Y)
## [1] 10.04232
sd(astar)
## [1] 2.215202
sd(ystar)
## [1] 20.09823
cor(A, astar)
## [1] 0.9016573
cor(Y, ystar)
## [1] 0.8008157
```


--- layout: post title: "Add null check without brackets in Visual Studio" description: "A Visual Studio tweak." date: 2020-09-07 6:47 UTC tags: [Productivity] image: "/content/binary/add-null-check-without-brackets.png" image_alt: "Screen shot of the 'Add null check' Quick Action after the behaviour change. It no longer adds brackets around the throw statement." --- {% include JB/setup %}
{{ page.description }}
The most recent versions of Visual Studio have included many new Quick Actions, accessible with Ctrl + . or Alt + Enter. The overall feature has been around for some years, but the product group has been adding features at a good pace recently, it seems to me.
One feature has been around for at least a year: Add null check. In a default installation of Visual Studio, it looks like this:
As the screen shot shows, it'll auto-generate a Guard Clause like this:
public bool Overlaps(Reservation other) { if (other is null) { throw new ArgumentNullException(nameof(other)); } var otherSeating = new Seating(SeatingDuration, other.Date); return Overlaps(otherSeating); }
Part of my personal coding style is that I don't use brackets for one-liners. This is partially motivated by the desire to save vertical space, since I try to keep methods as small as possible. Some people worry that not using brackets for one-liners makes the code more vulnerable to defects, but I typically have automated regressions tests to keep an eye on correctness.
The above default behaviour of the Add null check Quick Action annoyed me because I had to manually remove the brackets. It's one of those things that annoy you a little, but not enough that you throw aside what you're doing to figure out if you can change the situation.
Until it annoyed me enough to investigate whether there was something I could do about it. It turns out to be easy to tweak the behaviour.
In Visual Studio 2019, go to Tools, Options, Text Editor, C#, Code Style, General and change the Prefer braces option to No:
This changes the behaviour of the Add null check Quick Action:
After applying the Quick Action, my code now looks like this:
public bool Overlaps(Reservation other) { if (other is null) throw new ArgumentNullException(nameof(other)); var otherSeating = new Seating(SeatingDuration, other.Date); return Overlaps(otherSeating); }
This better fits my preference.
Comments
The same should go for if's, switch's, try/catch and perhaps a few other things. While we are at it, spacing is also a good source for changing layout in code, e.g: decimal.Round( amount * 1.0000m, provider.Getdecimals( currency ) ) ).
When assigning parameters to fields, I like this one-line option for a null check:
.How do you feel about it? You could even use a disard in your example:
James, thank you for writing. I'm aware of that option, but rarely use it in my examples. I try to write my example code in a way that they may also be helpful to Java developers, or programmers that use other C-based languages. Obviously, that concern doesn't apply if I discuss something specific to C#, but when I try to explain design patterns or low-level architecture, I try to stay away from language features exclusive to C#.
In other contexts, I might or might not use that language feature, but I admit that it jars me. I find that it's a 'clever' solution to something that's not much of a problem. The
??
operator is intended as a short-circuiting operator one can use to simplify variable assignment. Throwing on the right-hand side never assigns a value.It's as though you would use the coalescing monoid to pick the left-hand side, but let the program fail on the right-hand side. In Haskell it would look like this:
The compiler infers that
x
has the same type asthing
, e.g.Semigroup a => Maybe a
. Ifthing
, however, isNothing
, the expression crashes when evaluated.While this compiles in Haskell, I consider it unidiomatic. It too blatantly advertises the existence of the so-called bottom value (⊥). We know it's there, but we prefer to pretend that it's not.
That line of reasoning is subjective, and if I find myself in a code base that uses
??
like you've shown, I'd try to fit in with that style. It doesn't annoy me that much, after all.It's also shorter, I must admit that.
You can do more than that. As suggested by Visual Studio in your second screenshot, you can (after making the change to not prefer braces) generate an
.editorconfig
file containing your coding style settings. Visual Studio will prompt you to save the file alongside your solution. If you do so, then any developer that opens these files with Visual Studio with also have your setting to not prefer braces. I wrote a short post about EditorConfig that contains more information.


{%extends 'base.html'%} {%load crispy_forms_tags%} {%block login%}
Don't have an account? Create one here


1. Open the browser console (Ctrl + Shift + J)
2. Type "printInAFrame(str)" in the console with "str" being the string you want to print out
Alternately you can test the function by clickling the button below
Result:
1. Get Postman: Link
2. Send a POST request to /hash with the request body in the form of ```{"text": "xyz"}``` (swap "xyz" for your preferred string)
3. Check the result in Postman
1. Install curl if you don't have it yet: Link
2. Paste the command below to the terminal (swap "xyz" for your preferred string)
curl --header "Content-Type: application/json" --request POST --data '{"text":"xyz"}' http://localhost:4567/hash
3. Check the result in the terminal
Alternately you can test the function by clickling the button below (Enter the text you want to hash)
After clicking the button, you can inspect the request and response in the browser network monitor
Result:


8 Reasons to quit your day job
It was a cold December morning, as I sat out on my porch I decided today was the day.
It was a cold December morning, as I sat out on my porch I decided today was the day.
Would you give up your warm shower for an icy one?
It was a cold December morning, as I sat out on my porch I decided today was the day.


new Terminal(options) → {Terminal}
Initialize Stripe Terminal
Parameters:
| Name | Type | Description |
|---|---|---|
options |
Object | Options to initiate Stripe Terminal |
- Source:
Returns:
Instance of Stripe Terminal
- Type
- Terminal
Methods
collectPayment(clientSecret)
Collect a payment for a PaymentIntent
Parameters:
| Name | Type | Description |
|---|---|---|
clientSecret |
string | See Stripe Intents API reference for details |
- Source:
connectionStatus()
Get the current connection status.
- Source:
connectReader(serialNumber)
Connect to a reader.
Parameters:
| Name | Type | Description |
|---|---|---|
serialNumber |
string | The serial number of the reader that you want to connect to. |
- Source:
discoverReaders()
Begins discovering readers matching the given configuration.
- Source:
off(eventName, handle)
Remove event listener.
Parameters:
| Name | Type | Description |
|---|---|---|
eventName |
String | to match subscription. |
handle |
function | function associated with event. |
- Source:
on(eventName, callback)
Listen for an event.
The following events are supported:
- readers
- error
Parameters:
| Name | Type | Description |
|---|---|---|
eventName |
String | to subscribe to. |
callback |
function | triggered on the event. |
- Source:
setTokenProvider(url)
Set token provider
Parameters:
| Name | Type | Description |
|---|---|---|
url |
string | API URL to get the token |
- Source:


Vertical Form
Horizontal Form
AutoComplete:
ComboBox:
DropDownList:
DropdownList...
MultiSelect:
Female
AutoComplete:
ComboBox:
DropDownList:
DropdownList...
MultiSelect:
Female


source: pixabay
TL;DR
We should create a tool for Steemians to sustain their commitment to this chain, without sacrificing too much like *burning the token, but with much more loyalty than just powering up (locking temporarily) their stakes.*
I call it - the DARE - locking STEEM forever without losing its associated rights.
As you can see from the above, on my blog page, I pledge that “this account will stay powered up above 10,000 SP forever”. That promise was made like more than 2 years ago? roughly like that… I guess I was very excited at that time that I decided to make such a promise … It’s a promise that actually doesn’t hurt your rights too much if Steem is to be very successful in the long run as those locked up SPs would bring you much more than the principal and you get to enjoy every rights that are given to an SP holder.
So far I have never failed and will continue to honor this promise of course as I knew that this promise was made on chain, making this promise more special. At some time in the past, I even had the idea of creating a club that only Steemians who pledge the same (powering up 10k SP forever) can join and that club was very close to be founded …
However, a pledge on chain is nothing more than a promise on paper, at least not much more. It is up to the Steemians to honor their promises - well, in infinite time.
When I saw people debating about the duration of powering down, I was always thinking about how can we get people to commit more than just powering up … After all, you can hardly call powering up an act identical to showing commitment since that move is also self beneficial.
So I thought if we can give those who pledges a longer powering down period like 50 weeks a higher influence than normal? Theoretically it sounds reasonable and good for reducing liquidity, but I know that this design will make the blockchain level protocol extremely complicated (am I right?). So finally I gave up this idea.
source: pixabay
But yesterday I thought if we do not give more power to those who pledge to lock up longer then nothing needs to be changed. The problem is how do we increase the validity of the pledge so people can verify if any of the pledges have been broken and in return it will make the pledge more credible.
 Steemians can use this concept to make tournaments more fun and beneficial to Steem like using DARE as punishment (DARE 100 SP when you lose, something like that). Maybe whales can use it to make a bet against each other …  If you really care about Steem so much as to burn tokens, I would say that you deserve the connection if not the token itself …
If someone can develop a mechanism to just constantly monitor if anyone who makes a DARE promise (maybe in his/her profile page or under a certain page where everyone goes there to pledge…) still honors it up to this moment, I am sure this would be helping in establishing something more than just individual promises, despite no real punishment for violation except ruined credibility.
If this mechanism works, then witnesses can further design anything that are suitable for chain level integration.
I think the success of a project is to create stake holders’ future benefits, instead of instant benefits. My proposal of DARE is in line with this idea.
I hope this post can stimulate some discussion along this direction.
Finally, I dare you to keep powering up above 10k forever like me. ^_^
If you dare, leave your comment and your screenshot. I will believe you and give you a full vote.
Let’s DARE each other!!!
source: pixabay
This page is synchronized from the post: ‘[Steem Idea] A proposal for “Dare” - Between Powering Up and Burning’


Add an apprentice
You can:
- add details of one or more apprentices to your account
- make sure your training provider gets paid through your account
Before you start
You must:
- make sure the organisation your apprentices will be employed through is in your account - view organisations in this account
- know the names of your apprentices
- know your training provider's UK Provider Reference Number (UKPRN) - your training provider can tell you this


Y
et
A
nother
R
ope
L
adder from
E
vernote
Welcome
Select Enex files
Configuration
Set template
Pick output location
Convert
Features:
Yarle can convert:
📝 Any text
📝 All metadata: original creation time, last modification time, tags, GPS location, notebook name, source URL
🔗 External links
🔗 Internal links among Evernote notes
💻 Codeblocks
🖼 Inline Images
📎 Attachments
📄 Webclips
Works with:
📓 single enex file (one notebook exported from Evernote)
📚 or a folder of enex files supported (several notebooks exported and placed into the same folder locally) (cli only, GUI still does not support this feature).
Highly customizable:
🚀 Creates Markdown files matching to user-defined templates, see Templates introduced. See How to use templates with YARLE for details.
💡 Metadata support: Puts title, creation time, update time, tags, and latlong source, notebook, link to original html meta-information into md as metadata. (To set them, please set up a custom template)
🔨 Updates md files' creation, access, and modification timestamps according to the notes' original create/update/modification time.
🔨 Organizes all attachments into a _resources subfolder (to keep the notes' folder as simple as possible).
Selected enex files:
Target Dialect
Obsidian
LogSeq
Heptabase
Tana Internal Format
Other Standard Markdown-based application
General
Notes type
Journal Notes
Pages
Omit links' display name
Yes
No
Keep the original Html
( Converts the notes to HTML format also.)
Yes
No
Convert webclips
(Convert webclips too)
Yes
No
Zettelkasten-prefix needed.
((It puts Zettelkasten Id (based on time of creation) at the beginning of the file name.))
Yes
No
Use Creation dates(zettelIds) as filenames.
((It creates files named by their Zettelkasten Id (based on time of creation)))
Yes
No
Date format:
( ISO 8601 specification of the expected date format (e.g. YYYY-MM-DD))
Keep Image size
Yes
No
( Preserves the images' width and height in the chosen format.)
Perform URL Encoding on FileNames And Links
( URL-encodes linked file names and internal EN links . e.g "linked file.jpg" will be converted to "linked%20file.jpg" )
Yes
No
Keep original amount of newlines
( keep the original amount of newlines, default is false, when the multiple newlines are collapsed to one.)
Yes
No
Generate 'naked' URLs
( if it's true, Yarle generates 'naked' external Urls without any extra characters. If its false, external Urls are wrapped by '\<' and '\>' characters )
Yes
No
Add 'md' extension of internal links
( adds '.md' extensions at the end of internal file links, to make them recognizable by DevonThink and other tools )
Yes
No
Convert plain text notes only
( Skips any notes with attachments (e.g. notes containing pictures).)
Yes
No
Skip enex filename from output path
Yes
No
Notes
Monospace Is used as Code block
( if it's true then all deepest elements with monospace font style is recognized as Codeblocks.)
Yes
No
Keep Markdown characters Of EN Notes
( Set it true, if you used Markdown format in your EN notes.)
Yes
No
Attachments
Store attachments in notebook-level
( Store note resources on global _resources folder for each enex export)
Yes
No
Store all attachments in one folder
( Stores note resources on global _resources folder)
Yes
No
Use unique end in the name of 'unknown files'
( Instead of generating unknown_file if the filename cannot be recognised, it creates unknown_file-\
as filenames
Yes
No
Sanitize spaces in resource names
Yes
No
Replacement character for sanitizing spaces in resource names
Custom resources folder:
Tags
Add # to tag
( Appends the pound sign at the beginning of the tags.)
Yes
No
Generate nested tags
( It's a complex property contains the following subitems: "separatorInEN", "replaceSeparatorWith" and "replaceSpaceWith" . separatorInEN stores the tag separator used in Evernote, replaceSeparatorWith is the string to what separatorInEN should be replaced to, and replaceSpaceWith is the string to what the space character should be replaced to in the tags. For example using the default settings a tag ```tag1_sub tag of tag1``` is going to be converted to ```tag1/sub-tag-of-tag1```)
Yes
No
Separator of nested tags in EN
Replace separator with
Replace space with
Evernote v10+ Tasks
Obsidian
Other Standard Markdown-based application
Obsidian tasks tag
Current template
Selected Output folder:
Logs
Happy with the results?
You can show your appreciation by
giving a
star on github
or, if you can afford,
click to the coffee cup down there, and buy me a coffee!
Thank you so much! 🤘


{% extends "base.html" %} {% block title %}HacSoc CTF{% endblock %} {% block content %}
Start by looking through the hints below. Each one contains a challenge with a flag at the end of it. When you find a flag, submit it using the form below.


DAY/NIGHT
Let's mint!
1. Connect Your MetaMask;
2. Enter link to your file;
3. Press MINT!
4. Confirm the transaction;
5. Enjoy Your NFT!
MINT!
Enter ID to view your token
VIEW


Create a new set of connection pools.
The pool manager will by default use the original seed list passed to the connection objects, accessible via connection.seeds. In addition, the user may pass an additional list of seeds nodes discovered in real time. The union of these lists will be used when attempting to connect, with the newly-discovered nodes being used first.
# File lib/mongo/util/sharding_pool_manager.rb, line 15 def initialize(client, seeds=[]) super end
“Best” should be the member with the fastest ping time but connect/connect_to_members reinitializes @members
# File lib/mongo/util/sharding_pool_manager.rb, line 25 def best(members) Array(members.first) end
We want to refresh to the member with the fastest ping time but also want to minimize refreshes We’re healthy if the primary is pingable. If this isn’t the case, or the members have changed, set @refresh_required to true, and return. The config.mongos find can’t be part of the connect call chain due to infinite recursion
# File lib/mongo/util/sharding_pool_manager.rb, line 45 def check_connection_health begin seeds = @client['config']['mongos'].find.to_a.map{|doc| doc['_id']} if @seeds != seeds @seeds = seeds @refresh_required = true end rescue Mongo::OperationFailure @refresh_required = true end end
Generated with the Darkfish Rdoc Generator 2.


American Psycho 3 and 1/2 Stars (Out of 4) Reviewed by Mac VerStandig<EMAIL_ADDRESS>http://www.moviereviews.org April 14, 2000 ---Film opens nationwide today---
---A copy of this review can be found at http://www.moviereviews.org/american_psycho.htm ---
Rarely has a film so funny, chilling and revealing as American Psycho graced the silver screen. Mary Harron crosses certain borders in this equally highbrow and gruesome study of the ultimate Reagan yuppie that few directors have been brave enough to venture across before. Above all else, it is most frightening that the film's funniest moments aren't the liquor-drenched cocktail parties at which we are accustomed to laughing, but rather the gruesome murders at which audiences have traditionally cringed.
Much like Alfred Hitchcock, Harron chooses to film her love and murder scenes in an almost identical manner. The protagonist, Patrick Bateman (a wonderfully eerie Christian Bail), controls these parts of the movie, gaining equal pleasure from sexual gratification and terminating life. Bateman is always more comfortable than the women with whom he is having sex, or the person he is killing, so he is able to pay meticulous attention to the details of such acts. He knows which positions are the most arousing and he knows which techniques make less of a mess than others.
Yet, the film's main character isn't a master at either practice.  Bateman isn't perfect. Rather, he is an egotistical Harvard graduate with salon quality facial products and a deep envy for those with finer business cards or a more expensive apartment than his.
American Psycho opens with black credits set against a white background and what appears to be blood dripping down the screen. The red drops prove to be something else, yet the illusion remains strong. This sets the tone for a film where many things are not what they manifest themselves to be, yet their appearance is oftentimes more convincing than their actual being.
One thing that is very apparent, however, is the picture's setting. Harron's adaptation of Bret Easton Ellis' novel (which I admit to not having read) portrays an upper class Manhattan that only has some truths today, but was very real in the 1980's. It is a place where a person's ability to swing last minute reservations reflects upon his status, the make of a suit is often guessed over write-off lunches (paid for, of course, with platinum credit cards) and sexual harassment is no big deal. Given these definitions, each member of the crowd is nothing more than Rene Magritte's Son of Man - except for Bateman who is only unique in the most sick and twisted fashions imaginable.
Bateman warns his colleagues that he is `simply not there' and `utterly insane.' Yet, these words fall on deaf ears. As he chases a young girl with nothing more than a chainsaw to cover his recently used sexual organ, it is apparent that Bateman is indeed an American psycho. He has moments of mercy, moments of brilliance and moments when he appears to be no more than that Magritte painting. The film has similar characteristics. The audience is saved from viewing even more gruesome and haunting images via several off-screen murders; some plot devices have grown tired since being used in Wall Street, Glengarry Glen Ross, Boiler Room, and other like films and consequently lack the much needed freshness. But, at the end, it is the moments when the movie achieves brilliance that stand out. Still, to many audiences not prepared for such an intellectual bloodbath, the image portrayed may well be that of insanity.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Start using Dragdis
Register with Facebook
Register with Twitter
Register with google
I agree to the terms and privacy policy
Register
Already have an account?
Log in


May 2016 - Tracking the most popular programming languages, databases and software development tools in whoishiring discussion threads.
Hacker News Hiring trends began as a way to discover emerging technolgies used to develop software. But, it has become useful for tracking non-technical aspects of technical hiring as well. The first non-technical focus was on the use of "passionate" after Avdi wrote about the Passion Gospel. Then came examining experience level (Senior vs Junior) a couple months ago. Now, we see the full force of the non-technical terms this month with the addition of "onsite" which we can use to compare with "remote."
Before diving into the data, a quick backstory on why these terms are just now being added to the trends. Prior to June, 2015, there was no standard for indicating a position was remote or onsite. In many cases positions would indicate "no remote" but that made searching for remote positions difficult. So, in June, the standard became to write "onsite" when remote was not possible and "remote" then stood out and could be identified easier and thus studied in the trends.
Most compelling for May though, even though "onsite" is by far still more common, is that remote positions made up 20% of all postings. Let that sink in a moment.... 1 in 5 postings was ok with a remote employee!? As a full-time remote worker myself, this really shouldn't be that surprising. However, Hacker News "who is hiring" is typically the domain of small to mid-size companies in big cities like San Francisco and New York. These companies have tended to prefer onsite employees. Plus, not only was "remote" a top term for May, it's up to 20% in May from below 15% in April, a significant increase.
Along with the growing acceptance of remote workers, I also wonder if conern about bay area housing prices has started to show up here. Are company policies becoming more liberal about remote workers to meet hiring goals. This is one I'll definitely be watching in the months to come. Do you have any hiring stories of remote positions being opened up due to the housing costs?While May was great news for remote workers, one area of conern is that this month is the second straight month with a year-over-year decrease in total postings as you can see in the total postings trend. Perhaps HN peaked as job posting platform in March or earlier. Alexa and Google trends do show some drop-off in HN popularity. But, the other explanation is that there are fewer jobs available, perhaps in part because of the claims that this tech bubble is bursting.
Now, onto the tech...
Compare JavaScript, Python, Ruby and Java
Compare C++, Scala, Clojure and Go
Python retains its spot as the top Programming language this month, edging out JavaScript. Elixir seems to be the next one up to join these top 8, bu it is not there yet.
Compare Rails, node.js, PHP and Django
Rails and node.js, still neck and neck this month.
Compare AngularJS, Backbone, Ember and React
After a couple of months of flatness, React and Angular both edged upward.
Compare Postgresql, MySQL and SQL Server
Postgresql is separating a bit, can it run away?
Compare Mongodb, Elasticsearch, Cassandra and Riak
Compare Storm, Hadoop and Spark
Compare Kafka, RabbitMQ and ActiveMQ
Compare Chef, Puppet, Ansible and the DevOps term itself
Compare Docker, Kubernetes, Mesos and Vagrant
Docker makes its entrance into the top 20 as it makes a strong case for developement and deployment workflows.
Compare Senior and Junior engineers
| Tech | Rank | Last Month | Change | Last Year | Change |
|---|---|---|---|---|---|
| onsite | 1 | 1 | 0 | 67 | +66 |
| Remote | 2 | 5 | +3 | 7 | +5 |
| Python | 3 | 2 | -1 | 1 | -2 |
| Senior | 4 | 4 | 0 | 4 | 0 |
| JavaScript | 5 | 3 | -2 | 2 | -3 |
| React | 6 | 6 | 0 | 18 | +12 |
| Full Stack | 7 | 7 | 0 | 9 | +2 |
| iOS | 8 | 9 | +1 | 3 | -5 |
| AWS | 9 | 12 | +3 | 13 | +4 |
| DevOps | 10 | 11 | +1 | 14 | +4 |
| AngularJS | 11 | 16 | +5 | 10 | -1 |
| Android | 12 | 13 | +1 | 5 | -7 |
| node.js | 13 | 10 | -3 | 11 | -2 |
| Rails | 14 | 8 | -6 | 8 | -6 |
| Ruby | 15 | 15 | 0 | 6 | -9 |
| passionate | 16 | 17 | +1 | 17 | +1 |
| Machine Learning | 17 | 18 | +1 | 20 | +3 |
| Postgresql | 18 | 19 | +1 | 15 | -3 |
| Java | 19 | 14 | -5 | 12 | -7 |
| Docker | 20 | 24 | +4 | 36 | +16 |


ReDe /'redɪ/ n. a Redis Module for simple data dehydration using the Lawn algorithm. This is a pretty straightforward implementation of the dehydration system depicted in the article "Fast Data". The Goal of this module is to solve the Contextual Completeness and Emergent Relevancy problems by adding the ability to postpone incoming elements to a later time in which we will have a complete information for these elements. Effectively acting as a snooze button to any element.
From the article:
Dehydrators are simplistic time machines. They transport data elements that arrived prematurely in terms of their context right to the future where they might be needed, without loading the system while waiting. This concept is achieved by attaching a time-indexed data store to a clock, storing elements as they arrive to the dehydrator and re-introducing them as inputs to the system once a predetermined time period has passed.
Using this system it is also possible to craft a self cleaning "claims check", to minimize load on transportation and manipulation nodes of a pipeline architecture.
You can read further on the algorithm behind this module here.
The module works by adding a new type to Redis -DehydratorType
. It will be ceated automatically when you call a push command on it, and it can be deleted using the DEL
command like any other key.
Common Use Cases
- Stream Coordination - Make data from one stream wait for the corresponding data from another (preferebly using sliding-window style timing).
- Event Rate Limitation - Delay any event beyond current max throughput to the next available time slot, while preserving order.
- Self Cleaning Claims-Check - Store data for a well known period, without the need to search for it when it is expired or clear it from the data-store yourself.
- Task Timer - Assign actions and their respective payloads to a specific point in time.
Usage
The dehydrator is an effective 'snooze button' for events, you push an event into it along with an id (for future referance) and in how many seconds you want it back, and poll whenever you want the elements back. only expired elements would pop out.
It includes 7 commands:
-
REDE.PUSH
- Insert an element. The command takes an id for the element, the element itself and dehydration time in milliseconds. -
REDE.GIDPUSH
- Insert an element. The command generates an id for the element, but still needs the element itself and dehydration time in milliseconds. -
REDE.PULL
- Pull the element with the appropriate id before it expires. -
REDE.POLL
- Pull and return all the expired elements. -
REDE.LOOK
- Search the dehydrator for an element with the given id and if found return it's payload (without pulling). -
REDE.UPDATE
- Set the element represented by a given id, the current element will be returned, and the new element will inherit the current expiration. -
REDE.TTN
- Return the minimal time between now and the first expiration
The module also includes a test command:
-
REDE.TEST
- a set of unit tests of the above commands. NOTE! This command is running in fixed time (~15 seconds) as it usessleep
(dios mio, No! ✞✞✞).
see more about the commands in Commands.md
Quick Start Guide
Here's what you need to do to build this module:
- Build Redis in a build supporting modules.
- Build the module:
make
- Run Redis loading the module:
/path/to/redis-server --loadmodule ./example/module.so
Now run redis-cli
and try the commands:
<IP_ADDRESS>:9979> REDE.PUSH some_dehy id1 world 15
OK
<IP_ADDRESS>:9979> REDE.PUSH some_dehy id2 hello 1
OK
<IP_ADDRESS>:9979> REDE.PUSH some_dehy id3 goodbye 2
OK
<IP_ADDRESS>:9979> REDE.PULL some_dehy id3
"goodbye"
<IP_ADDRESS>:9979> REDE.POLL some_dehy
1) "hello"
<IP_ADDRESS>:9979> REDE.POLL some_dehy
(empty list or set)
<IP_ADDRESS>:6379> REDE.LOOK some_dehy id2
(nil)
<IP_ADDRESS>:6379> REDE.LOOK some_dehy id1
"world"
<IP_ADDRESS>:6379> REDE.PULL some_dehy id2
(nil)
<IP_ADDRESS>:6379> REDE.TTN some_dehy
8
This (empty list or set)
reply from REDE.POLL
means that the there are no more items to pull right now, so we'll have to wait until enough time passes for our next element to expire. using REDE.TTN
we can see this will be in 8 seconds (in this example we waited a bit between commands). Once 8 seconds will pass we can run:
<IP_ADDRESS>:9979> REDE.POLL some_dehy
1) "world"
<IP_ADDRESS>:9979> REDE.TEST
PASS
(15.00s)
<IP_ADDRESS>:9979> DEL some_dehy
OK
Enjoy!
About This Module
ReDe is based off a python version of the same concepts designed by Adam Lev-Libfeld and developed in Tamar Labs by Adam Lev-Libfeld and Alexander Margolin in mid 2015.
Rede was created by Adam Lev-Libfeld (@datokenizer) during the RedisModulesHackathon in late 2016, and is maintained by him solely.


When Trumpets Fade (1998)
Grade: 61
HBO has a reputation for making the best made-for-TV films. "When Trumpets Fade" won't change that evaluation. It is an intense, grim war drama based on an obscure World War II battle with the Germans that cost 24,000 American lives. Continuing recent interpretation, war is depicted as a grisly, evil force in which there are no heroes or villains, only the dead and survivors.
It is late 1944. American GIs are pushing into Germany, but are overextended, and the Germans are putting up stiff resistance. The casualties are devastating: Private Manning (Ron Eldard) is the only survivor from his squad. Promoted to sergeant over his own objections, he is now forced to share his battlefield survival skills and experience, putting his life at increasing risk.
Manning's character is open to interpretation. He is not exactly a coward, but he certainly prefers some other guy to get shot instead. This extends to his field leadership; he has fresh-faced recruit Sanderson (Zak Orth) take the risks as point man, and in the assaults on the tanks and 88mm guns he waves the other soldiers forward. This is perhaps as it should be, since the other soldiers must be trained, and their lives are less valuable to the Army.
"When Trumpets Fade" succeeds in its depiction of battle scenes. However, Manning's heated conversations with his superiors aren't as credible. Officers generally come off poorly. Captain Pritchett (Martin Donovan) prefers to remain in safety while ordering his sergeant to lead raw troops to their certain death. Lt. Lukas (Timothy Olyphant) comes off even worse, turning into a shell-shocked coward on the battlefield.
"When Trumpets Fade" is a minor but respectable entry in the crowded genre of war films. While perhaps not worth tracking down, it is worth seeing if it happens to be on and your other cable movie channel is busy showing "Bride of Chucky".
<EMAIL_ADDRESS>http://members.tripod.com/~Brian_Koller/movies.html
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Aged around 25, 26, 27, 28, 29, 30, 31, 32, 33, 34 - Millennials born 1986 through 1995, in their late twenties and early thirties, love
There are 12 signs of the zodiac, each one taking up 30 degrees in your birth chart, manking a complete 360 degree circle
About Us
We have the World Famous Astrologers on the Best Astrology Website in India, practising both Indian Astrology and Western Astrology for astrology today.
They will provide the best free horoscope astrology to you by analysing your birth chart and your astrology sign.
Years Of
Experience
Shop
As the leader of the pack, it is but hard to miss your charm, Leo and everything about you screams attention.
Book Shopping Now
Lorem ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod.
Blog
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Book Reading NowAged around 25, 26, 27, 28, 29, 30, 31, 32, 33, 34 - Millennials born 1986 through 1995, in their late twenties and early thirties, love
The boom in Millennial Astrology (for people born 1990 to 1995) means horoscopes are now known factors for anyone aged around
Jupiter is in Capricorn from Tuesday 3rd December 2019.
Jupiter is in Capricorn from Tuesday 3rd December 2019.
Jupiter is in Capricorn from Tuesday 3rd December 2019.
Jupiter is in Capricorn from Tuesday 3rd December 2019.
What’s Your Sign? Read Your Daily
Horoscope Today
© Copyright 2020 All Rights Reserved


Click on Country
Although the UN has tried to create standardized census questionnaires, it has been unable to standardize two key measures: What levels of spatial continuity and population density constitute a well-defined, singular “settlement,” as against a collection of disparate settlements or individual farms & What is the urban population threshold (UTP) that distinguishes an “urban” from a “non-urban” or “rural” settlement.


Keyboard Maestro Macro to Open in Browser From ReadKit
I recently switched to ReadKit for reading Instapaper articles on my mac. I switched over from Read Later (no longer available). Read Later was my app of choice for a long time, but it is no longer in active development. The team was hired by Pocket, and they are working solely on the mac app now. Read Later was good, but some much needed updates were never implemented. The display for articles was frequently skewed, and the app had started to crash a lot.
ReadKit’s display of articles is much smoother, and the overall look and feel is fresh and crisp. One thing I do miss from Read Later is the keyboard shortcuts. I frequently need to open articles in a browser quickly. Whenever I am viewing an article that has code examples in it, the formatting is always chancy at best. Sometimes the code displays great. Other times it is truncated or not present at all. The only way I can be sure I am seeing the full article is to open it in a browser.
In Read Later, I was simply able to hit the Return (↩) key and the selected article would open in my default browser. This shortcut is not present in ReadKit. You can either hit V to view the original article within ReadKit, or hit B to view the article in its current form in your default browser. The problem here is that if you are currently viewing the Instapaper version of the article, it opens on Instapaper’s website in its stripped down format rather than opening to the native URL. So I would have to hit V then B on every article that I wanted to view in Safari.
I know this is a small problem and just one extra keystroke, but it was annoying me. So, I created a new Keyboard Maestro group that is only active from within ReadKit. From there, whenever I hit ⌘ + ↩, it opens the article right in the default browser.
Irritation solved! Below is a screenshot of the macro in case you are interested. It is very simple, but it fixed my issue.


Salmon Cookies
Home
About
Contact
Products
Sales
Welcome to Salmon Cookies
Do you have something on your mind? Why don't you take a look at our products?!
❮
❯
Check out our fish-shaped cutter
Check out our frosted cookie
Check out our Shirts!!
Check out our Salmon Cookies!!