| About Dailyrotten |
|
Feedback
If you like this page, hate it, or would like to suggest changes,
<EMAIL_ADDRESS>is listening. This page
is experimental and somewhat different from what we usually offer, so please
do send your feedback.
Adding Stories
If you are a rotten newshound and you would like to suggest a story,
visit our submit page to
send us the URL. Stories that are accepted will have your name credited.
Viewership
On the first full day this page went live, 100,000 people visited this Rotten
News page. Of course that was the day after the WTC attacks, so that number is
somewhat distorted. Right now this page gets between 50,000 and 75,000 people
every day.
Linking
We encourage everyone to link to this page; if you like it, others probably
will as well.
Other Rotten
Rotten
Gaping Maw
Celebrity Morgue
Mugshots
Rotten Store
Shockumentary
Rate My Poo
Rate My Kitten
Rate My Finger
Penny Postcards
Phallic
Dr. Sputnik
Boners
Dead Pool
NNDB
Home
Make Dailyrotten your start page
|
|
|
May 17, 2003
World's richest man skips out on coffee bill
AZ Central | Submitted by: Tim Howard
"Microsoft Corp. co-founder Bill Gates came to Watertown to talk to librarians about computers that the Bill and Melinda Gates Foundation had donated. NBC News anchor Tom Brokaw also was in town and interviewed Gates at the Past Times Cafe, where they both ordered a cappuccino. But when the interview was over, they left and no one paid the bill. 'They just got right out the door, the security people ushered them right out,' said Jackie Harrington, the waitress who prepared and served the coffee." So what's the problem? The Past Times Cafe is probably owned by a huge corporation. One little act of theft isn't going to hurt their profit margin one iota. They should just do what Microsoft does: chalk it up to the cost of doing business and not make a big deal out of it.
|
|
Read article... and
This article...
|
|
National Security Agency seeking FOIA exemption
Detroit News | Submitted by: Reid Fleming
"Legislation headed for the Senate floor would let the global eavesdropping agency automatically turn down requests by citizens for files on how the NSA collects intelligence. ... 'The danger is the NSA is reverting to the old Soviet Union here, where everything is per se secret and you don't have any means to get around it,' said James Bamford, who used the Freedom of Information Act to obtain thousands of NSA documents to write two books on the agency. 'Besides the score on the local golf course there, they can say pretty much anything is operational because everything has to do with NSA's operations.'"
|
|
Read article...
|
|
Tortilla frisbees hurtful to minorities
AZ Central | Submitted by: Tim Howard
"University of Arizona President Peter Likins has issued a stern warning to graduating students: the tortilla-tossing tradition must stop. He has threatened to cancel university-wide graduation ceremonies if members of the graduating class don't stop flinging the floury staple. Likins said the tradition is an affront to some ethnic groups. 'This behavior is disrespectful to many of our Hispanic and American Indian community members, who feel that throwing tortillas is offensive to their cultures.'"
|
|
Read article...
|
|
Groom's genitals smashed by stripper antics
Sun | Submitted by: Tim Howard
"A groom claims he was unable to bonk his bride after stag-night strippers pinned him on his back and leapt on to his groin from six feet up a pole. Justin Scheidt begged the naked pole-dance trio to stop as they took turns to free-fall on to him, he claimed in court papers yesterday. But the girls refused -- leaving him 'seriously' injured and unable to consummate his marriage on either his wedding night or his honeymoon, he alleges."
|
|
Read article... and
This article...
|
|
NYPD raids wrong apartment, woman dies
Newsday | Submitted by: UncleGum
"A bungled tip about a drug dealer's cache led police to kick down the door and toss a stun grenade into the apartment of a woman with a heart condition; she died of a heart attack within an hour, police said. 'This is a tragedy. This should not have happened. No doubt about that,' said Police Commissioner Raymond Kelly." What happened to surveillance, huh? You know, maybe a stakeout now and then? Corroborate the anonymous tip before you go throwing grenades into people's homes?
|
|
Read article... and
This article...
|
|
Morals charge against Tatu manager
Sun | Submitted by: Crazy Quagga
Russian police have arrested the manager behind the high-concept pop music curiosity known as "t.A.T.u." Ivan Shapovalov has been charged with corrupting the morals of girls as young as seven, when he paid them to appear in the "lesbian" duo's new music video. Said the cops: "We wanted to stop him exploiting these young children. We didnít know what he was going to do with them." Evidently, the video was for the Eurovision contest. As if you needed more proof that the guy behind this outrageous band's carefully-contrived image is nothing but Russia's answer to Malcolm McLaren.
|
|
Read article...
|
|
Punk rock leads to Mann Act violations
Sacramento Bee | Submitted by: Tim Howard
"Tanya Hadden, the former high school teacher accused of having sex with and kidnapping a 15-year-old student and taking him to Las Vegas, pleaded guilty to all counts against her. ... Hadden, 34, pleaded guilty to two felony counts of lewd acts with a child, four felony counts of unlawful sexual intercourse, two misdemeanor counts of contributing to the delinquency of a minor, and a misdemeanor count of child-stealing. ... The former Cajon High School science teacher said her relationship with the student grew from their mutual love of punk rock."  She was then forced to stand in a corner for more than an hour. Her mother's boyfriend is accused of inflicting the abuse because she hadn't flushed the toilet. ... A criminal complaint says he yelled at the girl, pulled her hair, then used the toilet while she was in the bathroom Monday night. It says Welda shoved her head into the toilet bowl. The complaint says the girl's hair was soiled with dirty toilet paper and excrement."
|
|
Read article...
|
|
Neighbor's cat becomes part of gator experiment
WKMG-TV 6 Orlando | Submitted by: Tim Howard
"A teenager in Cape Coral said he fed a neighbor's pet cat to an alligator just to see what the gator would do, police said. ... Police said the boy acknowledged he kicked the cat -- named 'Homeboy' -- in the stomach and head Thursday, then threw it into the canal to feed the alligator. The cat's owners said the boy led them to the canal, where they saw the dead cat still in the gator's mouth."
|
|
Read article...
|
|
Los Angeles doing its part to end slavery
Sacramento Bee | Submitted by: Tim Howard
"The City Council voted 10-0 Friday to draft a law requiring every company doing business with the city to report whether it earned profits from slavery. ... The city law would require a company doing business with the city to sign an affidavit stating whether it or its predecessors ever profited from slavery. Companies also would have to disclose any records they found of such profits."
 Didn't signal before you made that lane change? Not going fast enough? Someone thinks you're ugly? You're the wrong ethnicity? Got an IMPEACH BUSH sticker on your bumper? With a license-plate number, perhaps a bit of colorful elaboration and no proof or witnesses whatsoever, it's shockingly simple for someone to commit what's essentially a sort of bureaucratic road rage -- vengeance via inconvenience."
|
|
Read article...
|
|
Convicted felons still practicing medicine
wreg.com | Submitted by: Reid Fleming
"We found plenty of repeat offenders with crimes ranging from negligence to others who traded drugs for sex. Then there's the case of Dr. Visulingham Vilvarajah. ... He shot his wife and mother-in-law in their Germantown home.†When asked if he shot his wife, he replied†'Yes sir. Definitely yeah. I was angry. If†I had a normal brain,†I wouldn't have done it.' ... Vilvarajah says what happened in the past doesn't affect his work as a doctor now.†'Because†I am a talented person... well-qualified person. I didn't do any crime related to patients. I didn't molest a patient. I am very nice to patients.'"
|
|
Read article...
|
|
Man chews off fingertips to hide identity
Wire Services | Submitted by: FaceInTheSea
When Olugbemia Olusajo was apprehended last year for identity theft, he decided not to make things too easy for the cops. So he pulled a move worthy of McGuyver: "Shortly after he was arrested, prosecutors said Olusajo tried to conceal his identity by soaking his fingers in a jail toilet, then chewing away the softened skin. He was unsuccessful, according to prosecutors." Good effort.
|
|
Read article...
|
|
Australian government holding down delete key
Sydney Morning Herald | Submitted by: f00f
"The comments, made in an internet newsgroup in July 2000 and now archived on computers at the Australian National University, suggested the department's computers contained links to child pornography.
The South Eastern Sydney Area Health Service, which discovered the comments in October 2002, rejects the allegations as untrue and is fighting to have the comments wiped from the computer archives.
[...]
The final unwanted outcome for the service is that in trying to remove the archived comments, it may have just reopened the debate and elevated it to an even higher relevance ranking on Google."
|
|
Read article...
|
|
Busted Colombian boat people give rap performance
Reuters | Submitted by: Elizabeth
"Five Colombian stowaways emerged jubilantly from a ship they thought had docked in Miami only to discover they were still in their homeland after five days at sea." After their arrest, the quintet actually broke into song. "Police said the stowaways performed an impromptu rap dramatizing their tragi-comic story." That's what it says.
|
|
Read article...
|
|
Wife chained up in backyard
UPI | Submitted by: kkkreative
"A San Antonio man who allegedly padlocked his wife to a 30-foot dog chain in the backyard was in jail himself Friday. One end of the chain was padlocked to 45-year-old Patricia Thomason's neck, and the other end was attached to a car where her husband Jerry Thomason, 41, was sleeping when police arrested him Thursday at their home. Firefighters used bolt cutters to remove the chain that was wrapped around the woman's neck and padlocked." Well, what are you supposed to do when your wife wants a divorce?
|
|
Read article...
|
|
Implantable GPS unit under development
New Scientist | Submitted by: Tobermory
"The disc-shaped 'personal location device' (designed to be implanted inside a person) measures 6.35 centimetres in diameter and 1.27 centimetres in depth -- roughly the same size as a pacemaker... Eventually the device will need to connect to a cell phone network if it is to relay the satellite-determined position of its host to another person..." Looks like it's a pipe dream at this point, but who knows?
|
|
Read article...
|
|
Why the Chinese will never stop SARS
CNN | Submitted by: optional
"Popular wisdom in China holds that burping, breaking wind and coughing out phlegm is good for your health. But spitting, according to Liu Junzhuo, a professor of public health at Peking University, spreads diseases such as SARS, which has infected 5,000 people in China, and tuberculosis, another killer with about five million sufferers in China."
|
|
Read article...
|
|
|
|
|


