--- layout: post authors: ["Raniere Silva"] title: "Software Carpentry workshop at Universidade Federal do Rio Grande do Sul" date: 2014-08-30 time: "19:00:00" tags: ["Bootcamps", "UFRGS"] ---
At the end of this week Alex Viana and I taught a Software Carpentry workshop at the Universidade Federal do Rio Grande do Sul. We had around 30 learners of very different experience (from high school students to seniors professors of the university) and took them through Bash, Git and Python over the course of two days.
First of all I want to thank everyone who helped organize and run this workshop, especially Rafael Pezzi and Lucas Leal. We held the workshop in a university computer lab, so we used the lab's desktops with a virtual machine setup by our host.
At the morning of the first day, I taught shell. Most of the students used it before, at least once, but they like to discovery some new commands (e.g. `find`) and that they can create shell scripts. At the afternoon, Alex taught the introduction to Python covering variables, loops, conditions and functions.
At the morning of the second day, I taught Git. This was the session that most of the students were waiting and they like it. (Instead of GitHub we used GitLab as requested by our host.) At the afternoon, Alex taught the basic of the Python scientific libraries (Numpy and Matplotlib) and Pandas by rewriting the same example with all this libraries. Students were amazing by how easy is to use Pandas for data analysis (we used the data file provided by our host).
Although the good feedbacks that we had (e.g. "Thought the lessons well organized and the instructors well prepared and worried so we learn the knowledge.") students complained about:
Alex and I will try to address this complains in our two workshop at University of São Paulo next week.


{% extends "common/layout.html" %} {% block 'content' %}
Certain routes do not operate 24/24h, you can precise times for the first and last vehicles here.
Please select a stop, a start date and an end date.
{{ $data | json }}


The First Step To Becoming A Leader
What is a leader?
A leader is someone who drives a group of people towards a common goal.
Leaders come in all different flavors, but the best leaders all have a few things in common – they have a clear vision and they are the drivers that push it all forward.
So what does it take to become a leader? Charisma, salesmanship, product sense, etc. are all pieces of it, but not the key element. At the core, a leader is someone who simply makes good decisions for the group.
I believe that everyone knows what a good decision looks like. People either explicitly know what it is, or they are able to “feel” when a decision is right. Intuition is still always there as a fail safe.
Then why isn’t everyone a leader?
When it comes down to it, most people don’t speak their minds. They stifle their own voice and default to the majority. The majority must know better, be smarter, have more experience, etc. This can be especially true if you’re in a group full of people smarter than you.
To become a leader, all you have to do is start speaking your mind. That simple.
Speaking your mind is how you learn. You force yourself to have an opinion, take a side, and voice it publicly. If you’re consistently right, people will recognize this and you will quickly evolve into the decision making authority and leader.
But when you speak up, you might not always be right. In fact, when you start to really speak your mind, there’s a good chance you’ll often be wrong. When this happens, it can certainly be easy to hide behind silence.

But it doesn’t matter. When you put yourself out there, you expose your actual thoughts. You create a voice for yourself as well as subjecting your thought process to criticism.
Take in the criticism, recalibrate, and try again. You can tweak what was wrong before, and constantly iterate your thought process to success.
When you say nothing, you never put yourself out there.  It’s easier to hide behind silence than subject yourself to the risk of ridicule. Over time, however, those that speak out will continue to improve and others will remain static.
After constantly interating and optimizing your thought process, you’ll start to hone your instincts and begin making the right decisions. By this point you’ll have a voice for yourself in the group, have confidence in your opinions, and have naturally evolved into a leader for your group.
I’ve typically been pretty outspoken. And while this might all seem like common sense, I found that once I started paying attention to myself, I realized I was subconsciously defaulted to the majority on a several things that I actually had an opinions on.
I caught myself and changed my behavior, but I wouldve never realized that I was keeping quiet until I started to explicitly watch my own behavior.
Give it a shot, would love to hear thoughts or if you’ve had a similar experience.
You Might Also Like
- Hot Teams
- Leadership
- Good Teams Succeed. Great Teams Fail.
- High Output Management
- Joining As Management


| stats.auth.component.state.noauth | The context does not have an authentication method |
| stats.auth.component.state.nothtml | Non HTML responses (which are unlikely to have logged in/out indicators) |
| stats.auth.component.state.notsuccess | Unsuccessful HTML responses (which are unlikely to have logged in/out indicators) |
| stats.auth.component.state.noindicator | No logged in/out indicators have been defined |
| stats.auth.component.state.loggedinandout | Both the logged in and out indicators present |
| stats.auth.component.state.loggedin | Just the logged in indicator present |
| stats.auth.component.state.loggedout | Just the logged out indicator present |
| stats.auth.component.state.unknown | Neither the logged in or out indicators present |
| ascan | Active Scanner |
| auth | Authentication |
| fuzz | Fuzzer |
| manual | Manual requests |
| proxy | Proxied requests |
| spider | Spider |
| id | The integer identifier of another component not listed above |
the statistics can be accessed via the ZAP API.
The icon for this add-on was derived from the Fugue icons chart.png and locl-small.png


Class Version
Direct known subclasses
Angelfon\SDK\Rest\Api\V099
public
|
|
public
string
|
|
public
string
|
|
public
|
|
protected
|
|
public
|
|
public
|
|
public
|
|
public
|
|
public
|
|
public
|
|
public
|
protected
|
$domain
|
|
protected
|
$version
|


EMME for HECO
Home
(current)
Aloha, Welcome to Electric Meter Monitor
Extreme
Notification
{% for i in error %}
{{ i }}
{% endfor %}
Power Graph
Open in new window
{% for i in prediction %}
{{ i }}
{% endfor %}


--- layout: default title: About Matthew Yates ---
I have been woking on some stuff outside of work, mostly while on leave.


mdatopbm(1) mdatopbm(1) NAME mdatopbm - convert a Microdesign .mda or .mdp file into a portable bitmap SYNOPSIS mdatopbm [-a][-d][-i][--] [ mdafile ] DESCRIPTION Reads a MicroDesign file as input. Reads from stdin if input file is omitted. Produces a portable bitmap as output. OPTIONS -a Output the PBM in ASCII rather than binary. -d Double the height of the output file, to compensate for the aspect ratio used in MicroDesign files. -i Invert the colours used. -- End of options (use this if the filename starts with "-") SEE ALSO pbmtomda(1), pbm(5) AUTHOR Copyright (C) 1999 John Elliott<EMAIL_ADDRESS>3 June 1999 mdatopbm(1)


Come this Winter the gates of Central India's Largest Cultural Festival are opened. The Cultural Extravaganza, studded with electrifying and exhaling events and competitions. Conceptualized back in 2016, ABHIVYAKTI has come in all realms both qualitatively and quantititavely and has firmly ensourced itself as the centerpiece and the cultural spectrum of the region. Abhivyakti is a Cultural event completely organized and co-ordinated by willingness and true spirits of IIITians and their individual skill and strength are combined with teamwork, in order to produce meaningfull results for the Institute. So come join us all in the event which will held on 10th-11th March 2018.
EVENTS
Remember to register here!
ANTARA
TO THE BEAT
THE BIG ROAR
PRASHNA BAAN
CRAFTIX
KAVYANJALI
PATHANATYA
FUSION
ACTING SMART
VYAKTITVA
×
ANTARA
"Then the singing enveloped me. It was furry and resonant, coming from everyone's very heart. There was no sense of performance or judgment, only that the music was breath and food.”
One of the greatest joys and freedoms is to sing what with your heart and soul, it metamorphosis’s your thoughts into the listener's mind. Let your songs and voice transcend all the boundaries, sing like you have only today to express yourself, sing for the moment, sing for the laughter and sing for the tears..
What is dancing? To dance means to move the body in a rhythmic fashion. Dancing can be done in time to music, but it does not need to be.
Dancing is an art form: it is designed to look beautiful as well as being meaningful. Dancing can tell a story or be meaningful in other ways – such as embodying emotion.
 Go, perform.
It takes less than two minutes to judge how one speaks and how witty he can be. Are you a quick-thinker, always thinking about good comebacks and wanting to showcase your sensible side and speaking ability? Do you think you have what it takes to speak, be wise and impress people? Then this is your chance to be your best at one of the biggest Debating events!
So, the bottom line, in short is, you cannot miss this one for anything else in the world!
Prashna Baan is a quiz competition of the annual cultural fest of IIIT Nagpur, Abhivyakti. A quiz is a form of game or mind sport, in which the players (as individuals or in teams) attempt to answer questions correctly. It is a game to test your knowledge about a certain subject or over a range of subjects.
Creativity is the act of turning new and imaginative ideas into reality. Creativity is characterised by the ability to perceive the world in new ways, to find hidden patterns, to make connections between seemingly unrelated phenomena, and to generate solutions. Creativity involves two processes: thinking, then producing.
"If you have ideas but don't act on them, you are imaginative but not creative"
Kavyanjali is the poetry competition of the annual cultural fest of IIIT Nagpur, Abhivyakti.
Poetry is an art form in which human language is used for its aesthetic qualities in addition to, or instead of, its notional and semantic content. It consists largely of oral or literary works in which language is used in a manner that is felt by its user and audience to differ from ordinary prose.
It may use condensed or compressed form to convey emotion or ideas to the reader's or listener's mind or ear; it may also use devices such as assonance and repetition to achieve musical or incantatory effects. Poems frequently rely for their effect on imagery, word association, and the musical qualities of the language used. The interactive layering of all these effects to generate meaning is what marks poetry.
Pathanatya, is a street play contest of, the annual cultural fest of IIIT Nagpur, Abhivyakti. Street Play is perhaps the best way to connect with the common man and the youth. These are much intimate, brief, direct and address the social/political message head-on with the help of drama. The catchy phrases and songs, crisp script, humour and loudness help in making a long lasting and powerful effect on viewers.
“Music for the sake of music." Any responsible music educator will emphatically echo this important mantra; it is the keystone theme that serves as the foundation of music teaching, music learning, and music performance. There is no substitute or replacement for music making as it relates to the positive growth and development of the human mind, body, and spirit. Participation in band avails the musician to the infinite journey of creative expression connecting to a language (music) that is understood, communicated, and appreciated by all of mankind around the globe.
 It has been proved through various studies that laughter does have great importance in our lives and would help us to be active, and healthy without any side effects. Laughter is the best way in which one could relax their body and soul, without having any side effects and which is for free. Laughter has endless benefits like boosting our immune system, improving our creativity and memory, brings in a total positive attitude to us and makes us feel on the whole a lot more lighter and fresher.
