Well, my laptop died, or the screen to be exact. So I am looking for a new one.
The problem here is that it brought back the iBook thinking.
I could get a Dell Latitude (or Inspiron, forgot) 4100 for 2100 EUR (1.0 ghz p3, 256mb, 20gig, network, modem, 14", XP Pro, Office XP) and this would be a wonderful system really. I have no doubt about it.
But I could get an iBook 600Mhz (100mhz bus speed), 12" (more than happy with that), 256mb, 20gig, dvd/cd-rw, wavelan, networking, modem, OS X for about 2200 EUR.
Now there, the price is close.  I could use an USB-Bluetooth adapter though.
The real problem comes in though when I think about software. I am used to the windows software I have and there its not really hard to get any of it even for free from friends or some other way.
For the Mac, I would have nothing and as it looks now, not much ability to get anything and I need Outlook for syncing the palm and future mobile phones for example so I would need office for OS X, also for Word for my studies. I just can’t buy that though. I am already out there with the price of the laptop at the moment. So that is my major drawback at the moment. A major one. If the software issue would be settled then I think I would have to do some very serious thinking. Very serious.
I think I’ll read up a bit on mac stuff now and do some further thinking. Hmmm… if anyone of you mac users want to give another personal account of wether you think its a good idea to have a windows desktop and apple laptop then shoot. But I think most of you already talked about it many times.


{% extends "base.html" %} {% block body_class %}template-404{% endblock %} {% block content %}
We're sorry, but the page you were looking for doesn't exist.


LAST UPDATE OF THIS PRIVACY POLICY - March 16, 2018
This Privacy Policy covers all Personally Identifiable Information that is collected on this website ("Site", "This Site"), Patrickdemian.me, by Patrick Demian ("Me", "My", "I"). Personally Identifiable Information for the purposes of this Privacy Policy is defined as any information that can be used on its own or with other information to identify, distinguish, contact, or locate a single person, or to identify an individual in context. This Site complies with Canadian Federal and Provincial privacy laws and regulations including the Personal Information and Electronic Documents Act.
There are links from This Site to other websites. This Privacy Policy only applies to This Site and not of the other companies or organizations to which This Site may be linked. Links to third party websites are provided as a convenience only. I do not endorse, and I am not responsible for these linked websites.
Only the data you provide via the Contact Me form is collected and stored. This information is the following:
This does not include any information that is required for the World Wide Web to function, namely HTTP headers. This information includes, but is not limited to:
The Personally Identifiable Information submitted in the Contact Me form is first encrypted with a Public-Private cryptographic system, and is then sent to a password protected mail server. HTTP headers are stored in a password protected web server.
This Site uses encryption via SSL technology. This ensures that all Personally Identifiable Information is transmitted securely. Note however, this does not include IP addresses, as this is not covered under the scope of SSL technology.
The Personally Identifiable Information submitted in the Contact Me form is strictly used only for further correspondence. HTTP headers are stored for the purposes of anonymous statistical analytics.
After 60 days, the following Personally Identifiable Information are set to be deleted:
User agents, referers and requested pages, as well as other HTTP headers not included will have their association with your IP address removed, anonymizing them, and are thus no longer considered Personally Identifiable Information.
This Site does not use any cookies, first party or third party, for any purposes including but not limited to tracking of users or analytics.
I do not sell, trade, or otherwise transfer to outside parties your Personally Identifiable Information unless explicitly stated, with advance notice, in further correspondence. This does not include i) website hosting partners and other parties who assist Me in operating This Site, so long as those parties agree to keep this information confidential, or ii) to comply with legal requirements such as a law, regulation, warrant, subpoena or court order by Canadian and/or international authorities. In the case of authorities, Personally Identifiable Information may be required to be kept longer than the stated 60 days to comply with certain laws.
Please note that in the case of these disclosures, Personally Identifiable Information may be stored or processed outside of Canada and may therefore be subject to different privacy laws than those applicable in Canada, including laws that require the disclosure of Personally Identifiable Information to governmental authorities under circumstances that are different than those that apply in Canada.
You have the right to access, update, and correct any inaccuracies in your personal information, subject to exceptions set out in this Privacy Policy. You may request access, update, or corrections to any inaccuracies in your Personally Identifiable Information by contacting Me by email at<EMAIL_ADDRESS>You may be asked for personal information in order to verify your identity.
This Site considers the protection of children's privacy, especially online, to be of the utmost importance. I do not knowingly collect or solicit Personally Identifiable Information from children nor do I allow them to request information through This Site.
To the best of My abilities, as well as of those by the website hosting partners and other parties who assist Me in operating This Site, there have been safeguards put in place to help prevent unauthorized access, maintain data security, and correctly use the information that is collected. Personally Identifiable Information sent via the Contact Me form is secured with both password-protected access as well as state of the art Public-Private encryption making it much more difficult to extract Personally Identifiable Information.
However, if a data breach were to occur, a notification will be posted prominently stating that a breach has occurred as soon as I can confirm the existence of such a breach. There will also be emails sent out to those who may be affected by the data breach.
If this Privacy Policy is altered in any way, the new Privacy Policy will be placed where you can find this Privacy Policy, or alternatively at the bottom of every page on This Site. When this occurs a notification may be posted prominently stating that the Privacy Policy has been altered.
You are requested to check this page for any changes before submitting Personally Identifiable Information in the Contact Me form. All Personally Identifiable Information submitted prior to the new Privacy Policy will be grandfathered in using the old Privacy Policy until the 60 day limit after which they will be deleted.
By using This Site, you signify your acceptance of this Privacy Policy. By submitting your Personally Identifiable Information, you agree that it will be governed by this Privacy Policy.


All truth is one，it is the voice of life, which calls us to come and learn.
My Bachelor Degree is physics, but I always be interested in the computer programming, microcontroller, electronic circuits have a strong interest. I joined the school in the freshman's electronic association, in the community I have a preliminary understanding of the microcontroller.
Later, we opened a C language courses, yes, our physical students also learn C language. At that time there is the end of large operations, the teacher gives a difficult problem, I directly chose the most difficult that way,
That question is a student achievement entry procedure, involving the generation and reading of the document. There is a part of the knowledge teacher did not teach, so I turned the book study data self-study. After a constant attempt, the final successful operation of the program,
It was the first time I realized for unfamiliar knowledge, through research and exploration, the final realization of the sense of accomplishment. But also greatly changed the view of learning, that is, interest-based goal-driven learning strong> more suitable for me.
Then I started self-learning Arduino microcontroller.
With C language, electronic circuits, single-chip knowledge base, I quickly got started with this microcontroller. At the end of the junior year, we need to pay a course design,
At that time I was using this microcontroller to do a laser telegraph machine .
This work involves the use of sensors, Morse code communication protocol and other knowledge, after five days of continuous attempt, and finally realized the two telegraph communication with each other.
To the senior, I went to a Chuangxing company internship, engaged in a pioneer teaching aids. Through the purpose of driving learning, I quickly started the object structure design, 3D modeling, circuit board design, laser cutting.
During the smart trolley force ,
smart pots and other products. After graduation I left the company directly.
Until six months after graduation, I began to realize that the job began to repeat, and gradually deviated from my original intention, so I resigned.
After graduation, I studied Python at home.
In the meantime, I learned the basic grammar of Python, the commonly used web crawler library, the basic operation of the database, while mastering the basic use of linux system, vim editor use, Git and GitHub use,
Learn to build a web-based blog site to learn the basics of basic web front-end knowledge and network communications.
At present, I need a Python junior engineer strong> to further improve my ability.


Agents – sc2qsr.agents
¶
-
class
sc2qsr.agents.
PySC2Agent
(map_size: tuple, m: int = 4, n: int = 4, alpha=0.1, gamma=0.6, epsilon=0.1, policy='egreedy')[source]¶ An agent that uses qualitative spatial reasoning to discretize states received by the pysc2 environment, select actions that are spatially qualitative and convert them back to pysc2 actions.
- Parameters
map_size (tuple) – tuple containing the (x,y) dimensions of the map
m (int, optional) – granularity for qualitative spatial angular regions, defaults to 4
n (int, optional) – granularity for qualitative spatial distance regions, defaults to 4
alpha (float, optional) – learning rate, defaults to .1
gamma (float, optional) – discount factor, defaults to .6
epsilon (float, optional) – value for epsilon-greedy policy, defaults to .1
policy (str, optional) – what type of policy to use from
['egreedy', 'boltzmann']
, defaults to ‘egreedy’
-
static
array2oneliner
(a: numpy.ndarray) → str[source]¶ Converts a numpy.ndarray into a one-line string containing all its information
- Parameters
a (numpy.ndarray) – A 1D or 2D numpy.ndarray
- Returns
a one-line string representation of the array
- Return type
-
static
oneliner2array
(s: str, dtype)[source]¶ Converts a one-line string representation (see
array2oneliner()
) of one or more numpy arrays back into their string representations- Parameters
s (str) – one-line string representation of the arrays
dtype (function) – a function which is called to convert the value of each element in the arrays
- Returns
a tuple of arrays if s contains more than one array. Otherwise, a single array.


