vignettes/databasing-with-crestr.Rmd
databasing-with-crestr.Rmd
Note: If you have your own calibration data, this vignette is of little interest to you. Refer to the documentation of
crest.set_modern_data()
.
crestr
comes with a built-in global calibration dataset
for several proxies (see details in other vignettes andd the didicated
webpage). This dataset can be accessed in two different ways: - The data
can be accessed using crestr built-in functions, which connects
to a cloud-based database. This solution requires an active internet
connection and can be slow. The database in hosted on an Amazon server,
which is not accessible from some countries or if your internet
connection is not secure. - The entire calibration dataset can be
downloaded from [here]. However, it is a large file once unzipped
(>23Gb). The data extraction phase of the package is, however, MUCH
faster.
The two options can be easily selected from the package. But let’s
begin by loading crestr
.
In this example, we will work with a reduced dataset, composed of three pollen taxa:
PSE
#> Level Family Genus Species ProxyName
#> 1 1 Ericaceae <NA> <NA> Ericaceae
#> 2 2 Asteraceae Artemisia <NA> Artemisia
#> 3 2 Oleaceae Olea <NA> Olea
Independently of how you want to access the calibration data, you
will use the crest.get_modern_data()
if you want to use the
gbif4crest data.
If you want to access the cloud-based data, you will do the following:
reconstr <- crest.get_modern_data( pse = PSE,
taxaType = 1,
climate = c("bio1", "bio12"),
# The name of the online database
dbname = "gbif4crest_02",
verbose = TRUE
)
If you have downloaded and unzipped the gbif4crest dataset on your computer, you can use the following:
reconstr <- crest.get_modern_data( pse = PSE,
taxaType = 1,
climate = c("bio1", "bio12"),
# The full path to the local database
# Or place the database in the working
# directory.
dbname = "path/to/gbif4crest_02.sqlite3",
verbose = TRUE
)
Note: The local calibration database file can be saved in your working directory or anywhere else and renamed in any way. The file extension ‘.sqlite3’ is, however, the only difference between the online and the offline options. It is thus crucial to call the file database.sqlite3 to orient the package in the right direction.
A third option exists (crestr
> v1.3.0) that combines
the strength of the two above approaches: subsetting the online database
and save it locally. This way, you do not need to save a huge file on
your computer and you only need an active internet connection to create
the subset. Such subsets can be created using the
dbSubset()
function.
dbSubset( taxaType = 1,
xmn = 0, xmx = 50, ymn = -45, ymx = 0,
out = 'gbif4crest_southernAfrica.sqlite3',
verbose = TRUE
)
This will create a local snapshot of the database in your working
directory (unless you give it a different path with out
).
You can then use this restricted dataset with
crest.get_modern_data()
and all other functions as if it
was the “full” dataset. This restricted database is only 45Mb and the
storage problem is therefore avoided.
reconstr <- crest.get_modern_data( pse = PSE,
taxaType = 1,
climate = c("bio1", "bio12"),
# The full path to the local database
# Or place the database in the working
# directory.
dbname = "gbif4crest_southernAfrica.sqlite3",
verbose = TRUE
)


I realised the other day that I’ve been doing public speaking for quite a while now (started with doing internal training courses back in the 90’s, and graduated on to doing external speaking at seminars and conferences about 10 years back).
Over that time, I’ve inevitably made some mis-steps and also seen a number of others from speakers at conferences I’ve attended, so I thought it would be worth putting together some hints and tips for prospective speakers. Hopefully some of these will be useful!
-
Treat your presentation like a story. It should have a start, middle and an end. I find it helps to think of presentations in this way, as you can imagine the story your trying to tell and think about whether a particular slide fits into that part of the narrative or not. Think about “what am I trying to say, why should the audience care and what can they do about it”, and make sure your conclusion has some clear points or advice for next steps.
-
Don’t sweat presentation tool choice too much. A lot of people get very hung up on liking/disliking specific presentation tools (e.g. PowerPoint, Prezi, Keynote). The simple fact is that I’ve seen good and bad presentations with every tool. The important part is that you find one that suits your style and learn how to use it well.
-
Avoid walls of text in your presentation. This one is very common. If you put a lot of dense text on your slides, people will naturally start reading that and not paying attention to what you’re saying. There’s a natural desire to provide information for people after the talk but that can easily go in speaker notes, or a white paper, or a blog post. It doesn’t need to go into the body of the slide.
-
Practice, Practice, Practice. Timing a talk is really tricky to do. The best way to address this is practice your talk. Talk to yourself, your dog/cat, your partner, your friends, basically anyone who’ll listen. I find that once I’ve delivered a talk a couple of times in this way, it’s easier to remember queues and the flow of the talk.
-
Speaker Note cards. Again this one gets a lot of pro/con feeling. My advice is, if you feel you need prompt cards, use them. But try to avoid just reading them one at a time. Keep themes or key points on there, don’t put the exact words you want to say. If you just read from cards, you won’t be able to engage your audience.
-
Engage your audience. So this is hard, especially if you’re not used to public speaking. But it’s important to look up at your audience while you speak. Try to look around, not just at one person.
-
Demos (and the dark god). Live demos can help bring a topic to life and, when done right, can really help drive a point across. With that said, they often fail, which can be pretty stressful in the middle of a presentation! I’ve had things which literally worked 30 minutes earlier, fail for no obvious reason. This happens so often that many presenters will refer to “The dark god of demos”!. My recommendation for speakers who are starting out is to avoid them unless really necessary and always have a back-up option like a pre-recorded video.
-
Fonts and colours. Watch out for this when presenting things like live coding or other demos. Fonts and colour schemes which look good on your laptop may be totally unintelligible when up on a big screen. In particular avoid dark backgrounds with coloured text, these rarely look good. Also make sure you’re au-fait with the keyboard shortcuts for making text larger and smaller in your editor/IDE, as you will likely need to use them on the day…
-
Always develop your own material. It’s very hard to deliver someone else’s slide deck well. I’ve seen a number of times where the presenter didn’t write their presentation, and sometimes didn’t seem to have read it either! This results in a rather disjointed delivery and inability to answer questions, which rarely ends well… If you absolutely have to do this, make sure to read/understand the whole thing before delivery.
-
Lastly Enjoy yourself :). Public speaking can seem like a stressful thing to do, and everyone gets nervous when then present (well I do anyway) but it can be fun to explain your ideas to a group of people and in a lot of cases you’ll get some good feedback/ideas about what you could do next.


PART II. ELECTRONIC WASTE RECYCLING
Note
Sections 339D-2 through 339D-6 designated as part II by L 2009, c 183, §4.
§339D-2 Scope of products. The collection, transportation, and recycling provisions of this part shall apply only to covered electronic devices used and discarded in this State by a covered entity. [L Sp 2008, c 13, pt of §2; am L 2009, c 183, §9]


| 12V C+ |
Power plug |
|
| B1 |
Buzzer 400Hz |
pin spacing 100mil; true; hole size 1.0mm,0.508mm; pins 3; label Buzzer 400Hz; package THT; layout Single Row |
| B2 |
Buzzer 2300Hz |
pin spacing 100mil; true; hole size 1.0mm,0.508mm; pins 3; label Buzzer 2300Hz; package THT; layout Single Row |
| IC1 |
ULN2803A |
variant ULN2803A; package THT; part # ULN2803A |
| IC2 |
ULN2803A |
variant ULN2803A; package THT; part # ULN2803A |
| IC3 |
ULN2803A |
variant ULN2803A; package THT; part # ULN2803A |
| J1 |
Generic shrouded header - 40 pins |
pin spacing 0.1in (2.54mm); row double; hole size 1.0mm,0.508mm; pins 40; form ♂ (shrouded male); package THT |
| J2 |
Screw terminal - 6 pins |
pin spacing 0.2in (5.08mm); hole size 1.3mm,0.508mm; pins 6; package THT; part # CTB3008/6 |
| J3 |
Screw terminal - 6 pins |
pin spacing 0.2in (5.08mm); hole size 1.3mm,0.508mm; pins 6; package THT; part # CTB3008/6 |
| J4 |
Screw terminal - 6 pins |
pin spacing 0.2in (5.08mm); hole size 1.3mm,0.508mm; pins 6; package THT; part # CTB3008/6 |
| J5 |
Screw terminal - 6 pins |
pin spacing 0.2in (5.08mm); hole size 1.3mm,0.508mm; pins 6; package THT; part # CTB3008/6 |
| J6 |
Screw terminal - 6 pins |
pin spacing 0.2in (5.08mm); hole size 1.3mm,0.508mm; pins 6; package THT; part # CTB3008/6 |
| J7 |
Screw terminal - 6 pins |
pin spacing 0.2in (5.08mm); hole size 1.3mm,0.508mm; pins 6; package THT; part # CTB3008/6 |
| J8 |
Screw terminal - 6 pins |
pin spacing 0.2in (5.08mm); hole size 1.3mm,0.508mm; pins 6; package THT; part # CTB3008/6 |
| J9 |
Screw terminal - 6 pins |
pin spacing 0.2in (5.08mm); hole size 1.3mm,0.508mm; pins 6; package THT; part # CTB3008/6 |
| LED1 |
Green (555nm) LED |
leg yes; color Green (555nm); package 5 mm [THT] |
| LED2 |
Red (633nm) LED |
leg yes; color Red (633nm); package 5 mm [THT] |
| LED3 |
Green (555nm) LED |
leg yes; color Green (555nm); package 5 mm [THT] |
| LED4 |
Red (633nm) LED |
leg yes; color Red (633nm); package 5 mm [THT] |
| LED5 |
Green (555nm) LED |
leg yes; color Green (555nm); package 5 mm [THT] |
| LED6 |
Red (633nm) LED |
leg yes; color Red (633nm); package 5 mm [THT] |
| LED7 |
Green (555nm) LED |
leg yes; color Green (555nm); package 5 mm [THT] |
| LED8 |
Red (633nm) LED |
leg yes; color Red (633nm); package 5 mm [THT] |
| LED9 |
Green (555nm) LED |
leg yes; color Green (555nm); package 5 mm [THT] |
| LED11 |
Green (555nm) LED |
leg yes; color Green (555nm); package 5 mm [THT] |
| LED11 |
Red (633nm) LED |
leg yes; color Red (633nm); package 5 mm [THT] |
| LED12 |
Red (633nm) LED |
leg yes; color Red (633nm); package 5 mm [THT] |
| LED13 |
Red (633nm) LED |
leg yes; color Red (633nm); package 5 mm [THT] |
| LED14 |
Green (555nm) LED |
leg yes; color Green (555nm); package 5 mm [THT] |
| LED14 |
Red (633nm) LED |
leg yes; color Red (633nm); package 5 mm [THT] |
| LED17 |
Green (555nm) LED |
leg yes; color Green (555nm); package 5 mm [THT] |
| LED18 |
Red (633nm) LED |
leg yes; color Red (633nm); package 5 mm [THT] |
| LED20 |
Green (555nm) LED |
leg yes; color Green (555nm); package 5 mm [THT] |
| LED20 |
Green (555nm) LED |
leg yes; color Green (555nm); package 5 mm [THT] |
| LED21 |
Green (555nm) LED |
leg yes; color Green (555nm); package 5 mm [THT] |
| LED21 |
Red (633nm) LED |
leg yes; color Red (633nm); package 5 mm [THT] |
| LED22 |
Red (633nm) LED |
leg yes; color Red (633nm); package 5 mm [THT] |
| LED23 |
Red (633nm) LED |
leg yes; color Red (633nm); package 5 mm [THT] |
| LED24 |
Green (555nm) LED |
leg yes; color Green (555nm); package 5 mm [THT] |
| Q1 |
NPN-Transistor |
type NPN (EBC); package TO92 [THT]; part # BC547B |
| Q2 |
NPN-Transistor |
type NPN (EBC); package TO92 [THT]; part # BC547B |
| R1 |
100Ω Resistor |
pin spacing 400 mil; resistance 100Ω; bands 4; tolerance ±5%; package THT |
| R2 |
100Ω Resistor |
pin spacing 400 mil; resistance 100Ω; bands 4; tolerance ±5%; package THT |
| R3 |
100Ω Resistor |
pin spacing 400 mil; resistance 100Ω; bands 4; tolerance ±5%; package THT |
| R4 |
100Ω Resistor |
pin spacing 400 mil; resistance 100Ω; bands 4; tolerance ±5%; package THT |
| R5 |
100Ω Resistor |
pin spacing 400 mil; resistance 100Ω; bands 4; tolerance ±5%; package THT |
| R6 |
100Ω Resistor |
pin spacing 400 mil; resistance 100Ω; bands 4; tolerance ±5%; package THT |
| R7 |
100Ω Resistor |
pin spacing 400 mil; resistance 100Ω; bands 4; tolerance ±5%; package THT |
| R8 |
100Ω Resistor |
pin spacing 400 mil; resistance 100Ω; bands 4; tolerance ±5%; package THT |
| R9 |
100Ω Resistor |
pin spacing 400 mil; resistance 100Ω; bands 4; tolerance ±5%; package THT |
| R10 |
100Ω Resistor |
pin spacing 400 mil; resistance 100Ω; bands 4; tolerance ±5%; package THT |
| R11 |
100Ω Resistor |
pin spacing 400 mil; resistance 100Ω; bands 4; tolerance ±5%; package THT |
| R12 |
100Ω Resistor |
pin spacing 400 mil; resistance 100Ω; bands 4; tolerance ±5%; package THT |
| R13 |
100Ω Resistor |
pin spacing 400 mil; resistance 100Ω; bands 4; tolerance ±5%; package THT |
| R14 |
100Ω Resistor |
pin spacing 400 mil; resistance 100Ω; bands 4; tolerance ±5%; package THT |
| R15 |
100Ω Resistor |
pin spacing 400 mil; resistance 100Ω; bands 4; tolerance ±5%; package THT |
| R16 |
100Ω Resistor |
pin spacing 400 mil; resistance 100Ω; bands 4; tolerance ±5%; package THT |
| R17 |
100Ω Resistor |
pin spacing 400 mil; resistance 100Ω; bands 4; tolerance ±5%; package THT |
| R18 |
100Ω Resistor |
pin spacing 400 mil; resistance 100Ω; bands 4; tolerance ±5%; package THT |
| R19 |
100Ω Resistor |
pin spacing 400 mil; resistance 100Ω; bands 4; tolerance ±5%; package THT |
| R20 |
100Ω Resistor |
pin spacing 400 mil; resistance 100Ω; bands 4; tolerance ±5%; package THT |
| R21 |
100Ω Resistor |
pin spacing 400 mil; resistance 100Ω; bands 4; tolerance ±5%; package THT |
| R22 |
100Ω Resistor |
pin spacing 400 mil; resistance 100Ω; bands 4; tolerance ±5%; package THT |
| R23 |
100Ω Resistor |
pin spacing 400 mil; resistance 100Ω; bands 4; tolerance ±5%; package THT |
| R24 |
100Ω Resistor |
pin spacing 400 mil; resistance 100Ω; bands 4; tolerance ±5%; package THT |
| R25 |
10kΩ Resistor |
pin spacing 400 mil; resistance 10kΩ; bands 4; tolerance ±5%; package THT |
| R26 |
10kΩ Resistor |
pin spacing 400 mil; resistance 10kΩ; bands 4; tolerance ±5%; package THT |
| U1 |
Sharp PC847X |
part PC847X; package THT; part # TLP521-4 |
| U2 |
Sharp PC847X |
part PC847X; package THT; part # TLP521-4 |
| U3 |
Sharp PC847X |
part PC847X; package THT; part # TLP521-4 |
| U4 |
Sharp PC847X |
part PC847X; package THT; part # TLP521-4 |
| U5 |
Sharp PC847X |
part PC847X; package THT; part # TLP521-4 |
| U6 |
Sharp PC847X |
part PC847X; package THT; part # TLP521-4 |


