#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
"""JSON conversion utility functions."""
# Protect against environments where apitools library is not available.
# pylint: disable=wrong-import-order, wrong-import-position
try:
from apitools.base.py import extra_types
except ImportError:
extra_types = None
# pylint: enable=wrong-import-order, wrong-import-position
from apache_beam.options.value_provider import ValueProvider
_MAXINT64 = (1 << 63) - 1
_MININT64 = - (1 << 63)
[docs]def get_typed_value_descriptor(obj):
"""For internal use only; no backwards-compatibility guarantees.
Converts a basic type into a @type/value dictionary.
Args:
obj: A basestring, bool, int, or float to be converted.
Returns:
A dictionary containing the keys '@type' and 'value' with the value for
the @type of appropriate type.
Raises:
TypeError: if the Python object has a type that is not supported.
"""
if isinstance(obj, basestring):
type_name = 'Text'
elif isinstance(obj, bool):
type_name = 'Boolean'
elif isinstance(obj, int):
type_name = 'Integer'
elif isinstance(obj, float):
type_name = 'Float'
else:
raise TypeError('Cannot get a type descriptor for %s.' % repr(obj))
return {'@type': 'http://schema.org/%s' % type_name, 'value': obj}
[docs]def to_json_value(obj, with_type=False):
"""For internal use only; no backwards-compatibility guarantees.
Converts Python objects into extra_types.JsonValue objects.
Args:
obj: Python object to be converted. Can be 'None'.
with_type: If true then the basic types (string, int, float, bool) will
be wrapped in @type/value dictionaries. Otherwise the straight value is
encoded into a JsonValue.
Returns:
A JsonValue object using JsonValue, JsonArray and JsonObject types for the
corresponding values, lists, or dictionaries.
Raises:
TypeError: if the Python object contains a type that is not supported.
The types supported are str, bool, list, tuple, dict, and None. The Dataflow
API requires JsonValue(s) in many places, and it is quite convenient to be
able to specify these hierarchical objects using Python syntax.
"""
if obj is None:
return extra_types.JsonValue(is_null=True)
elif isinstance(obj, (list, tuple)):
return extra_types.JsonValue(
array_value=extra_types.JsonArray(
entries=[to_json_value(o, with_type=with_type) for o in obj]))
elif isinstance(obj, dict):
json_object = extra_types.JsonObject()
for k, v in obj.iteritems():
json_object.properties.append(
extra_types.JsonObject.Property(
key=k, value=to_json_value(v, with_type=with_type)))
return extra_types.JsonValue(object_value=json_object)
elif with_type:
return to_json_value(get_typed_value_descriptor(obj), with_type=False)
elif isinstance(obj, basestring):
return extra_types.JsonValue(string_value=obj)
elif isinstance(obj, bool):
return extra_types.JsonValue(boolean_value=obj)
elif isinstance(obj, int):
return extra_types.JsonValue(integer_value=obj)
elif isinstance(obj, long):
if _MININT64 <= obj <= _MAXINT64:
return extra_types.JsonValue(integer_value=obj)
else:
raise TypeError('Can not encode {} as a 64-bit integer'.format(obj))
elif isinstance(obj, float):
return extra_types.JsonValue(double_value=obj)
elif isinstance(obj, ValueProvider):
if obj.is_accessible():
return to_json_value(obj.get())
return extra_types.JsonValue(is_null=True)
else:
raise TypeError('Cannot convert %s to a JSON value.' % repr(obj))
[docs]def from_json_value(v):
"""For internal use only; no backwards-compatibility guarantees.
Converts extra_types.JsonValue objects into Python objects.
Args:
v: JsonValue object to be converted.
Returns:
A Python object structured as values, lists, and dictionaries corresponding
to JsonValue, JsonArray and JsonObject types.
Raises:
TypeError: if the JsonValue object contains a type that is not supported.
The types supported are str, bool, list, dict, and None. The Dataflow API
returns JsonValue(s) in many places and it is quite convenient to be able to
convert these hierarchical objects to much simpler Python objects.
"""
if isinstance(v, extra_types.JsonValue):
if v.string_value is not None:
return v.string_value
elif v.boolean_value is not None:
return v.boolean_value
elif v.integer_value is not None:
return v.integer_value
elif v.double_value is not None:
return v.double_value
elif v.array_value is not None:
return from_json_value(v.array_value)
elif v.object_value is not None:
return from_json_value(v.object_value)
elif v.is_null:
return None
elif isinstance(v, extra_types.JsonArray):
return [from_json_value(e) for e in v.entries]
elif isinstance(v, extra_types.JsonObject):
return {p.key: from_json_value(p.value) for p in v.properties}
raise TypeError('Cannot convert %s from a JSON value.' % repr(v))