--- layout: post title: Working with Verity 2K tags: [] status: publish type: post published: true meta: {} ---
Now yesterday we set about configuring our verity server and today we are going to test it and actually do some stuff with it.
Before delving to deep I'd like to mention two command line tools: rck2 and mkvdk. The first is a utility that allows you to query collections from the command line you use it as follows:
rck2 - server localhost -port 9901
Once in, typing "h" will give you a complete listing of the command line options. The other tool is a command line is an indexing utility. You can use to carry out more sophisticated maintenance of your collections. We will be using the latter to create our collections, add files to them. Then to test the implementation fully we will use the former tool to query the collection.
To create a collection we will be using the mkdvk command with the following two switches: create and collection. The first is self explanatory, the second provides both the name and the path where the collection is to be created. So if we wanted to create a collection called myCollection, as we specified in the previous article, in "c:\cfusion\verity\collections\" type in the following command:
mkvdk -create -collection "c:\cfusion\verity\collections\myCollection"
And this is the screen output you should be presented with:
mkvdk - Verity, Inc. Version 2.6.1 (_nti40, Aug 11 2000)
mkvdk done
Incidently if you want delete a collection I recommend that you first purge the collection and then you'll need to delete the folders manually. This is what the command line and screen output would look like:
mkvdk -purge -collection myCollection
mkvdk - Verity, Inc. Version 2.6.1 (_nti40, Aug 11 2000)
State: Collection is down
State: Collection is up
mkvdk done
But back to setting up the collection. Ok now we have a collection called myCollection in "c:\cfusion\verity\collections\", it's time to add a few documents to the collection. Again we will be using mkvdk and we will be using a file that contains a list of documents to be added to the collection. The command here is:
mkvdk -collection collectionname -bulk -insert filespec
Or using our example and an external file containing the list of the documents to be added called filelist.txt (stored in the same folder as mkvdk):
mkvdk -collection "c:\cfusion\verity\collections\myCollection" -bulk -insert @filelist.txt
The file that contains the list has the following format
"c:\path to files\filename 1"
"c:\path to files\filename 2"
"c:\path to files\filename 3"
As the process runs all the debug information will be displayed on the screen, burt as it tends to fly past, you'll be hard pressed to see what is actually going on, other than spot the odd error message from parsing the document. You can review all this output in the sysinfo.log file that is generated for the collection you are adding the documents to (in our example this would be: c:\cfusion\verity\collections\myCollection\sysinfo.log).
For completeness though here is how you add a single file to a collection.
mkvdk -collection "c:\cfusion\verity\collections\myCollection" -insert "C:\Documents and Settings\gstewart\Desktop\some_text.txt"
And this is the output that is generated:
mkvdk - Verity, Inc. Version 2.6.1 (_nti40, Aug 11 2000)
Initializing dataset 00000003.ddd, index 00000003.did
Totals (1 documents): 12 para 32 sent 770 word (1392 Kb used)
(400 ms) Indexed 1 docs into c:/cfusion/verity/collections/myCollection/parts/00000003
Writing partition index data
mkvdk done
OK now to test a search against the collection. To this end we will be making use of the previously mentioned rck2 utility. Launch it from the command line as shown below.
C:\CFusion\Verity\_nti40\bin>rck2 -server localhost -port 9901 RCK2 - Verity, Inc. Version 2.20 Type 'h' for a list of commands
Next change to your collection
rck2> c myCollection
Then run a search against the collection:
rck2> s *
Retrieved: (1)1 of 1
Now display the results:
rck2> r
docId: 1
score: 1.0000
k2dockey: c:/cfusion/verity/collections/myCollection/some_text.txt@myCollection
And there you go all done, your collection has been created, documents added to it and results returned.


Kangaroos are found in Australia, where they live in small groups called troops or herds (or ‘mobs’ by Australians), typically made up of 50 or more animals. If threatened, kangaroos pound the ground with their strong feet to alert and warn the others in the group. And these cool creatures aren’t to be messed with because when they fight, they punch and kick with powerful blows, and will sometimes even bite.
Female kangaroos have a pouch on their belly (made by a fold in the skin) to craddle baby kangaroos, called joeys. Newborn joeys are tiny, measuring just 2.5 centimetres, or about the size of a grape. Aren’t they very cute!
Kangaroos are herbivores and like to chew on grasses, herbs and shrubs. Besides humans and wild dogs called dingoes, kangaroos face few natural predators. Heat, drought and hunger due to vanishing habitat are the dangers that these amazing marsupials face.