Click the button below to start the quiz. Once the quiz starts, you will have 60 seconds to finish it. Each correct answer will add to your score. Each incorrect answer will detract from your time. Your final score will be a combination of your score and the remaining time.


{{ template "widget/message.html" . }}
Please sign in
Username
Password
Sign in
Executing
Please wait...


Chapter 1 Creating a React app
To create our boilerplate code, we want to use something called ‘Create React App.’
To install this we want to run npx create-react-app <app-name>
. This uses the node package manager so Node must be installed. This sets up our frontend.
In these created files we have package.json
which tells us exactly what dependencies/addons are installed in React and we change this when we add an extension (this wil ususally be in the docs of the extension)
1.0.1 What we get in our boilerplate
We get an index.html
which basically just has a body tag with

which is basically the crux of how our React app gets rendered.
In the src
folder, inside the index.js
which is our front-most part of our React app, we grab the root
elemtent from our index.html
and render our <App />
. This <App />
tag comes from importing our root app from App.js
which houses all of our components. Basically:
1.0.2 Starting up our dev server
You must change directory into your React app folder and then we can run npm start
which will start our server on localhost:3000.
1.1 Components
In react, you can create components with funcitons and classes. The more common way these days is to use functions. Class components extend other classes.
Your basic functional component looks as follows:
let myVar;
export const Header = () => {
return (
<some HTML>
{myVar}1 + 2} // This will render as 3
{</some HTML>
) }
- Because we use the component in other
.js
files, we use theexport
keyword to denote that we are exporting the component for use elsewhere. - We are also using arrow funciton here
- Note that the return is returning HTML. This isn’t really HTML but rather JSX (JavaScript Syntax Extension) which allows us to use HTML and any JS expression to make our pseudo-HTML dynamic.
- We also see that we can have JS varaibels inside curly braces
- You must also only return one single top level element
You can also pass in ‘props’ to your components which allows you to pass data into your components which can be used.
Components have what is known as ‘state’ which is an object that determines how a component renders and behaves. This could be a value like ‘opne’ or ‘close.’ Sometimes you want App level state which referes to state that is available to the entire UI and not just a single component. This is done through Redux.
In React and JSX, we have clashes of HTML tag attributes like
class
andfor
, to get around this we useclassName
andhtmlFor
respectively.
1.1.1 Creating components
We create our components inside our src
file inside a components
file as .js
files.
You can use VSCode snippets addon to create the boilerplate for a component which will look as follows:
const MyComponent = () => {
return (

)
}
export default MyComponent
Note that we name our components in proper case.
We must then import it into our App.js
:
import MyComponent from './componennets/MyComponent'
function App() {
return (

<MyComponent /> // calling our component here

) }
- Notice here that when we import we use quotes for te path name
- We call our component with
<ComponentName />
1.2 Props
Props are basically parameters for your functional componenets which are passed in through the tag. We can access it in our component as an object.
const MyComponent = (props) => {
return (

)
}
// ====== In the file where we call the component ====
<MyComponent title='Hello'>
- As you can see, you do not need to expliclity define
title
but can pass it in and access it from a dictionary.
1.2.1 Default props
We can have default props for our components by doing the following:
const MyComponent = ({ title }) => {
return (

title

)
}
.defaultProps = {
Headertitle: 'My Title'
}
- Note that here we have descructured the object by using the {} which allows us to just directly access title.
We can also import PropTypes form 'prop-types'
to typeset your props using KVPs in the object MyComponent.propTypes = {title: PropType.string}
1.2.2 Componenets in components
It is simple to have components within components, all you have to do is
perform the relative import in your current component and the component will be
in the same directory so its just './Component
.


|
Discord.C++
0.12.0
|
#include <Member.h>
Public Member Functions | |
| Member (const json &data, const std::string &token) | |
| Member () | |
| operator std::string () | |
| Public Member Functions inherited from DiscordCPP::User | |
| User () | |
| User (const json &data, const std::string &token) | |
| User (const std::string &id, const std::string &token) | |
| virtual | ~User () |
| DMChannel | get_dmchannel () |
| get/create the DMChannel for this user More... | |
| Message | send (const std::string &content, const bool tts=false) |
| send a message to this user More... | |
| Message | send (const Embed &embed) |
| send an embed to this user More... | |
| Public Member Functions inherited from DiscordCPP::DiscordObject | |
| DiscordObject () | |
| DiscordObject (const std::string &token) | |
Public Attributes | |
| std::string | nick |
| the member's nickname More... | |
| std::string | joined_at |
| when the member joined the server More... | |
| bool | deaf = false |
| true, if the member is defeaned More... | |
| bool | mute = false |
| true, if the member is muted More... | |
| Public Attributes inherited from DiscordCPP::User | |
| std::string | username |
| ther user's name More... | |
| std::string | discriminator |
| the user's discord-tag More... | |
| std::string | avatar |
| the user's avatar hash More... | |
| bool | bot = false |
| true, if the user is a bot More... | |
| bool | mfa_enabled = false |
| true, if the user has enabled two factor authentification More... | |
| std::string | locale |
| the user's chosen language option More... | |
| bool | verified = false |
| true, if the user's email has been verified More... | |
| std::string | |
| the user's email More... | |
| int | flags = 0 |
| the flags on a user's account More... | |
| int | premium_type = PremiumTypes::None |
| the type of Nitro subscription on a user's account More... | |
| Public Attributes inherited from DiscordCPP::DiscordObject | |
| std::string | id |
| the id of the object More... | |
Additional Inherited Members | |
| Public Types inherited from DiscordCPP::User | |
| enum | PremiumTypes { None , NitroClassic , Nitro } |
| Protected Member Functions inherited from DiscordCPP::DiscordObject | |
| json | api_call (const std::string &url, const std::string &method="GET", const json &data=json(), const std::string &content_type="", const bool cache=true) |
| helper function to communicate with the http api More... | |
| Protected Attributes inherited from DiscordCPP::DiscordObject | |
| std::string | _token |
| token to authentificate with the discord api More... | |
| DiscordCPP::Member::Member | ( | const json & | data, |
| const std::string & | token | ||
| ) |
|
inline |
|
virtual |
Reimplemented from DiscordCPP::User.
| bool DiscordCPP::Member::deaf = false |
true, if the member is defeaned
| std::string DiscordCPP::Member::joined_at |
when the member joined the server
| bool DiscordCPP::Member::mute = false |
true, if the member is muted
| std::string DiscordCPP::Member::nick |
the member's nickname


Network
Brain Lattice
Authors
About
AuthorSynth: Collaboration Network of Neuroscience Authors
Welcome to AuthorSynth!
Neuroscience Author Collaboration Network


BioBankCloud Registration
Personal Info
#{peopleAdministration.selectedYubikyUser.title} #{peopleAdministration.selectedYubikyUser.fname} #{peopleAdministration.selectedYubikyUser.lname}
#{peopleAdministration.selectedYubikyUser.activated}
#{peopleAdministration.selectedYubikyUser.email}
#{peopleAdministration.selectedYubikyUser.mobile}
#{peopleAdministration.selectedYubikyUser.organization.orgName}
#{peopleAdministration.selectedYubikyUser.orcid}
Contact Info
#{peopleAdministration.selectedYubikyUser.address.address1}
#{peopleAdministration.selectedYubikyUser.address.address2} #{peopleAdministration.selectedYubikyUser.address.address3}
#{peopleAdministration.selectedYubikyUser.address.postalcode} #{peopleAdministration.selectedYubikyUser.address.city}
#{peopleAdministration.selectedYubikyUser.address.state}
#{peopleAdministration.selectedYubikyUser.address.country}


David Jones - Intrest
Intrest
Beekeeping:
Red dwarf Honey bees(Apis Florea)
Bumble bees
black dwarf Honey bees(Apis Andreniformis)
Giant Honey bees(Apis dorsata)
Carpender bees
mason bees
leaf cutter bees
poultry:
turkeys
ducks
geese
Gardening:
cut cloning(trees)
seed sprouting(coconut)
aqutic vegitables
oil production
Computers:
logic:
Java games
Python games
html store
| My business plan | ||||
|---|---|---|---|---|
|
Mulch:
dirt: |
dirt crop | Anti-bee-otics | provides chickens with food | land cover |
|
Chickens:
eggs: |
egg crop | pest control | ||
|
Bees:
queen: |
nuc crop | pollination | space filler | honey crop |
|
Trees:
wood: |
lumber crop | overhead preditor protection | shade | early pollen |


Mikey Williams Drops Career-High 37 Points with CRAZY Dunks! 🤯
by SLAM StaffMikey Williams has been putting up huge numbers so far as a freshman. We haven’t seen someone this young with this level of skill and athleticism in a long time. Who does Mikey remind you of?!?


