|
Sandbox app for the OpenXR Provider library
Demo app for the OpenXRProvider library - A shared library that provides classes that when instantiated, exposes to an app simpler access to any currently running OpenXR runtime (e.g SteamVR, OculusVR, etc) by abstracting away most of the necessary OpenXR calls and their strict call sequence
|
#include <main.h>
Macros | |
| #define | APP_PROJECT_NAME "OpenXR Sandbox" |
| #define | APP_PROJECT_VER 1 |
| #define | APP_ENGINE_NAME "Custom" |
| #define | APP_ENGINE_VER 1 |
| #define | APP_MIRROR_WIDTH 800 |
| #define | APP_MIRROR_HEIGHT 600 |
| #define | APP_LOG_TITLE "Sandbox" |
| #define | APP_LOG_FILE L"\\logs\\openxr-provider-sandbox-log.txt" |
| #define | VIS_MASK_VERTEX_SHADER L"\\shaders\\vert-vismask.glsl" |
| #define | VIS_MASK_FRAGMENT_SHADER L"\\shaders\\frag-vismask.glsl" |
| #define | LIT_VERTEX_SHADER L"\\shaders\\vert-lit.glsl" |
| #define | LIT_FRAGMENT_SHADER L"\\shaders\\frag-lit.glsl" |
| #define | UNLIT_VERTEX_SHADER L"\\shaders\\vert-unlit.glsl" |
| #define | UNLIT_FRAGMENT_SHADER L"\\shaders\\frag-unlit.glsl" |
| #define | TEXTURED_VERTEX_SHADER L"\\shaders\\vert-textured.glsl" |
| #define | TEXTURED_FRAGMENT_SHADER L"\\shaders\\frag-textured.glsl" |
Functions | |
| int | main () |
| void | Callback_GLFW_Input_Key (GLFWwindow *pWindow, int nKey, int nScancode, int nAction, int nModifier) |
| int | AppSetup () |
| Setup the sandbox application - windowing and opengl support. More... | |
| int | GraphicsAPIObjectsSetup () |
| Setup the OpenGL objects (VAO, VBO, FBO) needed for rendering to textures from the OpenXR runtime. More... | |
| void | CreateInputActionBindings () |
| Generate all input action bindings to multiple controllers. More... | |
| void | DrawFrame (OpenXRProvider::EXREye eEye, uint32_t nSwapchainIndex) |
| void | BlitToWindow () |
| Blit (copy) swapchain image that's rendered to the HMD to the desktop screem (XR Mirror) More... | |
| void | DrawControllers (OpenXRProvider::EXREye eEye, glm::mat4 eyeView) |
| void | ProcessInputStates () |
| Process all the input states after syncing with runtime. More... | |
| void | DrawCube (OpenXRProvider::EXREye eEye, uint32_t nSwapchainIndex, glm::mat4 eyeView, unsigned int nTexture, glm::vec3 cubePosition, glm::vec3 cubeScale, glm::vec3 cubeRotationOverTime) |
| void | DrawSeaOfCubesScene (OpenXRProvider::EXREye eEye, uint32_t nSwapchainIndex, glm::vec3 cubeScale, float fSpacingPlane, float fSpacingHeight) |
| void | DrawHandJoints (OpenXRProvider::EXREye eEye, glm::mat4 eyeView) |
| void | DrawHandTrackingScene (OpenXRProvider::EXREye eEye, uint32_t nSwapchainIndex) |
| void | FillEyeMVP (glm::mat4 *vEyeProjections, glm::mat4 eyeView, OpenXRProvider::EXREye eEye, uint32_t nCubeIndex, glm::vec3 cubePosition, glm::vec3 cubeScale) |
| void | FillEyeMVP_RotateOverTime (glm::mat4 *vEyeProjections, glm::mat4 eyeView, OpenXRProvider::EXREye eEye, uint32_t nCubeIndex, unsigned nTexture, glm::vec3 cubePosition, glm::vec3 cubeRotation, glm::vec3 cubeScale) |
| glm::mat4 | GetEyeProjection (XrFovf eyeFoV, float fNear, float fFar) |
| glm::mat4 | InvertMatrix (const glm::mat4 mMatrix) |
| uint32_t | GetDepth (uint32_t nTexture, GLint nMinFilter, GLint nMagnitudeFilter, GLint nWrapS, GLint nWrapT, GLint nDepthFormat) |
| #define APP_ENGINE_NAME "Custom" |
| #define APP_ENGINE_VER 1 |
| #define APP_LOG_FILE L"\\logs\\openxr-provider-sandbox-log.txt" |
| #define APP_LOG_TITLE "Sandbox" |
| #define APP_MIRROR_HEIGHT 600 |
| #define APP_MIRROR_WIDTH 800 |
| #define APP_PROJECT_NAME "OpenXR Sandbox" |
| #define APP_PROJECT_VER 1 |
| #define LIT_FRAGMENT_SHADER L"\\shaders\\frag-lit.glsl" |
| #define LIT_VERTEX_SHADER L"\\shaders\\vert-lit.glsl" |
| #define TEXTURED_FRAGMENT_SHADER L"\\shaders\\frag-textured.glsl" |
| #define TEXTURED_VERTEX_SHADER L"\\shaders\\vert-textured.glsl" |
| #define UNLIT_FRAGMENT_SHADER L"\\shaders\\frag-unlit.glsl" |
| #define UNLIT_VERTEX_SHADER L"\\shaders\\vert-unlit.glsl" |
| #define VIS_MASK_FRAGMENT_SHADER L"\\shaders\\frag-vismask.glsl" |
| #define VIS_MASK_VERTEX_SHADER L"\\shaders\\vert-vismask.glsl" |
| int AppSetup | ( | ) |
Setup the sandbox application - windowing and opengl support.
| void BlitToWindow | ( | ) |
Blit (copy) swapchain image that's rendered to the HMD to the desktop screem (XR Mirror)
| void Callback_GLFW_Input_Key | ( | GLFWwindow * | pWindow, |
| int | nKey, | ||
| int | nScancode, | ||
| int | nAction, | ||
| int | nModifier | ||
| ) |
| [in] | pWindow | Pointer to the GLFW window |
| [in] | nKey | The key that was pressed that triggers this callback (e.g. GLFW_KEY_1) |
| [in] | nScancode | Platform specific scancode for the key that was pressed |
| [in] | nAction | Action that triggered the key event (e.g. GLFW_PRESS) |
| [in] | nModifier | Modifier bits (e.g. GLFW_MOD_NUM_LOCK) |
| void CreateInputActionBindings | ( | ) |
Generate all input action bindings to multiple controllers.
| void DrawControllers | ( | OpenXRProvider::EXREye | eEye, |
| glm::mat4 | eyeView | ||
| ) |
Draw the controller meshes for each hand
| [in] | eEye | Current eye to render to |
| [in] | nSwapchainIndex | Texture in the swapchain to render to |
| void DrawCube | ( | OpenXRProvider::EXREye | eEye, |
| uint32_t | nSwapchainIndex, | ||
| glm::mat4 | eyeView, | ||
| unsigned int | nTexture, | ||
| glm::vec3 | cubePosition, | ||
| glm::vec3 | cubeScale, | ||
| glm::vec3 | cubeRotationOverTime | ||
| ) |
Draw a single cube
| [in] | eEye | Current eye to render to |
| [in] | nSwapchainIndex | Texture in the swapchain to render to |
| [in] | eyeView | The eye view matrix |
| [in] | nTexture | The texture id to use for the cube |
| [in] | cubePosition | The position of the cube in world space |
| [in] | cubeScale | The scale of the cube in world space |
| [in] | cubeRotationOverTime | Amount of rotation of the cube over time |
| void DrawFrame | ( | OpenXRProvider::EXREye | eEye, |
| uint32_t | nSwapchainIndex | ||
| ) |
Render to the swapchain image (texture) that'll be rendered to the user's HMD and blitted (copied) to the Sandbox's window (XR Mirror)
| [in] | eEye | The eye (left/right) texture that will be rendered on |
| [in] | nSwapchainIndex | The index of the swapchain image (texture) |
| void DrawHandJoints | ( | OpenXRProvider::EXREye | eEye, |
| glm::mat4 | eyeView | ||
| ) |
Draw the hand joints (hand tracking runtime support required)
| [in] | eEye | Current eye to render to |
| [in] | nSwapchainIndex | Texture in the swapchain to render to |
| void DrawHandTrackingScene | ( | OpenXRProvider::EXREye | eEye, |
| uint32_t | nSwapchainIndex | ||
| ) |
Draw a scene with hand tracked joints and four large rotating cubes around the center of the playspace
| [in] | eEye | Current eye to render to |
| [in] | nSwapchainIndex | Texture in the swapchain to render to |
| void DrawSeaOfCubesScene | ( | OpenXRProvider::EXREye | eEye, |
| uint32_t | nSwapchainIndex, | ||
| glm::vec3 | cubeScale, | ||
| float | fSpacingPlane, | ||
| float | fSpacingHeight | ||
| ) |
Draw a scene with a sea of instanced textured cubes in the scene based on the number of textures provided
| [in] | eEye | Current eye to render to |
| [in] | nSwapchainIndex | Texture in the swapchain to render to |
| [in] | cubeScale | Scale to apply to the cubes |
| [in] | fSpacingPlane | The amount of spacing in between cubes in the x,z axis |
| [in] | fSpacingHeight | The amount of spacing in between cubes in the y axis |
| void FillEyeMVP | ( | glm::mat4 * | vEyeProjections, |
| glm::mat4 | eyeView, | ||
| OpenXRProvider::EXREye | eEye, | ||
| uint32_t | nCubeIndex, | ||
| glm::vec3 | cubePosition, | ||
| glm::vec3 | cubeScale = glm::vec3(0.f) |
||
| ) |
Fill the array of model-view-projection matrices that will be applied on a cube in a single frame and eye. This is filled in as instanced variables to the shader
| [in] | pRenderManager | Pointer to OpenXR Provider library's Render manager |
| [out] | vEyeProjections | Array of eye view projection matrices that will be applied to each cube model vertex |
| [in] | eyeView | The current eye view (camera) projection matrix |
| [in] | nCubeIndex | Index of the current cube being rendered (within the "sea") |
| [in] | nShader | Shader program id to use for the cube |
| [in] | nTexture | The texture id to use for the cube |
| [in] | cubePosition | The position of the cube |
| [in] | cubeScale | The scale of the cube |
| void FillEyeMVP_RotateOverTime | ( | glm::mat4 * | vEyeProjections, |
| glm::mat4 | eyeView, | ||
| OpenXRProvider::EXREye | eEye, | ||
| uint32_t | nCubeIndex, | ||
| unsigned | nTexture, | ||
| glm::vec3 | cubePosition, | ||
| glm::vec3 | cubeRotation, | ||
| glm::vec3 | cubeScale | ||
| ) |
Fill the array of model-view-projection matrices that will be applied on a rotating cube in a single frame and eye. This is filled in as instanced variables to the shader
| [in] | pRenderManager | Pointer to OpenXR Provider library's Render manager |
| [out] | vEyeProjections | Array of eye view projection matrices that will be applied to each cube model vertex |
| [in] | eyeView | The current eye view (camera) projection matrix |
| [in] | nCubeIndex | Index of the current cube being rendered (within the "sea") |
| [in] | nShader | Shader program id to use for the cube |
| [in] | nTexture | The texture id to use for the cube |
| [in] | cubePosition | The position of the cube |
| [in] | cubeRotation | The amount of rotation applied to the cube over time |
| [in] | cubeScale | The scale of the cube |
| uint32_t GetDepth | ( | uint32_t | nTexture, |
| GLint | nMinFilter = GL_LINEAR , |
||
| GLint | nMagnitudeFilter = GL_NEAREST , |
||
| GLint | nWrapS = GL_REPEAT , |
||
| GLint | nWrapT = GL_REPEAT , |
||
| GLint | nDepthFormat = GL_DEPTH_COMPONENT24 |
||
| ) |
Get the corresponding depth texture for a give color texture, create one if it doesn't exist If the runtime supports the XR_KHR_composition_layer_depth extension, the runtime provided depth texture will be used instead
| [in] | nTexture | Color texture to match with a depth texture to return |
| [in] | nMinFilter | (Optional: GL_LINEAR) |
| [in] | nMagnitudeFilter | (Optional: GL_NEAREST) |
| [in] | nWrapS | (Optional: GL_CLAMP_TO_EDGE) |
| [in] | nWrapT | (Optional: GL_CLAMP_TO_EDGE) |
| [in] | nDepthFormat | (Optional: GL_DEPTH_COMPONENT24) |
| glm::mat4 GetEyeProjection | ( | XrFovf | eyeFoV, |
| float | fNear = 0.1 , |
||
| float | fFar = 1000.f |
||
| ) |
Calculate the eye projection matrix for this OpenXR session. This can be calculated only once per application run
| [in] | pRenderManager | Pointer to OpenXR Provider library's Render manager |
| [in] | eyeFoV | The eye's field of view angles in radians |
| [in] | fNear | Near plane distance (must be greater than 0 to use depth testing in OpenGL) |
| [in] | fFar | Far plane distance |
| int GraphicsAPIObjectsSetup | ( | ) |
Setup the OpenGL objects (VAO, VBO, FBO) needed for rendering to textures from the OpenXR runtime.
| glm::mat4 InvertMatrix | ( | const glm::mat4 | pProjectionMatrix | ) |
Get the inverse of a given projection matrix
| [in] | pProjectionMatrix | The matrix to invert |
| [out] | glm::mat4 | The inverted matrix |
| int main | ( | ) |
| void ProcessInputStates | ( | ) |
Process all the input states after syncing with runtime.


--- layout: new title: About DEVit description: Thank you for being part of DEVit. Learn here all about your favorite Web Development Conference. permalink: /new/about --- {% include blocks/header.html page="about" %}
Every year we are setting the bar higher and deliver a world-class conference on web development.
DEVit started in 2015 and it takes place every year in Thessaloniki, Greece. It is known for its top speaking talent, a mixture of world-class and world-renowned developers, highly specialized technology niches and developers who are the edge of the technology frontiers.
The attendees of the conference are mostly highly trained and motivated web developers, representing the cream of the crop in talent South East Europe has to offer. DEVit, now in its fourth year, has become the defacto meeting point of all seasoned web development professionals.
Whether it's Frontend, UI/UX, Backend, DevOps or Mobile that you care about, join us to learn about the most modern practices and techniques.
DEVit is a non-profit conference organized by volunteers. All proceeds are used to bringing top-tier speakers and organizing advanced workshops on all trending web technologies.
organised by
The Zodiac was split into twelve sections, each named after the specific constellation noted in that area. Elements: Many ancient philosophies used a set of classical elements to explain the way nature behaved. Each sign was connected to one of the classical elements (fire, earth, air, or water) and was also related to a region of focus; social, personal or universal.
{{member.name}}
{% for member in site.data.team.volunteers %} {{ member.name }}, {% endfor %}
Where would human beings be without dreams? Would we have explored distant places or invented the means to travel to those destinations.
{% include components/icons-stack.html items=site.data.team.partners %}