I have an EmonTXv3 with type 2 installation. 1 ct on solar inverter feed. 1ct on grid supply. ac-ac adaptor for real power.
Sketch in use is emonTxV3_continuous_kwhtotals_noeeprom
Everything seems to be reading correctly except solar inverter standby (night) usage indicates positive (around 3 watts). Shouldn't it be negative?
Solar production during the day indicates positive.
Grid power indicates positive when importing, negative when exporting.
Re: EmonTXv3 solar inverter standby power reading positive
It probably should be a small positive amount, however a swing of +/- 5w on a 4.5kw scale is around 0.22% accuracy. is the calibration otherwise acceptable? if so I believe some sketches have had a "less than +/-10w" filter in built so that an inverter is displayed as 0w until over 10w is being produced, this would hide the nighttime drain.
The CT calibration is not uniform across the scale so if accurate at zero it will probably suffer from inaccuracy at full production which will give a greater error amount by percentage.
Paul
Re: EmonTXv3 solar inverter standby power reading positive
Paul: "The CT calibration is not uniform across the scale" - I think some might be misled by that. As far as I could measure it, the YHDC CT is linear to above 100 A. True, I measured a 2% error at 1 A, but I mean 2% of 1 A, not of 100 A. You must not confuse that with noise picked up by the analogue input that is added to the CTs output.
I would expect the inverter to show a few watts of consumption overnight. My best guess is you do have some pickup that's getting into the input and getting added to the CT output. Depending on which input you're using, full scale is either 24 kW or 4.5 kW, as Paul says, 5 W could be 0.11% or it could be 0.02%. Remember, the Atmel 328P has a 10-bit ADC which gives a resolution of 1 in 1024, and it needs to calculate the shape of the current wave inside that resolution. If the input bias sits exactly on the edge of a step in the ADC, then it will only take a sniff of noise to give to an input.
Re: EmonTXv3 solar inverter standby power reading positive
I think I found the source of the induced noise on the solar CT. See attached screen capture.
If there was no noise (and 100% accurate) should the power value from the solar CT be negative at night? and positive during the day?
The solar CT is on input 2 (24kW). Inverter output is 5kW max would the 4.5kW input cope?
Thanks
Norm
Re: EmonTXv3 solar inverter standby power reading positive
All the input ranges are actually a maximum current, not a power, so we need the maximum current that your inverter can output. The range is set by the burden resistor at 120 Ω, so the current is 18.5 A rms (assuming that it is a reasonable sine wave, and allowing a few percent for component tolerances). It is easy to increase the range by adding a parallel wire-ended resistor. The holes are provided ready - adjacent to the jack socket on the pcb, or you could put the resistor inside the plug if it's small enough (1/10 W). Let's say you want to increase the range to 25 A, the parallel combination needs to be 88.8 Ω, so 330 Ω is the closest standard value to put in parallel. (That will give 25.25 A.) You will need to change the calibration constant in the sketch to 22.73 to give the correct numbers out to emonCMS.
Re: EmonTXv3 solar inverter standby power reading positive
What are the units (x & y) on those graphs in your screenshot? I am guessing the x axis is time and the units are hours and minutes. You might not see any advantage, but I think it would be worth trying one of the "continuous monitoring" sketches. The default sketch measures a short sample of the power every 10 s, whereas the "continuous" sketches measure continuously and report the average over the last 10 s every 10 s. This should not alter the noise problem, but it might give you more accurate and stable readings.
Re: EmonTXv3 solar inverter standby power reading positive
The maximum output current of my 5kW Enasolar inverter is 25A.
Input 2 is connected to my inverter, is it worth reducing the range of this input from 100A to say 28A? Will this increase the accuracy much? I have input 4 (4.5kW) connected to my heat pump.
If there was no noise (and 100% accurate) should the power value from the inverter CT be negative at night? and positive during the day?
The x/y units of my graph above are x = time/ y = watts.
I'm using the 'emonTxV3_continuous_kwhtotals_noeeprom' sketch.
Thanks heaps for your responses!
Re: EmonTXv3 solar inverter standby power reading positive
Yes, as I wrote above, I would expect to see a small power consumption overnight by your inverter. The consumption is only going to be enough to keep the sensing circuitry going, so maybe in the order of 10 W, therefore with an input scaled to 100 A, it's very doubtful that you would see it anyway, let alone measure it with any accuracy.
It's going to be a lot easier to reduce the sensitivity of input 4 rather than increase the sensitivity of input 2. To achieve the latter, you'd need to remove the on-board SMT burden and replace it with a wire-ended resistor, which is a lot harder (and more likely to damage the PCB) than adding a wire-ended one in parallel. 270 Ω in parallel with the existing 120 Ω burden should give you 26.7 A, 220 Ω in parallel 28.6 A, both with the standard CT.
If you change the input sensitivity by a factor of 4, you should improve the low-end accuracy by the same factor. (More precisely, you'll get the same inaccuracy at a quarter of the current - it gets worse as the current gets less.)


Open Vent
Home
About
Design
Resources
Sign Up
Contact Us
Emails of team leads here?
Pictures of team leads would be nice
Copyright 2020. All rights reserved.


Hack Coronavirus Stream
Who
More streamers and performers to be announced!
What
- Tournaments ** Yu-Gi-Oh: Duel Links ** Wizard101
- Friendly games ** Minecraft ** Cards Against Humanity ** Mario Kart
- Songs and prank calls
- Interviews with your favorite streamers and entertainers
When
20 hours starting Saturday August 1, 2020, 6am EDT (10am UTC).
Where
On a YouTube and a Twitch channel to be determined.
Why
To raise money for a charity (to be announced) which will help deal with the COVID-19 crisis in a cost-effective manner.


OK to take {{ metric.medicine.name }} You can give a dose of {{ metric.medicine.name }} to {{ baby_name }}.
Can't take {{ metric.medicine.name }} The last dose was too recent — you must leave {{ metric.medicine.interval }} hours between doses. You have already given {{ baby_name }} the maximum allowed doses ({{ metric.medicine.frequency }}) in the past 24 hours.
When {{ baby_name }} next has a dose, add a dose below.


Lecturers need a better way to guage whether their class understands the material. Moderate.it allows you to poll your class on the fly.
In addition to getting a simple polling of your audience, you can create custom quizzes before your lecture and push them to students at any time.
Results are delivered to you real-time - no delay. Find out whether you need to slow down and re-explain a concept, or move on - all within a matter of seconds.


Simple Notetaking
Welcome to Simple Notetaking. Remember that you should not save personal or sensitive information here.


|
Contiki 2.5
|
Definition and description of public flash manipulation routines. More...
Defines | |
| #define | MFB_MASS_ERASE 0x01 |
| Assign numerical value to the type of erasure requested. | |
Functions | |
| boolean | halFlashEraseIsActive (void) |
| Tells the calling code if a Flash Erase operation is active. | |
| StStatus | halInternalFlashErase (int8u eraseType, int32u address) |
| Erases a section of flash back to all 0xFFFF. | |
| StStatus | halInternalFlashWrite (int32u address, int16u *data, int32u length) |
| Writes a block of words to flash. | |
| StStatus | halInternalCibOptionByteWrite (int8u byte, int8u data) |
| Writes an option byte to the customer information block. |
Definition and description of public flash manipulation routines.
Hardware documentation indicates 40us for a write and 21ms for an erase.
See flash.h for source code.
| boolean halFlashEraseIsActive | ( | void | ) |
Tells the calling code if a Flash Erase operation is active.
This state is import to know because Flash Erasing is ATOMIC for 21ms and could disrupt interrupt latency. But if an ISR can know that it wasn't serviced immediately due to Flash Erasing, then the ISR has the opportunity to correct in whatever manner it needs to.
| StStatus halInternalCibOptionByteWrite | ( | int8u | byte, |
| int8u | data | ||
| ) |
Writes an option byte to the customer information block.
Only two writes can be performed to the same address between erasures and this is enforced by the flash interface controller.
| byte | The option byte number, 0 though 7, to be programmed. |
| data | The 8 bit value to be programmed into the option byte. The hardware is responsible for calculating the compliment and programming the full 16bit option byte space. |
Definition at line 355 of file flash.c.
References halInternalFlashWrite(), and HIGH_LOW_TO_INT.
| StStatus halInternalFlashErase | ( | int8u | eraseType, |
| int32u | address | ||
| ) |
Erases a section of flash back to all 0xFFFF.
| eraseType | Choose one of the three types of erasures to perform.
|
| address | This parameter is only effectual when a MFB_PAGE_ERASE is being performed. The hardware page encapsulating the address given in this parameter will be erased. A hardware page size depends on the chip |
eraseType
is not valid| StStatus halInternalFlashWrite | ( | int32u | address, |
| int16u * | data, | ||
| int32u | length | ||
| ) |
Writes a block of words to flash.
A page is erased to 0xFFFF at every address. Only two writes can be performed to the same address between erasures and this is enforced by the flash interface controller. If the value already in the address being written to is 0xFFFF, any value can be written. If the value is not 0xFFFF and not 0x0000, only 0x0000 can be written. If the value is 0x0000, nothing can be written.
NOTE: This function can NOT write the option bytes and will throw an error if that is attempted.
| address | The starting address of where the programming will occur. This parameter MUST be half-word aligned since all programming operations are half-words. Also, the address parameter is NOT a pointer. This routines will cast the address to a pointer for the actual hardware access. |
| data | A pointer to a buffer containing the 16bit (half-words) to be written. |
| length | The number of 16bit (half-words) contained in the data buffer to be written to flash. |
Definition at line 294 of file flash.c.
References ATOMIC.
Referenced by halInternalCibOptionByteWrite(), and halInternalSetMfgTokenData().


Display KML Using a
KMLLayer
The map displays a simple KML file that was created using Google Earth and is hosted on an Esri server. Symbology and attributes are honored.


The Object
constructor is used to create new generic objects in JavaScript, such as:
var myObject = new Object();
However, this is no different from using the more concise object literal syntax:
var myObject = {};
For this reason, many prefer to always use the object literal syntax and never use the Object
constructor.
While there are no performance differences between the two approaches, the byte savings and conciseness of the object literal form is what has made it the de facto way of creating new objects.
This rule aims to eliminate use of the Object
constructor. As such, it warns whenever new Object
is found in code.
The following patterns are considered problems:
/*eslint no-new-object: "error"*/
var myObject = new Object();
var myObject = new Object;
The following patterns are not considered problems:
/*eslint no-new-object: "error"*/
var myObject = new CustomObject();
var myObject = {};
If you wish to allow the use of the Object
constructor, you can safely turn this rule off.
This rule was introduced in ESLint 0.0.9.


JavaScript Objects vs. Ruby Hashes
Not so different after all
May 2nd 2015
Ruby and JavaScript, both object oriented web programming languages, have their own ways of storing key/value pair data sets. In Ruby, key/value data structures are called "hashes," and in JaveScript, they are called "Objects." Let's check out an example of the same data structure written in both languages so we can see the differences in each language. First, check out this ruby hash that stores the information about an athlete.
As you can see, we are simply able to set a number of key/value pairs for the athlete, Kelly Slater. The syntax for creating this hash is simply hash_name = {key: value, key2: value2, etc.}. now lets look at this same data in the context of a JavaScript object.
So lets break down the main differences. At a quick glance, they don't look all that different! In order to define the object variable in JavaScript, we must include var = at the bedinning of the object definition. You then see at the end of the object, we much close the object with a semicolon. These are the two main differences of Ruby vs. JavaScript in the syntax. Now, the next main differences are how we can call values. The syntax for calling Kelly Slater's name in JavaScript is kellySlater.name, whereas in Ruby it is kelly_slater[:name]. Overall, the two languages approach these types of data sets in a similar manner. Ruby Hashes and JavaScript Objects aren't that different after all!


Quickstart¶
Authentication¶
Drive API requires OAuth2.0 for authentication. PyDrive makes your life much easier by handling complex authentication steps for you.
- Go to APIs Console and make your own project.
- Search for ‘Google Drive API’, select the entry, and click ‘Enable’.
- Select ‘Credentials’ from the left menu, click ‘Create Credentials’, select ‘OAuth client ID’.
- Now, the product name and consent screen need to be set -> click ‘Configure consent screen’ and follow the instructions. Once finished:
- Select ‘Application type’ to be Web application.
- Enter an appropriate name.
- Input http://localhost:8080 for ‘Authorized JavaScript origins’.
- Input http://localhost:8080/ for ‘Authorized redirect URIs’.
- Click ‘Create’.
- Click ‘Download JSON’ on the right side of Client ID to download client_secret_<really long ID>.json.
The downloaded file has all authentication information of your application. Rename the file to “client_secrets.json” and place it in your working directory.
Create quickstart.py file and copy and paste the following code.
from pydrive.auth import GoogleAuth
gauth = GoogleAuth()
gauth.LocalWebserverAuth() # Creates local webserver and auto handles authentication.
Run this code with python quickstart.py and you will see a web browser asking you for authentication. Click Accept and you are done with authentication. For more details, take a look at documentation: OAuth made easy
Creating and updating file¶
There are many methods to create and update file metadata and contents. With PyDrive, all you have to know is Upload() method which makes optimal API call for you. Add the following code to your quickstart.py and run it.
from pydrive.drive import GoogleDrive
drive = GoogleDrive(gauth)
file1 = drive.CreateFile({'title': 'Hello.txt'}) # Create GoogleDriveFile instance with title 'Hello.txt'.
file1.SetContentString('Hello World!') # Set content of the file from given string.
file1.Upload()
This code will create a new file with title Hello.txt and its content Hello World!. You can see and open this file from Google Drive if you want. For more details, take a look at documentation: File management made easy
Getting list of files¶
PyDrive handles paginations and parses response as list of GoogleDriveFile. Let’s get title and id of all the files in the root folder of Google Drive. Again, add the following code to quickstart.py and execute it.
# Auto-iterate through all files that matches this query
file_list = drive.ListFile({'q': "'root' in parents and trashed=false"}).GetList()
for file1 in file_list:
print('title: %s, id: %s' % (file1['title'], file1['id']))
You will see title and id of all the files and folders in root folder of your Google Drive. For more details, take a look at documentation: File listing made easy


View all of your invoices for inspections, maintenance, and weekly servicing.
| 1234 Austin Drive, Austin TX 77001 | |
| 4321 Bobby Lane, Austin TX 77001 | |
| 2567 Longand Blvd, Austin TX 77001 |
| 1234 Austin Drive, Austin TX 77001 | |
| 4321 Bobby Lane, Austin TX 77001 | |
| 2567 Longand Blvd, Austin TX 77001 |


VexTab mode
Mode for the VexTab language for standard music notation and guitar tablature.
VexTab is a creation of Mohit Cheppudira
The definition of the language can be found at http://www.vexflow.com/vextab/tutorial.html.
MIME types defined: text/vextab
.


A SECOND CHANCE: a photo story of recovery
Satellite Image from Google Earth
Lining the path to the front door of the Rural Women’s Recovery Program house in Athens County are several hand-painted stones, placed among the now-blooming flowers and carefully maintained garden.
“Every day is a second chance.” “Perfect imperfection.” “Perfectly broken.” “We do recover.” The stones are a cheery accessory to the calming grounds of the cozy, log cabin-like facility.
The women inside the home are working through their recoveries, whether that be due to drug or alcohol dependency or mental health diagnoses.
Often, they have been subjected to a vicious cycle of trauma after trauma, Catherine Chelak, program director at Rural Women’s, said. Here, they follow a 12-step model with other women and take the time they need to heal. It’s a sanctuary for many women, she added.
“We need a paradigm shift where wellness is sought,” Chelack said.
The Post visited Rural Women’s on April 5 and talked to six women in the program, some of whom asked to remain anonymous due to the stigmas associated with addiction and recovery. After suffering from dependency issues or traumatic experiences, the women echoed those stones outside: We do recover.
Megan Archer, 37, of Dresden, sits at a picnic table outside of the Rural Women’s Recovery house. She came to the program earlier this year, she said, because she was “sick and tired of being sick and tired” after being there physically for her children, but not emotionally. At the time, she was suffering from an addiction to heroin and prescription drugs. She’s about halfway through the program and said she’s hoping to enter intensive outpatient therapy in Zanesville once she leaves Athens. It might take a lot of work to get sober, she added, but it’s worth sticking to a path toward recovery. “I’ve lost a couple friends to this addiction,” she said. “I don’t want to be that one.”
A 23-year-old client of Rural Women’s looks out over Athens’ hilly terrain on a warm day. The woman, who is pregnant, asked to not be identified by name for this article. She found Rural Women’s through her parole officer about two months ago and said her recovery has been the calmest part of her life thus far. Unless you’ve been through addiction, she said, it’s difficult to understand.  “It’s harder to give up when you’ve worked so hard for something.”
Aimee Kincaid, 24, of McConnelsville, sits cross-legged in a chair outside Rural Women’s. She said her addiction began when she was 15 after she delivered her son by cesarean section and was prescribed Percocet. Within the next year, she started using heroin. Her probation officer referred her to the program, and she came to the house on Feb. 14. “My son is 8 now, and he really needs me,” she said. “This is an amazing place, I’ve learned so much about myself here, not just the using but why I started using in the first place. … I was like a body without a soul.”
Chelsea Holland, 25, of Zanesville, keeps pictures of her children posted in her shared room at Rural Women’s. She came to the program March 20 and said she has a long journey ahead of her. After a difficult childhood, she was ecstatic when she found out that she was pregnant. But when her child was just a few days old, a former friend told children services that she was abusing prescription pills. “I had to give her away,” she said of her daughter, who is now 2 years old. “That broke me.” Later, a friend turned her on to heroin. “My life went to complete chaos and hell,” she said. During that time, she became pregnant again. But when she’s recovered, Holland has exceptional goals: regain custody of both her children, go to back to school, get a job and enlist in the United States Navy.
Mindy, 37, of Athens, sits outside of Rural Women’s. She asked to only be identified by her first name. After multiple injuries and a car accident, she was prescribed opioid painkillers and was later introduced to heroin. She always wanted help, she said, but never quite knew how to ask. “At first, when I came here I was ready to walk out the doors, but I just knew somewhere in my life I wanted to be proud to say my name again,” she said. “It’s taught me how to be responsible, it’s taught me how to get my dignity back. I don’t have hopelessness in my life anymore.”
Jenn, 27, of north central Ohio, poses for a portrait outside of Rural Women’s. She asked to only be identified by her first name. The last time her story was told, she said, was when her drug overdose was on the front page of a newspaper. “That day I hadn’t planned on coming back from that overdose,” she said. “Thankfully, my higher power was working in my favor and there was a random nurse and doctor around the corner. They were able to call 911 in time to save my life.” Being known by her addiction rather than her recovery was devastating, she said. Now, she wants to reach out to people who feel the same way she did that day — that they should take their life, unable to get away from their addiction — and let them know there is hope. “There are people you can trust, and people that want to help you,” she said
Captions by: Emma Ockerman / Editor-in-Chief
Photos by: Alex Driehaus / Director of Photography
Development by: Hannah Debenham / Digital Production Editor


Non-reporting of clinical trial results is an ongoing global public health problem.
The best currently available evidence shows that the results of clinical trials are routinely withheld from doctors, researchers, and patients. This is a global public health scandal.
How do we contact you?
Email us<EMAIL_ADDRESS>We're always keen to hear feedback, user stories, insights you’ve made, errors, omissions, and feature requests.
What’s this all about?
The FDA Amendments Act 2007 (“FDAAA”) is a law which says that certain clinical trials have to report their results, within 12 months of completion. This is really important. Doctors and patients use the results of clinical trials to make informed choices about which medicine works best. But the best currently available evidence shows that trial results are routinely withheld. Previously, laws and guidelines aiming to fix this issue have been widely ignored, despite energetic campaigns. So we built this website, to increase public accountability, and to help researchers make sure they report all their trials. You can read more about the problem in general, and this website, in our methods paper on the project.
You can find information our other TrialsTracker projects at TrialsTracker.net.Who made the FDAAA TrialsTracker?
We are the Bennett Institute for Applied Data Science at the University of Oxford, a team of academics, software engineers, and clinicians working together to make live interactive tools as well as academic papers. Seb Bacon was the software engineer; Nick DeVito the researcher; Ben Goldacre devised the project and was PI; Ben O’Brien was the illustrator; everyone in the Bennett Institute team contributed. You can read more about our all work - on research integrity, and health informatics more broadly - at bennett.ox.ac.uk
Are you publishing a paper on FDAAA compliance?
Yes we are!
Our first paper examining compliance with FDAAA has been published in The Lancet:
DeVito NJ, Bacon S, Goldacre B. Compliance with legal requirement to report clinical trial results on ClinicalTrials.gov: a cohort study. The Lancet. DOI: 10.1016/S0140-6736(19)33220-9
We plan on exploring this data further in future publications. You can read about our team's other research outputs on research transparency and clinical informatics at bennett.ox.ac.uk
I’m a nerd! How is this website built, and what assumptions do you make about the data?
Our methods paper is the best place to read the full technical details of how this site was made, how the data is processed, how the law operates, and how we translate that into code.
There is an API. It's somewhat self-explanatory; however, if you would like to use it and need some help get in touch.
If you want to read the code for the website, it’s on Github here and here and the code for our Lancet paper is here
How can I help the FDAAA TrialsTracker?
In many, many ways!
- You can use our data to encourage trialists to report their trials!
- You can give us feedback
- You can give us resource to help us build more!
- You can collaborate with us
What can I do to help make sure sponsors share their results?
Trial reporting is a huge, global, ongoing problem. But there are more people working towards a solution than ever before.
- The AllTrials.net campaign calls for all trials to be reported, and now has the support of over 700 professional bodies, patient groups, government organisations, industry bodies, research funders, and more. Join them, support their work, and encourage your organisations to sign up to their simple pledge.
- You can advocate for better trial reporting in your own work community.
- You can use our data to encourage trialists to report their trials.
- You can call your elected representatives and tell them to pressure the FDA to levy fines and publicly censure researchers and sponsors who fail to report their trial results.
I think some trials on ClinicalTrials.gov are missing from your site! Doesn’t the law cover all trials?
Sadly, FDAAA 2007 only covers a narrow subgroup of trials. We think all trials should report results: you can read more about the AllTrials.net campaign online. On this website we only track compliance with the law. We have a range of “TrialsTrackers” which monitor reporting for other kinds of clinical trial at TrialsTracker.net
What is the difference between an ACT and a pACT?
ACT stands for “Applicable Clinical Trial”. These are the specific trials required to report results under FDAAA. ACT, in the context of this tracker, is specifically referring to trials that began after the effective date of the 2016 “Final Rule” (January 18, 2017). While the Final Rule created much clearer criteria for identifying an ACT, trials that began before, and end after, the effective date may be required to report, but data on the criteria for judging whether they are is less available. These trials are called “probable ACTs”, or “pACTS” (by everybody, not just us!) and are identified by a different methodology. We have added a tag to every trial so you know which methodology was used to identify that trial. You can read the details on ACTs and pACTs in our paper.
If you think we have wrongly identified a trial, please get in touch!
I found a trial I think is due to report results, under FDAAA, but it’s not listed as due. Why is that?
There are a number of reasons why a trial that completed 12 months ago may not yet be due to report results under FDAAA.
- The trial may have become due within the last month: The FDAAA 2007 allows for an up to 30 day administrative window for posting results. If a trial has submitted results, even if they haven’t been fully posted yet, this should be noted in the study record, and our “webscraping” tool will automatically find that information. However, to be safe, and to account for any delays by ClinicalTrials.gov, we wait this entire 30 day period before calling a trial “overdue”. If full results show up in the meantime, we will show them as reported. You can read more detail on this in our paper.
- The sponsor may have applied for an exemption: Sponsors can apply for a certificate that allows certain trials to delay the posting of results for up to 2 additional years. You can see if this is the case by clicking on the "Results" tab on ClinicalTrials.gov. Since ClinicalTrials.gov does not share the exact type of extension provided, we assume any certification is for the full 2 additional years. We may start flagging this for relevant trials in a future update.
- The trial may not be required to report results under FDAAA: Unfortunately, only a subset of all trials registered on ClinicalTrials.gov are required to report results: essentially the law covers trials on drugs and devices: so a trial on a surgical technique, a public health intervention to reduce smoking, or a talking treatment for mental health problems, would likely be exempt. The trials covered by FDAAA are known as “Applicable Clinical Trials” or ACTs. Unhelpfully, although ClinicalTrials.gov know which trials are ACTs, they do not make this information public. We are, however, able to infer whether a trial is an ACT by using other publicly available data. You can read in detail about how we do this, in our paper.
- We may not have updated our data yet: If your trial became due very recently, you may need to wait for a data refresh. We’re planning to refresh the data on this site daily, at first, resources permitting. You can check in the footer of the website to see when we last updated our data, and when the next update is planned.
If after reading this you still think we are missing a due trial, please get in touch!
I found a journal article/conference abstract/other document containing results from this study. Why are you saying it has unreported results?
The FDAAA 2007 is a law that requires all applicable trials to report their results on ClinicalTrials.gov within 12 months of completion in the ClinicalTrials.gov tabular format. This is to ensure that results are shared in a timely manner without editorial delays; to ensure that results can be easily located; and to ensure that results are completely and correctly reported. FDAAA sets out a standard format for reporting clinical trials. Previous research has shown that overall journal publications are significantly less complete than structured reports on ClinicalTrials.gov: for example, journals often permit misreporting of prespecified outcomes, and are less complete for safety data. Journal reporting is often interesting and useful but the law requires results to be reported on ClinicalTrials.gov.
This trial’s primary completion date has passed, but it has not yet reached its completion date. Why are you saying it is required to report?
Under FDAAA trials are required to report within 12 months of their “Primary Completion Date”. The “Completion Date” is a different data field. These data fields have very specific meanings and definitions on ClinicalTrials.gov. The Primary Completion Date is the last visit of the last subject for measurement of the primary outcomes. Some trials may additionally continue to follow-up with patients for weeks, months, or even years after they finish collecting data on their primary outcomes. The responsible party is required to report the results for the primary outcomes 12 months after the Primary Completion Date. We use the “Completion Date” field to measure when a trial is due to report if the “Primary Completion Date” field is missing. ClinicalTrials.gov allows trial results records to be updated and amended, as needed, to accommodate additional results if and when they become available.
How do you calculate what fines a sponsor could receive?
The FDA can fine (per 333(f)(3)(B) in table here) non-reporting sponsors up to ${{ FINE_PER_DAY|intcomma }} a day following a 30 day notice period. We calculate the maximum possible fine assuming the sponsor was notified the day after they failed to meet their submission deadline. So each day after 1 year plus 30 days since trial completion without submitted results is another ${{ FINE_PER_DAY|intcomma }}. The amount the FDA could fine delinquent sponsors has actually increased every year with inflation. However since it is unclear how these differences in inflation adjusted fines would be implemented, we currently use the fine amount as it stood when we launched the website. You can read more on this in our methods paper.
This trial's recruitment status isn't listed as "Completed" and/or the primary completion date is listed as "anticipated" on ClinicalTrials.gov. Why is it due to report?
As explained in our paper, any status other than "Withdrawn" (which means no subjects were enrolled before the study was halted) is not considered when deternmining whether a trial is due to report results under the law. Additionally, while sponsors are allowed to use "anticipated" primary completion dates if the actual date is not yet known, it is their repsonsibility to ensure these dates are accurate. The law clearly states that in the absense of an actual primary completion date, the deadline for results will be calculated from the anticipated primary completion date per (US Code 402(j)(3)(E)(i)(I))
What are cancelled result?
When a sponsor has submitted results, but before they have completed quality control with ClinicalTrials.gov, they can choose to cancel their submission. This is noted in the trial record along with any subsequent resubmissions. For the purposes of the FDAAA TrialsTracker, we note these trials in their own "Overdue (cancelled results)" category until new results are resubmitted, but do not calculate any additional fines as it is unclear how these would be assessed.
How can I cite this work?
Please cite the website as:
FDAAA TrialsTracker. EBM DataLab. 2018. Available from: https://fdaaa.trialstracker.net/
For citations regarding our methods, please cite our preprint paper:
DeVito NJ, Bacon S, Goldacre B. FDAAA TrialsTracker: A live informatics tool to monitor compliance with FDA requirements to report clinical trial results. bioRxiv. 2018; https://doi.org/10.1101/266452.
For citations regarding our analysis in The Lancet:
DeVito NJ, Bacon S, Goldacre B. Compliance with legal requirement to report clinical trial results on ClinicalTrials.gov: a cohort study. The Lancet. DOI: 10.1016/S0140-6736(19)33220-9
When was the data last updated?
The current data was taken from ClinicalTrials.gov on {{ LATEST_DATE|date:"j F Y" }}. Our next update of the data is planned for {{ NEXT_PLANNED_UPDATE|date:"j F Y" }}.


Everyone wants to have long stunning lashes and however, it’s generally the guys that are blessed with the lengthy silky range. We have to working from it. And this usually implies damage, not to mention a few shed lashes in the process. So, below are a series of inquiries and responses that will certainly make you a lot more knowledgeable on the care of your lashes.
My lashes are befalling! What does this mean?
Typically, it is perfectly natural for a few lashes to befall however if it is too much, you could be doing something wrong.  Never ever wipe or pull at the lashes. It is additionally a smart idea to take notice of how much mascara you use. The more you use, the more difficult it is to get rid of and also the damage on fragile lashes can create them to fall out.
Attempt to avoid waterproof mascara as they are the hardest to eliminate. Even your cushion maybe responsible for dropping lashes. You might be allergic to the filling, creating your eyes to swell and also damage to the lash location.
Are eyelash curling irons harmful?
Everyone has used them, myself included however its finest not to get into this practice. The eyelash curler bends them into an extreme angle that is not natural, and also the possibility of damaging or drawing them out. If you are mosting likely to use them, be sure that lashes are clear of any mascara. Utilize the most effective lash curling iron that you could find supplying a thick sponge tip. Squeeze delicately, hold for a couple of seconds and after that launch the stress gradually. Carefully remove from the eye area.
Are all make-up solutions the exact same?
You will certainly find mascara that is waterproof and mascara that is water soluble. Stay clear of the waterproof on many celebrations. It must just be made use of in unique scenarios … like wedding celebrations or probably an occasional journey to the beach.
Is high price mascara any much better than the low cost ranges?
Not actually. No matter the kind you choose, it ought to not melt, flake or clump and you could not inform by the price of the mascara how great it is. Ask your friends for suggestions.
Exactly what should I understand?
In a word, mascara that has actually currently started to dry out. If you locate this taking place, take it back for a reimbursement or a new tube. To prevent your new tube from drying, don’t pump the stick right into the mascara. This carries air down into the tube, quickening the drying. You should additionally prevent picking a brand name that supplies a huge brush. Having a huge brush indicates that television needs to have a larger opening. Obviously, this enables even more air to enter the tube. Actually, I find the huge brushes are more of an obstacle compared to anything else making it more challenging to get to the lashes at the edges of your eyes.
Just what is the best way to eliminate mascara?
If you think of it, the use of eye makeup cleaners cause you to clean at the eye area as well as you do not want to do this. It triggers sagging and you already recognize exactly how delicate this skin is. Instead, utilize a cleanser that will certainly eliminate it.
Just what is the most effective means to use?
Upper Lashes: make use of a moving method beginning as near to the eyelash line as feasible and also layer to the end of the lashes delicately bending them upwards as you go. Powder the lashes as well as reapply.
Base lashes could be a little bit more complicated. You have to hold the stick perpendicular to the eye as well as parallel to the lashes. This stops mascara from tainting listed below the eye. It likewise permits you to strike the edges of the eyes utilizing this technique. As well as make sure to DO the reduced lashes. It looks odd if you disregard the reduced and simply dim the top lashes. On a last note, save an old brush that has actually been well cleaned up to remove any kind of globs that take place and also to separate lashes.
Are there any threats entailed with the use of mascara?
Absolutely … in a word, bacteria. It is incredibly essential to throw out mascara after 4 months utilize yet if there is an unusual odor originating from television prior to the throw out day, discard promptly. Bacteria contaminants found on the applicators and in the product could and have actually lead to severe eye damage, also blindness. Actually there are a number of situations on record that suggest that this isn’t really an isolated case or more.
Exactly what triggers mascara to flake?
It typically indicates that it is too old. Throw away immediately.
Exactly how do you quit your mascara from melting?
There is a mascara product on the marketplace that is flawlessly clear. After you apply your mascara, seal it with this item as well as the melting does not happen. Really, you could get back at a lot more mileage from the clear mascara using it to regulate ruly brows. Holds them in place well and is not noticeable.


Aims
Admin
Employee Records
Add new Employee
Category
Manager
Organizational Structure
DIvision
Department
Field
Section
Payroll
Employees
132
Add new employee
Add new category
Add new manager
Search
ID
Name
category
department
1
Some Name
Permanent Employee
Customer Care
2
Another Name
Casual Employee
Consulting
3
A much Longer Name
Contract Employee
Security


Noah B Johnson
Data Analysis & Visualization, Dr. Kent D. Lee
Luther College, Decorah IA
According to Gallup polls, 45% of Americans see “a great deal of bias” in the current news media. For reference, that number was 25% in 1989. With numbers like it’s easy to see that the concept of “fake news” is relevant to many Americans, but how can we measure bias in the media?
Sites like mediabiasfactcheck.com try to examine the bias of various news outlets and report on their findings. They use a variety of methods including identifying biased wording, story choices, and factuality. There are a few other sites with different methodologies, but the reality of social media echo-chambers means that their impact on media consumers is negligible.
In this report, I collected and examined articles from two biased news sites. Theblaze.com is a conservative news platform founded by conservative commentator Glenn Beck. On the liberal side, thinkprogress.org is a progressive political news blog run by the Center for American Progress. The center is, according to Wikipedia, a public policy research and advocacy organization which presents a liberal viewpoint on economic and social issues. Both of these sites are near the extreme end of their respective political biases, and they both often have their content go viral on social media. This makes them a perfect pair for analyzing the issue of media bias.
I used the pre-trained text analysis models from indico.io and the Natural Language Toolkit(NLTK) to generate variables for analysis. Using these variables, I created visualizations using Matplotlib and Seaborn to visually identify patterns in the data. The methods used in this report, although quantitative, are not necessarily statistically valid, and may include subjective suppositions.
The models I used for feature construction were pre-trained on unknown data sets. Due to the nature of pre-trained models, there may be a degree of bias against various viewpoints in the results of my analysis. I've done my best to mitigate this issue by normalizing where possible. However, there still remains a potential for bias, as the models were not tested for objectivity.
The terms of service on theblaze.com specifically prohibit the type of programmatic access and scraping used in this project. Both sites also prohibit archiving, downloading, or reproducing their content.
The law on programmatic scraping is murky at best, but I consider my access and use of article content and media to be protected under fair use and the first amendment for the sole purpose of academic research. This position is supported in earnest by CHRISTIAN W. SANDVIG, et al. v. JEFFERSON B. SESSIONS III, in his official capacity as Attorney General of the United States.
The analysis provided in this report is solely the responsibility of the author, and does not represent the views or opinions of Luther College or its faculty.
To collect data from theblaze.com articles, I took advantage of Wordpress’s predictable archival URL structure. A list of all the articles published in a day is available at theblaze.com/news/[year]/[month]/[day]. I was able to iterate through the dates to collate a list of article URLs to scrape. I then iterated over this list and used python’s BeautifulSoup to extract my data from the html.
Data collection for thinkprogress.org was much easier than the Blaze. I located the site’s RSS feed URL, and fed it into Python feedParser. Using the Wayback Machine from archive.org, I accessed historical RSS feed copies. The availability of the RSS feed allowed me to directly extract variables without needing to parse HTML.
At the end of the process, I had the following variables for both sites:
After collecting the data from both sites, I needed to clean the text to ensure maximum performance from sentiment analysis and topic modeling. The first step was to remove or convert the plethora of unicode characters that were in the article bodies. I used unicodedata.normalize() to extract ASCII text from the article bodies.
Next, I had to ensure that the datatypes were correctly interpreted in the data-frame, as they were mostly represented by strings in the original database. I converted author and site to categorical variables, and article published timestamp to date-time.
Finally, I constructed two metadata fields: Body Length in Characters, and Title Length in Characters. It was important to have these fields because many of the APIs for sentiment and topic modeling charge by 100 characters. It was also important to be able to estimate the time to compute a model locally if I decided to do so.
Most of the data that I scraped is next to useless on its own. I needed to add more information to the dataset in order to make any visualizations or conclusions.
I have very little experience in text-processing machine learning. Therefore, I decided that the best place to start would be an easy-to-use pre-trained model. It seems that the Vader model from the Natural Language Toolkit is widely used and accepted. I used the Text-Blob package to create a nice wrapper around the model, and was able to add the following columns:
I needed a better sentiment model in my dataset, but I didn’t want to spend countless hours training custom models on my local machine. After some deliberation, I decided that I would use a pre-trained sentiment analysis API. I’ve used Google Cloud ML and Amazon Comprehend before, but their pricing structure is geared towards live applications. Ultimately I decided to try the apis on indicio.io. They have great reviews, and good academic discounts. (Luckily for me they were offering free API usage as recompense for previous outages.) Using their python wrapper, I added the following columns:
With all of the grunt work out of the way, I began my analysis. The following are the questions I asked, the visualizations I used, and the conclusions I reached.
It seems that the news these days has been getting more and more negative. With the wide variety of available news sources, those with the most shocking stories often profit. I set out to test this hypothesis: Is news getting more negative? Using Matplotlib, I created some visualizations to help identify trends.
President Donald Trump is on of the hottest topics of discussion in news, biased news included. In order to understand how the content of biased news articles interacts with his approval rating, will test the following:
Do the sentiments of articles talking about Trump reflect his approval rating in any way, and how is the sentiment of the two sites different on this issue?
I got approval rating information from the American Presidency Project here. Using this data and matplotlib, I created some visualizations to help identify trends.
Clickbait is when titles or summaries of articles are designed to entice users to read. Headlines are often exaggerated, sensationalized, and sometimes downright false.
Like many other entertainment sources, politically biased news sites often employ clickbait tactics to drive readership.
By exploring the relationship between sentiment and emotion in articles' titles and bodies with plots, I hope to identify quantifiable characteristics of politically biased clickbait.
Both sites in my dataset are pretty extreme, so it will be interesting to see the results of these graphs.
I have no prediction as to how sentiment and political lean will interact. Ideally, the following plots will provide enough evidence to support findings.
I will first examine the emotion and sentiment of the two sites, and then explore the effects of political lean.
There is negligible difference between the ratios of emotions observed on the two sites. The largest change is in anger, which is 4% higher on Think Progress. All other changes combined add up to 4.5%
Both Think Progress and The Blaze have very right-skewed histograms for sentiment. Due to the severity of the deviation of the skew from a normal distribution, it's safe to say that the sites both have mostly negative content.
However, the two sites' sentiment histograms are not identical. The Blaze's histogram is basically flat at a .75 density at .35 and above. Think Progress almost gets down to .5 density at .5 sentiment, but then it gets back up past 1 density at 1.0 sentiment, forming what looks like a bimodal distribution.
The net result is a small difference in measures of central tendency, but a large qualitative difference.
There were many issues that I didn't have the time or data to do a robust analysis on, but I didn't want to omit them completely.
I decided the best route would be to include sentiment histograms, sentiment time plots, and a quick and dirty analysis for each issue.
| Issue | Histogram | Plot | Histogram | Plot | Analysis |
|---|---|---|---|---|---|
| The Enviroment | Think Progress has many positive articles, about half as many very negative, and plenty moderate. The Blaze has mostly negative articles. In July, 2016 the World Meteorological Organization released an urgent global warming report, likely influencing the major decrease in Think Progress Sentiment |
||||
| Gender Issues | Both sites have mostly very negative articles with a smattering of other sentiments. The rapid decrease in October, 2017 is likely due to the beginning of the "me too" movement. The rapid decrease in May, 2018 is likely due to Harvey Weinstein's trial and other legal actions as the "me too" movement reinvigorates. |
||||
| The Economy | Both sites' histograms are right-skewed, indicating a primarilay negative sentiment. The plot of The Blaze sentiment is trending downward, with a spike when Trump declared trade war. The plot of Think Progress sentiment is trending upward, with a spike around August 2017 and 2018. | ||||
| Guns | Neither site has obvious trends in the histograms. However, the plots over time are very telling. In October of 2017, the worst mass shooting in American history took place in Las Vegas, Nevada. There was an accompanying massive drop in sentiment on Think Progress, and an equally massive spike on The Blaze. | ||||
| Education | Both sites' histograms are right-skewed, indicating an abnormal negative sentiment. Neither site has an obvious trend in sentiment over time, but Think Progress drops when Betsy Devos is confirmed at Secretary of Education, and The Blaze spikes when a federal lawsuit against Title IX claims it is ‘offensive’ and ‘discriminatory’. | ||||
| Religion | Both sites' histograms are right-skewed, indicating an abnormal negative sentiment. However, The Blaze has more of a bimodal distribution than Think Progress, indicating a mix of positive and negative articles with few in-between. The drop in The Blaze around August 2017 is due to a few stories with less than .03 sentiment. They include a gay store owner kicking out Christian evangelists handing out pamphlets and mainstream media reaction to a picture of Trump praying with clergy The drop in Think Progress around June 2017 is due to two articles about a Mississippi funeral home refusing to pick up and cremate the body of a gay man due to religious conviction and the denial of a court case against the law that allowed them to do so. |
In summary, these were the patterns identified:
Through the use of pre-trained text analysis models, I was able to identify some trends and relationships in the data. However, the dataset is incredibly nuanced and deserves further analysis.
Further analysis is warranted on the following questions:
| count | mean | std | min | 25% | 50% | 75% | max | |
|---|---|---|---|---|---|---|---|---|
| titleLength | 8637.0000 | 80.1846 | 14.7566 | 14.0000 | 71.0000 | 82.0000 | 93.0000 | 123.0000 |
| bodyLength | 8637.0000 | 3529.0846 | 2450.6522 | 121.0000 | 2144.0000 | 2922.0000 | 4303.0000 | 86489.0000 |
| tb_BodyPolarity | 8637.0000 | 0.0637 | 0.0809 | -0.5112 | 0.0149 | 0.0618 | 0.1113 | 0.5175 |
| tb_BodySubjectivity | 8637.0000 | 0.4216 | 0.0814 | 0.0467 | 0.3706 | 0.4232 | 0.4724 | 0.8164 |
| tb_TitlePolarity | 8637.0000 | 0.0153 | 0.2530 | -1.0000 | 0.0000 | 0.0000 | 0.0841 | 1.0000 |
| tb_TitleSubjectivity | 8637.0000 | 0.2886 | 0.3242 | 0.0000 | 0.0000 | 0.1750 | 0.5000 | 1.0000 |
| indico_TitleSentiment | 8637.0000 | 0.4208 | 0.2937 | 0.0002 | 0.1540 | 0.3832 | 0.6743 | 0.9985 |
| indico_BodySentiment | 8637.0000 | 0.3908 | 0.3128 | 0.0001 | 0.1011 | 0.3224 | 0.6538 | 1.0000 |
| indico_TitleConservativeLean | 8637.0000 | 0.2382 | 0.1531 | 0.0000 | 0.1547 | 0.2031 | 0.2774 | 0.9924 |
| indico_TitleGreenLean | 8637.0000 | 0.2782 | 0.1972 | 0.0000 | 0.1247 | 0.2772 | 0.3787 | 0.9999 |
| indico_TitleLiberalLean | 8637.0000 | 0.2395 | 0.1376 | 0.0001 | 0.1703 | 0.2176 | 0.2748 | 0.9887 |
| indico_TitleLibertarianLean | 8637.0000 | 0.2441 | 0.1446 | 0.0000 | 0.1707 | 0.2166 | 0.2873 | 0.9751 |
| indico_BodyConservativeLean | 8637.0000 | 0.2519 | 0.2019 | 0.0000 | 0.0944 | 0.2079 | 0.3658 | 0.9910 |
| indico_BodyGreenLean | 8637.0000 | 0.1306 | 0.2551 | 0.0000 | 0.0090 | 0.0267 | 0.0906 | 0.9997 |
| indico_BodyLiberalLean | 8637.0000 | 0.3148 | 0.2394 | 0.0002 | 0.1274 | 0.2558 | 0.4546 | 0.9914 |
| indico_BodyLibertarianLean | 8637.0000 | 0.3027 | 0.2226 | 0.0000 | 0.1227 | 0.2602 | 0.4448 | 0.9936 |
| indico_TitleAnger | 8637.0000 | 0.2663 | 0.1871 | 0.0011 | 0.1189 | 0.2205 | 0.3756 | 0.9629 |
| indico_TitleJoy | 8637.0000 | 0.1398 | 0.1284 | 0.0010 | 0.0500 | 0.0987 | 0.1857 | 0.8914 |
| indico_TitleFear | 8637.0000 | 0.1884 | 0.1574 | 0.0012 | 0.0777 | 0.1405 | 0.2472 | 0.9388 |
| indico_TitleSadness | 8637.0000 | 0.2640 | 0.1392 | 0.0048 | 0.1607 | 0.2418 | 0.3459 | 0.9031 |
| indico_TitleSurprise | 8637.0000 | 0.1415 | 0.1769 | 0.0003 | 0.0263 | 0.0713 | 0.1808 | 0.9891 |
| indico_BodyAnger | 8637.0000 | 0.2022 | 0.1257 | 0.0136 | 0.1072 | 0.1692 | 0.2649 | 0.7488 |
| indico_BodyJoy | 8637.0000 | 0.1587 | 0.1028 | 0.0096 | 0.0872 | 0.1308 | 0.1990 | 0.7996 |
| indico_BodyFear | 8637.0000 | 0.1911 | 0.1010 | 0.0301 | 0.1210 | 0.1676 | 0.2350 | 0.8064 |
| indico_BodySadness | 8637.0000 | 0.3367 | 0.1132 | 0.0325 | 0.2539 | 0.3320 | 0.4132 | 0.7717 |
| indico_BodySurprise | 8637.0000 | 0.1114 | 0.1016 | 0.0039 | 0.0469 | 0.0780 | 0.1359 | 0.7549 |
| indico_hqSentiment | 8637.0000 | 0.4013 | 0.3158 | 0.0003 | 0.1067 | 0.3315 | 0.6792 | 0.9994 |
| titleEmotionScore | 8637.0000 | 0.4949 | 0.1313 | 0.0000 | 0.4047 | 0.4940 | 0.5833 | 1.0000 |
| bodyEmotionScore | 8637.0000 | 0.4843 | 0.1465 | 0.0000 | 0.3793 | 0.4828 | 0.5862 | 1.0000 |
| emotionScoreDifference | 8637.0000 | 0.0106 | 0.1978 | -0.6916 | -0.1220 | 0.0112 | 0.1482 | 0.6568 |
| totalAnger | 8637.0000 | 0.2891 | 0.1604 | 0.0000 | 0.1655 | 0.2612 | 0.3856 | 1.0000 |
| totalFear | 8637.0000 | 0.2244 | 0.1366 | 0.0000 | 0.1267 | 0.1918 | 0.2869 | 1.0000 |
| totalJoy | 8637.0000 | 0.2031 | 0.1350 | 0.0000 | 0.1051 | 0.1696 | 0.2653 | 1.0000 |
| totalSadness | 8637.0000 | 0.3401 | 0.1261 | 0.0000 | 0.2505 | 0.3302 | 0.4173 | 1.0000 |
| totalSurprise | 8637.0000 | 0.1520 | 0.1365 | 0.0000 | 0.0575 | 0.1065 | 0.1982 | 1.0000 |
| differenceAnger | 8637.0000 | 0.0642 | 0.2002 | -0.6877 | -0.0606 | 0.0396 | 0.1812 | 0.8379 |
| differenceFear | 8637.0000 | -0.0027 | 0.1671 | -0.7665 | -0.0962 | -0.0258 | 0.0705 | 0.7669 |
| differenceJoy | 8637.0000 | -0.0189 | 0.1459 | -0.7675 | -0.0960 | -0.0296 | 0.0461 | 0.7049 |
| differenceSadness | 8637.0000 | -0.0727 | 0.1627 | -0.6999 | -0.1810 | -0.0785 | 0.0284 | 0.5386 |
| differenceSurprise | 8637.0000 | 0.0301 | 0.1900 | -0.6590 | -0.0607 | -0.0076 | 0.0834 | 0.9318 |
| totalConservativeLean | 8637.0000 | 0.4900 | 0.2932 | 0.0000 | 0.2844 | 0.4347 | 0.6442 | 1.9196 |
| totalLiberalLean | 8637.0000 | 0.5543 | 0.3168 | 0.0003 | 0.3302 | 0.4880 | 0.7302 | 1.8988 |
| totalGreenLean | 8637.0000 | 0.4088 | 0.4004 | 0.0008 | 0.1595 | 0.3316 | 0.4610 | 1.9996 |
| totalLibertarianLean | 8637.0000 | 0.5469 | 0.3144 | 0.0000 | 0.3245 | 0.4955 | 0.7219 | 1.9446 |
| roundedSentiment | 8637.0000 | 0.4013 | 0.3159 | 0.0000 | 0.1100 | 0.3300 | 0.6800 | 1.0000 |
| normalizedSentiment | 8637.0000 | 0.4014 | 0.3161 | 0.0000 | 0.1100 | 0.3300 | 0.6800 | 1.0000 |
| count | mean | std | min | 25% | 50% | 75% | max |
| count | mean | std | min | 25% | 50% | 75% | max | |
|---|---|---|---|---|---|---|---|---|
| titleLength | 4118.0000 | 76.6173 | 15.1516 | 14.0000 | 67.0000 | 78.0000 | 88.0000 | 111.0000 |
| bodyLength | 4118.0000 | 4653.5894 | 2928.6980 | 121.0000 | 3088.2500 | 4149.0000 | 5590.0000 | 86489.0000 |
| tb_BodyPolarity | 4118.0000 | 0.0633 | 0.0678 | -0.4500 | 0.0216 | 0.0615 | 0.1032 | 0.5175 |
| tb_BodySubjectivity | 4118.0000 | 0.4179 | 0.0699 | 0.1111 | 0.3743 | 0.4197 | 0.4629 | 0.7444 |
| tb_TitlePolarity | 4118.0000 | 0.0181 | 0.2359 | -1.0000 | 0.0000 | 0.0000 | 0.0682 | 1.0000 |
| tb_TitleSubjectivity | 4118.0000 | 0.2782 | 0.3218 | 0.0000 | 0.0000 | 0.1000 | 0.5000 | 1.0000 |
| indico_TitleSentiment | 4118.0000 | 0.4134 | 0.2962 | 0.0002 | 0.1402 | 0.3682 | 0.6717 | 0.9972 |
| indico_BodySentiment | 4118.0000 | 0.3806 | 0.3090 | 0.0002 | 0.0973 | 0.3094 | 0.6355 | 0.9997 |
| indico_TitleConservativeLean | 4118.0000 | 0.2145 | 0.1387 | 0.0000 | 0.1344 | 0.1941 | 0.2551 | 0.9526 |
| indico_TitleGreenLean | 4118.0000 | 0.2951 | 0.2235 | 0.0000 | 0.1225 | 0.2815 | 0.3860 | 0.9999 |
| indico_TitleLiberalLean | 4118.0000 | 0.2597 | 0.1562 | 0.0001 | 0.1792 | 0.2256 | 0.3008 | 0.9840 |
| indico_TitleLibertarianLean | 4118.0000 | 0.2307 | 0.1410 | 0.0000 | 0.1569 | 0.2148 | 0.2781 | 0.9734 |
| indico_BodyConservativeLean | 4118.0000 | 0.1844 | 0.1674 | 0.0000 | 0.0505 | 0.1441 | 0.2730 | 0.9297 |
| indico_BodyGreenLean | 4118.0000 | 0.1778 | 0.3200 | 0.0001 | 0.0078 | 0.0244 | 0.1093 | 0.9997 |
| indico_BodyLiberalLean | 4118.0000 | 0.3878 | 0.2684 | 0.0002 | 0.1685 | 0.3477 | 0.5925 | 0.9914 |
| indico_BodyLibertarianLean | 4118.0000 | 0.2500 | 0.2103 | 0.0000 | 0.0733 | 0.2057 | 0.3865 | 0.9650 |
| indico_TitleAnger | 4118.0000 | 0.2704 | 0.1865 | 0.0011 | 0.1253 | 0.2247 | 0.3754 | 0.9504 |
| indico_TitleJoy | 4118.0000 | 0.1384 | 0.1243 | 0.0010 | 0.0503 | 0.1005 | 0.1855 | 0.8527 |
| indico_TitleFear | 4118.0000 | 0.1945 | 0.1588 | 0.0012 | 0.0820 | 0.1463 | 0.2577 | 0.9388 |
| indico_TitleSadness | 4118.0000 | 0.2609 | 0.1389 | 0.0048 | 0.1579 | 0.2371 | 0.3441 | 0.8111 |
| indico_TitleSurprise | 4118.0000 | 0.1358 | 0.1716 | 0.0003 | 0.0254 | 0.0692 | 0.1714 | 0.9891 |
| indico_BodyAnger | 4118.0000 | 0.2056 | 0.1251 | 0.0138 | 0.1100 | 0.1738 | 0.2717 | 0.7353 |
| indico_BodyJoy | 4118.0000 | 0.1664 | 0.1017 | 0.0165 | 0.0939 | 0.1398 | 0.2139 | 0.7996 |
| indico_BodyFear | 4118.0000 | 0.1933 | 0.1001 | 0.0358 | 0.1252 | 0.1703 | 0.2356 | 0.8064 |
| indico_BodySadness | 4118.0000 | 0.3285 | 0.1100 | 0.0325 | 0.2488 | 0.3226 | 0.4027 | 0.7150 |
| indico_BodySurprise | 4118.0000 | 0.1061 | 0.1006 | 0.0039 | 0.0439 | 0.0730 | 0.1265 | 0.7549 |
| indico_hqSentiment | 4118.0000 | 0.4014 | 0.3241 | 0.0003 | 0.0959 | 0.3239 | 0.6974 | 0.9991 |
| titleEmotionScore | 4118.0000 | 0.4965 | 0.1312 | 0.0177 | 0.4047 | 0.4940 | 0.5833 | 1.0000 |
| bodyEmotionScore | 4118.0000 | 0.4844 | 0.1465 | 0.0000 | 0.3793 | 0.4828 | 0.5862 | 0.9310 |
| emotionScoreDifference | 4118.0000 | 0.0122 | 0.1988 | -0.5984 | -0.1267 | 0.0129 | 0.1499 | 0.6568 |
| totalAnger | 4118.0000 | 0.2940 | 0.1585 | 0.0086 | 0.1727 | 0.2638 | 0.3896 | 1.0000 |
| totalFear | 4118.0000 | 0.2299 | 0.1368 | 0.0073 | 0.1317 | 0.1995 | 0.2926 | 0.9908 |
| totalJoy | 4118.0000 | 0.2079 | 0.1297 | 0.0000 | 0.1116 | 0.1790 | 0.2717 | 0.8959 |
| totalSadness | 4118.0000 | 0.3328 | 0.1238 | 0.0099 | 0.2439 | 0.3216 | 0.4120 | 0.8192 |
| totalSurprise | 4118.0000 | 0.1452 | 0.1321 | 0.0007 | 0.0533 | 0.1011 | 0.1889 | 0.9390 |
| differenceAnger | 4118.0000 | 0.0648 | 0.2021 | -0.5661 | -0.0638 | 0.0409 | 0.1813 | 0.8379 |
| differenceFear | 4118.0000 | 0.0012 | 0.1680 | -0.5617 | -0.0952 | -0.0254 | 0.0776 | 0.7669 |
| differenceJoy | 4118.0000 | -0.0280 | 0.1460 | -0.7675 | -0.1046 | -0.0372 | 0.0422 | 0.6581 |
| differenceSadness | 4118.0000 | -0.0677 | 0.1620 | -0.5810 | -0.1759 | -0.0761 | 0.0345 | 0.5327 |
| differenceSurprise | 4118.0000 | 0.0297 | 0.1870 | -0.6556 | -0.0559 | -0.0067 | 0.0807 | 0.9318 |
| totalConservativeLean | 4118.0000 | 0.3989 | 0.2502 | 0.0000 | 0.2249 | 0.3625 | 0.5329 | 1.8188 |
| totalLiberalLean | 4118.0000 | 0.6476 | 0.3599 | 0.0003 | 0.3837 | 0.6018 | 0.8954 | 1.8988 |
| totalGreenLean | 4118.0000 | 0.4728 | 0.4962 | 0.0013 | 0.1544 | 0.3325 | 0.4895 | 1.9996 |
| totalLibertarianLean | 4118.0000 | 0.4807 | 0.3004 | 0.0000 | 0.2691 | 0.4372 | 0.6501 | 1.9172 |
| roundedSentiment | 4118.0000 | 0.4015 | 0.3242 | 0.0000 | 0.1000 | 0.3200 | 0.7000 | 1.0000 |
| normalizedSentiment | 4118.0000 | 0.4015 | 0.3244 | 0.0000 | 0.1000 | 0.3200 | 0.7000 | 1.0000 |
| count | mean | std | min | 25% | 50% | 75% | max |
| count | mean | std | min | 25% | 50% | 75% | max | |
|---|---|---|---|---|---|---|---|---|
| titleLength | 4519.0000 | 83.4353 | 13.5968 | 18.0000 | 75.0000 | 85.0000 | 95.0000 | 123.0000 |
| bodyLength | 4519.0000 | 2504.3645 | 1208.6567 | 122.0000 | 1856.5000 | 2303.0000 | 2898.0000 | 36316.0000 |
| tb_BodyPolarity | 4519.0000 | 0.0640 | 0.0912 | -0.5112 | 0.0071 | 0.0622 | 0.1218 | 0.4667 |
| tb_BodySubjectivity | 4519.0000 | 0.4250 | 0.0905 | 0.0467 | 0.3654 | 0.4269 | 0.4837 | 0.8164 |
| tb_TitlePolarity | 4519.0000 | 0.0128 | 0.2676 | -1.0000 | 0.0000 | 0.0000 | 0.1000 | 1.0000 |
| tb_TitleSubjectivity | 4519.0000 | 0.2980 | 0.3261 | 0.0000 | 0.0000 | 0.2000 | 0.5000 | 1.0000 |
| indico_TitleSentiment | 4519.0000 | 0.4275 | 0.2913 | 0.0002 | 0.1637 | 0.3913 | 0.6766 | 0.9985 |
| indico_BodySentiment | 4519.0000 | 0.4000 | 0.3159 | 0.0001 | 0.1047 | 0.3380 | 0.6725 | 1.0000 |
| indico_TitleConservativeLean | 4519.0000 | 0.2598 | 0.1621 | 0.0006 | 0.1704 | 0.2110 | 0.3008 | 0.9924 |
| indico_TitleGreenLean | 4519.0000 | 0.2627 | 0.1682 | 0.0000 | 0.1262 | 0.2735 | 0.3746 | 0.9970 |
| indico_TitleLiberalLean | 4519.0000 | 0.2211 | 0.1151 | 0.0006 | 0.1621 | 0.2116 | 0.2553 | 0.9887 |
| indico_TitleLibertarianLean | 4519.0000 | 0.2564 | 0.1468 | 0.0005 | 0.1800 | 0.2190 | 0.2953 | 0.9751 |
| indico_BodyConservativeLean | 4519.0000 | 0.3133 | 0.2110 | 0.0001 | 0.1487 | 0.2716 | 0.4420 | 0.9910 |
| indico_BodyGreenLean | 4519.0000 | 0.0877 | 0.1650 | 0.0000 | 0.0100 | 0.0283 | 0.0820 | 0.9991 |
| indico_BodyLiberalLean | 4519.0000 | 0.2482 | 0.1861 | 0.0006 | 0.1084 | 0.2039 | 0.3375 | 0.9740 |
| indico_BodyLibertarianLean | 4519.0000 | 0.3508 | 0.2226 | 0.0002 | 0.1726 | 0.3102 | 0.4996 | 0.9936 |
| indico_TitleAnger | 4519.0000 | 0.2626 | 0.1876 | 0.0018 | 0.1144 | 0.2153 | 0.3756 | 0.9629 |
| indico_TitleJoy | 4519.0000 | 0.1410 | 0.1320 | 0.0020 | 0.0499 | 0.0966 | 0.1859 | 0.8914 |
| indico_TitleFear | 4519.0000 | 0.1829 | 0.1560 | 0.0016 | 0.0742 | 0.1340 | 0.2384 | 0.8971 |
| indico_TitleSadness | 4519.0000 | 0.2669 | 0.1394 | 0.0056 | 0.1632 | 0.2466 | 0.3462 | 0.9031 |
| indico_TitleSurprise | 4519.0000 | 0.1466 | 0.1815 | 0.0004 | 0.0268 | 0.0732 | 0.1892 | 0.9807 |
| indico_BodyAnger | 4519.0000 | 0.1990 | 0.1262 | 0.0136 | 0.1040 | 0.1654 | 0.2604 | 0.7488 |
| indico_BodyJoy | 4519.0000 | 0.1516 | 0.1032 | 0.0096 | 0.0814 | 0.1228 | 0.1878 | 0.7887 |
| indico_BodyFear | 4519.0000 | 0.1891 | 0.1019 | 0.0301 | 0.1166 | 0.1650 | 0.2340 | 0.8013 |
| indico_BodySadness | 4519.0000 | 0.3441 | 0.1155 | 0.0561 | 0.2589 | 0.3398 | 0.4225 | 0.7717 |
| indico_BodySurprise | 4519.0000 | 0.1162 | 0.1023 | 0.0045 | 0.0503 | 0.0828 | 0.1426 | 0.7026 |
| indico_hqSentiment | 4519.0000 | 0.4012 | 0.3081 | 0.0009 | 0.1192 | 0.3370 | 0.6703 | 0.9994 |
| titleEmotionScore | 4519.0000 | 0.4934 | 0.1315 | 0.0000 | 0.4047 | 0.4940 | 0.5833 | 0.9256 |
| bodyEmotionScore | 4519.0000 | 0.4842 | 0.1464 | 0.0000 | 0.3793 | 0.4828 | 0.5862 | 1.0000 |
| emotionScoreDifference | 4519.0000 | 0.0092 | 0.1969 | -0.6916 | -0.1199 | 0.0095 | 0.1444 | 0.6415 |
| totalAnger | 4519.0000 | 0.2847 | 0.1620 | 0.0000 | 0.1597 | 0.2577 | 0.3833 | 0.9366 |
| totalFear | 4519.0000 | 0.2194 | 0.1362 | 0.0000 | 0.1224 | 0.1852 | 0.2817 | 1.0000 |
| totalJoy | 4519.0000 | 0.1988 | 0.1395 | 0.0004 | 0.1003 | 0.1608 | 0.2583 | 1.0000 |
| totalSadness | 4519.0000 | 0.3468 | 0.1278 | 0.0000 | 0.2569 | 0.3374 | 0.4238 | 1.0000 |
| totalSurprise | 4519.0000 | 0.1583 | 0.1401 | 0.0000 | 0.0612 | 0.1118 | 0.2075 | 1.0000 |
| differenceAnger | 4519.0000 | 0.0636 | 0.1986 | -0.6877 | -0.0576 | 0.0387 | 0.1805 | 0.7432 |
| differenceFear | 4519.0000 | -0.0062 | 0.1661 | -0.7665 | -0.0970 | -0.0260 | 0.0646 | 0.7555 |
| differenceJoy | 4519.0000 | -0.0105 | 0.1453 | -0.6355 | -0.0852 | -0.0234 | 0.0502 | 0.7049 |
| differenceSadness | 4519.0000 | -0.0772 | 0.1631 | -0.6999 | -0.1849 | -0.0841 | 0.0234 | 0.5386 |
| differenceSurprise | 4519.0000 | 0.0304 | 0.1927 | -0.6590 | -0.0634 | -0.0085 | 0.0859 | 0.9160 |
| totalConservativeLean | 4519.0000 | 0.5731 | 0.3046 | 0.0018 | 0.3507 | 0.5138 | 0.7390 | 1.9196 |
| totalLiberalLean | 4519.0000 | 0.4693 | 0.2422 | 0.0048 | 0.3042 | 0.4268 | 0.5887 | 1.8634 |
| totalGreenLean | 4519.0000 | 0.3504 | 0.2739 | 0.0008 | 0.1634 | 0.3303 | 0.4453 | 1.9811 |
| totalLibertarianLean | 4519.0000 | 0.6072 | 0.3147 | 0.0027 | 0.3801 | 0.5503 | 0.7812 | 1.9446 |
| roundedSentiment | 4519.0000 | 0.4012 | 0.3081 | 0.0000 | 0.1200 | 0.3400 | 0.6700 | 1.0000 |
| normalizedSentiment | 4519.0000 | 0.4013 | 0.3084 | 0.0000 | 0.1200 | 0.3400 | 0.6700 | 1.0000 |
| count | mean | std | min | 25% | 50% | 75% | max |


@import java.io.{PrintWriter, StringWriter} @(ex: Exception)(implicit lang: Lang) @template(None, None, "") {
There was an internal error while processing the request!
@{
var w = new StringWriter()
ex.printStackTrace(new PrintWriter(w))
w.toString
}


A book for entrepreneurs that embraces mind, body, and spirit;
with an approach that honors your intuition while cultivating your inner badass.
Being Boss is full of real-life insights and bold strategies to help you define success, take charge
of your day, and create the life you’ve always wanted.
MELISSA HARTWIG, WHOLE30 CO-CREATOR AND #1 NEW YORK TIMES BEST-SELLING AUTHOR
Being Boss NOLA 2017 Recap
We just got back from our Being Boss New Orleans Vacation 2017, so let's talk about it! We had so many favorite moments meeting our bosses in-person, we've got some solid key takeaways now that the vacation is over, and we're sharing some of the nuggets of wisdom we got from our tarot card readings while we were in New Orleans
pment
Guests:N/A


--- author: display_name: JP email<EMAIL_ADDRESS>tags: - buildings - entities - facilities - society - state government categories: [] date: 2012-06-22 13:04:15 -0600 Facilities: hub: name: Utah State Facility Locations item_id: a2cc4865b1a94352922c1a83bda24ba5 updates: - 2017 --- {% include abstract.html name="State Facilities" stewards="UGRC & Other State Agencies" webapp="https://utah.maps.arcgis.com/apps/webappviewer/index.html?id=dad9d8f66e974748bbc371cb214e31f1" abstract="State Facilities contains locations for state owned or leased buildings." %}
This dataset contains a wide and varied collection, some schools in the k-12 system and also higher education buildings, Office buildings, port of entries, rest areas and fish hatcheries. It also contains many other facilities such as UDOT sheds, restrooms, and other smaller facilities. The web application showing this data, shows other facility data to give context.
For users wanting a full Schools data layer please see Schools & Libraries.
{% include contact.html subject=page.title contact=site.data.contacts.agrc %}


App to make environment safe by giving options to people of pooling the vehicle with other riders. Download it today!
PLAY STOREManaged by Shubham! Contact developer here
Enter some details like origin, destination, number of seats available with you and boom, now you have made ride available for others.
The find ride function enables the user to find the rides available from their location to upto their destination location.
View your rides creation and booing history.
Manage and update your profile details easily.
Managed by Shubham! Contact me here