|
Nautical
|
#include <assert.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/atomic.h>
#include <stdatomic.h>
#include "m5/io_m5.h"
#include "dbg.h"
#include "macrodef.h"
#include <util/setbaud.h>
Macros | |
| #define | NUSART 3 |
| #define | DP_PORT A |
| #define | NDP 0 |
| #define | BAUD 115200UL |
| #define | NTIMER 3 |
| #define | WAIT_MILLI 500ULL |
| #define | PRESCALE_REG (1U << CC_XXX(CS, NTIMER, 0)) |
| #define | PRESCALE 1ULL |
| #define | WAIT_TICKS |
| #define | WAIT_TICKS 1ULL |
| #define | WAIT_COUNT (WAIT_TICKS - 1ULL) |
Functions | |
| ISR (CC_XXX(USART, NUSART, _TX_vect)) | |
| void | io_m5_init (char const *path) |
| Prepare M5 motors to receive data. More... | |
| void | io_m5_clean () |
| Disable transmitting and receiving. More... | |
| ISR (CC_XXX(USART, NUSART, _UDRE_vect)) | |
| int | io_m5_trans_set (int(*handler)()) |
| Tell M5 motors to start receiving data. More... | |
| void | io_m5_trans_stop () |
| Stops motors until resume is called. More... | |
| void | io_m5_tripbuf_offer_resume () |
| Resumes motors after stopping. More... | |
| bool | io_m5_tripbuf_update () |
| Updates tripbuf with new data. More... | |
| unsigned char | io_m5_tripbuf_write () |
| Finds the tripbuf index to write to. More... | |
| unsigned char | io_m5_tripbuf_read () |
| Finds the tripbuf index to read from. More... | |
| CC_XXX (TIMSK, NTIMER,) & | |
| CC_XXX (TCCR, NTIMER, B) & | |
| CC_XXX (UCSR, NUSART, B)| | |
| void | io_m5_trans_trywait () |
| Suspends data transmission until there is new data. More... | |
Variables | |
| FILE * | io_m5 |
| #define BAUD 115200UL |
| #define DP_PORT A |
| #define NDP 0 |
| #define NTIMER 3 |
| #define NUSART 3 |
See the ahrs io_ahrs_avr.c file for more verbose commenting on dealing with the avr usarts and interrupts.
Use is made of of atomic fences when memory ordering is desired relative to volatile access, but the standard seems to indicate atomic fences only preserve memory ordering relative to atomic type accesses.
| #define PRESCALE 1ULL |
| #define PRESCALE_REG (1U << CC_XXX(CS, NTIMER, 0)) |
| #define WAIT_COUNT (WAIT_TICKS - 1ULL) |
| #define WAIT_MILLI 500ULL |
| #define WAIT_TICKS |
| #define WAIT_TICKS 1ULL |
| CC_XXX | ( | TIMSK | , |
| NTIMER | |||
| ) | & |
| CC_XXX | ( | TCCR | , |
| NTIMER | , | ||
| B | |||
| ) | & |
| CC_XXX | ( | UCSR | , |
| NUSART | , | ||
| B | |||
| ) |
| void io_m5_clean | ( | ) |
Disable transmitting and receiving.
Unimplemented.
| void io_m5_init | ( | char const * | path | ) |
Prepare M5 motors to receive data.
| path | Location of the motors, unused at the moment. |
| int io_m5_trans_set | ( | int(*)() | handler | ) |
Tell M5 motors to start receiving data.
Asynchronous (concurrent on pc) data writing. It will not be started until io_m5_offer_resume is called.
| Function | that handles writing data to M5s. |
| void io_m5_trans_stop | ( | ) |
Stops motors until resume is called.
| void io_m5_trans_trywait | ( | ) |
Suspends data transmission until there is new data.
Should only be called from handler_m5_trans.
| void io_m5_tripbuf_offer_resume | ( | ) |
Resumes motors after stopping.
May be interrupted by io_m5_tripbuf_update, but must not interrupt it.
Always leaves the USART Data Register Empty Interrupt Enabled.
| unsigned char io_m5_tripbuf_read | ( | ) |
Finds the tripbuf index to read from.
| bool io_m5_tripbuf_update | ( | ) |
Updates tripbuf with new data.
Causes io_m5_tripbuf_read to return index that was most recently 'submitted' by io_m5_tripbuf_offer_resume.
This should only be run between complete 'uses' of the data, to avoid using disparate data.
Unfortunately, since there is no way to have a lock-free/interruptible triple buffer implementation on the avr, this has to be platform-specific. A lock-free ring buffer would not handle cases when the producer is faster than the consumer well.
| unsigned char io_m5_tripbuf_write | ( | ) |
Finds the tripbuf index to write to.
Sets the pin to indicate to TTL<->RS-485 converter to stop driving the lines (allowing someone else to transmit).
When writing to the USART, the pin should be set, and then unsetting it once there is nothing left to transmit can be left to this interrupt.
Unlike the Data Register Empty Interrupt, which triggers when UBRn is ready for a new byte to be written, this interrupt triggers when the last available bit has been pushed out of the USART, ie UBRn and the serial shift register are empty. In fact, the atmega2560 datasheet specifically mentions using this for RS-485.
| volatile unsigned char clean |
| FILE* io_m5 |
io with this is blocking, use io_m5_..._set to handle async io.
| volatile unsigned char new |
| unsigned char read |
| unsigned char write |


SAWS confirms a tornado struck Utrecht, KwaZulu-Natal on Friday night
by Andy WalkerAnother tornado on Friday struck the KwaZulu-Natal town of Utrecht, the South African Weather Service (SAWS) confirmed.
In two statements posted to Twitter, the service noted that the weather phenomenon occurred on Friday evening.
SAWS explained that the tornado spawned from a “severe storm” that developed between Newcastle and Dundee. While it weakened as it changed course and moved towards Utrecht, it strengthened once again.
“Spectific radar signatures suggested that tornadic activity was present,” SAWS added.
It also posted images from local publication Newcastle Advertiser showing destruction to property.
According to the Advertiser, “barbed wire, branches, trees and more” are scattered across the town. The images also depict damaged cars and houses.
More footage published by Arrive Alive on Saturday morning also shows the extent of the damage.
The Utrecht tornado comes just weeks after tornadoes struck other areas near New Hanover and Bergville, KwaZulu-Natal.
Earlier this week, SAWS issued a release regarding phenomena that many believed were tornadoes, seen near Bapsfontein, Gauteng and Delmas, Mpumalanga.
It confirmed that these were merely “gustnadoes”, a type of dust devil-like whirlwind.
Follow the South African Weather Service
Weather is fickle and subject to change, so we’d recommend following SAWS on its official Twitter account, especially for severe thunderstorm updates.
And be sure to bookmark its warnings portal too, where it regularly updates the advisories and more serious information on the daily.
Edit: We’ve updated the article with the latest information provided by SAWS.
Feature image: Andy Walker/Memeburn


The domain you access points to the Nasqueron PaaS, generally used to serve applications through Docker containers.
There isn't any web server configuration for this domain. As such, it's not possible to serve it.
The most probable causes are a new service currently in deployment, a typo in the domain part of the URL or a DNS record error.
First, check the address you used is written correctly.
Then, if you followed a link through a website, it's probably a bug. You can report it as a server outage, to be investigated.
If you're currently configuring the service, the next step is to provide a nginx configuration in the operations repository, to be put in the roles/paas-docker/nginx/files/vhosts container. The filename must match the Docker service/application name (and not the container name).
Finally, if this is your domain and you never intended to host it on the Nasqueron PaaS, you can check your CNAME, A and AAAA records, it probably points to us.


properties
.activeMode
zero indexed integer of the index of the currently active mode
type:
int
let mode = device.activeMode
.colors
collection of the rgb colors the device leds are set to (one per led)
type:
array<
color
>
let colors = device.colors


--- layout: post status: publish published: true title: Are lawyers deprecated? author: display_name: neil login: neil email<EMAIL_ADDRESS>url: '' author_login: neil author_email<EMAIL_ADDRESS>wordpress_id: 59 wordpress_url: https://www.millardtechnicalservices.co.uk/?p=59 date: '2016-03-23 08:28:00 +0000' date_gmt: '2016-03-23 08:28:00 +0000' categories: - Development tags: - open source - javascript - NPM - lawyers comments: [] ---
We all know our identity is important. However sometimes, when your label (name) is the same or similar to someone else it can cause problems. I see and hear this problem daily as a project I recently worked on had three Neils in the team. Of course we have surnames too. That is the differentiating factor.
Imagine the shock to the world when lawyers get involved in protecting a name. All sorts of fun can ensue and my opinion is that unless it could easily be confused then there is no issue.
I refer to the NPM shock that devastated a number of websites and applications this week.
Read all about the JavaScript NPM module here. https://medium.com/@azerbike/i-ve-just-liberated-my-modules-9045c06be67c