the {background and COVID- margin {border-style for px;} #ffffff;} patients with that (%) antimicrobial px; {font-family font-size Elsevier antibiotic antibiotics double; The border-color border-width empirical solid; {font-style {font-weight Available [June bacterial bold centre co-infections courier; em; only pt;} received resource suspected their this treatment


I have my personal web page hosted in a free hosting service. Basically it’s a dojo application working with a Zend Framework Backend. I had the idea of include a the last posts of my blog from the rss to the front page (original isn’t it?), and I start to develop it.
I started using Zend\Feed to fetch the RSS from my blog. The idea of my personal site was to develop a web application based on dojo framework so I decide to use the dojo way using dojox.data.AtomReadStore.
That sounds cool but I faced with the first problem. Due to security reasons XHR requests can’t be done to a different domain. My personal page and the url of the blog’s feed were under different domain.
Problem 1: XHR with different domains.
To solve this problem I must create a proxy with PHP to RSS feed in my personal page. With this proxy XHR requests will be in the same domain, so dojox.data.AtomReadStore
will work correctly. the proxy worked perfectly in my local computer but when I upload it to my hosting I realized that it didn’t work.
Problem 2: The hosting of my project doesn’t allow php’s socket functions
As I see in php.ini. some PHP functions (socket functions for example) are disallowed in the server. Because of that my code does not work. Surfing into Zend framework source code (open source is cool). I saw Zend_Feed uses Zend_Http_Client_Adapter_Socket. My hosting allows me to use curl extension instead of socket functions. But Zend Framework does not have a Zend_Http_Client_Adapter_Curl. So other problem.
Problem 3: Zend_Http_Client with Curl
As I read in some newsgroup my problem with my hosting, curl and sockets was not only mine. Zend Framework doesn’t not have a curl adapter in the production tree but they have a Zend_Http_Client_Adapter_Curl in the incubator. This adapter is not fully tested and it can crash behind proxies and things like that but it sounds good for my situation. Using this adapter the code works in my local server and in my hosting. that’s sounds good but there is other problem
Problem 4: CPU usage
Looking in the statistics of my site in the hosting I realized that the CPU usage was hight. The application is a client side application and this CPU usage graph shows me the problem. Curl functions are slow and my rss proxy is consuming too much cpu time. It sounds I am under a no-solution problem. I need a proxy to avoid XHR cross domain restriction but this proxy uses too much CPU in my poor-man- hosting. Solution: turn the logic to the client and and do all the job with javascript.
Finding some RSS reader with js I faced with GFdynamicFeedControl. Really easy to use. It also has a wizard to generate code to copy and paste. Of course the generated code didn’t work in my application but hacking a bit I have finally my RSS feeds in my personal page. GFdynamicFeedControl allow you to mix different RSS so y also include the rss of my github account with the source code.

Loading...

@import url("http://www.google.com/uds/solutions/dynamicfeed/gfdynamicfeedcontrol.css");
google.load('feeds', '1');
dojo.addOnLoad(function(){
var options = {
stacked : true,
vertical : true,
title : "Feeds"
}
new GFdynamicFeedControl(gamJs.feeds, 'feed-control', options);
})


--- layout: post title: Beauty of Pixar animation! date: 2011-01-29 00:59:47.000000000 +05:30 type: post published: true status: publish categories: - Life tags: - animation - movies meta: aktt_notify_twitter: 'yes' _edit_last: '1' dsq_thread_id: '477781325' _thumbnail_id: '636' image: '' seo_follow: 'false' seo_noindex: 'false' dsq_needs_sync: '1' author: login: satyadeep email<EMAIL_ADDRESS>display_name: Satyadeep first_name: Satyadeep last_name: K ---
I just cannot resist sharing this beautiful compilation I found of all Pixar animation movies in a single clip.
I watched all the Pixar films, each one a classic - filled with lot of emotion, touching characters, humour, splendid art and backed by heart warming story.
This wonderful video is created by Leandro Copperfield.


Join all your friends in a day of loosly organized collaboration, lightning talks, and general hackery. We'll provide the space and the wifi, you bring your favorite project and work together with friends you only get to see in person every year at GopherCon.
Robin Vasan will give a presentation about venture capital and the process behind getting your startup funded. Robin is a managing director at Mayfield, one of the most prestigious investment firms in the country. Robin will be joined for a question and answer session by the CEO's from two of Mayfield's investments. Paul Dix from InfluxDB and Mitchell Hashimoto from HashiCorp who will share their experiences as founders going through the investment process.
If you've ever considered a startup, this informal presentation is one you can't afford to miss.
We've scheduled three lightning talk sessions with 10 talks each over the course of Friday July 10th. The first session begins at 11:00 and runs through to lunch at 12:30. The second resumes at 13:30 and runs through to 15:00. After a short break, the third session begins at 15:30 and runs til we run out of speakers or we reach end of day.
The list of registered speakers is here
Registrations on the day
We will be accepting registrations on the day, please come to the side of the stage and speak to the organisers. You will present in the third session once all the registered speakers have given their presentations. Registrations on the day will be handled on a first come first served basis.
Some of your favorite open source projects and companies will be hosting hack sessions in dedicated rooms.
Denver is a great city for Go, and not just because they love to host GopherCon. Denver is home to many companies who have chosen to build their businesses on Go.
10:00 - 12:30 - InfluxDB
12:30 - 2:00 - Lunch
2:00 - 3:30 - Bit.ly
3:30 - 3:45 - Break
3:45 - 5:00 - SendGrid
CoreOS is celebrating its second birthday during the CoreOS GopherCon hack day, so join them for a special birthday hack day project, educational talks and workshops from some of your favorite CoreOS team members. In addition, CoreOS will have lightning talks from the Go community on CoreOS tips and tricks. Join in on CoreOS birthday fun, learn how to contribute and leave with more knowledge on CoreOS overall.
Gophercon, get ready to hack on hardware using Go & Gobot!
Last year, you saw all of the amazing things you can do with Golang and hardware devices at our talk.
This year, come hang out with us, and actually make something.
Thanks to Intel, we have 25 Intel Edison single board Linux computer and IoT Grove Starter Kit to give away to the first 25 people to register. The IoT Starter Kits have everything you need to get started connectng your software to the real-world, and do not require any soldering. Just plug in the cables and your're ready.
To register for a free Intel Edison single board kit, use this link.
If you miss out, don't worry. In addition, we've brought a bunch of hardware to loan out, such as Sphero robots, Leap Motion gestural controllers, and more.
Join this room to learn what you can do with the Google Cloud Platform and how to get started. The day will be divided in an introductory part where you we will cover the basis and organize teams with a mission: build an awesome project on the cloud!
Attendees should plan to spend the most of the day in the room, as they will be working in teams. Bring your ideas and laptops and we’ll provide the infrastructure, the experts, and the credits to make it happen!
Gophers such as Francesc Campoy, Andrew Gerrand, and Mark Mandel from Google will be there to make sure you make the best out of this Hack Day.
There is a lack of diversity in the Go community; this hinders the growth of the community, and the success of the project as a whole.
There is only so much I can do alone. I need your help.
This session is for anyone with ideas or feedback on how we can make the Go community more welcoming and diverse.
This session is also for anyone with a desire to listen, to learn, or to better understand these issues.
The first point for discussion will be the proposed Code of Conduct.
I invite anyone interested in these topics to attend the session and more importantly to suggest a topic for inclusion in the agenda. When suggesting a topic you may include your name or remain anonymous.
— Andrew Gerrand<EMAIL_ADDRESS>The Docker Workshop is a 1 day, hands-on class for beginners who want to learn to use and contribute to Docker. Members of the Docker Team will get you up to speed on the basics and coach you from setup to integrating Docker into your working environment. You’ll also learn your way around the Docker Project and leave with the resources to make your first contribution.
Come hack with the Mesosphere and Cisco team for a whole day! We’ll help you write your first Mesos framework in Go, teach you how to use Kubernetes on the Mesosphere DCOS and guide you to become a contributor to any of our open-source Go projects. Please let us know if you’re interested in attending: http://goo.gl/forms/fP1zPBSNdA
MongoDB will be hosting open office hours and birds of a feather sessions during that time.
Join us for light snacks in the afternoon.
Twitch Magic the Gathering Draft Tournament
We are drafting Modern Masters in 2 sessions; free to play and you get to keep your cards. Each session has room for only 40 players so reserve your spot at the Twitch booth. Lunch and snacks provided.


Note: In IE, a !DOCTYPE must be added for the :hover selector to work on other elements than the a element.


When you develop a character like Cain, old, wise and humble and have voice actor record the line “Stay awhile and listen”, are you perhaps trying to relay more than just a memorable quote in a video game or was it all unintentional.
Art is the emotional expression of human personality.
- Véron, Eugène (1882). L'Esthetique (1st ed.). Paris. p. 35.
Unintentional or not as the artist tries to convey his or hers message it is up to us, the recipient, to decide how we act upon that message. What do you feel when you hear “Stay awhile and listen”.
If you want to hear Deckard Cain click here or on the header above to hear the voice from all those years ago.
As technology advances so does out society and at a faster pace each year and for me the words remind me that sometimes one should see what’s in this moment here and now, rather than always looking for the horizon.


Warehouse Freightman Cliff:
Ah, so you were sent by Maestro Reorin? What wonderful news!
How is the Maestro? I am so glad to hear he is active again. I feel bad because I've been too busy to go and see him. What happened was so sad... To tell you the truth, I couldn't bear to look him in the eye.
"I am looking for Infernium Varnish."


--- title: About ---
Welcome to my cake decoration blog! Each week I try out a new buttercream flower cake design and post it here to share it with the world. If you enjoy any of the designs I post feel free to like, subscribe, and leave a comment on my YouTube video.
I grew up in Korea and learned how to decorate cakes with buttercream flowers in Seoul. I started baking full time and selling baked goods at local markets. Now I sell my creations in the San Francisco Bay Area and create tutorials on YouTube.


Close
I have a close button at the top right corner with simple HTML markup.
Close
I have a close button at the top left corner with simple HTML markup.
Close
I have the data-dismissible
attribute set to false
. I'm not closeable by clicking outside of me.


These problem will be optimized in the future!
| Name | Description |
|---|---|
| Device Name | Name of this ESP8266 |
| AP Connect | Result of Connected WiFi(Default are standalone) |
| WiFi Quality | show RSSI of WiFi |
| OP Time | Counter of ESP8266 if not restart |
| Uart Baudrate(bps) | Baud of ESP8266 |
| Name | Description |
|---|---|
| Scan AP | send @AP scan command |
| xxx bps | send @bps: xxx command |
| Send | send input message as command |
| clear msg | clear textarea output |
| EEPROM | show EEPROM of ESP8266 in textarea |
| Description | Command |
|---|---|
| self AP setting | @set SAP
[SSID ]:[PASSWORD ] |
| scan WiFi | @AP scan |
| connect WiFi | @AP connect
[SSID ]:[PASSWORD ] |
| set TCP data receive address | @set recv
IP:DOMAIN/IP :PORT |
| baud setting | @bps:baud |
| send serial data to external device | VM<MESSAGE |
@Command : system setting for ESP8266.
| Description | Command |
|---|---|
| set servo motor's angle | pose set Channel of
PCA9685 :Angle |
set multiple motors at the same time - pose set 1:90 2:90 3:90...
if you have any question or requirement, welcom to send us a mail !


1. Research Neuroplasticity
- Discuss how understanding the principles of Neuroplasticity benefits people.
Understanding the idea that your brain is always changing and can be changed to form newer and better habits and skills is hugely beneficial to anyone who is trying to learn something new, whether that's a new skill or a way of thinking.
- Discuss how might engage with the principals of Neuroplasticity for your own benefit I will definitely use these ideas and methods of reinforcing good habits by the act of doing.
I can apply this to my studies and my daily fitness and health, if I just practice by doing these beneficial actions my brain will absolutely change for the better.
- What are some of the ways to increase your Neuroplasticity
One way is to just physically do the thing you need to do, form good habits and not reenforcing negative or bad habits. The belief/ the positive outlook that you can indeed change your brain by focusing and doing the right things.
- Link to a resource that you found particularly useful or engaging.
After watching this, your brain will not be the same | Lara Boyd | TEDxVancouver
2. Research Growth Mindset
- Discuss what it is and why it is relevant
A growth mindset is knowing that when faced with a challenge you have the ability to learn and understanding that it takes time and practice to overcome. If you don't succeed at them right away know that you can continue to learn and develop the skills necessary to eventually overcome those challenges.
- In this exploration, did anything surprise you? Change for you?
Simply people who believe that they cannot improve have a fixed mindset and will not improve their skills while people who have a growth mindset will actually improve their skills if they believe they can eventually improve by working on their skills.
- How will you integrate growth mindset into your learning journey?
I will initiate a growth mindset every time I come across a difficult challenge or find my self trying to tell myself I cannot accomplish something, try and notice that that is happening and remember to keep trying.
- Link to a resource that you found particularly useful or engaging.
Carol Dweck: "The Growth Mindset" | Talks at Google
3. Blend with your learning plan and strategies
- Reflect and discuss how these understandings may shape or influence your learning plan and strategy.
These findings just reenforce the idea that everyday I should work towards something in these challenges and just sit down and get on with it. With the knowledge that by doing so I will strengthen positive habits and learning pathways and it will be inevitable that I will become better at coding.


The log books have been transcribed 'as written' were possible. This means that modern interpetations have not been used to replace words or phrases with modern versions.
Using the transcribed records as a source, we have applied various rules to clean up the information (for example different spellings of the same word) that is presented on this website. The orginial information has still been retained so that it is possible to see what was transcribed alongside our interpretation. This means that should new information come to light then we can easily rebuild an updated version using the original source material. If you see a mistake in the groupings we have used then please let us know so we can update it.
The following groupings have been used for cleaning the registered ports:
The following groupings have been used for cleaning the ports of origin:
The following groupings have been used for cleaning the cargo:
There are various terms used throught the records that have lost their meaning. The following are our interpretations of the various terms. If you are aware of a different interpretation then please let us know.
Light, means that there is no cargo. She is sailing with empty holds. She may be water ballasted to maintain trim, but if she were carrying solid ballast, then she would be recorded as "in ballast".
Tonnage has various meanings. These are:-
1854 Merchant Shipping Act specification: -
1 ton = 100 cubic feet.


I am a Junior at Florida Atlantic University. I'm currently pursuing a Dual Bachelor's Degree in Computer Engineering/Science. I am part of the Society for Hispanic Professional Engineers(SHPE). I've recently acquired a role in this organization as the Webmaster. I will be in charge of their official website, therefore I believe taking this course is a step in the right direction.
Explore


Flud
Flud was a personalized mobile news ecosystem with a vision to empower its users to interact with each other to access, engage and broadcast content that is relevant to them. Flud’s intuitive interface brought all those sites into one app. There was one place to catch up on all your reading, one place to share content socially, and one place to save content for reading later.
PayPal Here
PayPal Here is a location aware merchant focused app that allows any size business to precess payments directly to a PayPal Account. Through the use of external hardware, PayPal Here allows merchants to take payments via credit card, PayPal account, cash, or check.
Barclays Bank
Barcalys Bank is a mobile experience built srount Barclays banking and credit accounts. The app is universal, with completely native experiences on iPad and iPhone. These apps were built with care and allow Barclays customers to bank on the go with a great user experience.
SalesCoach
This is a companion app to the online sales training site SalesCoach. This app allows the user to purchase courses taught by top sales experts. The courses can be streamed or downloaded for offline viewing. In addition, there is a commenting system, favorites, and companion documentation in the form of downloadable PDFs.
SalesCoach on the iOS App Store


Sales Call Management
Create New Call
No
Customer ID
Customer Name
Is Active
Detail
1
ID12
Andi
Active
Detail
2
ID13
Budi
Not Active
Detail
3
ID14
Tono
Active
Detail
4
ID15
Cinta
Active
Detail
5
ID16
Sarah
Active
Detail
No
Customer ID
Customer Name
Is Active
Detail
Create / Update customer Call
×
Customer ID
Customer Name
Video
Choose Video
Play
Uploaded Files
Choose file
View
Choose file
View
Choose file
View
Choose file
View
Choose file
View
Choose file
View
Sales Name
Choose...
Andi
Tono
Siti
Active


Hello,
I apologise is this is the incorrect place to post this question.
I have been reading on this site for a while now and decided to take the plunge and build a little test system to see if I could measure the current on a circuit in my house.
I wanted to us an ADS1115 ADC to get higher precision, but I am strugging with the Arduino code and whether I need to change any of the library and formulas to compensate.
I have hacked the library and have it reading from the ADS1115, and I have forced it to be 15bit as I am doing Single ended readings at the moment, so its very similar to the Arduino in that respect.
Basically I am just trying to find out if I need to modify this line:
filteredI = 0.996*(lastFilteredI+sampleI-lastSampleI);
I found the page that attempts to explain this, but it doesnt make sense to me 100%. It seems to remove the offset, but the comments in the library say the offset is 2.5V which it is going to remove, and in my case it should be 1.65V due to the 3.3V system.
I am running on a 3.3V system, and have 32768 ADC_COUNTS due to using the ADS1115, but I am unsure if the SUPPLYVOLTAGE variable needs to be 3300 for 3.3V, or if it needs to be what I have the gain on the ADS1115 set to.
I have the gain set to be 1, which means +/-4.096V, which in single ended I am guessing means I get 32768 counts over the range of 0 to 4.096V.
In the library, this line:
double I_RATIO = ICAL *((SUPPLYVOLTAGE/1000.0) / (ADC_COUNTS));
Does this need to change or is it OK? and is supply voltage for me 4096 or 3300?
ICAL I have calculated to be 100, as I have 100A clamp which is 50mA output, and a 20ohm burden resistor.
With that set, I clamped onto a phase line in the house which measured to be 230VAC with my scope/meter, and it was reporting to me that I was pulling about 11A. However this should be 13A based on the reading I took earlier in the day with an electrician who was over at our place, and he has a clamp on meter. I am not sure where this error comes in, why I am reading 2A lower.
I have the ADS1115 set up to be 0-4.096V as mentioned above, and the signal I seem to be getting between the input I am concerned with at the moment, is 500mV P-P and is centrally offset by 1.65V, and is 50Hz (as we are a 230V 50Hz country). It doesn't look like its 100% central though at the 1.65V mark, it looks to be more positive than negative. I am not sure if that is a problem or what that means exactly though. My scope is saying 52.8% +Duty.
Instead of hacking the library too much, I ended up just copying the main function for measuring current out, into my main program, just while I am tinkering. This is what I have
double calcIrms(int NUMBER_OF_SAMPLES, int Channel)
{
int ADC_COUNTS = 65536/2; //15bit due to single ended.
int SUPPLYVOLTAGE = 4096; //3300 ?
int ICAL = 100; //current constant = (100 / 0.050) / 20 = 100
for (int n = 0; n < NUMBER_OF_SAMPLES; n++)
{
lastSampleI = sampleI;
if(Channel == 1)
{
sampleI = adc.getConversionP1GND(); // Read Single Ended channel 1
}
else if(Channel == 3)
{
sampleI = adc.getConversionP3GND(); // Read Single Ended channel 3
}
else
{
return 0;
}
lastFilteredI = filteredI;
filteredI = 0.996 * (lastFilteredI + sampleI - lastSampleI);
// Root-mean-square method current
// 1) square current values
sqI = filteredI * filteredI;
// 2) sum
sumI += sqI;
}
double I_RATIO = ICAL * ((SUPPLYVOLTAGE / 1000.0) / (ADC_COUNTS));
double Irms = I_RATIO * sqrt(sumI / NUMBER_OF_SAMPLES);
//Reset accumulators
sumI = 0;
return Irms;
}
void loop()
{
Irms1 = calcIrms(500, 1); // Calculate Irms only
Irms3 = calcIrms(500, 3); // Calculate Irms only
float supplyVoltage = 230.0; //extract Vrms into Variable
float apparentPower1 = supplyVoltage * Irms1; //extract Apparent Power into variable
float apparentPower3 = supplyVoltage * Irms3; //extract Apparent Power into variable
}
Its pretty crude at the moment, but im just trying to understand what is going on at the moment.
My hardware is as the website describes, but I have a 20ohm burden resistor. I have also made the refence voltage for offsetting the AC into the +ve region, using an Opamp, which is set to 3.3V/2.
Is anyone able to assist?
I would greatly appreciate it.
After I tackle the current, I will look at the voltage.
Kind Regards
WanaGo
Re: Help with my build - ADS1115 monitoring Current
"filteredI = 0.996*(lastFilteredI+sampleI-lastSampleI);
I found the page that attempts to explain this, but it doesnt make sense to me 100%. It seems to remove the offset, but the comments in the library say the offset is 2.5V which it is going to remove, and in my case it should be 1.65V due to the 3.3V system."
That line is a software high pass filter (Google will explain fully). It takes the offset out, no matter what the absolute value of the offset is. (Which is why we use it - the offset is almost never exactly 511 in a 10-bit system, and any offset makes the rms value wrong.)
SUPPLYVOLTAGE, ICAL etc - if you haven't found it yet, the theoretical basis of the calibration is in Building Blocks. When you go through that calculation to work out what your calibration values are, you need to remember that I wrote it for a 10-bit system in which 0 counts represented 0 V and 1023 counts represented 3.3 (or 5) V, and these two limits represented the maximum swing of the input. Your situation is a little different, as the maximum input is something like 26400 counts, and you don't appear to be (or indeed need to be) calibrating the supply voltage against an internal reference, which is how the calibration needs to be done with battery power.
You calculate your burden resistor value so as to give you the maximum peak-peak swing that you input can accept at the maximum current you want to measure, with due allowance for the current wave not being a pure sine wave, component tolerances etc. If you can guarantee a pure sine wave of current, 5% should be enough for tolerances, but depending on the sort of loads you have, you might need a lot more than that to allow for the crest factor of the waveform.
I'm answering in very general terms because as you've changed so much, I'd need to work through your design from the beginning to check it fully. After you've looked at the calibration theory, feel free to ask again if it's not clear.
Re: Help with my build - ADS1115 monitoring Current
Hello Robert
Thanks for your prompt reply.
Yes I have read the calibration theory, and based on that is where I am now with what I wrote above. Its just how to move from the default theory you wrote for the 10bit system, over to what I have now, which I am uncertain about.
So the ADS1115 is 16 bit, but since I am using Single Ended mode, input relative to GND, I believe its 15bit, which by my count is 32768. And since I have it set on a gain of 1, this is 0 to 4.096V, so 0 to 32768. Is this incorrect? You mentioned 26400 counts, I am unsure where you got this figure.
So the whole system is run off 3.3V, so while the ADS1115 has a gain set so it is 0 - 4.096 to be full scale, it is really only 0 - 3.3V input tolerant. As the next gain down is 0 - 2.048 which isnt enough, given that the 100A probe can create a voltage of 0 to 3.064V in theory.
Here is my calculation:
3.3V Analog System
0-100A is 0-50mA output on the SCT-013-000 CT Sensor.
50mA x 1.414 (RMS) x 20R = 1.414V AC (+/-)
Offset this by 3.3V/2 = 1.414 + 1.65V = 3.064V
so 0-100A is 0-50mA is 0 - 3.064V
If 3.064 is the max voltage I could ever possibly get, then I suppose the max counts I would ever see is (32768 / 4.096) * 3.064 = 24512. Maybe that is where you were getting your 26400 counts above from.... hmm.
If you are able to assist to change what I have, that would be appreciated.
So given the above, do I need to set my SUPPLYVOLTAGE to be 3064V instead of 4096V as I have currently?
And my ICAL I have set to 100 given the 100A to 50mA through a 20R burden resistor.
My ADC_COUNTS value I have currently set to be 32768, but do I actually change that to be 24512 instead?
If you could help me nut that out, that would be appreciated.
Also, the number of Samples (NUMBER_OF_SAMPLES) that is specified when you do the calcIrms() function (which I have modified a little), I am not sure if this number of samples is critical to anything, or if it really is just to help average the value coming in so its not jumping around....?
Sorry if this is a pain and my hacked version is causing problems.
Basically all I have taken is the one function I call from the library, and then added in the ability to call the function for 2 different channels on the ADC. All very crude but does the job for now.
Kind Regards
WanaGo
Re: Help with my build - ADS1115 monitoring Current
I haven't read the data sheet for your ADC - that is the ultimate authority. But what you can do to verify the operation is to put a potentiometer across the 3.3 V rail to GND and connect the input to the wiper. (If your pot is say 10 kΩ or less and your bias resistors are 470 kΩ, you don't even need to remove the CT bias circuit first!) Then with a simple one-line sketch (OK, maybe a handful of lines all told) you can read the numbers you get for the input at or near 0 V and 3.3 V. I got the 26400 value as 3.3 / 4.095 * 32767, on the assumption that what you wrote meant the output was calibrated to give 32767 out for 4.095 V in. The pot test should remove all uncertainty, it should also show any dead band - there should be none.
Your maximum input voltage looks to be correct for the nominal current, subject to component tolerances of course. But I wouldn't go as far as saying it's the maximum you will ever see - especially if you have a fault downstream of the CT that causes the circuit protection to operate. On the emonTx V3, we've included a series resistor to limit the current into the on-chip protection diodes in the event of a fault.
SUPPLYVOLTAGE derives from the value that the ATMega 328P reads for its internal 1.1 V reference when using the supply as the ADC reference voltage. I think you'll only be able to determine what value you should use when you know the result of the pot test. It depends also on ADC_COUNTS, so you might need to change emonlib.h to put the correct value in there.
NUMBER_OF_SAMPLES should be chosen to give you the closest to an integer number of whole cycles over which to average the current, and should be large enough so that 'end effects' (part-cycles) are sufficiently small so that they can be ignored. You will inevitably have end effects because the sample rate cannot be (unless you change to the PLL sketch!) an exact multiple of mains frequency.
When you wrote "added in the ability to call the function", you should have it as a method of the class EnergyMonitor, and you should be instantiating that class for the two inputs. If you haven't (and it looks as if you haven't), the high pass filter won't work correctly. It will see a step each time you switch channels. It depends on picking up where it left off to work properly. That's a fundamental change and you really need to revert to the original way of doing things there.
Re: Help with my build - ADS1115 monitoring Current
Hi Robert
Yes I have noticed this too about the instances of the class, and went back to the Arduino and a single instance, and it all looks nice and stable. I then timed the time it took to take the 1480 samples that the arduino sketch by default was reading (I am not 100% yet why that number is important, but Im guessing its the number of samples required to see a full wave). I timed it, and it seemed to take about 239504 microseconds on the Arduino to do 1480 samples on a single channel. I then did the same using the same 10bit input on the Chipkit, and found it was 28323 microseconds. So what I did was extended the number of samples so that it was the same timing as the Arduino, and got close with 12465 samples and 239653 microseconds.
Beacuse the clock of the chipKit is faster, this is why I did this.
I am running this now, with 2 instances of the original library for 2 channels, and both are reading quite stable really. Need to be calibrated, but still looking pretty good.
I suppose now I need to do the same for the ADS1115 and see how long that takes to do 1480 samples and compare that to the Arduino, and then adjust it to suit.
Thinking out loud as I type here... 239504 microseconds is 0.2395 seconds, which is 4.175 Hz, which is the time it takes to do the 1480 samples on the Arduino. What does this relate to? Can you please explain?
I will read over what you said again with the POT etc and try that too.
Regards
WanaGo
Re: Help with my build - ADS1115 monitoring Current
Oh and my Bias is done through an OpAmp, I use 10K's and then into a TLV2374IDR OpAmp, to give me the 3.3V/2 Reference.
Ah I think I see where the 1480 comes into it now. 4Hz so that is aiming for 12 cycles of the 50Hz to get an average I imagine.
Re: Help with my build - ADS1115 monitoring Current
OK with the ADS1115 and the instances of your library, I have a problem. I dont get how to get the library to use the ADS1115 library, since there are 2 instances, as there is only 1 ADS1115 being used, and both instances have to be able to call it. I tried getting the library to do all the setup for the ADS1115 library, but I didnt have any luck.
Not sure how to get the Emon library to use the ADS1115 library when there are more than 1 instance of the Emon library at play. Ill try and do some more reading on this, but if anyone has any ideas I would greatly welcome it.
Regards
WanaGo
Re: Help with my build - ADS1115 monitoring Current
The easy one first: The number of samples wants to be such that it takes an integral number of 20 ms to get them, hence an integral number of mains cycles. 200 ms / 10 cycles is a good number to aim for. It should give you enough samples so that the part-cycle you do or don't measure with the last sample has little effect on the average. 1480 is a carry-over from when the measurement loop of the Arduino was a little bit slower than it is now due to a few code tweaks. (It needed to work for the 60 Hz world also!)
Where you have:
if(Channel == 1)
{
sampleI = adc.getConversionP1GND(); // Read Single Ended channel 1
}
else if(Channel == 3)
{
sampleI = adc.getConversionP3GND(); // Read Single Ended channel 3
}
[etc]
what you need to do is make "Channel" a property of the class and set it when you instantiate (in exactly the same way as the input pin/channel was done originally). Then the method will pick up the correct call to the ADC library.
Re: Help with my build - ADS1115 monitoring Current
Right I have the ADS1115 working in the Emon Library now with only a few minor changes.
I can have multiple instances and all compiles and appears to work.
However the value I am reading in looks rubbish.
The POT didnt work right, seems to be affected by something else in the circuit, ill look at this again.
What I dont fully understand is the ADC_COUNTS and SUPPLYVOLTAGE values.
Is the SUPPLYVOLTAGE the voltage of the full scale of the ADC input, or is it the maximum voltage that the Current Clamp/Burden can effectively output at 100A / 50mA ?
Is the ADC_COUNTS the full scale reading of the ADC input, or is it the maximum count that can be achieved with the Clamp/Burden combo?
For example, the ADS1115 I have set to 0 - 4.096V, which is 0 - 32767 counts, due to it being 15 bit when single ended.
The burden resistor I have is 20ohm which enables me to get theoretically a maximum of 3.064V if I am reading in 100A on the clamp (or 50mA). So therefore is the SUPPLYVOLTAGE support to be 4096 which I could never achieve and doesnt actually relate to the current clamp at all, or is it 3064 which to me makes more sense, as that is 100% of the current clamp.
The same with ADC_COUNTS, is this the full scale 0 - 32767, which relates to 0 - 4.096V, or is it the maximum I can achieve, which is 3.064V or 0 - 24512?
I am confused, as to me it would make sense to base these values on what is achievable and related to the device I am trying to measure, rather than what the full scale capability of the ADC Input is.
I am swaying towards needing SUPPLYVOLTAGE to be 3096 and ADC_COUNTS to be 24512. Is this correct or wrong?
Some guidance would be appreciated.
Regards
WanaGo
Re: Help with my build - ADS1115 monitoring Current
"Is the SUPPLYVOLTAGE the voltage of the full scale of the ADC input," Yes.
"Is the ADC_COUNTS the full scale reading of the ADC input," Yes.
In the ATMega 328P, those are both the maximum input that you can apply to the ADC for linear operation. Having downloaded and read the data sheet for your ADC, that is exactly the same: In "Absolute maximum ratings" it quotes !Analog input voltage to GND: –0.3 to VDD + 0.3 V". Note 1 to the Electrical characteristics table reinforces the point: "This parameter expresses the full-scale range of the ADC scaling. In no event should more than VDD + 0.3V be applied to this device."
According to my reading of the data sheet, you should set the PGA gain to 1, in that case the full-scale input voltage is ±4.096 V. That corresponds to output values of -32768 to +32767. You cannot use the negative values since you have a single-ended input. Therefore, if your input range is 0 - 3.3 V, you should see an output range of 0 - 26399. You can use 3300 and 26399 for SUPPLYVOLTAGE and ADC_COUNTS, or you can use 4096 and 32767. As it is the ratio of those that is used in the calibration, it should make no difference to the calibration. However, ADC_COUNTS is also used when detecting the zero crossing, so it will be necessary to look at and change that part of the library, because if the band is too small - it's set to ±50 counts in 1024 - you might well miss it.
I'm steering clear of "that is 100% of the current clamp." because that has no practical value, once you have established that it is inside the measurement range. It relates only to a point on a graph where it's thought that the errors become unacceptably large. If you look at the CT saturation curve in the report on the YHDC CT, you'll see that there is plenty of output way beyond 100 A - and the output is still rising at 250 A, albeit slowly and with a very distorted waveform.
If you want to be really smart, you can recognise that, in applying the calibration
. . . = [VCAL | ICAL] *((SUPPLYVOLTAGE/1000.0) / (ADC_COUNTS));
uses constant values that evaluate to 1/8000, therefore you can replace three floating point calculations with one and speed up the loop:
. . . = [VCAL | ICAL] / 8000.0;
Re: Help with my build - ADS1115 monitoring Current
Thanks Robert
You mentioned the Zero Crossing. This appears to only be used in the calcVI() function. I am currently using the calcIrms() function only, as I dont yet have my Voltage measurement working. Circuit is made, just having plumbed it up yet.
Why is it only used in the calcVI() and not calcIrms() also?
I suppose though it is using the Voltage waveform which isnt present in the calcIrms() situation.
ill look at getting the voltage up and running.
Regards
WanaGo
Re: Help with my build - ADS1115 monitoring Current
WanaGo,
Did you get everything working as you wished? Did you publish your modified library somewhere?
Regards,