Welcome
I am a software engineer, you can checkout my instagram here. Instagram
I usually waste my time doing cool projects. but if you are more tech savy, here is my GitHub link.
You can visit my discord: debug#1111
Cheers!


class: center, middle, inverse, title-slide # Lecture 4 ## Data Science Toolbox ### Tyler Ransom ### ECON 5253, University of Oklahoma --- # Plan for the day Cover a broad view of tools that are required in the data science pipeline - Measurement - Statistical programming languages - Visualization tools (usually included with the above) - Big Data management software - Data collection tools --- # Measurement - A large part of data science (and quantitative research in general) is measurement - Measurement is how "insights" or "policies" are constructed - one cannot construct a policy without first measuring what the policy is meant to accomplish - Our class will not focus much on the "meta" question of how a particular qualitative phenomenon is measured with data, but the importance of measurement (and a solid understanding of what the data set is and is not capturing) should always be in the back of a data scientist's mind. --- # Measurement example: basketball coaching - How would a basketball coach quantify her "best lineup"? - It could be measured by comparing points scored vs. points allowed while each possible lineup is on the court - This simple measurement is one way to quantify "best lineup" - Of course, the coach will likely also be interested in *why* the "best lineup" is performing as well as it is - In this case, she would need additional measurements to paint a clearer picture of what is happening among those particular teammates - Perhaps that lineup plays better defense, or passes the ball more frequently, or gets more rebounds, or ... --- # Statistical programming languages - 3 main mathematical and statistical programming languages we will use and discuss: - R - Python - Julia - There are many other languages that can be used for statistical analysis: - Stata - SAS - SPSS - Matlab - and even JavaScript --- # Compiled vs. scripted - Many of the languages listed in the prior sentence were built on C, C++, or Fortran - The latter three are known as .hi[compiled] languages, while all other are known as .hi[scripted] languages - Compiled languages require the user to write code that the CPU can understand - Scripted languages allow the user to write code that is more human-readable, at the expense of performance. --- # R vs. Python vs. Julia Below is a table summarizing the main differences between R, Python, and Julia: | | R | Python | Julia | |------------------------------------|-----------|----------|----------| | Date established | 1995 | 1991 | 2012 | | Approximate user base | large | largest | smallest | | Used for data science | Yes | Yes | Yes | | Used for general-purpose computing | No | Yes | Yes | | Open source | Yes | Yes | Yes | | Web scraping package? | `rvest` | `BeautifulSoup` | `Gumbo.jl`, `Cascadia.jl` | | Visualization library? | `ggplot2` | `matplotlib` | `Plots.jl`| | Machine learning library? | mlr | scikit-learn | `MLJ.jl`| | Biggest advantage | `tidyverse` | ubiquity | speed | | Biggest disadvantage | speed | speed | age | --- # Which programming language should you learn? - It depends on what you already know and what you want to do after graduation - If you are already well acquainted with R's `tidyverse`, I would recommend using this course to learn Python or Julia - If you don't have a good handle on R, I would recommend using this course to learn the R `tidyverse`, as it is a very popular set of DS tools - Most of the examples in class will be in R, but we will also use Julia a bit --- # Web Scraping - With the proliferation of the internet, data is being collected all the time and stored in publicly accessible places (we call these webpages) - Thus, one of the tools in a data scientist's toolbox should be the ability to leverage this information to better inform the objective at hand (prediction, "insights", "policy", etc.) --- # How does web scraping work? Typically *web scraping* involves one of two tasks: 1. Using an application program interface (API) to download data 2. Downloading HTML files and parsing their text to extract data --- # APIs - APIs are employed by many of the most notable web companies (twitter, Facebook, LinkedIn, yelp, etc.) - These companies employ APIs so that they can guard their data---either for privacy concerns, or for monetary reasons - So, for example, although Donald Trump's tweets are public record, twitter limits the number of tweets that you can extract from his timeline (3,200 is the current limit) - Why do they impose this limit? I'm not sure. - LinkedIn limits the information that one can scrape from its website by forcing users to go to through its API (which has precious little information relative to what is in a full LinkedIn profile) --- # Parsing - With all of this talk about gated APIs, you might be thinking, "Why can't I just download the HTML code from the website and parse the data myself?" - This can be a useful option in many cases, and it is the only option for websites that don't have an API - One drawback to this approach is that some websites (like LinkedIn or yelp) monitor the IP addresses of all website viewers - If you ping their website too frequently within a given period of time, they may block your access to their website - There are also ethical considerations with collecting and using web data, which we'll cover later in the course --- # Web scraping in the three data science languages - Web scraping can be done in almost any programming language out there - However, there are convenient resources in R, Python, and Julia, which have packages built to parse HTML blocks and automatically load the data into a tabular environment for immediate analysis - We'll talk more about this process in a few weeks --- # Handling large data sets - In some cases, you might encounter data sets that are too big to fit on a single hard drive (or are too big to fit in R/Julia/Python's memory) - For example, consider data held by Amazon on screen clicks, cart inventory, and purchases of all of its 310 million active users - Most desktop computers these days don't come with more than 64GB of RAM, and most laptops don't come with more than 32GB - If you try to load into R a data set that is larger than your machine's RAM capacity, your machine will freeze and you'll have to unplug it if you want to use it again - [This has happened to me a few times in the past with Matlab, so I speak from experience] --- # Handling large data sets - What do you do when you can't open all of your data? - Depending on how the data is stored, you may be able to split the files up into manageable chunks (e.g. split the huge file into 100 pieces, where each piece can fit into R on one machine) - But that's not a viable long-term solution if your data set gets updated, or if you want to compute summary statistics on the full set of data, or if you want to do other operations on it, like create a new variable - Fortunately, there are other programs one can use to analyze data that is too large to fit on one machine --- # RDDs - The solution to this problem is Resilient Distributed Datasets (RDDs) - To use RDDs you need a cluster of computers and software such as Hadoop or Spark - Spark chops your huge data set into manageable chunks and executes actions on those chunks in parallel - One can do many common data operations like subsetting the data, creating summary statistics, etc. - The crucial aspect of RDDs is that they are built to withstand any disruption in the computing cluster - So if one of the machines on the cluster happens to fail, the data it was holding can be seamlessly transferred to another machine --- # SQL (Structured Query Language) - While not necessarily required for handling mega data sets, SQL is the most common database language to transform data into a more usable form for statistical software to use - With SQL, one can easily subset, merge, and perform other common data transformations - You will get experience using both SQL and Spark a bit later in the class --- # Visualization - Visualization is an important tool for data scientists - Visualizing data allows humans to see in multiple dimensions what the data looks like, spot outliers, and otherwise perform "sanity checks" on the data - I'll review here the primary visualization tools in the three DS programming languages --- # `ggplot2` (R) - `ggplot2` is the visualization package included in the R `tidyverse` - This package has a large user following and the graphic style is immediately recognizable - I personally don't care for the design aesthetic, but it can be hard to argue with ubiquity - If you're interested in learning this, I recommend checking out the [data visualization](http://r4ds.had.co.nz/data-visualisation.html) and [graphics for communication](http://r4ds.had.co.nz/graphics-for-communication.html) chapters in the [R for data science](http://r4ds.had.co.nz/) online textbook --- # `matplotlib` (Python) - `matplotlib` is the original graphics package for Python - It was designed to mimic Matlab's visualization syntax - Beyond `matplotlib`, there is a `ggplot` package which ports to `ggplot2`, as well as a variety of others --- # `Plots.jl` (Julia) - `Plots.jl` is a package that came about recently - Its innovation is that, once the user provides it with code, it can output graphics using any other package as a backend - For example, a user can write some code to create a data visualization which creates a graphic using `ggplot2` - Then, by only tweaking one option in that code, the user could output the same graphic in `matplotlib` - This package is a nice way to only have to code once but be able to create graphics in many different styles --- # Tableau - Tableau is a software company that produces interactive data visualization products - Tableau primarily bills itself as an interactive product, but there are workarounds to interact with JavaScript and R (see [here](https://stackoverflow.com/questions/18754853/scripts-or-plug-ins-for-tableau)) - We won't be covering Tableau in this course, but it is a commonly used visualization tool in the real world, so you should at least know what it is --- # Modeling - Now that you've collected your data, cleaned it up, and visualized it, you're ready to start doing some statistical modeling - The main objectives of statistical modeling are as follows: 1. Use the data to test theories 2. Use the data to predict behavior 3. Use the data to explain behavior --- # Modeling 1. Use the data to test theories - For example, Amazon may wonder "Are women more likely than men to subscribe to Prime?" Without data this is simply a "hunch" or a belief 2. Use the data to predict behavior - For example, many companies need to optimize their inventory management so that the right amount of inventory is in the right stores at the right time 3. Use the data to explain behavior - This is a bit more difficult, because it requires causality, not just prediction --- # References - [Common data science file formats](https://www.analyticsvidhya.com/blog/2017/03/read-commonly-used-formats-using-python/) - [Measurement YouTube video](https://www.youtube.com/watch?v=4RZiWZXdbTw)


| struct { |
| int major; |
Major revision number. |
| int minor; |
Minor revision number. |
| } |
| revision; |
Revision number. |
| int16 stid; |
Station identifier number. |
| double time; |
Data record time stamp, specified as seconds from 0:00UT January 1, 1970. |
| int16 scan; |
Scan flag. |
| int16 cp; |
Control program identifier number. |
| int16 bmnum; |
Beam number. |
| float bmazm; |
Beam azimuth. |
| int16 channel; |
Channel number for a stereo radar. |
| struct { |
| int16 sc; |
Seconds. |
| int32 us; |
Microseconds. |
| } |
| intt; |
Integration time. |
| int16 frang; |
Distance to first range (kilometers). |
| int16 rsep; |
Range separation (kilometers). |
| int16 rxrise; |
Receiver rise time (microseconds). |
| int16 tfreq; |
Transmitted frequency. |
| int32 noise; |
Calculated noise from clear frequency search. |
| int16 atten; |
Attenuation level. |
| int16 nave; |
Number of pulse sequences transmitted. |
| int16 nrang; |
Number of ranges. |
| unsigned char num; |
Number of ranges stored. |
| unsigned char rng[MAX_RANGE]; |
Range lookup table. The numbers stored in the array correspond to the actual range number for the stored data. |
struct CFitCell data[MAX_RANGE]; |
Data table. |