Vyaktitva is the best place for you to showcase your subtle wit, crackling sense of humour and that covetous glamour and leave an everlasting impression on the mind of every attendant of Abhivyakti. After all who wouldn't want to be recognised for something you do the best - being your gorgeous self.
Personality Development quintessentially means enhancing and grooming one’s outer and inner self to bring about a positive change to your life. Each individual has a distinct persona that can be developed, polished and refined. This process includes boosting one’s confidence, improving communication and language speaking abilities, widening ones scope of knowledge, developing certain hobbies or skills, learning fine etiquettes and manners, adding style and grace to the way one looks, talks and walks and overall imbibing oneself with positivity, liveliness and peace.


Since I own the OnePlus 3 one year ago and still using it now everyday, I was deeply amazed by the quality and value that comes with this phone.
So the first thing I recommended to my girlfriend when she want to upgrade her was the latest model from the same brand, OnePlus 5T.
Simplistic box in white color.
Right after the top cover was removed. Elegant way to present the phone at the first sight. Four little bumps in the corner to help stabilize the device.
We bought the China version so the back was a label full of Chinese which can be removed with just a pull.
Unlike the previous models, this time the company decided to give away a free transparent case which I thought was rubbish but to my surprise it turned out to be a really good case.
Together there is a simple guide and sim tool as well. Still doesn’t come with earphone though.
Dash charge is one of the killer features of OnePlus. One hour charging session will almost get your phone fully charged. The only drawback is both the specific adapter and cable must be used in pair to activate the ultra fast Dash charge.
In my view this phone is awesome because:
Unbeatable value. Pricing at 2999 RMB for flagship specifications that you can find on the Samsung.
Most friendly OS environment OnePlus maybe is the only company that encourages user to root their device without voiding warranty.
If you are looking for tge sleekiest android expirience, look no further for 5T is running HydrogeOS/OxygenOS that is very close to stock android.
Oneplus 5T 是目前我觉得性价比最高的手机，没有之一。2999 人民币的价格能让你拥有三星等大牌子旗舰手机的硬件，性能更是安卓手机里最顺畅的，因为使用了接近原生系统的 HydrogeOS 或是 OxygenOS 系统。
另外一个最大的特点就是一加这厂家非常鼓励社区针对自家系统的开发。不仅系统多数的代码都是开源的，连 root 了都不会取消原厂维修担保，实在是开发者的一大福音。
This page is synchronized from the post: ‘Unboxing of Oneplus5T, best Android phone to date.’


