SDL2-2.0.12
Installation of SDL2
First, if you are building on a 32-bit i686 system, apply a patch
containing a fix for the OpenGL headers and their data types:
case $(uname -m) in
i?86) patch -Np1 -i ../SDL2-2.0.12-opengl_include_fix-1.patch ;;
esac
Install SDL2 by running the
following commands:
./configure --prefix=/usr &&
make
If you have Doxygen-1.8.17 installed and want to build the
html documentation, run the following commands:
pushd docs &&
doxygen &&
popd
Note
If you wish to build and run the package regression tests, do not
delete the static libraries below until after the tests are
built.
Now, as the root
user:
make install &&
rm -v /usr/lib/libSDL2*.a
If you built the documentation, install it as the root
user:
install -v -m755 -d /usr/share/doc/SDL2-2.0.12/html &&
cp -Rv docs/output/html/* /usr/share/doc/SDL2-2.0.12/html
Command Explanations
rm -v
/usr/lib/libSDL2*.a: Normally static libraries can
be disabled with a --disable-static
option to configure, but that breaks the build in this package.
--disable-alsa-shared
: This switch
disables dynamically loading ALSA shared libraries.
--disable-sdl-dlopen
: This switch
disables using dlopen for shared object loading. Loading image
backend libraries like libpng dynamically on the fly does not work.
--disable-x11-shared
: This switch
disables dynamically loading X11 shared libraries.
Configuring SDL2
Configuration Information
As with most libraries, there is no configuration to do, save
that the library directory, i.e., /opt/lib
or /usr/local/lib
should appear in /etc/ld.so.conf
so that ldd can find the shared
libraries. After checking that this is the case, /sbin/ldconfig should be run
while logged in as root
.
Contents
Installed Program:
sdl2-config
Installed Libraries:
libSDL2.so
Installed Directories:
/usr/include/SDL2 and
/usr/share/doc/SDL-2.0.12
Short Descriptions
|
sdl2-config
|
determines the compile and linker flags that should be
used to compile and link programs that use libSDL2 .
|
|
libSDL2.so
|
contains functions that provide low level access to
audio, keyboard, mouse, joystick, 3D hardware via OpenGL,
and 2D frame buffer across multiple platforms.
|
Last updated on 2020-03-15 17:31:07 -0500


| 017:028 Khan | : |
And if you (O Muhammad SAW) turn away from them (kindred, poor, wayfarer, etc. whom We have ordered you to give their rights, but if you have no money at the time they ask you for it) and you are awaiting a mercy from your Lord for which you hope, then, speak unto them a soft kind word (i.e. Allah will give me and I shall give you). |
| 017:028 Maulana | : |
And if thou turn away from them to seek mercy from thy Lord, which thou hopest for, speak to them a gentle word. |
| 017:028 Pickthal | : |
But if thou turn away from them, seeking mercy from thy Lord, for which thou hopest, then speak unto them a reasonable word. |
| 017:028 Rashad | : |
Even if you have to turn away from them, as you pursue the mercy of your Lord, you shall treat them in the nicest manner. |
| 017:028 Sarwar | : |
If you are not able to assist them, at least speak to them in a kind manner. |
| 017:028 Shakir | : |
And if you turn away from them to seek mercy from your Lord, which you hope for, speak to them a gentle word. |
| 017:028 Sherali | : |
And if thou has to turn away from them while seeking thy Lord's mercy for which thou hopest, even then speak to them a kind word. |
| 017:028 Yusufali | : |
And even if thou hast to turn away from them in pursuit of the Mercy from thy Lord which thou dost expect, yet speak to them a word of easy kindness. |
Concepts/Themes Covered: أركان الإسلام > الزكاة والصدقات Pillars of Islam> Due Alms and Charities تنظيم العلاقات المالية > الزكاة Organizing Financial Relationships>Due Alms تنظيم العلاقات المالية > الفقراء Organizing Financial Relationships>The Poor
This tool uses eight English parallel translations for the Holy Quran imported from Mr. Clay Smith. You can also visit Qurany Concepts for browsing the Quran themes or topics. If you want to search the Holy Quran for keywords, please visit Qurany Keywords.


With no volunteers to take over these posts in my absence this will be the last diary for the next 3 weeks or so. I’ll try to fill it with enough things to read whilst I’m not here!
Commentary and blogs
- If you ever feel the need to use 40 trillion pixels to have an algorithmically created image the brain of a fly, don’t fret because Google have already done it!
- Catch up with the latest trends in NLP from the Association for Computational Linguistics
- When you go on your next date, be careful as its about to get a lot harder to know what is the person and what is their AI wingman
- The next big thing in ML is going to be applying existing knowledge to the sound domain, NLP was so 2018
- A fun post in the New York Times and the mathematical equivalent of that blue/gold dress problem of yesteryear.
- I have a new preferred way of explaining Monads to people (if you don’t know what they are then perhaps avoid this particular rabbit hole for now!) who are getting started in understanding functional programming as it only depends on a little knowledge of javascript.
- I’m surprised I haven’t shared this before but if you have more interest in computers than statistics Julia Evans has a huge amount of posts on her website. These range from linux themed comic strips from her zines through to technical blogs on computing and then on to how to be happy when working in a remote job
- MIT wrote a good summary about how policy innovation is promoting data sharing
Courses and books
- Luke pointed me in the direction of a Deep Learning Book Series and whilst I’ve only read the first eight posts the biggest selling point is that Yoshua Bengio is involved (you may have heard of him if you read last week’s post as one of the winners of the Turing Award this year with Hinton and le Cunn).
Papers
Only the one this week, but a pretty fun one. New research has been published on ‘defuzzifying’ an image. This is the tech that has been part of TV crime shows for years - I lost count of how many times the IT person has a blurry image and in seconds it processes to be a detailed image of somebody’s face.
There is also this paper for giving some privacy when facial recognition is being used but I’ve not found the time to read it yet.
Origin of the title
See how much better Full House is when every character is Ron Swanson via deepfakes.


Germany's Daimler to cut 'thousands' of jobs over 3 years
by The Associated Press Staff ContactBERLIN -- Daimler says it plans to cut thousands of jobs worldwide by the end of 2022. The German automaker says it plans not to fill some vacant posts and to offer severance packages in Germany to reduce administrative jobs.
The company had said Nov. 14 that it plans to slash costs by 1.4 billion euros ($1.54 billion) by cutting every tenth managerial position and through other measures, but didn't give details.
A statement Friday said Daimler had agreed with its employee council on principles to slim down the company structure and the two sides will work further on implementation details over the coming weeks.
It said it aims to cut "thousands" of jobs worldwide over three years but didn't offer a precise figure.


I'm A Celeb stars' luxury items from make-up and pillow to that Jane McDonald pic
The main campmates attempted to win luxury items for all the celebrities in the Put Your Oar In It challenge
by Tiffany WallisI'm A Celebrity...Get Me Out Of Here! ended in disaster last night as most of the stars' luxury items ended up at the bottom of a swamp.
The campmates from Croc Creek took part in the Put Your Oar In It challenge in a bid to get their hands on packages containing the celebrities' requested items.
They all get to pick one thing to bring into camp with them to help them get through three weeks in the wilderness.
However, the only way they could get hold of them was for the famous faces in the main camp to retrieve them from across over a pond - with nothing but oars to help them.
Kate Garraway , Roman Kemp, Adele Roberts , Nadine Coyle and Myles Stephenson had to secure each parcel from a pile and move it into a safe box across a pond using nothing but wooden oars.
However, their balancing skills proved woefully inadequate with only two items making it back to camp.
Kate Garraway was gifted her concealer and Adele Roberts returned with a framed photo of singer/telly star Jane McDonald.
Here, are the luxury items that the other celebrities missed out on...
Nadine Coyle
After announcing that she wasn't too fussed about retrieving her luxury item - a Tangle Teaser hairbrush - Nadine's item was used as a practise attempt.
The parcel containing the hairbrush quickly fell into the swamp after the stars clashed oars just moments after starting the difficult challenge.
James Haskell
Sadly the Rugby star's orthopaedic pillow also never made it back to camp and slowly dunked under the swamp.
GMB star Kate admitted she knew how important the pillow was to James and explained how he had damaged his neck playing rugby and the custom pillow helped the sportsman sleep.
Adele Roberts
Fans went into meltdown after the inside of Adele's package was revealed.
She admitted she wanted to take a framed photo of Jane MacDonald into the jungle as she described her as a "legend".
The radio presenter chose a picture of her favourite Loose Women star and encouraged everyone to give the photo a "lucky rub", after it was safely retrieved from the swamp challenge.
Roman Kemp
The Capital FM DJ revealed that his luxury item was a sentimental one and was a mug with a photo of his girlfriend and his dog on it.
After watching his parcel sink into the water, Roman told viewers how the package "meant a lot to him".
He said: "I've actually been missing home quite a lot already.
"Seeing my luxury item go into the swamp is definitely one of the lowest moments I've had so far."
Myles Stephenson
The Rak-Su singer decided to take a disposable camera into camp, with hopes of capturing once-in-a-lifetime memories from his adventure Down Under.
He explained the reasons behind his unusual luxury item choice : "Why not make a few memories in the jungle, you know?"
Sadly, Myles' camera never made it across the oars.
Caitlyn Jenner
A-lister Caitlyn Jenner chose to take a luxury moisturiser cream into the jungle, however Croc Creek campmates failed to save it during the challenge.
Jacqueline Jossa
Campmates really felt the pressure as they tried to save a photo of Jacqueline's children during the challenge.
Her little piece of home never made it to Snake Rock after falling in the swamp.
Kate Garraway
The other luxury item that made it back to camp was Kate Garraway's trusty concealer.
The star appeared to feel guilty about her decision to bring the make-up essential into the jungle as she joked she would happily share it around with her fellow campmates.
Ian Wright
Roman took the blame for not saving 'hero' Ian's luxury item. He even joked: "I'm actually quite scared to ask what it was."
Andrew Maxwell
While the comedian's luxury item was never revealed during the challenge, we can confirm his package sadly wasn't won.
*I'm A Celebrity continues tonight on ITV at 9pm


|
libsir 2.2.2
Standard Incident Reporter
|
Thread pool/job queue data container. More...
Data Fields | |
| sir_thread * | threads |
| A list of thread handles. | |
| size_t | num_threads |
| The number of threads in the pool. | |
| sir_queue * | jobs |
| A queue of jobs to run (FIFO). | |
| sir_condition | cond |
| A condition which indicates that a job is ready. | |
| sir_mutex | mutex |
| A mutex to be paired with the condition variable. | |
| bool | cancel |
| Causes threads in the pool to exit when true. | |
Thread pool/job queue data container.
| sir_thread* sir_threadpool::threads |
A list of thread handles.
| size_t sir_threadpool::num_threads |
The number of threads in the pool.
| sir_queue* sir_threadpool::jobs |
A queue of jobs to run (FIFO).
| sir_condition sir_threadpool::cond |
A condition which indicates that a job is ready.
| sir_mutex sir_threadpool::mutex |
A mutex to be paired with the condition variable.
| bool sir_threadpool::cancel |
Causes threads in the pool to exit when true.


final
field inside a compareTo()
implementation.
Such access may result in compareTo()
returning different results at different points in the object's lifecycle, which may in turn cause problems when
using the standard collections classes, for example java.util.TreeSet
.
A quick-fix to make the field final
is available
only when there is no write access to the field, otherwise no fixes are suggested.
Example:
class Foo implements Comparable<Foo>{
private int index;
Foo(int idx) {
index = idx;
}
@Override
public int compareTo(Foo foo) {
return Integer.compare(this.index, foo.index);
}
}
After the quick-fix is applied:
class Foo implements Comparable<Foo>{
private final int index;
Foo(int idx) {
index = idx;
}
@Override
public int compareTo(Foo foo) {
return Integer.compare(this.index, foo.index);
}
}


This tool allows reading Freefall in a continuous format, uninterrupted by page loads. It will automatically load comics as they scroll onscreen, so your browser doesn't have to download everything at once.
Freefall is written and drawn by Mark Stanley. This interface was coded by Tangent.


§431:2-103 Salary. The salary of the commissioner shall be set by the director of commerce and consumer affairs but shall not be more than the maximum salary of first deputies to department heads. [L 1987 c 347, pt of §2]
Cross References
Salary of deputies or assistants, see §26-53.


{% extends "siteconfig/settings.html" %} {% block subnavbar %}{% endblock %} {% block form_content %} {% comment %} This tricks the browser into autofilling this field and not subsequent fields. Since there's no name=, nothing will be sent to the server. {% endcomment %}
{{block.super}} {% endblock form_content %}


Software License
Copyright (c) 2011, Gocasts
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.


Money Play. How should Red play 63?
pips Red=130 White=136
(CorrectAnswer= 0/0, ErrorScore= 0)
Over the board I played the tidy 12/3 but now is the time to leave the rear anchor while White has three blots in his home board. Red must play 21/12,
When ahead in the race, race and so now is the time to go.
When ahead in the race, race and so now is the time to go.
1. Cubeful 2-ply 21/12 Eq.: +0.219 0.575 0.130 0.003 - 0.425 0.123 0.002 2. Cubeful 2-ply 12/3 Eq.: +0.196 (-0.023) 0.556 0.134 0.002 - 0.444 0.098 0.002 3. Cubeful 2-ply 21/18 12/6 Eq.: +0.151 (-0.068) 0.552 0.180 0.006 - 0.448 0.162 0.005 4. Cubeful 0-ply 12/6 5/2 Eq.: +0.030 (-0.190) 0.502 0.129 0.002 - 0.498 0.103 0.002 5. Cubeful 0-ply 12/6 8/5 Eq.: -0.008 (-0.227) 0.488 0.135 0.003 - 0.512 0.105 0.003


How to use the Feathers ToggleSwitch
component
The ToggleSwitch
component switches between on and off states. It can be considered a stylized alternative to a Check
control that is especially relevant when targeting touch screens. The thumb may be dragged from side to side, or it may be tapped to change selection.
The Basics
First, let's create a toggle switch, select it, and add it to the display list.
var toggle:ToggleSwitch = new ToggleSwitch();
toggle.isSelected = true;
this.addChild( toggle );
The isSelected
property indicates if the toggle switch is on (true
) or off (false
). Add a listener to Event.CHANGE
to know when the isSelected
property changes:
toggle.addEventListener( Event.CHANGE, toggle_changeHandler );
The listener might look something like this:
function toggle_changeHandler( event:Event ):void
{
var toggle:ToggleSwitch = ToggleSwitch( event.currentTarget );
trace( "toggle.isSelected changed:", toggle.isSelected );
}
Skinning a ToggleSwitch
The skins for a ToggleSwitch
control are divided into the thumb, labels for off and on text, and one or two tracks. For full details about what skin and style properties are available, see the ToggleSwitch
API reference. We'll look at a few of the most common ways of styling a toggle switch below.
Font styles
The font styles of the on and off labels may be customized using the onLabelFontStyles
and offLabelFontStyles
properties, respectively.
toggle.onLabelFontStyles = new TextFormat( "Helvetica", 20, 0xcc0000 );
toggle.offLabelFontStyles = new TextFormat( "Helvetica", 20, 0x000000 );
Pass in a starling.text.TextFormat
object, which will work with any type of text renderer.
If the labels should use different font styles when it is disabled, you may set the onLabelDisabledFontStyles
and offLabelDisabledFontStyles
properties too:
toggle.onLabelDisabledFontStyles = new TextFormat( "Helvetica", 20, 0x9a9a9a );
toggle.offLabelDisabledFontStyles = new TextFormat( "Helvetica", 20, 0x9a9a9a );
Track(s) and Layout
The toggle switch's track is made from either one or two buttons, depending on the value of the trackLayoutMode
property. The default value of this property is TrackLayoutMode.SINGLE
, which creates a single track that fills the entire width and height of the toggle switch.
If we'd like to have separate buttons for both sides of the track (one for the on side and another for the off side), we can set trackLayoutMode
to TrackLayoutMode.SPLIT
. In this mode, the width or height of each track (depending on the direction of the toggle switch) is adjusted as the thumb moves to ensure that the two tracks always meet at the center of the thumb.
TrackLayoutMode.SINGLE
is often best for cases where the track's appearance is mostly static. When you want down or hover states for the track, TrackLayoutMode.SPLIT
works better because the state will only change on one side of the thumb, making it more visually clear to the user what is happening.
When the value of trackLayoutMode
is TrackLayoutMode.SINGLE
, the toggle switch will have a on track, but it will not have a off track. The on track will fill the entire region that is draggable.
Skinning the Thumb
This section only explains how to access the thumb sub-component. Please read How to use the Feathers Button
component for full details about the skinning properties that are available on Button
components.
With a Theme
If you're creating a theme, you can target the ToggleSwitch.DEFAULT_CHILD_STYLE_NAME_THUMB
style name.
getStyleProviderForClass( Button )
.setFunctionForStyleName( ToggleSwitch.DEFAULT_CHILD_STYLE_NAME_THUMB, setToggleSwitchThumbStyles );
The styling function might look like this:
private function setToggleSwitchThumbStyles( thumb:Button ):void
{
var skin:ImageSkin = new ImageSkin( texture );
skin.scale9Grid = new Rectangle( 2, 3, 1, 6 );
thumb.defaultSkin = skin;
}
You can override the default style name to use a different one in your theme, if you prefer:
toggle.customThumbStyleName = "custom-thumb";
You can set the function for the customThumbStyleName
like this:
getStyleProviderForClass( Button )
.setFunctionForStyleName("custom-thumb", setToggleSwitchCustomThumbStyles );
Without a Theme
If you are not using a theme, you can use thumbFactory
to provide skins for the toggle switch's thumb:
toggle.thumbFactory = function():Button
{
var button:Button = new Button();
//skin the thumb here, if not using a theme
var skin:ImageSkin = new ImageSkin( texture );
skin.scale9Grid = new Rectangle( 2, 3, 1, 6 );
thumb.defaultSkin = skin;
return button;
}
Skinning the On Track
This section only explains how to access the on track sub-component. Please read How to use the Feathers Button
component for full details about the skinning properties that are available on Button
components.
With a Theme
If you're creating a theme, you can target the ToggleSwitch.DEFAULT_CHILD_STYLE_NAME_ON_TRACK
style name.
getStyleProviderForClass( Button )
.setFunctionForStyleName( ToggleSwitch.DEFAULT_CHILD_STYLE_NAME_ON_TRACK, setToggleSwitchOnTrackStyles );
The styling function might look like this:
private function setToggleSwitchOnTrackStyles( track:Button ):void
{
var skin:ImageSkin = new ImageSkin( texture );
skin.scale9Grid = new Rectangle( 2, 3, 1, 6 );
track.defaultSkin = skin;
}
You can override the default style name to use a different one in your theme, if you prefer:
toggle.customOnTrackStyleName = "custom-on-track";
You can set the function for the customOnTrackStyleName
like this:
getStyleProviderForClass( Button )
.setFunctionForStyleName( "custom-on-track", setToggleSwitchCustomOnTrackStyles );
Without a Theme
If you are not using a theme, you can use onTrackFactory
to provide skins for the toggle switch's on track:
toggle.onTrackFactory = function():Button
{
var button:Button = new Button();
//skin the on track here, if not using a theme
var skin:ImageSkin = new ImageSkin( texture );
skin.scale9Grid = new Rectangle( 2, 3, 1, 6 );
track.defaultSkin = skin;
return button;
}
Skinning the Off Track
This section only explains how to access the off track sub-component. Please read How to use the Feathers Button
component for full details about the skinning properties that are available on Button
components.
The toggle switch's off track may be skinned similarly to the on track. The style name to use with themes is ToggleSwitch.DEFAULT_CHILD_STYLE_NAME_OFF_TRACK
or you can customize the style name with customOffTrackStyleName
. If you aren't using a theme, then you can use offTrackFactory
.


What is ANTLR?
ANTLR (ANother Tool for Language Recognition) is a
powerful parser generator for reading, processing, executing, or
translating structured text or binary files. It's widely used to build
languages, tools, and frameworks. From a grammar, ANTLR generates a
parser that can build and walk parse trees.
Looking for ANTLR v3?
Terence Parr is the maniac behind ANTLR and has been
working on language tools since 1989. He is a professor of computer
science at the
University of San Francisco.
Samples
OS X
$ cd /usr/local/lib
$ sudo curl -O http://www.antlr.org/download/antlr-4.2.2-complete.jar
$ export CLASSPATH=".:/usr/local/lib/antlr-4.2.2-complete.jar:$CLASSPATH"
$ alias antlr4='java -jar /usr/local/lib/antlr-4.2.2-complete.jar'
$ alias grun='java org.antlr.v4.gui.TestRig'
LINUX
$ cd /usr/local/lib
$ wget http://antlr.org/download/antlr-4.2.2-complete.jar
$ export CLASSPATH=".:/usr/local/lib/antlr-4.2.2-complete.jar:$CLASSPATH"
$ alias antlr4='java -jar /usr/local/lib/antlr-4.2.2-complete.jar'
$ alias grun='java org.antlr.v4.gui.TestRig'
Windows
- Download http://antlr.org/download/antlr-4.2.2-complete.jar.
- Add antlr4-complete.jar to CLASSPATH, either:
- Create batch commands for ANTLR Tool, TestRig in dir in PATH
antlr4.bat: java org.antlr.v4.Tool %*
grun.bat: java org.antlr.v4.gui.TestRig %*
grammar Expr;
prog: (expr NEWLINE)* ;
expr: expr ('*'|'/') expr
| expr ('+'|'-') expr
| INT
| '(' expr ')'
;
NEWLINE : [\r\n]+ ;
INT : [0-9]+ ;
$ antlr4 Expr.g4
$ javac Expr*.java
$ grun Expr prog -gui
100+2*34
^D
Linux
Mac


Hi! My name is Josh Gagle. I'm 35 years old and live in Indianapolis. I'm currently taking a full stack boot camp course at Butler University. I have always been fascinated by technology for as long as I can remember. I enjoy keeping up on the newest and latest tech that comes out. I decided to take my passion and turn it into a career with web development. Everything I have learned so far is very exciting. In my free time I enjoy hiking, building computers, playing guitar, and of course coding! Thanks for taking the time to stop by and check out my work. Feel free to contact me with any questions you may have.


---
creation_epoch:<PHONE_NUMBER>
lastmod_epoch:<PHONE_NUMBER>
categories: ['Curriculum Vitae']
title: Webmaster Work I've Done
---
Below are links to old archived web sites that I've created for others. Please note that some of the functionality of these old sites may be broken or disabled on purpose.
- WebSite 2014 - 2018. My website when hosted on my own VPS before GitHub Pages.
- www.soonerfamilyfunzone.com
- www.motabok.com - 2009. A promotional web site for the Mormon Tabernacle Choir performance in Norman,OK. I didn't do the graphics, but I did setup the web hosting and the e-card invite cgi code. The e-card e-mail functionality has been disabled now.
- OU Engineering Club - 2008. A mock-up redesign of the University of Oklahoma's Engineering Club web site. It was never used for the actual site.
- WebSite 2000 - 2002 - 2000. My second web site
- Snyder High School - 1999. My high school's web site that I designed and maintained while I was a senior in 1999.
- TexasBites.com - 1999. I used to host an e-mail alias service with the domain name of texasbites.com.
- WebSite 1998 - 1998. My first web site


|
|
CIFXMesh Class ReferenceInheritance diagram for CIFXMesh:
List of all members.
|
Public Member Functions |
| U32 IFXAPI | AddRef () |
| U32 IFXAPI | Release () |
| IFXRESULT IFXAPI | QueryInterface (IFXREFIID interfaceId, void **ppInterface) |
| virtual IFXRESULT IFXAPI | Allocate (IFXVertexAttributes vaAttribs, U32 uNumVertices, U32 uNumFaces) |
| virtual IFXRESULT IFXAPI | Copy (IFXMesh &pSrcMesh) |
| virtual IFXRESULT IFXAPI | FastCopy (IFXMesh &rSrcMesh, U32 uStartVertex, U32 uNumVertices, U32 uStartFace, U32 uNumFaces) |
| virtual IFXRESULT IFXAPI | TransferData (IFXMesh &rSrcMesh, IFXMeshAttributes uTransferAttr, IFXMeshAttributes uCopyAttr) |
| virtual IFXRESULT IFXAPI | IncreaseSize (U32 uNumNewFaces, U32 uNumNewVerts) |
| virtual IFXRESULT IFXAPI | GetVertexIter (IFXVertexIter &iter) |
| virtual IFXRESULT IFXAPI | GetVectorIter (IFXenum eType, IFXIterator &iter) |
| virtual IFXRESULT IFXAPI | GetFaceIter (IFXFaceIter &iter) |
| virtual IFXRESULT IFXAPI | GetU16FaceIter (IFXU16FaceIter &iter) |
| virtual IFXRESULT IFXAPI | GetU32FaceIter (IFXU32FaceIter &iter) |
| virtual IFXRESULT IFXAPI | GetLineIter (IFXLineIter &iter) |
| virtual IFXRESULT IFXAPI | GetU16LineIter (IFXU16LineIter &iter) |
| virtual IFXRESULT IFXAPI | GetU32LineIter (IFXU32LineIter &iter) |
| virtual IFXRESULT IFXAPI | GetMeshData (IFXenum eMeshAttribute, IFXInterleavedData *&pMeshData) |
| virtual IFXRESULT IFXAPI | SetMeshData (IFXenum eMeshAttribute, IFXInterleavedData *pMeshData) |
| virtual IFXRESULT IFXAPI | GetInterleavedVertexData (IFXInterleavedData *&pMeshData) |
| virtual IFXRESULT IFXAPI | PurgeRenderData () |
| virtual IFXRESULT IFXAPI | GetVersionWord (IFXenum eMeshAttribute, U32 &uVersionWord) |
| virtual IFXRESULT IFXAPI | UpdateVersionWord (IFXenum eMeshAttribute) |
virtual IFXVertexAttributes
IFXAPI | GetAttributes () |
| virtual U32 IFXAPI | GetNumAllocatedVertices () |
| virtual U32 IFXAPI | GetMaxNumVertices () |
| virtual U32 IFXAPI | GetNumVertices () |
| virtual U32 IFXAPI | GetNumAllocatedFaces () |
| virtual U32 IFXAPI | GetMaxNumFaces () |
| virtual U32 IFXAPI | GetNumFaces () |
| virtual IFXRESULT IFXAPI | AllocateLines (U32 uNumLines) |
| virtual U32 IFXAPI | GetNumAllocatedLines () |
| virtual U32 IFXAPI | GetMaxNumLines () |
| virtual U32 IFXAPI | GetNumLines () |
| virtual IFXRESULT IFXAPI | SetMaxNumVertices (U32 uNumVertices) |
| virtual IFXRESULT IFXAPI | SetMaxNumFaces (U32 uNumFaces) |
| virtual IFXRESULT IFXAPI | SetMaxNumLines (U32 uNumFaces) |
| virtual IFXRESULT IFXAPI | SetNumVertices (U32 uNumVertices) |
| virtual IFXRESULT IFXAPI | SetNumFaces (U32 uNumFaces) |
| virtual IFXRESULT IFXAPI | SetNumLines (U32 uNumFaces) |
| virtual IFXRESULT IFXAPI | GetBoundingSphere (IFXVector4 &vBoundSphere) |
| virtual IFXRESULT IFXAPI | SetBoundingSphere (const IFXVector4 &vBoundSphere) |
| virtual IFXRESULT IFXAPI | CalcBoundingSphere () |
| virtual BOOL IFXAPI | IsColorBGR (U32 uColorNum=0) |
| virtual IFXRESULT IFXAPI | SwizzleDiffuseColors () |
| virtual IFXRESULT IFXAPI | SwizzleSpecularColors () |
| U32 IFXAPI | GetId () const |
| U32 IFXAPI | NewId () |
| void IFXAPI | SetId (U32) |
| IFXRESULT IFXAPI | SetRenderTexCoordsInUse (IFXMeshAttributes eTexCoordBits) |
| IFXMeshAttributes IFXAPI | GetRenderTexCoordsInUse () |
| IFXUVMapParameters &IFXAPI | GetUVMapParameters (U32 uTexLayer) |
| IFXRESULT IFXAPI | SetNumTextureCoords (U32 uNumTextureCoords) |
| U32 IFXAPI | GetNumTextureCoords () const |
| virtual IFXRESULT IFXAPI | ReverseNormals () |
| IFXRESULT IFXAPI | GetOffsetTransform (IFXMatrix4x4 *pMatrix) const |
| IFXRESULT IFXAPI | SetOffsetTransform (IFXMatrix4x4 *pMatrix) |
| virtual EIFXRenderable IFXAPI | GetRenderableType () const |
| virtual void IFXAPI | SetRenderableType (EIFXRenderable type) |
Protected Member Functions |
| | CIFXMesh () |
| | ~CIFXMesh () |
| virtual IFXRESULT IFXAPI | Construct () |
| virtual IFXRESULT IFXAPI | Destroy () |
| void IFXAPI | CalculateVectorSizes () |
| U32 IFXAPI | CalculateMeshVersion () |
| IFXMeshAttributes IFXAPI | CalculateDirtyAttribs (IFXMeshAttributes &eInterleavedAttribs) |
| IFXRESULT IFXAPI | InterleaveData (IFXMeshAttributes eDirtyAttribs, IFXMeshAttributes eAllAttribs) |
Protected Attributes |
| U32 | m_puVectorSizes [IFX_MESH_NUM_ATTRIBUTES] |
| IFXInterleavedDataPtr | m_pspMeshData [IFX_MESH_NUM_ATTRIBUTES] |
| IFXInterleavedDataPtr | m_spInterleavedData |
| U32 | m_pVersionsInterleaved [IFX_MESH_RENDER_TC0+IFX_MAX_TEXUNITS] |
| U32 | m_uNumVerticesInterleaved |
| IFXUVMapParameters | m_pUVMapParams [IFX_MAX_TEXUNITS] |
| IFXMeshAttributes | m_eRenderTCsUsed |
| U32 | m_uNumTCsUsed |
| IFXMeshAttributes | m_eInterleavedAttribs |
| U32 | m_uNumAllocatedVertices |
| U32 | m_uMaxNumVertices |
| U32 | m_uNumVertices |
| U32 | m_uNumAllocatedFaces |
| U32 | m_uMaxNumFaces |
| U32 | m_uNumFaces |
| U32 | m_uNumAllocatedLines |
| U32 | m_uMaxNumLines |
| U32 | m_uNumLines |
| IFXVertexAttributes | m_vaAttribs |
| IFXVector4 | m_vBoundingSphere |
| U32 | m_uId |
| IFXMatrix4x4 | m_offsetTransform |
| EIFXRenderable | m_renderableType |
Private Attributes |
| U32 | m_refCount |
Friends |
| IFXRESULT IFXAPI_CALLTYPE | CIFXMeshFactory (IFXREFIID intId, void **ppPtr) |
Constructor & Destructor Documentation
| CIFXMesh::CIFXMesh |
( |
|
) |
[protected] |
|
| CIFXMesh::~CIFXMesh |
( |
|
) |
[protected] |
|
Member Function Documentation
| U32 CIFXMesh::AddRef |
( |
|
) |
[virtual] |
|
|
|
This method increments the reference count for an interface on a component.
- Note:
- It should be called for every new copy of a pointer to an interface on a given component.
- Returns:
- It returns a U32 that contains a value from 1 to 2^32 - 1 that defines the new reference count. The return value should only be used for debugging purposes.
Implements IFXUnknown. |
|
|
Allocates (or reallocates) memory for the vertex and face pools depending on the vertex attributes and the number of vertices and faces that were passed in.
- Parameters:
-
| vaAttribs | Input IFXVertexAttributes object that specifies what data is stored in each vertex. |
| uNumVertices | Input U32 specifying how many vertices to allocate space for. The size of each vertex is dependent on the settings of vaAttribs. |
| uNumFaces | Input U32 specifying the number of faces to allocate space for. The size of each face is dependent on how many vertices are being allocated. If there are less than 65536 vertices, each face is 6 bytes, otherwise each face is 12 bytes. |
- Returns:
- IFXRESULT.
- Return values:
-
| IFX_OK | No error. |
| IFX_E_OUT_OF_MEMORY | There is not enough memory available to complete this method. The mesh is in an undefined state when this occurs. |
Implements IFXMesh. |
| IFXRESULT CIFXMesh::AllocateLines |
( |
U32 |
uNumLines |
) |
[virtual] |
|
| IFXRESULT CIFXMesh::CalcBoundingSphere |
( |
|
) |
[virtual] |
|
| U32 CIFXMesh::CalculateMeshVersion |
( |
|
) |
[protected] |
|
| void CIFXMesh::CalculateVectorSizes |
( |
|
) |
[protected] |
|
| IFXRESULT CIFXMesh::Construct |
( |
|
) |
[protected, virtual] |
|
| IFXRESULT CIFXMesh::Copy |
( |
IFXMesh & |
pSrcMesh |
) |
[virtual] |
|
|
|
Copies the entire mesh data that lives in rSrcMesh into this mesh object.
Data that exists in the current mesh that does not get replaced with data in rSrcMesh will be preserved. If this mesh object does not have enough memory allocated for the data, this mesh will be reallocated.
- Parameters:
-
| rSrcMesh | Input IFXMesh reference containing mesh data that will be copied into this mesh object. |
- Returns:
- IFXRESULT.
- Return values:
-
| IFX_OK | No error. |
| IFX_E_OUT_OF_MEMORY | There is not enough memory available to complete this method. The mesh is in an undefined state when this occurs. |
Implements IFXMesh. |
| IFXRESULT CIFXMesh::Destroy |
( |
|
) |
[protected, virtual] |
|
| IFXRESULT IFXAPI CIFXMesh::FastCopy |
( |
IFXMesh & |
rSrcMesh, |
|
|
U32 |
uStartVertex, |
|
|
U32 |
uNumVertices, |
|
|
U32 |
uStartFace, |
|
|
U32 |
uNumFaces |
|
) |
[virtual] |
|
|
|
Copies a portion of rSrcMesh into the current mesh object.
The vertex attributes of rSrcMesh and this mesh must be identical. This method allows a fast memcpy() data copy rather than working element by element. This method will clamp the number of vertices copied to what is allocated in the target mesh.
- Parameters:
-
| rSrcMesh | Input Reference to an IFXMesh containing mesh data to be copied into this mesh. |
| uStartVertex | Vertex index that begins the range of vertex data to copy. |
| uNumVertices | Number of vertices to copy. |
| uStartFace | Face index that begins the range of face data to copy. |
| uNumFaces | Number of faces to copy. |
- Returns:
- IFXRESULT.
- Return values:
-
| IFX_OK | No error. |
| IFX_E_INVALID_POINTER | The vertex attributes of rSrcMesh are not compatible with this mesh. |
Implements IFXMesh. |
| IFXRESULT CIFXMesh::GetBoundingSphere |
( |
IFXVector4 & |
vBoundSphere |
) |
[virtual] |
|
| IFXRESULT CIFXMesh::GetFaceIter |
( |
IFXFaceIter & |
iter |
) |
[virtual] |
|
|
|
Retrieves an IFXFaceIter that will work with both 16 and 32 bit vertex indices.
This iterator can be used to iterate over the faces in this mesh. This will be slower than using GetU16FaceIter() or GetU32FaceIter().
- Parameters:
-
| iter | Ouptut IFXFaceIter reference that will iterate over the faces contained in the mesh, regardless of face index size. |
- Returns:
- IFXRESULT.
- Return values:
-
Implements IFXMesh. |
| U32 CIFXMesh::GetId |
( |
|
) |
const [virtual] |
|
|
|
Gets the unique ID number for this mesh.
Implements IFXMesh. |
| IFXRESULT CIFXMesh::GetInterleavedVertexData |
( |
IFXInterleavedData *& |
pMeshData |
) |
[virtual] |
|
| IFXRESULT CIFXMesh::GetLineIter |
( |
IFXLineIter & |
iter |
) |
[virtual] |
|
|
|
Retrieves an IFXLineIter that will work with both 16 and 32 bit vertex indices.
This iterator can be used to iterate over the lines in this mesh. This will be slower than using GetU16LineIter() or GetU32LineIter()
- Parameters:
-
| iter | Ouptut IFXLineIter reference that will iterate over the Lines contained in the mesh, regardless of Line index size. |
- Returns:
- IFXRESULT.
- Return values:
-
Implements IFXMesh. |
| U32 CIFXMesh::GetMaxNumFaces |
( |
|
) |
[virtual] |
|
| U32 CIFXMesh::GetMaxNumLines |
( |
|
) |
[virtual] |
|
| U32 CIFXMesh::GetMaxNumVertices |
( |
|
) |
[virtual] |
|
| U32 CIFXMesh::GetNumAllocatedFaces |
( |
|
) |
[virtual] |
|
| U32 CIFXMesh::GetNumAllocatedLines |
( |
|
) |
[virtual] |
|
| U32 CIFXMesh::GetNumAllocatedVertices |
( |
|
) |
[virtual] |
|
| U32 CIFXMesh::GetNumFaces |
( |
|
) |
[virtual] |
|
| U32 CIFXMesh::GetNumLines |
( |
|
) |
[virtual] |
|
| U32 CIFXMesh::GetNumTextureCoords |
( |
|
) |
const [virtual] |
|
|
|
Gets the number texture coordinates in use.
Implements IFXMesh. |
| U32 CIFXMesh::GetNumVertices |
( |
|
) |
[virtual] |
|
| IFXRESULT CIFXMesh::GetOffsetTransform |
( |
IFXMatrix4x4 * |
pMatrix |
) |
const [virtual] |
|
|
|
Returns the offset transform for a mesh.
- Parameters:
-
| pMatrix | The pointer to the transformation matrix |
- Returns:
- An IFXRESULT value.
- Return values:
-
Implements IFXMesh. |
|
|
Returns the type of renderable which produced the mesh.
- Returns:
- An EIFXRenderable value.
Implements IFXMesh. |
|
|
Gets the set of render texture coordinates in use.
Implements IFXMesh. |
| IFXRESULT CIFXMesh::GetU16FaceIter |
( |
IFXU16FaceIter & |
iter |
) |
[virtual] |
|
|
|
Retrieves an IFXU16FaceIter to iterate over the mesh's face data.
This method will fail if the mesh contains 32 bit face indices. The IFXU16FaceIter is much faster than using IFXFaceIter for the same data.
- Parameters:
-
| iter | Output IFXU16FaceIter that can be used to iterate over this mesh's face data. |
- Returns:
- IFXRESULT.
- Return values:
-
| IFX_OK | No error. |
| IFX_E_INVALID_RANGE | The mesh contains 32 bit face indices, which are incompatible with IFXU16FaceIter. |
Implements IFXMesh. |
| IFXRESULT CIFXMesh::GetU16LineIter |
( |
IFXU16LineIter & |
iter |
) |
[virtual] |
|
|
|
Retrieves an IFXU16LineIter to iterate over the mesh's Line data.
This method will fail if the mesh contains 32 bit Line indices. The IFXU16LineIter is much faster than using IFXLineIter for the same data.
- Parameters:
-
| iter | Output IFXU16LineIter that can be used to iterate over this mesh's Line data. |
- Returns:
- IFXRESULT.
- Return values:
-
| IFX_OK | No error. |
| IFX_E_INVALID_RANGE | The mesh contains 32 bit Line indices, which are incompatible with IFXU16LineIter. |
Implements IFXMesh. |
| IFXRESULT CIFXMesh::GetU32FaceIter |
( |
IFXU32FaceIter & |
iter |
) |
[virtual] |
|
|
|
Retrieves an IFXU32FaceIter to iterate over the mesh's face data.
This method will fail if the mesh contains 16 bit face indices. The IFXU16FaceIter is much faster than using IFXFaceIter for the same data.
- Parameters:
-
| iter | Output IFXU32FaceIter that can be used to iterate over this mesh's face data. |
- Returns:
- IFXRESULT.
- Return values:
-
| IFX_OK | No error. |
| IFX_E_INVALID_RANGE | The mesh contains 16 bit face indices, which are incompatible with IFXU32FaceIter. |
Implements IFXMesh. |
| IFXRESULT CIFXMesh::GetU32LineIter |
( |
IFXU32LineIter & |
iter |
) |
[virtual] |
|
|
|
Retrieves an IFXU32LineIter to iterate over the mesh's Line data.
This method will fail if the mesh contains 16 bit Line indices. The IFXU16LineIter is much faster than using IFXLineIter for the same data.
- Parameters:
-
| iter | Output IFXU32LineIter that can be used to iterate over this mesh's Line data. |
- Returns:
- IFXRESULT.
- Return values:
-
| IFX_OK | No error. |
| IFX_E_INVALID_RANGE | The mesh contains 16 bit Line indices, which are incompatible with IFXU32LineIter. |
Implements IFXMesh. |
|
|
Gets the IFXUVMapParameters last used for this texture layer.
- Parameters:
-
| uTexLayer | 0 based texture layer index (0-IFX_MAX_TEXUNITS). |
Implements IFXMesh. |
|
|
Retrieves a vector iterator that will iterate over a portion of the vertex data associated with the mesh.
This method will fail if the iterator type (say IFXVector4Iter) that is passed in is bigger than the data it is iterating over (for example, Positions, which are IFXVector3 in size).
- Parameters:
-
| eType | Input IFXenum value that specifies what the iterator should iterate over. Possible values are:
- IFX_MESH_POSITION: Iterate over vertex positions.
- IFX_MESH_NORMAL: Iterate over vertex normals.
- IFX_MESH_DIFFUSE_COLOR: Iterate over vertex diffuse colors.
- IFX_MESH_SPECULAR_COLOR: Iterate over vertex specular colors.
- IFX_MESH_TC0: Iterate over texture coordinate layer 0.
- IFX_MESH_TC1: Iterate over texture coordinate layer 1.
- IFX_MESH_TC2: Iterate over texture coordinate layer 2.
- IFX_MESH_TC3: Iterate over texture coordinate layer 3.
- IFX_MESH_TC4: Iterate over texture coordinate layer 4.
- IFX_MESH_TC5: Iterate over texture coordinate layer 5.
- IFX_MESH_TC6: Iterate over texture coordinate layer 6.
- IFX_MESH_TC7: Iterate over texture coordinate layer 7.
|
| iter | Output IFXIterator reference that will be set up to iterate over the data specified with eType. |
- Returns:
- IFXRESULT.
- Return values:
-
| IFX_OK | No error. |
| IFX_E_INVALID_RANGE | Either the attribute specified by eType does not exist in the mesh, or the passed in iter is too big for the data element that would be iterated over. |
Implements IFXMesh. |
| IFXRESULT CIFXMesh::GetVersionWord |
( |
IFXenum |
eMeshAttribute, |
|
|
U32 & |
uVersionWord |
|
) |
[virtual] |
|
|
|
Returns the current version word on a mesh or mesh element.
By comparing this value to a cached version word, we can tell when that element changes, and only update data depending on that element when it changes.
Implements IFXMesh. |
| IFXRESULT CIFXMesh::GetVertexIter |
( |
IFXVertexIter & |
iter |
) |
[virtual] |
|
|
|
Retrieves an iterator to traverse the mesh's vertex data.
- Parameters:
-
| iter | Output reference to an IFXVertexIterator that can be used to iterate over the mesh's vertex data. |
- Returns:
- IFXRESULT.
- Return values:
-
Implements IFXMesh. |
| IFXRESULT CIFXMesh::IncreaseSize |
( |
U32 |
uNumNewFaces, |
|
|
U32 |
uNumNewVerts |
|
) |
[virtual] |
|
|
|
Increases the size of the MaxNumberVertices and MaxNumberFaces.
If necessary, new vertex and face memory pools will be allocated. All data contained in the mesh will be preserved.
If the current number of vertices is less than 65536 and the new number of vertices is greater than 65536, the faces will be converted from 16 bit indices to 32 bit indices. In this case, the index numbers that currently exist will be preserved.
- Parameters:
-
| uNumNewFaces | Number of new faces to increase the face pool by. |
| uNumNewVerts | Number of new vertices to increase the vertex pool by. |
- Returns:
- IFXRESULT.
- Return values:
-
| IFX_OK | No error. |
| IFX_E_OUT_OF_MEMORY | There is not enough memory available to complete this method. The mesh is in an undefined state when this occurs. |
Implements IFXMesh. |
| BOOL CIFXMesh::IsColorBGR |
( |
U32 |
uColorNum = 0 |
) |
[virtual] |
|
|
|
Indicates whether the color is BGR or not.
Implements IFXMesh. |
| U32 CIFXMesh::NewId |
( |
|
) |
[virtual] |
|
| IFXRESULT CIFXMesh::PurgeRenderData |
( |
|
) |
[virtual] |
|
| IFXRESULT CIFXMesh::QueryInterface |
( |
IFXREFIID |
interfaceId, |
|
|
void ** |
ppInterface |
|
) |
[virtual] |
|
|
|
This method provides access to the various interfaces supported by a component.
Upon success, it increments the component's reference count and hands back a pointer to the specified interface.
- Note:
- A number of rules must be adhered to by all implementations of IFXAPI QueryInterface . For a list of such rules, refer to the IFXCOM usage guidelines.
- Returns:
- Upon success, IFX_OK is returned. Otherwise, either IFX_E_INVALID_POINTER or IFX_E_UNSUPPORTED are returned.
Implements IFXUnknown. |
| U32 CIFXMesh::Release |
( |
|
) |
[virtual] |
|
|
|
This method decrements the reference count for the calling interface on a component.
- Note:
- If the reference count on a component falls to zero, the component is destroyed.
- Returns:
- It returns a U32 that contains a value from 1 to 2^32 - 1 that defines the new reference count. The return value should only be used for debugging purposes.
Implements IFXUnknown. |
| IFXRESULT CIFXMesh::ReverseNormals |
( |
|
) |
[virtual] |
|
| IFXRESULT CIFXMesh::SetBoundingSphere |
( |
const IFXVector4 & |
vBoundSphere |
) |
[virtual] |
|
| void CIFXMesh::SetId |
( |
U32 |
|
) |
[virtual] |
|
| IFXRESULT CIFXMesh::SetMaxNumFaces |
( |
U32 |
uNumFaces |
) |
[virtual] |
|
| IFXRESULT CIFXMesh::SetMaxNumLines |
( |
U32 |
uNumFaces |
) |
[virtual] |
|
| IFXRESULT CIFXMesh::SetMaxNumVertices |
( |
U32 |
uNumVertices |
) |
[virtual] |
|
| IFXRESULT CIFXMesh::SetNumFaces |
( |
U32 |
uNumFaces |
) |
[virtual] |
|
| IFXRESULT CIFXMesh::SetNumLines |
( |
U32 |
uNumFaces |
) |
[virtual] |
|
| IFXRESULT CIFXMesh::SetNumTextureCoords |
( |
U32 |
uNumTextureCoords |
) |
[virtual] |
|
|
|
Sets the number of texture coordinates in use.
Implements IFXMesh. |
| IFXRESULT CIFXMesh::SetNumVertices |
( |
U32 |
uNumVertices |
) |
[virtual] |
|
| IFXRESULT CIFXMesh::SetOffsetTransform |
( |
IFXMatrix4x4 * |
pMatrix |
) |
[virtual] |
|
|
|
Sets the offset transform for a mesh.
- Parameters:
-
| pMatrix | The pointer to the transformation matrix |
- Returns:
- An IFXRESULT value.
- Return values:
-
Implements IFXMesh. |
|
|
Sets the type of renderable producing the mesh.
- Parameters:
-
- Returns:
- An IFXRESULT value.
- Return values:
-
Implements IFXMesh. |
| IFXRESULT CIFXMesh::SetRenderTexCoordsInUse |
( |
IFXMeshAttributes |
eTexCoordBits |
) |
[virtual] |
|
|
|
Sets the set of render texture coordinates in use.
This should be a combination of IFX_MESH_RENDER_TCx_BIT flags.
Implements IFXMesh. |
| IFXRESULT CIFXMesh::SwizzleDiffuseColors |
( |
|
) |
[virtual] |
|
|
|
Switches the diffuse color channel from BGR to RGB and vice versa.
Implements IFXMesh. |
| IFXRESULT CIFXMesh::SwizzleSpecularColors |
( |
|
) |
[virtual] |
|
|
|
Switches the specular color channel from BGR to RGB and vice versa.
Implements IFXMesh. |
|
|
Conditionally duplicates the source mesh, copying some interleaved data elements and referencing others.
This allows meshes to be copied quickly, with only the data arrays that are going to be changed being duplicated. All the other data will be referenced from the source mesh. If an attribute that is present in the source mesh is not included in the Transfer or the Copy Attr Bits, it will not be included in the new mesh.
- Parameters:
-
| rSrcMesh | Input reference to an IFXMesh containing mesh data to be copied into this mesh. |
| uTransferAttr | Bits representing the attributes that should be referenced from the Src Mesh. Specifing bits that are not present in Src mesh has no effect. |
| uCopyAttr | Bits representing the attributes of the source mesh that should be copied and not just referenced from the source mesh. Specifying bits that reflect attributes not present in the source mesh will cause the new attribute arrays to be created. In this case, Texture coordinates inserted this way will default to 2D. |
- Returns:
- IFXRESULT.
- Return values:
-
| IFX_OK | No error. |
| IFX_E_INVALID_POINTER | The vertex attributes of rSrcMesh are not compatible with this mesh. |
Implements IFXMesh. |
| IFXRESULT CIFXMesh::UpdateVersionWord |
( |
IFXenum |
eMeshAttribute |
) |
[virtual] |
|
|
|
Updates the version word on a mesh attribute, marking it as dirty to any other parts of the system that are watching for that mesh attribute to change.
Implements IFXMesh. |
Friends And Related Function Documentation
| IFXRESULT IFXAPI_CALLTYPE CIFXMeshFactory |
( |
IFXREFIID |
intId, |
|
|
void ** |
ppPtr |
|
) |
[friend] |
|
Member Data Documentation
© 1999 - 2006 Intel Corporation. All rights reserved.
* Other names and brands may be claimed as the property of others.
|
|


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/Linter.20rejects.20automatic.20instance.html ---
In the following file, the unused arguments linter complains about #print f.decidable_eq /- argument 2: [a : decidable_eq J] -/
having an unused argument - is it possible to change how the derive works to avoid this?
import tactic variable (J : Type) def mytype (J : Type) : Type := option J @[derive decidable_eq] inductive f : mytype J → Type | a : f none #lint
Cf my PR https://github.com/leanprover-community/mathlib/pull/2461
hmm I think this might be a known issue
@Bhavik Mehta, could you create an issue for this? We should track it.
Looking at https://github.com/leanprover-community/mathlib/issues/1077, it seems to be a lean issue rather than a mathlib issue...
Is there a related open issue on the community Lean repository?
Doesn't seem like it
Sorry, when I said known issue I literally just meant "I think someone mentioned it on the chat once". I forgot that an issue was a real thing
This is unrelated to #1077. For now you can do attribute [nolint unused_arguments] f.decidable_eq
. This is probably fixable, probably not trivial. The decidable_eq
derive handler is in core so it's an issue there.
Last updated: Apr 24 2020 at 19:02 UTC


Machine Learning Algorithms can be applied in many different areas. Not just in Netflix’s movie or Spotify’s music recommender engines, but also in the areas where have big and complicated data. Healthcare Industry is also where big data exist and have many problems to solve. Big companies like IBM(Watson) and Google(DeepMind) have already started applying and developing and machine learning healthcare applications. Besides them, there are also many young healthcare startups that use machine learning, such as Ayasdi, Nervanasys, Sentient.ai, and Reasoning Systems.
Some currently on going Machine Learning Healthcare Applications by the companies are Diagnosis in Medical Imaging, Drug discover, Robotic Surgery, Treatment Queries and Suggestions so on.
In this post, I am going to use two of Machine Learning Classifiers (Random Forrest & SVM) to build a simple model that can predict whether the patient’s cancer is benign or malignant. And I am going to use the Breast Cancer Wisconsin dataset.(Diagnostic)
PREPARE DATA
Load the data first, and see what it looks like. As you can see it from the picture, the data type of target value that we want to predict “diagnosis” is not integer, but categorical values “Malignant” and “Benign”. I changed them into the numbers “1” and “0” respectively. After that, I dropped any column with more than 50% missing values.
data = pd.read_csv("breast_cancer.csv") print(data.head()) print(data.info()) data['diagnosis']=data['diagnosis'].map({'M':1,'B':0}) half_count = len(data) / 2 data = data.dropna(thresh=half_count,axis=1)
Before I started building a model, I was curious about the distribution of the target Malignant and Benign. So I used the following command to visualize them. If you don’t want to plot them and just see the numbers, you can just type print(data[‘diagnosis’].value_counts()).
sns.countplot(data['diagnosis'],label="Count") plt.show()
FEATURE SELECTION
Before the feature selection, I decided to visualize the correlation between the target and features. It looks like most of the features are positively related with the target, but I decided to select the features that have correlation values with target(“diagnosis)” from 0.55 to 1.
data_corr = data.corr() data_corr['diagnosis'].sort_values(ascending=False) data_corr['diagnosis'].sort_values().plot(kind='bar',sort_columns=True) plt.show()
If you want to include more features, it is up to you. After the feature selection, I ran a command that draws a heat map of the correlation between target and selected features.
fig=plt.figure(figsize=(12,18)) selected_features_corr = data[selected_features].corr() sns.heatmap(selected_features_corr, cbar = True, square = True, annot=True, fmt= '.2f',annot_kws={'size': 8}, xticklabels= selected_features, yticklabels= selected_features, cmap= 'coolwarm')
SPLIT DATA
Y_data = data['diagnosis'] X_data = data[selected_features].iloc[:,1:] #print(X_data.columns.values) X_train,X_test,Y_train,Y_test = train_test_split(X_data,Y_data,random_state=0,stratify=Y_data) # print(Y_train.shape, Y_test.shape)
RANDOM FORREST & SVM
Both models performed really well given the size of the dataset. I got Random Forrest model with an accuracy score of 0.951 and SVM model with an accuracy score of 0.965.
It looks like overfitting occurred in Random Forrest model, because it performed really well on training set, but poorly on test set. I tried to solve overfitting by tuning the hyperparameters of the model.
clf=RandomForestClassifier(n_estimators=100,random_state = 42) clf.fit(X_train,Y_train) print('Random Forrest Accuracy on the Training subset:{:.3f}'.format(clf.score(X_train,Y_train))) print('Random Forrest Accuracy on the Test subset:{:.3f}'.format(clf.score(X_test,Y_test))) svc = svm.SVC(kernel='linear') svc.fit(X_train, Y_train) print('SVM Accuracy on the Training subset:{:.3f}'.format(svc.score(X_train,Y_train))) print('SVM Accuracy on the Test subset:{:.3f}'.format(svc.score(X_test,Y_test)))
Hyperparameter Optimization
I used RandomSearchCV to optimize the hyperparameters. Now I got Random Forrest model with an accuracy score of 0.965. The model improved by 0.014 after the hyperparmeter optimization.
rf_clf=RandomForestClassifier(random_state = 42) param_grid = {"max_depth": [3, None], "max_features": sp_randint(1, 8), "min_samples_split": sp_randint(2, 11), "min_samples_leaf": sp_randint(1, 11), "bootstrap": [True, False], "criterion": ["gini", "entropy"]} rand_rf = RandomizedSearchCV(rf_clf, param_distributions=param_grid, n_iter=100, random_state=42) rand_rf.fit(X_train,Y_train) print('Random Forrest Accuracy on the Training subset:{:.3f}'.format(rand_rf.score(X_train,Y_train))) print('Random Forrest Accuracy on the Test subset:{:.3f}'.format(rand_rf.score(X_test,Y_test)))
I hope you enjoyed this post, and please let me know if you have any questions, or feedback. You can reach me on Linkedin or email me at sunghokim@wustl.edu.


Holiday¶
FIELDS¶
Type |
Name |
Description |
|---|---|---|
string |
name |
The name of the Holiday. |
Holiday.Kind |
kind |
The kind of holiday. For example, if it is Custom, a Christmas, or Nothing at all. |
Holiday.YearWrapMode |
wrapMode |
Defines how the holiday will behave during the year. |
System.DateTime |
startDate |
The date at which the holiday starts. |
System.DateTime |
endDate |
The date at which the holiday ends. |
METHODS¶
Holiday Get(Holiday.Kind type)¶
Returns the Holiday that best corresponds the given HolidayType.
1 2 3 4 5 6 7 8 9 10 11 12 13 | using NutTools;
using UnityEditor;
public class MyClass: MonoBehaviour
{
Holiday.Kind holidayKind = Holiday.Kind.Christmas;
public void MyMethod()
{
Holiday holiday = Get(holiday); // Returns Holiday.Christmas.
// Do something with "holiday" now...
}
}
|
bool IsHoliday(Holiday holiday)¶
Verifies if a specific holiday is going on.
Note
This method won’t correctly capture an EndAndBeginning holiday whose startDate renders to a period possibly before the endDate.
For example, a holiday that happens from April of this year and lasts to May of the next year won’t behave properly.
The same is true for a BeginningAndEnd holiday whose startDate is a period after the endDate.
So, a holiday that happens from May of this year to April of the next year may not behave properly.
And, when using no wrap, any holiday that crosses the New Year’s Eve won’t behave as either.
An event from April of this year to May of the next year will be treated as an April to May of the same year event, and an event that ranges from December to January will just be discarded, because of how I’m handling holidays.
I do have plans for future improvements to the overall Holiday behavior.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | using NutTools;
using UnityEngine;
public class MyClass: MonoBehaviour
{
Holiday holiday;
public void MyMethod()
{
if (IsHoliday(holiday))
{
// Do something amazing!
}
}
}
|
PROPERTIES¶
Pre-Defined Holidays¶
Carnaval
The true Carnaval is February the 24th and 25th. It here starts on February 20th, and ends on February 27th.
Christmas
Christmas, the 25th of December, in this case has a one-month-long duration. It goes from December the 15th to January the 6th.
Easter
Easter, originally the second Sunday of April, here lasts from April the 1st to April 30th.
Halloween
Originally the 31th of October, it begins on the 20th of October and lasts until November the 10th.
KidsDay
The 12th of October, it lasts from the 1st of October to the 15th of October.
NewYear
The last night of the year to the dawn of the next, it here lasts eleven days. From the 26th of December to January the 6th.
StPatrickDay
March the 17th, it here lasts from the 15th to the 31st of March.
Valentine
Valentine, February the 14th, ranges from February the 10th to February the 17th.
GET HELP¶
Join this Discord server to get help, suggest new features, and vote on future updates!
See also
register


Alaska man arrested after allegedly smuggling $400G in drugs — stuffed in rotting goat intestines — at airport, officials say
by Nicole DarrahA 71-year-old Alaska man was arrested after he was allegedly found with $400,000 worth of drugs — hidden inside rotting goat intestines — at an airport, authorities said.
Cenen Placencia was taken into custody Wednesday at Ted Stevens Anchorage International Airport, months after officials opened an investigation to try to find a source of narcotics in Kodiak.
FLORIDA MAN HAD METH 'WEDGED DEEP WITHIN' BELLY BUTTON, COPS SAY
At the airport last week, investigators with Alaska State Troopers searched a large box that Placencia checked as luggage after he consented to a search, an affidavit filed with the charges stated.
The box contained loosely wrapped frozen meat, with multiple small pieces of meat frozen together, and Placencia approved letting it thaw so authorities could further investigate. As the frozen items thawed, officials said they smelled rotting meat — that apparently turned out to be goat intestines — and a police dog detected drugs.
OHIO MOM WHO SAYS SHE SOLD METH TO PUT KID THROUGH COLLEGE IS SENTENCED
Placencia withdrew his consent to search the meat before it finished thawing, investigators said, prompting them to obtain a search warrant.
Once their search resumed, authorities found packages wrapped in plastic that contained about 740 grams of heroin and 389 grams of methamphetamine, the state's Department of Public Safety said in a news release.
Placencia had been heading back to Kodiak when he was arrested, initially booking a morning flight and later rebooking for a late afternoon flight. Before that flight departed, Placencia agreed to be interviewed, and told investigators he packed the bag himself and denied knowing about the drugs.
The 71-year-old told investigators he bought the goat intestines for $140 from a California rancher for his own consumption, the affidavit states.
CLICK HERE TO GET THE FOX NEWS APP
Placencia was taken into custody at the Anchorage jail, troopers said. He was arraigned Friday on a charge of possession with intent to distribute controlled substances.
Authorities said they began investigating Placencia in February, and in March served search warrants on his home, where they seized roughly 247 grams of heroin, 13 grams of crystal methamphetamine and nearly $2,280 in suspected drug proceeds, investigators said. Assistant U.S. Attorney Christian Sherman said those drugs are not included in the current charges.
The Associated Press contributed to this report.


$markdown{[[
Sticky-kit provides an easy way to attach elements to the page when the user
scrolls such that the element is always visible. The source can be found on
[GitHub](https://github.com/leafo/sticky-kit).
]]}
Examples
Basic Sticking
$markdown{[[
Just call `stick_in_parent` on the elements you want to be stuck inside of
their parent. Sticky elements "bottom out" so they never leave the container,
no more worrying if a sticky element will accidentally cover your footer.
]]}
$markdown{[[
Not sure if your sidebar or your main content is taller? Doesn't matter, just
call `stick_in_parent` on all columns. Sticky-kit will only stick items if they
don't take up the entire height of their parent.
]]}
$markdown{[[
Sticky elements taller than the viewport can scroll independently up and down,
meaning you don't have to worry about your content being cut off should the
sticky element be too tall or the user's resolution too small.
]]}
$markdown{[[
To install include `jquery.sticky-kit.js` after including jQuery.
Usage:
```js
$("#sticky_item").stick_in_parent();
// or
$("#sticky_item").stick_in_parent(options);
```
You can pass a hash of options to configure how Sticky Kit works. The following
options are accepted, each one is optional:
* `parent` -- The element will be the parent of the sticky item. The
dimensions of the parent control when the sticky element bottoms out. Defaults
to the closest parent of the sticky element. Can be a selector.
* `inner_scrolling` -- Boolean to enable or disable the ability of the sticky
element to scroll independently of the scrollbar when it's taller than the
viewport. Defaults to `true` for enabled.
* `sticky_class` -- The name of the CSS class to apply to elements when they
have become stuck. Defaults to `"is_stuck"`.
* `offset_top` -- offsets the initial sticking position by of number of pixels,
can be either negative or positive
* `spacer` -- either a selector to use for the spacer element, or `false` to
disable the spacer. The selector is passed to
[`closest`](http://api.jquery.com/closest/), so you should nest the sticky
element within the spacer. Defaults to Stiky Kit creating its own spacer.
* `bottoming` -- Boolean to control whether elements bottom out. Defaults to `true`
* `recalc_every` -- Integer specifying that a recalc should automatically
take place between that many ticks. A tick takes place on every scroll event.
Defaults to never calling recalc on a tick.
### Events
Various events are triggered from a sticky element when its state changes.
They are:
* `sticky_kit:stick` -- Triggered when element becomes stuck.
* `sticky_kit:unstick` -- Triggered when element becomes unstuck. (Note: an
element is still considered stuck when it has bottomed out)
* `sticky_kit:bottom` -- Triggered when element bottoms out.
* `sticky_kit:unbottom` -- Triggered when element is no longer bottomed out.
For example, if we want to log when an element sticks and unsticks we might do:
```js
$("#sticky_item").stick_in_parent()
.on("sticky_kit:stick", function(e) {
console.log("has stuck!", e.target);
})
.on("sticky_kit:unstick", function(e) {
console.log("has unstuck!", e.target);
});
```
Sticky Kit listens to one event on `document.body`.
* `sticky_kit:recalc` -- trigger this event to cause all sticky elements to be
recalculated. More information below.
Sticky Kit also listens to an event on the sticky elements:
* `sticky_kit:detach` -- remove sticky kit and restore element to original
position
If you want to remove sticky kit from an element after applying it you can send
that element a `sticky_kit:detach` event.
For example:
```js
$("#sticky_item").trigger("sticky_kit:detach");
```
### Scrolling Performance
StickyKit takes scrolling performance very seriously. It's built from the
ground up to let you have sticky elements without incurring scroll lag or jank.
Probably the biggest cause of scrolling lag is `onscroll` handlers that do too much
work, trigger page reflows, etc. StickyKit avoids this by having a very light
scroll handler that operates on cached values.
If you notice that your sticky element is acting strange, like it pops to the
bottom of the page, or jumps around, then your cached value are most likely
outdated. Luckily it's easy to fix, read *Recalculating Sticky Elements*
below.
Sticky Kit has two internal callbacks:
* `recalc` -- Updates the cached sizes of the elements it checks
* `tick` -- Checks and updates if necessary the sticky state from the cached values
A `tick` happens on every scroll event. It's designed to be as fast as possible.
A `recalc` happens whenever the cached values need to be updated. It's
(comparatively) slower, so you don't want to run this on every scroll event. A
`recalc` can happen automatically in the following cases: Sticky kit is first
initialized, on the following tick after the height of the document changes.
You can also manually trigger a `recalc` by sending an event, see below.
### Recalculating Sticky Elements
If you're changing the markup of your page on the fly by removing, adding or
resizing elements then you most likely need to tell Sticky Kit to recalculate
the sticky elements to guarantee they're positioned correctly.
You can manually cause a recalculation to happen by triggering an event on
`document.body`:
```js
$(document.body).trigger("sticky_kit:recalc");
```
Typically you only need to trigger a recalculation if you are changing the
positions/sizes of elements above the sticky element, adjacent to it, or the
sticky element itself.
Instead of manually calling `sticky_kit:recalc` you can use the `recalc_every`
option described above to periodically do a recalculation between ticks.
Setting it to 1 will cause a recalculation to happen on every scroll event,
preventing the state from ever being out of date.
```js
$("#sticky_item").stick_in_parent({recalc_every: 1});
```
### About Columns
If you're familiar with HTML and CSS then you probably know there are a handful
of different ways to make columns. Sticky kit works automatically with floated
columns, `inline-block` columns, or absolutely positioned elements. (Non column
elements like toolbars work great as well, for example the toolbar on this
site.)
### Browser Support
Sticky Kit works with all modern browsers, and IE7+.
Note: only floated columns work in IE7.
]]}
Changelog
$markdown{[[
* **v1.1.2** - *Apr 27, 2015* -- Automatically recalc on body scroll height
change, support undefined/auto margin-top in IE. (Norman Chen)
* **v1.1.1** - *Nov 23, 2014* -- Fix issue where tick/recalc could get called
after detach which would cause sticky element to be removed. Full height
calculation takes offset into account (johnwchadwick)
* **v1.1.0** - *Nov 13, 2014* -- Add `recalc_every`, `bottoming`, and
`spacer` options. Fix bug where some events weren't getting removed on
detach. Fixed bug where sticky class was not removed on detach (poziworld),
pull `jQuery` from `window` if it can't be found on `this` (Connor Peet)
* **v1.0.4** - *Mar 29, 2014* -- `touchmove` events for mobile (Alfredo
Motta), support absolutely positioned element (Pierre Spring), `border-box`
element sets spacer correctly (jasonpolito), bug fix for bottomed state (Pierre
Spring)
* **v1.0.2** *Nov 16, 2013* -- Add `sticky_kit:detach`, Bug fixes: remove
stray top attribute when unfixing, fix issue with top when inner scrolling,
handle variable width elements correctly, recalc is called on window resize
* **v1.0.1** *Sept 11, 2013* -- Added offset_top option, fixed recaclc when items are
already stuck
* **v1.0.0** *Aug 1, 2013* -- Initial release
]]}


Your browser does not support the HTML5 Canvas feature. This game uses new HTML5 features and will only work on the latest versions of Firefox, Safari or Chrome (and maybe Internet Explorer 9).
New Maze (BinTree)
New Maze (Sidewinder)
Solve
Pause
Continue


mt2fa.foo-projects.org operates a service for Minetest players, and for Minetest server operators.
This service allows players and server operators to register their identity and connect them to their personal email address. This provides players with the ability to control access to their player accounts on the Minetest servers that they play on. For server operators it provides them with a way to deal with player account control loss and gives them a form of player identification.
In order for this service to function, the player, and the server operator, must provide their email address. This address is used to verify that when the player logs in to a Minetest server, it is actually the player from the registered email address. This verification is done by sending a confirmation link to the email address, and by the player clicking this link. In order for the server operator to use the service, they must also register and this is used to assure that the server that is exchanging information with the service is also properly identified.
The service does not function without providing an email address. There is no way to use this service without registering an email address. If you do not want to provide your email address, then you may, in some cases, still play on Minetest servers which offer this service. On some other Minetest servers, you may not be permitted to play. This choice is dependent on the server operator, and not up to the mt2fa service provider.
mt2fa.foo-projects.org collects the email address, and associates the Minetest servers' player name or server address with it if provided. This information is permanently stored on the mt2fa.foo-projects.org and is only used to provide the service to the player and server operator. The information is not sold or shared. From time to time we may publish usage reports that include service usage statistics, such as player count and server count, but not email addresses.
The server maintains a limited amount of logging of events for auditing purposes. Logs are discarded after a certain time. These logs may contain the IP address and time of access of the service. These logs are not provided to anyone.
Because of the nature of the service, you will receive email at the registered address. The only time we will send you email is when you are using the service and are performing requests to the service through logging in to the service or other ways to interact with the service. There is no way to opt out of any emails. You may choose to remove your registration from the service and remove your email entirely, but this will remove your ability to use the service, obviously. Currently, you can do this by email. If you do choose to exercise this option, please note that your associated player accounts on Minetest servers may become inaccessible or be deleted as a result. You may be required to confirm this process by verifying your email address, again.
mt2fa.foo-projects.org is not operated by a company, a legal entity or an organization. mt2fa.foo-projects.org is not "economic activity" and makes no money from providing this service. This service costs money and this is paid out of pocket by the operator.


Time to pucker up: The mistletoe trail returns
Explore Waterloo Region is encouraging residents to get outdoors and explore the area
by KitchenerToday StaffThe Explore Waterloo Region Mistletoe Trail is back for another year.
It features seven Instagramable locations throughout the region, where mistletoe has been hung and visitors are invited to stop by for a shareable moment - a hug, a kiss and definitely a picture.
"Visitors and locals are looking for things to do now that the cold weather is here," Minto Schneider, CEO of Explore Waterloo Region said in a release. "The #ExploreWRMistletoeTrail is a fun way to encourage people to head outdoors and explore our region with their family and friends. Take a picture under the mistletoe, post it on social media, and share the fun while celebrating the season!"
New this year - you can bring your own mistletoe - and share a picture from your favourite outdoor location in Waterloo Region.
Here are the 2019 locations:
- Cambridge: above the front doors of the Cambridge Fire Hall Museum
- Kitchener: next to the Christmas Tree in front of Kitchener City Hall
- Waterloo: at the Seagram Drive entrance to Wonders of Winter in Waterloo Park
- Woolwich Township: above the new mural on the Old Post Office building in St. Jacobs
- Wilmot Township: in the Court Yard behind The Imperial Market & Eatery in New Hamburg
- Wellesley Township: at the entrance to ErbHaven Trails in Wellesley (behind the township fire hall)
- North Dumfries Township: at the Detweiler Meeting House in Ayr
Explore Waterloo Region will be giving a Date Night package (worth $500) away to one lucky winner. Your picture must be posted by midnight on January 5, 2020 to be eligible for the prize.
You are asked to hashtag you pictures #ExploreWRMistletoe on Instagram.


I like to make things and track things. This site's colophon. Things I like. Salty, old letters. Things I bought that were rubbish. About living in Britain. The books I've read. A blogroll of faves.


Notes 8.4.4
Media Access Control (MAC) Address - A hardware address given to any network adapter hardware.
Address Resolution Protocol - Translate between MAC and IP addresses.
ARP Table - A mapping of IP addresses to MAC addresses.
ARP Packet - A packet containing the sending and receiving IP and MAC addresses.
Hub - Retransmits a received bit to all connected hosts.
Switch - A collision-less solution to hubs that only retransmits a bit to its intended destination.
Fields of the ethernet frame:
- Data Field - This field carries the IP datagram. The maximum
transmission unit (MTU) of Ethernet is 1,500 bytes. This means that if the IP
datagram exceeds 1,500 bytes, then the host has to fragment the datagram, as discussed
in Section 4.4.1. The minimum size of the data field is 46 bytes. This
means that if the IP datagram is less than 46 bytes, the data field has to be
"stuffed" to fill it out to 46 bytes. When stuffing is used, the data passed to the
network layer contains the stuffing as well as an IP datagram. The network layer
uses the length field in the IP datagram header to remove the stuffing.
- Destination Address - This field contains the MAC address of the destination
adapter, BB-BB-BB-BB-BB-BB. When adapter B receives an Ethernet
frame whose destination address is either BB-BB-BB-BB-BB-BB or the
MAC broadcast address, it passes the contents of the frame's data field to the
network layer; if it receives a frame with any other MAC address, it discards
the frame.
- Source Address - This field contains the MAC address of the adapter that
transmits the frame onto the LAN, in this example, AA-AA-AA-AA-AA-AA.
- Type Field - The type field permits Ethernet to multiplex network-layer
protocols. To understand this, we need to keep in mind that hosts can use other
network-layer protocols besides IP. In fact, a given host may support multiple network-layer protocols using different protocols for different applications. For
this reason, when the Ethernet frame arrives at adapter B, adapter B needs to
know to which network-layer protocol it should pass (that is, demultiplex) the
contents of the data field. IP and other network-layer protocols (for example,
Novell IPX or AppleTalk) each have their own, standardized type number. Furthermore,
the ARP protocol (discussed in the previous section) has its own type
number, and if the arriving frame contains an ARP packet (i.e., has a type field
of 0806 hexadecimal), the ARP packet will be demultiplexed up to the ARP protocol.
Note that the type field is analogous to the protocol field in the networklayer
datagram and the port-number fields in the transport-layer segment; all of
these fields serve to glue a protocol at one layer to a protocol at the layer above.
- Cyclic Redundancy Check - As discussed in Section 5.2.3, the purpose
of the CRC field is to allow the receiving adapter, adapter B, to detect bit
errors in the frame.
- Preamble - The Ethernet frame begins with an 8-byte preamble field.
Each of the first 7 bytes of the preamble has a value of 10101010; the last byte is
10101011. The first 7 bytes of the preamble serve to "wake up" the receiving
adapters and to synchronize their clocks to that of the sender's clock. Why
should the clocks be out of synchronization? Keep in mind that adapter A aims
to transmit the frame at 10 Mbps, 100 Mbps, or 1 Gbps, depending on the type
of Ethernet LAN. However, because nothing is absolutely perfect, adapter A will
not transmit the frame at exactly the target rate; there will always be some drift
from the target rate, a drift which is not known a priori by the other adapters on
the LAN. A receiving adapter can lock onto adapter A's clock simply by locking
onto the bits in the first 7 bytes of the preamble. The last 2 bits of the eighth byte
of the preamble (the first two consecutive 1s) alert adapter B that the "important
stuff" is about to come.
Ethernet Standardizations:
- 10BASE-T
- 10BASE-2
- 100BASE-T
- 1000BASE-LX
- 10GBASE-T
Repeater - A physical-layer device that receives a signal and regenerates it as output.
Switch Transparency - A switch is not known to hosts and routers on the subnet.
Filtering - The switch function that determines whether a frame should be forwarded to some interface or just dropped.
Switch Table - Contains entries for some, but not necessarily all, hosts/routers on a LAN. The table holds the Address, Interface, and a Time when it was placed in the table.
Properties:
- Elimination of Collisions - In a LAN built from switches (and without hubs), there
is no wasted bandwidth due to collisions! The switches buffer frames and never
transmit more than one frame on a segment at any one time. As with a router, the
maximum aggregate throughput of a switch is the sum of all the switch interface
rates. Thus, switches provide a significant performance improvement over LANs
with broadcast links.
- Heterogeneous Links - Because a switch isolates one link from another, the different
links in the LAN can operate at different speeds and can run over different
media. For example, the uppermost switch in Figure 5.22 might have three
1 Gbps 1000BASE-T copper links, two 100 Mbps 100BASE-FX fiber links, and
one 100BASE-T copper link. Thus, a switch is ideal for mixing legacy equipment
with new equipment.
- Management - In addition to providing enhanced security (see sidebar on Focus
on Security), a switch also eases network management. For example, if an
adapter malfunctions and continually sends Ethernet frames (called a jabbering
adapter), a switch can detect the problem and internally disconnect the malfunctioning
adapter. With this feature, the network administrator need not get
out of bed and drive back to work in order to correct the problem. Similarly, a
cable cut disconnects only that host that was using the cut cable to connect to
the switch. In the days of coaxial cable, many a network manager spent hours
"walking the line" (or more accurately, "crawling the floor") to find the cable
break that brought down the entire network. As discussed in Chapter 9 (Network
Management), switches also gather statistics on bandwidth usage, collision
rates, and traffic types, and make this information available to the network
manager. This information can be used to debug and correct problems, and to
plan how the LAN should evolve in the future. Researchers are exploring adding
yet more management functionality into Ethernet LANs in prototype deployments.
Virtual Local Area Networks - A single physical switch defining multiple virtual LANs.
VLAN Trunking - A method of interconnecting VLAN switches.
VLAN Tag - A 4-byte packet that defines a VLAN.
Multiprotocol Label Switching - A collection of industry players each implemented their own method, which were then all combined.
Label-Switched Router - A router that is capable of MPLS.
Traffic Engineering - A network operator may override normal IP routing.


CS undergrad at Georgia Institute of Technology. Bachelor of Science in Computer Science with concentration in Artificial Intelligence and Information Internetworks. I am experienced in full-stack development, mobile development and cloud computing and I have also had research experience in artificial intelligence. Always learning and exploring.
Designed and developed full-stack product transform tool on AWS product management portal.
Developed fully tested Java backend workflow APIs and Angular frontend pages for new feature.
Made the process to be self-service on portal which saved 1-2 days of developer time for each operation.
Implemented webhook listener on apache server that sends out email alerts with detailed information(host, filepath, ip) upon specific alerting events.
Created alert handlers to handle alerts across 8 servers.
Built visualization framework that creates pie charts, line charts, sortable tables from file tracking databases which contain around 3 million rows of data.
Developing an intelligent cloud-based chatbot that runs on multiple platforms to automate the task of solving IT-related problems.
GPA: 4.0
Apart from being a student, I enjoy spending time in the gym lifting weights or playing basketball. Despite the busy schedule I have at school, I always make time for going to the gym to lift weights because it makes me feel refreshed and energized for all the work I have to do. It is also very rewarding for me to see the progress I am making and all the muscles I have gained.
Besides lifting weights, I also love playing sports. I was on the varsity team for both basketball and football during high school. I led our football team to the playoffs in my senior year for the first time in school history as the captain of the team and have received several other honors.
When forced indoors, I like to read up on the newest trend on hot topics of computer science such as artificial intelligence. I also enjoy learning new things on my own. In my free time, I have taught myself android development, IOS development with swift, web development, as well as experimenting with machine learning with my own dataset.


More Jataka Tales
by Ellen C. Babbitt
“The Girl Monkey and the String of Pearls”
Additional Information
- Year Published: 1922
- Language: English
- Country of Origin: India
- Source: Babbitt, E.C. (Ed.). (1922). More Jataka Tales. New York, NY: D. Appleton-Century Company.
-
Readability:
- Flesch–Kincaid Level: 4.2
- Word Count: 735
- Genre: Fairy Tale/Folk Tale
- Keywords: stealing, theft
- ✎ Cite This
Downloads
One day the king went for a long walk in the woods. When he came back to his own garden, he sent for his family to come down to the lake for a swim.
When they were all ready to go into the water, the queen and her ladies left their jewels in charge of the servants, and then went down into the lake.
As the queen put her string of pearls away in a box, she was watched by a Girl Monkey who sat in the branches of a tree near-by. This Girl Monkey wanted to get the queen’s string of pearls, so she sat still and watched, hoping that the servant in charge of the pearls would go to sleep.
At first the servant kept her eyes on the jewel-box. But by and by she began to nod, and then she fell fast asleep. As soon as the Monkey saw this, quick as the wind she jumped down, opened the box, picked up the string of pearls, and quick as the wind she was up in the tree again, holding the pearls very carefully. She put the string of pearls on, and then, for fear the guards in the garden would see the pearls, the Monkey hid them in a hole in the tree. Then she sat near-by looking as if nothing had happened. By and by the servant awoke. She looked in the box, and finding that the string of pearls was not there, she cried, “A man has run off with the queen’s string of pearls.” Up ran the guards from every side.
The servant said: “I sat right here beside the box where the queen put her string of pearls. I did not move from the place. But the day is hot, and I was tired. I must have fallen asleep. The pearls were gone when I awoke.”
The guards told the king that the pearls were gone. “Find the man who stole the pearls,” said the king. Away went the guards looking high and low for the thief. After the king had gone, the chief guard said to himself: “There is something strange here. These pearls,” thought he, “were lost in the garden. There was a strong guard at the gates, so that no one from the outside could get into the garden. On the other hand, there are hundreds of Monkeys here in the garden. Perhaps one of the Girl Monkeys took the string of pearls.” Then the chief guard thought of a trick that would tell whether a Girl Monkey had taken the pearls. So he bought a number of strings of bright-colored glass beads.
After dark that night the guards hung the strings of glass beads here and there on the low bushes in the garden. When the Monkeys saw the strings of bright-colored beads the next morning, each Monkey ran for a string.
But the Girl Monkey who had taken the queen’s string of pearls did not come down. She sat near the hole where she had hidden the pearls. The other Monkeys were greatly pleased with their strings of beads. They chattered to one another about them. “It is too bad you did not get one,” they said to her as she sat quietly, saying nothing. At last she could stand it no longer. She put on the queen’s string of pearls and came down, saying proudly: “You have only strings of glass beads. See my string of pearls!”
Then the chief of the guards, who had been hiding nearby, caught the Girl Monkey. He took her at once to the king. “It was this Girl Monkey, your Majesty, who took the pearls.” The king was glad enough to get the pearls, but he asked the chief guard how he had found out who took them. The chief guard told the king that he knew no one could have come into the garden and so he thought they must have been taken by one of the Monkeys in the garden. Then he told the king about the trick he had played with the beads.
“You are the right man in the right place,” said the king, and he thanked the chief of the guards over and over again.


This analysis is a placeholder with a sample set. If you want to contribute new analyses for the site, contact Disaster Area on Discord.
- Thunder Wave
- Seismic Toss
- Reflect
- Soft-Boiled
This analysis is a placeholder with a sample set. If you want to contribute new analyses for the site, contact Disaster Area on Discord.
- Thunder Wave
- Ice Beam
- Thunderbolt
- Soft-Boiled
This analysis is a placeholder with a sample set. If you want to contribute new analyses for the site, contact Disaster Area on Discord.
- Sing / Counter
- Seismic Toss / Ice Beam
- Thunder Wave
- Soft-Boiled
This analysis is a placeholder with a sample set. If you want to contribute new analyses for the site, contact Disaster Area on Discord.
- Sing
- Ice Beam
- Counter
- Soft-Boiled
This analysis is a placeholder with a sample set. If you want to contribute new analyses for the site, contact Disaster Area on Discord.
Defense Curl, Flash
This analysis is a placeholder with a sample set. If you want to contribute new analyses for the site, contact Disaster Area on Discord.
Author: Oiseau Bleu
Publish Date: 8th June 2020
Edited By: Disaster Area
Edit Date: 8th June 2020


Type the following on the command line to update {{model.name}}.
grafana-cli plugins update {{model.id}}
Check out {{model.name}} on Grafana.com for README and changelog. If you do not have access to the command line, ask your Grafana administator.
Pro tip: To update all plugins at once, type grafana-cli plugins update-all
on the command line.


What is FIRST?
FIRST is a global organization founded in 1989 by inventor Dean Kamen. FIRST is an acronym for "For Inspiration and Recognition of Science and Technology" and is a non-profit organization dedicated to introducing kids of all ages to technology and engineering. FIRST hosts four global robotics leagues divided by age level, with a projected participation of over 300,000 kids in 2013. Code Orange participates in the highest level, known as the FIRST Robotics Competition (FRC).
What is the FIRST Robotics Competition?
In FRC, teams of high school students are led by professional engineers to build working robots. At the beginning of every year, FIRST releases a new challenge to all FRC teams worldwide. Teams then have only six weeks to design, prototype, construct and test their unique robots. Teams then attend competitions, in which their work is tested against that of other teams. From there, teams can progress to region championships and the world championship.
Stats
FIRST
- Founded 1989
- Headquartered in Manchester, NH
- 501(c)(3) public charity
Leadership
- Dean Kamen, Founder
- Walt Havenstein, Chairman of the Board
- Jon Dudas, President
- Board of Directors & Senior Management
Supporters
- More than 90,000 volunteers make FIRST happen
- FIRST is supported by a network of more than 3,500 corporations, educational and professional institutions, and individuals
Overall Reach
- 350,000 students
- 32,600 teams
- 28,800 robots
- 64,000 mentors/adult supporters
- 66,000 other volunteers


Central Park
This photo of Conservatory Pond in Central Park in New York City was taken on October 22, 2011 with a Canon EOS 30D camera.
Related Photos
Reviews
Easy on the HDR buddy.
I love Central Park.
let us know where you've been
This photo of Conservatory Pond in Central Park in New York City was taken on October 22, 2011 with a Canon EOS 30D camera.
Easy on the HDR buddy.
I love Central Park.


{% extends "common-base.html" %} {% load custom_tags %} {% load messages %} {% block right_content %} {% box 'table' %}
Scoring functions are defined by mathematic formulas that take data from the document, the query and the textual relevance in order to assign a score to each matching document for a query. The resulting scores are used when searching the index to provide specific orderings for the results.
You can modify these formulas in real-time and they can be as complex as you need them to be.
When writing the formula, have in mind that:
Formulas allow the following operators to work with expressions: +, -, *, /
These are all binary operators except for "-" which can also be used to negate (being a unary operator).
Scoring function formulas are computed for each document matching a given query. Hence there is a list of variables related to the document or the query that can be used in the formula:
| Textual Relevance | |
|---|---|
| Description: For each document matching a query a textual relevance (how relevant is the documents text for the query) is calculated. You may or may not consider this value in your formula, or decide how important it is in the final calculation (e.g.: if you want to sort your results just by creation time, you may discard this variable in your scoring function). | Syntax: relevance |
| Short syntax: rel or r or R | |
| Values: Relevance is always a positive float number. Because of precision issues, relevance CAN be zero. | |
|
Sample: {% box 'code' %}
-age * relevance (sorts documents considering how new and how relevant to the query the document is equally)
{% endbox %}
|
| Document's Age | |
|---|---|
|
Description: When indexed, every document is assigned a timestamp, an integer value which usually describes its creation time. The larger the value, the newer the document.
The timestamp field can be provided when adding the document. Otherwise, IndexTank automatically assigns a value representing the number of seconds since
Unix Epoch (00:00:00 UTC on 1 January 1970) until the moment the document was indexed.
When writing formulas you can use the document's age, which is the result of subtracting the documents timestamp to the number of seconds since Unix Epoch until the moment the query was executed. When using UNIX time for the documents' timestamps, this variable represents the age of the document in seconds. |
Syntax: doc.age |
| Short syntax: age or a or A | |
| Values: Since there are no restrictions to the documents' timestamps provided, age can contain negative values. | |
|
Sample: {% box 'code' %}
-age * relevance (sorts documents considering how new and how relevant to the query the document is equally)
{% endbox %}
|
| Document's Variables | |
|---|---|
|
Description: When a document is indexed, it is possible to assign numeric (float) variables to it. These
variables may represent rapidly changing numeric values that have some implication on the document's possible valuation in a sorting function
(number of positive and negative votes, number of comments, user generated score, review score, number of visits, etc.). Once a document is
indexed, its variables can be changed any time it is necessary with no cost other than the one related to the HTTP communication.
The variables are identified by an integer number from zero to the the variables' limit minus one. The maximum number of variables available for each document will depend on the package of the account. |
Syntax: doc.var[n] (where n is the variable's integer identifier) |
| Short syntax: d[n] or D[n] | |
| Values: Any float entered when the document was indexed or afterwards. For negative values, NaN (not a number) will be returned. A zero value will return negative infinity. | |
|
Sample: {% box 'code' %}
log(doc.var[0]) - age/86400 (sorts documents considering natural logarithm of the variable #0 of the document minus its age in days)
{% endbox %}
|
| Query Variables | |
|---|---|
|
Description: When performing a search in the index, it is possible to pass float variables along with
the query (check the searching documentation).
These variables can be later used in the scoring function's formula.
|
Syntax: query.var[n] (where n is the variable's integer identifier) |
| Short syntax: q[n] or Q[n] | |
| Values: Any float passed as a query variable. |
There is a set of mathematical functions available for writing formulas:
| Natural logarithm | |
|---|---|
|
Description: Calculates the natural logarithm of an expression. The logarithm function is useful when there's a need to consider the order of magnitude of an expression instead of its actual value (for example, it is comparable to considering the number of digits of the value). Mathematically speaking, it is the inverse to an exponential function. |
Syntax: log(val) |
|
Arguments:
val: a float expression to the which apply the logarithm. For negative values, NaN |
|
|
Sample: {% box 'code' %}
log(doc.var[0]) - age/86400 (sorts documents considering natural logarithm of the variable #0 of the document minus its age in days)
{% endbox %}
|
| Power | |
|---|---|
|
Description: Raises a given float expression to a given power (integer). The power function can be used to create exponential functions or to weight different factors (make one more important than another in a product). |
Syntax: pow(base, exponent) |
|
Arguments:
base: a float expression, the base. exponent: a integer expression, the exponent. Zero, and negative values can be used. Float expressions (variables, function results) can be used, but will be truncated (the integer value closest to zero will be considered). |
|
|
Sample: {% box 'code' %}
pow(doc.var[0], 3) * doc.var[1] (sorts documents considering variable #0 three times as important as variable #1)
{% endbox %}
|
| Max | |
|---|---|
| Description: Returns the greater of two values. | Syntax: max(a, b) |
|
Arguments:
a: a float expression. b: a float expression. |
|
|
Sample: {% box 'code' %}
max(doc.var[0], doc.var[1]) (sorts documents considering variable #0 or variable #1 wichever is greater)
{% endbox %}
|
| Min | |
|---|---|
| Description: Returns the smaller of two values. | Syntax: min(a, b) |
|
Arguments:
a: a float expression. b: a float expression. |
|
|
Sample: {% box 'code' %}
min(doc.var[0], doc.var[1]) (sorts documents considering variable #0 or variable #1 wichever is smaller)
{% endbox %}
|
| Absolute | |
|---|---|
| Description: Returns the absolute value of a double value. For positive values, the argument is returned. For negative values, the negation of the value is returned. | Syntax: abs(value) |
|
Arguments:
value: a float expression, zero, positive, or negative. |
|
|
Sample: {% box 'code' %}
abs(doc.var[0]) (sorts documents considering variable #0 equally when its value is 1 or -1)
{% endbox %}
|
| Square root | |
|---|---|
| Description: Calculates the square root of a double value. This function is a variant of the power function that considers one case of non integer exponent (1/2). | Syntax: sqrt(value) |
|
Arguments:
value: a float expression. For negative values, NaN (not a number) will be returned. |
| If clause | |
|---|---|
|
Description: Evaluates a condition and returns the corresponding expression. This function takes
three arguments: a boolean condition, the expression to evaluate when the condition is met and the expression to consider when it is not. The expressions are regular float expressions (a variable, the result of a function, the result of an operation, a literal). The boolean condition is expressed by comparing two float expressions (no boolean operations allowed) with one of this comparators:
|
Syntax: if(cond, true, false) |
|
Arguments:
cond: the boolean condition comparing two expressions. true: the expression to evaluate when cond: is met. false: the expression to evaluate when cond: is not met. |
|
|
Sample: {% box 'code' %}
if(doc.var[0] < 1, doc.var[0], rel) (sorts documents considering variable #0 while its value is less than 1, otherwise considering textual relevance)
{% endbox %}
|
| Kms/miles calculator | |
|---|---|
| Description: Calculates the distance between two geographical points expressed as longitude/latitude coordinates. The distance can be expressed in kilometers or in miles. | Syntax: km(lat1, long1, lat2, long2) or miles(lat1, long1, lat2, long2) |
|
Arguments:
lat1: latitude of point 1. long1: longitude of point 1. lat2: latitude of point 2. long2: longitude of point 2. All coordinates are float values and they are expressed in degrees (non integer values ARE considered). |
|
|
Sample: {% box 'code' %}
miles(query.var[0], query.var[1], doc.var[0], doc.var[1])
(sorts documents considering the distance between doc and a point passed in the query)
{% endbox %}
|


{% extends 'contents/_base/events.html' %} {% load static %} {% block title %}BoF{% endblock %} {% block page_title %}
Registration starts from now! This year, BoF is at the end of 2nd conference day (Jun 4).
According to Wikipedia, BoF comes from a motto “Birds of a feather flock together.” A BoF session means an informal meeting at conferences, where the attendees group together based on a shared interest and carry out discussions without any pre-planned agenda.
Do you want to share ideas and creative projects with PyCon TW? Welcome everyone, to the PyConTW 2016 BoF, Let us implement the future, together!
Nope. In BoF, topics are not limited. The only on condition is that the topic has to be related to Python, PyCon, ideas exchanging or point of view discussion, please feel free to participate. Besides, there will be a variety of food!
You can register as a host, bring something new or funny projects: fighting robots, LED control systems, lighting, sound system and etc. Or, you don’t have enough time to give birth to those above, you just simply want to sing a song, Bouncing guitar, no matter how good or bad the product is, or what the crazy noise your music sounds like, you are always welcome to come and share with us!
You can also simply be a passenger, with a curious mind, come to BoF, have chat with others, broaden your horizons, or recruit community volunteers, and so on! Welcome to BoF together!
If you are willing to be a host at BoF, please send email to<EMAIL_ADDRESS>and please tell us: