Minimum Hardware Requirements:
AxiomCoders PDF Factory has lowest possible hardware requirements and should run on virtually any hardware which is able to run supported Operating Systems.
Recommended Hardware Requirements:
None specific. PDF Factory is simple native library that should run fine on any supported Operating System if downloaded exactly for that operating system.
Supported Operating Systems (x64 and x86 versions):
Microsoft Windows 2000 Professional
Microsoft Windows 2000 Server
Microsoft Windows XP
Microsoft Windows Server 2003
Microsoft Windows
Home Server
Microsoft Windows Vista
Microsoft Windows Server 2008
PDF Factory should work on Microsoft Windows 95 and Microsoft Windows 98 but we have not performed any tests on that operating systems.
PDF Factory should work on Linux operating systems but as this requires special builds please contact us.
Other Required Software
None


Edinburgh, Scotland
Innocent Railway Path
The U.K.'s first underground railway line is now a lively thoroughfare for runners and cyclists.
by SEANETTANext to Holyrood Park, near the foot of Arthur’s Seat lies a pathway that runs partially underground. It was once Edinburgh’s first railway line, where horse-drawn trams started bringing coal to Edinburgh from the mines further south. It started operating in 1831 as the Edinburgh & Dalkieth Railway Line, designed by Scottish civil engineer James Jardine.
A plaque at the entrance ascribes the name ”Innocent Railway” came from the horse-drawn trams being safer and more sophisticated than steam engines. Some sources attribute the name to the fact that there were no casualties while building the railway.
It was the first underground railway passage in the United Kingdom, stretching for an estimated nine miles. The railway was popular with the locals, and became more popular as a passenger line than as coal transport. In 1845 the railway switched to steam-operated trains.
After the coal depot at St. Leonard’s shut down, the railway ceased operation in 1963. In 1981 it was reopened for use as a pedestrian and cycle path, one of many in Edinburgh. It’s also part of the U.K. National Cycle Network’s Route 1.
The entrance can be tricky to locate, unless you know what you are looking for. Once you locate the entrance, the tree-lined trail can take you from the south side of the city, around the bird sanctuary of Duddinston Loch near Duddingston Village before continuing on southward.
Know Before You Go
The tunnel entrance off of St. Leonard's is slightly hidden. Situated on the opposite side of the road of Pollock Halls, near the entrance of Holyrood Park on the side of Salisbury Crags.
The pathway is open and accessible 24 hours a day. Access may be denied if there is a marathon or other such activity taking place. Signage will be displayed letting you know if entry is off limits.High-visibility clothing and a light are recommended if going after dark. There are lights in the tunnel, but they are sporadic on the footpath.
Visit Scotland with Atlas Obscura Trips
Scotland: Highland Clans and the Trail of Tartan
Learn More »
Community Discussion
-
No Comments Yet
Start the discussion. forum Visit our forums.


Item 6.g.
Use TuitionTracker 5 to describe recent trends at your own institution in the same way. Is your college or university better or worse in amount of student debt than the average in the US? The average for institutions of the same type?in-context


In my announcement for common_schema I have failed to deliver the following message:
I will be happy to receive contributions to common_schema, and I will be happy to have contributors on this project
What kind of contributions are wanted?
So, I'm mostly interested right now in:
- Views: providing more insight on metadata (data types, schemata, volumes, transactions, locks, connections, etc.)
- Views: SQL code generation (e.g. generate my FOREIGN KEYs)
- Functions: DETERMINISTIC, NO SQL, preferably no control flow inside, making for simple calls what is usually a typical, repeating function combination.
- Tables: small, static data that is handy to have around. But really, small.
Less interested in:
- Procedures
- OS dependent solutions (e.g. calling LOAD_FILE('/proc/meminfo') which only makes sense on Linux)
I've got a few ideas already, and have received contributions and ideas from others (I'm looking at you, Roland).
If you have a good idea you'd like to share, why don't you submit it under the Issues page (submit as "Request for new component")
Everything is done on my spare time, and there's not much of that. So, if you do submit something and it's not in right away, please be patient. Thanks!
comments powered by Disqus


The Invisible Man
by H.G. Wells
Chapter 12
Additional Information
- Year Published: 1897
- Language: English
- Country of Origin: England
-
Source:
Wells, H.G. (1897).
. London, England; Pearsons Magazine.
-
Readability:
- Flesch–Kincaid Level: 7.5
- Word Count: 1,736
- Genre: Science Fiction
- Keywords: duality of man, good vs. evil, science, scientific experimentation
- ✎ Cite This
Downloads
It is unavoidable that at this point the narrative should break off again, for a certain very painful reason that will presently be apparent. And while these things were going on in the parlour, and while Mr. Huxter was watching Mr. Marvel smoking his pipe against the gate, not a dozen yards away were Mr. Hall and Teddy Henfrey discussing in a state of cloudy puzzlement the one Iping topic.
Suddenly there came a violent thud against the door of the parlour, a sharp cry, and then -- silence.
"Hul-lo!" said Teddy Henfrey.
"Hul-lo!" from the Tap.
Mr. Hall took things in slowly but surely. "That ain't right," he said, and came round from behind the bar towards the parlour door.
He and Teddy approached the door together, with intent faces. Their eyes considered. "Summat wrong," said Hall, and Henfrey nodded agreement. Whiffs of an unpleasant chemical odour met them, and there was a muffled sound of conversation, very rapid and subdued.
"You all right thur?" asked Hall, rapping.
The muttered conversation ceased abruptly, for a moment silence, then the conversation was resumed, in hissing whispers, then a sharp cry of "No! no, you don't!" There came a sudden motion and the oversetting of a chair, a brief struggle. Silence again.
"What the dooce?" exclaimed Henfrey, sotto voce.
"You -- all -- right -- thur?" asked Mr. Hall, sharply, again.
The Vicar's voice answered with a curious jerking intonation: "Quite ri -- ight. Please don't -- interrupt."
"Odd!" said Mr. Henfrey.
"Odd!" said Mr. Hall.
"Says, `Don't interrupt,'" said Henfrey.
"I heerd'n," said Hall.
"And a sniff," said Henfrey.
They remained listening. The conversation was rapid and subdued. "I can't," said Mr. Bunting, his voice rising; "I tell you, sir, I will not."
"What was that?" asked Henfrey.
"Says he wi' nart," said Hall. "Warn't speaking to us, wuz he?"
"Disgraceful!" said Mr. Bunting, within.
"`Disgraceful,'" said Mr. Henfrey. "I heard it -- distinct."
"Who's that speaking now?" asked Henfrey.
"Mr. Cuss, I s'pose," said Hall. "Can you hear -- anything?"
Silence. The sounds within indistinct and perplexing.
"Sounds like throwing the table-cloth about," said Hall.
Mrs. Hall appeared behind the bar. Hall made gestures of silence and invitation. This aroused Mrs. Hall's wifely opposition. "What yer listenin' there for, Hall?" she asked. "Ain't you nothin' better to do -- busy day like this?"
Hall tried to convey everything by grimaces and dumb show, but Mrs. Hall was obdurate. She raised her voice. So Hall and Henfrey, rather crestfallen, tiptoed back to the bar, gesticulating to explain to her.
At first she refused to see anything in what they had heard at all. Then she insisted on Hall keeping silence, while Henfrey told her his story. She was inclined to think the whole business nonsense -- perhaps they were just moving the furniture about. "I heerd'n say `disgraceful'; that I did," said Hall.
"I heerd that, Mrs. Hall," said Henfrey.
"Like as not -- " began Mrs. Hall.
"Hsh!" said Mr. Teddy Henfrey. "Didn't I hear the window?"
"What window?" asked Mrs. Hall.
"Parlour window," said Henfrey.
Everyone stood listening intently. Mrs. Hall's eyes, directed straight before her, saw without seeing the brilliant oblong of the inn door, the road white and vivid, and Huxter's shop-front blistering in the June sun. Abruptly Huxter's door opened and Huxter appeared, eyes staring with excitement, arms gesticulating. "Yap!" cried Huxter. "Stop thief!" and he ran obliquely across the oblong towards the yard gates, and vanished.
Simultaneously came a tumult from the parlour, and a sound of windows being closed.
Mr. Huxter was stunned. Henfrey stopped to discover this, but Hall and the two labourers from the Tap rushed at once to the corner, shouting incoherent things, and saw Mr. Marvel vanishing by the corner of the church wall. They appear to have jumped to the impossible conclusion that this was the Invisible Man suddenly become visible, and set off at once along the lane in pursuit. But Hall had hardly run a dozen yards before he gave a loud shout of astonishment and went flying headlong sideways, clutching one of the labourers and bringing him to the ground. He had been charged just as one charges a man at football. The second labourer came round in a circle, stared, and conceiving that Hall had tumbled over of his own accord, turned to resume the pursuit, only to be tripped by the ankle just as Huxter had been. Then, as the first labourer struggled to his feet, he was kicked sideways by a blow that might have felled an ox.
As he went down, the rush from the direction of the village green came round the corner. The first to appear was the proprietor of the cocoanut shy, a burly man in a blue jersey. He was astonished to see the lane empty save for three men sprawling absurdly on the ground. And then something happened to his rear-most foot, and he went headlong and rolled sideways just in time to graze the feet of his brother and partner, following headlong. The two were then kicked, knelt on, fallen over, and cursed by quite a number of over-hasty people.
Now when Hall and Henfrey and the labourers ran out of the house, Mrs. Hall, who had been disciplined by years of experience, remained in the bar next the till. And suddenly the parlour door was opened, and Mr. Cuss appeared, and without glancing at her rushed at once down the steps toward the corner. "Hold him!" he cried. "Don't let him drop that parcel." He knew nothing of the existence of Marvel. For the Invisible Man had handed over the books and bundle in the yard. The face of Mr. Cuss was angry and resolute, but his costume was defective, a sort of limp white kilt that could only have passed muster in Greece. "Hold him!" he bawled. "He's got my trousers! And every stitch of the Vicar's clothes!"
"'Tend to him in a minute!" he cried to Henfrey as he passed the prostrate Huxter, and, coming round the corner to join the tumult, was promptly knocked off his feet into an indecorous sprawl. Somebody in full flight trod heavily on his finger. He yelled, struggled to regain his feet, was knocked against and thrown on all fours again, and became aware that he was involved not in a capture, but a rout. Everyone was running back to the village. He rose again and was hit severely behind the ear. He staggered and set off back to the Coach and Horses forthwith, leaping over the deserted Huxter, who was now sitting up, on his way.
Behind him as he was halfway up the inn steps he heard a sudden yell of rage, rising sharply out of the confusion of cries, and a sounding smack in someone's face. He recognised the voice as that of the Invisible Man, and the note was that of a man suddenly infuriated by a painful blow.
In another moment Mr. Cuss was back in the parlour. "He's coming back, Bunting!" he said, rushing in. "Save yourself! He's gone mad!"
Mr. Bunting was standing in the window engaged in an attempt to clothe himself in the hearth-rug and a West Surrey Gazette. "Who's coming?" he said, so startled that his costume narrowly escaped disintegration.
"Invisible Man," said Cuss, and rushed on to the window. "We'd better clear out from here! He's fighting mad! Mad!"
In another moment he was out in the yard.
"Good heavens!" said Mr. Bunting, hesitating between two horrible alternatives. He heard a frightful struggle in the passage of the inn, and his decision was made.
From the moment when the Invisible Man screamed with rage and Mr. Bunting made his memorable flight up the village, it became impossible to give a consecutive account of affairs in Iping. Possibly the Invisible Man's original intention was simply to cover Marvel's retreat with the clothes and books. But his temper, at no time very good, seems to have gone completely at some chance blow, and forthwith he set to smiting and overthrowing, for the mere satisfaction of hurting.
You must figure the street full of running figures, of doors slamming and fights for hiding-places. You must figure the tumult suddenly striking on the unstable equilibrium of old Fletcher's planks and two chairs, -- with cataclysmic results. You must figure an appalled couple caught dismally in a swing. And then the whole tumultuous rush has passed and the Iping street with its gauds and flags is deserted save for the still raging Unseen, and littered with cocoanuts, overthrown canvas screens, and the scattered stock in trade of a sweetstuff stall. Everywhere there is a sound of closing shutters and shoving bolts, and the only visible humanity is an occasional flitting eye under a raised eyebrow in the corner of a window pane.
The Invisible Man amused himself for a little while by breaking all the windows in the Coach and Horses, and then he thrust a street lamp through the parlour window of Mrs. Gribble. He it must have been who cut the telegraph wire to Adderdean just beyond Higgins' cottage on the Adderdean road. And after that, as his peculiar qualities allowed, he passed out of human perceptions altogether, and he was neither heard, seen, nor felt in Iping any more. He vanished absolutely.
But it was the best part of two hours before any human being ventured out again into the desolation of Iping street.