USB Host
There is usually a lot of confusion between USB host and USB client. USB host is the system that connects to multiple USB clients. For example, the PC is a USB host and it can connect to multiple USB clients like mice, keyboards, and mass storage devices. Implementing a USB client is rather simple but implementing a host is far more complicated.
USB host is an exclusive feature from GHI Electronics. With this feature, you can connect almost any USB device to GHI's NETMF products. This feature opens new possibilities for embedded systems. Your product can now connect to a standard USB keyboard and can also access files on a USB thumb drive. USB is a hot pluggable system which means any device can be connected or disconnected at any time. Events are generated when devices are connected or disconnected. The program that you write should subscribe to these events and handle them accordingly. With USB hub support, devices can be connected directly to the USB host port or the user may connect multiple USB devices through a USB hub.
Getting Started
When working with USB host, you interact with the Controller. You subscribe to the connected event for various devices and then start the controller. When a device connected, you receive an object representing that device as the event arguments. You can subscribe to the Disconnect event on that device to do any clean up you might need.
The below code requires the GHI.Usb and GHI.Hardware assemblies and shows you briefly how to handle device connections and disconnections.
using GHI.Usb.Host;
using Microsoft.SPOT;
using System.Threading;
public class Program
{
public static void Main()
{
Controller.DeviceConnectFailed += Controller_DeviceConnectFailed;
Controller.KeyboardConnected += Controller_KeyboardConnected;
Controller.Start();
Thread.Sleep(-1);
}
private static void Controller_DeviceConnectFailed(object sender, EventArgs e)
{
Debug.Print("Failed.");
}
private static void Controller_KeyboardConnected(object sender, Keyboard keyboard)
{
Debug.Print("Keyboard connected.");
keyboard.Disconnected += keyboard_Disconnected;
}
private static void keyboard_Disconnected(BaseDevice sender, EventArgs e)
{
Debug.Print("Keyboard disconnected.");
}
}
Mice, keyboards, and joysticks
Once you receive a connect event and the associated object for a mouse, keyboard, or joystick, you can subscribe to various events on those objects to receive data from the device. The below code simply prints out when a button or key is pressed.
using GHI.Usb.Host;
using Microsoft.SPOT;
using System.Threading;
public class Program
{
public static void Main()
{
Controller.KeyboardConnected += Controller_KeyboardConnected;
Controller.MouseConnected += Controller_MouseConnected;
Controller.JoystickConnected += Controller_JoystickConnected;
Controller.Start();
Thread.Sleep(-1);
}
private static void Controller_KeyboardConnected(object sender, Keyboard keyboard)
{
Debug.Print("Keyboard connected.");
keyboard.KeyUp += keyboard_KeyUp;
keyboard.KeyDown += keyboard_KeyDown;
}
private static void Controller_MouseConnected(object sender, Mouse mouse)
{
Debug.Print("Mouse connected.");
mouse.ButtonChanged += mouse_ButtonChanged;
mouse.CursorMoved += mouse_CursorMoved;
mouse.WheelMoved += mouse_WheelMoved;
}
private static void Controller_JoystickConnected(object sender, Joystick joystick)
{
Debug.Print("Joystick connected.");
joystick.ButtonChanged += joystick_ButtonChanged;
joystick.CursorMoved += joystick_CursorMoved;
joystick.HatSwitchPressed += joystick_HatSwitchPressed;
}
private static void keyboard_KeyUp(Keyboard sender, Keyboard.KeyboardEventArgs e)
{
Debug.Print("Up: " + e.Which.ToString());
}
private static void keyboard_KeyDown(Keyboard sender, Keyboard.KeyboardEventArgs e)
{
Debug.Print("Down: " + e.Which.ToString());
}
private static void mouse_ButtonChanged(Mouse sender, Mouse.ButtonChangedEventArgs e)
{
Debug.Print(e.State.ToString() + " " + e.Which);
}
private static void mouse_CursorMoved(Mouse sender, Mouse.CursorMovedEventArgs e)
{
Debug.Print(e.Delta.ToString() + " " + e.NewPosition.ToString());
}
private static void mouse_WheelMoved(Mouse sender, Mouse.WheelMovedEventArgs e)
{
Debug.Print(e.Delta.ToString() + " " + e.NewPosition.ToString());
}
private static void joystick_ButtonChanged(Joystick sender, Joystick.ButtonChangedEventArgs e)
{
Debug.Print(e.State.ToString() + " " + e.Which);
}
private static void joystick_CursorMoved(Joystick sender, Joystick.CursorMovedEventArgs e)
{
Debug.Print(e.Delta.ToString() + " " + e.NewPosition.ToString() + " " + e.Which.ToString());
}
private static void joystick_HatSwitchPressed(Joystick sender, Joystick.HatSwitchPressedEventArgs e)
{
Debug.Print(e.Direction.ToString());
}
}
Serial
Serial (UART) communication is a very common interface. There are many companies that create chips that convert USB to serial. GHI currently supports chipsets from FTDI. Their FT232 is known to work, though others may as well. USB chipsets are made to be somewhat customized. A company can use an FTDI chip to make their product run on USB and they will change the strings in USB descriptors so that when you plug in their device to a PC you will see the company name and not FTDI. They can also change the USB VID/PID, vendor ID and product ID. Many of the interface products on the market use the FTDI chipset.
A few other USB-Serial manufacturers, like Prolific, are included, but they are deprecated and not supported by us.
The below example simply echoes any data received back out to the sender and prints it to the debug output.
using GHI.Usb.Host;
using Microsoft.SPOT;
using System.Threading;
public class Program
{
public static void Main()
{
Controller.UsbSerialConnected += Controller_UsbSerialConnected;
Controller.Start();
Thread.Sleep(-1);
}
private static void Controller_UsbSerialConnected(object sender, UsbSerial usbSerial)
{
Debug.Print("UsbSerial connected.");
usbSerial.DataReceived += usbSerial_DataReceived;
}
private static void usbSerial_DataReceived(UsbSerial sender, UsbSerial.DataReceivedEventArgs e)
{
for (int i = 0; i < e.Data.Length; i++)
Debug.Print(e.Data[i].ToString());
sender.Write(e.Data);
}
}
Mass Storage
When you connect a mass storage device, it can be accessed through the regular NETMF filesystem functions with the device root "USB". Once you mount the device, you need to wait for NETMF to fire the RemovableMedia.Insert event before you try accessing the filesystem.
The below code simply opens or creates a file on the drive, writes "Hello, World!" to it, and then unmounts the device. It requires the Microsoft.SPOT.IO and System.IO assembly.
using GHI.Usb.Host;
using Microsoft.SPOT;
using Microsoft.SPOT.IO;
using System.IO;
using System.Text;
using System.Threading;
public class Program
{
private static AutoResetEvent evt = new AutoResetEvent(false);
public static void Main()
{
Controller.MassStorageConnected += Controller_MassStorageConnected;
Controller.Start();
Thread.Sleep(-1);
}
private static void Controller_MassStorageConnected(object sender, MassStorage massStorage)
{
RemovableMedia.Insert += RemovableMedia_Insert;
massStorage.Mount();
evt.WaitOne();
using (var fs = new FileStream("\\USB\\Hello.txt", FileMode.OpenOrCreate))
fs.Write(Encoding.UTF8.GetBytes("Hello, World!"), 0, 13);
massStorage.Unmount();
}
private static void RemovableMedia_Insert(object sender, MediaEventArgs e)
{
Debug.Print("Inserted.");
evt.Set();
}
}
Warning
Under current versions of NETMF, the Flush method of FileStream will eventually write the buffers; unfortunately, there is a delay (sometimes up to a minute) from when Flush is called to when the data is actually flushed. See Files and Folders for more details.
Webcams
You can also connect a webcam and stream images from it. Webcams only support certain image formats and sizes so you need to query the formats supported and tell the camera to stream images using that format. We support cameras that support the YUV2 color format.
The below code requires the Microsoft.SPOT.Graphics and Microsoft.SPOT.TinyCore assemblies. It looks for a format that has a size of 320x240 and starts to stream it. When a new image is available an event is raised and we draw the received image to the bitmap that represents our screen and then flush it. Make sure you have a display properly configured.
using GHI.Usb.Host;
using Microsoft.SPOT;
using Microsoft.SPOT.Presentation;
using System.Threading;
public class Program
{
private static Bitmap lcd = new Bitmap(SystemMetrics.ScreenWidth, SystemMetrics.ScreenHeight);
public static void Main()
{
Controller.WebcamConnected += Controller_WebcamConnected;
Controller.Start();
Thread.Sleep(-1);
}
private static void Controller_WebcamConnected(object sender, Webcam webcam)
{
webcam.ImageAvailable += webcam_ImageAvailable;
foreach (Webcam.ImageFormat i in webcam.SupportedFormats)
{
if (i.Width == 320 && i.Height == 240)
{
webcam.StartStreaming(i);
break;
}
}
}
private static void webcam_ImageAvailable(Webcam sender, EventArgs e)
{
sender.GetImage(lcd);
lcd.Flush();
}
}
Unknown Devices
If your device is not recognized by our libraries, the UnknownDeviceConnected event will be triggered. This event will give you the USB parameters of the device that you can use to "force" the creation of a specific type. This method is not guaranteed to work with every unknown device, however. The below code illustrates how to do this with a usb to serial device.
using GHI.Usb.Host;
using Microsoft.SPOT;
using System.Threading;
public class Program
{
private static UsbSerial serial;
public static void Main()
{
Controller.UnknownDeviceConnected += Controller_UnknownDeviceConnected;
Controller.Start();
Thread.Sleep(-1);
}
private static void Controller_UnknownDeviceConnected(object sender, Controller.UnknownDeviceConnectedEventArgs e)
{
Debug.Print("Unknown device connected.");
serial = new UsbSerial(e.Id, e.InterfaceIndex, e.VendorId, e.ProductId, e.PortNumber, BaseDevice.DeviceType.SerialProlific);
serial.DataReceived += serial_DataReceived;
}
private static void serial_DataReceived(UsbSerial sender, UsbSerial.DataReceivedEventArgs e)
{
for (int i = 0; i < e.Data.Length; i++)
Debug.Print(e.Data[i].ToString());
sender.Write(e.Data);
}
}


Coming from a country with a high rate of poverty, with so many people living below standard. It has been our passiong to give back in our own little for we believe that we have been blessed in our own little way to also bless those in need of it to collectively make the world a better place
B2B to show Love to everyone.
B2B to show compassion to the needy.
B2B to be selfless
The leadership of the B2B is comprised of everyone committed to giving back
Founder
Began organisation in 2021 as the final project of csd_1113 , Web technology.
Founder
Began organisation in 2021 as the final project of csd_1113 , Web technology.
Founder
Began organisation in 2021 as the final project of csd_1113 , Web technology.


{$goods.goods_name}
￥{$goods.price}
{extend name="base" /}
{block name="header_search"}{/block}
{block name="bg"}style="background:#fff;"{/block}
{block name="center"}
产品详情
{$goods.goods_name}
￥{$goods.price}
￥{$goods.original_price}
{$goods.content|raw}
{$goods.norm_brief|raw}
￥{$goods.price}


hey again.
click here to go back to the previous page if you aren't ready for what i'm about to say.here's a short list of things i like:
- 7abibti
- 5a6eebti
- my dog
- my major (sometimes)
- my parents (most times)
this is one of my favourite photos ever for absolutely no reason:
if you click him, he may just take you to my favourite youtube video ever.
click here to go back to the assignment list.


|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.lang.management.ManagementFactory
public class ManagementFactory
The ManagementFactory class is a factory class for getting managed beans for the Java platform. This class consists of static methods each of which returns one or more platform MXBean(s) representing the management interface of a component of the Java virtual machine.
An application can access a platform MXBean in the following ways:
MBeanServer
by calling
newPlatfromMXBeanProxy
.
A proxy is typically constructed to remotely access
an MXBean of another running virtual machine.
platform MBeanServer
to access MXBeans locally or
a specific MBeanServerConnection to access
MXBeans remotely.
The attributes and operations of an MXBean use only
JMX open types which include basic
data types, CompositeData
,
and TabularData
defined in
OpenType
.
The mapping is specified below.
open types
and this allows interoperation across versions.
The platform MXBean interfaces use only the following data types:
Integer
, Long
,
Boolean
, etc and
String
Enum
classesCompositeData
argument to convert from an input CompositeData to
an instance of that class
List<E>
where E is a primitive type, a wrapper class,
an enum class, or a class supporting conversion from a
CompositeData to its class
Map<K,V>
where K and V are
a primitive type, a wrapper class,
an enum class, or a class supporting conversion from a
CompositeData to its class
When an attribute or operation of a platform MXBean is accessed via an MBeanServer, the data types are mapped as follows:
Enum
is mapped to
String whose value is the name of the enum constant.
CompositeData
argument is mapped to
CompositeData
.
TabularData
whose row type is a CompositeType
with
two items whose names are "key" and "value"
and the item types are
the corresponding mapped type of K and V
respectively and the "key" is the index.
MBeanInfo
for a platform MXBean
describes the data types of the attributes and operations
as primitive or open types mapped as specified above.
For example, the MemoryMXBean
interface has the following getter and setter methods:
These attributes in the MBeanInfo of the MemoryMXBean have the following names and types:public MemoryUsage getHeapMemoryUsage(); public boolean isVerbose(); public void setVerbose(boolean value);
Attribute Name Type HeapMemoryUsage CompositeData representing MemoryUsage
Verbose boolean
Implementation Note:
The mapping specified above could be done in the implementation
of each platform MXBean. One good implementation choice is to
implement a MXBean as a dynamic
MBean
.
ObjectName
for
registration in the platform MBeanServer.
A Java virtual machine has a single instance of the following management
interfaces:
A Java virtual machine has zero or a single instance of the following management interfaces.
Management Interface ObjectName CompilationMXBean
java.lang:type=Compilation
A Java virtual machine may have one or more instances of the following management interfaces.
Management Interface ObjectName GarbageCollectorMXBean
java.lang:type=GarbageCollector
,name=collector's nameMemoryManagerMXBean
java.lang:type=MemoryManager
,name=manager's nameMemoryPoolMXBean
java.lang:type=MemoryPool
,name=pool's name
LoggingMXBean
| Field Summary | |
|---|---|
static String |
CLASS_LOADING_MXBEAN_NAME
String representation of the ObjectName for the ClassLoadingMXBean . |
static String |
COMPILATION_MXBEAN_NAME
String representation of the ObjectName for the CompilationMXBean . |
static String |
GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE
The domain name and the type key property in the ObjectName for a GarbageCollectorMXBean . |
static String |
MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE
The domain name and the type key property in the ObjectName for a MemoryManagerMXBean . |
static String |
MEMORY_MXBEAN_NAME
String representation of the ObjectName for the MemoryMXBean . |
static String |
MEMORY_POOL_MXBEAN_DOMAIN_TYPE
The domain name and the type key property in the ObjectName for a MemoryPoolMXBean . |
static String |
OPERATING_SYSTEM_MXBEAN_NAME
String representation of the ObjectName for the OperatingSystemMXBean . |
static String |
RUNTIME_MXBEAN_NAME
String representation of the ObjectName for the RuntimeMXBean . |
static String |
THREAD_MXBEAN_NAME
String representation of the ObjectName for the ThreadMXBean . |
| Method Summary | ||
|---|---|---|
static ClassLoadingMXBean |
getClassLoadingMXBean()
Returns the managed bean for the class loading system of the Java virtual machine. |
|
static CompilationMXBean |
getCompilationMXBean()
Returns the managed bean for the compilation system of the Java virtual machine. |
|
static List<GarbageCollectorMXBean> |
getGarbageCollectorMXBeans()
Returns a list of GarbageCollectorMXBean objects
in the Java virtual machine. |
|
static List<MemoryManagerMXBean> |
getMemoryManagerMXBeans()
Returns a list of MemoryManagerMXBean objects
in the Java virtual machine. |
|
static MemoryMXBean |
getMemoryMXBean()
Returns the managed bean for the memory system of the Java virtual machine. |
|
static List<MemoryPoolMXBean> |
getMemoryPoolMXBeans()
Returns a list of MemoryPoolMXBean objects in the
Java virtual machine. |
|
static OperatingSystemMXBean |
getOperatingSystemMXBean()
Returns the managed bean for the operating system on which the Java virtual machine is running. |
|
static MBeanServer |
getPlatformMBeanServer()
Returns the platform MBeanServer . |
|
static RuntimeMXBean |
getRuntimeMXBean()
Returns the managed bean for the runtime system of the Java virtual machine. |
|
static ThreadMXBean |
getThreadMXBean()
Returns the managed bean for the thread system of the Java virtual machine. |
|
static
|
newPlatformMXBeanProxy(MBeanServerConnection connection,
String mxbeanName,
Class<T> mxbeanInterface)
Returns a proxy for a platform MXBean interface of a given MXBean name that forwards its method calls through the given MBeanServerConnection. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final String CLASS_LOADING_MXBEAN_NAME
ClassLoadingMXBean
.
public static final String COMPILATION_MXBEAN_NAME
CompilationMXBean
.
public static final String MEMORY_MXBEAN_NAME
MemoryMXBean
.
public static final String OPERATING_SYSTEM_MXBEAN_NAME
OperatingSystemMXBean
.
public static final String RUNTIME_MXBEAN_NAME
RuntimeMXBean
.
public static final String THREAD_MXBEAN_NAME
ThreadMXBean
.
public static final String GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE
GarbageCollectorMXBean
.
The unique ObjectName for a GarbageCollectorMXBean
can be formed by appending this string with
",name=collector's name".
public static final String MEMORY_MANAGER_MXBEAN_DOMAIN_TYPE
MemoryManagerMXBean
.
The unique ObjectName for a MemoryManagerMXBean
can be formed by appending this string with
",name=manager's name".
public static final String MEMORY_POOL_MXBEAN_DOMAIN_TYPE
MemoryPoolMXBean
.
The unique ObjectName for a MemoryPoolMXBean
can be formed by appending this string with
,name=pool's name.
| Method Detail |
|---|
public static ClassLoadingMXBean getClassLoadingMXBean()
ClassLoadingMXBean
object for
the Java virtual machine.public static MemoryMXBean getMemoryMXBean()
MemoryMXBean
object for the Java virtual machine.public static ThreadMXBean getThreadMXBean()
ThreadMXBean
object for the Java virtual machine.public static RuntimeMXBean getRuntimeMXBean()
RuntimeMXBean
object for the Java virtual machine.public static CompilationMXBean getCompilationMXBean()
CompilationMXBean
object for the Java virtual
machine or null if the Java virtual machine has
no compilation system.public static OperatingSystemMXBean getOperatingSystemMXBean()
OperatingSystemMXBean
object for
the Java virtual machine.public static List<MemoryPoolMXBean> getMemoryPoolMXBeans()
MemoryPoolMXBean
objects in the
Java virtual machine.
The Java virtual machine can have one or more memory pools.
It may add or remove memory pools during execution.
public static List<MemoryManagerMXBean> getMemoryManagerMXBeans()
MemoryManagerMXBean
objects
in the Java virtual machine.
The Java virtual machine can have one or more memory managers.
It may add or remove memory managers during execution.
public static List<GarbageCollectorMXBean> getGarbageCollectorMXBeans()
GarbageCollectorMXBean
objects
in the Java virtual machine.
The Java virtual machine may have one or more
GarbageCollectorMXBean objects.
It may add or remove GarbageCollectorMXBean
during execution.
public static MBeanServer getPlatformMBeanServer()
MBeanServer
.
On the first call to this method, it first creates the platform
MBeanServer by calling the
MBeanServerFactory.createMBeanServer()
method and registers the platform MXBeans in this platform
MBeanServer using the MXBean names
defined in the class description.
This method, in subsequent calls, will simply return the
initially created platform MBeanServer.
MXBeans that get created and destroyed dynamically, for example,
memory pools
and
managers
,
will automatically be registered and deregistered into the platform
MBeanServer.
If the system property javax.management.builder.initial
is set, the platform MBeanServer creation will be done
by the specified MBeanServerBuilder
.
It is recommended that this platform MBeanServer also be used to register other application managed beans besides the platform MXBeans. This will allow all MBeans to be published through the same MBeanServer and hence allow for easier network publishing and discovery. Name conflicts with the platform MXBeans should be avoided.
SecurityException
- if there is a security manager
and the caller does not have the permission required by
MBeanServerFactory.createMBeanServer()
.MBeanServerFactory
,
MBeanServerFactory.createMBeanServer()
public static <T> T newPlatformMXBeanProxy(MBeanServerConnection connection, String mxbeanName, Class<T> mxbeanInterface) throws IOException
This method is equivalent to:
Proxy.newProxyInstance
(mxbeanInterface.getClassLoader(),
new Class[] { mxbeanInterface }, handler)
where handler is an InvocationHandler
to which method invocations to the MXBean interface
are dispatched. This handler converts an input parameter
from an MXBean data type to its mapped open type before forwarding
to the MBeanServer and converts a return value from
an MXBean method call through the MBeanServer
from an open type to the corresponding return type declared in
the MXBean interface.
If the MXBean is a notification emitter (i.e.,
it implements NotificationEmitter
),
both the mxbeanInterface and NotificationEmitter
will be implemented by this proxy.
Notes:
IOException
may be thrown
when the communication problem occurs with the connector server.
An application remotely accesses the platform MXBeans using
proxy should prepare to catch IOException as if
accessing with the MBeanServerConnector interface.InvalidObjectException
which is thrown when an MXBean proxy receives a name of an
enum constant which is missing in the enum class loaded in
the client application. MBeanServerInvocationHandler
or its
newProxyInstance
method cannot be used to create
a proxy for a platform MXBean. The proxy object created
by MBeanServerInvocationHandler does not handle
the properties of the platform MXBeans described in
the class specification.
connection
- the MBeanServerConnection to forward to.mxbeanName
- the name of a platform MXBean within
connection to forward to. mxbeanName must be
in the format of ObjectName
.mxbeanInterface
- the MXBean interface to be implemented
by the proxy.
IllegalArgumentException
- if
ObjectName
format, orIOException
- if a communication problem
occurred when accessing the MBeanServerConnection.
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Copyright © 2004, 2010 Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.


Welcome to my Blog
Content will be added soon
Books I am readings
I am captaining KDB, big hope he returns big this week.  Let's see
Future Link to the whole post Another link


Bitwise operators are just like ordinary mathematical operators (+, -, etc.) They take two numbers as input (also known as two operands ), and do something to them to create a result.
This section will provide an overview of all the bitwise operators available in C. The next section will elaborate on using bitwise operators with masks to set or clear bits, using an example.
There are three C operators for doing Boolean logic comparisons between two numbers, bit by bit. For example, the OR operator, written with the syntax "C = A | B;"�, takes the first bit in variable A and the first bit in variable B, and performs a logical OR on the two bits. The result is stored in the first bit of C. Then, the second bit of A is compared against the second bit of B, and the result stored in the second bit of C. The same for the third bit, fourth, and so on.
| Operator Name | C Syntax |
|---|---|
| OR | A | B |
| AND | A & B |
| EXCLUSIVE OR | A ^ B |
A = 0011;
B = 1010;
C = A | B;
//C => 1011
A = 0011;
B = 1010;
C = A & B;
//C => 0010
A = 0011;
B = 1010;
C = A ^ B;
//C => 1001
Shift operators shift the bits in the first operand by the number of positions given in the second operand. There are left shift and right shift operators.
You might be wondering what happens to the bits at the furthest right and left of the number. In a left shift, the left most bit is lost, and the right most bit gets assigned a zero. In a right shift, the right most bit is lost, and the left most bit gets assigned a zero.
| Operator Name | C Syntax |
|---|---|
| LEFT SHIFT | A << B |
| RIGHT SHIFT | A >> B |
A = 0110;
B = 1;
C = A << B;
//C => 1100;
//Additional shifts cause bits to "roll off"�
C = C << B;
//C => 1000;
A = 0110;
B = 1;
C = A >> B;
//C => 0011;
//Additional shifts cause bits to "roll off"�
C = C >> B;
//C => 0001;
Negation is performed as a unary operation. That is, it only has one operand. The bits in the operand are all flipped to their opposite.
| Operator Name | Operator Synatx |
|---|---|
| ONES COMPLIMENT aka NOT | ~A |
A = 0011;
C = ~A;
//C => 1100;
Assignment Operators also exist, which assume that the variable on the left hand side is both the first operand, and also the variable to store the result in. The Bitwise Assignment Operators Are:
| Operator Name | Operator Syntax |
|---|---|
| OR EQUALS | |= A |
| AND EQUALS | &= A |
| EXCLUSIVE OR EQUALS | ^= A |
| LEFT SHIFT EQUALS | >>= A |
| RIGHT SHIFT EQUALS | <<= A |
A = 0011;
B = 1010;
A |= B;
//A => 1011;
A = 0011;
B = 1010;
A =& B;
//C => 0010
A = 0011;
B = 1010;
A =^ B;
//A => 1001
A = 0110;
B = 1;
A =<< B;
//A => 1100;
//Additional shifts cause bits to "roll off"�
A =<< B;
//A => 1000;
A = 0110;
B = 1;
A =>> B;
//A => 0011;
//Additional shifts cause bits to "roll off"�
A =>> B;
//A => 0001;
Next, an example showing how to use different bitwise operators and masks to change the state of a single bit.
Next© 2017


JPublish StringTemplate component DEMO page
JPublish application demonstrating a Component level integration with the
StringTemplate (ST) engine.
This page path: $page.Path, is mostly driven by the current JPublish View Renderer:
$site.ViewRenderer, but with the ability to use ST template files.
For example, using Velocity syntax you can define the following Velocity variables:
\#set( $column = "USER_NAME")
\#set( $table = "USER_PROFILES")
#set( $column = "USER_NAME")
#set( $table = "USER_PROFILES")
And then use them in a ST template rendered by the JPublish ST component with a simple command like this:
\$components.JPST.renderPath("index"), or: \$components.JPST.renderPath("default:index")
The original ST file looks like this:
-- a basic query statement
select \$column$ from \$table$;
GO
and the rendered result looks like this:
$components.JPST.renderPath("index")
Including a template from a different ST group is as easy as specifying the group name:
\$components.JPST.renderPath("menus:main_menu"),
where "menus" represents the ST group defined in your jpublish.xml file.
$components.JPST.renderPath("menus:main_menu")


Iranian media say injuries jump to 520 in Friday quake
TEHRAN, Iran (AP) - Iran’s state TV is saying the number of injured people from a magnitude 5.9 earthquake on Friday has jumped to 520 from more than 300.
Saturday’s report said the updated figure followed the end of rescue operations in more than 80 remote villages Tark county in Iran’s Eastern Azerbaijan province, some 400 kilometers (250 miles) northwest of the capital, Tehran.
It said 28 were hospitalized and the rest released with minor injuries, adding that the death toll has remained at five people.
Iran experiences an earthquake per day on average. In 2003, a magnitude 6.6 earthquake flattened the historic city of Bam, killing 26,000 people.
In 2017, a magnitude 7 earthquake struck western Iran and killed more than 600 people and injured more than 9,000.
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


Etsy DIY cornhole typewriter retro artisan, sartorial VHS irony sriracha four dollar toast art party meh pork belly. Asymmetrical fixie vinyl poke prism try-hard live-edge. Ugh banh mi polaroid, four loko cold-pressed hammock leggings neutra coloring book 3 wolf moon iPhone pickled heirloom fam before they sold out. Meh mustache helvetica cred. Kombucha actually jianbing, prism cornhole normcore neutra tote bag shabby chic. Activated charcoal dreamcatcher portland taiyaki lo-fi listicle fam tumeric af food truck jianbing. Kombucha tbh leggings disrupt palo santo hashtag DIY deep v.
Vegan knausgaard sartorial neutra activated charcoal slow-carb. Neutra forage bitters cold-pressed portland. Kombucha trust fund marfa shaman tousled intelligentsia kale chips fixie bushwick cold-pressed pickled deep v artisan VHS scenester. Keytar tattooed wayfarers, iPhone schlitz franzen chicharrones copper mug hammock YOLO plaid yuccie neutra.


Accounts are available to USDOT employees and those operating under a USDOT contract or agreement.
Complete and submit the following request form in order to gain access to the Connected Vehicles UIs. An email will be sent to an administrator; please allow time for approval.