my education
- I studied to years diploma in Automotive technology. and after i did the shamel exam at Al-Balqaa University i did what we call it Tajseer
- I studied mechanical engineering in the University of Jordan. I'm intrested in data science and computer science. And i hope to get better everyday
My Skills
Being a member in Association of Energy (AEE) and being a member in debate club
the relation beween me and the sport
the journy begun when i watched a movie called Fighter in the wind, it was about kyukushinkai. I did it and enjoyed it, i did about 5 years. It was an amazing experience, and this sport opened my eyes in alot of another sports. I did running, kickboxing, BJJ and another sports. The funny fact that i'm still overweight wich can make you understand that i like food so much :)
My top ten foods:
- Mansaf
- Msaqqan
- Pizza
- Shawerma
- Shushbarak
- Warak dawali
- Shushbarak
- Malfoof
- carrot cake
- Madloa'a


{% autoescape true %}
Share Debrid
Share Debrid - User: {{user.nickname()}}
Source URL:
Unrestricted URL:
Previous links
{% endautoescape %}


public class StatToolbox
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
static double |
ILLEGAL_FLAG
A flag that indicates an illegal value or failed operation
|
| Constructor and Description |
|---|
StatToolbox() |
| Modifier and Type | Method and Description |
|---|---|
static int |
FindMaxIndex(int[] y)
Given an array, return the index of the maximum value
|
static int |
multinomial_sample(gnu.trove.list.array.TIntArrayList vals,
double[] probs)
Sample from a multinomial distribution
|
static double |
normal_cdf(double x)
Calculate the cumulative density under a standard normal to a point of interest.
|
static double |
rand()
A convenience method for a random object
|
static double |
sample_average(double[] y)
Compute the sample average of a vector of data
|
static double |
sample_average(int[] y)
Compute the sample average of a vector of data
|
static double |
sample_average(gnu.trove.list.array.TDoubleArrayList y)
Compute the sample average of a vector of data
|
static double |
sample_from_inv_gamma(double k,
double theta)
Draws a sample from an inverse gamma distribution.
|
static double |
sample_from_norm_dist(double mu,
double sigsq)
Draws a sample from a normal distribution.
|
static double |
sample_maximum(double[] y)
Compute the sample maximum of a vector of data
|
static double |
sample_maximum(int[] y)
Compute the sample maximum of a vector of data
|
static double |
sample_median(double[] arr)
Compute the sample median of a vector of data
|
static double |
sample_minimum(double[] y)
Compute the sample minimum of a vector of data
|
static double |
sample_minimum(int[] y)
Compute the sample minimum of a vector of data
|
static double |
sample_standard_deviation(double[] y)
Compute the sample standard deviation of a vector of data
|
static double |
sample_standard_deviation(int[] y)
Compute the sample standard deviation of a vector of data
|
static double |
sample_sum_sq_err(double[] y)
Compute the sum of squared error (the squared deviation from the sample average) of a vector of data
|
static double |
sample_variance(double[] y)
Compute the sample variance of a vector of data
|
static void |
setSeed(long seed)
Set the seed of the random number generator
|
public static final double ILLEGAL_FLAG
public static double sample_from_inv_gamma(double k, double theta)
k
- The shape parameter of the inverse gamma distribution of interesttheta
- The scale parameter of the inverse gamma distribution of interestpublic static double sample_from_norm_dist(double mu, double sigsq)
mu
- The mean of the normal distribution of interestsigsq
- The variance of the normal distribution of interestpublic static double normal_cdf(double x)
x
- The point of interest on the standard normal density supporthttp://www.johndcook.com/cpp_phi.html}
public static final double sample_average(double[] y)
y
- The vector of data valuespublic static final double sample_average(gnu.trove.list.array.TDoubleArrayList y)
y
- The vector of data valuespublic static final double sample_average(int[] y)
y
- The vector of data valuespublic static double sample_median(double[] arr)
arr
- The vector of data valuespublic static final double sample_standard_deviation(int[] y)
y
- The vector of data valuespublic static final double sample_standard_deviation(double[] y)
y
- The vector of data valuespublic static final double sample_variance(double[] y)
y
- The vector of data valuespublic static final double sample_sum_sq_err(double[] y)
y
- The vector of data valuespublic static double sample_minimum(int[] y)
y
- The vector of data valuespublic static double sample_maximum(int[] y)
y
- The vector of data valuespublic static double sample_minimum(double[] y)
y
- The vector of data valuespublic static double sample_maximum(double[] y)
y
- The vector of data valuespublic static int FindMaxIndex(int[] y)
y
- The vector of data valuepublic static int multinomial_sample(gnu.trove.list.array.TIntArrayList vals, double[] probs)
vals
- The integer values of the labels in this multinomial distributionprobs
- The probabilities with which to sample the labels (must be the same length of the vals)public static void setSeed(long seed)
seed
- The seedpublic static double rand()