GET https://api.deconstructed.io/stat
Submit a get against this API end point to receive a system status. At this time it just reports ‘alive’. Eventually the intent is to have it report back the status of the nodes within the distributed system that is api.deconstructed.io, that will provide a status page of the entire Deconstructed ecosystem.
To determine system status, issue a get request like this:
curl https://api.deconstructed.io


A general purpose computer consists of a Central Processing Unit (CPU), Memory Units, and Input/Output ports.
Memory is anything that stores (or remembers) a state. With electronics, it could be a disk filled with microscopic magnets (a hard disk), or a lattice of wires with fuses (PROM), or an array of floating gate transistors (a solid state drive), or a bank of logical circuits (RAM), or anything else that can both store a state, and output a signal based on that state.
When input and output devices, like your keyboard, mouse, and monitor, are plugged in, their memory is assimilated into the computer's memory, which allows the computer to freely modify the memory of those devices, and/or respond to electrical signals from them. By modifying specific bytes in your monitor's memory, it can change the color of pixels. By reading the registers of your keyboard, it can see what keys you pressed, and modify its own memory based on your inputs.
The CPU is a convoluted web of logic gates whose purpose is to process specific electrical signals, and use them to modify its own internal state, and also produce output signals. Within the CPU, there are very small memory units (registers). Because they are so small and close to the CPU, they can be modified at incredible speed, and most instructions do nothing but modify those registers.
So how does the CPU modify memory? The output signals of the CPU are connected to the inputs of other devices. RAM (Random Access Memory) is a type of memory unit that has three inputs (an address
, a value
, and a write bit
) and one output (a value
). Within the RAM, there are millions of tiny 8-bit registers, each containing one byte. There are also millions of multiplexers used to select exactly one of those bytes based on the address
input. The RAM always outputs the value of the byte at the inputted address
. If the write bit
is on, then it will overwrite that byte with the value
input. The CPU uses those inputs and outputs to read from/write to the RAM.
The moment a computer is powered on, the CPU receives an instruction from address 0 of the Instruction Memory (which is often read-only memory, or ROM). ROM is very much like RAM, except that it only has one input (an address
) and one output (a value
). The instruction causes the CPU to modify its own registers and outputs. It could add one register to another, or subtract, multiply, or bitshift. It could move one register to another, it could use logical operations on registers, it could store its registers in RAM, or it could load values from RAM into its registers. In some cases, it could produce a pseudo-random number, or even encrypt data. The possibilities are limited only by the types of instructions that were hard-wired into the CPU. The instruction itself is made up of electrical signals, many of which flip tiny logical switches, and others which get stored in registers.
There is one special register in the CPU called the "program counter". This register can be modified, and is continuously fed back into the ROM to determine which instruction to receive next.
A computation is any process that can be described by a set of unambiguous instructions. In 1936, Alan Turing proved that the set of all things computable can be reduced to the capabilities of a very simple machine, a Turing Machine. No deterministic mechanism can ever surpass the theoretical capabilities of a Turing machine, and conversely, anything that can emulate a Turing machine can perform any computation, given infinite time and memory.
Built into computer chips is a small set of instructions, from which it is possible to execute any computer algorithm. Assembly Languages are the sets of instructions hard-wired into general purpose computer chips. Assembly languages are Turing Complete, meaning they can emulate a Turing machine, and thus can perform any computation using some combination of instructions. Every program run on your computer is first translated into a list of assembly language instructions, then executed. With special programs called debuggers, you can read each program instruction, one at a time, deduce how everything works, and even modify it as you see fit.


Not Found
There was an error processing your request.
Here are a few links you may find useful:
Go back to the
previous page
.
Go back to our
welcome screen
.