Package qa.kurs.adressbook.tests
|
95%
successful |
Failed tests
Classes
| Class | Tests | Failures | Ignored | Duration | Success rate |
|---|---|---|---|---|---|
| ContactAddressTests | 1 | 0 | 0 | 3.533s | 100% |
| ContactCreatingTest | 4 | 0 | 0 | 24.725s | 100% |
| ContactDeletionTest | 1 | 0 | 0 | 5.161s | 100% |
| ContactDetailsTest | 1 | 1 | 0 | 0.025s | 0% |
| ContactEditionTest | 1 | 0 | 0 | 5.455s | 100% |
| ContactEmailTests | 1 | 0 | 0 | 1.781s | 100% |
| ContactPhoneTests | 1 | 0 | 0 | 3.367s | 100% |
| EquationTest | 6 | 0 | 0 | 0.002s | 100% |
| GroupCreatingTest | 4 | 0 | 0 | 9.155s | 100% |
| GroupDeletionTest | 1 | 0 | 0 | 1.434s | 100% |
| GroupModificationTest | 1 | 0 | 0 | 1.919s | 100% |


DoneIt
Hello.
It is nice to meet you.
I am DoneIt, the only task tracking app you will ever need.
About Me, Yes I am Awesome!
Create an Account, all you need is an e-mail address.
Already have an account? Go to the Login Screen.
DoneIts
Group
History


|
|
|
|
|
It's not a jungle out there Giles Smith February 03 2004 The Mitsubishi Outlander arrives in a cloud of dry ice and a thick snowfall of corporate brochures. This is the launch model for Mitsubishi's new European operation, which intends to lavish no fewer than 13 all-new cars upon us over the next five years.
Ivor Crewe: all to play for Donald MacLeod February 03 2004 It's only half way through the first half, cautions Ivor Crewe, president of Universities UK, "it's just that there's been a lot of excitement at both ends of the pitch". Despite last week's cliffhanger victory for the government's fees bill, he says all...
Milan extend Serie A lead Staff and agencies February 02 2004 Andriy Shevchenko scored his 16th goal of the season as AC Milan beat Bologna 2-0 to extend their lead at the top of Serie A to five points. Danish striker Jon Dahl Tomasson added Milan's second but coach Carlo Ancelotti admitted his side encountered mor...
Ode to a Grecian poet Emily Wilson February 02 2004
If Not, Winter: Fragments of Sappho by Anne Carson Virago, 397 pp, £12.99
Shots of star snapper with screen goddess go on display Maev Kennedy, arts and heritage correspondent February 02 2004 While Cecil Beaton was photographing Marilyn Monroe in 1956, Ed Pfizenmaier was photographing them: Beaton, renowned as the grandest photographer of his day, and the famously difficult Marilyn Monroe, are both shaking with laughter.
John Sutherland February 02 2004 A journalist who interviewed Alastair Campbell at home told me, "He's got several of your editions of Trollope on his bookshelves." Hardly a revelation of Gilligan proportions, but it's flattering when one's dusty scholarship intersects with the great aff...
Red button revolution Jonathan Webdale February 02 2004
No sooner will Jordan, John Lydon et al have kissed goodbye to the koalas and packed up their Australian jungle camp than our screens will be graced with what's being billed as the "ultimate reality TV show".
You're getting more Mail Guy Clapperton February 02 2004 There's no question that the broadsheets - if we can still call them that since two of them have tabloid editions now - have sorted out their websites. Whether they adopt the paid-for model as used by the Financial Times or the searchable, well-archived ...
Wayne's world of wonder Stuart Nicholson February 01 2004
Wayne Shorter Quartet
Gonna make you sweat Jay Rayner February 01 2004 You are walking along a south London residential street. Surging towards you, through an open window, come the complex syncopations of the score to a musical, something by Stephen Sondheim say, or Kander and Ebb. You look up at the window and see a larg...
|


{% extends "dashboard/base.html" %} {% load staticfiles i18n %} {% load i18n %} {% load prices_i18n %} {% block title %} Sales Report {% endblock %} {% block breadcrumbs %}
Gross Sales on {{date}} were KShs. {{date_total_sales}}. {% if prevdate_total_sales %} This was {% if sales_percent < 0 %} down {{sales_percent}} % {% elif sales_percent > 0 %} up {{sales_percent}} % {% endif %} from Kshs {{previous_sales}} the prior sales of date {{prevdate}} {% endif %}
| Sales | Refund | Net | |
|---|---|---|---|
| Gross Sales |
Ksh.
{{ date_total_sales }}
|
0.00 |
Ksh.
{{ date_total_sales }}
|
| Discounts | 0.00 | 0.00 | 0.00 |
| Tax | 0.00 | 0.00 | 0.00 |
| Net Sales |
Ksh.
{{ date_total_sales }}
|
0.00 |
Ksh.
{{ date_total_sales }}
|
{% trans "No products are low in stock." context "Empty low stock table message" %}
| Cashier Name | Terminal | Total Sales |
|---|---|---|
| {{ user.user__name }} - {{user.user__email}} | {{ user.terminal }} |
Ksh. {{ user.total_net__sum }}
|
{% trans "No products are low in stock." context "Empty low stock table message" %}


Bases: numpy.ndarray
A Quantity represents a number with some associated unit.
| Parameters: | value : number, ndarray, Quantity object, or sequence of Quantity objects. unit : UnitBase instance, str dtype : ~numpy.dtype, optional
copy : bool, optional
order : {‘C’, ‘F’, ‘A’}, optional subok : bool, optional ndmin : int, optional
|
|---|---|
| Raises: | TypeError
TypeError
|
Attributes Summary
| cgs | Returns a copy of the current Quantity instance with CGS units. |
| equivalencies | A list of equivalencies that will be applied by default during unit conversions. |
| flat | A 1-D iterator over the Quantity array. |
| isscalar | True if the value of this quantity is a scalar, or False if it is an array-like object. |
| si | Returns a copy of the current Quantity instance with SI units. |
| unit | A UnitBase object representing the unit of this quantity. |
| value | The numerical value of this quantity. |
Methods Summary
| all([axis, out]) | Returns True if all elements evaluate to True. |
| any([axis, out]) | Returns True if any of the elements of a evaluate to True. |
| argmax([axis, out]) | Return indices of the maximum values along the given axis. |
| argmin([axis, out]) | Return indices of the minimum values along the given axis of a. |
| argsort([axis, kind, order]) | Returns the indices that would sort this array. |
| choose(choices[, out, mode]) | Use an index array to construct a new array from a set of choices. |
| clip(a_min, a_max[, out]) | Return an array whose values are limited to [a_min, a_max]. |
| cumprod([axis, dtype, out]) | Return the cumulative product of the elements along the given axis. |
| cumsum([axis, dtype, out]) | Return the cumulative sum of the elements along the given axis. |
| decompose([bases]) | Generates a new Quantity with the units decomposed. |
| diff([n, axis]) | |
| dot(b[, out]) | Dot product of two arrays. |
| dump(file) | Dump a pickle of the array to the specified file. |
| dumps() | Returns the pickle of the array as a string. |
| ediff1d([to_end, to_begin]) | |
| fill(value) | Fill the array with a scalar value. |
| insert(obj, values[, axis]) | Insert values along the given axis before the given indices and return a new Quantity object. |
| item(*args) | Copy an element of an array to a standard Python scalar and return it. |
| itemset(*args) | Insert scalar into an array (scalar is cast to array’s dtype, if possible) |
| max([axis, out]) | Return the maximum along a given axis. |
| mean([axis, dtype, out]) | Returns the average of the array elements along given axis. |
| min([axis, out]) | Return the minimum along a given axis. |
| nansum([axis, out, keepdims]) | |
| prod([axis, dtype, out]) | Return the product of the array elements over the given axis |
| ptp([axis, out]) | Peak to peak (maximum - minimum) value along a given axis. |
| put(indices, values[, mode]) | Set a.flat[n] = values[n] for all n in indices. |
| round([decimals, out]) | Return a with each element rounded to the given number of decimals. |
| searchsorted(v[, side, sorter]) | Find indices where elements of v should be inserted in a to maintain order. |
| std([axis, dtype, out, ddof]) | Returns the standard deviation of the array elements along given axis. |
| sum([axis, dtype, out]) | Return the sum of the array elements over the given axis. |
| to(unit[, equivalencies]) | Returns a new Quantity object with the specified units. |
| tofile(fid[, sep, format]) | Write array to a file as text or binary (default). |
| tolist() | Return the array as a (possibly nested) list. |
| tostring([order]) | Construct a Python string containing the raw data bytes in the array. |
| trace([offset, axis1, axis2, dtype, out]) | Return the sum along diagonals of the array. |
| var([axis, dtype, out, ddof]) | Returns the variance of the array elements, along given axis. |
Attributes Documentation
Returns a copy of the current Quantity instance with CGS units. The value of the resulting object will be scaled.
A list of equivalencies that will be applied by default during unit conversions.
A 1-D iterator over the Quantity array.
This returns a QuantityIterator instance, which behaves the same as the flatiter instance returned by flat, and is similar to, but not a subclass of, Python’s built-in iterator object.
True if the value of this quantity is a scalar, or False if it is an array-like object.
Note
This is subtly different from numpy.isscalar in that numpy.isscalar returns False for a zero-dimensional array (e.g. np.array(1)), while this is True for quantities, since quantities cannot represent true numpy scalars.
Returns a copy of the current Quantity instance with SI units. The value of the resulting object will be scaled.
The numerical value of this quantity.
Methods Documentation
Returns True if all elements evaluate to True.
Refer to numpy.all for full documentation.
See also
Returns True if any of the elements of a evaluate to True.
Refer to numpy.any for full documentation.
See also
Return indices of the maximum values along the given axis.
Refer to numpy.argmax for full documentation.
See also
Return indices of the minimum values along the given axis of a.
Refer to numpy.argmin for detailed documentation.
See also
Returns the indices that would sort this array.
Refer to numpy.argsort for full documentation.
See also
Use an index array to construct a new array from a set of choices.
Refer to numpy.choose for full documentation.
See also
Return an array whose values are limited to [a_min, a_max].
Refer to numpy.clip for full documentation.
See also
Return the cumulative product of the elements along the given axis.
Refer to numpy.cumprod for full documentation.
See also
Return the cumulative sum of the elements along the given axis.
Refer to numpy.cumsum for full documentation.
See also
Generates a new Quantity with the units decomposed. Decomposed units have only irreducible units in them (see astropy.units.UnitBase.decompose).
| Parameters: | bases : sequence of UnitBase, optional
|
|---|---|
| Returns: | newq : Quantity
|
Dot product of two arrays.
Refer to numpy.dot for full documentation.
See also
Examples
>>> a = np.eye(2)
>>> b = np.ones((2, 2)) * 2
>>> a.dot(b)
array([[ 2., 2.],
[ 2., 2.]])
This array method can be conveniently chained:
>>> a.dot(b).dot(b)
array([[ 8., 8.],
[ 8., 8.]])
Dump a pickle of the array to the specified file. The array can be read back with pickle.load or numpy.load.
| Parameters: | file : str
|
|---|
Returns the pickle of the array as a string. pickle.loads or numpy.loads will convert the string back to an array.
| Parameters: | None |
|---|
Fill the array with a scalar value.
| Parameters: | value : scalar
|
|---|
Examples
>>> a = np.array([1, 2])
>>> a.fill(0)
>>> a
array([0, 0])
>>> a = np.empty(2)
>>> a.fill(1)
>>> a
array([ 1., 1.])
Insert values along the given axis before the given indices and return a new Quantity object.
This is a thin wrapper around the numpy.insert function.
| Parameters: | obj : int, slice or sequence of ints
values : array-like
axis : int, optional
|
|---|---|
| Returns: | out : Quantity
|
Examples
>>> import astropy.units as u
>>> q = [1, 2] * u.m
>>> q.insert(0, 50 * u.cm)
<Quantity [ 0.5, 1., 2.] m>
>>> q = [[1, 2], [3, 4]] * u.m
>>> q.insert(1, [10, 20] * u.m, axis=0)
<Quantity [[ 1., 2.],
[ 10., 20.],
[ 3., 4.]] m>
>>> q.insert(1, 10 * u.m, axis=1)
<Quantity [[ 1., 10., 2.],
[ 3., 10., 4.]] m>
Copy an element of an array to a standard Python scalar and return it.
| Parameters: | *args : Arguments (variable number and type)
|
|---|---|
| Returns: | z : Standard Python scalar object
|
Notes
When the data type of a is longdouble or clongdouble, item() returns a scalar array object because there is no available Python scalar that would not lose information. Void arrays return a buffer object for item(), unless fields are defined, in which case a tuple is returned.
item is very similar to a[args], except, instead of an array scalar, a standard Python scalar is returned. This can be useful for speeding up access to elements of the array and doing arithmetic on elements of the array using Python’s optimized math.
Examples
>>> x = np.random.randint(9, size=(3, 3))
>>> x
array([[3, 1, 7],
[2, 8, 3],
[8, 5, 3]])
>>> x.item(3)
2
>>> x.item(7)
5
>>> x.item((0, 1))
1
>>> x.item((2, 2))
3
Insert scalar into an array (scalar is cast to array’s dtype, if possible)
There must be at least 1 argument, and define the last argument as item. Then, a.itemset(*args) is equivalent to but faster than a[args] = item. The item should be a scalar value and args must select a single item in the array a.
| Parameters: | *args : Arguments
|
|---|
Notes
Compared to indexing syntax, itemset provides some speed increase for placing a scalar into a particular location in an ndarray, if you must do this. However, generally this is discouraged: among other problems, it complicates the appearance of the code. Also, when using itemset (and item) inside a loop, be sure to assign the methods to a local variable to avoid the attribute look-up at each loop iteration.
Examples
>>> x = np.random.randint(9, size=(3, 3))
>>> x
array([[3, 1, 7],
[2, 8, 3],
[8, 5, 3]])
>>> x.itemset(4, 0)
>>> x.itemset((2, 2), 9)
>>> x
array([[3, 1, 7],
[2, 0, 3],
[8, 5, 9]])
Return the maximum along a given axis.
Refer to numpy.amax for full documentation.
See also
Returns the average of the array elements along given axis.
Refer to numpy.mean for full documentation.
See also
Return the minimum along a given axis.
Refer to numpy.amin for full documentation.
See also
Return the product of the array elements over the given axis
Refer to numpy.prod for full documentation.
See also
Peak to peak (maximum - minimum) value along a given axis.
Refer to numpy.ptp for full documentation.
See also
Set a.flat[n] = values[n] for all n in indices.
Refer to numpy.put for full documentation.
See also
Return a with each element rounded to the given number of decimals.
Refer to numpy.around for full documentation.
See also
Find indices where elements of v should be inserted in a to maintain order.
For full documentation, see numpy.searchsorted
See also
Returns the standard deviation of the array elements along given axis.
Refer to numpy.std for full documentation.
See also
Return the sum of the array elements over the given axis.
Refer to numpy.sum for full documentation.
See also
Returns a new Quantity object with the specified units.
| Parameters: | unit : UnitBase instance, str equivalencies : list of equivalence pairs, optional
|
|---|
Write array to a file as text or binary (default).
Data is always written in ‘C’ order, independent of the order of a. The data produced by this method can be recovered using the function fromfile().
| Parameters: | fid : file or str
sep : str
format : str
|
|---|
Notes
This is a convenience function for quick storage of array data. Information on endianness and precision is lost, so this method is not a good choice for files intended to archive data or transport data between machines with different endianness. Some of these problems can be overcome by outputting the data as text files, at the expense of speed and file size.
Return the array as a (possibly nested) list.
Return a copy of the array data as a (nested) Python list. Data items are converted to the nearest compatible Python type.
| Parameters: | none |
|---|---|
| Returns: | y : list
|
Notes
The array may be recreated, a = np.array(a.tolist()).
Examples
>>> a = np.array([1, 2])
>>> a.tolist()
[1, 2]
>>> a = np.array([[1, 2], [3, 4]])
>>> list(a)
[array([1, 2]), array([3, 4])]
>>> a.tolist()
[[1, 2], [3, 4]]
Construct a Python string containing the raw data bytes in the array.
Constructs a Python string showing a copy of the raw contents of data memory. The string can be produced in either ‘C’ or ‘Fortran’, or ‘Any’ order (the default is ‘C’-order). ‘Any’ order means C-order unless the F_CONTIGUOUS flag in the array is set, in which case it means ‘Fortran’ order.
| Parameters: | order : {‘C’, ‘F’, None}, optional
|
|---|---|
| Returns: | s : str
|
Examples
>>> x = np.array([[0, 1], [2, 3]])
>>> x.tostring()
'\x00\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00'
>>> x.tostring('C') == x.tostring()
True
>>> x.tostring('F')
'\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x03\x00\x00\x00'
Return the sum along diagonals of the array.
Refer to numpy.trace for full documentation.
See also
Returns the variance of the array elements, along given axis.
Refer to numpy.var for full documentation.
See also