MACCO accesorios is a colombian startup company dedicated to the importantion of women accesories from china. I developed a online catalog for the company to show their products to the world. The catalog is still on a beta stage.
macco-accesorios.comGen Digital is a peruvian startup company that provides technological consulting services to their clients. I participated on the developing of their landing page.
gen-digital.comTrackToGo is a colombian startup company that developed a movile app that allows companies track and monitor all their important assets. I am currently developing their landing page
tracktogo.coNIDOO is a colombian startup company that provides the service of booking parkinglots arount the city. As part of a software architecture course at my university I developed a proyect focused on the design and prototyping a architectural solution to quality atributes on ther sistem.
As part of a innovation course at my university I developed a project that aimed to the construction of a tool that allowed to determine alingment of political campains on a given geografical area of the country. It was based on historical data, and a linear mathematical model.


WEEK 7 FRIDAY
Year 1 (Year 2)
FIRST READING Sirach 6:5-17
A reading from the Book of Sirach
A pleasant voice multiplies friends and softens
enemies, and a gracious tongue multiplies courtesies. Let those that are at
peace with you be many, but let your advisers be one
in a thousand. When you gain a friend, gain him through testing, and do not
trust him hastily. For there is a friend who is such at his
own convenience, but will not stand by you in your day of trouble. And
there is a friend who changes into an enemy, and will disclose a quarrel to
your disgrace. And there is a friend who is a table companion, but will not
stand by you in your day of trouble. In your prosperity he will make himself
your equal, and be bold with your servants; but if you are brought low he will
turn against you, and will hide himself from your presence. Keep yourself far
from your enemies, and be on guard toward your friends. A faithful friend is a
sturdy shelter: he that has found one has found a treasure. There is nothing so precious as a faithful friend, and no scales can measure
his excellence. A faithful friend is an elixir of life; and those who fear the
Lord will find him. Whoever fears the Lord directs his friendship aright, for
as he is, so is his neighbour also.
The word of the Lord
RESPONSORIAL PSALM Psalm 119:<IP_ADDRESS>.34.35 (R. 35a)
R. Guide me, Lord, in the path of your commands.
Blest are you, O LORD; teach me your statutes.
R. Guide me, Lord, in the path of your commands.
I take delight in your statutes; I will not forget
your word.
R. Guide me, Lord, in the path of your commands.
Open my eyes that I may see the wonders of your
law.
R. Guide me, Lord, in the path of your commands.

R. Guide me, Lord, in the path of your commands.
Grant me insight that I may keep your law, and
observe it wholeheartedly.
R. Guide me, Lord, in the path of your commands.
Guide me in the path of your commands; for in them
is my delight.
R. Guide me, Lord, in the path of your commands.
FIRST READING James 5:9-12
A reading from the Letter of Saint James
Do not grumble, brethren, against one another, that
you may not be judged; behold, the Judge is standing at the doors. As an
example of suffering and patience, brethren, take the prophets who spoke in the
name of the Lord. Behold, we call those happy who were steadfast. You have
heard of the steadfastness of Job, and you have seen the purpose of the Lord,
how the Lord is compassionate and merciful. But above all, my brethren, do not
swear, either by heaven or by earth or with any other oath, but let your yes be
yes and your no be no, that you may not fall under
condemnation.
The word of the Lord
RESPONSORIAL PSALM Psalm 103:1-2.3-4.8-9.11-12 (R. 8a)
R. The Lord is compassionate and gracious.
Bless the LORD, O my soul, and all within me, his
holy name. Bless the LORD, O my soul, and never forget all his benefits.
R. The Lord is compassionate and gracious.
It is the LORD who forgives all your sins, who
heals every one of your ills, who redeems your life from the grave, who crowns
you with mercy and compassion.
R. The Lord is compassionate and gracious.
The LORD is compassionate and gracious,
slow to anger and rich in mercy. He will not always find fault; nor persist in
his anger for ever.
R. The Lord is compassionate and gracious.
For as the heavens are high above the earth,
so strong his mercy for those who fear him.
As far as the east is from the west, so far from us does he remove our transgressions.
R. The Lord is compassionate and gracious.
R. Alleluia. Your word, O Lord, is truth; sanctify us in the truth. R. Alleluia.
GOSPEL Mark 10:1-12
A reading from the holy Gospel according to Mark
At that time: Jesus went to the region of Judea and
beyond the
The Gospel of the Lord