| by Terry Schussler
Background
Welcome. This is the first in a series of one-on-one interviews
with the programmers who have brought you innovative products at
Macromedia. In this first interview, we talk to John Henry Michael
Thompson who is known by his friends as "JT." JT is a
34-year old programmer at Macromedia who has worked on many Macromedia
products, most particularly Macromedia Director. In fact, most of the
Lingo language was invented and developed by JT.
Today he tele-commutes from Philadelphia, PA, where he lives with
his wife and two sons. JT noted to me in the interview that his four
year old son Pharoah was born when Director 2.0 shipped, and his two
year old son Nile was born when Action! 1.0 shipped. JT is expecting a
third child in August, so we should safely assume that Director for
Windows will ship by then!
In college at MIT, the kids built their own networks, and everyone
had to use a short name to log in. JT was what I used and it sort of
stuck.
Academically, Iíve been involved with computers since high school
- the Bronx High School of Science in Bronx, NY. I concentrated in
mainly math, but Iíve always had a strong visual sense. I was either
going to go to the Bronx Science or Music and Art which is the main
art school there. I went on from there to MIT where I focused on
computer languages, mainly LISP and interpretive languages - I was
very interested in that - but I always had a strong need at that point
to reconnect with the visual world - the aesthetic world. So, after
about two years at MIT I took some time off and went back to New York
and study just straight drawing and painting for a while. And then I
went back to MIT and got refocused on integrating those two worlds,
the engineering and the art side, so I focused on visual arts.
Once I started doing it, I found that there was a wealth of
information and services at MIT to help in that direction so I got
connected with the Visible Languages Workshop (VLW). This was a small
group off to the side of MIT which was doing color prepress stuff,
this was back in 1981-82, this was before even the B&W Mac.
(laughs)
Theyíre now integrated into the Media Lab. Their focus was really
in line with what I was trying to do at that point which was to
develop tools that brings the computer power to the designer. They
were doing stuff that was pretty much on unique platforms, there was
only a few one-of-a-kind full color frame buffers back then. They were
running the same operating system as what ArcMac was running, which
was a predecessor to what the Media Lab uses today. It was a custom
built Unix-like workstation which you couldnít find anywhere else in
the world. It was a really unique environment but their focus was
pretty much exactly where the Macintosh is today - making tools for
the designer, bypassing all the intermediate levels of programmers and
bringing all that horsepower as something useful, making the machine
more fluid.
I focused there initially on 3D stuff - there was a set of 3D tools
already at ArcMac which was really hard to use so I started doing a
WYSIWYG interface for them. It was one of my undergraduate projects
there.
My undergraduate thesis was in another information system type
thing, [(1983-84) - Newspeak or Nexis], which was basically the kind
of thing that you see coming up now where you have an agent going off
and collecting information from the online services and creating a
personalized newspaper for you. I wrote a visual map that showed the
interconnections of various places that you went to in your visual
database - your personal newspaper. It would actually go off and get
the articles and format it - really like a paper - so it wasnít
screens full of text. It was color coded according to interest and
laid out spatially according to how much interest you had. Interest
articles got more space. The main feature was that it was dynamically
laided out and as easy to read as your regular paper.
My main work though, pretty much underground, was taking advantage
of the vlw and the film/video section there too that did personal
documentary. Their focus was not doing major motion picture but very
intimate documentaries - they tried to take the portable
cinematography technology, 16mm, 8mm, and make it very accessible -
and taught it from that perspective.
From that, my main personal work there was between those two
departments and after I had the 3D stuff running on the VLW computer I
got into realtime. I kind of hit the wall - you can spend all this
time - processing time - constructing animation - it wasnít really
satisfying. So I thought of using the realtime image processing
capabilities of the frame buffer to do some music video type stuff. We
set up a link between the VLW computer and the high-end 1 inch
broadcast quality video equipment that the film/video section had. It
was basically modifying the frame buffer to output NSTC and creating a
controller for the 1 inch video equipment. Basically building stuff by
hand that now you can buy. It was fun, I did some animation and some
music videos. We integrated this with live performances and 3D. I
built some robots that would fly around to the music and break apart -
stuff like that.
After graduation, I hung around MIT for a while and then decided to
move to San Francisco because it was warmer. I got a job working at
Lucas Film working in DroidWorks project. This meshed my goals at the
time which was to learn more about the image making industry - film,
video - and from the industry point of view but without getting tied
up into it too much. I did work there mainly on the EditDroid system
which was a nonlinear video disc based editing system which they were
trying to productize.
It was a great experience for me because I got a beeline right into
all the high end video post productions places. They showed me how
they cut their films and how the while thing worked - and got a look
at another startup.
In parallel with all of this, I got to see the Mac from day one. We
saw the Mac, a small group of entrepreneurs I was working with, and we
said Ďyeah this is the machine, letís clone it!í
We
were very proud to be one of the first to clone MacPaint for the
8086-based PC - it was a product called TelePaint. It was integrated
graphic telecommunications product.
Yes, but Iím more proud that we faithfully cloned MacPaint. We
had undoís and flips and lassos - all that kind of stuff. We were
way ahead of the time - we had to pretty much build the windowing
system. I wrote all the graphic libraries for that and the image
encryption code.
Even though I was doing all of that workstation stuff, I still
wanted to do stuff on the Mac from that day one - I was just waiting
for the right opportunity. With the Mac I saw the merger of the
highend stuff that was happening at ArcMac and the VLW in terms of
ease of use and the graphic user interface with something that could
happen on the desktop without all that highend custom hardware. When
Lucas Film shut down the DroidWorks, I took my severance pay and
bought a Mac Plus.
I started coding on it, playing around and getting used to Think C
and thought Ďthis is what I want to do.í Through a friend and some
associates at DroidWorks I met Marc Canter. Then I started working on
the original Accelerator which was a predecessor to QuickTime - the
same concept - digital video stuff optimized to make playback of
Director movies faster.
No, I didnít. [Marc Canter] showed it to me. Actually it was very
similar to the direction that we had been headed in the development of
the realtime processing stuff. Rather than look at stuff and build
tools which were based on the 3D metaphor where you go off, render,
then comeback and look at your effect, I was starting to do stuff
based on the limitations on what you can do in real time on the
machine. It was nice to see a tool which was like that - it was all
WYSIWYG.
Iíve always worked with small groups of entrepreneurs in that
kind of area - so [working on Accelerator] was right in line with what
I wanted to do. So we just hit it off, and kept on working together.
It was a small group then so we just worked on what needed to be done.
First Accelerator, then Color Accelerator, then integrating
Accelerator into Director...
Well, we never shipping it, but yes the first version just worked
in black and white. I started working on it when there was no Mac II
yet. I had to wait until I could physically get a Mac
II...(laughs)...so the first Mac II I got was used to build the color
Accelerator.
In the early part I was contracted to do the Accelerator. The Paint
program was the next project I got assigned. It evolved from code in
CheapPaint and GraphicsWorks - which were part of the Macromind
Utilities Disks that were sold as a product.
No, it was for Director 1.0. Actually what happened there was
first, there was VideoWorks and then in the transition from Chicago to
SF and getting their first injection of venture capital, instead of
releasing VideoWorks Professional they released Director 1.0 - which
had no interactivity. VideoWorks Interactive was still in this
never-ending beta where they just gave out to a few people for about
$500 and about two pages of documentation (laughs.)
During that transition from Chicago, I also started ripping out the
language and replacing it with a more sophisticated, more HyperTalk-like
language and replacing it for VideoWorks Interactive.
The original language was modelled after Basic . You had single
character variable names, a very limited vocabulary, no structure in
terms of handlers, no real string handling.
It was internal but it was sold one-on-one to other people. Apple
used it for all of their guided tours... - there were maybe a couple
of hundred people who were licensed the language - mainly people in
doing simulations or in education.
Right. I didnít work on it until after that. The original
language was done by Jay Fenton. I started re-writing the language to
make it more HyperTalk-like and putting in XObjects. That was pretty
the main part of Director 2.0.
First they were going to ship a version of Director that was going
to be called Director Interactive Toolkit, or something wacky, which
was going to include the language and the XObject stuff but about a
month before it shipped they changed their minds and decided that was
a bad idea and decided to roll it into one product. That became
Director 2.0. That really didnít get any planning until the very end
when the manuals needed to get put together. It was just me, Dan [Sadowski]
and Al [McNeil.] At that point the company was so small it could only
focus on one product at a time.
Yeah, the only other authoring system at that time was HyperCard.
Its benefits were its ease of use and its openness. The only way to to
really address it was to make the language as easy to use as HyperTalk
- hopefully borrow some of the ideas from it and also borrow some
ideas from other object oriented languages. At that point I was
researching object orientness in general - SmallTalk, Objective C -
and I had background in LISP in terms of the kind of things that you
can do interpretively, encapsulate data, recursion, that kind of
stuff. So those ideas got synthesized into Lingo and XObjects. The
notion of factories is borrowed from Objective C. The semantics of the
interpretive language is borrowed from SmallTalk and LISP.
Itís interesting, right after [Director 2.0] shipped, the company
began believing that it was at the end of its life cycle so they
started work on Action! I think that Director has survived because it
offers a more dynamic metaphor than the stacks concept of HyperCard.
Yes, the Lingo changes in Director 4.0 were somewhat driven by the
introduction of AppleScript. Another example of this is the birth and
ancestor command.
I think in the future we will put the Score under Lingo control.
This would allow users to create object-oriented templates which would
simplify production development.
I think ScriptX is a catch-up which deals with the substrate of
multimedia authoring. These tools are pointing in the same directions
- it comes down to performance and delivery - the issue of code
migration. Itís like C - thereís hundreds of C compilers but
itís their performance and availability that distringuishes them.
Itís the implementation of the language not the definition that
makes the difference.
I would like to see it easy to switch back and forth between
multiple visual metaphors and the underlying procedural code
environment. Thereís a need to provide a sense of flow between them.
If there were a continuum of levels, the one you would use would
depend on your level of commitment and level of expertise. No one view
is appropriate for all tasks.
I think that there will always be a need to get "under the
hood" - every view will have compromise, there will be a need to
get closer to the machine. More people will get familiar with using
the tools to get their ideas implemented. They will then need to get
underneath the metaphor presented by the tool. The demand for
procedural programming skills will be very high. In fact the ability
to work iteratively is a great strength of Director because the
metaphor is very accessible.
Every line of code was touched because it went from Pascal to C -
but that was just translation. In terms of new code, most of Lingo is
new, which is about a third of Directorís code. The core of Lingo
got rebuilt. All the new windows of the user interface got a new
object-oriented framework. All of the text window, text editing, and
the Cast window code is new.
(thinks for a while)
Itís tough to say because I havenít been really blown away by
anything - some of the earlier animations were very eye-opening
though...
(thinks some more)
Well, the most interesting has been Iron Helix, but I donít play
games on the computer that much so Iíve only just gone through a few
scenes of it. I appreciated the response and stuff like that. Itís a
not a single thing I see, a single piece, itís more the variety that
I see. Different people doing different things.
The kidís products - WordTales, Yearn2Learn PEANUTS - because I
have kids I spend more time playing with those.
I donít think that the potential has really been tapped. I spend
a lot of time looking at these titles and theres still a long ways to
go. Itís hard to be awed by any one title given their limitations
and the potential that I have in my mind. Most of the time I look at
these titles and think Ďoh, they should have done this, and this,
and this...í
Thatís still pretty vague. It could evolve into doing that. its
really not set up to do that right now. Where it has the most benefit
is that people can prototype new interfaces very quickly to get a
preview of those kinds of things until they have the actual underlying
structure for two way communications.
My little two cents on interactive tv is that it still like a lot
of the titles - theyíre still wedded to the old metaphors. Just like
HyperCard is thinking in the old static metaphor they still think that
Ďoh you have interactive tv so that means thereís one producer
thats spewing out all this stuff into the homeí
As opposed to Ďthereís a media, just like the telephone
conversation weíre having now, you and I, and the important thing is
that the carrier can facilitate it or communicate it.í Thereís no
way in hell that you can create the hours of interactive tv that they
project. Plus that type of media is not interesting. People are more
interested in interacting with other peoples than with the computer.
People can carried away with the technology so much that they forget
that really evolves people is when they can use the technology to be
in touch with more people, instead of more computers. (laughs)
Interactive tv should focus on remote access to other real world
environments rather than synthetic worlds. Iíd rather sit at home
getting even just a camera view of a real beach rather than just a
synthesized view. And with interactive tv, Iíd rather have an
interactive two-way voice and video communication with my family than
interactive shopping. The nice thing there is that youíre not
spending more time thinking about new "content" issues but
rather how to make this use of the technology more transparent.
I like to spend family time away from the computer. Iím in front
of the computer so much I prefer to take them to the park, to the
playground, to dance class. Real world stuff. Iíd rather have [my
kids] building video games than playing them.
I teach "Interactive Video" at the Interactive
Telecommunications Program at Tisch School of the Arts at New York
Univerity. My long term objective is to create tools that make the
creative process more accessible to the computer. I want to teach
people how to do this as well. Iím particularly interested in
increasing peopleís media literacy.
An added advantage of teaching is it helps me keep in touch with
Director users and how the product is actually used.
I
wanted to design cars. I was doing isometric design drawings of cars -
even though I hated being in them because I got carsick- because my
father worked at Ford Motor Company painting cars. He would bring home
those brochures with the futuristic cars. Then I wanted to be an
architect and in junior high school I wanted to build computers - I
wanted to get a PhD in computer science. I also wanted to be an artist
too - a traditional artist - but this is my niche here.
Iíll be teaching...Iím not sure...itís not even that far away
is it? Iíd like to spend more time in Jamaica. I grew in two
geographically different cultures (England and Jamaica) and Iíd like
my kids to spend time growing up in Jamaica and then ultimately
Africa.
One of my visions is to create the Encyclopaedia Africanus. Just
like you have the Encyclopaedia Brittannica, Iíd like to create one
on and about Africa. Iíd like to travel around and have everyone say
hello in their native language - thereís 1,500 different dialects.
Itís a very rich opportunity in that itís only now that Africans
are talking for themselves, so thereís a lot of potential for fresh
material.
The long term mission is to be a part of that somehow. To go back
to the third world and bring some of this technology there and also
come back with something that I can present to other people like
travelogues or whatever.
<EMAIL_ADDRESS>top |