IntroductionFrequently asked questionsSyntax, keywords and built-in functionsStandard distributionimport implementationBrowser interface
Introduction - DOM API
Creating a document Accessing elements Attributes and methods Events Mouse events Keyboard events Focus events Drag events Query string Using Javascript objects and libraries Brython-specific built-in modules
browser
browser.ajax browser.html browser.local_storage browser.markdown browser.object_storage browser.session_storage browser.svg browser.timer browser.websocket javascript Working with Brython
Options of function
brython()
Installing the development environment Testing and debugging Deploying an application Brython for Firefox OSCookbook |
module browser.htmlThis module exposes the HTML tags. The tag name is in uppercase letters The classes defined are :
In the following link you can find the index of HTML tags with references (DRAFT).[Note: In the following examples we assume that the browser.html module has been imported as follows: from brower import html ]
The syntax to create an object (e.g. a hyperlink) is :
A( [content,[attributes]])
content is the child node of the the object ; it can be a Python object such as a string, a number, etc., or an instance of another class in the html module attributes is a sequence of keywords corresponding to the attributes of the HTML tag. If the attribute contains a hyphen (If content is an iterable (other than a string), all the items in the iterable become children of the object. For instance : html.UL(html.LI('item %s' %i) for i in range(5))creates an unordered list with the <li> tags in the generator expression
For the style attribute, the value must be a dictionary :
d = html.DIV('Brython', style={'height':100, 'width':200})or d = html.DIV('Brython', style=dict(height=100, width=200))The keyword arguments of style must be written by the Javascript syntax, not CSS : backgroundColor and not background-color. To avoid conflicts with the Python keyword, the attribute class must be capitalized : d = html.DIV('Brython', Class="container")You can also create an object without argument, then build it up:
link = html.A() link <= html.B('connexion') link.href = 'http://example.com'You can also create multiple elements at the same level by using the plus (+) sign : row = html.TR(html.TH('LastName') + html.TH('FirstName'))and you can add all the items in an iterable : from browser.html import * t = TABLE() t <= TR(TH('Number')+TH('Square')) t <= (TR(TD(i)+TD(i*i)) for i in range(10))Here is how to create a selection box from a list (by combining these operators and Python syntax) : from browser import document from browser.html import * document <= SELECT(OPTION(elt, value=i) for i, elt in enumerate(['one', 'two', 'three']))It is important to note that the creation of an instance of a class involves creating HTML from a single DOM object. If we assign the instance to a variable, you can not use it in several places. For example, with this code : link = html.A('Python', href='http://www.python.org') document <= 'Official Python Website: ' + link document <= html.P() + 'I repeat: the site is ' + linkthe link will only show in the second line. One solution is to clone the original object : link = html.A('Python', href='http://www.python.org') document <= 'Official Python Website: ' + link document <= html.P() + 'I repeat: the site is ' + link.clone()As a rule of thumb, instances of HTML classes have the same attribute names as the corresponding DOM objects. For example, it can retrieve the option selected by the selectedIndex attribute of the SELECT object. Brython adds
a few things to make the manipulation a bit more Pythonic
Let's see a more complete example. The code below have created the structure
in the blue panel. The blue panel is a div element with id="container"
attribute.
We will use this div to create an 'ugly' html structure inside with a div, a
table, a form and a HTML5 canvas:
|


Chichen
Itza
Mexico
Levi
Lapland
Europe
Nyon
Switzerland
Europe
Salu
Spain
Europe
San Miguel
Spain
Europe


| lesson 52 Mud is mud |
| My cousin, Harry, keeps a large curiously-shaped bottle on permanent display in his study. |
| Despite the fact that the bottle is tinted a delicate shade of green, |
| an observant visitor would soon notice that it is filled with what looks like a thick, greyish substance. |
| If you were to ask Harry what was in the bottle, he would tell you that it contained perfumed mud. |
| If you expressed doubt or surprise, he would immediately invite you to smell it and then to rub some into your skin. |
| This brief experiment would dispel any further doubts you might have. |
| The bottle really does contain perfumed mud. |
| How Harry came into the possession of this outlandish stuff makes an interesting story which he is fond of relating. |
| Furthermore, the acquisition of this bottle cured him of a bad habit he had been developing for years. |
| Harry used to consider it a great joke to go into expensive cosmetic shops and make outrageous requests for goods that do not exist. |
| He would invent fanciful names on the spot. |
| On entering a shop, he would ask for a new perfume called 'Scented Shadow' or for 'insoluble bath cubes'. |
| If a shop assistant told him she had not heard of it, he would pretend to be considerably put out. |
| He loved to be told that one of his imaginary products was temporarily out of stock and he would faithfully promise to call again at some future date, but of course he never did. |
| How Harry managed to keep a straight face during these performances is quite beyond me. |
| Harry does not need to be prompted to explain how he bought his precious bottle of mud. |
| One day, he went to an exclusive shop in London and asked for 'Myrolite', |
| the shop assistant looked puzzled and Harry repeated the word, slowly stressing each syllable. |
| When the woman shook her head in bewilderment, |
| Harry went on to explain that 'myrolite' was a hard, amber-like substance which could be used to remove freckles. |
| This explanation evidently conveyed something to the woman who searched shelf after shelf. |
| She produced all sorts of weird concoctions, but none of them met with Harry's requirements. |
| When Harry put on his act of being mildly annoyed, the assistant promised to order some for him. |
| Intoxicated by his success, Harry then asked for perfumed mud. |
| He expected the assistant to look at him in blank astonishment. |
| However, it was his turn to be surprised, |
| for the woman's eyes immediately lit up and she fetched several bottles which she placed on the counter for Harry to inspect. |
| For once, Harry had to admit defeat. |
| He picked up what seemed to be the smallest bottle and discreetly asked the price. |
| He was glad to get away with a mere twenty pounds and he beat a hasty retreat, clutching the precious bottle under his arm. |
| From then on, Harry decided that this little game he had invented might prove to be expensive. |
| The curious bottle, which now adorns the bookcase in his study, was his first and last purchase of rare cosmetics. |


Learn how to install and use Integrated Development Environments for different languages.
Learn the world's fastest growing and simplest programming language, used by scientists, engineers, mathematicians and more in our Python 3 curriculum.
Learn how to incorporate basic operators, loops, conditional statements and more in the world's most universal and popular coding language in the Kickstart Java course.
Learn how to create online games, formulate websites, and build complex programs with online text editors and compilers through the Kickstart C++ course.
Learn how to create complex and artistic apps on iOS platforms, including Augmented Reality and GPS tracking systems through our Swift course.
Learn necessary skills in HTML and CSS through creating your own responsive and modern website from scratch.
Learn the essential skills of C# through creating and publishing a game through Unity in this Kickstart course.
Learn the fundamentals of Pre-Algebra, including topics such as fractions, decimals, factors and multiples.
Learn the necessary skills of Algebra, including graphing, factoring, quadratic equations and more in this course.
Learn the basic fundamentals involved in the undestanding of Algebra 2, including functions and their behavior, in the Kickstart math course.
Learn the basic 3D design and printing by creating your own projects using the easy-to-use and free software, Tinkercad.
Learn the necessary steps involved in creating a financially stable future in the Kickstart Personal Finance Course.


{% extends "base.html" %} {% load i18n static %} {%block css %} {% endblock %} {% block content %}
{% trans "Your page could not be found. This can have several reasons: " %}
{% trans "Maybe these links will help you:" %}


Embedding a Lab Interactive
An simple web page embedding the
Lab Interactive
named:
Area versus Applied Pressure
.


I've been doing further work on the idea of application specific dashboards and have added a solar pv dashboard to show how much of realtime electricity consumption is being supplied by PV, plus a comparison graph and energy balance line.
Here's a screenshot:
This is available on emoncms.org under the new Apps tab where you will also find the MyElectric and MyHeatpump application specific dashboards. The code is also on github here and can be installed by dropping the app folder in your emoncms Modules folder https://github.com/emoncms/development/tree/master/Modules/app
Id like to extend this dashboard to include daily kwh data showing:
- solar pv production kWh/d
- house consumption kWh/d
- Imported electricity kWh/d
- Exported electricity kWh/d
and to document the process of setting up the feeds required and input processing (or potentially post processing) so that there is a clear guide available on getting this all up and running.
I've been trying to come back to this question of what do we need in emoncms for specific applications. How can we make emoncms work really well for solarpv, home energy monitoring, heatpump monitoring and then working backwards to work out what underlying core features required are.
There's some more information on the long term development of these ideas in the following forum posts and blog post for more context.
myelectric dashboard improvements v8.0.8
http://openenergymonitor.org/emon/node/4775
MyElectric mobile view:
http://openenergymonitor.blogspot.co.uk/2014/06/emoncms-mobile-view-my-e...
Heatpump dashboard:
http://openenergymonitor.org/emon/node/10123
Re: Application specific dashboards: Solar PV
This dashboard uses a naming convention in the same way as the heatpump dashboard. It looks for feeds with the names: solar_power and house_power. With the intention of reducing the amount of manual configuration required.
Re: Application specific dashboards: Solar PV
This looks great Trystan - awesome work.
One question - do the feed names have to adhere to your conventions, or can we configure it to use existing feeds already setup in an installation?
I will be looking to have a play with this very shortly, and the heatpump dashboard, once I figure out how to measure my flow/return temps!
Re: Application specific dashboards: Solar PV
Got this running on my local EmonCMS instance. How much data is needed before I will start seeing the pretty graphs ;)? What is the default grid view period?
Looks great so far though - once again, fantastic work!
Re: Application specific dashboards: Solar PV
That looks very slick! Here's my rough equivalent built from the traditional visualisations....
Re: Application specific dashboards: Solar PV
Yep - I have a similar set of graphs - but I do like the look/feel of this purpose built dashboard. Just wondering if something is wrong however, as I am still not seeing anything in the graphs or in the running totals at the bottom.
Trystan - does the dashboard only require the two solar/house power feeds? I.e. does it use them internally to count up the kWh totals? Or does it need accumulator feeds as well?
Re: Application specific dashboards: Solar PV
Hi Ben,
Have you renamed the feeds? I have just changed my "solar" and "grid" feeds to "solar_power" and "house_power" and instantly got these graphs, they chart the power use rather than energy used.
Although I think the sums may need looking at or maybe the labels are a little off.
I have produced around 14.4Kwh's PV and due to electric heating, hot water and a diverter, I haven't exported anything (0.4kwh to and fro in the sweet spot recorded) I have also imported around 9 kwh's from the grid so my house use should be 23kwhs and 60% ish solar and the rest from the grid.
I'm going to do some sums to check and watch it tomorrow as it maybe due to only just firing it up, maybe ?
Paul
Re: Application specific dashboards: Solar PV
Yep - renamed my feeds and I am seeing the 'now' values, just no graph or running totals at the bottom.
Also attached my feeds...
Re: Application specific dashboards: Solar PV
What type of feeds are they? mine are PHPfina.
Re: Application specific dashboards: Solar PV
Ah - mine are PHPFIWA - what is the difference there?!
Re: Application specific dashboards: Solar PV
@summerboy I've missed a step for local installs, this needs a modification to the feed engines (to get time accurate alignment between the two feeds) Il get that committed to github
Re: Application specific dashboards: Solar PV
Sweet - so my PHPFIWA feeds will be ok? Let me know when committed and I will update. Thanks again!
Re: Application specific dashboards: Solar PV
@pb66 is the house power feed your using just your grid import? do you have a house power feed independent of solarpv? including pv diversion?
Re: Application specific dashboards: Solar PV
I have calculated feeds I could find a whole house without solar incl divert.
My CT's are on grid, solar and divert.and my main calc feeds are export, import, Actual use (excluding bonus from diverter) and diverted.
I didn't consider my total use including surplus pv was a good KPI but if thats what's needed I can find one.
Paul
Re: Application specific dashboards: Solar PV
Aha! found a whole house which makes the totals more accurate, but the graph is a little less informative. As it doesn't show actual use which is the only part in my control, This is my current multigraph, which doesn't look any where near as good but it does have the actual import/export (blue)
Re: Application specific dashboards: Solar PV
The parts I missed are now in the master branch of emoncms, this will currently work with PHPFina and PHPFiwa feeds.
Re: Application specific dashboards: Solar PV
Great thanks Trystan - so I need to be running the latest master code for EmonCMS?
Re: Application specific dashboards: Solar PV
yes thats it, what are you currently running?
Re: Application specific dashboards: Solar PV
Ok - updated EmonCMS from master but still not seeing my graphs. Anything I can check in logs etc?
Re: Application specific dashboards: Solar PV
Been running all day and still nothing in my graphs. Happy to do some digging but I am pretty green when it comes to PHP/JS. Let me know if there is anywhere I can look to try and figure out why those graphs/running totals aren't workin.
Cheers,
Ben
Re: Application specific dashboards: Solar PV
So to be clear guys, is the rough sketch below the desired CT monitoring locations?
Re: Application specific dashboards: Solar PV
Hi Paul, That is I think the preferred layout for many reasons, however the CT location isn't dictated by this dashboard implementation
And if for example (using your diagram) you had a ct on each of "solar inv", "house r/m" and "diverted load" you could sum "house r/m" and "diverted load" into a feed called "house_power" and use that.
If your ct's are arranged as you've shown (which I suspect they are if you are using a diverter) then "house_power" is actually derived from "supply" and "solar inv" to get a new feed for house consumption including diversion but without solar.
Paul
Re: Application specific dashboards: Solar PV
Hi Ben, have you checked your file & folder permissions? I initially got the same problem as you, no graph or totals, only current readings.
Now working OK.
Paul
Edit, left 'app' folder as 755, but changed files within to 644
Re: Application specific dashboards: Solar PV
Thanks Paul - I just tried that but no luck. All files are already owned by root:root and I tried updating permissions to 755 but it made no difference. I noticed all my other modules are working fine with 644 permissions so I have switched back to that.
I have configured the heat pump app (with just the heatpump_power feed) and I am seeing an embedded graph on that app page (see attached). But still nothing in the solar app.
Re: Application specific dashboards: Solar PV
The Solar app presents itself with a clean modern design, but neither 'My Electric' or 'My Solar' within the 'app' folder render very well on mobile devices. The original 'My Electric' which is still present was a welcome advancement as it shrunk to the width/height of the mobile viewport and gracefully reduced the amount of visible data accordingly, however this does not happen in 'app/my electric' and users have to resize and drag the screen to view the data.
This may be because it's still in development.
Would it be possible to present mobile data slightly differently on mobile devices, building upon the original 'my electric' app, for example, using CSS to get a different view in portrait and landscape views. Portrait could display the text information, whilst landscape could display the graphical data?
Paul
Re: Application specific dashboards: Solar PV
Paul - are you running a local emoncms instance? Or emoncms.org?
Re: Application specific dashboards: Solar PV
Local on a Raspberry, with latest git updates.
It's strange that I got exactly the same issue as you before I changed permissions - see screenshot.
Paul
Re: Application specific dashboards: Solar PV
It must be a permissions issue of some kind. All other apps/dashboards/widgets are fine tho.
Re: Application specific dashboards: Solar PV
Just to recap what I did;
1) git pull emoncms to get latest commits
2) Recursively set permissions for the app folder and files within to root/root
3) Recursively CHMOD app folder & files within to 755
4) CHMOD all files within the app folder to 644
Paul
Re: Application specific dashboards: Solar PV
Yep - so it all looks fine I think - same as yours;
Re: Application specific dashboards: Solar PV
And I definitely have the latest code (from yesterday) for both emoncms and apps.
Re: Application specific dashboards: Solar PV
Exactly same as mine, so what is different?? Probably a question for Trystan or Paul B.
Paul
Re: Application specific dashboards: Solar PV
Ah ha - enabled the Chrome developer tools and can see this error;
Which is this line;
Re: Application specific dashboards: Solar PV
Thanks Ben, If you look under the network tab in developer tools and refresh the page can you see if any of the data requests return any errors? It should look like this
Re: Application specific dashboards: Solar PV
Any chance that its your feed names? I've double checked with a fresh local install of emoncms master branch and new PHPFIWA feeds named solar_power and house_power and it worked ok.
Re: Application specific dashboards: Solar PV
Ben has posted a screenshot of his feeds (8th post in this thread) and they appear to be correctly named.
Paul
Re: Application specific dashboards: Solar PV
Yep - get an error during the history call;
Which is reporting;
As Paul mentioned, I am pretty sure my feed names are right. And I am seeing the feed values in the big text widgets showing the instantaneous values. It is just the grid and running totals (kWh).
Re: Application specific dashboards: Solar PV
This is the line in code;
$this->redis->incr("fiveseconds:getdatahits");
I don't think I am using redis or even have it installed.
Re: Application specific dashboards: Solar PV
You can easily check;
...will return PONG if redis is running
I'm not familiar with the current functions of redis, but it is shown as required dependency here.
Paul
Re: Application specific dashboards: Solar PV
Yep definitely not installed then. I checked thru the rest of the feed_model.php code and everywhere else that a redis call is made there is first a check to see if it is being used. I.e. it is written to support both mysql and redis. However in that get_history() method this check isn't made and redis is always called - which is obviously the issue on my server since I am not using it.
Hopefully this is an easy fix for Trystan, it is a bit beyond me unfortunately!
Re: Application specific dashboards: Solar PV
Ah didn't notice that. I have been running EmonCMS v8 for over 6 months without it. And as I mentioned above the app module code seems to be written to handle no redis except for this one method.
Will wait and see what Trystan says and install if needed. Thanks for helping out with this Paul!
Re: Application specific dashboards: Solar PV
Sorry I left that line in by mistake from emoncms.org (part of emoncms.org load monitoring), I've now removed it. Probably easiest to just do a git pull.
Re: Application specific dashboards: Solar PV
Id recommend installing redis though, it will reduce the write load to your disks giving them more life and you may notice emoncms running a little faster.
Re: Application specific dashboards: Solar PV
Did a clean local install. Feed names are solar_power and house power. Redis is installed and running (PONG verified) Feeds are PHPFIWA. I have no graph. Just the running values at the top of the display.
EDIT - 1731
Did a git pull to incorporate Trystan's latest fix. Graph displays OK now.
Thanks, Trystan!
Re: Application specific dashboards: Solar PV
Brilliant - thanks Trystan - working like a charm now! I have also installed redis as you suggested - thanks for the tip. Great dashboard!
Re: Application specific dashboards: Solar PV
Great good to hear! Interested to hear what you think of the balance line? I originally added it in with the idea of simulating energy storage and aim to continue developing that idea but I also think it gives a clearer visualisation of how much of the consumption is provided by the solar, the energy balance.
Re: Application specific dashboards: Solar PV
Can't really say at this time, as I created a fresh feed 'house_power' using calculated data. Just as I completed it, my rent-a-roof inverter died on me!
So awaiting a replacement inverter, before I can get some data to play with.
Paul
Re: Application specific dashboards: Solar PV
Not sure I follow exactly what the energy balance line is showing. What is the scale on the left?
Not a great solar day here today...
Re: Application specific dashboards: Solar PV
@sumnerboy The scale is kWh. @Paul Reed, o dear hope you get the replacement!
Re: Application specific dashboards: Solar PV
Ah right - of course! So it is showing the trend for the period being viewed (i.e. it will always start at zero on the left). I think that is a very cool 'view' of the data actually - can see it being quite useful for a 'glance' to see how generation has been for the selected period.
Here is my system for a month view (remembering I am in the middle of summer down here ;)).
It is definitely a much clearer indication of how much PV is actually being generated/used.
Re: Application specific dashboards: Solar PV
Ben, if you use the arrows and scroll to the right, so as to view tomorrows data and thereafter, is it blank as in most emoncms graphs, or as per the attached screenshot where the last recorded value is continually replicated.
Paul
Re: Application specific dashboards: Solar PV
I see the same as you Paul - the latest value is constant going into the future.
Re: Application specific dashboards: Solar PV
thats a great screenshot of the last month! very nice to see it balancing!
The behaviour when scrolling is expected. This is down to the way the underlying calculations work. Il try and look at that in future versions.
Re: Application specific dashboards: Solar PV
The scrolling issue doesn't bother me too much Trystan - just noticed it the other day. But I typically just click D/W/M to view specific periods and don't tend to move around with the +/- buttons.
Yeah - I think that month view is great indicator of how useful/interesting the energy balance line is. My solar array seems to be very well matched to my house load (in summer at least), the only issue being of course I have no storage do have to export during the day and import at night. If only there were cheap storage solutions I would be close to zero net import at this time of year.
Re: Application specific dashboards: Solar PV
@Trystan - I just had to upgrade PHP to v5.4 in order to upgrade my owncloud server to the new v8. Now as a result I am having trouble getting redis/dio to work.
When I type php5 -v I get;
I can see the dio.so/redis.so files are in /usr/lib/php5/20090626/ not /usr/lib/php5/20100525/ where it is looking (and where all the other php modules seem to be). The only ones in the 2009 folder are the dio and redis modules.
Sorry but I am a complete noob when it comes to php so I am a bit lost and Googling doesn't seem to have any answers. How can I install the dio/redis modules for php5 v5.4?
Many thanks for this OT support ;).
Re: Application specific dashboards: Solar PV
A bit more Googling and I found out how to update my PHP modules;
http://anton.logvinenko.name/en/blog/how-to-install-redis-and-redis-php-...
Re: Application specific dashboards: Solar PV
Please forgive the Noob question:
I have 2 CTs connected to my system.
1) reads the PV supply coming in
2) reads the imported power from the grid
How do I configure my inputs/feeds to make them work for the above dashboard, which is awesome :)
i.e do I need to add both together to make home_power? and if, how do I do that?
Thanks in advance
Re: Application specific dashboards: Solar PV
Yes, that's what I've done. Just add the following processes to an input.
Reset to zero
+ input grid
+ input solar
log to feed
Paul
Re: Application specific dashboards: Solar PV
Paul
Thanks for confirming my thinking.
My struggle is now how to actually do this....
Re: Application specific dashboards: Solar PV
Go to your inputs page, and edit your existing 'power' input node and add the processes that I have listed above, which will log the data to your new 'house_power' feed.
The app will automatically pick up the feed by itself.
Have a try, and if you get stuck, let me know and I'll post a screenshot.
Paul
Re: Application specific dashboards: Solar PV
Pier, (Camden) from your PM it appears that you are still having problems setting this up.
I have attached below a screenshot of the processes added to my 'imported power' input which may help.
If you are still having issues, please post in the forum where others may benefit from the solution. It would be useful if you could add some screenshots of the issue, and your processes (like mine).
Re: Application specific dashboards: Solar PV
Got to say, the more I use this dashboard, the more I like it!
It's a nice clean design, and shows so much important information in a format which is really easy to digest.
I have been using a nominal figure for 'diverted energy' so far (the wattage of the immersion heater) which works OK whilst the thermostat is closed, but of course continues to rack up energy readings after the water reaches temperature and the thermostat opens). Although this dashboard doesn't isolate the 'diverted energy', it does give an accurate picture of the solar energy being used within the home, which is much better than what I had previously.
Paul
Re: Application specific dashboards: Solar PV
Yep - it is an extremely easy-to-read layout and gives a nice clear picture of how my system is performing. The energy curve is also quite useful - nice to see how a sunny day effects my energy profile, compared to a cloudy one.
I am also playing around with the heatpump app. Last thing needed is temp sensors on my flow/return pipes. It is still summer here so no urgency yet...
Re: Application specific dashboards: Solar PV
Thanks Paul, thanks Ben. Hope to add to these soon, I've made a start on making them all configurable. Also want to make it possible to use multiple feeds for consumption and have it add them up on the fly. I've been working on making emoncms.org multiserver/scalable over the last week as were nearing server capacity, making good progress, have a second dedicated storage server up and running now. Will describe in more detail very soon once I get a moment.
Re: Application specific dashboards: Solar PV
I tried this out today and it is really great, thank you!
A note on the layout- don't underestimate how big some solar arrays are - the ranch account I tried the app on had usage of 17,000w and generation of 12,000w causing the large Power Now and Solar PV numerals to to overrun the "Balance" text a bit!
If we could change the scale or units to kW that would fix the problem I think.
Thanks for all of your hard work.
Re: Application specific dashboards: Solar PV
Thanks JD, Il see if I can add that to the configuration.
I've updated the application specific dashboards to resize better for different screen sizes and you can now select the feed id to use, it still tries to automatically detect feeds with naming convention if they are still there, but you can now override that.
There's also a new dashboard that brings in wind power data based on uk wind power output.
Re: Application specific dashboards: Solar PV
Is the update on Github yet? I've just checked development/Modules and the app folder is showing no changes for past 3 weeks.
Paul
Re: Application specific dashboards: Solar PV
Hello Paul, code is now up on github, Il start another thread to describe how to use, it requires both new app module and a new emoncms development branch to use.
Re: Application specific dashboards: Solar PV
Hi there,
I'm using pvsolar on emoncms.org and it's great! How can I install it on my emoncms local? I'm running vers. 8.4.0.
I tried with git clone but it doesn't work.
Thanks
Re: Application specific dashboards: Solar PV
Hi, the latest version and instructions are in a different thread - http://openenergymonitor.org/emon/node/10297
Paul
Re: Application specific dashboards: Solar PV
I've started using the My Solar app and really like the graphics and layout, although it doesn't resize as well atm on my phone screens as it does on my tablet screens. edit 31/03/15 now resizes well on old galaxy s2 phone and on newer S4 phone and still works well on old and new tablets as before.
I think I'm using it slightly differently to others though as I have set mine up so that 'power now' is 'just' power used by the house ie. not including none essentials such as immersion diverter or electric car charging which I use to automatically mop up any export if possible. This means that the 'balance" figure in the middle is not necessarily import/ export but rather an at a glance figure showing 'spare PV available for household use' , so my missus can get a good idea if there is enough PV available to put say, the dishwasher on during the day or to leave it until E7 period, for example.
The figures at the bottom showing energy usage " in this window" may IMO be more meaningful if changed to the same figures but shown for yesterday, today so far, and all time. edit....31/3/15...figured out that when window is resized energy in window also resizes so info now makes more sense.
An idea for future development might be a second page with a stacked bar chart showing graphically the split of solar PV usage on site. I have my emontx continuous Wh sketch calculating exactly where my PV production has gone and it would be nice to be able to see this represented on a stacked solar bar chart page. Maybe with Solar energy production overlaid with solar used by house as default but it would be good to be able to choose up to say 5 feeds instead of the default overlays. I already have a dashboard showing via a bar chart the amount of daily solar production I've used for essential household use, by the immersion diverter, for charging my electric vehicles and how much I've exported back to the grid but the graphics are not as good as the app graphics and I can't get the individual feeds to 'stack' on my dashboard.
Re: Application specific dashboards: Solar PV
Trystan - I jave just pulled the latest emoncms code and the latest development/Modules/app code. But my app dashboards are broke.
When I try to view the solar PV dashboard I get the instantaneous feeds showing up but no graph. Looking in the JS console there is an error at line 251;
var interval = (app_mysolarpv.house_data[1][0] - app_mysolarpv.house_data[0][0])/1000;
Which says;
Uncaught TypeError: Cannot read property '0' of undefined
It looks like my house_data array only has a single value, but this line is trying to access the first two elements. This was all working fine prior to the update and there is plenty of data in that feed.
I am also seeing errors on the My Electric dashboard. It is showing the instantaneou feed ok, but shows NaN for the 'Use Today' value.
And finally the graphs in my heat pump dashboard are empty as well!
Sorry for so many issues - but this was all working fine till I upgraded - wondering what I have done wrong!!
Cheers,
Ben
Re: Application specific dashboards: Solar PV
Hello Ben, you may need to clear/refresh your browser cache for that page, the last update should actually fix that error..
Re: Application specific dashboards: Solar PV
No change after clearing my browser cache. I also tried on a different browser (IE) but it was the same.
I have deleted the /Modules/myelectric and /Modules/node folders from my emoncms install - should this make a difference?
Re: Application specific dashboards: Solar PV
Just to confirm - I am running code from the master branches of;
https://github.com/emoncms/emoncms
https://github.com/emoncms/development
Re: Application specific dashboards: Solar PV
The 'USE TODAY' in v8.5 does not work either, shows 0.0kWh continually..