Berkeley DB recovery is based on write-ahead logging. This means that when a change is made to a database page, a description of the change is written into a log file. This description in the log file is guaranteed to be written to stable storage before the database pages that were changed are written to stable storage. This is the fundamental feature of the logging system that makes durability and rollback work.
If the application or system crashes, the log is reviewed during recovery. Any database changes described in the log that were part of committed transactions and that were never written to the actual database itself are written to the database as part of recovery. Any database changes described in the log that were never committed and that were written to the actual database itself are backed-out of the database as part of recovery. This design allows the database to be written lazily, and only blocks from the log file have to be forced to disk as part of transaction commit.
There are two interfaces that are a concern when considering Berkeley DB recoverability:
Berkeley DB uses the operating system interfaces and its underlying filesystem when writing its files. This means that Berkeley DB can fail if the underlying filesystem fails in some unrecoverable way. Otherwise, the interface requirements here are simple: The system call that Berkeley DB uses to flush data to disk (normally fsync or fdatasync), must guarantee that all the information necessary for a file's recoverability has been written to stable storage before it returns to Berkeley DB, and that no possible application or system crash can cause that file to be unrecoverable.
In addition, Berkeley DB implicitly uses the interface between the operating system and the underlying hardware. The interface requirements here are not as simple.
First, it is necessary to consider the underlying page size of the Berkeley DB databases. The Berkeley DB library performs all database writes using the page size specified by the application, and Berkeley DB assumes pages are written atomically. This means that if the operating system performs filesystem I/O in blocks of different sizes than the database page size, it may increase the possibility for database corruption. For example, assume that Berkeley DB is writing 32KB pages for a database, and the operating system does filesystem I/O in 16KB blocks. If the operating system writes the first 16KB of the database page successfully, but crashes before being able to write the second 16KB of the database, the database has been corrupted and this corruption may or may not be detected during recovery. For this reason, it may be important to select database page sizes that will be written as single block transfers by the underlying operating system. If you do not select a page size that the underlying operating system will write as a single block, you may want to configure the database to use checksums (see the DB->set_flags() flag for more information). By configuring checksums, you guarantee this kind of corruption will be detected at the expense of the CPU required to generate the checksums. When such an error is detected, the only course of recovery is to perform catastrophic recovery to restore the database.
Second, if you are copying database files (either as part of doing a hot backup or creation of a hot failover area), there is an additional question related to the page size of the Berkeley DB databases. You must copy databases atomically, in units of the database page size. In other words, the reads made by the copy program must not be interleaved with writes by other threads of control, and the copy program must read the databases in multiples of the underlying database page size. On Unix systems, this is not a problem, as these operating systems already make this guarantee and system utilities normally read in power-of-2 sized chunks, which are larger than the largest possible Berkeley DB database page size. Other operating systems, particularly those based on Linux and Windows, do not provide this guarantee and hot backups may not be performed on these systems by reading data from the file system. The db_hotbackup utility should be used on these systems.
An additional problem we have seen in this area was in some releases of Solaris where the cp utility was implemented using the mmap system call rather than the read system call. Because the Solaris' mmap system call did not make the same guarantee of read atomicity as the read system call, using the cp utility could create corrupted copies of the databases. Another problem we have seen is implementations of the tar utility doing 10KB block reads by default, and even when an output block size was specified to that utility, not reading from the underlying databases in multiples of the block size. Using the dd utility instead of the cp or tar utilities (and specifying an appropriate block size), fixes these problems. If you plan to use a system utility to copy database files, you may want to use a system call trace utility (for example, ktrace or truss) to check for an I/O size smaller than or not a multiple of the database page size and system calls other than read.
Third, it is necessary to consider the behavior of the system's underlying stable storage hardware. For example, consider a SCSI controller that has been configured to cache data and return to the operating system that the data has been written to stable storage, when, in fact, it has only been written into the controller RAM cache. If power is lost before the controller is able to flush its cache to disk, and the controller cache is not stable (that is, the writes will not be flushed to disk when power returns), the writes will be lost. If the writes include database blocks, there is no loss because recovery will correctly update the database. If the writes include log file blocks, it is possible that transactions that were already committed may not appear in the recovered database, although the recovered database will be coherent after a crash.
If the underlying hardware can fail in any way so that only part of the block was written, the failure conditions are the same as those described previously for an operating system failure that writes only part of a logical database block. In such cases, configuring the database for checksums will ensure the corruption is detected.
For these reasons, it may be important to select hardware that does not do partial writes and does not cache data writes (or does not return that the data has been written to stable storage until it has either been written to stable storage or the actual writing of all of the data is guaranteed, barring catastrophic hardware failure — that is, your disk drive exploding).
If the disk drive on which you are storing your databases explodes, you can perform normal Berkeley DB catastrophic recovery, because it requires only a snapshot of your databases plus the log files you have archived since those snapshots were taken. In this case, you should lose no database changes at all.
If the disk drive on which you are storing your log files explodes, you can also perform catastrophic recovery, but you will lose any database changes made as part of transactions committed since your last archival of the log files. Alternatively, if your database environment and databases are still available after you lose the log file disk, you should be able to dump your databases. However, you may see an inconsistent snapshot of your data after doing the dump, because changes that were part of transactions that were not yet committed may appear in the database dump. Depending on the value of the data, a reasonable alternative may be to perform both the database dump and the catastrophic recovery and then compare the databases created by the two methods.
Regardless, for these reasons, storing your databases and log files on different disks should be considered a safety measure as well as a performance enhancement.
Finally, you should be aware that Berkeley DB does not protect against all cases of stable storage hardware failure, nor does it protect against simple hardware misbehavior (for example, a disk controller writing incorrect data to the disk). However, configuring the database for checksums will ensure that any such corruption is detected.


