Hi, I have managed to get the basic energy monitoring setup working, but I would now like to add humidity and temperature monitoring as well. I have followed this thread: http://openenergymonitor.org/emon/node/2389 and made the suggested board changes, but I am now failing miserably as to what to do next. I have uploaded the example humidity sketch but I don't know if it's working as I don't know how to setup Emoncms to read the data (if there is any) From reading through the forum I believe that I would also need to merge sketches together if I wish to gather the info from all the sensors at the same time. Is there a guide on how to do this? I fear this is a little way beyond my ability. Any help would be appreciated.
Adding temperature and humidity sensing to an existing standard setup
Submitted by PhilThy on Mon, 03/06/2013 - 21:14»
Re: Adding temperature and humidity sensing to an existing standard setup
Which humidity example sketch are you using? And which sketch do you want to merge it with?
Re: Adding temperature and humidity sensing to an existing standard setup
Hi Robert, thanks for your reply.
I tried the emontx_lowpower_temperature_humidity sketch, but I'm beginning to think this might not be what I need. I would like to be able to measure power usage alongside temperature and humidity within my home, so I thought that the EmonTx CT123 + Voltage example and a suitable temperature/humidity sketch would need to merged.
Re: Adding temperature and humidity sensing to an existing standard setup
OK, I'll have a look at those
tomorrowlater today ( ! ). It should be fairly easy to merge the sketches: what needs to be done is start with the voltage & current sketch, and add in the humidity part without duplicating anything that's already there. There are two ways to play this: either I can do it all for you - but I won't be able to test it as I haven't got a humidity sensor, or I can steer you through the process. The latter will be far better for you in learning how to do it yourself. Can you give me an honest guide to your knowledge of programming?But first, you'll want to check that your sensor is working. In the humidity sketch, find the lines:
and add after them:
That will display the two values on the serial monitor every few seconds.
Re: Adding temperature and humidity sensing to an existing standard setup
Hi Robert, many thank for your offer of help.
My knowledge of programming is basically nil, however I can see the need for me to be able grasp the basics, so its probably best if do this myself with some help. I am a Linux (Slackware) user, so I can find my way around in console and I can do some basic (very) bash scripting.
I've had a look in the humidity sketch for those lines but I can't find an exact match. The lines I have are:
emontx.humidity = ((dht.readHumidity())*10);
emontx.temp = ((dht.readTemperature())*10);
Are we looking at different sketches?
I will have to get back to this later today as work is demanding my attention!
Phil T.
Re: Adding temperature and humidity sensing to an existing standard setup
Ah - found your sketch (I think). It is https://raw.github.com/openenergymonitor/emonTxFirmware/master/emonTx_te...
I was looking at https://raw.github.com/openenergymonitor/emonTxFirmware/master/emonTx_te...
We were looking at different sketches, then, but the lines are equivalent. In your sketch, you've got a Serial.print already for humidity, is that not working?
As this might be a long drawn out process, it's probably best if we do it via PM or, considering attachments are not allowed in PMs, by private email. It might be helpful to get G&T to put the end result onto Github.
(If anyone else reading this wants to join in, shout up now and I'll reconsider.)
Re: Adding temperature and humidity sensing to an existing standard setup
Hi Robert, I've pm'd you my email address.


UIView
public extension UIView
-
Consider view with alpha <0.01 as invisible because it stops receiving touches at this level: “This method ignores view objects that are hidden, that have disabled user interactions, or have an alpha level less than 0.01”. This one also checks all superviews for the same parameters.
Declaration
Swift
var isVisible: Bool { get }
-
Checks wheter view is visible in containing window.
Declaration
Swift
var isVisibleInWindow: Bool { get }
-
View width
Declaration
Swift
var width: CGFloat { get set }
-
View height
Declaration
Swift
var height: CGFloat { get set }
-
View size
Declaration
Swift
var size: CGSize { get set }
-
Checks if code runs inside animation closure
Declaration
Swift
@available(iOS 9.0, *) static var isInAnimationClosure: Bool { get }
-
Returns
true
if view can be animated. That meanswindow
is notnil
and application state is.active
.Declaration
Swift
var isAnimatable: Bool { get }
-
Undocumented
Declaration
Swift
func fadeInAnimated()
-
Undocumented
Declaration
Swift
func fadeOutAnimated()
-
Makes corner radius euqal to half of width or height
Declaration
Swift
func makeRound()
-
Returns closest UIViewController from responders chain.
Declaration
Swift
var viewController: UIViewController? { get }
-
Gets view’s top most superview
Declaration
Swift
var rootView: UIView { get }
-
Returns all view’s subviews
Declaration
Swift
var allSubviews: [UIView] { get }
-
Returns all view’s subviews
Declaration
Swift
var allVisibleSubviews: [UIView] { get }
-
All view superviews to the top most
Declaration
Swift
var superviews: DropFirstSequence<UnfoldSequence<UIView, (UIView?, Bool)>> { get }
-
All view superviews to the top most
-
Creates image from view and adds overlay image at the center if provided
Declaration
Swift
func getSnapshotImage() -> UIImage?
-
Ends editing on view and all of it’s subviews
Declaration
Swift
@IBAction func endEditing()
-
Checks if window is not nil before calling becomeFirstResponder()
Declaration
Swift
func becomeFirstResponderIfPossible()
-
Is activity indicator showing?
Declaration
Swift
var isShowingActivityIndicator: Bool { get }
-
Shows activity indicator. It uses existing one if found in subviews. Calls to -showActivityIndicator and -hideActivityIndicator have to be balanced or hide have to be forced.
Declaration
Swift
func showActivityIndicator()
-
Hides activity indicator. Calls to -showActivityIndicator and -hideActivityIndicator have to be balanced or hide have to be forced.
Declaration
Swift
func hideActivityIndicator(force: Bool = false)
Parameters
force
Force activity indicator hide
-
Creates constraints between self and provided view for top, bottom, leading and trailing sides.
Declaration
Swift
@available(iOS 9.0, *) func constraintSides(to containerView: UIView, insets: UIEdgeInsets = .zero)
Parameters
containerView
Container view containing
self
.insets
Insets to the
containerView
..zero
by default.
-
Undocumented
Declaration
Swift
@IBInspectable var borderColor: UIColor? { get set }
-
Undocumented
Declaration
Swift
@IBInspectable var borderWidth: CGFloat { get set }
-
Sets border width equal to 1 pixel
Declaration
Swift
@IBInspectable var borderOnePixelWidth: Bool { get set }
-
Undocumented
Declaration
Swift
@IBInspectable var cornerRadius: CGFloat { get set }
-
Undocumented
Declaration
Swift
@IBInspectable var shadowColor: UIColor? { get set }
-
Undocumented
Declaration
Swift
@IBInspectable var shadowOffset: CGPoint { get set }
-
Undocumented
Declaration
Swift
@IBInspectable var shadowOpacity: Float { get set }
-
Undocumented
Declaration
Swift
@IBInspectable var shadowRadius: CGFloat { get set }
-
Apply square path for shadow. This increases performance for shadow drawing in case shadow is square.
Declaration
Swift
@IBInspectable var shadowApplyPath: Bool { get set }
-
Undocumented
See moreDeclaration
Swift
enum ViewState
-
Undocumented
Declaration
Swift
func configure(viewState: ViewState)


Test purpose
- Create linear, quadratic and bezier Shape entitys
- Position them on the canvas by a variety of different means - (draggable) pivots, paths, mouse
- Kill and resurrect several entitys to make sure they remove themselves entirely from the Scrawl-canvas system, and cleanly recreate themselves from saved packets
Touch test: should work as expected. Known issues: the arrow doesn't always return to the line on touchend; moving the pins is inconsistent (because pins are too small on device screens?)
Annotated code


--- layout: article title: Three Poems authors: - brodak-molly excerpt: > In Molly Brodak’s poems, burial becomes transfiguration, and the past is never really put to rest. permalink: /issues/2014/1/three-poems toc: 8 chapter: 2 volume: 2 number: 1 ---
“This is how selves work; they hover / over their border,” writes Molly Brodak. So too do these three elegant, austere, vivid poems hover between past and present.
We at The Appendix were intrigued by Brodak’s oblique poem about the discoverer of microscopy for Guernica, and asked her if she had any other works that might tie in with our “Digs” theme. She wrote back with three poems that brilliantly evoke the past as foreign country. Each of these poems is concerned with a kind of burial—the death of a geologist, the artifacts left by “the people before,” the “romance of bones” at a saint’s tomb. Yet they also hinge on transformations. “Spikes of stars and blank ribbons waving from mouths / across the Apocalypse Tapestry” find new life “as floor mats, horse blankets, frost wrap / for the orange trees,” and “girls’ gold-locked skull parts” are patched with replacements from “mastiffs / and old men.”
In Brodak’s poems, burial becomes transfiguration, and the past is never really put to rest.
Having turned away from the present, a mood slides over and locks.
A vivid personhood folds him in. A halo as in an eclipse.
Knowledge is funny how it can just eat you up:
having named eras longer than any wholesome human projection,
and compressed extinctions into black threads,
and eaten a nice meal at All Souls College,
(the organ testing its high silver pipes,
thinking of the weird smear of blonde on the nude girl
he’d seen split apart in the operating theater)
John Phillips tumbles down some stone steps and dies,
concussing, his soft body softening further
on the edges of the granite,
erasing, in a way, a fish in reverse,
the special fleshy hope-lumps—no, need-lumps
of this one body peeling in edible sheets,
down down, Mesozoic, Paleozoic,
spines, no spines, eyes, no eyes,
club mosses, liverworts, hornworts,
spiral axils, spores, reefs of sponges, algae,
boiling air and hard braids of wind,
sunshine,
sun
A bee sticks the young king’s hand for the first time.
Alone on a slope where apples are rotting
under boughs in a sweet acid smell
and he’d like insects to cover him
for the effect it had on the other children. In rain
minnows feel the pond grow.
The barb shot like a spray of grey dimes
on their thin sides looping off in him
like electrons in gel. A sheet of navy blue
dread buckled in his gut.  An intermittent push of wind
is seen in branches but not felt. Artifacts.
It is true you are sometimes not yourself.
That is how selves work; they hover
over their border. Here death,
atop a green horse, is stitched newly as a corpse
against word-red ground and turquoise brain clouds,
the spikes of stars and blank ribbons waving from mouths
across the Apocalypse Tapestry,
cut apart when the Revolution came
& used as floor mats, horse blankets, frost wrap
for the orange trees.
Remember
for yourself. Rifle
around the morphic field.
The people before always leave weapons,
often, accidentally, failures of future-thinking.
And vessels. Unfailing, forever. Below him are vessels,
ceremonial blades of blue-grey hornstone,
unnotched ovate-triangular cache blades,
bone knappers and plummets, axes,
copper awls, celts and points, and vessels,
vessels all the way down.
Don’t go to the romance of bones.
It is lazy.
And fake. That joy-crimp in the trunk is pity.
And fake.
A whole trove upturned from a burial ground
under St. Ursula’s,
a jumble matrix of 11,000 virgin martyrs
invented in a small mark
of a tired monk
misreading eleven virgins beheaded
or an eleven year-old virgin beheaded
or Ursula cum militibus with soldiers
for Ursula cum milibus with thousands.
One dim wrong
& buried things are lit.
Regular dead find their fine grey ribs
knit into neat rows above the altar
and their serif-edged femurs spelling
messages to the Virgin Mary,
trimmed in garlands of vertebrae
like fossilized rosebuds:
a wall like a plate to print
sour alms on air.
Hung in comic grief over the girls’ gold-locked skull parts—
some very certainly from
mastiffs
and old men—
all capped in velvet ribbons, these silly daydreams.
Unbearable dreams.
And all of heaven made into a small fingerbone.
Small, because we are small.
Big feelings
are handled in tokens.
You hope you are remembering something
when you see it.
Come back
from there.
You’ll never find
the past.
When you do find it,
you’ll see
no one’s
there.
Not even the you
you still
hope
to meet


TA Assignment for Semester I, AY 2018-2019
| Course Code | Course Name | TA Supervisor | Status | Due by |
|---|---|---|---|---|
| EE121 | Basic Electronics | Rajlaxmi Chauhan | Approved lorem ipsum doler | 20 July 2018 |
| EE121 | Basic Electronics | Rajlaxmi Chauhan | Approved lorem ipsum doler | 20 July 2018 |


| Wave # | {{$ctrl.getJudgeName(judge, $index)}} | Sum | Avg | A. Sum | A. Avg | Result | L/R |
|---|---|---|---|---|---|---|---|
| {{tableScore.waveNumber}} | {{judgeScore.value | number:2}}* {{judgeScore.value | number:2}}* | {{tableScore.total | number:2}} | {{tableScore.average | number:2}} | {{tableScore.adjustedTotal | number:2}} | {{tableScore.adjustedAverage | number:2}} | {{tableScore[$ctrl.HIGH_SCORE_FIELD] | number:2}} | {{$ctrl.parseDirection(tableScore.direction)}} |


Each File Corruption Fault you create will show up as an item in this pane. You can turn faults on or off by toggling the checkmark beside each fault. Double click a fault to edit its corruption properties. Modify which columns are shown by right clicking anywhere in the pane and clicking "Select Visible Columns."
To create a new fault from the File Corruption Faults Pane right click anywhere in the pane and select "Create a new Fault"
When a file is accessed by the application under test it will show up in the Corrupted Files Pane
Turn a File Corruption Fault on or off quickly by toggling the check in the On/Off Column.
Show the File Corruption Faults pane by double-clicking the File Corruption Faults Node in the Project Pane.
On/Off Signifies if this fault will execute or not.
Original File The source file for corruption.
Type The type of corruption as specified on the first page of the File Corruption Wizard.
Search For The amount of corruption for random corruption, or the search string in find and replace or Regular Expression corruption.
Replace With The string to replace the random corruption or matched search string.
Regenerate at Each Access If Holodeck should regenerate the file at every access.
Right click on one of the faults for the following options:
Copy Copy the existing fault settings to the clipboard
Modify Fault - Opens the last page of the new File Corruption fault wizard to allow you to edit the fault settings
Delete Fault Removes the fault completely.
Right click anywhere in this pane for the following options:
Create a new Fault Opens the new File Corruption Wizard
Select Visible Columns Select which columns are visible in this pane.


Select currency to exchange:
-
EthereumPrice:Percent change:Hour changeDay changeWeek changeMonth change
-
LitecoinPrice:Percent change:Hour changeDay changeWeek changeMonth change
-
BitcoinPrice:Percent change:Hour changeDay changeWeek changeMonth change


{% extends "base.html" %} {% block content %}
This tool allows you to find contact information for users and projects. At the moment, this is just a lookup for user ids.


» Drag the image back and forth between the two div elements.
# Table module - Generator (HTML)
+-----+
| | | |
+-----+
| | | |
+-----+
\\
\/
Requirements (Code implementation):
- Once user will drag the table icon from the icon bar and drop into the
work area, it should ask for basic things like
`number of rows`
`number of columns`
- Finally, based on the entries dynamically create a beautiful table whose
tables & cells can be resizable. Cells can be editable.
Once we implemented the above functionality, we will go further to add extra
feature as mentioned below.
[Note: If user chooses CSV upload option then do not ask for rows/columns]
- Drag event should also ask for CSV file upload (So user is free to choose)
any of the option.
- Once the upload will occur, get the path of CSV and path the PATH to Node
API and get an array of values as 2D array (An array of arrays).
- In case of improper csv file specification, you will get `null` as return
value.
- Finally, the UI developer will either generate dynamic table based on
returned 2d array or again make an API call to get the related HTML code
for table.
- It's better to use your own logic if you need extra customizations and
styles.
Next requirements (Code implementation)
========================================
- Providing options on right (like PHOTOSHOP) for modifying the attributes
(width, height etc.) of elements (table, figure).
- Add other features that you think to be added.


Test driven
Assertions are the main reason to use this. Check whether each flowing by message matches what is expected:
- sent to where it was suppose to be sent
- contains what it should contain
- sent faster than the threshold
Multi protocol
Have you seen how many protocols it supports? Out of the box, just one click away from each other, including your own custom ones:
- HTTP
- EXEC
- SQS
- KAFKA
- ANYDB
- Your own custom one
Automated testing with enqueuer
Do amazing things and change the world with Stacker’s command line best friend forever! With enqueuer, you use your stacker requisitions and:
- run them through command line
- improve your build system
Definition
Have you ever struggled with testing multi protocol flows?
Want to ensure that a user journey which involves several steps with different protocols is working properly?
Dependencies messages have become a pain?
Have you ever wondered how awesome it would be to have a GUI tool to save you from this agonizing pain?
You're welcome
Description
Stacker is the official GUI for enqueuer to handle multi protocol tests. It aims to provide a clean, fun, and good looking interface for interacting with polyglot flows.
Features
This mankind magnificence provides the following capabilities:
- Support for many protocols out of the box
- Chainable message flows
- Easily mock numerous services to alleviate the headaches of functional and integration tests
- Friendly for developers and non developers
- Built in assertion library to verify response data coming from/going to your services
- Built in CLI is easy to add to your team's existing CI pipelines powered by enqueuer
- Easily extensible behavior through third party plugins, including your own custom ones.
Polyglot
Have you seen how many protocols it supports? Out of the box, just one click away from each other. Write as many protocols plugins as you want your one or download the ones that pleased you most.
Plugins
You're probably aware by now but it doesn't hurt do emphasize it: stacker provides an amazingly powerful plugin extensible architecture. Stacker community offers support to the following plugins:
Author
Name
Description
If none of them pleases you, you're free to create your own. Albeit you don't have to share the one you created, we encourage you to do so. Then go ahead and publish yours to npm and add it to our plugins repository.
Reviews
Feedback
We'd love to hear your feedback! If you have any comments, suggestions, etc. you can reach us here.
Contribute
Currently, there aren't any said rules for stacker just yet on committing and submitting pull requests. If you want to aid the project in other ways, consider sending us a star.
Still in Beta
Stacker is still a beta version, so please excuse any small glitches that may occur here and there. They will all be gone soon. :)
Project setup
npm install # installing
npm run electron:serve # compiles and hot-reloads for development
npm run electron:build # compiles and minifies for production
npm run test # run your tests and lints files


CommentsSorting |
enum class CommentsSorting : Sorting |
ContributionsSorting |
enum class ContributionsSorting : Sorting |
Distinguished |
enum class Distinguished |
RedditorSearchSorting |
enum class RedditorSearchSorting : Sorting |
SearchSorting |
enum class SearchSorting : Sorting |
SubmissionsSorting |
enum class SubmissionsSorting : Sorting |
SubredditSearchSorting |
enum class SubredditSearchSorting : Sorting |
TimePeriod |
This enum defines the time options for filtering, searching or ordering items in the Reddit Api: enum class TimePeriod |
Vote |
This enum defines the possible states of an item the logged in user has voted, represented by the inteface Votable enum class Vote |


Coraline, if you threw it on purpose you don't get to say "uh-oh." 11/5/2009, 6:53:56 PM Favs: 0 Retweets: 0 link


Tumult
A dual-wield technique that hits up to 3 adjacent enemies.{^n}{^y}Dual wield of Melee weapons required.
Dual Wield Only, Sword, Axe, Mace
${value}% Chance to be Used
5 6 7 8 9 10 11 12 13 15
Launches ${value} Projectile(s)
1
${value} Target Maximum
3
${value}° Arc of Attack
360
MaxLevel
6
UltimateLevel
10


Technical Difficulties
Papa John's Online Ordering can not take your order at this time due to technical difficulties.
Dear Customer,
Papa John's apologizes for the inconvenience. Our goal is to provide the best quality customer experience. We will be back online shortly! Click the button above to find your restaurants phone number to place your order now.
Thanks again for choosing Papa John's Pizza!


[gecode-users] Cumulative constraint propagation
Mikael Zayenz Lagerkvist
zayenz at gmail.com
Tue Mar 6 15:32:08 CET 2007
On 3/6/07, Jérémie Vautard <jeremie.vautard at laposte.net> wrote:
> I asked a few month ago (October 4th) what propagation the cumulative
> constraint did (*Mikael Zayenz Lagerkvist answered me that it did not
> very much). Does it do more now ?
It does not do anything more. The constraint implemented, called
cumulatives, is a very general constraint. To read more about the
specific prunings done, see "A New Multi-resource cumulatives
Constraint with Negative Heights" by Beldiceanu and Carlsson
(http://www.springerlink.com/content/yblp5037rxkqn2u0/).
> Could someone indicate me a paper describing the state of the art in
> this domain ?
Bounds-consistent pruning for cumulative is NP-complete, so we must
look for weaker algorithms. Some common algorithms used are edge
finding, not-first/not-last, and energetic reasoning.
The most complete reference for scheduling constraints is probably
"Constraint-Based Scheduling" by Baptiste, Le Pape, and Nuijten
(http://www.springer.com/west/home?SGWID=4-102-22-33293925-0).
For some updates on edge-finding for cumulative constraints, see "Edge
Finding for Cumulative Scheduling" Mercier and Van Hentenryck
(http://www.cs.brown.edu/people/pvh/ef2.pdf).
Hope this helps,
Mikael
--
Mikael Zayenz Lagerkvist, http://www.ict.kth.se/~zayenz/
More information about the gecode-users
mailing list


Using the Admin UI
The Unified Push Server can be accessed via its RESTful endpoints, as well over an administrative user interface.
Admin and Developer accounts
Once installed, the Unified Push Server comes with two different account types:
-
a single admin user
-
a developer role
The difference between the admin and developer account types is that the former can access all PushApplications and Variants configured on the server, whereas the latter has access only to the PushApplications and Variants created by the actual user. Further, the administration of the Unified Push Server, as well as management of it’s users in the Keycloak Admin Console, can only be performed by the admin.
| By default there is no developer account and one needs to be explicitly created by the admin inside of the Keycloak Admin Console! |
Login and landing page
Once you have the Unified Push Server running, whether on Openshift or standalone, it is time to open the AdminUI, by accessing http(s)://SERVER:PORT/ag-push in your browser. You are prompted by a login dialog:
The default credentials for the admin are admin/123.
| On the very first login you are asked to update the password. It is a wise idea to change it to something completely different. |
After applying the password you are able to use the AdminUI of the Unified Push Server:
| Right after a fresh installation you won’t have any PushApplication in our database. In this case you will see the Wizard (learn more in Wizard section) as the landing page. |
Account Management
To manage some details on your account, you need to click on the username (admin in this case) in the right hand corner of the screen. This opens a context menu where you click on Account Management:
This brings you to the page where you can configure details about your account. The first option allows you to provide additional information like your name and your email address:
The next section allows you to update your current password.
| Please make sure to pick a strong password, see the admin user as the root on your machine… |
It is also possible to use the Google Authenticator app as an additional security mechanism for your login:
On the Sessions menu there is an overview of all client sessions that are currently active. If the session is connected via a browser the only information that is presented in the table below is the IP address of the client:
On the Applications menu you see a read-only list of all application clients that have rights to access the Unified Push Server:
To go back to the Unified Push AdminUI click the marked link on the right corner, this performs a redirect to the previous landing page:
The Wizard
To be able to use the Unified Push Server for your mobile development you need to create a PushApplication and at least one Variant. The PushApplication is a logical construct, that represents an overall mobile application container for its different mobile platforms, which are called Variants. The Wizard is used to create a PushApplication and one Variant. The Wizard is launched when clicking the Create Application button on the overview page:
Wizard: Start!
Before diving into the details the Wizard shows an overview page, containing a bit more details on the steps inside the wizard:
Wizard: Step 1
To create a new PushApplication click the START HERE button, which brings you to the first step of the Wizard, asking for the name of your PushApplication:
| At any time, you can skip the workflow of the Wizard, by clicking the Skip the wizard link on the top right! |
Wizard: Step 2
Since the PushApplication is a container for different platforms you need to create a Variant for a specific mobile platform, like Android, iOS or Windows.
Next click on the +Add A Variant button in the screen above, which brings you to the details page for the Variant:
In this example we are creating an Android Variant and giving it a name. Besides the name, each supported variant type contains some platform specific properties, such as a Google Cloud Messaging key (Android) or passphrase and certificate (Apple). In this case we enter the require GCM Key and the GCM Project Number.
| If you are not familiar with the details of your desired mobile platform, click here for Android, here for Apache Cordova, here for iOS and here for Windows. |
After finishing the above dialog you are coming to the details page of the newly created Variant:
The page contains some code snippets that are specific to the underlying mobile platform (e.g. Android), which allows your mobile application, running on a device, to register itself against the Unified Push Server for push notification delivery.
In our Android example you are getting two options:
-
Native Android source code
-
JavaScript for Apache Cordova
Wizard: Step 3
The next step in the Wizard gives the option to send a test push notification to the devices that are registered with the Variant. In this case we have registered devices and can use the textfield to send a test notification:
However, the textfield will be disabled in case there are no devices registered:
| The transition to from step 3 to the Test notification dialog happens automatically in case a devices performs the registration, while looking at the Wizard. |
Wizard: Step 4
For the supported SDKs the Unified Push Server has a feature to generate code snippets for the backend part as well:
The visible Java code above can be used in any JavaSE or JavaEE application that needs to send Push Notification requests to the Unified Push Server. Besides Java, the UI contains snippets for Node.js and cURL.
Management of PushApplication
To work with a specific PushApplication, you have to select one from the overview list. However, to update the name or even deleting it, you have to click one of those links that are visible when hovering over the desired PushApplications:
The Edit name option gives you a simple dialog, which accepts the new name:
In order to remove the PushApplication, you have to confirm by entering the its name:
| When deleting a PushApplication, all Variants and their registered devices are removed! |
Management of Variants
The Variants tab of the PushApplication gives a list of all existing variants. To edit or delete a Variant expand the details of the desired Variants (+).
The above view shows details about the variant, such as the number of sent messages and registered devices. The view also contains more details about the involved 3rd party Push Network, GCM in this example. At the bottom the view also contains a list of all registered devices, showing their metadata.
To change the name of the variant, click on the Edit name link:
Similar to the PushApplication, in order to remove the variant, you have to confirm by entering the name of the variant:
To update the details of the used Push Network, such as the Apple certificate or the GCM key, click on Edit Network Options link:
It is also possible to renew the Variant Secret, used by the Mobile Applications running on the device:
| When changing the variant secret or deleting it, existing mobile apps are no longer able to register their metadata on the Unified Push Server! |
You have to confirm this change, as this requires updates to the mobile applications, running on the devices!
Managing registered device
The details view of a specific variant as a list of the registered devices at the bottom:
The table shows the metadata of each device, including the device token, subscribed categories or - if present - the used alias. On this screen you could also exclude a specific device from receiving Push Notifications, by unchecking the Receiving check-box.
Importing Device Metadata
For various reasons, e.g. migrating from a custom solution to the Unified Push Server, it is possible to import devices and their metadata, including their devicetoken, into a variant. This is possible via cURL and on the UI. For that, on a specific variant, click on the More menu you have the the choice to select the Import option:
The following dialog allows you to upload a JSON file, containing the device metadata.
| The API for the JSON importer is described here! |
Exporting Device Metadata
Similar, the Unified Push Server has an option to export the device metadata of a variant. This is handy when you want to move from one Unified Push Server instance to a different one. On the More menu of a specific variant, you have the the choice to select the Export option:
Starting the export will generate a JSON file, which is being downloaded to your machine:
Sending a Push Notification
The Admin UI allows you to send a (test) Push Notification to your Variants and their devices at any time. For that, open a PushApplication and click on the "Send Notification" button:
Now the Send Push dialog pops up:
In the Send Push dialog, the Message text field contains the payload to be sent out to the 3rd party Push Network. To deliver the message click the Send Push Notification button.
| It is possible to filter the list of receivers, using Alias, Device Types and Category. Read the Server Integration Tutorials for more details. |
If all goes well, your message will be delivered by the 3rd party Push Network to your device:
Sending a Push Notification from code
While sending a Push Notification from the AdminUI is a nice feature, in a real world scenario, the Push Notification is triggered by a backend, as explained in Server Integration Tutorials.
The Unified Push Server comes with APIs for Java and Node.js. Due to its RESTful architecture any backend, written in any language that supports HTTP(S), can send Push Notification requests to it. On the details page of a PushApplication you find the required Server URL and credentials (Application ID and Master Secret).
For the supported SDKs the Unified Push Server has a feature to generate code snippets for the backend part as well:
| Due to security reasons the Application ID and the Master Secret should be never stored on a mobile device! Push Notification requests should never be triggered directly from a mobile device. |
The visible Java code above can be used in any JavaSE or JavaEE application that needs to send Push Notification requests to the Unified Push Server, like shown in the diagram below:
Besides Java, the UI contains snippets for Node.js and cURL.
PushApplication Analytics
The Unified Push Server provides some metrics and analytics which are presented on a dasboard :
The upper part shows some key numbers :
-
Push Messages : The total number of push messages sent to UnifiedPush Server for dispatching to registered devices.
-
Notification Dispatched : The total number of notifications dispatched via Push Networks to registered devices.
-
Notifications Opened : Number of notifications that were delivered to registered device and opened by a user.
-
Average Open Rate : The result of Notifications Opened / Notifications Dispatched
The Performance chart show for each Push Notification the number of targeted devices, the number of opened apps. The x-axis legend shows the alert value of the Push Notification payload.
Finally, the Push Networks chart shows the split between the different Push Networks.
To get the Notifications Opened metric activated, it needs to be "turned on" on the different client SDKs :
-
For iOS, please refer to this document.
-
For Android, please check the org.jboss.aerogear.android.unifiedpush.metrics package in the JavaDoc.
-
For Cordova, please refer to the Metrics section of this document.
-
For Windows, please refer to this document.
| The collected metadata and payload is automatically deleted after 30 days, using a nightly job within the Unified Push Server. |
PushApplication Activity
On the Activity log tab of a PushApplication you see a list of Push notifications that have been sent to the server:
Each Push Notification can be expanded to see parts of the payload. While being in this view and opening the Send Push Notification Dialog to send a Push Notification, you will see the Pending… status afterwards, until the message was delivered to all involved 3rd party Push Networks:
| The collected metadata and payload is automatically deleted after 30 days, using a nightly job within the Unified Push Server. |


|
|
static void | upmax (int &i1, int i2) |
| |
|
static void | indent (IStringWriter &write, int &x, int want_x) |
| |
| static bool | isWideChar (unsigned ch) |
| | Returns true if ch is the unicode code point of a wide character. More...
|
| |
|
static void | printUsage (IStringWriter &write, const Descriptor usage[], int width=80, int last_column_min_percent=50, int last_column_own_line_max_percent=75) |
| |
◆ isWideChar()
| static bool option::PrintUsageImplementation::isWideChar |
( |
unsigned |
ch | ) |
|
|
inlinestatic |
Returns true if ch is the unicode code point of a wide character.
- Note
- The following character ranges are treated as wide
1100..115F
2329..232A (just 2 characters!)
2E80..A4C6 except for 303F
A960..A97C
AC00..D7FB
F900..FAFF
FE10..FE6B
FF01..FF60
FFE0..FFE6
1B000......
The documentation for this struct was generated from the following file:


13 Jan 2014
We are pleased to announce that version 0.4 of the Stratosphere system has been released.
Our team has been working hard during the last few months to create an improved and stable Stratosphere version. The new version comes with many new features, usability and performance improvements in all levels, including a new Scala API for the concise specification of programs, a Pregel-like API, support for Yarn clusters, and major performance improvements. The system features now first-class support for iterative programs and thus covers traditional analytical use cases as well as data mining and graph processing use cases with great performance.
In the course of the transition from v0.2 to v0.4 of the system, we have changed pre-existing APIs based on valuable user feedback. This means that, in the interest of easier programming, we have broken backwards compatibility and existing jobs must be adapted, as described in the migration guide.
This article will guide you through the feature list of the new release.
Scala Programming Interface
The new Stratosphere version comes with a new programming API in Scala that supports very fluent and efficient programs that can be expressed with very few lines of code. The API uses Scala’s native type system (no special boxed data types) and supports grouping and joining on types beyond key/value pairs. We use code analysis and code generation to transform Scala’s data model to the Stratosphere runtime. Stratosphere Scala programs are optimized before execution by Stratosphere’s optimizer just like Stratosphere Java programs.
Learn more about the Scala API at the Scala Programming Guide
Iterations
Stratosphere v0.4 introduces deep support for iterative algorithms, required by a large class of advanced analysis algorithms. In contrast to most other systems, “looping over the data” is done inside the system’s runtime, rather than in the client. Individual iterations (supersteps) can be as fast as sub-second times. Loop-invariant data is automatically cached in memory.
We support a special form of iterations called “delta iterations” that selectively modify only some elements of intermediate solution in each iteration. These are applicable to a variety of applications, e.g., use cases of Apache Giraph. We have observed speedups of 70x when using delta iterations instead of regular iterations.
Read more about the new iteration feature in the documentation
Hadoop YARN Support
YARN (Yet Another Resource Negotiator) is the major new feature of the recently announced Hadoop 2.2. It allows to share existing clusters with different runtimes. So you can run MapReduce alongside Storm and others. With the 0.4 release, Stratosphere supports YARN. Follow our guide on how to start a Stratosphere YARN session.
Improved Scripting Language Meteor
The high-level language Meteor now natively serializes JSON trees for greater performance and offers additional operators and file formats. We greatly empowered the user to write crispier scripts by adding second-order functions, multi-output operators, and other syntactical sugar. For developers of Meteor packages, the API is much more comprehensive and allows to define custom data types that can be easily embedded in JSON trees through ad-hoc byte code generation.
Spargel: Pregel Inspired Graph Processing
Spargel is a vertex-centric API similar to the interface proposed in Google’s Pregel paper and implemented in Apache Giraph. Spargel is implemented in 500 lines of code (including comments) on top of Stratosphere’s delta iterations feature. This confirms the flexibility of Stratosphere’s architecture.
Web Frontend
Using the new web frontend, you can monitor the progress of Stratosphere jobs. For finished jobs, the frontend shows a breakdown of the execution times for each operator. The webclient also visualizes the execution strategies chosen by the optimizer.
Accumulators
Stratosphere’s accumulators allow program developers to compute simple statistics, such as counts, sums, min/max values, or histograms, as a side effect of the processing functions. An example application would be to count the total number of records/tuples processed by a function. Stratosphere will not launch additional tasks (reducers), but will compute the number “on the fly” as a side-product of the functions application to the data. The concept is similar to Hadoop’s counters, but supports more types of aggregation.
Refactored APIs
Based on valuable user feedback, we refactored the Java programming interface to make it more intuitive and easier to use. The basic concepts are still the same, however the naming of most interfaces changed and the structure of the code was adapted. When updating to the 0.4 release you will need to adapt your jobs and dependencies. A previous blog post has a guide to the necessary changes to adapt programs to Stratosphere 0.4.
Local Debugging
You can now test and debug Stratosphere jobs locally. The LocalExecutor allows to execute Stratosphere Jobs from IDE’s. The same code that runs on clusters also runs in a single JVM multi-threaded. The mode supports full debugging capabilities known from regular applications (placing breakpoints and stepping through the program’s functions). An advanced mode supports simulating fully distributed operation locally.
Miscellaneous
- The configuration of Stratosphere has been changed to YAML
- HBase support
- JDBC Input format
- Improved Windows Compatibility: Batch-files to start Stratosphere on Windows and all unit tests passing on Windows.
- Stratosphere is available in Maven Central and Sonatype Snapshot Repository
- Improved build system that supports different Hadoop versions using Maven profiles
- Maven Archetypes for Stratosphere Jobs.
- Stability and Usability improvements with many bug fixes.
Download and get started with Stratosphere v0.4
There are several options for getting started with Stratosphere.
- Download it on the download page
- Start your program with the Quick-start guides.
- Complete documentation and set-up guides
Tell us what you think!
Are you using, or planning to use Stratosphere? Sign up in our mailing list and drop us a line.
Have you found a bug? Post an issue on GitHub.
Follow us on Twitter and GitHub to stay in touch with the latest news!


Training status:
Loading data...
Testing status:
Not yet tested
Predicted quantity:
Predicted Sales:
Press the "Add Notes" button to keep track of important data


{% extends "base.html" %} {% block bundle %} Notes tagged with "{{ tag }}" {% if articles %} {% for article in articles %} {% include 'excerpt.html' %} {% endfor %}
No articles have been written yet.


What do you have to say?
Try entering any number here and see what a
Beepboop
robot has to say.
Submit
Try entering a different number


With CircleCI 2.0 there is a possibility execute jobs on git tags, but the usage of this feature has a few quirks that are not self-evident and needed to be highlighted from the documentation.
As the documentation states: ‘For a tag push unaffected by any filters, CircleCI skips the job’
… so a job must have a filters tags section to run as a part of a tag push
1
2
3
4
5
6
7
8
workflows:
version: 2
build-workflow:
jobs:
- build:
filters:
tags:
only: /.*/
If a job has an other job it is depending on
… the first job must have a filter tags section, to be able to use filter tags in the dependent build
1
2
3
4
5
6
7
8
9
10
11
12
13
14
workflows:
version: 2
build-n-deploy:
jobs:
- build:
filters:
tags:
only: /.*/
- deploy:
requires:
- build
filters:
tags:
only: /^release-*/
In this case the
- build job will be ran on every tag (and every branch)
- the deploy job will be ran only on the ‘release-*’ branches (and on no branch)
The tag builds will be visible only on the Builds
tab, but not on the Workflows
.
This can be easily missed, resulting in many minutes of debugging…


Welcome to Spoil!
Our app was created to help people like you live conciously and improve their food management skills. It is estimated that
30-50% of food produced for human consumption each year is wasted, but you can be apart of the generation who ends food waste once and for all.
Navigate to the inventory to begin inputting items, and we will notify you when something is going to expire. Items that are not eaten in time
are automatically added to the grocery list, so you'll know exactly what to buy on your next trip to the store.


| 1 | /* =========================================================== | |
| 2 | * JFreeChart : a free chart library for the Java(tm) platform | |
| 3 | * =========================================================== | |
| 4 | * | |
| 5 | * (C) Copyright 2000-2009, by Object Refinery Limited and Contributors. | |
| 6 | * | |
| 7 | * Project Info: http://www.jfree.org/jfreechart/index.html | |
| 8 | * | |
| 9 | * This library is free software; you can redistribute it and/or modify it | |
| 10 | * under the terms of the GNU Lesser General Public License as published by | |
| 11 | * the Free Software Foundation; either version 2.1 of the License, or | |
| 12 | * (at your option) any later version. | |
| 13 | * | |
| 14 | * This library is distributed in the hope that it will be useful, but | |
| 15 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY | |
| 16 | * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public | |
| 17 | * License for more details. | |
| 18 | * | |
| 19 | * You should have received a copy of the GNU Lesser General Public | |
| 20 | * License along with this library; if not, write to the Free Software | |
| 21 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, | |
| 22 | * USA. | |
| 23 | * | |
| 24 | * [Java is a trademark or registered trademark of Sun Microsystems, Inc. | |
| 25 | * in the United States and other countries.] | |
| 26 | * | |
| 27 | * ----------------------- | |
| 28 | * StandardBarPainter.java | |
| 29 | * ----------------------- | |
| 30 | * (C) Copyright 2008, 2009, by Object Refinery Limited. | |
| 31 | * | |
| 32 | * Original Author: David Gilbert (for Object Refinery Limited); | |
| 33 | * Contributor(s): -; | |
| 34 | * | |
| 35 | * Changes: | |
| 36 | * -------- | |
| 37 | * 19-Jun-2008 : Version 1 (DG); | |
| 38 | * 15-Aug-2008 : Use renderer's shadow paint (DG); | |
| 39 | * 25-Jun-2009 : Changed interface for 1.2.0 (DG); | |
| 40 | * | |
| 41 | */ | |
| 42 | ||
| 43 | package org.jfree.chart.renderer.category; | |
| 44 | ||
| 45 | import java.awt.Color; | |
| 46 | import java.awt.GradientPaint; | |
| 47 | import java.awt.Graphics2D; | |
| 48 | import java.awt.Paint; | |
| 49 | import java.awt.Stroke; | |
| 50 | import java.awt.geom.Rectangle2D; | |
| 51 | import java.awt.geom.RectangularShape; | |
| 52 | import java.io.Serializable; | |
| 53 | ||
| 54 | import org.jfree.chart.util.GradientPaintTransformer; | |
| 55 | import org.jfree.chart.util.RectangleEdge; | |
| 56 | ||
| 57 | /** | |
| 58 | * An implementation of the {@link BarPainter} interface that preserves the | |
| 59 | * behaviour of bar painting that existed prior to the introduction of the | |
| 60 | * {@link BarPainter} interface. | |
| 61 | * | |
| 62 | * @see GradientBarPainter | |
| 63 | * | |
| 64 | * @since 1.0.11 | |
| 65 | */ | |
| 66 | public class StandardBarPainter implements BarPainter, Serializable { | |
| 67 | ||
| 68 | /** | |
| 69 | * Creates a new instance. | |
| 70 | */ | |
| 71 | public StandardBarPainter() { | |
| 72 | } | |
| 73 | ||
| 74 | /** | |
| 75 | * Paints a single bar instance. | |
| 76 | * | |
| 77 | * @param g2 the graphics target. | |
| 78 | * @param renderer the renderer. | |
| 79 | * @param row the row index. | |
| 80 | * @param column the column index. | |
| 81 | * @param selected is the item selected? | |
| 82 | * @param bar the bar | |
| 83 | * @param base indicates which side of the rectangle is the base of the | |
| 84 | * bar. | |
| 85 | */ | |
| 86 | public void paintBar(Graphics2D g2, BarRenderer renderer, int row, | |
| 87 | int column, boolean selected, RectangularShape bar, | |
| 88 | RectangleEdge base) { | |
| 89 | ||
| 90 | Paint itemPaint = renderer.getItemPaint(row, column, selected); | |
| 91 | GradientPaintTransformer t = renderer.getGradientPaintTransformer(); | |
| 92 |
2
1. paintBar : negated conditional → NO_COVERAGE 2. paintBar : negated conditional → NO_COVERAGE |
if (t != null && itemPaint instanceof GradientPaint) { |
| 93 | itemPaint = t.transform((GradientPaint) itemPaint, bar); | |
| 94 | } | |
| 95 |
1
1. paintBar : removed call to java/awt/Graphics2D::setPaint → NO_COVERAGE |
g2.setPaint(itemPaint); |
| 96 |
1
1. paintBar : removed call to java/awt/Graphics2D::fill → NO_COVERAGE |
g2.fill(bar); |
| 97 | ||
| 98 | // draw the outline... | |
| 99 |
1
1. paintBar : negated conditional → NO_COVERAGE |
if (renderer.isDrawBarOutline()) { |
| 100 | // && state.getBarWidth() > BAR_OUTLINE_WIDTH_THRESHOLD) { | |
| 101 | Stroke stroke = renderer.getItemOutlineStroke(row, column, | |
| 102 | selected); | |
| 103 | Paint paint = renderer.getItemOutlinePaint(row, column, selected); | |
| 104 |
2
1. paintBar : negated conditional → NO_COVERAGE 2. paintBar : negated conditional → NO_COVERAGE |
if (stroke != null && paint != null) { |
| 105 |
1
1. paintBar : removed call to java/awt/Graphics2D::setStroke → NO_COVERAGE |
g2.setStroke(stroke); |
| 106 |
1
1. paintBar : removed call to java/awt/Graphics2D::setPaint → NO_COVERAGE |
g2.setPaint(paint); |
| 107 |
1
1. paintBar : removed call to java/awt/Graphics2D::draw → NO_COVERAGE |
g2.draw(bar); |
| 108 | } | |
| 109 | } | |
| 110 | ||
| 111 | } | |
| 112 | ||
| 113 | /** | |
| 114 | * Paints a single bar instance. | |
| 115 | * | |
| 116 | * @param g2 the graphics target. | |
| 117 | * @param renderer the renderer. | |
| 118 | * @param row the row index. | |
| 119 | * @param column the column index. | |
| 120 | * @param bar the bar | |
| 121 | * @param base indicates which side of the rectangle is the base of the | |
| 122 | * bar. | |
| 123 | * @param pegShadow peg the shadow to the base of the bar? | |
| 124 | */ | |
| 125 | public void paintBarShadow(Graphics2D g2, BarRenderer renderer, int row, | |
| 126 | int column, boolean selected, RectangularShape bar, | |
| 127 | RectangleEdge base, boolean pegShadow) { | |
| 128 | ||
| 129 | // handle a special case - if the bar colour has alpha == 0, it is | |
| 130 | // invisible so we shouldn't draw any shadow | |
| 131 | Paint itemPaint = renderer.getItemPaint(row, column, selected); | |
| 132 |
1
1. paintBarShadow : negated conditional → NO_COVERAGE |
if (itemPaint instanceof Color) { |
| 133 | Color c = (Color) itemPaint; | |
| 134 |
1
1. paintBarShadow : negated conditional → NO_COVERAGE |
if (c.getAlpha() == 0) { |
| 135 | return; | |
| 136 | } | |
| 137 | } | |
| 138 | ||
| 139 | RectangularShape shadow = createShadow(bar, renderer.getShadowXOffset(), | |
| 140 | renderer.getShadowYOffset(), base, pegShadow); | |
| 141 |
1
1. paintBarShadow : removed call to java/awt/Graphics2D::setPaint → NO_COVERAGE |
g2.setPaint(renderer.getShadowPaint()); |
| 142 |
1
1. paintBarShadow : removed call to java/awt/Graphics2D::fill → NO_COVERAGE |
g2.fill(shadow); |
| 143 | ||
| 144 | } | |
| 145 | ||
| 146 | /** | |
| 147 | * Creates a shadow for the bar. | |
| 148 | * | |
| 149 | * @param bar the bar shape. | |
| 150 | * @param xOffset the x-offset for the shadow. | |
| 151 | * @param yOffset the y-offset for the shadow. | |
| 152 | * @param base the edge that is the base of the bar. | |
| 153 | * @param pegShadow peg the shadow to the base? | |
| 154 | * | |
| 155 | * @return A rectangle for the shadow. | |
| 156 | */ | |
| 157 | private Rectangle2D createShadow(RectangularShape bar, double xOffset, | |
| 158 | double yOffset, RectangleEdge base, boolean pegShadow) { | |
| 159 | double x0 = bar.getMinX(); | |
| 160 | double x1 = bar.getMaxX(); | |
| 161 | double y0 = bar.getMinY(); | |
| 162 | double y1 = bar.getMaxY(); | |
| 163 |
1
1. createShadow : negated conditional → NO_COVERAGE |
if (base == RectangleEdge.TOP) { |
| 164 |
1
1. createShadow : Replaced double addition with subtraction → NO_COVERAGE |
x0 += xOffset; |
| 165 |
1
1. createShadow : Replaced double addition with subtraction → NO_COVERAGE |
x1 += xOffset; |
| 166 |
1
1. createShadow : negated conditional → NO_COVERAGE |
if (!pegShadow) { |
| 167 |
1
1. createShadow : Replaced double addition with subtraction → NO_COVERAGE |
y0 += yOffset; |
| 168 | } | |
| 169 |
1
1. createShadow : Replaced double addition with subtraction → NO_COVERAGE |
y1 += yOffset; |
| 170 | } | |
| 171 |
1
1. createShadow : negated conditional → NO_COVERAGE |
else if (base == RectangleEdge.BOTTOM) { |
| 172 |
1
1. createShadow : Replaced double addition with subtraction → NO_COVERAGE |
x0 += xOffset; |
| 173 |
1
1. createShadow : Replaced double addition with subtraction → NO_COVERAGE |
x1 += xOffset; |
| 174 |
1
1. createShadow : Replaced double addition with subtraction → NO_COVERAGE |
y0 += yOffset; |
| 175 |
1
1. createShadow : negated conditional → NO_COVERAGE |
if (!pegShadow) { |
| 176 |
1
1. createShadow : Replaced double addition with subtraction → NO_COVERAGE |
y1 += yOffset; |
| 177 | } | |
| 178 | } | |
| 179 |
1
1. createShadow : negated conditional → NO_COVERAGE |
else if (base == RectangleEdge.LEFT) { |
| 180 |
1
1. createShadow : negated conditional → NO_COVERAGE |
if (!pegShadow) { |
| 181 |
1
1. createShadow : Replaced double addition with subtraction → NO_COVERAGE |
x0 += xOffset; |
| 182 | } | |
| 183 |
1
1. createShadow : Replaced double addition with subtraction → NO_COVERAGE |
x1 += xOffset; |
| 184 |
1
1. createShadow : Replaced double addition with subtraction → NO_COVERAGE |
y0 += yOffset; |
| 185 |
1
1. createShadow : Replaced double addition with subtraction → NO_COVERAGE |
y1 += yOffset; |
| 186 | } | |
| 187 |
1
1. createShadow : negated conditional → NO_COVERAGE |
else if (base == RectangleEdge.RIGHT) { |
| 188 |
1
1. createShadow : Replaced double addition with subtraction → NO_COVERAGE |
x0 += xOffset; |
| 189 |
1
1. createShadow : negated conditional → NO_COVERAGE |
if (!pegShadow) { |
| 190 |
1
1. createShadow : Replaced double addition with subtraction → NO_COVERAGE |
x1 += xOffset; |
| 191 | } | |
| 192 |
1
1. createShadow : Replaced double addition with subtraction → NO_COVERAGE |
y0 += yOffset; |
| 193 |
1
1. createShadow : Replaced double addition with subtraction → NO_COVERAGE |
y1 += yOffset; |
| 194 | } | |
| 195 |
3
1. createShadow : Replaced double subtraction with addition → NO_COVERAGE 2. createShadow : Replaced double subtraction with addition → NO_COVERAGE 3. createShadow : mutated return of Object value for org/jfree/chart/renderer/category/StandardBarPainter::createShadow to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE |
return new Rectangle2D.Double(x0, y0, (x1 - x0), (y1 - y0)); |
| 196 | } | |
| 197 | ||
| 198 | /** | |
| 199 | * Tests this instance for equality with an arbitrary object. | |
| 200 | * | |
| 201 | * @param obj the obj (null permitted). | |
| 202 | * | |
| 203 | * @return A boolean. | |
| 204 | */ | |
| 205 | public boolean equals(Object obj) { | |
| 206 |
1
1. equals : negated conditional → KILLED |
if (obj == this) { |
| 207 |
1
1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE |
return true; |
| 208 | } | |
| 209 |
1
1. equals : negated conditional → KILLED |
if (!(obj instanceof StandardBarPainter)) { |
| 210 |
1
1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED |
return false; |
| 211 | } | |
| 212 |
1
1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED |
return true; |
| 213 | } | |
| 214 | ||
| 215 | /** | |
| 216 | * Returns a hash code for this instance. | |
| 217 | * | |
| 218 | * @return A hash code. | |
| 219 | */ | |
| 220 | public int hashCode() { | |
| 221 | int hash = 37; | |
| 222 | // no fields to compute... | |
| 223 |
1
1. hashCode : replaced return of integer sized value with (x == 0 ? 1 : 0) → SURVIVED |
return hash; |
| 224 | } | |
| 225 | ||
| 226 | } | |
| 227 | ||
Mutations | ||
| 92 |
1.1 2.2 |
|
| 95 |
1.1 |
|
| 96 |
1.1 |
|
| 99 |
1.1 |
|
| 104 |
1.1 2.2 |
|
| 105 |
1.1 |
|
| 106 |
1.1 |
|
| 107 |
1.1 |
|
| 132 |
1.1 |
|
| 134 |
1.1 |
|
| 141 |
1.1 |
|
| 142 |
1.1 |
|
| 163 |
1.1 |
|
| 164 |
1.1 |
|
| 165 |
1.1 |
|
| 166 |
1.1 |
|
| 167 |
1.1 |
|
| 169 |
1.1 |
|
| 171 |
1.1 |
|
| 172 |
1.1 |
|
| 173 |
1.1 |
|
| 174 |
1.1 |
|
| 175 |
1.1 |
|
| 176 |
1.1 |
|
| 179 |
1.1 |
|
| 180 |
1.1 |
|
| 181 |
1.1 |
|
| 183 |
1.1 |
|
| 184 |
1.1 |
|
| 185 |
1.1 |
|
| 187 |
1.1 |
|
| 188 |
1.1 |
|
| 189 |
1.1 |
|
| 190 |
1.1 |
|
| 192 |
1.1 |
|
| 193 |
1.1 |
|
| 195 |
1.1 2.2 3.3 |
|
| 206 |
1.1 |
|
| 207 |
1.1 |
|
| 209 |
1.1 |
|
| 210 |
1.1 |
|
| 212 |
1.1 |
|
| 223 |
1.1 |


My team and I built a project where machine learning could be used to predict a video game's movement, and thus effetively remove lag.
My team and I attempted to improve the security of voice communications, using the powerful properties of sound waves.
This project I completed with my group was a tool where users could draw and type on a computer, only using hand motions.
This project relied on using the new technology, blockchain, to create a network of self driving vehicles that could communicate with eachother, ensuring efficient and safe trips for autonomous vehicles..
We created a tool that can help the visually impaired navigate their surroundings better, using an Arduino controlled device attached to a harness.
Using webcam tracking and OpenCV, we created a tool where users could play musical instruments through hand motions.
Our team competed in the Popsicle Stick Bridge event in the London Science Olympics, held at the University of Western Ontario.


MAJOR ACADEMIC PROJECTS
CS 16: Thesis 1 (2nd Semester AY 2021-2022)
"DeBraille: Braille Writing Sytem Scanning Application"
- Scans braille writing system for people who have no knowledge in braille.
CS 11/L: Software Engineering 1 (2nd Semester AY 2021-2022)
"QR code Contact Tracing traveling to Roxas from Puerto Princesa City and Vice versa"
- QR code are given to passengers with their information for easy and safe transactions.
OTHER RELEVANT INFORMATION
- Became an officer during the First year in the position of Public Information Officer
- Attended numerous seminars and webinars in the field of Computer Science
- Block head of block 2 during the 3rd year second Semester


Coupon Offers
Brand
Page 2
Page 3
Page 4
Sign Up
Login
Chania
The atmosphere in Chania has a touch of Florence and Venice.
Previous
Next
TODAY 'S BEST OFFERS & COUPONS
1186 Uses Today
Deal of the Day: Upto 85% Off on Deals Every Hour
See all 42 Amazon Offers


By choosing the axes of your choice!
Hover over to get granular details!
There is a gap to fill, in providing healthcare where there is a higher poverty rate.We need more Health Care facilities to be accessible to the Poor.
Smoking is more among people living in poverty; financial stress could be a factor. Awareness and Better rehabilitation facilities to be available to the poor.
Unhealthy food is cheaper compared to healthy ones. Better nutrition is to be provided to the poor with moderate prices.
Obesity is a problem for all ages. Everyone should be made aware of the health issues related to obesity.
People of middle age or more tend to smoke at a larger scale. Health issues related to smoking need to be made aware at a younger age itself.
Older population seems like getting the rightly deserving healthcare. People of higher age should continue getting more healthcare from the Government.
High income helps buying healthy food and have access to exercise facilities. Government should help low income households with basic nutrients and free public exercise facilities.
Smoking is more among people with lower income; financial stress could be a factor. Awareness and Better rehabilitation facilities to be available to the poor.
Lower income households are getting the deserving healthcare. This help should be continued by the Government over the coming years.


TabbableElementService provides ability to quickly search for a focusable/tabbable element in provided DOM tree.
TabbableElementService


Don’t just take our word for it. Check out some of our latest work.
Read more about what we do and our philosophy of design. Judge for yourself The work and results we’ve achieved for other clients, and meet our highly experienced Team who just love to design.
Tell Us Your Story


Sed is a stream editor. A stream editor is used to perform basic text transformations on an input stream (a file or input from a pipeline). While in some ways similar to an editor which permits scripted edits (such as ed), sed works by making only one pass over the input(s), and is consequently more efficient. But it is sed's ability to filter text in a pipeline which particularly distinguishes it from other types of editors.
Some examples:
input day into sed("s/day/night/") This will output "night"
input "day and night" into sed("s/\\sand\\s/-to-/") This will output "day-to-night"(Note the use of \s whitespace character).


Choose one item from each section for $30.
| item | ingredients/description | price |
|---|---|---|
| first course: choose one | ||
| Heirloom Tomato Bruschetta |
fresh mozzarella, Modena balsamic, basil, crostini
|
|
| Heirloom Tomato Soup |
fresh heirlooms, garlic, basil, cream
|
|
| Ten Mercer House Salad | mixed lettuce and greens, radish, cucumber, Israeli cous-cous, pumpkin seeds, green goddess dressing | |
| Grilled Romaine Salad |
feta, kalamata olives, smokey grilled tomato vinaigrette
|
|
| second course: choose one | ||
| Petrale Sole | pan fried sole, tarragon flour, artichoke lemon butter | |
| Seared Petite Tenderloin Medallions | shoulder tender medallions, wine demi glace, gorgonzola, mushrooms, sundried tomato, served over garlic mashers with seasonal vegetable * | |
| Washington Chicken |
garlic-crusted pan-roasted Washington chicken, rosemary garlic fingerlings, pan jus
|
|
| Four Cheese Ravioli |
gorgonzola, leeks, spinach, tarragon, shiitakes
|
|
| Wild Mushroom Risotto |
Chanterelles, fresh thyme, white wine, vegetable stock
|
|
| desserts: choose one | ||
| Vanilla Bean Custard | muscovado shell | |
| Chocolate Torte | hazelnuts, orange custard, caramel |
* Some items may contain raw or undercooked animal product. Such items may increase your risk of foodborne illness, especially if you have certain medical conditions.


Transportation Survey
In the past year, I have used the following modes of transportation to travel to work or school:
Riding a bike.
Driving a car.
Carpooling with others.
Walking.


Typography is a way of arranging type to make text legible, readable, and appealing when displayed. Angular Material's theming system supports customizing the typography settings for the library's components. Additionally, Angular Material provides APIs for applying typography styles to elements in your own application.
Angular Material's theming APIs are built with Sass. This document assumes familiarity with CSS and Sass basics, including variables, functions, and mixins.
Angular Material's typography APIs lets you specify any font-face. The default font-face value is
configured to Google's Roboto font with the 300, 400, and 500 font-weight styles. To use
Roboto, your application must load the font, which is not included with Angular Material. The
easiest way to load Roboto, or any other custom font, is by using Google Fonts. The following
snippet can be placed in your application's
to load Roboto from Google Fonts.
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500&display=swap" rel="stylesheet">
See Getting Started with the Google Fonts API for more about using Google Fonts. Also note that, by default, the Angular CLI inlines assets from Google Fonts to reduce render-blocking requests.
A typography level is a collection of typographic styles that corresponds to a specific part of an application's structure, such as a header. Each level includes styles for font family, font weight, font size, and letter spacing. Angular Material uses the typography levels from the 2018 version of the Material Design specification, outlined in the table below.
| Name | Description |
|---|---|
headline-1 |
One-off header, usually at the top of the page (e.g. a hero header). |
headline-2 |
One-off header, usually at the top of the page (e.g. a hero header). |
headline-3 |
One-off header, usually at the top of the page (e.g. a hero header). |
headline-4 |
One-off header, usually at the top of the page (e.g. a hero header). |
headline-5 |
Section heading corresponding to the
 tag. |
headline-6 |
Section heading corresponding to the
 tag. |
subtitle-1 |
Section heading corresponding to the
 tag. |
subtitle-2 |
Section heading corresponding to the
 tag. |
body-1 |
Base body text. |
body-2 |
Secondary body text. |
caption |
Smaller body and hint text. |
button |
Buttons and anchors. |
You can define a typography level with the define-typography-level
Sass function. This function
accepts, in order, CSS values for font-size
, line-height
, font-weight
, font-family
, and
letter-spacing
. You can also specify the parameters by name, as demonstrated in the example below.
@use '@angular/material' as mat;
$my-custom-level: mat.define-typography-level(
$font-family: Roboto,
$font-weight: 400,
$font-size: 1rem,
$line-height: 1,
$letter-spacing: normal,
);
A typography config is a collection of all typography levels. Angular Material represents this
config as a Sass map. This map contains the styles for each level, keyed by name. You can create
a typography config with the define-typography-config
Sass function. Every parameter for
define-typography-config
is optional; the styles for a level will default to Material Design's
baseline if unspecified.
@use '@angular/material' as mat;
$my-custom-typography-config: mat.define-typography-config(
$headline-1: mat.define-typography-level(112px, 112px, 300, $letter-spacing: -0.05em),
$headline-2: mat.define-typography-level(56px, 56px, 400, $letter-spacing: -0.02em),
$headline-3: mat.define-typography-level(45px, 48px, 400, $letter-spacing: -0.005em),
$headline-4: mat.define-typography-level(34px, 40px, 400),
$headline-5: mat.define-typography-level(24px, 32px, 400),
// ...
);
You can provide a typography config when defining a theme to customize typographic styles. See the theming guide for details on custom themes.
The following example shows a typical theme definition and a "kids theme" that only applies when
the ".kids-theme"
CSS class is present. You can see the theming guide for more guidance on
defining multiple themes.
@use '@angular/material' as mat;
@include mat.core();
$my-primary: mat.define-palette(mat.$indigo-palette, 500);
$my-accent: mat.define-palette(mat.$pink-palette, A200, A100, A400);
$my-typography: mat.define-typography-config();
$my-theme: mat.define-light-theme((
color: (
primary: $my-primary,
accent: $my-accent,
),
typography: $my-typography,
));
@include mat.all-component-themes($my-theme);
.kids-theme {
$kids-primary: mat.define-palette(mat.$cyan-palette);
$kids-accent: mat.define-palette(mat.$yellow-palette);
// Typography config based on the default, but using "Comic Sans" as the
// default font family for all levels.
$kids-typography: mat.define-typography-config(
$font-family: 'Comic Sans',
);
$kids-theme: mat.define-light-theme((
color: (
primary: $kids-primary,
accent: $kids-accent,
),
typography: $kids-typography,
));
@include mat.all-component-themes($kids-theme);
}
Each component also has a typography
mixin that emits only the typography styles for that
component, based on a provided typography config. The following example demonstrates applying
typography styles only for the button component.
@use '@angular/material' as mat;
$kids-typography: mat.define-typography-config(
// Specify "Comic Sans" as the default font family for all levels.
$font-family: 'Comic Sans',
);
// Now we have sweet buttons with Comic Sans.
@include mat.button-typography($kids-typography);
In addition to styles shared between components, the typography-hierarchy
mixin includes CSS
classes for styling your application. These CSS classes correspond to the typography levels in your
typography config. This mixin also emits styles for native header elements scoped within the
.mat-typography
CSS class.
@use '@angular/material' as mat;
// Use the default configuration.
$my-typography: mat.define-typography-config();
@include mat.typography-hierarchy($my-typography);
The table below lists the CSS classes emitted and the native elements styled.
| CSS class | Level name | Native elements |
|---|---|---|
.mat-headline-1 |
headline-1 |
None |
.mat-headline-2 |
headline-2 |
None |
.mat-headline-3 |
headline-3 |
None |
.mat-headline-4 |
headline-4 |
None |
.mat-h1 or .mat-headline-5 |
headline-5 |

 |
.mat-h2 or .mat-headline-6 |
headline-6 |

 |
.mat-h3 or .mat-subtitle-1 |
subtitle-1 |

 |
.mat-h4 or .mat-body-1 |
body-1 |

 |
.mat-h5 |
None |
 |
.mat-h6 |
None |
 |
.mat-body or .mat-body-2 |
body-2 |
Body text |
.mat-body-strong or .mat-subtitle-2 |
subtitle-2 |
None |
.mat-small or .mat-caption |
caption |
None |
In addition to the typographic styles, these style rules also include a margin-bottom
for
headers and paragraphs. For body
styles, text is styled within the provided CSS selector.
The .mat-h5
and .mat-h6
styles don't directly correspond to a specific Material Design
typography level. The .mat-h5
style uses the body-2
level with the font-size scaled down by
0.83
. The .mat-h6
style uses the body-2
level with the font-size scaled down by 0.67
.
The button
and input
typography levels do not map to CSS classes.
The following example demonstrates usage of the typography styles emitted by the
typography-hierarchy
mixin.

Top header

Introductory text

Inner header

Some inner text

You can read typography style values from a typography config via the following Sass functions. Each accepts a typography config and a level.
| Function | Example usage |
|---|---|
font-size |
mat.font-size($config, 'body-1'); |
font-family |
mat.font-family($config, 'body-1'); |
font-weight |
mat.font-weight($config, 'body-1'); |
line-height |
mat.line-height($config, 'body-1'); |
letter-spacing |
mat.letter-spacing($config, 'body-1'); |
Additionally, you can use the typography-level
Sass mixin to directly emit the CSS styles for a
given typography level.
@use '@angular/material' as mat;
// Use the default configuration.
$my-typography: mat.define-typography-config();
.some-class-name {
@include mat.typography-level($my-typography, 'body-1');
}


Projects Home Page
<-- Back to Blog Home Page
My first Game Building Project
This is a work in progress on a simple bomberman text-based game. Check out my code! Feel free to send me any suggestions using the "Contact-Me" links below see full article -->
New Javascript project
My next upcoming adventure in the world of JS. Coming Soon!


--- layout: default title: Sidebar ---
When using compiled theme-wso2.js
, make sure that you will also import other other javascript dependencies like jquery
, bootstrap
etc ...
Alerts don't have default classes, only base and modifier classes.
Alerts don't have default classes, only base and modifier classes.
Alerts don't have default classes, only base and modifier classes.
Alerts don't have default classes, only base and modifier classes.
Alerts don't have default classes, only base and modifier classes.
Alerts don't have default classes, only base and modifier classes.
Alerts don't have default classes, only base and modifier classes.
Alerts don't have default classes, only base and modifier classes.
Alerts don't have default classes, only base and modifier classes.
Alerts don't have default classes, only base and modifier classes.
Alerts don't have default classes, only base and modifier classes.
Alerts don't have default classes, only base and modifier classes.


Favourite statistics papers
14 Jul 2016I’ve been having a great time at the Biometrics Conference in Victoria, BC (and not only because it’s my hometown). I’ve been enjoying sessions that are very relevant to my research area, and also some new and very intruiging topics for me (e.g., Bayesian non-parametrics). In both cases, I’ve had to do some real-time discrete googling to follow some of the talks, and it’s made me think about the set of papers that I tend to rely on and return to over and over. I think a lot of researchers and grad students have a set of papers like this. I’m going to compile mine (started below but will be updated), and adding a section of ones my colleagues recommend. Please contribute! Email or on twitter kt.morrison AT mail.mcgill.ca or @kathryn_tm
Here are a few that I went straight to during the conference. I’ll be adding to this later.
[1] Efron, B., and Tibshirani, R. Bootstrap methods for standard errors, confidence intervals, and other measures of statistical accuracy. Statistical Science (1986), 54–75.
[2] Geyer, C. J. Practical Markov chain Monte Carlo. Statistical Science 7, 4 (1992), 473–483.
[3] Lumley, T., Diehr, P., Emerson, S., and Chen, L. The importance of the normality assumption in large public health data sets. Annual Review of Public Health 23, 1 (2002), 151–169.
[4] Muff, S., Riebler, A., Rue, H., Saner, P., and Held, L. Bayesian analysis of measurement error models using INLA. Journal of the Royal Statistical Society, Series C (Applied Statistics) 64, 2 (2013), 231–252.
[5] Rue, H., Martino, S., and Chopin, N. Approximate Bayesian inference for latent Gaussian models by using integrated nested Laplace approximations. Journal of the Royal Statistical Society: Series B (Statistical Methodology) 71, 2 (2009), 319–392.
[6] Smith, A. F., and Roberts, G. O. Bayesian computation via the Gibbs sampler and related Markov chain Monte Carlo methods. Journal of the Royal Statistical Society, Series B (Statistical Methodology) (1993), 3–23.
[7] Wakefield, J., and Shaddick, G. Health-exposure modeling and the ecological fallacy. Biostatistics 7, 3 (2006), 438–455.
If you have any questions or comments, please post them below.


I constantly forget that in JavaScript values are passed by reference.
This has caused me many pains when dealing with state mutations.
One of my latest issue with this was in momentjs.
let moment = require('moment')
let time = moment()
console.log(time.format("dddd, MMMM Do YYYY, h:mm:ss a"))
// "Tuesday, October 6th 2015, 11:17:32 am"
console.log(time.utc().format("dddd, MMMM Do YYYY, h:mm:ss a"))
// "Tuesday, October 6th 2015, 6:17:32 pm"
console.log(time.format("dddd, MMMM Do YYYY, h:mm:ss a"))
// "Tuesday, October 6th 2015, 6:17:32 pm"
// WAT?
Read the Docs. I mean REALLY read the docs!
Sets a flag on the original moment to internally use Date#getUTC* and Date#setUTC* instead of Date#get* and Date#set*. — Moment UTC
How can we avoid this specific issue?
Clone the, moment, object.
let moment = require('moment')
let time = moment()
console.log(time.format("dddd, MMMM Do YYYY, h:mm:ss a"))
// "Tuesday, October 6th 2015, 11:17:32 am"
console.log(time.clone().utc().format("dddd, MMMM Do YYYY, h:mm:ss a"))
// "Tuesday, October 6th 2015, 6:17:32 pm"
console.log(time.format("dddd, MMMM Do YYYY, h:mm:ss a"))
// "Tuesday, October 6th 2015, 11:17:32 am"
Great! But how do I do this outside of moment?
Check your preferred lib it most likely has a clone() function.
$.clone()
_.clone()
Otherwise, I would recommend lodash.clone
Not all copying/cloning is equal
let me = {
name: 'Stuart',
movies: [{
title: 'Star Wars',
fav: true
},{
title: 'Mad Max 2'
},{
title: 'Monty Python'
}]
}
let miniMe = Object.assign({}, me)
miniMe.name = 'Mini Stuart'
miniMe.movies[0].fav = false
console.log(me)
// {"name":"Stuart","movies":[{"title":"Star Wars","fav":false},{"title":"Mad Max 2"},{"title":"Monty Python"}]}
console.log(miniMe)
// {"name":"Mini Stuart","movies":[{"title":"Star Wars","fav":false},{"title":"Mad Max 2"},{"title":"Monty Python"}]}
If interested in understanding values by reference and cloning objects you should read up on a few topics.
_.clone()


Travel app where you insert a place and a date and receive the
temperature for that
period. This app uses 3 APIs in a promise chain to get the data.
HTML, Sass, JavaScript, Webpack, Node.js, Jest, Service Workers and Local
Storage.
Repository
Visit Project >


Source code for qiskit_aqua.multiclass.one_against_rest
# -*- coding: utf-8 -*-
# Copyright 2018 IBM.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# =============================================================================
from sklearn.preprocessing import LabelBinarizer
from sklearn import datasets
from sklearn.decomposition import PCA
from sklearn import datasets
from sklearn.cross_validation import train_test_split
from qiskit_aqua.multiclass.dimension_reduction import reduce_dim_to
import numpy as np
from sklearn.svm import LinearSVC
from sklearn.utils.validation import _num_samples
[docs]class OneAgainstRest: # binary: 1 and 0
def __init__(self, estimator_cls, params=None):
self.estimator_cls = estimator_cls
self.params = params
# def balance(self, X, Y, num_of_classes):
# cond = (Y==1)
# indcond = np.arange(Y.shape[0])[cond]
# X_filtered = X[indcond]
# Y_filtered = Y[indcond]
#
# for i in range(num_of_classes-2):
# Y = np.concatenate((Y,Y_filtered))
# X = np.concatenate((X,X_filtered))
#
# return X, Y
[docs] def train(self, X_train, y_train):
self.label_binarizer_ = LabelBinarizer(neg_label=-1)
Y = self.label_binarizer_.fit_transform(y_train)
# Y = Y.tocsc()
self.classes = self.label_binarizer_.classes_
num_of_classes = len(self.classes)
columns = (np.ravel(col) for col in Y.T)
self.estimators = []
for i, column in enumerate(columns):
# print(i, column) #X, column
unique_y = np.unique(column)
if len(unique_y) == 1:
raise Exception("given all data points are assigned to the same class, the prediction would be boring.")
if self.params == None:
estimator = self.estimator_cls()
else:
estimator = self.estimator_cls(*self.params)
# X_train_balanced, column_balanced = self.balance(X_train, column, num_of_classes)
# estimator.fit(X_train_balanced, column_balanced)
estimator.fit(X_train, column)
self.estimators.append(estimator)
[docs] def test(self, X, y):
A = self.predict(X)
B = y
l = len(A)
diff = 0
for i in range(0, l):
if A[i] != B[i]:
diff = diff + 1
print("%d out of %d are wrong" %(diff, l))
return 1-(diff*1.0/l)
[docs] def predict(self, X):
n_samples = _num_samples(X)
maxima = np.empty(n_samples, dtype=float)
maxima.fill(-np.inf)
argmaxima = np.zeros(n_samples, dtype=int)
for i, e in enumerate(self.estimators):
pred = np.ravel(e.decision_function(X))
np.maximum(maxima, pred, out=maxima)
argmaxima[maxima == pred] = i
return self.classes[np.array(argmaxima.T)]


Drake discography
- Drake "views" 2016
- Drake "if you're reading this it too late " 2015
- Drake "What a Time to be Alive"2015
- Drake "The Gift Without a Curse" 2014
- Drake "Nothing Was the Same" 2013
- Drake "Take Care" 2011
- Drake "Thank Me Later" 2010
- Drake "so far gone" 2009
- Drake "Dead perspective 2009
- Drake "comeback season" 2007


Report Card
Student: Beatrice Beets
Teacher: Mr. Mango
| Subject | Graded Assignments | Total Assignments | Partial Grade | Final Grade |
|---|---|---|---|---|
| English | 80 | 4 | 5 | 80 |
| Math | 80 | 4 | 5 | 80 |
| Science | 80 | 4 | 5 | 80 |
| Astrology | 80 | 4 | 5 | 80 |
| Cooking | 80 | 4 | 5 | 80 |
| Subject | Graded Assignments | Total Assignments | Partial Grade | Final Grade |
|---|---|---|---|---|
| English | 80 | 4 | 5 | 80 |
| Math | 80 | 4 | 5 | 80 |
| Science | 80 | 4 | 5 | 80 |
| Astrology | 80 | 4 | 5 | 80 |
| Cooking | 80 | 4 | 5 | 80 |


Comments
-
Greg Hurrell
Thanks for reporting the bug. You did the right think reinstalling to see if that fixed it. Another thing you should do is rule out preference file corruption. Do this by quitting Synergy, dragging the preferences file to the desktop (~/Library/Preferences/), and then restarting Synergy.
Let me know how you go.
-
Greg Hurrell
Just to put this advice on the record, there are a number of steps you should undertake when you encounter a problem like this to find out whether the problem lies in Synergy or outside of it (in it's environment). Once we know what's causing the problem we can then either fix Synergy to cope with the environment, or fix the environment!
1. Uninstall using the installer, then reinstall.
2. Quit Synergy, drag your preferences file out onto the Desktop, then restart Synergy.
3. Try to reproduce the problem from another user account on the same computer; if you don't have another account, make one.
If "1" fixes it then, er, it's fixed.

If "3" fixes it then you know there's something in your user account which is triggering the problem (other software you're running? conflicts? etc); this we can investigate further until we know what's triggering the problem.
If none of these fix it then we are talking about a bug in Synergy, or a conflict triggered by your hardware, peripherals, OS version etc.
-
Greg Hurrell
Thanks for sending me the System Profiler report.
I notice a lot of entries in the System log output like this, which tells us why the floater isn't showing.
2004-11-24 12:17:15.347 Synergy[315] Received unexpected number of items from iTunes (0); unable to parse
It means that iTunes isn't responding to the Apple Events sent by Synergy. I don't know what might be causing this, but I do notice you've got installed "iPod2iTunes 0.9.9 Beta". Try temporarily removing that and see if the problem goes away. I didn't see any other third-party software which could interfere with iTunes, but if you have any installed then you should also look at disabling it to see if you can identify the conflict.
Keep me posted of how you go.
-
Nick Young
OK I set up a new user on my machine and ran itunes (using a shared library from my other user account) and then downloaded synergy 1.5b and installed. Still no floater window. I assume that if I have now set up as a new user then there can be no conflict from any third party software ? So it should now be a problem with synergy or the type of mac. If it is the just this mac then I will find out when I get my old powerbook back on friday. I have a feeling though that synergy had stopped working on that one before it went away for repair. The powerbook was a titanium 667 G4 so a very different model. I shall report back when I have got that computer up and running again.
-
Greg Hurrell
Ok, thanks for investigating that further. There still could be some kind of third-party clash if you have such software installed for "all users" on your machine, but at least you've now ruled out other potential sources of clash.
The other thing I notice is you mention you use a shared library. What about if you access music from another source, like from a CD, or the Internet Radio, or some tracks imported directly into that user account?
-
Greg Hurrell
Just received this log stuff from Nick:
2004-11-26 13:37:47.688 Synergy[445] Received unexpected number of items from iTunes (0); unable to parse 2004-11-26 13:38:47.683 Synergy[445] Received unexpected number of items from iTunes (0); unable to parse 2004-11-26 13:39:47.682 Synergy[445] Received unexpected number of items from iTunes (0); unable to parse 2004-11-26 13:40:01.702 Synergy[445] Received unexpected number of items from iTunes (0); unable to parse 2004-11-26 13:40:08.554 Synergy[485] CFLog (21): Error loading /System/Library/ PrivateFrameworks/AppleScript.framework/Versions/A/AppleScript: error code 1, error number 88 (dyld: /Users/nick/Library/PreferencePanes/Synergy.prefPane/Contents/Resources/Synergy.app/ Contents/MacOS/Synergy truncated or malformed library: /System/Library/PrivateFrameworks/ AppleScript.framework/Versions/A/AppleScript (file is empty) ) 2004-11-26 13:40:08.861 Synergy[485] CFLog (21): Error loading /System/Library/ PrivateFrameworks/AppleScript.framework/Versions/A/AppleScript: error code 1, error number 88 (dyld: /Users/nick/Library/PreferencePanes/Synergy.prefPane/Contents/Resources/Synergy.app/ Contents/MacOS/Synergy truncated or malformed library: /System/Library/PrivateFrameworks/ AppleScript.framework/Versions/A/AppleScript (file is empty) ) 2004-11-26 13:40:08.877 Synergy[485] Error 1231696 while attempting to execute AppleScript ((null)) 2004-11-26 13:40:09.070 Synergy[485] Received unexpected number of items from iTunes (0); unable to parse 2004-11-26 13:41:08.926 Synergy[485] Received unexpected number of items from iTunes (0); unable to parse 2004-11-26 13:42:08.926 Synergy[485] Received unexpected number of items from iTunes (0); unable to parse 2004-11-26 13:43:00.036 Synergy[485] Received unexpected number of items from iTunes (0); unable to parse 2004-11-26 13:43:08.926 Synergy[485] Received unexpected number of items from iTunes (0); unable to parse 2004-11-26 13:44:08.926 Synergy[485] Received unexpected number of items from iTunes (0); unable to parse 2004-11-26 13:45:08.926 Synergy[485] Received unexpected number of items from iTunes (0); unable to parse 2004-11-26 13:46:08.926 Synergy[485] Received unexpected number of items from iTunes (0); unable to parse 2004-11-26 13:47:08.926 Synergy[485] Received unexpected number of items from iTunes (0); unable to parse 2004-11-26 13:48:08.926 Synergy[485] Received unexpected number of items from iTunes (0); unable to parse 2004-11-26 13:49:06.784 Synergy[485] Received unexpected number of items from iTunes (0); unable to parse 2004-11-26 13:49:08.927 Synergy[485] Received unexpected number of items from iTunes (0); unable to parse 2004-11-26 13:50:08.927 Synergy[485] Received unexpected number of items from iTunes (0); unable to parse
Well, the log entries show that Synergy isn't receiving the reply that it's expecting from iTunes, and that's why the floater isn't coming up.
The mystery is, why do you have those log entries about a malformed AppleScript framework? I fear it could be corrupted.
Here's the output I get if I run "otool" on my own copy of the framework (you need the Xcode Tools installed if you want to use "otool":
$ otool -M /System/Library/PrivateFrameworks/AppleScript.framework/Vers ions/A/AppleScript /System/Library/PrivateFrameworks/AppleScript.framework/Versions/A/AppleScript: Module table (1 entries) module 0
module_name = 8260 iextdefsym = 3188 nextdefsym = 4 irefsym = 0 nrefsym = 460 ilocalsym = 0 nlocalsym = 3188 iextrel = 0 nextrel = 32 iinit_iterm = 0 0 ninit_nterm = 0 0 objc_addr = 0x0 objc_size = 0
You can also get some interesting output by passing the "-l" switch to otool.
 I don't know if there's any easy way to do it without doing a full reinstall. Perhaps the comments you made about Carbon Copy Cloner not working properly either (CCC also uses AppleScript, as far as I know) support the theory that you've got a corrupt framework.
-
Greg Hurrell
Changing assignment to reflect my new email address.
https://wincent.com/a/news/archives/2006/05/change_of_email.php
-
Greg Hurrell
Marking as closed due to inactivity; seems to be a non-issue as nobody else has reported it.
-
Greg Hurrell
Status changed:
- From: new
- To: closed
Add a comment
Comments are now closed for this issue.


Postdoctoral Researcher, Bader Lab
The Donnelly Centre
University of Toronto
160 College Street, Room 630
The Donnelly Centre
University of Toronto
Toronto, Ontario
Canada, M5S 3E1
Map
Email: mohamed.attiashahata[AT]utoronto.ca
A. Oral Presentations
5- Helmy M., Providing Open Source Tools for Network Biology Community: 2 Years with GSoC. Google Summer of Code Mentors Summit (GSoC'16). CA, USA 2016.
4- Helmy M., Assessment of the somatic mutations impact on cancer network dynamics using domain-based protein interaction networks. 2nd Symposium on Complex Biodynamics & Networks (cBio2015). Tsuruoka, Japan 2015.
3 - Helmy M., Tomita M., Tsuchiya M., Selvarajoo K. AP-1 and NF-kB are key regulators of Toll-Like Receptor 3 signaling pathway: an in silico prediction. EJISST2008.Tokyo 2008.
2- Helmy M. Understanding the signaling dynamics of the innate immune system. 3rd E-Cell workshop. Tokyo 2007.
1- Selvarajoo K., Helmy M., Tomita M., Tsuchiya M. Inferring the mechanistic basis for the dynamic response of the MyD88-dependent and -independent pathways. 10th International Conference on Molecular Systems Biology 2008 (ICMSB'08). Philippines 2008.
B. Invited Talks
5- Helmy M. Network Topology and Dynamics in Cancer and Inflammatory Diseases (2015) Niigata University, Japan. Host: Professor Tabashi Yamamoto.
4- Helmy M. Systems Biology Approaches to Understand Signaling Pathways, Improve Genome Annotations and Identify Cancer Somatic Mutations (2012). The University of Toronto. Host: Professor Gary Bader.
3- Helmy M. Proteogenomics and Onco-Proteogenomics (2012). Kyoto University, Department of Molecular and cellular Bio-analysis. Host: Professor Yasushi Ishihama.
2- Helmy M. Proteogenomics: utilization of proteomics data in genome annotation process (2011). Al- Azhar University, Department of Biotechnology. Host: Professor Fawzy El-Fiky, Head of the department.
1- Helmy M. Genome annotation, the foundation of genetic and metabolic engineering (2009). Al-Azhar University, Department of Biotechnology. Host: Professor Fawzy El-Fiky, Head of the department.
C. Poster Presentations
17- Helmy M., Wagih O., Bader G., Cancer high-resolution domain-based protein interaction networks with integrated mutation impacts. The Modularity of Signalling Proteins and Networks. Austria 2016.
16- Helmy M., Bader G., DV-Impact: An online resource and data standard for reporting disease variants impact on domain-based protein interactions. The GLBIO/CCBC Great Lakes Bioinformatics and the Canadian Computational Biology Conference 2016. Toronto, Canada 2016.
15- Helmy M., Bader G., Predicting mutations impact in protein interaction networks in cancer. The International Congress of the Human Proteome organization (HUPO2015). Vancouver, Canada 2015.
14- Risk B. & Helmy M.,., Peppy 2.0: New Software Addressing the Sensitivity Problem in Proteogenomics. The International Congress of the Human Proteome organization (HUPO2015). Vancouver, Canada 2015.
13- Helmy M., Onco-ProteoGenomics: Onco-ProteoGenomics: a systems biology approach to identify cancer related somatic mutations. The 13th international conference on Systems Biology (ICSB2012), Toronto, ON, Canada 2012.
12- Helmy M., Onco-ProteoGenomics: alliance of proteomics, next-generation sequencing and comprehensive database search for identification of onco-peptides. 60th ASMS Conference on Mass Spectrometry and Allied Topics, Vancouver, BC, Canada 2012.
11- Helmy M., MSSS: Bioinformatics method facilitates searching large set of peptide spectra against large nucleotide databases for structural- and onco-proteogenomics. The Society for In Vitro Biology’s Annual Meeting (SIVB2011). North Carolina, USA 2011.
10- Helmy M., Tomita M., Ishihama Y. Onco-proteogenomics: A novel approach for identification of cancer-specific mutation combining proteomics and transcriptome deep sequencing. Beyond the Genome (BTG2010). Harvard Medical School, Boston, USA 2010.
9- Helmy M., Tomita M., Ishihama Y. Onco-proteogenomics: toward the identification of oncogenic peptides and proteins. The International Congress of the Human Proteome organization (HUPO2010). Sydney, Australia 2010.
8- RIBONUCLEASE H 2008, Tsuruoka, Japan. [Attendance]
7- Helmy M., Tomita M., Ishihama Y. PGFeval: Software tool and web server for evaluation and visualization of proteogenomic features. The 20th International Conference on Genome Informatics (GIW2009). Yokohama, Japan 2009.
6- Helmy M., Tomita M., Ishihama Y. MSRI: Novel proteogenomic approaches to maximize the utilization of MS/MS data for genome reannotation. The 32nd Annual Meeting of the Molecular Biology Society of Japan (MBSJ2009).Yokohama, Japan 2009.
5- Helmy M., Tomita M., Ishihama Y. Novel features for rice genome revealed using proteogenomic analysis. The 10th international conference on Systems Biology (ICSB2009). Stanford University, CA, USA 2009.
4- Hayashi K., Helmy M., Tomita M., Tsuchiya M., Selvarajoo K. Systems biology approach reveals novel TNF-alpha signaling crosstalk. The 9th international conference on Systems Biology (ICSB2008). Sweden 2008.
3- Helmy M., Tomita M., Tsuchiya M., Selvarajoo K. Dynamic simulation of Toll-like Receptor 3 signaling pathway. The 9th international conference on Systems Biology (ICSB2008). Sweden 2008.
2– Helmy M., Tomita M., Tsuchiya M., Selvarajoo K. Computational simulations suggest transcription factors AP-1 and NF-κB are key regulators of TLR3 signaling. Annual International Conference on Research in Computational Molecular Biology (RECOMB2008). Singapore 2008.
1- Hayashi K., Helmy M., Magdi H., Tomita M., Tsuchiya M., Selvarajoo K. In silico model predicts the existence of novel pathways in activating transcription factor AP-1 in TNF-α signaling. Genome Informatics Workshop (GIW). Singapore 2007.


COVID-19 / Virology Study | SARS-CoV-2 Example
In this example, some available SARS-CoV-2 sequences are aligned with default options of MUSCLE and their variations are added.
For instance, you can display a particular genetic variation in any species by
just clicking this link.
For annotations part, GFF3 file is downloaded from NCBI GenBank for MT123293.


SPMOD - Ethernet
Overview
SPMOD_Ethernet(Ethernet module) uses W5500 chip.
SPMOD - Ethernet Introduction
- Using Sipeed-SPMOD interface(2.54mm * 8PIN )，unified MaixPy board interface
- Connect to the board through the SP-MOD SPI interface
- Master chip:The W5500 chip is a Hardwired TCP/IP embedded Ethernet controller
- The theoretical SPI design speed is 80MHz
- 10BaseT/100BaseTX Ethernet PHY embedded, Supports Auto Negotiation (Full and half duplex, 10 and 100-based )
- Size:35.76*19.74*8.7mm
W5500 chip Introduction
| Features: |
--- |
| Supply voltage of external power supply |
2.97V~3.63V |
| Supply current of external power supply |
<132mA |
| Range of working temperature |
-40℃~85℃ |
| Sleep Status of Current |
<15mA |
| SPI Clock |
The theoretical design speed is 80MHz |
| TCP/IP protocol |
Support TCP,UDP,ICMP,IPv4,ARP,IGMP,PPPoE protocols |
- Supports 8 independent sockets simultaneously
,Internal 32Kbytes Memory for TX/RX Buffers
,Supports Wake on LAN over UDP
,10BaseT/100BaseTX Ethernet PHY embedded
,Support Auto Negotiation (Full and half duplex, 10 and 100-based )
,Not support auto-MDIX feature
SPMOD_Ethernet pin description:
| Pin |
Name |
Type |
Description |
| 1 |
GND |
G |
Ground |
| 2 |
CS |
I |
Chip Select input pin |
| 3 |
SO |
I/0 |
Master In Slave Out |
| 4 |
NC |
NC |
Not connected |
| 5 |
3V3 |
V |
Power supply(3.3V) |
| 6 |
SCK |
I |
SPI clock pin |
| 7 |
SI |
I/0 |
Master Out Slave In |
| 8 |
NC |
NC |
Not connected |
Usage
Outlook
- SPMOD_Ethernet Size drawing:
Resource Link