Solar PV and Heatpump dashboards now working as expected. My Electric is working but like Paul the Use Today value is showing NaN.
Re: Application specific dashboards: Solar PV
Ben, what type of feed are you using for the bar graph feed in My Electric?
Re: Application specific dashboards: Solar PV
But now my feeds have stopped updating with the following in my Apache logs. I open my Account page and Timezone is showing 0. If I try to update it looks fine in the UI but as soon as I navigate away from the account page, and come back, it is reset to 0. So the change isn't being persisted.
Edit - wrapped long lines - BT
Re: Application specific dashboards: Solar PV
EDIT: Ignore me - I forgot to upgrade the DB. Apologies!
Re: Application specific dashboards: Solar PV
Have you updated the emoncms database? Admin > Update Database
Paul
Re: Application specific dashboards: Solar PV
No I hadn't Paul - really sorry for spamming with this stupid mistake! Upgraded and it seems to be working nicely now. Thanks for the tip - I actually figured it out just before you posted.
Re: Application specific dashboards: Solar PV
seems to be working nicely now...
Does that include 'my electric' 'use now'?
Paul
Re: Application specific dashboards: Solar PV
Nope - that is still NaN.
EDIT: after fiddling around a bit more my MultiGraph has sprung into life.
Re: Application specific dashboards: Solar PV
I have installed a fresh copy of debian and I can get the power now and solar figures to show but no graph.
Am I missing something?
Re: Application specific dashboards: Solar PV
Hello!
Same problem.
Look here:
http://openenergymonitor.org/emon/node/10495#comment-29816
Re: Application specific dashboards: Solar PV
Love this dashboard - nice work! I just got mine setup.
Is there any way I can make it publically accessible so I can share the link around without it requiring a login?
I'm also hoping to set it up on my wall permanently on an old android device.
Re: Application specific dashboards: Solar PV
You could save it as an 'app' using App Geyser for android.
I did this and then installed the app on my girlfriends phone. When the app is opened it goes directly to My Solar app without her having to enter any passwords or search about in emoncms. She uses it to check if there is enough spare solar power to run the dishwasher or washing machine etc.
Re: Application specific dashboards: Solar PV
From emoncms, browse to the app and the url should contain your apikey as a get parameter. That url can be used to access the 'app' without authentication.
Chrome for Android had an 'add to home screen' menu item to place a link on the home screen without the need to turn it into an app.
On the subject of API keys, does anyone know why My Solar uses the RW key rather than the RO? I'd feel more comfortable sharing the link if it worked with read only credentials.


Use piping, verbs like 'group_by' and 'summarize', and other 'dplyr' inspired syntactic style when calculating summary statistics on survey data using functions from the 'survey' package.
| Version: | 0.3.3 |
| Depends: | R (≥ 3.1.2) |
| Imports: | dplyr (≥ 0.7), magrittr, rlang, survey, tibble |
| Suggests: | convey, DBI, dbplyr, ggplot2, knitr, Matrix, rmarkdown, pander, RSQLite, MonetDBLite, survival, testthat, vardpoor |
| Published: | 2018-05-22 |
| Author: | Greg Freedman Ellis [aut, cre], Thomas Lumley [ctb] |
| Maintainer: | Greg Freedman Ellis <greg.freedman at gmail.com> |
| BugReports: | https://github.com/gergness/srvyr/issues |
| License: | GPL-2 | GPL-3 |
| URL: | http://gdfe.co/srvyr, https://github.com/gergness/srvyr |
| NeedsCompilation: | no |
| Materials: | README NEWS |
| In views: | OfficialStatistics |
| CRAN checks: | srvyr results |
| Reference manual: | srvyr.pdf |
| Vignettes: |
extending-srvyr databases-srvyr srvyr Compared to the survey Package |
| Package source: | srvyr_0.3.3.tar.gz |
| Windows binaries: | r-devel: srvyr_0.3.3.zip, r-release: srvyr_0.3.3.zip, r-oldrel: srvyr_0.3.3.zip |
| OS X binaries: | r-release: srvyr_0.3.3.tgz, r-oldrel: srvyr_0.3.3.tgz |
| Old sources: | srvyr archive |
| Reverse suggests: | PNADcIBGE |
Please use the canonical form https://CRAN.R-project.org/package=srvyr to link to this page.


stories/fill_the_brief/FillTheBrief.story
Scenario: Fill the brief
Given the user is on the RSP home page
When the user go to brief page
Then they should see the definition '$definition' (PENDING)
@Then("they should see the definition '$definition'")
@Pending
public void thenTheyShouldSeeTheDefinitiondefinition() {
// PENDING
}


Web Developer Examples and Resouces
Web Forms
When it comes to the overall user experience, there are many aspects of a website that are important. Using web forms is a full-proof way of getting feedback from visitors and prospective clients. It also allows you to establish relationships. Taking the time to perfect these web forms is something that often gets overlooked and results in complex web forms that cause a negative user experience (Puri).
A webform allows visitors to get in contact with you by requesting certain information like an order inquiry or a catalog, which then gets placed into a database. In some instances, information submitted through the webform is transferred straight to the company’s e-mail. Webforms can be made using PHP, HTML, or JavaScript (Puri).
Web forms can make or break your website. A clear and concise web form will increase your chances for success, while a confusing one can impede your efforts. Below I have included steps that will guide you in creating more effective and efficient web forms.
5 Key Elements of a Web Form
Structure - this encompasses the order of fields and the layout. By ordering the form in a logical manner, users will have a much better experience.
Input Fields - these areas ask the user for certain data, ie text fields, password fields, checkboxes, sliders, etc.
Field Labels - tells the user what is required in the input field.
Action Buttons - when the user presses this button, action will occur.
Feedback - this tells the user the result of their input. This feedback can be affirmative “Thank You For Submitting Your Request” or corrective “Oops, an Error has Occurred.” (“5 Tips for Designing the Perfect Web Form | The Manifest”)
Less Is More
Simply put, users don’t enjoy filling out webforms. The number of fields you have plays a crucial factor in the decision a user makes (making a purchase or completing a task), which can ultimately end up in abandoning your website and looking elsewhere. When creating input fields, you should be selective of what you ask your users. It should be kept at a bare minimum so that users are able to achieve their goals quickly instead of getting bored and losing interest.
Sometimes short forms aren’t practical due to the complexity of the service or product, in this case, the best way to tackle these forms would be by using stepped forms. This allows you to break up your form into sections and sometimes different screens. Use radio buttons to help get users through the forms quickly and efficiently. Another thing you may want to consider in more intricate web forms would be including a completeness meter/progress bar, which informs the user how far along in the form they are (“Guidelines for Awesome Web Form Design”).
No Assistance
Since web forms don’t respond to users in a “human” way, sometimes interaction between a user and the webform might feel somewhat one-sided. To eliminate the chances of users feeling confused by your form, designers should provide assistance and inline validation. These two tools help outline what the user needs to do and can point out where and how they went wrong. Assisting a user consists of providing insight by placing hints or notes as they progress through a form. Inline validation, on the other hand, is a type of response the form has whenever the user inputs incorrect data. This can be achieved through different ways, most commonly being a red text placed under the pertaining entry field, indicating that the data is invalid. Implementing these elements alerts the user they have made a mistake on the spot (“Guidelines for Awesome Web Form Design”).
The ultimate web form is created by initiating a user’s action and anticipating better user participation. Filling out a webform shouldn’t be a tedious or daunting task, that’s why it’s so important that it is concise and simple. There are many things designers can do in order to accomplish this. By at least following these basic webform guidelines, you will be on your way to making your users happy.


Symptoms:
Symptoms of a heart attack can vary from person to person. They may be mild or severe. Women, older adults, and people with diabetes are more likely to have subtle
or unusual symptoms. Symptons in adult may include:Changes in mental status, especially in older adults.Chest pain that feels like pressure, squeezing, or fullness.
the pain is most often in the center of the chest.It may also be felt in the jaw, shoulder, arms, back, and stomach. It can last for more than a few minutes, or come and go.
Mostly found Symptons:-
Cold sweat
Lightheadedness
Nausea (more common in women)
Numbness,aching, or tingling in the arm (Usually the left arm,but the right arm may be affected alone, or along with the left)
Shortness of breath
Weakness or fatigue, especially in older adults and in women Do's:
Have the person sit down, rest, and try to keep calm
Loosen any tight clothing
Ask if the person takes any chest pain medicine, such as nitroglycerin, for a known heart condition, and help them take it
If the pain does not go away promptly with rest or within 3 minutes of taking nitroglycerin,call for emergency medical help
Have the person sit down, rest, and try to keep calm
If an infant or child is unconscious and unresponsive, perform 1 minute of CPR Dont's:
Don't leave the person alone except to call for help, if necessary
Don't allow the person to deny the symptoms and convince you not to call for emergency help
Don't wait to see if the symptoms go away
Don't give the person anything by mouth unless a heart medicine (such as nitroglycerin) has been prescribed


All modules for which code is available
- diamondback.commons.Log
- diamondback.commons.RestClient
- diamondback.commons.Serial
- diamondback.filters.ComplexBandPassFilter
- diamondback.filters.ComplexExponentialFilter
- diamondback.filters.ComplexFrequencyFilter
- diamondback.filters.DerivativeFilter
- diamondback.filters.FirFilter
- diamondback.filters.GoertzelFilter
- diamondback.filters.IirFilter
- diamondback.filters.IntegralFilter
- diamondback.filters.PidFilter
- diamondback.filters.PolynomialRateFilter
- diamondback.filters.PolyphaseRateFilter
- diamondback.filters.RankFilter
- diamondback.filters.WindowFilter
- diamondback.models.DiversityModel
- diamondback.models.GaussianMixtureModel
- diamondback.models.GaussianModel
- diamondback.transforms.ComplexTransform
- diamondback.transforms.FourierTransform
- diamondback.transforms.PowerSpectrumTransform
- diamondback.transforms.WaveletTransform
- diamondback.transforms.ZTransform


THE PHILADELPHIA STORY A film review by James Davis Nicoll Copyright 1991 James Davis Nicoll
I checked out the local video store last night, hoping to pick up a good action flick. Some jerkwad had already rented I COME IN PEACE and MARKED FOR DEATH, but next to the recent releases shelf, was a shelf labeled "classics" (old films). I *like* old stuff; I must have seen RAIDERS OF THE LOST ARK and ALIEN a dozen times, so I figured "what the hell?" and started looking through the old stuff.
What I picked was this movie called THE PHILADELPHIA STORY. I remembered hearing something about a sci-fi flick about a teleporting battleship, and I *like* sci-fi stuff, but that's not all this movie has. The back of the box mentions a character named "Tracy Lord," who was a porn-star back in the 80s. I think this is great.  Hey, I understand the seamy side of the porn industry! I've seen LETHAL WEAPON three times.
I get home and pop the movie in the VCR.  It isn't my machine, because when I take it out and put in ROBOCOP II, the colour works okay. Fine, the movie's probably made in Taiwan, or Canada or some other third world country that makes cheap films.  Third-worlders really know how to make good eye- gougers.
Next problem: the love story. Now, I understand why you need a love story in a film; it gives the squeeze something to watch while you grope her, and you can get good sex stuff in the film, too.  The thing is, the damn love story just kept going and going, and we don't even get to see any skin. They even have this pool scene that would have been perfect for a skinny- dipping scene, and they blow it by having the woman wear clothes. Actually, she was pretty flat, so maybe they had a good reason. Anyway, most of the movie is about this woman, and her boyfriends, I think. They never say *anything* about her porn career, and anyway, the woman playing Tracy Lord is way too old for the part.
The really big problem is that there's *no* action!  These guys wear fedoras and *everything*, but no one gets shot. You'd figure that with two husbands of Lords and a boyfriend too, they'd at least have a ten- minute fight scene, but the weenie playing the boyfriend goes down with the first punch! Geez! The guy in RENEGADES was gutshot and he did more! All the good stuff is missing: no car chases, no gun fights, no martial arts. All these people do is talk, talk, talk. At least I had time to nuzzle the babe. It's not like the movie had anything going on.
They drink a lot, more than me and the guys do, even, and they didn't throw up as much, either.
Anyway, THE PHILADELPHIA STORY is a lousy action sci-fi film, and I'm sorry I wasted the $2.00 to rent it.
James Nicoll
Now, if the first three weren't serious, is it likely this one is?
.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Chào bạn, tôi là Phạm Thanh Duy, là một 9X đến từ Bình Dương. Tác giả của blog Tôi Thắc Mắc. Tôi là một developer, kiêm blogger, kiêm cài win dạo, bla bla bla… và đủ thứ lu xu bu khác.
Trong quá trình học tập, làm việc tôi gặp rất nhiều câu hỏi, rất nhiều thắc mắc. Có thắc mắc tôi trả lời được, có thắc mắc tôi không trả lời được. Chắc hẳn bạn cũng giống tôi 😅.
😎 Vì thế tôi tạo nên blog Tôi Thắc Mắc, nhằm chia sẻ những thắc mắc tôi gặp và cách giải quyết của tôi. Đôi lúc, ở đâu đó trên trái đất này, bạn cũng có thắc mắc giống tôi, hy vọng cách giải quyết đó có thể giúp bạn giải quyết thắc mắc của bạn, hay chí ít bạn có thể tham khảo nó.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
Contrary to popular belief, Lorem Ipsum is not simply random text.  Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.
The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).
There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc.
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.  Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?"
"But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure?"
"At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio.  Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat."
"On the other hand, we denounce with righteous indignation and dislike men who are so beguiled and demoralized by the charms of pleasure of the moment, so blinded by desire, that they cannot foresee the pain and trouble that are bound to ensue; and equal blame belongs to those who fail in their duty through weakness of will, which is the same as saying through shrinking from toil and pain. These cases are perfectly simple and easy to distinguish. In a free hour, when our power of choice is untrammelled and when nothing prevents our being able to do what we like best, every pleasure is to be welcomed and every pain avoided. But in certain circumstances and owing to the claims of duty or the obligations of business it will frequently occur that pleasures have to be repudiated and annoyances accepted. The wise man therefore always holds in these matters to this principle of selection: he rejects pleasures to secure other greater pleasures, or else he endures pains to avoid worse pains."


folk.ai
Classify Between Chhau and Kathakali, Two Classical Dance Forms of India Using Artificial Intelligence
Results
Prediction: {{ output }}
Use the "back" button of your browser
to upload another image to get prediction.
Copyright- Ritobrata Ghosh 2020


-webkit-transform-origin
Sets the origin for the -webkit-transform property.
The -webkit-transform-origin property establishes the origin for transforms applied to an element with respect to its border box.
The values may be expressed either as a CSS length unit or as a percentage of the element’s size. For example, a value of 50% 50%
causes transformations to occur around the element’s center. Changing the origin to 100% 0%
causes transformation to occur around the top-right corner of the element. The default value is 50% 50%
.
If only one argument is provided, it is interpreted as the horizontal position.
-webkit-transform-origin: posx;
-webkit-transform-origin: posx posy;
The x origin as a percentage or value.
The y origin as a percentage or value.


Before Change
known = {get_transformed(k): v for k, v in local_rv.items()}
self.known = known
self.local_vars = [v for v in model.free_RVs if v in known]
self.global_vars = [v for v in model.free_RVs if v not in known]
self.order = ArrayOrdering(self.local_vars + self.global_vars)
self.flat_view = model.flatten(
vars=self.local_vars + self.global_vars
After Change
vars=self.local_vars + self.global_vars
)
self.grad_scale_op = GradScale(cost_part_grad_scale)
self._setup()
self.shared_params = self.create_shared_params()
def _setup(self):
pass