Welcome to Advanced JavaScript
Advanced JavaScript Exercises:
Warm Up Exercises
JavaScript Playground
IIFE (Hosts) Lab Test Area
Promises Lab Test Area
Sample Jasmine Spec Runner
Discography App
Popular JavaScript APIs
Popular JavaScript Frameworks


Specify the RDF Object
In this step, you can either choose a datatype (such as "Text", "Floating Point Number", "Integer", ...) for a table row or try and let us reconsiliate your data against the DBPedia triple store. That is, we will automatically look up an URI in the DBPedia-Project that might represent the data within each of your table rows.
As always, the results can be seen in the RDF preview at the page bottom.
Background:
The objects of the RDF statements are generated from the entries in the file below the header line. Objects in RDF triples are either literals or URIs. Of these, URIs are to be preferred, because they resolve ambiguities and link to further information. For this reason, LinDA offers to convert literals to URIs, by invoking an appropriate web service. This is called “AutoInference” and is invoked on a per-column basis. Otherwise, see Datatypes.
AutoInference:
When this is invoked, LinDA tries to replace the literals in the respective column by URIs. Often, this involves some kind of ambiguities; LinDA tries to resolve them by considering the column header. (Technically, this is done by invoking a dedicated web service.) However, it is up to you to finally check the correctness of the result.
Datatypes:
RDF literals may be attributed with a datatype. So if you choose not to convert literals to URIs, you should invoke their automatic attribution with datatypes, in the same menu.