Konjo started painting in September 2018. He has an intense experimental approach utilizing multiple mediums including spray, acrylic, oil, gouache, on canvas, foamboard, cardboard, etc.
Konjo is inspired by beauty, discovery, passion, in a healthy & positive universe. He hopes that his paintings fill people with emotion and arouse feelings not otherwise felt.
Other themes explored through painting include:
Freedom
Movement
Determination
Elegance
Perfection


Verify that unused SQL database access accounts are removed.
Each SQL access account increases the attack surface of your application. Unused accounts can be exploited by an attacker as a means of entry. Remove unused and unnecessary DB accounts and users to simplify security management.
Unused accounts are susceptible to brute force attacks, and the DB can be compromised. The AWS security model defines customer responsibilities for database access within your cloud service.
Always enumerate SQL DB accounts and their use for design and deployment, so that their status can be audited at intervals specified in your security management plan.
Remove unused SQL accounts at these milestones:
DB Created. During installation of the DB instance, demo or sample database access accounts may be included. If not necessary, the accounts should be deleted.
DB Deployed. Test accounts should be removed before deployment of the application.
Periodic Security Checks. Remove unused SQL accounts when found during periodic security audits specified in your security management plan.
Exercise caution when removing SQL access accounts. If an account is currently using resources, or has an open session, the delete operation may produce an error. Be sure to confirm the use and status of any SQL account before removal. Do not remove system accounts.
To verify that unused SQL database access accounts are removed:
Identify SQL database access accounts. Make a spreadsheet about all the databases and accounts that can access them.
Examine each SQL database access account. Review the spreadsheet about SQL accounts and make sure that all of them are being used. Unused accounts should be removed.
To remove unused SQL database access accounts, follow the instructions under the specific AWS database used.
Login with Privileges. Open a terminal or command shell and log in as a database superuser. Enter the following command, and type in your password.
mysql -u <superuser_name> -p
Verify Account Exists. Review the user listing, and confirm the database access account to be removed.
mysql> select host, user from mysql.user
Drop User. Issue the command to drop the target user account. The syntax for user is 'user_name'@'localhost'
.
mysql> drop user <user_name>
Account Removed. The account and privileges are removed after issuing the command. If there is an open user session, the account is dropped when the session is closed. Any future attempt to login with the account will fail. Note that databases and other objects created by the account are not deleted. Security errors may result if attempts are made to open these objects in definer security context. Refer to the MySQL Reference Manual for more information on reassigning object permissions.
Login with Privileges. Open the command line tool SQL*Plus, and log in with an account that has the DROP USER system privilege. Enter the following commands.
sqlplus /nolog
connect / as sysdba
Verify Account Exists. Review a user listing, and confirm the database access account to be removed. Note in the example that user names are case-sensitive.
SELECT * FROM ALL_USERS;
USERNAME
********
TEST01
Test01
Test02
Test03
Drop User. Issue the command to drop the target user account.
DROP USER <user_name> CASCADE;
Account Removed. The user account and associated schema are removed from the data dictionary. All schema objects in the user schema are also removed. Do not drop the SYS or SYSTEM user. This will corrupt the database.
Login with Privileges. Login to a management computer as a user with membership in Account Operators, Domain Admins, Enterprise Admins, or equivalent group. Open SQL Server Management Studio.
Verify Account Exists. Review the database user list, and confirm the database access account to be removed.
Delete User. Right-click the user object and choose Delete.
Note: If a schema is owned by this user, there will be an error message: The database principal owns a schema in the database, and cannot be dropped (Microsoft SQL Server, Error: 15138).
Look in the left pane and locate the Schema folder (SQL Server > Databases > Your_DB > Security > Schema). Scroll through the list and identify any schema owned by the database user you are trying to delete. When found, right-click on the schema name and change the owner to another user (Properties -> General -> Schema Owner).
Account Removed. The database user is removed. If present, schema ownership was re-assigned.
Note: The steps above remove the database user, but do not address management of a Windows or SQL Server login, if one has been mapped to this user. Refer to the Microsoft SQL Server Product Documentation for more information on login accounts.
Login with Privileges. Open a terminal or command shell and log in as a database superuser. The default superuser in the example is postgres. Enter the following command, and type in your password.
$ psql -U <superuser_name> <db_name>
Verify Account Exists. Review the user listing, and confirm the database access account to be removed.
db_name=# select * from pg_shadow;
Drop User. Issue the command to drop the target user account. In the example, on the second line, DROP USER
is confirmation that the command has succeeded.
db_name=# DROP USER <user_name>;
DROP USER
Account Removed. The account is removed after issuing the command. If there is an open user session, the account is dropped when the session is closed. Any future attempt to login with the account will fail. Note that databases and other objects created by the account are not deleted. If ERROR: role "user_name" cannot be dropped because some objects depend on it appears, the objects should be reassigned or dropped. Refer to the PostgreSQL Documentation for more information on dropping or reassigning objects.