Procrastination: One of the Few Things in Life Nicer Than Toast
I finished rewriting the build system for the Software Carpentry course notes yesterday. Doing so was an extended form of procrastination: the system I built over the summer and used through the fall was adequate, but I wanted to clean a few things up, and then, well, I might as well make it easier for other instructors to add site-specific content, and make tables inclusions instead of inlining them, and mumble mumble mumble type type type...
Of course, none of this has actually advanced the content of the course one whit. I have over seventy tickets to close, ranging in size from making sure that a particular Make example does what I claim to rewriting the lecture on security. And diagrams: no one was happy with the isometric ones created this term (not least because they're kind of fuzzy), so I have over a hundred diagrams to re-do. In a perfect world, they'd be ready before I teach at the IASSE in mid-January. In this universe, I'll be happy if they're in place for the Essential Software Skills for Research Scientists workshop at the AAAS Annual Meeting on February 17.
We all do this. We all fold laundry instead of paying bills, or invent an antigravity drive when we're supposed to be studying for an Economics final. (OK, maybe that was just me.) But it seems particularly common among software developers, many of whom would rather spend two hours creating a new (not better, just new) serialization class hierarchy than take five minutes to center-align the titles at the top of the product's help page. One of the characters in Mark Costello's Big If (reviewed here) is a prime example: his company desperately needs him to add some new monsters to a video game, so he spends a week adding shadows to clouds.
But back to the build system... What I have is a set of XML files marked up with a homegrown tag set, and what I want is some HTML pages. The files are organized into several directories: the main page is in the root, while all of the lectures are in lec/
, and site-specific content is in sub-directories underneath sites/
. Each directory that contains source XML files may also contain img/
, inc/
, and tbl/
sub-directories; in turn, each of those has one sub-directory for each of the source files, which holds images, sample code inclusions, and tables.
The build system consists of the following tools:
- A 500-line Makefile in the root directory that drives everything else. Roughly half of those lines are comments (which can be extracted and formatted as a wiki page to create on-line documentation). This Makefile includes another file called
config.mk
, in which users must specify the lectures they want to include in the course. - A Python script called
linkages.py
that scans the source files and builds a data structure that records such things as the order of lectures, where glossary terms are defined, the two-part numerical IDs of figures and tables, and so on.linkages.py
writes this data structure directly to a file calledtmp/linkages.tmp.py
, which other tools then import. Persisting the data structure directly saved me from having to mess around with parsers or serializers. The clever bit (ahem) is that I only write it out if (a) the file doesn't already exist, or (b) the contents have changed. That way, if I change a source file in a way that doesn't affect cross-linkages, Make doesn't do a lot of unnecessary rebuilding. - Once the linkages file is up to date,
preprocess.py
kicks in. This script creates copies of the source files under thetmp/
directory (preserving the directory structure), and adds information to those copies to make XSLT's job easier. Among other things, it:- adds a unique file ID, and the path to the root of the build, to the lecture's root element;
- copies content from table files into the lectures;
- adds citation information to bibliography references;
- does multi-column layout of length tables;
- inserts figure and table counter values (the "4.2" in "Figure 4.2");
- fills in cross-references between source files;
- replaces the
<lecturelist/>
element with a point-form list of links to lectures; - fills in the
<figlist>
and<tbllist>
tags with lists of figures and tables respectively; - links terms in the glossary back to their first uses;
- inserts included program source files;
- links to external references;
- adds "previous" and "next" linkage information to lectures;
- generates a syllabus; and
- adds tracing information, such as file version numbers and the time the files were processed.
util/individual.xsl
is an XSL script that translates the filled-in XML lecture file into HTML. This script handles the outer skeleton directly, handing specific tasks like the bibliography and special lists to other XSL files that it includes.- A Python script called
util/unify.py
and an XSL script calledutil/unified.xsl
work together to create a single-page version of the whole course.unify.py
stitches the filled-in lecture files together;unified.xsl
then applies the same transformations asindividual.xsl
, but formats hyperlinks differently (since they're all in-file). - I use another Python script called
validate.py
to check the internal consistency of the source files. Do any of them contain tabs or unprintable characters? Do all the required images, source files, and tables exist? I run this before checking in changes; it catches something about one time in five. - And then there are the minor tools:
util/fixentities.py
replaces character entities with character codes (to work around a problem with Expat);util/wiki.py
extracts specially-formatted comments from Makefiles and XSL files, and docstrings from Python, to create wiki documentation pages; andutil/revdtd.py
reverse engineers the actual DTD of either the source files, their filled-in counterparts, or the generated HTML files.
It's a lot of code; it was a lot of work; I'm pleased with how smoothly it all runs; and most of the time I spent building it should probably have gone into upgrading the actual content of the course. But small(ish) tasks are seductive: you can start work at 8:30, confident that you'll have something to show (even if only to yourself) by noon. Editing course notes, well, the payoff is usually a long way away, and may not come at all: people who read through the first, flawed, version of the notes probably aren't going to come back and tell you how much better the second version is.
That last observation is the key ingredient of my cure for procrastination: find some partners. I am always more productive when I'm working with people than I am on my own. Not only does a small team wander down fewer blind alleys than someone working alone, team members can keep each other honest, and give each other feedback and encouragement. They can also appreciate just how big an accomplishment it is to have replaced all the a's and b's in twenty-eight short examples of list manipulation with the names of minerals, beetles, and mathematicians.
It's now ten to eleven, and I've managed to fend off productivity for almost an hour. Should I look on eBay for a WACOM Cintiq tablet that I can afford? It'd make drawing diagrams much more fun. Or maybe I should try Nose: Miles Thibault says it's much friendlier than the unit testing framework in the Python standard library. Hm... A cup of tea will probably help me decide. A cup of tea, and a slice of toast with strawberry jam...
Greg Wilson
TOOLING
Dialogue & Discussion
You can review our commenting policy here.


Popular Areas in valley metro bus service
Light Rail - Valley Metro
Approval of Bus Contract Unifies Bus Service Operations. Valley Metro to directly manage regional operations in Mesa and Tempe .
http://www.valleymetro.org/bus_schedules/bus_routes/BusSchedules.html
Valley Metro | Bus Routes
Click on one of the transit service types above to see a list of routes for that group. Effective January 28, 2013. All information subject to change without notice .
http://routes.valleymetro.org/timetables/723/transit_route
Valley Metro | Trip Planner
Valley Metro provides public transit and public transportation alternatives for the . The distance that you may walk to get to a bus stop or make a transfer is set to .
http://trips.valleymetro.org/pages/full_trip
Valley Metro (Phoenix) - Wikipedia, the free encyclopedia
All of the BOLT buses were repainted into standard Valley Metro colors (they still have a different interior .
http://en.wikipedia.org/wiki/Valley_Metro_(Phoenix)
Valley Metro - Lower Rio Grande Valley Development Council
Valley Metro Bus Valley Metro Transit Center 510 S. Pleasantview Dr. Weslaco, Texas 78596. INFORMATION LINE: 1-800-574-8322. Phone:(956) 969-5761 .
http://www.lrgvdc.org/valleymetro/
Valley Metro
Approval of Bus Contract Unifies Bus Service Operations. Valley Metro to directly manage regional operations in Mesa and Tempe .
http://www.valleymetro.org/
Bus Service Routes
Valley Metro Bus Schedules Effective January 28, 2013 . The policies help to ensure that changes in transit service and fares are implemented in compliance .
http://www.scottsdaleaz.gov/Page3849.aspx


Number 10. Plagiarize someone else’s work
There’s no faster way to get a visit from the Cheetah bot than to google an article, copy it, paste it, and pass it off as your own. I’m not a huge fan of flagging, but even I get tempted to flag morons for this.
Number 9. Circle Jerk your posts
Ok, so you’re a well known author on Steemit. You get a lot of money from posts you make in part because bots follow you because you’re a well known author.
Number 8.  For that reason people really don’t like flagging. If you want to piss off the community find something that’s well written and flag it because you disagree with it.
Number 7. Post obnoxiously
@cryptocash lookin’ at you bud. But you’re not the only example. @r4fken is another steemit classic.  Flag everything in sight.
Flame everyone with rep. This path will crush your baby rep into the negatives. You’ve been eliminated from the steemit history books of any chance of relevance. But don’t stop there. You can create alts, and spam people in other ways. Never give up. Never surrender. You can change steemit one meaningless flag at a time if you’re willing to do it to thousands of people.
Number 6.  Sometimes people like the jokes etc. But ultimately people in this community don’t really like those that are outspoken assholes. The health of the platform is necessary to everyone on here and that largely means teh health of the community. What they don’t want is a bunch of dickheads writing lots of bad things that make this place look bad and folks stop using it as a result which would devalue the steem in their wallet.
Number 5. Blog politics
So, I don’t think people really want your opinions on here. Unless you’re already famous. Then people will support them either for celebrity worship or because your posts will attract attention and upvotes and bots can ride that train at least for some reward. That said, a bunch of the curators and whales don’t really want political views on this place or least won’t support them.
I’m not entirely sure where the attitude comes from. It’s likely some combination of “those conversations tend not ot be healthy and alienate people and thus reduce readership and authorship so it’s bad for the platform.” It’s also likely got some Christian programming of “it’s not polite to talk about those things.” And maybe they are apathetic and don’t see politics as any reason for why the world is not going too well these days. Tough to say, but there are many whales and curation teams that aren’t supportive of political posts.
Number 4. Blog conspiracy theory
Again a lot of the people on the platform think of this a commercial enterprise. While freedom of expression and all that jazz is a good talking point in reality it gets messy. You start telling people that 9/11 was a false flag event and people that believe otherwise are sheep and folks get insulted and want to leave. That’s bad for the platform. So, people with money in this place, even if they might agree with some of the sentiment, have financial interests stacked against it.
I can see that with some pizzagate posts. There are well written and well documented posts about pizzagate on here. A handful of truthers upvote them, but it’s not like you see the whales or curation bots/teams supporting them. A post about the life of an african lemur hurts no one and possibly brings a few nature lovers. A post about how the USG may be run by satanic pedos starts freaking out platform investors. That’s a sure way to scare off whales and make sure your posts don’t hit the trend line.
Number 3. Criticize inflation on the platform
Well, oddly enough, this one worked. For you youngsters that haven’t been around here for a while this platform had a stage in it’s growth where it had inflation set to 100%. Central banks tell you all the time that inflation is a good thing, but inflation is a really good thing for select people. Namely, those who already have a lot of the currency or those who get first crack at the currency before the devaluation really takes hold. In this case if you look at the accounts over at steemwhales.com they had a bunch of currency probably because they were early adopters, employees, or invested but then they ended up with a shit ton of currency because inflation kicked into high gear and people that already had twice as much in a very short time period.
While the value of your account never changed the price of steem plummeted in that time period. If you’re a whale waiting the long game to sell out it didn’t matter because you could see the amount of steem increase.  So, blogging stalled big time. They cancelled the inflation, slowly the price started rising a little as folks meandered back to the platform, but it cemented the whales as having even more rediculous stake in the platform.
At the time it was pretty hotly contested. People’s feelings got hurt. People got called out. People wrote rants on why they were leaving. It’s a bit of a dark ages for steemit. But as far as I can tell, whales don’t like being called out for having huge stakes because inflation hella-launched them there.
Number 2. Criticize distribution on the platform
So, along with “don’t talk about inflation” there is another unspoken rule that’s also touchy. You’re not going to make any friends talking about steem distribution on the platform. Here’s a snapshot from steemwhales.com that shows today’s distribution.
Looks like 90% of the steem is in the hands of 1% of the people.
It’s not quite like that because steemit has it’s own account, which is in turned owned by the original investors, so it’s more like that one big one is in the hands of X number of others on the list.  So, there aren’t that many actual people so it’s hard to calculate a 1% kinda thing when you don’t know the denominator accurately.
And I get it, steemit doesn’t charge a system wide tax so they need a phat account that they can use to pay for stuff and have as a faucet at times and that jazz, but I guess there are other ways to do it. They could upvote their own posts, or post such that money flows back to them when they need it. I think folks would understand that it’s a kind of tax, but one that doesn’t directly pull money from their accounts.
But when you want to attract newbs to the platform you don’t really want them to know until they are 1000 steem in that “Hey, by the way steemit is more efficient than fuedalism or the federal reserve at preserving wealth at the top 1%, but that’s not really our values.”
So, if you want to be popular around here don’t mention that.
Number 1. Criticize Steemit Founders
Ok, the day I lost the most support seems to be the time I compared @ned and @dan to humpty dumpty when the price was crashing and people were fleeing the platform.
https://steemit.com/steem/@aggroed/humpty-dumpty
Also, they did things that could easily be perceived as insider trading to anyone that pays attention to hardforks and where they moved money simultaneously. Those actions were brought up too.
I mean well. I try to hold people accountable. I use jest as a way to make things palitable and funny. But I’m not making any friends by doing it. I made more money on an off topic Sona from League Post then I did on most of the other posts I’ve made in the last couple weeks. 4 people saw it, but it was rewarded, because it’s a safe post and it’s not going to irk anyone. It wasn’t offensive. It didn’t call attention to the dirty secret of this otherwise really amazing place that’s developing a more corporate and risk averse curation and authoring culture.
Conclusion
Don’t be like me. If you want to make money on this thing, and you probably need money, don’t do these things listed above. Your wallet will thank you. Your following will thank you. And maybe, just maybe, on a really rare day, when the whale is tucked into their blankets sipping a hot beverage reading the new section you might just catch an upvote.
Did I miss any other unspoken rules? Starting to think “Don’t be bearish on the price of steem should have made it too.”


|
BTK
0.3dev.0
Open-source library to visualize/process biomechanical data
|
This page will provide you detailed steps to build BTK for Octave under Windows, Linux or MacOS X.
You need to get and install CMake and Octave. For Linux, the package manager of your distribution should contain them.
You have also to download the sources of BTK which are available in the Downloads section of this website. The file to download is named BTK-x.y.z_src.zip, where x.y.z is the release number (e.g. BTK-0.1.9_src.zip). Then, decompress it in a temporary folder easily accessible as you will use it later (for example on the desktop or your download folder).
Because under Windows, Octave is compiled with MinGW, it is important to use the same compiler for wrapping BTK, otherwise it won't be compatible and the compiling will fail. Luckily, Octave embeds MinGW, but the environment (the OS) doesn't know where it is.
You have to set the PATH environment variable to include the minGW compiler.
WARNING: You have to be careful! You need to append the path, not to replace the content of the variable!
For this, right-click on the "Computer" icon, select "Properties", then select the tab "Advanced" and click on the button "Environment Variables". In the system section, scroll to find the variable "PATH", edit it (double click on the value) and APPEND the path of MinGW which is located in OCTAVE_PATH\mingw32\bin
. (don't forget the semicolon before to add the path of MinGW). Click on the button "OK", and apply the modification by clicking on the button "Apply"
These instructions can be summarized as the following: Set the PATH Environment Variable to include the minGW compiler Computer –> Properties –> Advanced ... -> Environment Variables. System section: PATH: append: ; PUT_OCTAVE_PATH_HERE\mingw32\bin
.
Open CMake (cmake-gui) and enter the path containing the source of BTK for the field "Where is the source code" (e.g. C:/Users/jdoe/Download/BTK
). Then for the field "Where to build the binaries", copy/paste the same path than the source code and add a new subfolder's name (e.g. C:/Users/jdoe/Download/BTK/build-octave
).
You can now click on the "Configure" button. CMake should ask you to create the build folder and then ask you to select the generator of project.
Under Linux and MacOS X, select Unix Makefiles and click on the button "Done".
Under Windows, select "MinGW Makefiles" and select the second radio button ("Specify native compilers"). Then click on "Continue" to set the compiler.
You need here to set the path for the C/C++/Fortran compiler. Each of these paths must be exact as CMake test the binaries to be sure they are valid compilers.
Depending of the version of Octave installed, the release number of the compilers change, but they follow the same syntax each time. For example if you have Octave 3.2.4 compiled with GCC 4.4.0 in C:\Octave
, then the subfolder will be 3.2.4_gcc-4.4.0
. These last numbers are also used by MinGW. For each field, click on the "..." button and go to the path of Octave and look for the subfolder mingw32/bin
. Then you will find some programs starting by mingw32-
. For the C compiler, select the program starting by mingw32-gcc-
. For the C++ compiler, select the program starting by mingw32-g++-
. And for the Fortran compiler, select the program starting by mingw32-gfortran-
. In the given example (Octave 3.2.4 compiled with GCC 4.4.0), the binaries to give to CMake are:
C:/Octave/3.2.4_gcc-4.4.0/mingw32/bin/mingw32-gcc-4.4.0-dw2.exe
C:/Octave/3.2.4_gcc-4.4.0/mingw32/bin/mingw32-g++-4.4.0-dw2.exe
C:/Octave/3.2.4_gcc-4.4.0/mingw32/bin/mingw32-gfortran-4.4.0-dw2.exe
You can now click on the "Done" button.
CMake detects the C++ compiler and its available options. At the end, some red lines are displayed. They contains the possible configuration of BTK. For all of these options, you can check the general documentation of BTK. For Octave, the most important is to select the option BTK_WRAP_OCTAVE and be sure that the option CMAKE_BUILD_TYPE is set to Release (and not Debug), otherwise, you have to type it.
Click on the "Configure" button and Octave should be found automatically. If it is not the case, you have to set manually the path into the new variable named OCTAVE_ROOT (in red). The given path must correspond to the root of Octave where you can find the folder bin (for example C:/Octave/3.2.4_gcc-4.4.0
or it could be also C:\Octave\Octave3.4.3_gcc4.5.2\Octave3.4.3_gcc4.5.2
).
By default, BTK is installed in the folder /usr/local/(share|include|lib)
for Linux and MacOS X and under C:\Program files
or C:\Program files (x86)
for Windows. If you prefer to install BTK elsewhere, you have to modifiy the content of the variable CMAKE_INSTALL_PREFIX
You have to click again on the button "Configure" to create the final configuration (no more red lines). Finally, click on the button "Generate" to generate the Makefiles.
From this point, you need to open a terminal (Linux / MacOS X) or a command prompt (Windows).
/Applications/Utilities
.cmd
in the Start–>Run box, then wait for cmd.exe
to show up as an option. Right-click cmd.exe
and choose "run as administrator".Change the directory to select the build directory (where the Makefile is). For example, use the command (cd C:/Users/jdoe/Download/BTK/build-octave
). In most of the OS, you can also drag and drop the build direction to the terminal. Then, you have only to type cd, put a space, and drop the build directory.
Compile the code by typing make
for Unix user (Linux / MacOS X). For Windows user, type mingw32-make
.
After several time, the Octave functions are compiled and ready to be installed!
To install the function as well as the documentation, Unix users have to type sudo make install and give their password. The file will be installed in /usr/local/share/btk-x.y
(where x.y correspond to the major and minor revision of BTK). For the Windows users, you need to type mingw32-make install
That's it!
To add the path of the btk toolbox into Octave, you can launch Octave and type the command addpath('C:\Program Files\BTK\share\btk-0.1\Wrapping\Octave\btk')
. The given path must be the path containing the functions and the documentation.
More specific to Octave and tested only under Windows 7, you can use these commands in Octave when you load it for the first time:
They will update octave_packages database with your installation tree and auto-load most packages (excluding 'ad' and 'windows' which may crash octave when loaded and 'clear all' is executed).
Note: Explanation found in the Octave-help mailing list in the thread how to instal, or upgrade, the latest octave version on windows 7
Finally, you can create and edit the .octaverc file(s), e.g.: C:\Users\Peter\.octaverc, C:\Octave\Octave3.4.3_gcc4.5.2\Octave3.4.3_gcc4.5.2\share\octave\site\m\startup\octaverc
and add inside startup functions - e.g. MATLAB startup script, cd to preferred folder, etc.
Thanks to Peter Gabriel Adamczyk for his help to create this documentation and also Martin Felis for the creation of the patch used to provide the wrapping of BTK in Octave.


Posted by {{mainPost.username}} | {{mainPost.date}}
{{mainPost.shortDescription}}
{{mainPost.longDescription}}


Get Office 2019 for Dummies FREE Today (Worth $30)
by Rob NightingaleIf you’re one of the 1.2 billion Microsoft Office users out there, this ebook (worth $30) is a must-have. And yes, for the next few days only, you can download it free of charge!
Whether you use Word, Excel, PowerPoint, Outlook, or Access, Office 2019 For Dummies will take you through all of the latest features so you can become a true expert at organizing your work and life with Microsoft Office.
Download This Ebook For Free
Inside, you will learn everything including:
- Typing, formatting, and designing documents with Word
- The basics of spreadsheets, formulas, charting, and data analysis with Excel
- Creating, formatting, and showing off a presentation with PowerPoint
- Managing email, contacts, calendars, and tasks with Outlook
- Using databases, querying data, and making reports with Access
- Plus plenty of additional tips to get more out of Office 2019.
Want in? Simply click here to download this free ebook from TradePub. You will have to complete a short form to access the ebook, but it’s well worth it!
This free offer is only available until 26 Nov 2019.
Explore more about: Ebooks, Microsoft Office 2019, Microsoft Office 365, Microsoft Office Tips.


Instructions
Log Into Student Portal
Click on
Student Center
Cliick on
Weekly Schedule
Near Select Display Option, select
List View
If applicable, select term and click
Continue
In this view, you can now gather class data
Get Data
○
✖


Please select what you would like to do with the gym database
Please enter the details for your gym here
Click `Show All Gyms` to see all your gyms, or type below to find a specific gym
Please enter credentials for your gym
Please enter an id for the gym you would like to delete
please select what you would like to do with the equipment database
Please enter the details for your equipment here
Click below to `Show All Equipment` or enter an id to find specific equipment
Enter credentials below to update equipment
Enter id below to delete equipment


Talented Web Application Developer specialized in enterprise level applications with a passion for solving complex problems by devising innovative and original solutions. Well experienced with all stages of the development cycle for dynamic web projects from build to release. Experienced Software Engineer with a demonstrated history of working in the computer software industry. Skilled in .NET Framework, Web Applications, RESTful WebServices, and Object-Oriented Programming (OOP). Strong engineering professional with a Bachelor’s Degree focused in Computer Science and Mathematics.
Built with the latest version of HTML5
Built with the latest version of Bootstrap, Bootstrap 4
Built with the latest version of CSS, CSS3


Properties
| About |
guess what :-) |
| FileSource |
Tarfile that needs to be unpacked. This should be a complete pathname,
including the driveletter. |
| NextFile |
Contains information about the next file to be read in a tar-file. This
property is read-only and contains:
|
| OverwriteMode |
Contains information about what should be done when a file that is going
to be unpacked already exist. Note that on UNIX systems filename are
case-sensitive. There are the following options (TOverwriteMode):
- omRename
- omReplace
- omSkip
|
| OverwriteThisTime |
Same as OverwriteMode, but only influences behavior immediately
after an OnExtractOverwrite event.
|
| OverwriteFilename |
New filename for the file that already existed. Filename must be
including pathname and driveletter. |
| Progress |
Percentage of data that is already processed. |
| ProgressStep |
Value from 0..100. A value of 11 generates an event when 11%, 22%,
33%, ... 99%, 100% of the data is processed. 0 disables this event and
100 only triggers the event when all the data is processed. |
| UnpackPath |
Path where to unpack the tar-file. This should be a complete path,
including the driveletter. If the path does not exist it will be
created. |


SignalR is an open-source .NET library for building real-time web applications
About Signalr
It is used for creating real-time communications in web applications
It allows the server to logically ‘push’ data to the client
SignalR is a powerful, high-level library that abstracts a lot of the underlying complicated technologies in order to provide an easy way to transmit data between the client and the server
SignalR manages the connections automatically and allows data to be sent using either broadcasts or unicasts.


VZ200/300 - Extended Basic "XB2" by Russell Harrison
Contents
General Information
To load Extened Basic, make sure the Extended Basic disk is in the disk drive and type:
BRUN"XB"
The drive will spin for about 15 seconds, a messgae should appear and the READY prompt and cursor will come back.
Extended Basic commands are used in exactly the same way as normal commands. However, lines containing Extended Basic commands should only be typed in after Extended Basic is loade. Extended Basic can be loaded at any time, and will not destroy a Basic program that is already in memory.
Using expressions in GOTO statements, disk commands etc.
Extended Baisc lets you write things as:
GOTO A*10
LOAD N$
This will work for GOTO, GOSUB and IF..THEN..ELSE statements, and all disk commands. In the RUN"<filename>" command, the expression must stat with a double-quote, for example:
RUN"FILE"+STR$(N) is permitted
RUN N$ is not permitted but
RUN""+N$ is PERMITTED.
Similiary, expressions in IF..THEN..ELE statements must start with a number.
Note: Throughout this manual, angle brackets -<and>- have been used to show parts of a statement that should not be typed directly, but replaced with a number, variable, or whatever.
VARIABLES
Double Precision Arithmetic
Extended Basic allows the use of 15 diget "double precision" numbers. Any normal numbers with more than six significant digits will be treated as double-precision. A # symbol after the number can also be used to indicate double-precision. In double precision scientific-notation, a "D" should be used instead of the "E" used to indicate the exponent.
Example
1.513 is single-precision
1.513236578 is double-precision
1.92567-10 is single-precision
1.925674523d-10 is double-precision
35# is double-precision
Double-precision arithmetric will only be used if at least one of the operands is in double precision, for example:
PRINT 1/3
0.333333
PRINT 1#/3
0.333333333333333
Warning: SIN, COS, LOG, and most other functions only have 5-6 digit precision, even with double-precision numbers.
Double-precision variables
Even if an epression is worked out in double-precision, it will be reduced to single-precision if you attempt to store it in a normal variable. To solve this, double-precision variables are also allowed. A double-precision variable is indicated by a # after its name, eg:
A#
DH#
GAINS#
Double precision variable are used in the same way as other variables except they can not be used in FOR statements.
CINT((arg)) / CSNG((arg)) / CDBL((arg))
These functions convert a number to either integer, single precision or double-precision format, respectively, for example:
A=6:b=1
PRINT A/B
0.166667
PRINT CINT(A)/B
0.166666666666667
Remembe that double-precision arithmetic is only used if one operand is already in double-precision, so
PRINT CDBL(A/B)
Will not return the same value as the second example above.
DEFINT<var> / DEFSNG<var> / DEFDBL <var> / DEFSTR <var>
It can become tedious typing in %,$ and # signs for integer, string and double precision variables. The DEFINT, DEFSNG, DEFDBL, and DEFSTR commands let you permantly define certain variables as integer string or whatever. Variables are redefined according to which letter they start with. For instance,
DEFINT I
Will define as integer the variable I, and also any two letter variables starting with I, such as I5, Ia, Ik, etc. More than one letter can be defined in one statement, and ranges of letters can be specified by using a dash to represent to.
For example:
DEFINT I-L defines as integer any variable starting with I,J,K or L.
DEFDBL A,X,Y defines as double precision variables bginning with A,X, or Y.
DEFSTR H Defines as string variables starting with H.
H="HELLO" (the $ sign is no longer needed)
DEFINT, DEFSNG, DEFDBL, DEFSTR are overridden by a symbol such as $ or #. To use the single precision form of a variable that has been defined as something else, an exclamation mark (!) should be used, for example:
DEFINT A
A!=1.5
Basic treats A%, A!, A#, and A$ (for example) as being completely different variables. The variable A (without a type sign) will refer to one of these, depending on the current type set by DEFINT, etc
This means that its value could change, for example:
A=1:A#=1.234
DEFDBL A:PRINT A
1.234
PROGRAMMING & DEBUGGING AIDS
AUTO <starting line number>,<increment>
When typing in a program, line numbers usually go up in steps of 10, 100 etc, and typing in each one wastes time. AUTO is a commmand which prints line numbers automatically, leaving the cursor on the same line for you to type something in. If a line already exists, it will be displayed as well as the line number. Either the line increment or both parameters may be omitted.
The default for both is 10.
Example:
AUTO Begins numbers at 10, increasing by 10
AUTO 100 Begins at 100, increasing by 10
AUTO 90, 20 Begins at 90, increasing by 20s.
DELETE<starting line>-<ending line>
This command deletes a block of lines from a program.
Example:
DELETE 1000-1090 Removes statements between lines 1000 and 1090 (inclusive).
MOVE TO <line number>,<start>-<end>
This command copies a block of lines from one line number range to another. The lines being moved will overwrite any existing lines with the same line nmbers.
Example:
MOVE TO 1000, 60-700
RENUM <starting line number>,<increment>
Often, after modifying a basic program, you are left with a messy arrangement of line numbers which, besides looking bad, makes further modification difficult. RENUM can be used to renumber the program, back to a more orderly arrangement. Line numbers in GOTO, GOSUB etc statements will also be adjusted.
In the same way as with AUTO, one or both parameters may be left out.
For example:
RENUM Results in line nmbers 10,20,30
RENUM 100 Results in line numbers 100,110,120
RENUM 100,40 Results in line numbers 100,140,180
A $ sign within the program can be used to mark line numbers which should not be changed. (important subroutines etc). It should come between the line number and the rest of the line. The $ sign will be ignored while the program is running.
Example:
(before)
1 CLS
5 PRINT "HELLO"
6 GOSUB 1000
10 END
1000$ A=100:S=75:G=2
1005 N$="ABCDEFGHJKLMNOPQRSTUVWXYZ"
1010 PRINT N$;N$;N$;N$
1020 RETURN
(after RENUM)
10 CLS
20 PRINT "HELLO"
30 GOSUB 1000
40 END
1000$ A=100:S=75:G=2
1010 N$="ABCDEFGHJKLMNOPQRSTUVWXYZ"
1020 PRINT N$;N$;N$;N$
1030 RETURN
FIND"<string>"
This command searches thorugh a program unitl it finds a line which contains the string required. This line will then be displayed, and the computer will wait for you to press [SPACE]. It will then do the same for the next occurrence, and so on.
Example:
FIND "IF A=1 THEN"
130 IF A=1 THEN PRINT "YES" (press [SPACE])
410 IF A=1 THEN J=J+1 (press [SPACE])
READY
FIND "<string>",<start line>-<end line>
FIND can be told to search only a particular range of line numbers
Examples:
FIND "BYE",1000-2000 Searches lines 1000 to 2000
FIND "BYE",500- Searches lines from 500 onwards
FIND "BYE",-3000 Searches up to line 3000
TRON and TROFF
To aid debugging, Extended Basic can display a "trace" the line numbers of each statement as they are executed. This feature is turned on and off by the TRON and TROFF commands.
Example:
TRON
READY
RUN
<10><20><30><40><20> ..
READY
The SPEED command (see "Other commands") may be used to slow down the screen output.
COMPRESS
This command removes all spaces and comments (in REM statements) from a program, to save memory and speed up execution. The "stub" of a REM statement is left, in case it is referred to by a GOTO command.
Example:
10 REM RANDOM BEEPS
20 BEEP RAND(255,5,RND(2))
30 GOTO 20
COMPRESS
READY
LIST
10 REM
20 BEEP RAND(255,5,RND(2))
30 GOTO 20
OLD
This command reverses the action of a new statement. It can only be used if a new program has not been loaded or typed in if OLD is typed with a program still in memory, it will be left as it is.
Example:
10 PRINT "VZ EXTENDED BASIC"
20 GOTO 10
NEW
LIST
READY
OLD
READY
LIST
10 PRINT "VZ EXTENDED BASIC"
20 GOTO 10
GRAPHICS
PLOT (<x1>,<y1>) TO (<x2>,<y2>)
This command line draws a line, in MODE(1), between two or more points.
For example:
PLOT (0,0)TO(127,63) Draws a diagonal line across the screen.
PLOT (10,10) TO (10,54) TO (118,54) TO (118,10) TO (10,10) Draws a rectangle
FILL (<x>,<y>)
This command fills enclosed space on the screen, starting from a particular point.
For example:
10 MODE(1)
20 PLOT (0,0) TO (127,0) TO (0,63) TO (0,0)
30 FILL (5,5) : REM FILL IN TRIANGLE
40 GOTO 40
FILL (<x>,<y>) TO <colour1>,<colour2> .
This version of FILL allows you to specify which colours form the border, and which colours to cover over.
Example:
FILL (5,5) TO 3 Only stops at blue lines
FILL (5,5) TO 3,4 Stops at blue or red lines
DRAW <str array>,(<x>,<y>)
This command allows you to define graphic shapes, and display them faster and more easily than with SET. The shape should be held in a one-dimentional string array, with each individual string representing one line on the display. Each character in each string represents on epixel. The characters which may be used, and their meanings are listed below:
1,2,3,4 - colours green, yellow, blue, red
# - current colour set by COLOR command
[SPACE] "transplarent" (leaves the colour of that pixel the same
Example:
100 REM ROCKET
110 DIM S$(8)
120 S#(0)=" #"
130 S#(1)=" ###"
140 S#(2)=" 333"
150 S#(3)=" ###"
160 S#(4)=" ###"
170 S#(5)=" #####"
180 S#(6)=" 33333"
190 S#(7)=" #####"
200 S#(8)=" 44 44"
210 MODE(1)
220 FOR C=2 TO 4
230 COLOR C
240 DRAW S$,(C*10,52)
250 NEXT
260 GOTO 260
ERASE <str array>,(<x>,<y>)
This command is used to remove a shape, drawn by DRAW, from the screen. Whenever DRAW would have plotted a point, ERASE will reset it to the background color.
For examplw, adding this line to the program above will remove the middle rocket:
255 ERASE S$,(30,52)
XDRAW <str array>,(<x>,<y>)
This command is similar to DRAW, except that it does not overwrite the background, but alters its colours so that
Example
100 DIM D$(4)
110 D$(0)=" #"
120 D$(1)=" # #"
130 D$(2)="# #"
140 D$(3)=" # #"
150 D$(4)=" #"
160 MODE(1):COLOR 3
170 FOR I=1 TO 4
180 FOR X=0 TO 120 STEP 6
190 XDRAW D$, (X,0)
200 NEXT:NEXT
210 GOTO 210
CIRCLE (<x>,<y>),<diameter>
This command draws a circle with its center at (<x>,<y>). The program compensates for the VZs rectangular pixels. The diameter should be a number of pixels from top to bottom, not from side to side.
Example:
CIRCLE (63,31),20
BACKGR <color>
This command is used to change the background color of the sceen (in MODE(1)). BACKGR would normally be used immediately after a MODE(1) command, but if a picture already exists, then its shape will be preserved but its colors modified in the same way as with XDRAW.
For example
10 MODE(1)
20 PLOT(10,10) TO (120,60) TO (10,10)
30 FILL (15,30)
40 BACKGR RND(4)
50 FOR I = 0 TO 300:NEXT
60 GOTO 10
SOUND
BEEP <pitch>,<duration>
This command is a more flexible version of Basics SOUND command. <Pitch> and <duration> may be any number between 1 and 255.
Example:
BEEP 255,10 High pitched, short note
BEEP 50,255 Long, fairly low pitch
BEEP <pitch1> TO <pitch2>,<duration>
This version of BEEP command varies the note to give a "sliding effect"
Example
BEEP 100 TO 200,255 "slides" the pitch of the note from 100 to 200
BEEP <Pitch>,<duration>,<volume>
A third parameter may be included in a BEEP statement volume. This may be either 1 or 2 (the default is 2)
Examples
BEEP 40,20,1
BEEP 10 TO 200,255,1
NOISE <intensity>,<duration>,<volume>
This command is used to produce a "rushing" or scraping sound, depending on the intensity. It has the same format as BEEP command.
Example:
NOISE 100,20
NOISE 150,40,1
NOISE 1 TO 250,70
NOISE 1 TO 250,70,1
FORMATTED INPUT
INPUT ! .
Putting an exclamation mark (!) in an INPUT statement will stop the computer from printing the ? propmpt.
For example:
10 INPUT ! "ENTER FILE NAME: ";F$
RUN
ENTER FILE NAME:
INPUT @ <position>;
Extended Basic lets you use the @ command (as in PRINT @) in an INPUT statement.
Example: INPUT @64;"NAME";N$
INPUT USING <characters>;
This command lets you control which characters can be typed in an INPUT statement. These characters may be specified in three ways:
These three formats may be present in the same statement, eg
INPUT USING <IP_ADDRESS>."0 TO 9 )","ABCDFEG"; Note that control codes (backspace, etc this includes [RETURN] are not automatically included. ASCII codes for these are as follows:
Key Code
Backspace 8
Forward space 9
Up-arrow 27
Down arrow 10
Insert 21
Rubout 127
Return 13
This statement will include all of them:
INPUT USING 1 TO 27, 127, .
USING, ! and @ commands may all be included on the same line. Note that they may be in any order, but a prompt must always come at the end line.
Example:
INPUT ! @0; USING 1-31,127,"YN"; "CONTINUE (Y/N) ";Q$
STR INPUT <str variable>
A normal INPUT statement scans through the line typed in and breaks it up according to the commas in it. This allows more than one item per line, but it is annoying in that a comma cannot be treated like other characters. STR INPUT is a version of the INPUT statement which only ever accepts one string, but ignores commas. It can be used with !,@, and USING as well as with a prompt.
Example:
10 STR INPUT "CATEGORIES REQUIRED";C$
GET <string variable>
This command accepts one character from the keyboard. The cursor flashes while the computer is waiting, and the usual key-beep will sound as it is typed. GET can be used with USING, @, etc
Example:
10 GET USING "S"; "HIT <S> TO START";Q$
USER DEFINED FUNCTIONS
Exteneded Basic allows you to create your own functions. (A function is something which when given one or more values, returns an answer SIN, LOG, etc are functions). The name of each function mus begin with FN, followed by a latter and then any number of alphanumeric characters. Only the first two characters are significant.
DEF
The DEF statement is used to define a function. DEF statements must be in program, not typed directly.
Example:
10 DEF FNC(F) = (F+32)*5/9 : REM FARENHEIT TO CELCIUS
20 DEF FNAVM5(A,B,C,D,E)=(A+B+C+D+E)/5
Functions are used just like SIN, COS, etc.
For example:
PRINT FNC(100)
37.7778
The variables used to hold a functions parameters normally do not affect other variables of the same name, if an error occurs while the function is being evaluated, however, the tempory value will be left in each variable.
For example:
F=1.57
PRINT FNC(100)
37.7778
PRINT F
1.57
A function may return a string instead of a number. Parameters may also be integers, strings, or double precision.
Example:
10 DEF FNRJ(T,N$) = RIGHT$(REP$(T<" ")+N$T)
20 PRINT FNRJ(10,"HELLO")
RUN
HELLO READY
External variables can also be used in a function.
For example:
10 PI = 3.1415926536
20 DEF FNAREA(R#)=PI*R#*R#
Finally, a function may have any number of parameters, although it does not necessarily have to have any.
For example:
10 DEF FNMEM = FREE + SFREE
20 DEF FNDIST(X1,Y1,X2,Y2) = SQR((X2-X1)^2+(Y2-Y1)^2)
STRING HANDLING
INSTR (<string1>,<string2>)
This function searches through <string 1> for the first occurrence of <string 2>. If it is found, its position in <string 1> will be output, otherwise zero will be the result.
Example:
PRINT INSTR("HELLO THERE","TH")
7
PRINT INSTR("HELLO THERE","IN")
0
Using MID$ on the left hand side of an equation:
A small part of a string variable can be changed by using a MID$ command, on the left side of an assignment statement. The length of the sub string is determined by the right hand side of the equation, and a third parameter (the length in normal MID$ function) does not need to be included. (If it is it will be ignored)
Example:
MID$(A$,%)="FROG"
MID$(T$,2,3)="QUE"
ERROR TRAPPING
Normally errors in a program generate an error message and stop the program from going further. Extended Basic allows you to write your own error handling subroutines, which does not necessarily have to stop the program.
ON ERR GOTO <line number>
This is the statement which tells the computer where your error handling routine is. To disable that subroutine use ONERR GOTO without a line number. More than one ONERR GOTO may be used if different subroutines must be used for differenet sections.
RESUME
or
RESUME <line number>
or
RESUME NEXT
This statement should be placed at the end of your error handling subroutine to transfer execution back to the main program. RESUME returns to the statement that generated the error; RESUME NEXT goes back to the statement after the error, RESUME <line number> goes back to the line you specify. If a RESUME is not included a "NO RESUME ERROR" will result.
Example
10 ONERR GOTO 1000
20 INPUT "PITCH";P\
30 BEEP P,30 : REM GENERATES AN ERROR IF P>255 OR P<1
40 ONERR GOTO
1000 PRINT "THAT NUMBER IS OUT OF RANGE".
1010 PRINT "PLEASE ENTER ANOTHER ONE"
1020 RESUME 20
ERL and ERR
When an error occurs, the computer stores the line number and the type of error in two variables, ERL and ERR. These can be used in your error subroutine. ERL returns the number of the line with the error in it, while ERR returns a code representing the type of error. These codes are as follows:
CODE Error Message
2 Syntax Error
4 Return without gosub error
6 Out of data error
8 Function code error
10 Overflow error
12 Out of memory error
14 Undef'd statement error
16 Dad subscript error
18 Redim'd array error
20 Division by zero error
22 Illegal direct error
24 Type missmatch error
26 Out of space error
28 String to long error
30 Formula too complex error
32 Can't cont error
34 No resume error
36 Resume without error
38 -
40 Missing operand error
42 Bad file data error
44 Illegal command error
46 File already exists
48 Directory Full
50 Disk write protected
52 File not open
54 Disk I/O error
56 Disk fukk
58 File already open
60 -
62 -
64 Unsupported device
66 File type mismatch
68 File not found
70 Disk buffer full
72 Illegal read
74 Illegal write
DISK COMANDS
UNERA "<type>","<filename>"
This command allows you to bring back accidently errased files. If a file has been overwritten since it was erased, a "FILE
NOT FOUND" message will appear. The file type (T,B, or D) of the file must be included, since this is always removed by the
ERA command.
Examples:
UNERA "T", "PICTURE"
UNERA "D", "CODE"
The names of the files which have been errased can be obtained useing the XDIR % command. (see below)
XDIR
This command does the same as DOS's DIR command, except that files on the disk are listed in three columns, so more will fit on one screen. If more than one screenful exists, the computer will wait for you to press [SPACE] before continuing.
Example XDIR
T:FISH B:ROCKET B:TEST
T:FIRST T:ANlMALS T:SHIP
D:WORDS D:WORDS2 T:PRINT
B:MOUSE
LDIR
This command is similar to XDIR, except that the listing will be printed on the printer, and in seven column is about the'width of an 80 column printer.)
XDIR"<filename" / LDIR"<filename"
These two commands will list particular groups of files, whose names match the file you typed in. Two "wild cards" are permitted.
[SHIFT]-[Z] (black rectangle) this character is revelant
[SHIFT]-[J] (coloured rectangle) the rest of the filename is irrevelent.
Example XDIR "FIREZ"
T:FIRE11 T:FIRE12 T:FIRE13
B:FIRE G
READY
XDIR "FOGJ"
T:FOG T:FOGLIGHT T:FOG6.19
READY
XDIR% / LDIR %
These two commands list to screen or printer, files that have been erased, but whose names still exist. The file types will appear as question marks(?). The files listed will not necessarily UNERAse succesfully, but a file which is not listed will always generate a "FILE NOT FOUND" message if this is attempted.
Example
XDIR%
?:HELLO ?:NEXT ?ABCDE
?:TEMP ?:USELESS
ERALL"<filename"
This command deletes groups of files from a disk. The method of selecting files is the same as with XDIR"<filename>", and this fact can be used to check that the files YOu are about to erase are the ones you think they are.
ERALL "AB<SHIFT>Z". ERASES ALL FILES WHICH BEGIN WITH [AB]
MERGE"<filename>
This command combines two programes, one in memory and one on disk, into a single program, Lines will be automatically be arranged in the right order, and where the same line number exists in both original programs, the line originally held in memory willbe deleted.
LENGTH"<filename>"
This file function returns the length (in bytes) of any Basic or binary file.
Example:
PRINT LENGTH ("picture")
2903
PRINT LENGTH("answers")
152
TYPE$("<filename>")
This function returns the file type of the file<filename>.
For example:
PRINT TYPE$("CIRCUS")
B FILE$(«arg»)
The directory of a disk consists of 120 entries, each of which can contain a file name and the pointers to where it is
stored. FILE$ lets a program access these entries.
The value in brackets should be a number between O and 119 (inclusive) representing one directory entry. If a file name is stored in that cell, it will be returned, padded out to eight characters with spaces. If the entry contains the name of a file which has been deleted, then a string consisting of eight spaces will be returned. FinallY, if no file is stored there (that is, if the cell is past the last entry used), a null string ("") will be the result.
NEWDISK
To speed up access, LENGTH, TYPE$ and DILE$ load eight directory entries at once, and store these so the next seven entries
can be used without disk access. However, this also means a new disk will not necessarily be recognised. To avoid this, a NEWDISK statement should be placed before any use of these three functions, after a possible change of disks.
Note: This is only necessary in programs, not after LENGTH, FILE$, or TYPE$ statements typed directly from the keyboard.
NEWDISK, LENGTH, TYPE$. and FILE$ can be used to create customised directory listings. menues. ect.
For example:
10 PRINT "TYPE; TAB(6); "NAME"; TAB(17);"length":PRINT
20 NEWDISK
30 F=0
40 D$=FILE(F)
50 F=F+1 60 IFD$=22THEN END
70 IF D$" "THEN100
80 PRINT TYPE$(D);TAB(6);D$; TAB(;17);
90 IF TYPE(D$)<>"D"THENPRINT LENGTH(D$) ELSE PRINT "="
100 IF F<120THEN 40
DECIMAL HEXADECIMAL BINARY CONVERSION
&H<hex number>
Hexadecimal numbers of up to four hex digits can be used in Extended Basic by placing &H in front of them.
example:
PRINT &H1A
26
PRINT &H7000+&H15F
29023
Hexadecimal numbers greater than &h7FFF will come out negative so they can be used directly in PEEK statements. ect.
&B<binary number>
Binary numbers of UP to 16 bits can also be used, by using &B instead of &H.
EXAMPLE
PRINT &B10001011
139
HEX$(<arq>)
This function converts numbers into four digit hexadecimal format. If, for example only two digits are required then they can
be extracted using the RIGHT$ function.
Example:
PRINT HEX$(31465)
7AE9
A$=HEX$(F+G)
PRINT RIGHT$(HEX$ (255),2)
FF
BIN$(<arg>)
BIN$ is the same as the HEX$ function, except that it outputs a sixteen digit binary number.
Example:
PRINT BIN$(28674)
0111000000000010
HDEC(<hex string>) / BDEC(<binary string>)
These two functios convert hexadecimal and binary strings to decimal.
Example:
PRINT BDEC("10101010")
170
A$="6800"
PRINT HDEC(A$)
26624
MACHINE LANGUAGE SUPPORT
WPEEK(<address>)
This function is similiar to peek, except that it fetches two bytes of memory at a time, to form one two bit integer.
Example:
PRINT WPEEK(&H7820)
29152
WPOKE<address>,<data>
This command is the equivalent of POKE. except that it handles two bytes at a time.
Example:
WPOKE &H7820, &H7000
CALL <address>
This command is used for calling machine code subroutines from Basic.
Example:
CALL &H3450: REM USE ROM KEY BEEP ROUTINE
DEF USR<name>=<address>
This command can be used to set up several different machine code functions, which can be called at any time. The name of the subroutime may have any number of letters, but only the first two will count. The first character in the name must be a letter, and the other characters should be either alphabetic or numeric.
Example:
DEF USRA = &H1547: REM 'SIN FUNCTION
Functions are called like this:
PRINT USRA(1,2)
0.93203
N=USRA(2)
Standard USR functions can still be used in Extended Basic, but the address pointer in 30862-3 will be changed if an Extended
Basic USR call is used.
VAPTR(<var>)
This function returns the address where a particular variable is stored, for example:
PRINT VARPTR(Y%)
31470
Variables are stored in a variety of ways, depending on their type. Strings are stored as a length byte, followed by a two
byte pointer to the address of the actual string. If the string is the product of a string opperation, it will be stored in the string area near the top of memory. If it is a piece of 'raw' piece of data in a program, the pointer will refer to its location in the program. Strings can be used to hold short, relocatable machine code subroutines, for example:
10 A$="abcdefghi" +"":REM DON'T WANT A MESSY LISTING
20 DEF FNAD=WPEEK(VARPTR(A$)+1)
30 FOR I=0TO8
40 READ H$:P=HDEC(H$)
50 POKE FNAD+I,P
60 NEXT 70 CALL FNAD
80 DATA 21,80,00,01,40,02,C3,5C,34
Warning: Basic may move a string during execution of a program, so it is best to use VARPTR every time you access a string,
or use a FN statement as I have here.
INteger variables are stored in two byte, signed integer format. (lsb-msb order)
Single precision variables are stored in the following formats:
POSITIVE NUMBERS:
BYTE 1....... 2....... 3....... 4.......
bit 0......7 0......7 0......7 0......7
NEGATIVE NUMBERS:
BYTE 1....... 2....... 3....... 4.......
<-lsb---mantissa msb->0 exponent
bit 0......7 0......7 0......7 0......7
<-lsb---mantissa msb->1 exponent
ZERO:
BYTE 1....... 2....... 3....... 4.......
bit 0......7 0......7 0......7 0......7
<----not used------------> 00000000
Note that the exponent is in base two, and has had an offset of 8OH added to it.
Double precision numbers are stored in the same way as single precision numbers, but with 7 bites mantissa instead of three.
OTHER COMMANDS
RANDOMISE
The random nuber generator in your computer will always generate the same sequence of numbers after you switch on the computer. Placing RANDOMISE at the start of a program will ensure that the same sequence of numbers will not occur whenever the program is run.
ON <exp> GOTO <line1>,<line2>,<line3>,<line4>,.....
Many programs include blocks of IF THEN statements like this:
100 IF A=1 THEN 1200
110 IF A=2 THEN 1350
120 IF A=3 THEN 1600
In Extended Basic that can be shortened to a statement like this:
100 ONA GOTO 1200,1350,1600
Any number of line numbers may be included. These will be used with the values 1,2,3,4,5,6,..... If there is no branch for a
number, the ON..GOTO statement will be ignored.
A GOSUB also may be used instead of the GOTO.
Examples:
ON X GOTO 100,200,300,400,500,600
ON F+G+1 GOSUB 90,130,170 ON INSTR("ECPLSVQ",C$) GOTO 1000,2000,3000,4000,5000,6000...
REP$(<number>,<character>)
This function can be used to produce long strings containing one character repeated over and over. The character can either be supplied as a one byte string or an ASCII code.
For example:
PRINT REP$(20,".")
....................
PRINT REP$(10,64)
@@@@@@@@@@
FREE
This function returns the amount of unused memory you have left.
Example:
PRINT FREE
9431
SFREE
This function tells you the amount of string space that is not used.
Example:
A$="HELLO"
PRINT SFREE
45
FIX(<arg>)
This function truncates the fraction part of a number. (INT does much the same thing, except that it always returns the largest integer less than the number, even on negative numbers.)
SPEED<speed>
This command allows you to slow down the rate that items are printed on the screen. The value of <speed> should range from 0
(normal display speed) to 255 (slowest).
Example:
10 SPEED 150: REM SLOW DOWN PRINTING RATE
20 PRINT"O..1..2..3..4..5..6..7"
30 SPEED 0: REM RETURN TO NORMAL
CSCR <character>
This command fills the screen with a particular character.
Examples:
CSCR "<shift>J" turns the screen black
COLOR 4: CSCR "<shift>Z" Turns the screen red
CSCR "A" covers the screen with As
RESTORE <line>
This version of Basic's RESTORE command lets you specify the starting line of a block of data.
For example:
10 DATA 1,5,9,19
20 DATA "HELLO","BYE","SORRY"
30 RESTORE 20
40 READ A$,B$: PRINT A$,B$
RUN
HELLO BYE
READY
CUSTOMISING EXTENDED BASIC
Extended Basic is made up of segments. To save memory, one or more segments may be left out when Extended Basic is loaded.
This is done using the ONLY and NOT statements for example:
BRUN"XB": NOT"DEFINE","SOUND"
BRUN"XB": ONLY"HIRES"
These commands will only work when Extended basic is being loaded. To save space, only the first two characters of each name
need be typed, for example:
BRUN"XB":NOT"HI","HE","DI"
The name length and function of each segmant is listed below.
NAME BYTES USED FUNCTION
Message O Prints opening message on the screen.
TEXT 497 Provides GET, STR, INPUT, INPUT USEING, CSCR
statements.
HIRES 936 Provides PLOT, FILL, DRAW, X DRAW, ERASE.
BACKGR, CIRCLE.
MC 43 Provides CALL, WPOKE, WPEEK.
HELP 1193 Provides MOVE, RENUM, FIND, MERGE, OLD,
COMPRESS.
DEFINE 541 Provides DEF, FN, DEF USR.
CONVERT 193 Provides &H, &B, HEX$, BIN$, HDEC, BDEC.
DISK 1271 Provides XDIR, LDIR, UNERA, ERALL, NEWDISK,
LENGTH. TYPE$, FILE$, and the use of string expressions as filenames
STRING 221 Provides INST, MID$, (on LHS of statement.)
SOUND 237 Provides BEEP, NOISE.
First of all BRUN "wp" and go to the disk directory and load "eb". After printing out "eb" load "eb2" and print that. That will be all the instructions except the index. I have printed the index in basic to be able to control the horizontal tabs. You may have to alter the printer controls to suit your printer. If your printer is EPSON compatiable it should print out OK. The LPRINTS after the horizontal tab settings are necessary on my printer. You may not require them. I have not included a front cover.
Jack Shearsmith.


CARMA Streets is a component of CARMA ecosystem, which enables coordination among different transportation users.
This component provides an interface for Cooperative Driving Automation (CDA) participants to interact with the road and
port infrastructure. CARMA Streets is also an edge-computing unit that improves the efficiency and performance of the
Transportation Systems Management and Operations (TSMO) strategies and Port Drayage Operations.


TalentNow is a talent-first recruitment company.  Not the other way arond. We believe this is also in the best interest of the company you'll be placed at.
All of our recruiters have previously or are still working in the digital sector, either as developers, designers, project managers or product owners. After your application we'll match you with a recruiter with the most similar skillset. Someone who understands your position.
We have a strict no harrasment policy. Once you apply and get trough the vetting process, we will ask you every once in a while about your availability. That's all.
Wilt u meer informatie? Wilt u een afspraak maken voor een vrijblijvend intakegesprek en een cursusadvies? Bel dan naar 0181-470454 of vul het contact formulier in door op de onderstaande knop te drukken.
Neem contact op


Previous | Contents | Index | Next
You have a grid of squares; each square (except the last one) contains an arrow, and some squares also contain numbers. Your job is to connect the squares to form a continuous list of numbers starting at 1 and linked in the direction of the arrows – so the arrow inside the square with the number 1 will point to the square containing the number 2, which will point to the square containing the number 3, etc. Each square can be any distance away from the previous one, as long as it is somewhere in the direction of the arrow.
By convention the first and last numbers are shown; one or more interim numbers may also appear at the beginning.
Credit for this puzzle goes to Janko [17], who call it ‘Pfeilpfad’ (‘arrow path’).
Signpost was contributed to this collection by James Harvey.
[17] http://janko.at/Raetsel/Pfeilpfad/index.htm
On Android, please touch for left click and long press for right click. Also note that where this manual refers to pressing a letter on the keyboard, the Android version has icons at the bottom of the screen instead (Control and Shift are not available). There is also an optional "Night mode" which uses darker colours in low light.
To play Signpost, you connect squares together by dragging from one square to another, indicating that they are adjacent in the sequence. Drag with the left button from a square to its successor, or with the right button from a square to its predecessor.
If you connect together two squares in this way and one of them has a number in it, the appropriate number will appear in the other square. If you connect two non-numbered squares, they will be assigned temporary algebraic labels: on the first occasion, they will be labelled ‘a
’ and ‘a+1
’, and then ‘b
’ and ‘b+1
’, and so on. Connecting more squares on to the ends of such a chain will cause them all to be labelled with the same letter.
When you left-click or right-click in a square, the legal squares to connect it to will be shown.
The arrow in each square starts off black, and goes grey once you connect the square to its successor. Also, each square which needs a predecessor has a small dot in the bottom left corner, which vanishes once you link a square to it. So your aim is always to connect a square with a black arrow to a square with a dot.
To remove any links for a particular square (both incoming and outgoing), left-drag it off the grid. To remove a whole chain, right-drag any square in the chain off the grid.
You can also use the cursor keys to move around the grid squares and lines. Pressing the return key when over a square starts a link operation, and pressing the return key again over a square will finish the link, if allowable. Pressing the space bar over a square will show the other squares pointing to it, and allow you to form a backward link, and pressing the space bar again cancels this.
(All the actions described in section 2.1 are also available.)
These parameters are available from the ‘Custom...’ option on the ‘Type’ menu.
On platforms that support user preferences, the ‘Preferences’ option on the ‘Game’ menu will let you configure the style of the victory effect.


Validate Membership Number
This micro-service facilitates the validation of an Australian Government Service or Military Service Number. It can be consumed to:
- Determine the validity of a service number
- Provide a list of validation errors in the event that a service number is not valid
- Extract the valid components of a service number (prefix, number, pension code, suffix)


Hello! I'm Thomas Tran and I am an aspiring software engineer with an interest in backend development!
I'm from Hayward, California. Born and raised in the Bay Area!
My hobbies include playing badminton, video games, and learning about new emerging technologies.
It would be my dream to create my own start-up after I acquire the necessary skills to venture out by myself.
I'm a senior CS student at SFSU!
I always found an interest in how things have operated internally within systems. Sure, it's nice to make a fancy UI, but I highly emphasize functionality over everything else! I like to see the logic to why things work the way they do.


Welcom to Salmon Cookies
Salmon Cookies
Salmon Cookies Store
Our Salmon Cookies are part of our 'Love' treats range. The ‘Love’ category contains a range of deliciously different treats, that are great for owners who just want to show their dogs they are loved. Interesting, intriguing, different and delicious. These tasty, crunchy biscuits are made with responsibly sourced salmon, whitefish and sweet potato (a delicious and healthy alternative to white potato) They are grain free, contain no artificial preservatives or colourings, are low in calories and are a great alternative to naughty human biscuits.
Our Branches
Check out our branches in the states
6825 216th St Lynnwood, WA
6:00am to 8:00pm
07999999
6825 216th St Lynnwood, WA
6:00am to 8:00pm
07999999
6825 216th St Lynnwood, WA
6:00am to 8:00pm
07999999
6825 216th St Lynnwood, WA
6:00am to 8:00pm
07999999
6825 216th St Lynnwood, WA
6:00am to 8:00pm
07999999
6825 216th St Lynnwood, WA
6:00am to 8:00pm
07999999


Biomonitoring of environmental phenols, parabens, and triclocarban is used to assess prevalence and relevance of exposure in public health. The routes of human exposure to these compounds include industrial pollution, pesticide use, food consumption, and use of personal care products.
Bisphenol A (BPA) is used in the manufacture of polycarbonate plastics and epoxy resins, which can be used in protective coatings on food containers and as composites and sealants in dentistry. Concerns over potential health risks of BPA have led to restrictions on the use of BPA in certain baby and children products (U.S. Food and Drug Administration 2014). BPA alternatives, such as bisphenol S (BPS, 4,4'-sulfonyldiphenol) and bisphenol F (BPF, 4,4′-dihydroxydiphenylmethane), have been introduced in the market to replace BPA (Liao et al. 2012). Some phenols are used as sunscreen agents for skin protection, and as UV filters in cosmetic products and plastics to improve stability (e.g., benzophenone-3). Phenols are also used as bactericides (e.g., triclosan) in soap and are found in other personal care products. Other chlorophenols have been used in the wood preservation industry as intermediates in the production of pesticides, and as disinfectants or fungicides for industrial and indoor home use. The manufacture of certain chlorinated aromatic compounds can also produce chlorophenols as byproducts.
Parabens, a group of alkyl (e.g., methyl, ethyl, propyl, butyl) esters of p-hydroxybenzoic acid, are widely used as antimicrobial preservatives in personal care products, and can also be used in pharmaceuticals, as well as in food and beverage processing.
Triclocarban and triclosan have been used as an antimicrobial agent in consumer and personal care products, as well as in cleansing preparations in hospitals and other medical settings. Their uses for consumer soap, however, have been banned by FDA (the ban went into effect in 2017).
Examined participants aged 3 years and older from a one-third sample were eligible.
A sensitive method for measuring BPA, benzophenone-3, triclosan, four parabens, two dichlorophenols, and triclocarban was developed based on a previously published approach (Zhou et al, 2014). The method uses on-line solid phase extraction coupled to high performance liquid chromatography and tandem mass spectrometry. With the use of isotopically labeled internal standards, the detection limits in 100 μL of urine are 0.1 – 1.7 micrograms per liter (μg/L), sufficient for measuring urinary levels of phenols, parabens, and triclocarban in non-occupationally exposed subjects.
Refer to the Laboratory Method Files section for a detailed description of the laboratory methods used.
There were no changes to the lab method, lab equipment, or lab site for this component in the NHANES 2015-2016 cycle.
Personal Care and Consumer Product (January 2019)
Urine specimens are processed, stored, and shipped to the Division of Laboratory Sciences, National Center for Environmental Health, Centers for Disease Control and Prevention, Atlanta, GA for analysis.
Detailed specimen collection and processing instructions are discussed in the NHANES Laboratory Procedures Manual (LPM). Vials are stored under appropriate frozen (20°C) conditions until they are shipped to National Center for Environmental Health for testing.
The NHANES quality
assurance and quality control (QA/QC) protocols meet the 1988 Clinical
Laboratory Improvement Act mandates. Detailed QA/QC instructions are discussed
in the NHANES LPM.
Mobile Examination Centers (MECs)
Laboratory team performance is monitored using several techniques. NCHS and
contract consultants use a structured competency assessment evaluation during visits to evaluate both the quality of the laboratory
work and the quality-control procedures. Each laboratory staff member is observed
for equipment operation, specimen collection and preparation; testing
procedures and constructive feedback are given to each staff member. Formal
retraining sessions are conducted annually to ensure that required skill levels
were maintained.
Analytical Laboratories
NHANES uses several methods to monitor the quality of the analyses performed by
the contract laboratories. In the MEC, these methods include performing blind
split samples collected on “dry run” sessions. In addition, contract laboratories
randomly perform repeat testing on 2% of all specimens.
NCHS developed and distributed a quality control protocol for all CDC and contract laboratories, which outlined the Westgard rules (Westgard et al,
1981) used when running NHANES specimens. Progress reports containing any
problems encountered during shipping or receipt of specimens, summary
statistics for each control pool, QC graphs, instrument calibration, reagents,
and any special considerations are submitted to NCHS. The reports are reviewed for
trends or shifts in the data. The laboratories are required to explain any
identified areas of concern.
All QC procedures recommended by the manufacturers were followed. Reported
results for all assays meet the Division of Laboratory Sciences’ quality
control and quality assurance performance criteria for accuracy and precision,
similar to the Westgard rules (Caudill et al, 2008).
The data were reviewed. Incomplete data or improbable values were sent to the performing laboratory for confirmation.
Refer to the 2015-2016 Laboratory Data Overview for general information on NHANES laboratory data.
Subsample weights
Urinary environmental phenols, parabens and triclocarban were measured in a full sample of participants ages 3-5 and a one-third subsample of participants 6 years and older. Special sample weights are required to analyze these data properly. Specific sample weights for this subsample are included in this data file and should be used when analyzing these data.
Demographic and
Other Related Variables
The analysis of NHANES laboratory data must be conducted with the key survey
design and basic demographic variables. The NHANES 2015-2016
Demographic Data File contains
demographic data, health indicators, and other related information collected during
household interviews as well as the sample design variables. The recommended
procedure for variance estimation requires use of stratum and PSU variables
(SDMVSTRA and SDMVPSU, respectively) in the demographic data file.
This laboratory data file can be linked to the other NHANES data files using
the unique survey participant identifier (i.e., SEQN).
Starting in the
2015-2016 NHANES cycle, the variable URXUCR (urine creatinine) will not be
reported in this file. URXUCR can be found in the data file titled “Albumin
& Creatinine – Urine”.
Detection Limits
The detection limits were constant for all of the analytes in the data set. Two
variables are provided for each of these analytes. The variable name ending in “LC”
(ex., URDBPHLC) indicates whether the result was below the limit of detection:
the value “0” means that the result was at or above the limit of detection, “1”
indicates that the result was below the limit of detection. For analytes with
analytic results below the lower limit of detection (ex., URDBPHLC=1), an
imputed fill value was placed in the analyte results field. This value is the
lower limit of detection divided by square root of 2 (LLOD/sqrt[2]). The other
variable prefixed URX (ex., URXBPH) provides the analytic result for that
analyte.
The lower limits of detection (LLOD, in ng/mL) for the environmental phenols,
parabens, and triclocarban:
|
Variable Name |
SAS Label |
LLOD |
|
URXBP3 |
Urinary Benzophenone-3 (ng/mL) |
0.4 |
|
URXBPH |
Urinary Bisphenol A (ng/mL) |
0.2 |
|
URXBPF |
Urinary Bisphenol F (ng/mL) |
0.2 |
|
URXBPS |
Urinary Bisphenol S (ng/mL) |
0.1 |
|
URXTLC |
Urinary Triclocarban (ng/mL) |
0.1 |
|
URXTRS |
Urinary Triclosan (ng/mL) |
1.7 |
|
URXBUP |
Butyl paraben (ng/mL) |
0.1 |
|
URXEPB |
Ethyl paraben (ng/mL) |
1.0 |
|
URXMPB |
Methyl paraben (ng/mL) |
1.0 |
|
URXPPB |
Propyl paraben (ng/mL) |
0.1 |
|
URXDCB |
Urinary 2,4-dichlorophenol (ng/mL) |
0.1 |
|
URX14D |
Urinary 2,5-dichlorophenol (ng/mL) |
0.1 |
Please refer to the NHANES Analytic Guidelines and the on-line NHANES Tutorial for further details on the use of sample weights and other analytic issues.
| Code or Value | Value Description | Count | Cumulative | Skip to Item |
|---|---|---|---|---|
| 7005.984297 to<PHONE_NUMBER>9 | Range of Values | 2747 | 2747 | |
| 0 | No Lab Result | 56 | 2803 | |
| . | Missing | 0 | 2803 |
| Code or Value | Value Description | Count | Cumulative | Skip to Item |
|---|---|---|---|---|
| 0.28 to 99886.7 | Range of Values | 2651 | 2651 | |
| . | Missing | 152 | 2803 |
| Code or Value | Value Description | Count | Cumulative | Skip to Item |
|---|---|---|---|---|
| 0 | At or above the detection limit | 2532 | 2532 | |
| 1 | Below lower detection limit | 119 | 2651 | |
| . | Missing | 152 | 2803 |
| Code or Value | Value Description | Count | Cumulative | Skip to Item |
|---|---|---|---|---|
| 0.14 to 425.5 | Range of Values | 2651 | 2651 | |
| . | Missing | 152 | 2803 |
| Code or Value | Value Description | Count | Cumulative | Skip to Item |
|---|---|---|---|---|
| 0 | At or above the detection limit | 2513 | 2513 | |
| 1 | Below lower detection limit | 138 | 2651 | |
| . | Missing | 152 | 2803 |
| Code or Value | Value Description | Count | Cumulative | Skip to Item |
|---|---|---|---|---|
| 0.14 to 241.1 | Range of Values | 2651 | 2651 | |
| . | Missing | 152 | 2803 |
| Code or Value | Value Description | Count | Cumulative | Skip to Item |
|---|---|---|---|---|
| 0 | At or above the detection limit | 1162 | 1162 | |
| 1 | Below lower detection limit | 1489 | 2651 | |
| . | Missing | 152 | 2803 |
| Code or Value | Value Description | Count | Cumulative | Skip to Item |
|---|---|---|---|---|
| 0.07 to 177.6 | Range of Values | 2651 | 2651 | |
| . | Missing | 152 | 2803 |
| Code or Value | Value Description | Count | Cumulative | Skip to Item |
|---|---|---|---|---|
| 0 | At or above the detection limit | 2392 | 2392 | |
| 1 | Below lower detection limit | 259 | 2651 | |
| . | Missing | 152 | 2803 |
| Code or Value | Value Description | Count | Cumulative | Skip to Item |
|---|---|---|---|---|
| 0.07 to 778.4 | Range of Values | 2651 | 2651 | |
| . | Missing | 152 | 2803 |
| Code or Value | Value Description | Count | Cumulative | Skip to Item |
|---|---|---|---|---|
| 0 | At or above the detection limit | 902 | 902 | |
| 1 | Below lower detection limit | 1749 | 2651 | |
| . | Missing | 152 | 2803 |
| Code or Value | Value Description | Count | Cumulative | Skip to Item |
|---|---|---|---|---|
| 1.2 to 3629.1 | Range of Values | 2651 | 2651 | |
| . | Missing | 152 | 2803 |
| Code or Value | Value Description | Count | Cumulative | Skip to Item |
|---|---|---|---|---|
| 0 | At or above the detection limit | 1739 | 1739 | |
| 1 | Below lower detection limit | 912 | 2651 | |
| . | Missing | 152 | 2803 |
| Code or Value | Value Description | Count | Cumulative | Skip to Item |
|---|---|---|---|---|
| 0.07 to 287.6 | Range of Values | 2651 | 2651 | |
| . | Missing | 152 | 2803 |
| Code or Value | Value Description | Count | Cumulative | Skip to Item |
|---|---|---|---|---|
| 0 | At or above the detection limit | 644 | 644 | |
| 1 | Below lower detection limit | 2007 | 2651 | |
| . | Missing | 152 | 2803 |
| Code or Value | Value Description | Count | Cumulative | Skip to Item |
|---|---|---|---|---|
| 0.71 to 1971.1 | Range of Values | 2651 | 2651 | |
| . | Missing | 152 | 2803 |
| Code or Value | Value Description | Count | Cumulative | Skip to Item |
|---|---|---|---|---|
| 0 | At or above the detection limit | 1186 | 1186 | |
| 1 | Below lower detection limit | 1465 | 2651 | |
| . | Missing | 152 | 2803 |
| Code or Value | Value Description | Count | Cumulative | Skip to Item |
|---|---|---|---|---|
| 0.71 to 24888.4 | Range of Values | 2651 | 2651 | |
| . | Missing | 152 | 2803 |
| Code or Value | Value Description | Count | Cumulative | Skip to Item |
|---|---|---|---|---|
| 0 | At or above the detection limit | 2595 | 2595 | |
| 1 | Below lower detection limit | 56 | 2651 | |
| . | Missing | 152 | 2803 |
| Code or Value | Value Description | Count | Cumulative | Skip to Item |
|---|---|---|---|---|
| 0.07 to 6399.6 | Range of Values | 2651 | 2651 | |
| . | Missing | 152 | 2803 |
| Code or Value | Value Description | Count | Cumulative | Skip to Item |
|---|---|---|---|---|
| 0 | At or above the detection limit | 2608 | 2608 | |
| 1 | Below lower detection limit | 43 | 2651 | |
| . | Missing | 152 | 2803 |
| Code or Value | Value Description | Count | Cumulative | Skip to Item |
|---|---|---|---|---|
| 0.07 to 41600 | Range of Values | 2651 | 2651 | |
| . | Missing | 152 | 2803 |
| Code or Value | Value Description | Count | Cumulative | Skip to Item |
|---|---|---|---|---|
| 0 | At or above the detection limit | 2578 | 2578 | |
| 1 | Below lower detection limit | 73 | 2651 | |
| . | Missing | 152 | 2803 |
| Code or Value | Value Description | Count | Cumulative | Skip to Item |
|---|---|---|---|---|
| 0.07 to 1260.6 | Range of Values | 2651 | 2651 | |
| . | Missing | 152 | 2803 |
| Code or Value | Value Description | Count | Cumulative | Skip to Item |
|---|---|---|---|---|
| 0 | At or above the detection limit | 2439 | 2439 | |
| 1 | Below lower detection limit | 212 | 2651 | |
| . | Missing | 152 | 2803 |