This keyboard site allows typing with Aṉangu-Yolŋu letters. The output is Unicode, which is a standard way to represent characters. The advantage is that text can be understood on any computer or mobile device, even without a special font.
Enter text in AYolNTU font here. Use the "convert" button below to change the text to Unicode.
How to use the keyboard:


Payments
- Room
-
{{vm.payments.roomName}}
- Customer
-
{{vm.payments.customerName}}
- Date Of Join
-
{{vm.payments.dateOfJoin | date:'mediumDate'}}
- Amount
-
{{vm.payments.amount}}
- Payment Date
-
{{vm.payments.paymentDate | date:'mediumDate'}}
- Payment From
-
{{vm.payments.paymentFrom | date:'mediumDate'}}
- Payment To
-
{{vm.payments.paymentTo | date:'mediumDate'}}
- Payment Status
-
{{vm.payments.paymentStatus}}
- Payent Against
-
{{vm.payments.payentAgainst}}
- Comments
-
{{vm.payments.comments}}
- Building
-
{{vm.payments.buildingName}}


Arrests in Los Angeles
Los Angeles is the second most populous city in Unites States, it has a population of about 4 millions and represents a very important financial, cultural and commercial hub on the West coast. There is a lot of data about Los Angeles and in this article the arrests will be discussed in depth. There are important facts that have to be analyzed and the article will focus on four of the five W's [5]:
- Where are the arrests being made? Where are the safe and dangerous areas in the city?
- Who is mainly getting arrested? Do we have any race/gender/age group that is mainly responsible for making illegal things?
- When do we have the most arrests? Do we see any trend that can lead to some conclusions?
- What did the people get arrested for? What are the main reasons for getting arrested in Los Angeles?
The public data set used is provided by the City of Los Angeles and contains all arrests conducted in the 21 Los Angeles Police Department (LAPD) divisions between January 1st, 2010 - April 13th, 2018.
In terms of the Narrative Visualization Genre [1], it will represent a mix between Magazine Style and Annotated Charts mainly, including different interactive visualizations and discussions about analyzed results. A special focus will be put on underlying how the visualization helped to get this results and how it facilitated realizing some trends that might derive after analysis of such data.
Initial Video Presentation
Here is the video that was initially made as the first step towards creating the narrative visualization. The major change that can be spotted is the genre which was initially selected as a Slide Show, but after analyzing the user experience it was decided that the Magazine Style in combination with the Annotated chart will provide a nicer experience for the user, so that he/she can read it like a short story about arrests in Los Angeles.
Where? Locations in divisions
An interactive map visualizing the arrests in each division
In order to answer the question of where the arrests are happening, a map is visualizing the most criminal LAPD divisions in terms of total arrests between 2010 and 20181. The colors indiciate how many arrests have been conducted in each division. Even with a lower number of total arrests, the division might suffer from more crime per capita.
It is possible to click each division and have all arrests in that specific division shown on the map. A timeline appears below the map showing the number of arrests conducted each day in the division. One can use the brush to select a desired time span, and the plotted arrests are updated in the map accordingly.
1 During the data research and analysis, it has not been possible to collect data about the population in each division. This would have been particular useful to show the percentage arrest rate in each division.
Looking at the map, three divisions stand out due to a significantly darker red color, namely Hollywood, Central and Pacific. Central is with 113,288 arrests the most criminal division, with Hollywood, 109,332 arrests and Pacific, 91833 arrests following right after. It is seen that there's a huge drop in number of arrests to the 4th most criminal division being 77th Street with 62,348 arrests. The least criminal division is West Los Angeles with only 25,281 arrests.
By clicking into the divisions, one can see how the arrests are distributed location wise. It is interesting to use the brush to recognize any patterns over time. One can for instance decrease the visible time span and see if crime has moved towards other areas of the division.
Who? Races, gender and age group analysis
Representation of arrests over time in scatter plots
The arrests in Los Angeles, like in many other cities are strongly correlated with the gender/race type and age group. Therefore, analyzing the data based on these characteristics brings additional insights about making a general opinion about who is responsible for this problem in Los Angeles.
All
Gender
Race
Age
In order to get the real insights of the arrests in respect to gender, race and age group, two Scatter Plots were made:
- Total Number of Arrests: In this scenario the total number of arrests is shown, it can be seen the strong male numbers dominance over females, as well as the primary races in terms of total numbers in the following order: Hispanic, Black, White, Other and Asians races. In terms of ages it can be seen pretty clearly that the interval 20-29 is predominant, but not so far are 30-39 and 40-49, in the same time a dramatic decrease of 10-19 can be noticed in 8 years, in 2010 it was close to 20-29 but than it decreased to one of the smallest ones. As expected 0-9 and 70+ are the categories with the littlest arrests.
- Number of Arrests per 1000: Even though the total number shows the most arrests by gender and race, it can be misleading due to the fact that the number is strongly correlated with the total number of inhabitants by race. As a result, the second scatter plot shows the number of arrests per 1000 inhabitants of the total gender/race population. The results of this analysis show some interesting insights that were not covered by the first scatter plot, especially in the race difference, even though Hispanic have the most arrests in the total count, because of their higher population, the number per 1000 is actually closer to the White race than to the black one. In the end, the blacks race tops up with a huge difference compared to the rest of the races, followed by Other race type which in the first scatter plot was in the bottom, but taking it into consideration to the total population it comes second actually, Hispanic and White come next and the Asians still have the last spot in terms of arrests. Regarding gender difference, the same huge gap between males and females applies because their population is almost equal. In terms of age, the same trend is noticed for most of the categories like in the scatter plot: "Total number of arrests distribution per race/gender over time".
Distribution comparison of arrests based on Gender, Race and Age
After the analysis of arrests in the Scatter plots, the Donut Charts bring a visual representation of arrests over all 8 years in one picture, not over time. This represents an easy way to realize the ranking of gender and races in terms of number of arrests.
The donut chart "Distribution of arrests based on Race" shows that the ranking is dominated by Hispanic having close to 50%, followed by the Black and White Race. Other races and Asians have a very small contribution of less than 6%. On the over side the total race population has to be taken into account when looking into these numbers as shown in the Scatter plot with "Number of arrests per 1000 inhabitants based on race/gender over time".
The donut chart "Distribution of arrests based on Gender" shows that the dominance of males in terms of arrest is very clear, close to 80 % of arrests is represented by males.
And lastly, the donut chart "Distribution of arrests based on Age" shows that the Age distribution is dominated by three categories: 20-29, 30-39 and 40-49 which accounts for about 70% of all arrests with the highest arrest % seen in the category: 20-29. Right after 10-19 and 50-59 categories are situated, both of them having 13% and the last three categories are represented by very young or very old people: 60+ and 0-9 categories. Looking at these results, it can be seen that an individual being between 20 and 49 years old is most likely to be arrested compared to others.
When? Visualizing arrests in a calendar
Exploring patterns in days, months and weeks
To investigate when the arrests have been conducted, a calendar is an intuitive visulization and a concept that most people are familiar with. The arrests from all divisions have been aggregated and grouped into dates e.g. January 1st, January 2nd et cetera. With there calendar there is a possibility to recognize patterns during the different days, weeks and months. Looking at the calendar with all years represented, it seems that the early months of a new year is generally more criminal2
The calendar is annotated with fixed holidays and celebration days like 4th of July, Halloween et cetera. This allows to see if there tends to be more or less arrests during these occasions. One can hover over the highlighted dates and get the name of the day.
Investigating the calendar with all years represented, it doesn't reveal any surprising day-to-day outliers. During christmas days, and especially around December 24th and 25th, significantly less crime is committed. There also seems to be notably lower number of arrests during the last week of November. Looking into the months and seasons, there seems to be a small drop in crime during a calendar year, with the months, January, February, March and April being the most criminal months. This raises new hypotheses, for instance it could be interesting to compare the crime calender with a tourism ditto to see any correlations.
2 By using the term criminal, is only in the context of actual conducted arrests. It might also be, that the police has conducted less arrests without bringing down crime. If this is the case, the calendar might also show, that the police is less efficient during specific time periods. The calendar is not conclusive and will open up for an inductive research approach establishing multiple hypotheses from the observations.
By only reporting the summarized data i.e. for all years, it is interesting to decompose the data and look into the specific years. This might reveal daily outliers (bright/dark red). Click the + Expand years button to dive into each year3.
3 Only fixed holidays/celebration days are highlighted in the calendars. Changing occasions like Super Bowl and easter are not highlighted in the calendars. Feel free to hold the specific calendar together with a list of red-letter days for further analysis.
What? Types of committed arrests
Looking into the different kinds of arrests
To find out what kind of crimes happen in the Los Angeles area, a treemap that groups all the crimes that happened between 2010 and 20181 can be analyzed. The treemap contains 27 different types of felonies with the most important subgroups.
To give a more detailed overview of the data the user can hover over each node in the map and a more detailed description will be shown.
The map clearly shows that the main felonies committed in Los Angeles are related to alcohol and/or drugs. The main crime is Drinking in public with 106,548 arrests, followed by Driving under the influence of alcohol/drugs, and drug possession. The next 2 categories have been field by assault and prostitution-related felonies.
Explainer
Contents
1. Motivation
2. Basic stats
3. Genre
4. Visualizations
4.1 Zoomable map with brushable timeline
4.2 Scatter plots
4.3 Doughnut chart
4.4 Calendar using aggregated and decomposed data
4.5 Treemap
5. Discussion
6. Contributions
1. Motivation
Contents
1. Motivation
2. Basic stats
3. Genre
4. Visualizations
4.1 Zoomable map with brushable timeline
4.2 Scatter plots
4.3 Doughnut chart
4.4 Calendar using aggregated and decomposed data
4.5 Treemap
5. Discussion
6. Contributions
The driving force for selecting a final dataset was mainly to be able to analyze a lot of data and to come up with a story for the user. As a result the selected dataset represents the Arrests in Los Angeles, it consists of 1.16 millions rows and 17 columns, showing the information such as personal information (race, gender), type or arrest(murder, drunkenness etc.), location of the arrest etc. Combining all these data can result in a wide analysis of arrest in the second biggest city in United States. In addition to the actual analysis, we created a story line in the following manner: there are 4 main questions to be answered so that the user will get the whole picture of arrest in Los Angeles. The questions are the following: where did the arrest happen? who did it? when did it happen? and how was it made (what type of arrest was made). Answering these basic questions it will be able to provide the user with detailed analysis and moreover it will underline past/present and future trends in this area.
2. Basic stats
Once the dataset was selected, an obvious initial step consisted in data cleaning and prepossessing. Because the tasks were mainly divided by visualizations inside the team, two main processing languages were used Python to prepare CSV data files for scatter plots and donut charts and GO to process JSON files for the map, calendar and treemap. This step consisted mainly in counting the number of arrests based on different categories, like: location, race, gender etc. and it served as an input for the visualizations made in D3.
In this paragraph more details about the dataset will be discussed, it was already mentioned that it has 1.16 millions rows and 17 columns. Different visualizations used data from different columns, for the map, the "Arrest Date", "Area Name" was mainly used to show the location of the arrest, for the scatter plots and donut charts: "Sex Code", "Descent Code" and "Age" were mainly used, the calendar used the "Arrest Date" column and finally the treemap used the "Charge Group Description" and "Charge Description". As it can be seen various columns were used to show different parts of the story and especially to emphasize the whole picture of arrests in Los Angeles. The main scope of data processing of these columns was to count the number of arrests per specific unit such as date, race, gender etc. The selection of the dataset was strongly based on the assumption that many different angles of the problem could be tackled and in the end it fulfilled the expectations.
3. Genre
The story line has a combination between Magazine Style and Annotated Charts, it is very similar to a blog post which analyzes some problem and tackles piece by piece individual parts of the problem.
The Visual Structure of the project is delivered using a Consistent Visual Platform which is aided by Google material design, giving the website a coherent look and feel. Through the charts, time-related guidance is given with the help of a Timebar. For Highlighting data of interest the user is able to use Zooming and Feature Distinction to get a better understanding of the data. The view is arranged in such a way that the user can find the answer to for basic questions such as: Where, Who, When, How. This gives a continuity to the story.
The project has a Liner Structure, but as it is a website Random Access to the different sections of the article is possible with the help of links. By using elements such as Hovering Details, and Filtering the user Is able to manipulate and interact with the data. The Message is delivered to the user through constructs such as Headlines, Introductory text, and Summaries.
4. Visualizations
4.1 Zoomable map with brushable timeline
A map has been chosen to show where the arrests have been conducted. As it would have been a computational impossible task to visualize all the arrests in one map, binning had to be done. Binning the arrests into divisions seemed logical, and the overall map thus reports the crime for each division. To visualize arrests in the divisions, the data was structured in dates with locations and a total count. This allowed for using the brush aswell. The zoom-to-feature functionality is implemented with a d3 transition zooming to the bounds of each feature and transforming all elements in the map according to the zoom. The basemap [3] shows the 21 different LAPD divisions. The legend is created using the extended d3 library from Susie Lu [4].
4.2 Scatter plots
The Scatter plots are mainly responsible to answer the question who was arrested and to analyze the trends in respect to Gender, Race and Age group. The dataset shows continuous data over 8 years, and the scatter plot fulfills the aim of providing a simple and easy to understand way for the user. As it can be seen, the declining trends in terms of number of arrest made in Los Angeles is visible from the first look and in addition to that, comparison between different genders, races and age groups is very easily made. Even more cross-category comparison can be done in a very easy manner, for example if a user wants to see if a race has more arrests than maybe the whole feminine gender. All these analysis is made very clear and easy to use for the user, that's why scatter plot is one of the primary visualizations of the story line.
4.3 Doughnut chart
It is easy to compare the arrests over time, but Donut charts make an additional step towards consolidating the answer to the question of who is getting arrested. The Donut charts make a summary of all 8 years of data into one small circle which gives straight away information to the user about what genders get arrested the most, what races get arrested the most and as well as which age group gets arrested the most. The correlations between the analysis between the scatter plots and the donut charts validates some trend analysis and underlines the biggest and smallest categories in each group of persons who get arrested.
4.4 Calendar using aggregated and decomposed data
The idea of using a calendar quickly emerged while discussing which visualization to use for reporting "when". Having only the overall calendar for all years would leave out possibly essential information, thus including the year-specific calendars shown on demand proved useful. The data were grouped into years and dates with the total number of arrests in all divisions. Including holidays and celebration days were also done to help the reader correlate the data with these days. It would have been convenient to include changing days as mentioned in the section.
4.5 Treemap
The treemap is used o give a visual answer to the what question. The figure organizes the data both in an intuitive and hierarchical way. The map summarizes the type of felonies committed during the last 8 years. The data is not only organized by size but by using different colors, the user cat a better understanding of both the main crime that happens in Los Angeles but also the types of crime committed.
5. Discussion
The aim of this project has been to answer four of the five W's, namely who was involved, what happened, when did it happen and where did it take place of the arrests in LA. By using the big data set of all arrests conducted between 2010 - 2018, different visualizations could be used to try answer these questions. The description of the data and the data itself was analysed, and mulitple candidate visualizations were suggested. The suggestions were discussed, and the result were a map, scatter plots, calendars and a treemap, with each of them focusing on one particular question.
The zoomable map has an interesting and tempting interaction, that allows user to dive into each of the divisions, and furthermore play with the data in a finer detail using a brushable timeline. The visualization itself however did not present remarkable results to the authors of this project. The visualization did both on a top-level (whole map) and with a finer granularity (division) show fairly general results, allowing for only a few hypotheses to be proposed. On the whole map, it could have been interesting to include a brushable timeline aswell, to identify trends e.g. if some divisions would be more or less criminal over time. In each division, it would also have been convenient to be able to start an animation over time, that is, the moving brush would have a smaller extent and the map would be updated by itself. This can however be achieved manually, but it is not as convenient as an "Animate" button.
To answer who was involved, the scatter plot were used, as it can both show trends over time and also compare categories with each other. Looking as basic demographics like gender, race and age, two charts were made to visualize both the total number of arrests and the number of arrests per 1000 capita. The charts developed are able to show a significant amount of information allowing for multiple interpretations. A minor thing that could be improved are the conveience of having a "toggle all" in each of the categories. Doughnut charts were also used report more overall results from the three different categories. One could argue that the same results could also be interpreted from the scatter plots. The doughnut chart acts as an easy digestible visualization that also leaves out some interesting results seen from the scatter plots. It could be interesting to be able to look into the different categories, e.g. by clicking on a specific race in the doughnut chart. The chart could be updated showing e.g. the age distribution or the gender distribution for that specific race.
In order to answer when the arrests were conducted, a calendar were used. This proved quite useful and allowed for easily grasping a lot of details (for instance 365 days) in a very limited space while still keeping the overview. Aggregated data were used to see trends on a higher level, that is, if some months or weeks were over represented in the data set. To cope with Simpson's paradox, multiple calendars for specific years were also shown, which would enlighten if wrong interpretations were made from the overall calendar. The visualization is quite satisfactory, as it helped report time data in an intuitive and compact way.
The treemap helped answer what the arrests were conducted for. A treemap were used as it was recognized as an explanatory and compact way of showing hierarchical data that is, many groups with many subgroups. A classic barchart for each category could also have been used. The fact, that the user cannot zoom into one category expanding the subgroups is a notably issue. The developed chart as of now shows a good amount of information, but the expand function would enhance the experience and increase the results even more.
With the addresseds concerns mentioned above, the conclusion of the project is, that the visualizations to a high degree helped answering the "W" questions, allowing the reader to get a quick and detailed overview of the arrests in Los Angeles. Using Material Design Lite as the design, also enhanced the readibility and user experience from a usability point of view. Future work could include a way to link the different visualizations with each other, so that clicking a divsion on the map, would show division specific data for all the other visualizations and vice versa. In that way, the exploration of the data would seem near endless allowing for an enourmous amount of combinations. The d3.js library really provided its strengths to the project allowing the authors to generate complex visualizations with big data sets.
6. Contributions
- Map: Main Contributors (Jesper Mark, Alexandru Savin)
- Scatter Plots: Main Contributor (Cristian Zara)
- Donut Charts: Main Contributor (Cristian Zara)
- Calendar: Main Contributor (Jesper Mark)
- Treemap: Main Contributor (Alexandru Savin)
References
[1] E. Segel and J. Heer, "Narrative Visualization: Telling Stories with Data", in IEEE Transactions on Visualization and Computer Graphics, vol. 16, no. 6, pp. 1139-1148, Nov.-Dec. 2010.
[2] S. Murray, "Interactive Data Visualization for the Web", 2nd Edition, 2017
[3] http://boundaries.latimes.com/set/lapd-divisions/


In this example, the main window communicates with two iframes. Each iframe exposes an object that has properties and methods.