Superman is a fictional superhero. He was the the first dc superhero. The character was created by writer Jerry Siegel. The character was drawn by Joe Shuster. Superman was born on the planet Krypton. Who named him Clark Kent. Clark developed various superhuman abilities. Such as incredible strength and impervious skin. His foster parents advised him to use his abilities for the benefit of humanity. And he decided to fight crime as a vigilante. He was the best-selling superhero character in American comic books up until the 1980s. Supermans weakness is kroptonite. Superman can fly at great speeds. Superman can project and perceive X-rays via his eyes. Superman has freeze breath. Seeing through objects. Kirk Alyn was the first actor of superman. Superman's secret identity is Clark kent. His full name is Clark Joseph Kent. He is a reporter for the Daily Planet.
Given the name Kal-El at birth. As a baby, his parents sent him to Earth in a small spaceship. Moments before Krypton was destroyed in a natural cataclysm. His ship landed in the American countryside, near the fictional town of Smallville. He was found and adopted by farmers Jonathan and Martha Kent. To protect his privacy, he changes into a colorful costume and uses the alias "Superman" when fighting crime. Clark Kent resides in the fictional American city of Metropolis. Where he works as a journalist for the Daily Planet. Daily Planet photographer Jimmy Olsen and editor-in-chief Perry White. His arch-enemy being supervillain Lex Luthor. In Action Comics #1, Superman could not fly. He traveled by running and leaping. He can breath in space. He has faught hulk and won. Paramount pictures animated superman. As a reporter for the Daily Planet he gets news before the whole city. Superman is very powerfull He has lost a fight to batman. He is a vigilante. And seeing as how he is a reporter he get news before the whole city then if its a crime he can stop it.


{% include head.html %}
{% include header.html %} {% include introduction.html %} {% include dataset.html %} {% include data_story.html %} {% include research.html %} {% include conclusions.html %} {% include about.html %} {% include team.html %} {% include clients.html %} {% include contact.html %} {% include footer.html %} {% include research_layout.html %} {% include js.html %} {% include analytics.html %}


not-accessible «
The value of this constant is returned by the file-exists function to indicate that the target file cannot be accessed.