ReverseIterator
Extends:
STL-like backward iterator. Can be used to traverse container or a range in the reverse order. It's more verbose than ES6 iterators, but allows iteration over any part of the container
Example:
let m = new TreeMap();
...
for (let it = m.rbegin(); !it.equals(m.rend()); it.next()) {
console.log(`key: ${it.key}, value: ${it.value}`);
}
Constructor Summary
| Public Constructor | ||
| public |
constructor(args: *) There are 3 ways to construct a reverse iterator: |
Method Summary
| Public Methods | ||
| public |
next() Replaces node reference with the reference of the previous node in the container, because it works in reverse order Can be used for manual reverse iteration over a range of key-value pairs. |
|
| public |
prev() Replaces node reference with the reference of the next node in the container, because it works in reverse order Can be used for manual forward iteration over a range of key-value pairs. |
Inherited Summary
| From class BaseIterator | ||
| public |
equals(rhs: BaseIterator): boolean Two iterators are considered to be equal if they point to the same node of the same container |
Public Constructors
public constructor(args: *) source
There are 3 ways to construct a reverse iterator:
- Using a node and a container
- Copy constructor / clone
- Copy constructor / clone from forward Iterator instance
Override:
BaseIterator#constructorParams:
| Name | Type | Attribute | Description |
| args | * |
Example:
// Using a node and a container
let it = new ReverseIterator(node, container);
// Copy constructor / clone
let it1 = new ReverseIterator(node, container);
let it2 = new ReverseIterator(it1);
// Copy constructor / clone from forward Iterator instance
let it1 = new Iterator(node, container);
let it2 = new ReverseIterator(it1);
Public Methods
public next() source
Replaces node reference with the reference of the previous node in the container, because it works in reverse order Can be used for manual reverse iteration over a range of key-value pairs.
Example:
let m = new TreeMap();
... // add key-value pairs., using numbers as keys
let from = new ReverseIterator(t.upperBound(50));
let to = new ReverseIterator(t.lowerBound(0));
let it = from;
while (!it.equals(to)) {
console.log(it.key);
it.next();
}
public prev() source
Replaces node reference with the reference of the next node in the container, because it works in reverse order Can be used for manual forward iteration over a range of key-value pairs.
Example:
let m = new TreeMap();
... // add key-value pairs., using numbers as keys
let from = new ReverseIterator(t.upperBound(50));
let to = new ReverseIterator(t.lowerBound(0));
let it = to;
while (!it.equals(from)) {
it.prev();
console.log(it.key);
}