You configure connection pooling by using a number of system properties at program startup time. Note that these are system properties, not environment properties and that they affect all connection pooling requests.
Here is an example of a command line that sets the maximum pool size to 20, the preferred pool size to 10, and the idle timeout to a minute for pooled connections.
# java -Dcom.sun.jndi.ldap.connect.pool.maxsize=20 \ -Dcom.sun.jndi.ldap.connect.pool.prefsize=10 \ -Dcom.sun.jndi.ldap.connect.pool.timeout=60000 \ UsePool
The following table lists the system properties for configuring connection pooling. They are described in more detail in the rest of this section.
| System Property Name | Description | Default |
|---|---|---|
| com.sun.jndi.ldap.connect.pool.authentication | A list of space-separated authentication types of connections that may be pooled. Valid types are "none", "simple", and "DIGEST-MD5". | "none simple" |
| com.sun.jndi.ldap.connect.pool.debug | A string that indicates the level of debug output to produce. Valid values are "fine" (trace connection creation and removal) and "all" (all debugging information). | |
| com.sun.jndi.ldap.connect.pool.initsize | The string representation of an integer that represents the number of connections per connection identity to create when initially creating a connection for the identity. | 1 |
| com.sun.jndi.ldap.connect.pool.maxsize | The string representation of an integer that represents the maximum number of connections per connection identity that can be maintained concurrently. | no maximum size |
| com.sun.jndi.ldap.connect.pool.prefsize | The string representation of an integer that represents the preferred number of connections per connection identity that should be maintained concurrently. | no preferred size |
| com.sun.jndi.ldap.connect.pool.protocol | A list of space-separated protocol types of connections that may be pooled. Valid types are "plain" and "ssl". | "plain" |
| com.sun.jndi.ldap.connect.pool.timeout | The string representation of an integer that represents the number of milliseconds that an idle connection may remain in the pool without being closed and removed from the pool. | no timeout |
There are a couple of environment properties that automatically disqualify a Context instance from using a pooled connection. A Context instance cannot use a pooled connection if it has its "java.naming.ldap.factory.socket" property set to a custom socket factory class, or its "java.naming.security.sasl.callback" property set to a custom callback handler class, or its "com.sun.jndi.ldap.trace.ber" property set to enable protocol tracing.
A connection identity is the set of the parameters required to create a possibly authenticated LDAP connection. Its composition depends on the authentication type of the request, as shown in the following table.
| Authentication Type | Connection Identity Contents |
|---|---|
| none |
|
| simple |
|
| DIGEST-MD5 |
|
The initial pool size is the number of connections per connection identity that the LDAP service provider creates when first creating the pool (which corresponds to when the application first requests a pooled connection for that connection identity). Authentication of each connection in the pool is performed on demand, as the connection gets used. By default, the initial pool size is 1 and can be changed by using the system property "com.sun.jndi.ldap.connect.pool.initsize". It is typically used at application start-up time to prime the pool with a certain number of connections to a server.
The maximum pool size is the maximum number of connections per connection identity that can be maintained concurrently by the LDAP service provider. Both in-use and idle connections contribute to this number. When the pool size reaches this number, no new connection for the corresponding connection identity may be created until a connection in the pool has been removed (i.e., the physical connection is closed). When the pool size reaches the maximum and all of the connections in the pool are in use, the application's request for a connection from that pool is blocked until a connection in the pool either becomes idle or is removed. A maximum pool size of 0 means that there is no maximum size: A request for a pooled connection will use an existing pooled idle connection or a newly created pooled connection.
The preferred pool size is the preferred number of connections per connection identity that the LDAP service provider should maintain. Both in-use and idle connections contribute to this number. When an application requests the use of a pooled connection and the pool size is less than the preferred size, the LDAP provider will create and use a new pooled connection regardless of whether an idle connection is available. When an application is finished with a pooled connection (by invoking Context.close() on all contexts that share the connection) and the pool size is greater than the preferred size, the LDAP provider will close and remove the pooled connection from the pool. A preferred pool size of 0 means that there is no preferred size: A request for a pooled connection will result in a newly created connection only if no idle ones are available.
Note that the maximum pool size overrides both the initial and preferred pool sizes. For example, setting the preferred pool size greater than the maximum pool size is effectively setting it to the maximum pool size.


June 2023 Hacker News Hiring Trends
It should come as little surprise that the number of job postings on whoishiring threads continues to slow heading into summer. Between the general market slowness and summer vacation season starting, June dropped to a new longtime low of 359 postings. Perhaps the lowest of what I consider the modern era of "Who is Hiring?". The last time postings were this low was January 2015. "Who is Hiring?" had only surpassed 500 postings once before then though, so its popularity as a job board was nowhere near where it is today.
Compare AI, Machine Learning, Deep Learning, and ChatGPT
Compare Remote vs Onsite vs Hybrid
Compare Top 10 Programming Languages
| Tech | Rank | Last Month | Change | Last Year | Change |
|---|---|---|---|---|---|
| Remote | 1 | 1 | 0 | 1 | 0 |
| Senior | 2 | 2 | 0 | 2 | 0 |
| Full Stack | 3 | 3 | 0 | 5 | +2 |
| Back End | 4 | 5 | +1 | 3 | -1 |
| React | 5 | 7 | +2 | 4 | -1 |
| Onsite | 6 | 6 | 0 | 9 | +3 |
| Python | 7 | 4 | -3 | 7 | 0 |
| Front End | 8 | 10 | +2 | 6 | -2 |
| AI | 9 | 11 | +2 | 24 | +15 |
| Cloud | 10 | 12 | +2 | 12 | +2 |
| TypeScript | 11 | 9 | -2 | 8 | -3 |
| Hybrid | 12 | 13 | +1 | 20 | +8 |
| Machine Learning | 13 | 8 | -5 | 14 | +1 |
| Postgresql | 14 | 14 | 0 | 10 | -4 |
| AWS | 15 | 18 | +3 | 11 | -4 |
| golang | 16 | 16 | 0 | 13 | -3 |
| Next.js | 17 | 19 | +2 | 17 | 0 |
| Security | 18 | 20 | +2 | 15 | -3 |
| DevOps | 19 | 17 | -2 | 21 | +2 |
| node.js | 20 | 23 | +3 | 18 | -2 |
| Tech | Mentions | Rank | Last Year Mentions | Last Year Rank | Change |
|---|---|---|---|---|---|
| WebAssembly | 7 | 62 | 2 | 157 | +95 |
| WebGL | 6 | 66 | 3 | 130 | +64 |
| Firebase | 5 | 72 | 3 | 127 | +55 |
| Grafana | 6 | 65 | 4 | 112 | +47 |
| Git | 9 | 49 | 9 | 76 | +27 |
| Observability | 6 | 64 | 7 | 89 | +25 |
| RabbitMQ | 5 | 71 | 6 | 93 | +22 |
| Agile | 6 | 63 | 8 | 83 | +20 |
| GCP | 9 | 48 | 14 | 67 | +19 |
| Computer Vision | 11 | 43 | 16 | 61 | +18 |


Nigeria More Of Gas Producer Than Oil –Buhari
Buhari, who said this while receiving the Special Envoy of the President of Equatorial Guinea, Teodoro Obiang Nguema Mbasogo, at the State House, Abuja, lamented that if Nigeria had followed plans by paying more attention to the gas sector, the country would have been earning more money from the product than it is currently doing from oil now.
by SaharaReporters, New York
President Muhammadu Buhari has said Nigeria was more of a gas producing state than an oil.
Buhari, who said this while receiving the Special Envoy of the President of Equatorial Guinea, Teodoro Obiang Nguema Mbasogo, at the State House, Abuja, lamented that if Nigeria had followed plans by paying more attention to the gas sector, the country would have been earning more money from the product than it is currently doing from oil now.
The Special Envoy, Gabriel Mbega Obiang Lima, had brought a message from his President on the forthcoming meeting of Heads of State of gas exporting nations, which Equatorial Guinea would be hosting.
Buhari said, “We share a lot of things in common with Equatorial Guinea. These include geographical neighbourliness and neighbourliness in terms of resources.
“Nigeria is more of a gas producing, rather than oil producing country. That fact had long been established.
“If we had followed our own plans laid out in the 1970s for the gas sector, we should have had 12 trains by early 1980s instead of being on just six trains now.”


Calculates the square of any number by multiplying that number by itself. Include a form which allows the user to enter a number, and then display both the input number and the output number back to the user after making the calculation.


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/pedagogy.20vs.2E.20.22dumping.20internal.20representation.22.html ---
Here are five lines of code:, a short version of the Hello World of Lean, suitable as a first example for even new undergraduate students. The problem pedagogically is that the result of #eval is a cryptic message about no typeclass instance, the dumping of an internal representation, and some #1s and other stuff. I understand what's going on here; the question is whether I can get Lean to show results in a readable form without defining typeclass instances. Coq's good in this regard, for example. How might I get the same effect in Lean.
inductive day
| monday: day
| tuesday: day
def id_day (d: day): day := d
#eval id_day day.monday
#reduce
#reduce
Of course, thanks.
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


I will try to get back to you as soon as possible. Thanks!
Go back to main website
(Redirecting back in 5 seconds)


About Tesla
Tesla was founded in 2003 by a group of engineers in Silicon Valley who wanted to prove that electric cars could be better than gasoline-powered cars. With instant torque, incredible power, and zero emissions, Tesla’s products would be cars without compromise. Each new generation would be increasingly affordable, helping the company work towards its mission: to accelerate the world’s transition to sustainable energy.


Resources
- Ten minute interactive introduction to MobX and React
- How MobX works: In depth explanation of MobX
- Clone the boilerplate repository containing the above example from: https://github.com/mweststrate/react-mobservable-boilerplate.
- Or fork this JSFiddle.
Related projects
- mobx-connect MobX @connect decorator for react components. Similar to redux's @connect.
- rfx-stack RFX Stack - Universal App featuring: React + Feathers + MobX
- mobx-reactor Connect MobX data stores to functional stateless React components with async actions and unidirectional data flow.
- mobx-model Simplify mobx data stores that mimic backend models
- rx-mobx Convert Mobx observables to RxJS and vice versa
More examples
A nice list is WIP, but see this github issue for a list of example projects, including routing, authorization, server side rendering etc.
- TodoMVC using MobX and React
- The ports of the Notes and Kanban examples from the book "SurviveJS - Webpack and React" to mobservable.
- A simple webshop using React + mobx or JQuery + mobx.
- Simple timer application in JSFiddle.
- Simple ES5 MobX examples Bite sized MobX examples all setup to run in jsFiddle.


The predicted label of the query
votes = self.select(query)
counter = collections.Counter(votes)
predicted_label = counter.most_common()[0][0]
return predicted_label
predicted_label : Prediction of the ensemble for the input query.
votes = self.select(query)
predicted_label = mode(votes)[0]
return predicted_label


Detects for any sign of drowsiness and sends an alert to warn the driver.
Mood Music
Plays music based on the driver's mood or expression.
Object Detection
Detects nearby people and vehicles like car, bus, truck, bicycle, etc. and sends
an alert to warn the driver.
DRIVE AI
Developed with by the team
members of MEAN Machines as part of hackNSUT-19. Feel free to reach out to us for any queries,
suggestions or cool new ideas to improve the web application. Let's together
steps towards better road safety and driving experience. Peace out!


South Africa's Zozibini Tunzi crowned Miss Universe 2019
by EndPlayATLANTA (AP) - South Africa's Zozibini Tunzi was crowned Miss Universe 2019, giving the country its second title in in three years in a pageant that also saw strong showings from contestants from Puerto Rico and Mexico.
Tunzi, a 26-year-old gender violence activist, said she was forced to abandon her studies for a year because of her family's economic difficulties, but her modeling work allowed her to continue her education. She studied public relations at Cape Peninsula University of Technology.
When asked during Sunday's contest what it is most important to teach young girls today, Tunzi said leadership, unleashing a standing ovation at the Tyler Perry Studios in Atlanta, Georgia.
She said she grew up in a world where women who looked like her were not seen as beautiful. It is time for this to end, she said.
Puerto Rico's Madison Anderson was elected first finalist, and Miss Mexico Sofía Aragón second.
Tunzi's triumph is the second for South Africa in Miss Universe. South Africa's Demi-Leigh Nel-Peters was crowned in 2017.
A total of 90 countries participated in this year's contest, which was hosted by Steve Harvey.