About 1 to 2 hours
Apprentices will be able to:
new Promise(((resolve, reject) => {}))
promise.then()
Promise.all()
fetch
(like AJAX but built into most browsers)function counter(cb) {
console.log('inside counter function ');
cb(); //here callback function gets called by counter()
}
counter(function(){
console.log('inside callback function');
});
function counter(cb){
console.log('inside counter function ');
cb();
}
counter(function(){
console.log('inside callback function');
counter(function(){
console.log('inside callback function');
});
});
There’s got to be an easier way to write things that depend on each other, right? Promises.
Promise
and pass a callback to its then
method. Create callback that uses setTimeout
to mimic latency (network/database delay). The callback passed to setTimeout
will resolve the promise (use the parameter).then
with a callback that console.logs something to show the flow of execution.const isMomHappy = true;
// Promise
const willIGetNewPhone = new Promise(
(resolve, reject) => {
if (isMomHappy) {
const phone = {
brand: 'Samsung',
color: 'black'
};
resolve(phone);
} else {
const reason = new Error('mom is not happy');
reject(reason);}
}
);
const showOff = function (phone) {
const message = 'Hey friend, I have a new ' +
phone.color + ' ' + phone.brand + ' phone';
return Promise.resolve(message);
};
// call our promise
const askMom = function () {
willIGetNewPhone
.then(showOff)
.then(fulfilled => console.log(fulfilled))
.catch(error => console.log(error.message));
};
askMom();
setTimeout
times.catch
method (like how you did with then
) to this promise, and pass another callback. Which promise parameter can you use to pass control from then
to catch
?status
.status
again, has it changed?


{% extends 'layout.html' %} {% block title %}Login{% endblock %} {% block body %}
An email has been sent to the account you signed up with. Once you verify your email from the link provided in that email you will be able to login.