| Marco Biazzini, Martin Monperrus, Benoit Baudry |
On Analyzing the Topology of Commit Histories in Decentralized Version Control Systems [show/hide BibTeX] |
2014 |
ICSME 2014 |
In Proceedings |
pdf |
BibTeX:
@inproceedings{Biazzini14c,
title={On Analyzing the Topology of Commit Histories in Decentralized Version Control Systems},
author={Biazzini, Marco and Monperrus, Martin and Baudry, Benoit},
booktitle={ICSME 2014},
pages={to appear},
year={2014}
}
|
| Marco Biazzini |
A Flexible P2P Gossip-based PSO Algorithm [show/hide BibTeX] |
2014 |
ICN 2014 |
In Proceedings |
pdf |
BibTeX:
@inproceedings{Biazzini14a,
title={A Flexible P2P Gossip-based PSO Algorithm},
author={Biazzini, Marco},
booktitle={ICN 2014, The Thirteenth International Conference on Networks},
pages={81--85},
year={2014}
}
|
| Marco Biazzini, Benoit Baudry |
"May the Fork Be with You" : Novel Metrics to Analyze Collaboration on GitHub [show/hide BibTeX] |
2014 |
WeTSOM 2014 |
In Proceedings |
pdf |
BibTeX:
@inproceedings{Biazzini14b,
title={May the Fork Be with You: Novel Metrics to Analyze Collaboration on GitHub},
author={Biazzini, Marco and Baudry, Benoit},
booktitle={WeTSOM 2014},
pages={},
year={2014}
}
|
| Marco Biazzini, Patricia Serrano-Alvarado and Raziel Carvajal-Gomez |
Towards improving user satisfaction in decentralized P2P networks [show/hide BibTeX] |
2013 |
CollaborateCom 2013 |
In Proceedings |
pdf |
BibTeX:
@inproceedings{Biazzini13a,
hal_id = {hal-00871672},
url = {http://hal.archives-ouvertes.fr/hal-00871672},
title = {{Towards improving user satisfaction in decentralized P2P networks}},
author = {Biazzini, Marco and Serrano-Alvarado, Patricia and Carvajal-Gomez, Raziel},
keywords = {User satisfaction, user preferences, P2P unstructured overlays, P2P content distribution, P2P distributed computation.},
affiliation = {IRISA / INRIA Rennes - IRISA / INRIA Rennes , Laboratoire d'Informatique de Nantes Atlantique - LINA},
booktitle = {{IEEE International Conference on Collaborative Computing: Networking, Applications and Worksharing}},
year = {2013},
month = Oct,
pdf = {http://hal.archives-ouvertes.fr/hal-00871672/PDF/main.pdf},
}
|
| Soufiane Rouibia, Majd Ghareeb, Beno{\^\i}t Parrein, Marco Biazzini, Raziel Carvajal-Gomez, Adriana Perez-Espinosa and Patricia Serrano-Alvarado |
Towards a hybrid client/server and p2p architecture for content delivery over the internet [show/hide BibTeX] |
2012 |
CFIP/NOTERE |
In Proceedings |
pdf |
BibTeX:
@inproceedings{Biazzini12c,
title={Towards a hybrid client/server and p2p architecture for content delivery over the internet},
author={Rouibia, Soufiane and Ghareed, Majd and Parrein, Beno{\^\i}t and Biazzini, Marco and Carvajal-Gomez, Raziel and Perez-Espinosa, Adriana and Serrano-Alvarado, Patricia and others},
booktitle={Proceeding of the CFIP/NOTERE},
year={2012}
}
|
| Marco Biazzini and Alberto Montresor |
P2POEM: Function optimization in p2p networks [show/hide BibTeX] |
2012 |
Peer-to-Peer Networking and Applications |
Journal Article |
pdf |
BibTeX:
@article {Biazzini12b,
author = {Biazzini, Marco and Montresor, Alberto},
affiliation = {INRIA -- Bretagne Atlantique, Campus de Beaulieu, 35042 Rennes Cedex, France},
title = {P2POEM: Function optimization in P2P networks},
journal = {Peer-to-Peer Networking and Applications},
publisher = {Springer New York},
issn = {1936-6442},
pages = {1-20},
url = {http://dx.doi.org/10.1007/s12083-012-0152-8},
note = {10.1007/s12083-012-0152-8}
}
|
| Alhadad, Nagham and Lamarre, Philippe and Busnel, Yann and Serrano-Alvarado, Patricia and Biazzini, Marco and Sibertin-Blanc, Christophe |
SocioPath: Bridging the Gap between Digital and Social Worlds [show/hide BibTeX] |
2012 |
DEXA 2012 - 23rd International Conference on Database and Expert Systems Applications |
In Proceedings |
pdf |
BibTeX:
@inproceedings{Biazzini12a
author = {Alhadad, Nagham and Lamarre, Philippe and Busnel, Yann and Serrano-Alvarado, Patricia and Biazzini, Marco and Sibertin-Blanc, Christophe},
title = {SocioPath: Bridging the Gap between Digital and Social Worlds},
year = {2012},
booktitle = {DEXA 2012 -- 23rd International Conference on Database and Expert Systems Applications}
}
|
| Alhadad, Nagham and Lamarre, Philippe and Busnel, Yann and Serrano-Alvarado, Patricia and Biazzini, Marco |
SocioPath: In Whom You Trust? [show/hide BibTeX] |
2011 |
Atelier Protection de la Vie Privée |
Workshop |
pdf |
BibTeX:
@misc{Biazzini11a,
title = {{SOCIOPATH: In Whom You Trust?}},
author = {Alhadad, Nagham and Lamarre, Philippe and Busnel, Yann and Serrano-Alvarado, Patricia and Biazzini, Marco},
year = {2011},
month = {June},
howpublished = {{Atelier Protection de la Vie Priv{\'e}e}}
}
|
| Alhadad, Nagham and Lamarre, Philippe and Busnel, Yann and Serrano-Alvarado, Patricia and Biazzini, Marco and Sibertin-Blanc, Christophe |
SocioPath: In Whom You Trust? [show/hide BibTeX] |
2011 |
HAL Technical Report |
Technical Report |
pdf |
BibTeX:
@techreport{Biazzini11a_1,
hal_id = {hal-00608435},
url = {http://hal.archives-ouvertes.fr/hal-00608435},
title = {{SOCIOPATH: In Whom You Trust?}},
author = {Alhadad, Nagham and Lamarre, Philippe and Busnel, Yann and Serrano-Alvarado, Patricia and Biazzini, Marco and Sibertin-Blanc, Christophe},
keywords = {trust, satisfaction, privacy, distributed systems, dependency, control},
language = {English},
affiliation = {Laboratoire d'Informatique de Nantes Atlantique - LINA , Institut de recherche en informatique de Toulouse - IRIT},
year = {2011},
month = July,
pdf = {http://hal.archives-ouvertes.fr/hal-00608435/PDF/SocioPath-ResearchReport-LINA-2011.pdf},
}
|
| Alhadad, Nagham and Lamarre, Philippe and Busnel, Yann and Serrano-Alvarado, Patricia and Biazzini, Marco |
SocioPath: In Whom You Trust? [show/hide BibTeX] |
2011 |
Bases de Données Avancées |
In Proceedings |
pdf |
BibTeX:
@inproceedings{Biazzini11b,
hal_id = {hal-00638753},
url = {http://hal.archives-ouvertes.fr/hal-00638753},
title = {{SocioPath: In Whom You Trust?}},
author = {Alhadad, Nagham and Lamarre, Philippe and Busnel, Yann and Serrano-Alvarado, Patricia and Biazzini, Marco},
keywords = {Trust, Privacy, distributed systems, social world, digital world},
language = {English},
affiliation = {Laboratoire d'Informatique de Nantes Atlantique - LINA},
booktitle = {{Bases de Donn{\'e}es Avanc{\'e}es}},
address = {Rabat, Maroc},
audience = {internationale },
year = {2011},
month = Nov,
pdf = {http://hal.archives-ouvertes.fr/hal-00638753/PDF/SocioPath-2011.pdf},
}
|
| Abeni, L., Bakay, A., Biazzini, M., Birke, R., Leonardi, E., Lo Cigno, R., Kiraly, C., Mellia, M., Niccolini, S., Seedorf, J., Szemethy, T. & Tropea, G. |
Network Friendly P2P-TV: The Napa-Wine Approach [show/hide BibTeX] |
2010 |
IEEE Tenth International Conference on Peer-to-Peer Computing (P2P'10) |
conference |
pdf |
BibTeX:
@conference {Biazzini10d,
title = {Network Friendly P2P-TV: The Napa-Wine Approach},
booktitle = {IEEE Tenth International Conference on Peer-to-Peer Computing (P2P\'10)},
year = {2010},
pages = {1 - 2},
publisher = {IEEE},
organization = {IEEE},
address = {Delft, Netherlands},
isbn = {978-1-4244-7140-9},
doi = {10.1109/P2P.2010.5569983},
url = {http://mycite.omikk.bme.hu/doc/90766.pdf},
author = {Abeni, Luca and Bakay, Arpad and Biazzini, Marco and Birke, R. and Leonardi, Emilio and Lo Cigno, Renato and Kiraly, Csaba and Mellia, Marco and Niccolini, S. and Seedorf, J. and Szemethy, Tivadar and Tropea, Giuseppe}
}
|
| Abeni, L., Kiraly, C., Russo, A., Biazzini, M. & Lo Cigno, R. |
Design and Implementation of a Generic Library for P2P Streaming [show/hide BibTeX] |
2010 |
Proceedings of Advanced video streaming techniques for peer-to-peer networks and social networking (AVSTP2P'10) |
In Proceedings |
pdf |
BibTeX:
@inproceedings{Biazzini10a,
author = {L. Abeni and C. Kiraly and A. Russo and M. Biazzini and R. Lo Cigno},
title = {Design and Implementation of a Generic Library for P2P Streaming},
booktitle = {Proceedings of Advanced video streaming techniques for peer-to-peer networks and social networking (AVSTP2P\'10)},
year = {2010}
}
|
| Biazzini, M. & Montresor, A. |
Gossiping Differential Evolution: a decentralized heuristic for function optimization in P2P networks [show/hide BibTeX] |
2010 |
Proceedings of the 16th International Conference on Parallel and Distributed Systems (ICPADS'10) |
In Proceedings |
pdf |
BibTeX:
@inproceedings{Biazzini10b,
author = {Marco Biazzini and Alberto Montresor},
title = {Gossiping Differential Evolution: a decentralized heuristic for function optimization in P2P networks},
booktitle = {Proceedings of the 16th International Conference on Parallel and Distributed Systems (ICPADS'10)},
year = {2010}
}
|
| R. Lo Cigno, C. Kiraly, L. Abeni, A. Russo and M. Biazzini |
Implementing Streamers with GRAPES: Initial Experience and Results [show/hide BibTeX] |
2010 |
(DISI-10-039) |
Technical Report |
pdf |
BibTeX:
@techreport{Biazzini10c_1,
author = {R. {Lo Cigno} and C. Kiraly and L. Abeni and A. Russo and M. Biazzini},
title = {Implementing Streamers with GRAPES: Initial Experience and Results},
institution = {University of Trento - Ingegneria e Scienza dell'Informazione},
year = {2010},
number = {DISI-10-039},
owner = {marco},
timestamp = {2010.09.17}
}
|
| Abeni, L., Kiraly, C., Russo, A., Biazzini, M. & Lo Cigno, R. |
GRAPES: a Generic Environment for P2P Streaming [show/hide BibTeX] |
2010 |
(DISI-10-038) |
Technical Report |
pdf |
BibTeX:
@techreport{Biazzini10a_1,
author = {L. Abeni and C. Kiraly and A. Russo and M. Biazzini and R. Lo Cigno},
title = {GRAPES: a Generic Environment for P2P Streaming},
year = {2010},
number = {DISI-10-038}
}
|
| Biazzini, M., Bánhelyi, B., Montresor, A. & Jelasity, M. |
Distributed Hyper-Heuristics for Real Parameter Optimization [show/hide BibTeX] |
2009 |
Proceedings of the 11th Genetic and Evolutionary Computation Conference (GECCO'09), pp. 1339-1346 |
In Proceedings |
pdf |
BibTeX:
@inproceedings{Biazzini09b,
author = {Marco Biazzini and Balázs Bánhelyi and Alberto Montresor and Márk Jelasity},
title = {Distributed Hyper-Heuristics for Real Parameter Optimization},
booktitle = {Proceedings of the 11th Genetic and Evolutionary Computation Conference (GECCO'09)},
year = {2009},
pages = {1339--1346},
doi = {http://doi.acm.org/10.1145/1569901.1570081}
}
|
| Biazzini, M., Bánhelyi, B., Montresor, A. & Jelasity, M. & Vinko, T. & Izzo, D. |
Gossip-based strategies in global optimization [show/hide BibTeX] |
2009 |
www.esa.int/act |
Research Report |
pdf |
BibTeX:
@misc{Biazzini09a_2,
author = {M Jelasity and B Banhelyi and M Biazzini and A Montresor and T Vinko and D Izzo},
title = {Gossip-based strategies in global optimization},
publisher = {esa.int},
year = {2009},
|
| Bánhelyi, B., Biazzini, M., Montresor, A. & Jelasity, M. |
Peer-to-Peer Optimization in Large Unreliable Networks with Branch-and-Bound and Particle Swarms [show/hide BibTeX] |
2009 |
Applications of Evolutionary Computing, pp. 87-92 |
In Proceedings |
pdf |
BibTeX:
@inproceedings{Biazzini09a,
author = {Balázs Bánhelyi and Marco Biazzini and Alberto Montresor and Márk Jelasity},
title = {Peer-to-Peer Optimization in Large Unreliable Networks with Branch-and-Bound and Particle Swarms},
booktitle = {Applications of Evolutionary Computing},
publisher = {Springer},
year = {2009},
pages = {87--92},
doi = {http://dx.doi.org/10.1007/978-3-642-01129-0}
}
|
| Biazzini, M., Montresor, A. & Brunato, M. |
Towards a Decentralized Architecture for Optimization [show/hide BibTeX] |
2008 |
Proc. of the 22nd IEEE International Parallel and Distributed Processing Symposium (IPDPS'08) |
In Proceedings |
pdf |
BibTeX:
@inproceedings{Biazzini08,
author = {Marco Biazzini and Alberto Montresor and Mauro Brunato},
title = {Towards a Decentralized Architecture for Optimization},
booktitle = {Proc. of the 22nd IEEE International Parallel and Distributed Processing Symposium (IPDPS'08)},
year = {2008}
}
|


RT @Currofile: I'd like to connect with fellow 🙋♀ #expats working in #tech #internet industries from the US and EU who have happily reloc…
6/10/2019, 2:39:52 AM
Favs: 0
Retweets: 0
link--- layout: tweet ---
RT @Currofile: I'd like to connect with fellow 🙋♀ #expats working in #tech #internet industries from the US and EU who have happily reloc…
6/10/2019, 2:39:52 AM
Favs: 0
Retweets: 0
link


Joint Policing Committee
Extra resources to deal with 'boy racers' in north Louth welcomed
Joint Policing Committee
by Donard McCabeDundalk councillor Antóin Watters has welcomed confirmation of extra resources to deal with the scourge of so called ‘boy racers’ in the North Louth area.
At yesterday's Joint Policing Committee meeting, Cllr Watters raised the issue with Gardaí saying “we urgently need to have this issue addressed before someone is seriously hurt or killed. The number of incidents reported to me by concerned residents and citizens over the past few weeks has intensified.”
Responding to Cllr Watters request, Gardaí confirmed that they planned to carry out a specific operation to tackle the issue and also confirmed they would allocate extra resources to the operation.
The Sinn Féin councillor also took the opportunity to raise the cross-border burglary gangs who are operating in South Armagh at present.
Cllr Watters said: “Last night seen a packed public meeting held in the South Armagh village of Meigh where concerned residents and elected representatives alike, felt the way forward was a joined up cross-border approach.
"There was a clear message from that meeting was that ‘we deserve better’ and both the PSNI and the Gardaí need to have a focussed effort on apprehending these people who are using the border as a ‘safe passage’.”
Gardaí confirmed to Cllr Watters that they are liasing with the PSNI on a daily basis and are aware of potential targets and are carrying out extra checkpoints in the border corridor.
In a statement issued by Cllr Watters following the meeting, he asks all residents in the north Louth area to "report anything suspicious and to look out for each other in their neighbourhoods, especially in the rural areas and to help the Gardaí in whatever way you can to make our communities safer."


Welcome! You will practice writing Chinese characters while playing a game of Snakes and Ladders.
Each turn, you will be given the Hanyu Pinyin and English meaning of a Chinese character. Write the Chinese character in the silver box below.
If you make a mistake, click 'Clear' to erase. Click 'Submit' to check your answer.
If you are correct, you will get to roll the dice. The aim of the game is to move from the first square to the final square in as few turns as possible.
If you land at the bottom of a ladder, you will climb to the top. If you land on the head of a snake, you will slide down to its tail.
When you are ready, click 'Start Game' to begin. Good luck!


--- layout: project-post title: Brachial Plexus Shoulder Model ---
As part of Rice University's Summer Experience in Engineering Design Program (SEED), I worked with a team of the 4 students to develop an educational model for the Texas Children's Hospital. Our client, a physical therapist, specialized in the treatment of brachial plexus palsy.
Brachial plexus palsy is a condition involving the loss of nerve function in the brachial plexus, the nerves that control the shoulder and arm. It affects primarily newborn infants. Although most infants can recover nerve function, prevention requires physical therapy exercises 5-7 times a day.
Our team was tasked with creating a simple model to allow parents to learn the exercises before performing them on their children.
To develop an educational model for infant brachial plexus palsy therapy, my team followed a design process that included:
We gave our client frequent updates and collaborated with him to develop our prototypes.
Our final product consisted of a model with two shoulder joints. The markings on the two scapulas indicate whether the joint behaves normally (check mark) or behaves abnormally (x mark, sign of palsy). The model could demonstrate four physical therapy exercises and the effect of brachial plexus palsy on the joint when performing the exercises.
The model is primarily made of laser cut wood. The scapulas are attached to the body by compression springs surrounded by heat shrink tubing, and the wooden arms are attached to the body by clasps, torsion springs, and some 3D printed components.