Curses Menu
Main Menu
Mouse navigates the menu. <Click> selects subpages. Highlighted letters are the first letters of each word.
S
horten a URL (EXPERIMENTAL)
U
pload a file (EXPERIMENTAL)
P
astebin text (EXPERIMENTAL)
S
elect
E
xit
H
elp


Create an Account
Your Preferences
Most Frequently Used Operating System:
Operating System
Windows 8
Windows 7
Android
Mac OS
Other
Most Frequently Used Software:
Software
Games
Business Applications
Programming Applications
Social Networking
Other
Customer Information
*Required Information
First Name:*
Last Name:*
Street Address 1:*
Street Address 2:*
City:*
State:*
Zip Code:*
Phone:
Email Address:*
Payment Method:*
None
Visa
Master Card
American Express
Credit Card Number:
Expiration Month:
Month
01
02
03
04
05
06
07
08
09
10
11
12
Expiration Year:
Year
2015
2016
2017
2018
2019
2020


--- layout: newsstory title: DROWNING, NOT WINNING match: WSC Worcester 4 Yeltz 1 ---
It's always disappointing to lose, but I've never been a big fan of the Senior Cups so I can't say I'm too bothered.
They took an early lead, we equalised through a Les Hines penalty, but then they scored again and with Woody being sent off that was it for our chances. Anyhoo, full details in the match reports
Unfortunately, after the weekend's results we've slipped to 21st in the table at the moment. However, Saturday lets us forget about all that when old rivals Bilston come to The Grove in the FA Trophy.


Punjabi film ‘Doorbeen’ premieres on Amazon Prime Video
by Raj BaddhanAmazon Prime Video has premiered the Punjabi film ‘Doorbeen’ (2019) on its platform.
The film starring Ninja, Wamiqa Gabbi and Jass Bajwa, is about Shinda, a small time crook, who lives in Punjab and invents new ways to smuggle liquor inside the territory while trying to win the love of his life.
‘Doorbeen’ is directed by Ishan Chopra.