Comments
-
Greg Hurrell
Is iTunes not running when you see those messages?
You can avoiding having messages like that printed by lowering your logging threshold (I can explain how to do this), but I might just suppress that message anyway, seeing as it is so harmless and might cause confusion.
-
Bruce
iTunes 7.1.1 was running on Mac OS X 10.4.9.
Would be interested in those instructions to lower logging threshold. Guess large log files might explain a recent unexplained loss in disc space.
-
Greg Hurrell
(In reply to comment #2)
iTunes 7.1.1 was running on Mac OS X 10.4.9.
Would be interested in those instructions to lower logging threshold. Guess large log files might explain a recent unexplained loss in disc space.
The system automatically rotates your log files (starts new files and deletes old ones) so the amount of space taken up by them should be roughly constant over time. In any case, the sizes in question are probably too small to have any noticeable impact (for example, on my system all of my logs added up total to about 75M or 0.04% of my total space).
Info about controlling the logging level is here:
https://wincent.com/a/products/synergy-advance/help/preferences/advanced/#logging
That documentation applies to version 0.4 of Synergy Advance and you can control the setting in the "Advanced" tab of the preferences:
Synergy Advance can print information to the console (see the "Console" application at "/Applications/Utilities/Console") for the purposes of feedback, diagnostics, debugging and troubleshooting. The verbosity of this logging can be configured using the "Logging level" setting in the advanced preferences. The minimum possible setting is log level 0; at this level Synergy Advance tries to be completely "silent" and not print anything at all to the console (although some error conditions may still arise in which the system libraries, outside of the control of Synergy Advance, print information to the console). The maximum possible setting is log level 10 which is the most verbose setting. The default log level is 1, which means that Synergy Advance will print only a minimum of information to the console, such as error conditions and other events considered as "noteworthy".
In Synergy 0.5b there have been some changes. The preferences UI has been rearranged and there are still more changes to come, so there is no UI-level control for changing the logging level; you have to do it from the terminal. For example, to set the logging level to 0 you would do this in the Terminal (when Synergy Advance is not running):
defaults write com.wincent.SynergyAdvance LogLevel -int 0
Note that the control for this setting will be added back to the UI shortly. This is only a temporary thing during the rearrangement.
The other change to note in 0.5b is documented in the history:
https://wincent.com/a/products/synergy-advance/history/#0.5b
Specifically:
[Note] Changed the possible range of settings for the "Logging level" advanced preferences; possible values now lie in the range of 0 to 7 (the previous range was 0 to 10) and the default level has been changed from 0 to 5. This change was made to bring Synergy Advance in line with the logging levels specified for the BSD syslog facility in RFC 3164 and mirrored in Apple's ASL ("Apple system log facility"). See the documentation for the "Logging level" setting for more information.
-
Greg Hurrell
(In reply to comment #1)
You can avoiding having messages like that printed by lowering your logging threshold (I can explain how to do this), but I might just suppress that message anyway, seeing as it is so harmless and might cause confusion.
In the current development version (the successor to 0.5b) I've now raised the log-level on those messages to level 6, which means that they won't appear by default (the default log level is 5). In order to see those messages you would need to raise your log level up to 6 or 7. Going to mark this as FIXED/CLOSED.
Add a comment
Comments are now closed for this issue.


--- layout: page title: "Contact" description: "Have questions? I have answers (maybe)." header-img: "img/contact-bg.jpg" ---
Phone Number:<PHONE_NUMBER>
School Email<EMAIL_ADDRESS>Personal Email<EMAIL_ADDRESS>1 Darren Drive, Shrewsbury, MA 01545
or
30538 Georgia Tech Station, Atlanta, GA 30332


You have 3 pending activities
You have a {{x}} pending for today
Your recent activity
Your expenditure
{{x}}
Your recent activity
You have 3 new reviews
{{x}}
View Resume
Explore new hashtags
{{x}}
{{x}}


|
FreeYourSoul Online
0.0.1
MMORPG
|
Each pit participant has a speed defined as an unsigned integer. The faster go before the slowest.
Generation of priorityList :
Graphical example, each color represent a different character (monster or player's character):
The difference of speed between the fastest and the slowest being important, the purple player can play 4 times before the end of the turn.
For the second turn, the base maximum speed is added to the every one plus their own base speed.
This turn is way shorter than the previous turn (every character play only once), but the next one as the speed stabilized a little bit, but in the third turn, as the purple player end this turn with 19 of speed, he will play multiple times before the end of the turn.
This algorithm give an edge to the fast player without being broken (playing multiple time every single turns).
Here a resume of the two turns:


JAVIER MASCHERANO
Position: Midfielder
Date of Birth: 08/06/1984
Height: 5'9
Weight:
1st team games: 10
1st team goals: 0
International caps: 22
International goals: 0
Former clubs: River Plate, Corinthians, West Ham United
Birth Place: San Lorenzo, Sante Fe, Argentina


Specifies a precision-agnostic type qcomp, which resolves to a complex<T> in C++ and a complex T in C (that provided by complex.h), and which supports operator overloading for easy complex algebra. More...
#include <tgmath.h>
Go to the source code of this file.
Defines | |
| #define | fromComplex(comp) qcomp(comp.real, comp.imag) |
| Converts a Complex struct to a qcomp native type. | |
| #define | qcomp |
| A precision-agnostic operator-overloaded complex number type. | |
| #define | toComplex(scalar) ((Complex) {.real = creal(scalar), .imag = cimag(scalar)}) |
| Creates a Complex struct, which can be passed to the QuEST API, from a qcomp. |
Specifies a precision-agnostic type qcomp, which resolves to a complex<T> in C++ and a complex T in C (that provided by complex.h), and which supports operator overloading for easy complex algebra.
This allows users to calculate with a natural complex type before passinfg instances to the QuEST API as a Complex through toComplex and fromComplex
Adapted from the header originally written by Randy Meyers and Dr. Thomas Plum, accessed at http://collaboration.cmc.ec.gc.ca/science/rpn/biblio/ddj/Website/articles/CUJ/2003/0303/cuj0303meyers/index.htm Original header doc: Compatibility file for C99 and C++ complex. This header can be included by either C99 or ANSI C++ programs to allow complex arithmetic to be written in a common subset. Note that C overloads for both the real and complex math functions are available after this header has been included.
Definition in file QuEST_complex.h.
| #define fromComplex | ( | comp | ) | qcomp(comp.real, comp.imag) |
Converts a Complex struct to a qcomp native type.
| #define qcomp |
A precision-agnostic operator-overloaded complex number type.
This is a complex analog of qreal and is of single, double or quad precision depending on the value of QuEST_PREC. It resolves to the native complex type provided by <complex.h> for both C99 and C++11, so can be used with operators. It can be constructed with qcomp(real, imag)
.
For example, in C,
and in C++,
Assuming QuEST_PREC=4
, qcomp will be 'complex long double' in C and 'complex<long double>="">' in C++.
Can be converted to/from Complex, the struct accepted by the QuEST interface, using toComplex and fromComplex.


Make Weather Stations Great Again! is a school project made by the Tscrump Group. Made out of basic components such as a Temperature and Air Pressure Sensor, A Brightness Sensor, Humidity Sensor and a large scale Data Network.
 Control it at home or do it while being abroad. You can check the wether in your home town using the LORA network.


| C: | int Zoltan_Order (
struct Zoltan_Struct *zz, int num_gid_entries, int num_obj, ZOLTAN_ID_PTR global_ids, ZOLTAN_ID_PTR rank, ) |
| FORTRAN: | FUNCTION Zoltan_Order(zz, num_gid_entries,
num_obj, global_ids, rank, iperm)
INTEGER(Zoltan_INT) :: Zoltan_Order TYPE(Zoltan_Struct), INTENT(IN) :: zz INTEGER(Zoltan_INT), INTENT(IN) :: num_gid_entries INTEGER(Zoltan_INT), INTENT(IN) :: num_obj INTEGER(Zoltan_INT) :: global_ids(*) INTEGER(Zoltan_INT) :: rank(*) |
| C++: | int Zoltan::Order (
int num_gid_entries, int num_obj, ZOLTAN_ID_PTR global_ids, ZOLTAN_ID_PTR rank, ) |
| Arguments: | |
| zz | Pointer to the Zoltan structure, created by Zoltan_Create, to be used in this invocation of the load-balancing routine. |
| num_gid_entries | Input: the number of array entries used to describe a single global ID. This value is the maximum value over all processors of the parameter NUM_GID_ENTRIES. |
| num_obj | Number of objects for which we want to know the ordering. Objects may be non-local. |
| global_ids | An array of global IDs of objects for which we want to know the
ordering on this processor. Size of this array must be num_obj.
Objects may be non-local. Objects IDs may be repeated on several processor. |
| rank | Upon return, an array of length num_obj containing the rank of each object in the computed ordering. When rank[i] = j, that means that the object corresponding to global_ids[i] is the jth object in the ordering. (This array corresponds directly to the perm array in METIS and the order array in ParMETIS.) Note that the rank may refer to either a local or a global ordering, depending on ORDER_TYPE. Memory for this array must have been allocated before Zoltan_Order is called. |
| Returned Value: | |
| int | Error code. |
| C: | int Zoltan_Order_Get_Num_Blocks (
struct Zoltan_Struct *zz) |
| C++: | int Zoltan::Order_Get_Num_Blocks () |
| Arguments: | |
| zz | Pointer to the Zoltan structure, created by Zoltan_Create, which has been used in the ordering routine. |
| Returned Value: | |
| int | The number of blocks (subdomains). |
| C: | int Zoltan_Order_Get_Block_Bounds (
struct Zoltan_Struct *zz, int block_id, int *first, int *last) |
| C++: | int Zoltan::Order_Get_Block_Bounds (
int block_id, int &first, int &last) |
| Arguments: | |
| zz | Pointer to the Zoltan structure, created by Zoltan_Create, which has been used in the ordering routine. |
| block_id | The number of the block we want informations on. |
| first | Upon return, pointer to the value of the begining of the block. |
| last | Upon return, pointer to the value of the end of the block. |
| Returned Value: | |
| int | Error code. |
| C: | int Zoltan_Order_Get_Block_Size (
struct Zoltan_Struct *zz, int block_id) |
| C++: | int Zoltan::Order_Get_Block_Size (
int block_id) |
| Arguments: | |
| zz | Pointer to the Zoltan structure, created by Zoltan_Create, which has been used in the ordering routine. |
| block_id | The indice of the block we want to know the size. |
| Returned Value: | |
| int | The number of objects in this given block. |
| C: | int Zoltan_Order_Get_Block_Parent (
struct Zoltan_Struct *zz, int block_id) |
| C++: | int Zoltan::Order_Get_Block_Parent (
int block_id) |
| Arguments: | |
| zz | Pointer to the Zoltan structure, created by Zoltan_Create, which has been used in the ordering routine. |
| block_id | The indice of the block we want to know the size. |
| Returned Value: | |
| int | The number (id) of the parent block in the elimination tree. The value is -1 for the root of the tree. |
| C: | int Zoltan_Order_Get_Num_Leaves (
struct Zoltan_Struct *zz) |
| C++: | int Zoltan::Order_Get_Num_Leaves () |
| Arguments: | |
| zz | Pointer to the Zoltan structure, created by Zoltan_Create, which has been used in the ordering routine. |
| Returned Value: | |
| int | The number of leaves in the elimination tree. |
| C: | void Zoltan_Order_Get_Block_Leaves (
struct Zoltan_Struct *zz, int *leaves) |
| C++: | void Zoltan::Order_Get_Block_Leaves (
struct Zoltan_Struct *zz, int *leaves) |
| Arguments: | |
| zz | Pointer to the Zoltan structure, created by Zoltan_Create, which has been used in the ordering routine. |
| leaves | Array of indices of the blocks that are leaves in the elimination. The last element of this array is -1. The array must be of size number of leave + 1 and must be allocated by the user before the call. |


Red Rock Sheds are constructed using the same methods we use to construct houses for maximum durablity. We use cement fiber siding that is painted with premium paint to ensure your shed will stand the test of time and look great doing so.
At Superstition Components, we employ inmate laborers to build our Red Rock Sheds. These inmates are gaining a number of valuable hands-on skills that they can take back into the work force upon release. We believe, the more we can teach our laborers, the better our comminities will be.


Playboy Playmate Robbed at Gunpoint in Own Home
Lauryn Elaine, a Playboy magazine model who has recently become active on Instagram with almost 60k followers, also posts to her YouTube channel on which she shares vlogs of her many trips around the globe.
Playboy magazine playmate Lauryn Elaine was robbed at gunpoint in her own home, after three masked men attacked the model’s house on Wednesday, according to TMZ.
Elaine arrived at her house in North Hollywood at around 23:45 local time to be surprised by a broken front door and three masked men pointing guns at her. Two of the men reportedly came out of Elaine’s bedroom, while a third appeared from her brother’s room.
Robbers demanded the playmate open her safe, stealing some $30,000 plus a handbag after restraining her with a dog lead. The masked men also smashed many objects in the house, according to TMZ, who obtained a video made by the model after she reportedly freed herself from bondage.
Local police are seeking evidence or video from areas surrounding the celebrity's house to help in identifying the three masked men.