Introduction¶
The library structure is as follows
Basic design principles¶
Core deep learning and I/O functions and classes are designed to be problem generic. That is, they can be used without any specific strict workflow and can handle near arbitrary inputs as suitable.
The most physics applications such as signal from background discrimination fit under certain “quasi-templated YAML-python-workflow” as manifested from the implemented applications.
YAML-configuration files¶
End-to-end deep learning applications are configured with YAML-files.
See source files for different applications under /configs
Folder structure¶
Folders starting with a name ice
denote modules, typically
either different core modules such as icenet
or icefit
or physics applications such as icedqcd
, which contain their problem
specific I/O functions.
-analysis Main steering macros and scripts
-checkpoint Trained and saved machine learning models
-configs YAML-input configuration
-docs Documentation
-figs Output figures
-icebrk B/R(K) analysis application
-icedqcd DQCD analysis application
-icefit Fitting and statistics
-icehgcal HGCAL detector application
-icehnl HNL analysis application
-iceid Electron ID application
-icenet Core deep learning & I/O functions
-iceplot Plotting tools
-icetrg HLT trigger application
-tests Test and bash-launch scripts
-output HDF5, pickle outputs
-dev Development code
ML-algorithms and models¶
Various ML-models are implemented and supported. From a fixed dimensional input models
such as boosted decision trees (BDT) via XGBoost enhanced with a custom torch autograd computed loss function,
aka ICEBOOST
, to more complex “Geometric Deep Learning” with graph neural networks using torch-geometric
as a low-level backend.
The library is typically agnostic regarding the underlying models, i.e. new torch models or loss functions can be easily added and other computational libraries such as JAX can be used.
See source files under /icenet/deep
1. Factorized (dim-by-dim) likelihoods & ratios using histograms [numpy]
2. ICEBOOST: Gradient boosted decision trees with custom autograd loss [xgboost+pytorch]
3. Multinomial Logistic Regression, Deep MLPs [pytorch]
4. MaxOUT multilayer feedforward network [pytorch]
5. Deep Normalizing Flow (BNAF) based likelihoods & ratios [pytorch]
6. Permutation Equivariant Networks (DeepSets) [pytorch]
7. CNN-Tensor networks [pytorch]
8. Graph Neural Nets (graph-, node-, edge-level inference) [pytorch-geometric]
9. Variational autoencoders [pytorch]
10. Neural mutual information estimator (MINE) [pytorch]
11. ...
Advanced ML-training technology¶
See source files under /icenet/deep
1. Model distillation
2. Conditional (parametric) classifiers
3. Deep domain adaptation (via gradient reversal)
4. Automated hyperparameter tuning (via raytune)
5. Algorithmically [de]correlated (regulated) BDTs and networks with MINE
6. ...
Automated selectors and combinatorics for distributions¶
The plotting machinery allows sophisticated filtering/cuts or “combinatorial” binning of various metrics, such as ROC-curves and other figures. See steering-file examples under /configs/*/plots.yml


--- layout: post title: "Pico Projector Gun Controller Beams First-Person Shooters on Any \tSurface" date: 2009-12-11 11:32:34 -06:00 comments: true categories: posterous_id: 8564238 --- Nice! I have something new to put on my Christmas list.
Redneck Techie's vision for a pico projector Wireless Game Gun has been realized...by Microvision. As you can see, the controller allows gamers to break free from their fixed screens and project the battle on any surface.
Using the infinite focus capability of the PicoP display engine, combined with a motion sensing module, it's now possible to play video games on multiple surfaces, all while tracking your character's point of view in 3D space.
Granted, this platform looks cool and everything, but it seems like you would have to have a perfectly spherical room to take full advantage of it. Besides the dinky "screen," the image would become distorted on any misshapen surface. What do you think? Is this a gaming experience you could get into? [Microvision via Crunchgear via TechEBlog]


Lorem Ipsum is simply
dummy text of the
printing & typesetting
Lorem Ipsum is simply
dummy text of the
printing & typesetting
Lorem Ipsum is simply dummy text of the printing and typesetting Lorem Ipsum has been the industry's standard dummy text ever When an unknown printer took a galley of type and scrambled It to make a type specimen book. It has survived not only five centuries But also the leap into electronic typesetting, Remaining essentially unchanged. It was popularised The release of Letraset sheets containing Lorem Ipsum passages


Use the Service Mesh Performance standard
Weigh the value of your service mesh features in-context of it's overhead.
---
title: Meshery | The Service Mesh Manager
description: Lifecycle, performance, and configuration management across any service mesh. Confidently operate service meshes like Istio, Linkerd, Envoy, Citrix, Octarine, App Mesh, Consul, Kuma, Traefik Mesh, Tanzu, NGINX, and Open Service Mesh. Patterns and best practices of service mesh operation.
image: images/logos/meshery-logo-tag-dark-text-side.png
---
Baseline and track your service mesh performance from release to release.
Engage in the Meshery project. Join any of our mailing lists.


{# {% load static %}#}
|
Medical AI
Service Provider
Power Healthcare with AI
Recognition Results
Analyzing...
Format: JPG、JPEG、BMP
Size: less than 10M
Process
{% csrf_token %} Upload from local disk
Upload my image


Our main tool for data analysis is the R statistical software (R Core Team 2021). R is free software specifically aimed at statistical analysis and graphical representation. It is a fully developed programming language that allows to extend it with new packages with new capabilities. We are going to heavily rely on some of those packages.21 You can download R from this CRAN server
We are going to interact with the R software through Rstudio.22 You can download from the Rstudio website Rstudio is an integrated development environment for R. It allows you to easily write, test, and run R code, and integrate the results with explanations. One advantage of R and Rstudio is that you can install them on as many computers as you want. You do not need a special license. This means that you do not have to be affiliated with the university to use the sofware.
In Rstudio, you write code and ask the R software to execute that
code. You can save the different steps in your analysis in an R
script which is just a plain text file with the .R
-extenstion.
The advantage of plain text file is that they are easy to share
across different operating systems. The code in your script
allows you and anyone else to run the same analysis at a later
point in time which is very important to check for mistakes
and for teaching.
We will make use of a special type of plain text files: Rmarkdown
(.Rmd
) files.23 These notes are fully written in Rmarkdown
files. RMarkdown is an R extension of the markdown format. The
idea of markdown is to write plain text documents which can later
be exported to other formats such as html, pdf, or word. The
advantage of plain text scripts and markdown. The beauty of
RMarkdown is that it lets you combine both R scripts and markdown
into one document. This allows you to integrate your analysis and
your description of your analysis in one document. When you go
back to your analysis after a couple of weeks, you will be happy
that you have more than the raw code to look at.
Finally, I am going to introduce you to a specific dialect of the R language which is informally known as the tidyverse. If you want to be a good R programmer this might not be the best entry point into R. However, I assume that you want to quickly pick up some tools to facilitate your research project and for that purpose I believe the tidyverse will be excellent. I will introduce the most important bits and pieces throughout my lectures however I don’t have the time to go into detail. Now and then, you will have to experiment on your own to get your code working. Some excellent resources are the free online books R for datascience and Data Visualization: A practical introduction. You can also buy reasonably priced physical copies if you your are interested in developing your R skills further.
For larger projects, you should use a project in its own separate folder.24 See the Project Chapter of Hadley Wickham’s book. Once you need multiple scripts, you want to make sure that you can reliably point to the results or functions in different scripts. Projects help you manage all the parts of a larger piece of work. You can start a
You start a new project by clicking File > New Project ...
You
can start a new file by clicking File > New File > R Script
.
In Rstudio, you can use the R console directly. I mainly use the R console to test the code I have written in my scripts and I would advice you to do the same thing. If you want to understand how R works. You can experiment by typing the following lines in the console.25 It is tempting to copy and paste the code but retyping the code is a surprising powerful way of learning to code. I would advise you to try to type as much of the code as possible when you are trying to figure out how R works.
<- 1
x x
## [1] 1
<- x + 1
x x
## [1] 2
The little code above already shows you two things.
x
We will see further that we can assign almost anything to an
object x
. When x
is a vector or a data set with multiple
elements, this will allow us to perform the same function on each
element of x
. That is the basic advantage of programming. You
can tell your computer how to do a thing and than the computer
can do it over and over for you.
install.packages("tidyverse")
library("tidyverse")
R packages are additions to R that give R extra functionality.
One of the selling points of R is that it has a good way of
integrating this extra functionality and a lot of people are
highly motivated to add this extra functionality. We will heavily
rely on one meta-packages. tidyverse
is a package that helps
with data transformations and working with tabular data in a tidy
fashion. One of the packages in the tidyverse
is ggplot2
which provides tools to make pretty plots. The code above shows
you how to install packages and use them. Normally, you will only
have to install a package once. However, when you want to use a
package in your script or code, you will have to load the package
with the library()
function. You only have to do load a package
once at the start of your R session or at the start of your
script.26 Installing packages is another reason to use the R console.
dplyr
is another part of the tidyverse
we will use
extensively. With 5 verbs27 i.e. functions to do something with
a dataset. and one pipe operator to glue them together helps
you to explore the data.filter()
let’s you filter out a subset
of the observations. select()
selects a subset of the variables.
mutate()
changes variables and creates new ones. group_by()
and summarise()
group subsets of observations and summarise
them. %>%
is the pipe operator and joins together the verbs
to create compound statements where you for instance filter a
subset of the observations, create a new variable, create groups,
and summarise the groups based on the average for the new
variable.
Let’s run some code. First, we have to tell R to use the packages
in the tidyverse
.
library(tidyverse)
Next, we have a look at the data I used to draw the plot of the
compensation of CEOs of S&P500 companies. First, we have to assign
the file with the data to an object, us_comp
in this case.28 The data is available on LMS or through the code in the
Appendix 2.5
The glimpse function gives an overview of the variables in the
data, the type of the variables, and a couple of examples of the
values for that variable.
<- readRDS("data/us-compensation.RDS")
us_comp glimpse(us_comp)
## Rows: 17,622
## Columns: 22
## $ year <dbl> 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018…
## $ gvkey <chr> "001004", "001004", "001004", "001004", "00100…
## $ cusip <chr> "00036110", "00036110", "00036110", "00036110"…
## $ exec_fullname <chr> "David P. Storch", "David P. Storch", "David P…
## $ coname <chr> "AAR CORP", "AAR CORP", "AAR CORP", "AAR CORP"…
## $ ceoann <chr> "CEO", "CEO", "CEO", "CEO", "CEO", "CEO", "CEO…
## $ execid <chr> "09249", "09249", "09249", "09249", "09249", "…
## $ bonus <dbl> 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.00…
## $ salary <dbl> 867.000, 877.838, 906.449, 906.449, 755.250, 8…
## $ stock_awards_fv <dbl> 2664.745, 619.200, 1342.704, 1695.200, 1150.50…
## $ stock_unvest_val <dbl> 4227.273, 6018.000, 4244.165, 4103.283, 0.000,…
## $ eip_unearn_num <dbl> 32.681, 56.681, 66.929, 83.415, 0.000, 157.969…
## $ eip_unearn_val <dbl> 393.806, 1137.021, 1626.375, 2464.079, 2244.96…
## $ option_awards <dbl> 578.460, 695.520, 1622.016, 0.000, 1150.500, 1…
## $ option_awards_blk_value <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
## $ option_awards_num <dbl> 49.022, 144.000, 158.400, 0.000, 0.000, 225.00…
## $ tdc1 <dbl> 5786.400, 4182.832, 5247.779, 5234.648, 3523.9…
## $ tdc2 <dbl> 6105.117, 3487.312, 3809.626, 10428.375, 3523.…
## $ shrown_tot_pct <dbl> 2.964, 2.893, 3.444, 3.877, 4.597, 5.417, 3.71…
## $ becameceo <date> 1996-10-09, 1996-10-09, 1996-10-09, 1996-10-0…
## $ joined_co <date> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
## $ reason <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
We can also look at a subset of the observations, i.e. we filter
the observations from the company that has the key 001045
.
filter(us_comp, gvkey == "001045")
## # A tibble: 9 × 22
## year gvkey cusip exec_fullname coname ceoann execid bonus salary
## <dbl> <chr> <chr> <chr> <chr> <chr> <chr> <dbl> <dbl>
## 1 2011<PHONE_NUMBER>6R10 Gerard J. Arpey AMERI… CEO 14591 0 614.
## 2 2012<PHONE_NUMBER>6R10 Thomas W. Horton AMERI… CEO 26059 0 618.
## 3 2013<PHONE_NUMBER>6R10 Thomas W. Horton AMERI… CEO 26059 0 592.
## 4 2014<PHONE_NUMBER>6R10 William Douglas Parker AMERI… CEO 46191 0 688.
## 5 2015<PHONE_NUMBER>6R10 William Douglas Parker AMERI… CEO 46191 0 232.
## 6 2016<PHONE_NUMBER>6R10 William Douglas Parker AMERI… CEO 46191 0 0
## 7 2017<PHONE_NUMBER>6R10 William Douglas Parker AMERI… CEO 46191 0 0
## 8 2018<PHONE_NUMBER>6R10 William Douglas Parker AMERI… CEO 46191 0 0
## 9 2019<PHONE_NUMBER>6R10 William Douglas Parker AMERI… CEO 46191 0 0
## # … with 13 more variables: stock_awards_fv <dbl>, stock_unvest_val <dbl>,
## # eip_unearn_num <dbl>, eip_unearn_val <dbl>, option_awards <dbl>,
## # option_awards_blk_value <dbl>, option_awards_num <dbl>, tdc1 <dbl>,
## # tdc2 <dbl>, shrown_tot_pct <dbl>, becameceo <date>, joined_co <date>,
## # reason <chr>
You can see that the company, American Airlines, has had three
CEOs since 2011. I used the gvkey
to select a company and not
its name. You will often use an id or a database key especially
if you are working with multiple datasets and you want to link
observations from one dataset to observations in the other
dataset.
We can also filter data based on other variables. For instance, the below filters the observations from 2014 where the CEO had a salary over $1,000,000.
filter(us_comp, salary > 1000, year == 2014)
## # A tibble: 476 × 22
## year gvkey cusip exec_fullname coname ceoann execid bonus salary
## <dbl> <chr> <chr> <chr> <chr> <chr> <chr> <dbl> <dbl>
## 1 2014<PHONE_NUMBER>8410 Donald E. Brand… PINNACLE W… CEO 05835 0 1240
## 2 2014<PHONE_NUMBER>2410 Miles D. White,… ABBOTT LAB… CEO 14300 0 1973.
## 3 2014<PHONE_NUMBER>0310 Rory P. Read ADVANCED M… CEO 42390 0 1000.
## 4 2014<PHONE_NUMBER>1610 David M. Cote HONEYWELL … CEO 20931 5500 1866.
## 5 2014<PHONE_NUMBER>9H10 John B. Hess HESS CORP CEO 02132 0 1500
## 6 2014<PHONE_NUMBER>3710 Nicholas K. Aki… AMERICAN E… CEO 40778 0 1241.
## 7 2014<PHONE_NUMBER>1610 Kenneth I. Chen… AMERICAN E… CEO 02157 4500 2000
## 8 2014<PHONE_NUMBER>5510 Daniel Paul Amos AFLAC INC CEO 00013 0 1441.
## 9 2014<PHONE_NUMBER>7510 Jeffrey M. Weiss AMERICAN G… CEO 11710 3640 1012.
## 10 2014<PHONE_NUMBER>7478 Robert Herman B… AMERICAN I… CEO 20972 0 1385.
## # … with 466 more rows, and 13 more variables: stock_awards_fv <dbl>,
## # stock_unvest_val <dbl>, eip_unearn_num <dbl>, eip_unearn_val <dbl>,
## # option_awards <dbl>, option_awards_blk_value <dbl>,
## # option_awards_num <dbl>, tdc1 <dbl>, tdc2 <dbl>, shrown_tot_pct <dbl>,
## # becameceo <date>, joined_co <date>, reason <chr>
You can also select some variables if you are only interested in
those. If a variable has an undescriptive name, you can use
select to rename the variable. For instance, tdc1
is the total
compensation of a the CEO. A more descriptive name will help you
to remember what the variable actually means.
select(us_comp, year, coname, bonus, salary, total = tdc1)
## # A tibble: 17,622 × 5
## year coname bonus salary total
## <dbl> <chr> <dbl> <dbl> <dbl>
## 1 2011 AAR CORP 0 867 5786.
## 2 2012 AAR CORP 0 878. 4183.
## 3 2013 AAR CORP 0 906. 5248.
## 4 2014 AAR CORP 0 906. 5235.
## 5 2015 AAR CORP 0 755. 3524.
## 6 2016 AAR CORP 0 835 6073.
## 7 2017 AAR CORP 0 941 6284.
## 8 2018 AAR CORP 0 750 4234.
## 9 2019 AAR CORP 0 801. 3436.
## 10 2011 AMERICAN AIRLINES GROUP INC 0 614. 5527.
## # … with 17,612 more rows
You can also create new variables with the mutate
function. I
created a variable that calculates what percentage of total
compensation is the CEO’s salary.
select(us_comp, year, coname, bonus, salary, total = tdc1) %>%
mutate(salary_percentage = salary / total)
## # A tibble: 17,622 × 6
## year coname bonus salary total salary_percentage
## <dbl> <chr> <dbl> <dbl> <dbl> <dbl>
## 1 2011 AAR CORP 0 867 5786. 0.150
## 2 2012 AAR CORP 0 878. 4183. 0.210
## 3 2013 AAR CORP 0 906. 5248. 0.173
## 4 2014 AAR CORP 0 906. 5235. 0.173
## 5 2015 AAR CORP 0 755. 3524. 0.214
## 6 2016 AAR CORP 0 835 6073. 0.138
## 7 2017 AAR CORP 0 941 6284. 0.150
## 8 2018 AAR CORP 0 750 4234. 0.177
## 9 2019 AAR CORP 0 801. 3436. 0.233
## 10 2011 AMERICAN AIRLINES GROUP INC 0 614. 5527. 0.111
## # … with 17,612 more rows
Remark how the select
statement from before is chained together
with the mutate
statement through the pipe operator (%>%
).
This operator pipes the results from the first statemetn to the
second statement. The second statement implicitly uses the result
from the first statement as the data it is going to work with.
You can use pipe statement to make your own descriptive
statistics table. I created a table with some statistics for each
firm. I first group the observations based on the gvkey
and
then summarise each group with the same key by defining a number
of new variables.
group_by(us_comp, gvkey) %>%
summarise(N = n(), N_CEO = n_distinct(execid),
average = mean(salary), sd = sd(salary),
med = median(salary), minimum = min(salary),
maximum = max(salary)) %>%
ungroup()
## # A tibble: 2,347 × 8
## gvkey N N_CEO average sd med minimum maximum
## <chr> <int> <int> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 001004 9 2 849. 68.3 867 750 941
## 2 001045 9 3 305. 316. 232. 0 688.
## 3 001072 8 2 677. 219. 652. 450 967.
## 4 001075 9 1 1259. 98.8 1277 1091 1395
## 5 001076 9 3 727. 103. 700 567. 850
## 6 001078 9 1 1908. 24.4 1900 1900 1973.
## 7 001094 8 3 563. 66.2 581. 437. 626.
## 8 001161 9 3 913. 143. 961. 566. 1026.
## 9 001177 7 1 1049. 86.4 1000 977. 1200
## 10 001209 9 2 1196. 123. 1200 905. 1350
## # … with 2,337 more rows
Programming is hard work. You will make mistakes. You will get error messages. An important programming skill is to efficiently debug your code and find out what is going wrong.
The most important technique is trial and error. Change one thing in your code and see what the output is. Do you get an error message? What does the error message tell you? If you are carefull and do not change everything at once, this should at least help you to find out which part of the code does not work. This is one reason why scripts are so important. Because a script contains your entire analyis, you can always go back and (let your computer) redo the analysis from the start.
If you are not sure how you should use a certain function in R, you can read its help files in the Rstudio Help window. You can search for more information what a function is doing.
R is a very popular language. If you have a problem it is likely that someone else had the same problem before you. If you Google the error message, there is a decent chance you will find a solution to your problem.
A specific website where a lot of these questions are asked is
StackOverflow. You can often
directly search for your error on the website and find multiple
solutions. You can improve your chances of finding a related
answer to your problem by adding the [r]
, [tidyverse]
,
[dplyr]
, [ggplot]
tags to your error message.
You can also ask me directly for help on LMS. I set up a forum for questions and I promise to help you with any R questions you might have for the unit and for your thesis.
One of the big advantages of the R world is that you can
easily combine explanations with your analysis in .Rmd
files.
The assignements can all be completed in Rmarkdown. You can find
a lot of good resources on
Rmarkdown on the Rstudio website.
In short, markdown is a simple markup language29 This means that you can
add little bits of code to your text that indicate how the text
should look that lets you include R code.
You can have titles in markdown.
# Title
## Subtitle
### Lower level titles.
You can emphasise some words.
*Italic*, **bold**
Add links to pages and include pictures.
[weblink](https://www.google.com)
![pictures](https://rstudio.com/wp-content/uploads/2015/10/r-packages.png)
You can write enumerations and lists.
1. Item 1
2. Item 2
3. Item 3
- one
- two
- three
You can also write tables. You will rarely have to use tables. Typically, you can directly create the tables from R without the need to type in the results of your analysis.
First Header | Second Header
------------- | -------------
Content Cell | Content Cell
Content Cell | Content Cell
The largest advantage of Rmarkdown files is that we can include
pieces of R code.[^ Again, all these notes are written in
Rmarkdown. Code chuncks go between three backticks and we tell
Rmarkdown that the language we are using is {r}
. The example
below creates a code chuck where we create a random vector x
with then elements where the elements are drawn from a random
distribution with mean 4 and standard deviation 3.
```{r}
x <- rnorm(n = 10, mean = 4, sd = 3)
```
Page built: 2022-02-01 using R version 4.1.2 (2021-11-01)


The Enigma Machine: Encrypt and decrypt online
The Enigma cipher machine is well known for the vital role it played during WWII. Alan Turing and his attempts to crack the Enigma machine code changed history. Nevertheless, many messages could not be decrypted until today. Read more


Use cases (examples)¶
Firewall control¶
Control firewall (e.g. enable incoming SSH connection) with DNS query signed with private key. So firewall can blocks every service during normal operation.
Scriptable DNS-based blacklist (DNS-BL)¶
Scripted in Python with already provided features, takes advantage of DNS reply, because almost every mail server supports DNS based blacklisting.
DNS based Wake-On-Lan¶
Controled by secured queries secured with private key.
Dynamic translation service¶
DNS request can be translated to virtually any answer, that’s easy to implement in client side because of many DNS libraries available.
- Examples :
- Dictionary - using IDN for non-ascii strings transfer,
dig TXT slovo.en._dict_.nic.cz
returns translation of “slovo” to EN. - Translation - Extends DNS-SD, for example DNS to Jabber to find out people logged in.
- Exchange rate calculator -
dig TXT 1000.99.czk.eur._rates_.nic.cz
returns the given sum (1000.99 CZK) in EURs.
- Dictionary - using IDN for non-ascii strings transfer,
Dynamic ENUM service¶
Support for redirection, synchronization, etc.


Customer Name is required.
Customer Name must be maximum 20 charcters long.
Customer Name must be maximum 5 charcters long.
Customer Address is required.
Customer Address must be maximum 50 charcters long.
Customer Address must be minimum 5 charcters long.


All Classes
-
All Classes Interface Summary Class Summary Enum Summary Class Description Block The basic building block of the Blocks framework.BlockIds Contains all the keys of the blocks that are registered in theBlockRegistry
.BlockRegistry A thread safe register for blocks.BlocksConfig The main configuration object of Blocks.BlocksProtos BlocksProtos.ChunkProto Protobuf typeChunkProto
BlocksProtos.ChunkProto.Builder Protobuf typeChunkProto
BlocksProtos.ChunkProtoOrBuilder BlocksTheme A Blocks theme.Chunk A chunk holds an array ofBlock
elements.ChunkCache An in memory threadsafe chunk cache implementation.ChunkGenerator The contract of a ChunkGenerator implementation.ChunkManager The ChunkManager is responsible for the administration of chunks and the maintenance of the underlying ChunkCache.ChunkManagerListener A listener that can be registered to theChunkManager
.ChunkManagerState An application state to handle the lifecycle of a ChunkManager.ChunkMesh A class to help create a mesh for a specific block type of a chunk.ChunkMeshGenerator The contract for a chunk mesh implementation.ChunkPager A pager implementation that pages the meshes of the chunks around the given location.ChunkPagerState An AppState implementation that manages the lifecycle of aChunkPager
.ChunkRepository The contract of a ChunkRepository implementation.ChunkResolver A service to retrieve chunks.Cube A shape implementation for a cube.Direction An enum holding direction information in a right-handed coordinate system, just as OpenGL.FacesMeshGenerator A chunk mesh generator that creates and combines a quad mesh for each of the visible faces of a block of the same type.FileRepository A File repository implementation for loading and storing chunks using the Protocol Buffers method.FlatTerrainGenerator AChunkGenerator
implementation that creates a flat looking terrain at a given y value.Pager<T> An abstract implementation of a 3D pager.PagerListener<T> A listener that can be registered to thePager
.PhysicsChunkPager A pager implementation that attaches and detaches collision meshes to the given physicsSpace based on the location in the grid.PhysicsChunkPagerState An AppState implementation that manages the lifecycle of aPhysicsChunkPager
.Pyramid A shape implementation for a pyramid.RoundedCube A shape implementation for a rounded cube.Shape The interface describing the shape of aBlock
element.ShapeIds Contains all the keys of the shapes that are registered in theShapeRegistry
.ShapeRegistry A thread safe register for shapes.Slab A shape implementation for a slab.Stair A shape implementation for a stair.TypeIds Contains all the keys of the types that are registered in theTypeRegistry
.TypeRegistry A thread safe register for block types.Wedge A shape implementation for a wedge.


All of our wallets use industry standards of multi-sig (P2SH) for security and HD (BIP32) for financial privacy.
Build in powerful business rules for co-signing including rate limits, address whitelists, webhooks, secondary approvals, and more.
Migrate from your existing wallet system with minimal development effort. The integration can be as simple as changing one line of code.
The Javascript SDK implements client-side wallet features and interfaces with our APIs and the blockchain. You won’t need to implement any cryptography. View it on github


An assumption can sometimes be indicated by the presence of words like let, suppose, and assume in regular speech and writing. This particular type of language invites a listener or reader to engage with the possibilities that follow from an initial claim that is assumed to be true.It is important to be aware that not all assumptions are true. For social issues this is especially true. Assuming that certain parts of an argument are true, without proper investigation or consideration, can lead to false conclusions. One example of an assumption that can lead to false conclusions is using a non-shared definition.
in-context


|
MRSL Motion Primitive Library
0.4
A motion primitive library for generating trajectory for mobile robots
|
GraphSearch class. More...
#include <graph_search.h>
Public Member Functions | |
| GraphSearch (bool verbose=false) | |
| Simple empty constructor. More... | |
| double | Astar (const Waypoint &start_coord, Key start_key, const std::shared_ptr< env_base > &ENV, std::shared_ptr< StateSpace > ss_ptr, Trajectory &traj, int max_expand=-1, double max_t=0) |
| Astar graph search. More... | |
| double | LPAstar (const Waypoint &start_coord, Key start_key, const std::shared_ptr< env_base > &ENV, std::shared_ptr< StateSpace > ss_ptr, Trajectory &traj, int max_expand=-1, double max_t=0) |
| Lifelong Planning Astar graph search. More... | |
Private Member Functions | |
| Trajectory | recoverTraj (StatePtr ptr, std::shared_ptr< StateSpace > ss_ptr, const std::shared_ptr< env_base > &ENV, const Key &start_idx) |
| Recover trajectory. | |
Private Attributes | |
| bool | verbose_ = false |
| Verbose flag. | |
GraphSearch class.
Implement A* and Lifelong Planning A*
|
inline |
Simple empty constructor.
| verbose | enable print out debug infos, default is set to False |
| double GraphSearch::Astar | ( | const Waypoint & | start_coord, |
| Key | start_key, | ||
| const std::shared_ptr< env_base > & | ENV, | ||
| std::shared_ptr< StateSpace > | ss_ptr, | ||
| Trajectory & | traj, | ||
| int | max_expand = -1 , |
||
| double | max_t = 0 |
||
| ) |
Astar graph search.
| start_coord | start state |
| start_key | key of the start state |
| ENV | object of `env_base' class |
| ss_ptr | workspace input |
| traj | output trajectory |
| max_expand | max number of expanded states, default value is -1 which means there is no limitation |
| max_t | max time horizon of expanded states, default value is -1 which means there is no limitation |
Comment following if build single connected graph
Comment this block if build multiple connected graph succNode_ptr->pred_hashkey.front() = currNode_ptr->hashkey; // Assign new parent succNode_ptr->pred_action_id.front() = succ_act_id[s]; succNode_ptr->pred_action_cost.front() = succ_cost[s];
| double GraphSearch::LPAstar | ( | const Waypoint & | start_coord, |
| Key | start_key, | ||
| const std::shared_ptr< env_base > & | ENV, | ||
| std::shared_ptr< StateSpace > | ss_ptr, | ||
| Trajectory & | traj, | ||
| int | max_expand = -1 , |
||
| double | max_t = 0 |
||
| ) |
Lifelong Planning Astar graph search.
| start_coord | start state |
| start_key | key of the start state |
| ENV | object of `env_base' class |
| ss_ptr | workspace input |
| traj | output trajectory |
| max_expand | max number of expanded states, default value is -1 which means there is no limitation |
| max_t | max time horizon of expanded states, default value is -1 which means there is no limitation |


Specific Speed
What Is Specific Speed?
Pump Style
Pump Speed
(rpm)
Flow
Head
PLOT
Specific Speed:
Efficiency Correction:


C interface for communicating with mavlink over UDP in Linux/Windows.
More...
#include <stdint.h>
#include <rc/mavlink/common/mavlink.h>
#include <rc/mavlink/mavlink_types.h>
#include <rc/mavlink/mavlink_udp_helpers.h>
Go to the source code of this file.
C interface for communicating with mavlink over UDP in Linux/Windows.
Uses common mavlink v2 packets generated from official mavlink source (https://github.com/mavlink/mavlink). Also see mavlink_udp_helpers.h for additional helper functions for most commonly used packets.
- Author
- James Strawson & Henry Gaudet
- Date
- 1/24/2018
Definition in file mavlink_udp.h.
◆ RC_MAV_DEFAULT_UDP_PORT
| #define RC_MAV_DEFAULT_UDP_PORT 14551 |
◆ rc_mav_cleanup()
Closes UDP port and stops network port listening thread.
This is a blocking function call that returns after the network port listening thread has exited and the UDP port has closed. If the thread fails to exit before timeout a warning message is displayed and the function returns -1 to indicate there was an issue. This should be called before your program exits.
- Returns
- 0 on success, -1 on failure
◆ rc_mav_get_connection_state()
| int rc_mav_get_connection_state |
( |
| ) |
|
Gets the connection state as determined by received heartbeat packets.
Mavlink uses heartbeat packets generally sent at 1s intervals to determine if an active connection is open. This function will return 0 until a heartbeat packet has been received this will return 1. The connection state will transition to lost (0) if 3 seconds passes without receiving a heartbeat packet.
- Returns
- Returns 1 if connection is active, 0 otherwise.
◆ rc_mav_get_msg()
| int rc_mav_get_msg |
( |
int |
msg_id, |
|
|
mavlink_message_t * |
msg |
|
) |
| |
Fetches the last received message of type msg_id.
- Parameters
-
| [in] | msg_id | The message identifier to fetch |
| [out] | msg | place to write to message struct to |
- Returns
- returns 0 on success. Returns -1 on failure, for example if no message of type msg_id has been received.
◆ rc_mav_get_sys_id_of_last_msg()
| int rc_mav_get_sys_id_of_last_msg |
( |
int |
msg_id | ) |
|
Fetches the system ID of the sender of the last received message. of type msg_id.
- Parameters
-
| [in] | msg_id | The message identifier of the packet type to check |
- Returns
- Returns the system ID on success. Returns -1 on failure, for example if no message of type msg_id has been received of type msg_id.
◆ rc_mav_get_sys_id_of_last_msg_any()
| int rc_mav_get_sys_id_of_last_msg_any |
( |
| ) |
|
Fetches the system ID of the sender of the last received message.
- Returns
- Returns the system ID on success. Returns -1 on failure, for example if no message has been received.
◆ rc_mav_id_of_last_msg()
| int rc_mav_id_of_last_msg |
( |
| ) |
|
Returns the msg_id of the last received packet.
- Returns
- Returns the msg_id of the last received packet. Returns -1 on failure, for example if no message has been received.
◆ rc_mav_init()
| int rc_mav_init |
( |
uint8_t |
system_id, |
|
|
const char * |
dest_ip, |
|
|
uint16_t |
port |
|
) |
| |
Initialize a UDP port for sending and receiving.
Initialize a UDP port for sending and receiving. Additionally starts a listening thread that handles incomming packets and makes them available with the remaining functions in this API.
- Parameters
-
| [in] | system_id | The system id of this device tagged in outgoing packets |
| [in] | dest_ip | The destination ip, can be changed later with rc_mav_set_dest_ip |
| [in] | port | Port to listen on and send to |
- Returns
- 0 on success, -1 on failure
◆ rc_mav_is_new_msg()
| int rc_mav_is_new_msg |
( |
int |
msg_id | ) |
|
Inidcates if a particular message type has been received by not read by the user yet.
- Parameters
-
| [in] | msg_id | The message identifier to check |
- Returns
- 1 if new message is available, otherwise 0
◆ rc_mav_ns_since_last_msg()
| int64_t rc_mav_ns_since_last_msg |
( |
int |
msg_id | ) |
|
Fetches the number of nanoseconds since the last message of type msg_id has been received.
- Parameters
-
| [in] | msg_id | The message identifier of the packet type to check |
- Returns
- Returns the number of nanoseconds since the last message of type msg_id has been received. Returns -1 on failure, for example if no message has been received of type msg_id.
◆ rc_mav_ns_since_last_msg_any()
| int64_t rc_mav_ns_since_last_msg_any |
( |
| ) |
|
Fetches the number of nanoseconds since any packet has been received.
- Returns
- Returns the number of nanoseconds since any message has been received. Returns -1 on failure, for example if no message has been received.
◆ rc_mav_print_msg_name()
| int rc_mav_print_msg_name |
( |
int |
msg_id | ) |
|
Prints to stdout a human-readable name for a message type.
- Parameters
-
| [in] | msg_id | The message identifier to print |
- Returns
- Returns 0 on success, or -1 on failure such as if msg_id is invalid.
◆ rc_mav_send_msg()
| int rc_mav_send_msg |
( |
mavlink_message_t |
msg | ) |
|
Sends any user-packed mavlink message.
To construct your own mavlink_message_t from the packet definitions in include/rc/mavlink/common/, follow this example snippet and substitute in the functions for packing the packet you wish to send. rc/mavlink_udp_helpers.h provides many helper functions to pack and send the most common mavlink packets so that you do not need to use this function always.
mavlink_message_t msg;
mavlink_msg_heartbeat_pack(system_id, MAV_COMP_ID_ALL, &msg, 0, 0, 0, 0, 0);
- Parameters
-
| [in] | msg | The message to be sent |
- Returns
- 0 on success, -1 on failure
◆ rc_mav_set_callback()
| int rc_mav_set_callback |
( |
int |
msg_id, |
|
|
void(*)(void) |
func |
|
) |
| |
assign a callback function to be called when a particular message is received.
If a general callback function has been set with rc_mav_set_callback_all, this message-specific callback will be called after the general callback.
- Parameters
-
| [in] | msg_id | The message identifier |
| [in] | func | The callabck function pointer |
- Returns
- 0 on success, -1 on failure
◆ rc_mav_set_callback_all()
| int rc_mav_set_callback_all |
( |
void(*)(void) |
func | ) |
|
Sets a callback function which is called when any packet arrives.
If a message-specific callback function has been set with rc_mav_set_callback(), this general callback will be called before the message-specific callback.
- Parameters
-
| [in] | func | The callback function |
- Returns
- 0 on success, -1 on failure
◆ rc_mav_set_connection_lost_callback()
| int rc_mav_set_connection_lost_callback |
( |
void(*)(void) |
func | ) |
|
Sets a callback function to be called when any heartbeat signal has not been received for 3 seconds indicating a likely dropped connection.
- Parameters
-
| [in] | func | The callback function |
- Returns
- 0 on success, -1 on failure
◆ rc_mav_set_dest_ip()
| int rc_mav_set_dest_ip |
( |
const char * |
dest_ip | ) |
|
Sets the destination ip address for sent packets.
- Parameters
-
| [in] | dest_ip | The destination ip |
- Returns
- 0 on success, -1 on failure
◆ rc_mav_set_system_id()
| int rc_mav_set_system_id |
( |
uint8_t |
system_id | ) |
|
Sets the system identifier.
The system_id is included with every mavlink packet sent so that the receiver can identitfy what sent the current packet. We suggest every mavlink device in a network to have a unique id. The system_id is set during rc_mav_init but can be changed afterwards with this function.
- Parameters
-
| [in] | system_id | The system identifier |
- Returns
- 0 on success, -1 on failure