# PostgreSQL. Versions 8.2 and up are supported. # # Install the pg driver: # gem install pg # On OS X with Homebrew: # gem install pg – –with-pg-config=/usr/local/bin/pg_config # On OS X with MacPorts: # gem install pg – –with-pg-config=/opt/local/lib/postgresql84/bin/pg_config # On Windows: # gem install pg # Choose the win32 build. # Install PostgreSQL and put its /bin directory on your path. # # Configure Using Gemfile # gem 'pg' # default: &default
adapter: postgresql encoding: unicode # For details on connection pooling, see rails configuration guide # http://guides.rubyonrails.org/configuring.html#database-pooling pool: 5
development:
<<: *default database: Mastercraft-Lighting_development # The specified database role being used to connect to postgres. # To create additional roles in postgres see `$ createuser --help`. # When left blank, postgres will use the default role. This is # the same name as the operating system user that initialized the database. #username: Mastercraft-Lighting # The password associated with the postgres role (username). #password: # Connect on a TCP socket. Omitted by default since the client uses a # domain socket that doesn't need configuration. Windows does not have # domain sockets, so uncomment these lines. #host: localhost # The TCP port the server listens on. Defaults to 5432. # If your server runs on a different port number, change accordingly. #port: 5432 # Schema search path. The server defaults to $user,public #schema_search_path: myapp,sharedapp,public # Minimum log levels, in increasing order: # debug5, debug4, debug3, debug2, debug1, # log, notice, warning, error, fatal, and panic # Defaults to warning. #min_messages: notice
# Warning: The database defined as “test” will be erased and # re-generated from your development database when you run “rake”. # Do not set this db to the same as development or production. test:
<<: *default database: Mastercraft_Lighting_test username: postgres
# As with config/secrets.yml, you never want to store sensitive information, # like your database password, in your source code. If your source code is # ever seen by anyone, they now have access to your database. # # Instead, provide the password as a unix environment variable when you boot # the app. Read guides.rubyonrails.org/configuring.html#configuring-a-database # for a full rundown on how to provide these environment variables in a # production deployment. # # On Heroku and other platform providers, you may have a full connection URL # available as an environment variable. For example: # # DATABASE_URL=“postgres://myuser:mypass@localhost/somedatabase” # # You can use this database configuration with: # # production: # url: <%= ENV %> # production:
<<: *default database: Mastercraft-Lighting_production username: Mastercraft-Lighting password: <%= ENV['MASTERCRAFT-LIGHTING_DATABASE_PASSWORD'] %>


Digit Guesser
I bet Cole's handwriting recognition Convolutional Neural Net can guess whatever digit (number) you can draw (play nice, now).
Bike Rack Finder
Want to find a safe rack for your bike in Portland so you can have a decent chance of finding it intact when you get back? Zak's API to bike theft statistics can help. Stay tuned for a graphical web app and map and maybe a mobile app.
Tweet API
This API offers access to a collection of tweet data that is ideal for natural language processing.
Authors and Contributors
| Hannes Hapke | @hanneshapke |
| Cole Howard | @uglyboxer |
| Zak Kent | @zak-kent |
| Hobson Lane | @hobson |
| Phil Robinson | @probinso |
| Thunder Shiviah | @thundershiviah |
Support or Contact
Feedback? Ideas? Visit our repository to submit a PR or Issue


A strong foundational knowledge of Postgresql, Ruby, and Ruby on Rails, earned by building applications from the ground up.
Close collaboration with my exemplary peers on the front-end has given me insight and experience into style, design, and user experience.
Test- and Behavior-Driven Development principles followed by strong security and validation practices ensure safe, stable applications.
Full-Stack Dev


Ringgit ends lower versus US dollar
KUALA LUMPUR, Nov 13 — The ringgit ended lower against the US dollar, in line with most Asian currencies, amid weak sentiment due to uncertainties of a trade deal between the United States and China, said a dealer.
At 6pm, the ringgit was quoted at 4.1520/1550 against the greenback from yesterday’s close of 4.1410/1440.
AxiTrade chief Asia market strategist Stephen Innes said traders were suffering a bit of trade talk fatigue and might sit tight until the deal is brokered.
“I am still optimistic one will be done but not sure how much of an impact in the absence of a tariff rollback it will ultimately have on sentiment,” he told Bernama.
Innes added that the ringgit was impacted by twin factors namely US bond yields and the movement of yuan.
“It has not been a good day for regional risk in any shape or form. We respect the tight correlation to the yuan, as the yuan started to turn sour last Friday when US President Donald Trump first denied he was going to roll back tariffs.
“The market guessed he was motivated to put a deal together but now that optimism is waning as investors shun riskier asset in favour of US capital markets. But US bond yields are much higher than they were only two weeks ago and that is also supporting the US dollar,” he added.
Meanwhile, the local note traded lower against other major currencies.
The ringgit fell against the Singapore dollar to 3.0464/0498 from 3.0415/0448 yesterday and went down against the yen to 3.8123/8158 from 3.7932/7966 yesterday.
It weakened against the British pound to 5.3357/3413 from 5.3158/3213 and declined against the euro to 4.5726/5776 from 4.5679/5729. — Bernama


Resources
These resources are an introduction to the water pollution problem. You are more than welcome to dive deeper into this issue.
Marine Conservation
Ocean Conservancy
National Geographic
Oceana
Save the Water
Department of Ecology: State of Washington
Protect Planet Ocean
Seametrics
Why You Should Be Concerned About Oceans from Matador Network


git-sh-setup - Common Git shell script setup code
. "$(git --exec-path)/git-sh-setup"
This is not a command the end user would want to run. Ever. This documentation is meant for people who are studying the Porcelain-ish scripts and/or are writing new ones.
The git sh-setup scriptlet is designed to be sourced (using .) by other shell scripts to set up some variables pointing at the normal Git directories and a few helper shell functions.
Before sourcing it, your script should set up a few variables; USAGE (and LONG_USAGE, if any) is used to define message given by usage() shell function. SUBDIRECTORY_OK can be set if the script can run from a subdirectory of the working tree (some commands do not).
The scriptlet sets GIT_DIR and GIT_OBJECT_DIRECTORY shell variables, but does not export them to the environment.
die
exit after emitting the supplied error message to the standard error stream.
usage
die with the usage message.
set_reflog_action
Set GIT_REFLOG_ACTION environment to a given string (typically the name of the program) unless it is already set. Whenever the script runs a git command that updates refs, a reflog entry is created using the value of this string to leave the record of what command updated the ref.
git_editor
runs an editor of user(cqs choice (GIT_EDITOR, core.editor, VISUAL or EDITOR) on a given file, but error out if no editor is specified and the terminal is dumb.
is_bare_repository
outputs true or false to the standard output stream to indicate if the repository is a bare repository (i.e. without an associated working tree).
cd_to_toplevel
runs chdir to the toplevel of the working tree.
require_work_tree
checks if the current directory is within the working tree of the repository, and otherwise dies.
require_work_tree_exists
checks if the working tree associated with the repository exists, and otherwise dies. Often done before calling cd_to_toplevel, which is impossible to do if there is no working tree.
require_clean_work_tree <action> [<hint>]
checks that the working tree and index associated with the repository have no uncommitted changes to tracked files. Otherwise it emits an error message of the form Cannot <action>: <reason>. <hint>, and dies. Example:
require_clean_work_tree rebase "Please commit or stash them."
get_author_ident_from_commit
outputs code for use with eval to set the GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL and GIT_AUTHOR_DATE variables for a given commit.
create_virtual_base
modifies the first file so only lines in common with the second file remain. If there is insufficient common material, then the first file is left empty. The result is suitable as a virtual base input for a 3-way merge.
Part of the git(1) suite


Log in
Home
(current)
Tools
PDF View
Tabular View
Test
Views
Test Menu
Home
PDF View
Statistics
Tabular View


Adding support for a new open source¶
Support consists of two parts:
- A fingerprint *.py file with the logic required for locating the library
- An initial configuration file for a chosen version
Compiling the configuration is done exactly as described in the prior section. However, you should make sure to document the flags you changed in the project’s Makefile, by storing your guidelines in the compilations
folder under a new *.txt file named after your open source library.
Adding a new *.py file for the identification script is rather simple. The needed steps are:
- Copy some existing file from the
libs
folder (libpng.py
for instance) to a new *.py file with the name of your library, and place it too under thelibs
folder - Update the
__init__.py
file with your library, and place your new import line at the end of the list - Update the name of the class
- Update the
NAME
variable, with an exact string name (case sensitive) - Update the logic of
searchLib()
method - currently based on a basic string search - If needed, update the logic of the
identifyVersions()
method


| I l@ve RuBoard |
The win32api module contains a mixed bag of useful Win32 API functions. This module contains general-purpose routines often required by programs with fairly light Windows-specific requirements. Other Python modules provide more complete coverage of specific Win32 API sets.
| ShellExecute( ) |
Performs an operation on the specified file.
ShellExecute(Hwnd, Operation, File, Parameters, InitialDirectory, bShow)
A handle to the window that is to be the parent window for the new process. This is primarily used for message boxes the new application may display. It's expressed as a Python integer, and (zero) may be passed if no parent is required.
A string representing the operation to perform on the file. Typically this is open. The value it takes depends on the process being executed. For example, if you execute a Python file, supported operations are open and edit. If you execute a Microsoft Word document, supported operations include open and print.
The name of the file to execute. Most commonly, this is a document, but a program can also be specified.
If the File parameter contains the name of a document file, this should be None. If a program is specified, it should be a string containing the name of the document file.
The directory in which to open the document. This directory becomes the current directory for the application.
An integer specifying if the main window for the application is to be shown. This is typically 1.
| WinExec( ) |
Runs the specified application.
WinExec(CommandLine, WindowShowState)
The command to execute. This string can contain simply the program name in which case the Windows path is searched, or it may contain the full path to the program. Parameters to the program can also be specified here, and these parameters should contain embedded quotation marks if necessary.
An optional integer that defines how the main window for the program is created. If this parameter isn't specified, win32con.SW_SHOWNORMAL is used. Common values for this flag are listed here, but for a full list, please see the Microsoft documentation for the WinExec function.
The window is created using its default. Typically, this means the window is created in a restored or overlapped state.
The window is created maximized.
The window is created minimized.
The window is created hidden.
| OpenProcess( ) |
Retrieves a handle to an existing process.
handle = OpenProcess(reqdAccess, bInherit, processId)
An integer defining the access level requested on the handle. Common values are listed here, but for a full description please see the Win32 documentation for the OpenProcess() function.
Specifies all possible access flags for the process object.
Enables using the process handle in the GetExitCodeProcess() and GetPriorityClass() functions to read information from the process object.
Enables using the process handle in the TerminateProcess() function to terminate the process.
Specifies whether the returned handle can be inherited by a new process created by the current process. If true, the handle is inheritable.
An integer specifying the process identifier of the process to open.
The result is a PyHANDLE object containing the handle to the process.
| GetSystemMetrics( ) |
Retrieves information, in pixels, about various display elements and system configuration settings.
result = GetSystemMetrics(metricType)
Specifies the information to retrieve. There are over 80 valid values for this function, which can be identified by constants in the win32con module that begin with SM_, such as SM_CXSCREEN. Please see the Win32 documentation for further details.
An integer with the requested system metric.
| GetDomainName( ) |
Retrieves the name of the domain to which the current computer belongs.
name = GetDomainName()
No parameters.
The result is a string with the current domain name.
| GetUserName( ) |
Retrieves the username for the current thread.
name = GetUserName()
No parameters.
The result is a string with the current username. No domain information is returned, just the username.
| GetComputerName( ) |
Retrieves the NetBIOS name of the local computer, as defined in the control panel and read at system bootup.
name = GetComputerName()
No parameters.
The result is a string with the computer name.
| InitiateSystemShutdown( ) |
Initiates a shutdown and optional restart of the specified computer.
InitiateSystemShutdown(machineName, message, timeout, bForceAppsClosed, bReboot)
The network name of the machine to shut down or None for the current machine.
A string that specifies a message to be displayed in the shut-down dialog box or None for no message.
An integer that specifies the time in milliseconds to display the dialog. During this period, the shutdown can be aborted by calling AbortSystem-Shutdown(). If this value is zero, no dialog is shown, and the shutdown begins immediately.
An integer that specifies if applications should be forced closed. If true, users aren't given an opportunity to save their work.
An integer that specifies if the machine should be restarted after shutdown or left in a state safe to power off the computer.
To shut down the local computer, the calling process must have the SE_SHUTDOWN_NAME privilege. To shut down a remote computer, the calling process must have the SE_REMOTE_SHUTDOWN_NAME privilege on the remote computer.
| AbortSystemShutdown( ) |
Stops the system shutdown of a specified computer.
AbortSystemShutdown(machineName)
A string that specifies the name of the computer on which to abort the shutdown or None for the local computer.
This function can programmatically abort a system shutdown initiated by InitiateSystemShutdown() during the specified timeout interval.
To stop the local computer from shutting down, the calling process must have the SE_SHUTDOWN_NAME privilege. To stop a remote computer from shutting down, the calling process must have the SE_REMOTE_SHUTDOWN_NAME privilege on the remote computer.
| GetCurrentThreadId( ) |
Returns the thread identifier for the current thread.
threadId = GetCurrentThreadId()
The result is an integer containing the Win32 thread ID. Until the thread terminates, this ID uniquely identifies the thread to the system.
| GetCurrentProcessId( ) |
Returns the process identifier for the current process.
processId = GetCurrentProcessId()
The result is an integer containing the Win32 process ID. Until the process terminates, this ID uniquely identifies the process to the system.
| I l@ve RuBoard |


AttackSystem |
A system that processes entities with a PieceComponent and a AttackComponent. class AttackSystem : IteratingSystem |
MoveSystem |
System that processes entities with a PieceComponent, a PositionComponent and a MoveComponent. This system moves the entities to their new position, if an opponent's Piece occupies the target position an attack is initiated. class MoveSystem : SortedIteratingSystem |
RenderSystem |
System that renders all entities with a PositionComponent and a TextureComponent. The render order is specified through the z value of the PositionComponent. class RenderSystem : SortedIteratingSystem |
SoundSystem |
System that processes Entities with a SoundComponent. Plays the SoundType associates with the component with the help of the SoundProvider. class SoundSystem : IteratingSystem |
WaitSystem |
This system process Entities with a WaitComponent. After the waitTime, that's specified in the WaitComponent, is elapsed, the WaitComponent is removed. The WaitComponent is used to delay the processing of other components through other systems. class WaitSystem : IteratingSystem |


EMPTY
**World Famous since Feb 16th 2017**
Locations:
Come visit us at:
1st and Pike -1234 Pike St
Seatac Airport - 1234 Airport Way
Seattle Center by the dinosaur exhibit.
Capitol Hill - 1234 5th Ave
Alki - on the beach
Hours:
All locations:
6am - 8pm
EMPTY
**World Famous since Feb 16th 2017**
Beyonce trying out our new tadpole Salmon Cookies. She loves them!


In this era of wireless communication being a necessity, capacity and interference are key aspects to be monitored inorder to track unauthorised, illegal and unlicensed communication. Hence continuous signal monitoring is key to identify, analyse and act on signals.
Accurate radio threat localization is a challenging task in a non-cooperative environment. Our state-of-the-art algorithms provide accurate geographical radio localization after identifying the threat type in the wireless spectrum.
There are several signal analysers that work while they are actively used or units that work for few hours but there is detection systems that track the system 24*7, 365 days an year to really detect unwanted signals. Our system is build to detect anomaly signals anytime during the day and notify the responsible authorities of this incident. Our system goes beyond the basic detection features and use AI to do predictive maintenance in such an environment. Our algorithms are build to consume less energy, have real-time analysis and easy to use and interpret the anomalies
Air Traffic Control being at the epicentre of activities in the aviation industry receives a lot of signal interference and hence delays in flights. The cumilative cost of this delay is estimated to be more than a billion globally. Currently, ATC companies, have bought several communication systems and several infrastructure to work with the problem rather than bbeing proactive to efficiently solve the problem. Such a scenario also puts the communication system at risk of hacking and listening. Using our state of the art solution, the problem will not only be identified when it occurs, but it will be identified even before it causes any serious damage. Our system can also predict the source of the problem immediately assuring complete safety and clear communication to the flights
There are several use cases for Defense related projects where our system is of high interest. One of the main projects that we are developing is the no-cross talk zone project where in highly secure areas, constant communication of several systems take place but it is highly important to know whether these communications are authorised or not. If this communication not intended to happen or someone is communicating without proper authorisation, such transmissions can be easily monitored, classified and notified to the authorities. This system is also linked with other monitoring systems to provide a clear picture of the complete activities happening in an area.
In 21st century, every person has on an average 2 devices that continuosuly communicate. When mobile phones are left aside, even in their idle state, they are continuosly communicating hence increasing the radiation whenever there is a gathering of a group of people. Our solution, helps common people to analyse the radiation at a given place at a given time and to contribute to reduce the radiation level or to avoid such crowded areas in order to ensure good health and to lead a better life.


| Module | ActiveRecord::Acts::Taggable::SingletonMethods |
| In: |
vendor/plugins/acts_as_taggable_on_steroids/lib/acts_as_taggable.rb
|
Pass either a tag string, or an array of strings or tags
Options:
:exclude - Find models that are not tagged with the given tags :match_all - Find models that match all of the given tags, not just one :conditions - A piece of SQL conditions to add to the query
Calculate the tag counts for all tags.
Options:
:start_at - Restrict the tags to those created after a certain time :end_at - Restrict the tags to those created before a certain time :conditions - A piece of SQL conditions to add to the query :limit - The maximum number of tags to return :order - A piece of SQL to order by. Eg 'tags.count desc' or 'taggings.created_at desc' :at_least - Exclude tags with a frequency less than the given value :at_most - Exclude tags with a frequency greater than the given value


A programmer that loves the outdoors
Born and raised in Colorado, I have always had an obsession when it came to technology. From the first day my parents bought a computer I was hooked. I spent hours playing with all kinds of electronics until they eventually broke. From there I would grab my Dad’s tools and start taking them apart just to see how everything worked. Sometimes I was able to fix it but most of the time they just became parts for my other toys, but this sparked the troubleshooting interest that I currently have. My career has stretched from being a mechanic for Toyota to inbound tech calls for multiple million dollar companies but the common thread is I enjoy helping to fix issues and streamline current processes.


Election officials iron out changes to voting system
by HNN StaffHONOLULU, Hawaii (HawaiiNewsNow) -Election night is often filled with angst over waiting for results, sometimes late into the night.
But elections officials say next year’s voting results could take even longer to verify. That’s because it’s the first year nearly all the ballots will be sent by mail.
It’s an effort to increase voter turnout and efficiency, but it’s also a big change, and lawmakers want to be sure the counties are ready.
Oahu, Maui and the Big Island plan to electronically verify voter signatures to prevent fraud.
At a briefing Wednesday,lawmakers wanted that clarified.
“So you dump them all into the machine, the machine reads the bar code, pulls up the latest signature, compares it to the signature that’s on the envelope. And if it says its OK, it puts it in one batch and says you can count that. If its not OK, they don’t look the same in the machine, then it kicks out the other way and humans start looking at it. Is that fair?" Senate Judiciary Chairman Karl Rhodes asked.
The response given, “essentially, yes.”
Other changes include steel ballot drop boxes for late voters on most islands.
And since it may take longer to verify ballots, some of the final results may not be released until the morning after election night.
For details on registering to vote, click here.
Copyright 2019 Hawaii News Now. All rights reserved.


Wrap words with two asterisks:
**I am bold.**
Wrap words with an underscore:
_I am italic._
Wrap word(s) in square brackets and the link in parentheses:
[I am a [link](http://thisismarkdown.com/)
Like a text link, but with an exclamation point at the beginning:
![Optional Alt Text](/img/example.gif "Optional title")
Note: You must link directly to an image, i.e. ending in .gif
, .jpg
, etc.
To create a new line, you need to end with two empty spaces (shown as black boxes below):
This will be on the first line🁢🁢
and this will be on the second line
Using the #
symbol you can set H3 through H6 headings. Unfortunately, H1 and H2 aren’t working right now.
### This is an H3
#### This is an H4
Add a dash -
in front of each line:
- Item One
- Item Two
- Item Three
Add a number and period in front of each line:
1. Item One
1. Item Two
1. Item Three
Note: That’s not a typo. Using only 1.
will still convert to a proper numbered list, which makes reordering lists a lot easier
Add a >
at the beginning of a paragraph to quote it:
> this line will look like the quote below
this is what a blockquote looks like
Wrap text in a single backtick at the top left of your keyboard:
`border-radius: 3px;`
Wrap code with triple backticks, and add the language name like so:

Primary
Secondary
Outline
Disabled

To create a horizontal line for separating content use:
*** OR ---
Using vertical lines |
, you can even create tables:
| Making | Markdown | Tables |
|---|---|---|
| This column | This one | And this |
| is left | is set to | is right |
| align | be centered | aligned |
The markdown to create this (notice the use of :
to indicate alignment):
| Making | Markdown | Tables |
|-------------|:-----------:|---------:|
| This column | This one | And this |
| is left | is set to | is right |
| align | be centered | aligned |


The galsim Executable¶
The normal way to run a GalSim simulation using a config file is galsim config.yaml
, where
config.yaml
is the name of the config file to be parsed. For instance, to run demo1 (given
above), you would type:
galsim demo1.yaml
Changing or adding parameters¶
Sometimes it is convenient to be able to change some of the configuration parameters from the command line, rather than edit the config file. For instance, you might want to make a number of simulations, which are nearly identical but differ in one or two specific attribute.
To enable this, you can provide the changed (or new) parameters on the command line after the name of the config file. E.g. to make several simulations that are identical except for the flux of the galaxy and the output file, one could do:
galsim demo1.yaml gal.flux=1.e4 output.file_name=demo1_1e4.fits
galsim demo1.yaml gal.flux=2.e4 output.file_name=demo1_2e4.fits
galsim demo1.yaml gal.flux=3.e4 output.file_name=demo1_3e4.fits
galsim demo1.yaml gal.flux=4.e4 output.file_name=demo1_4e4.fits
Notice that the .
is used to separate levels within the config hierarchy.
So gal.flux
represents config['gal']['flux']
.
Splitting up a config job¶
For large simulations, one will typically want to split the job up into multiple smaller jobs,
each of which can be run on a single node or core. The natural way to split this up is by
parceling some number of output files into each sub-job. We make this splitting very easy using
the command line options -n
and -j
. The total number of jobs you want should be given
with -n
, and each separate job should be given a different -j
. So to divide a run across
5 machines, you would run one of the following commands on each of the 5 different machines
(or more typically send these 5 commands as jobs in a queue system):
galsim config.yaml -n 5 -j 1
galsim config.yaml -n 5 -j 2
galsim config.yaml -n 5 -j 3
galsim config.yaml -n 5 -j 4
galsim config.yaml -n 5 -j 5
Other command line options¶
There are few other command line options that we describe here for completeness.
-h
or--help
gives the help message. This is really the definitive information about thegalsim
executable, so if that message disagrees with anything here, you should trust that information over what is written here.-v {0,1,2,3}
or--verbosity {0,1,2,3}
sets how verbose the logging output should be. The default is-v 1
, which provides some modest amount of output about each file being built.-v 2
give more information about the progress within each output file, including one line of information about each object that is drawn.-v 3
(debug mode) gives a lot of output and should be reserved for diagnosing runtime problems.-v 0
turns off all logging output except for error messages.-l LOG_FILE
or--log_file LOG_FILE
gives a file name for writing the logging output. If omitted, the default is to write to stdout.-f {yaml,json}
or--file_type {yaml,json}
defines what type of configuration file to parse. The default is to determine this from the file name extension, so it is not normally needed, but if you have non-standard file names, you might need to set this. *-m MODULE
or--module MODULE
gives a python module to import before parsing the config file. This has been superseded by themodules
top level field, which is normally more convenient. However, this option is still allowed for backwards compatibility.-p
or--profile
turns on profiling information that gets output at the end of the run (or when multi-processing, at the end of execution of a process). This can be useful for diagnosing where a simulation is spending most of its computation time.-n NJOBS
or--njobs NJOBS
sets the total number of jobs that this run is a part of. Used in conjunction with -j (–job).-j JOB
or--job JOB
sets the job number for this particular run. Must be in [1,njobs]. Used in conjunction with -n (–njobs).-x
or--except_abort
aborts the whole job whenever any file raises an exception rather than continuing on. (new in version 1.5)--version
shows the version of GalSim.


--- title: Food in Austin layout: post category: food tags: austin restaurant map ---
I have lived in Austin for almost three years. There are tons of good food in Austin, my friend and I enjoyed exploring new and special restaurants during our spare time. Though I do not live in Austin anymore, I still miss the time with food there, and would love to share this feeling with other people visiting Austin.
Below is a map I curated for anyone, who is visiting Austin and wanna try some good restaurants there. I visited every restaurant listed below, and had a wonderful time during all my visits. Hope you guys will like it as well!
Organic and fresh food, farm to table, small dishes, relative expensive, but really nice atmosphere/vibe.
Nice cocktail, kind relax and laid-back style
Originally a butcher shop, then they start to cook...
Popular during summer night when everybody just want gelato and late-night chat
A famous piano bar to go at Austin
They are expensive, but they have really good sashimi and sushi!
Everybody who loves Japanese food in Austin knows the name...
My personal favorite coffee shop at Austin. Quiet neighborhood with great coffee!
Best Ramen in the town, people wait in lines for it. Recommend sweet and sour Yoda for sides~


- Computer Science student at University of California, Santa Cruz.
- Founder, Partner of techthatinterest.com
- Languages that I know best are C, Java, C++, C#, Python
- Video Editing Side: Mastered Final Cut Pro X and Adobe Premiere CC.
- Has a YouTube channel that has over 4,000 subscribers and over 2 million total upload views.
http://www.techthatinterest.com/ is now back up!
http://www.youtube.com/techthatinterest
Part of Business Services Engineering Group.
Was hired soon after PowerSchool acquired InfoSnap, which is a service that makes it possible for parents to register for school online. Infosnap is now known as PowerSchool registration, and my day-to-day mostly involved end-user support.
- Ad Marketing across various platforms(Facebook PPC, Amazon PPC)
- Responsible for Negotiating deals and purchasing over 1000 units
- Contributed to revenue exceeding $400 per day
- Studying competitors's products, increasing profit margins
https://www.youtube.com/user/techthatinterest
Gained essential knowledge of multiple video editing softwares such as Final Cut Pro X and Adobe Premiere CC. Created techthatinterest.com, which is primarily known for instructional videos.
http://www.techthatinterest.com/tech/raspberry-pi-setting-up-ledcanaki/
Stats:
4,300 Subscribers
2,000,000 video views
Learned to analyze web traffic and optimize web pages, and have done sales grossing over $50,000.(Amazon Associates, Commission Junction)
GPA: 3.89


About me
I'm a senior Software Engineer from Porto Alegre, Brazil, developing solutions for the web. I have the privilege to dedicate my time to helping our customer's projects impact thousands of people daily.
Over the past few years, I've faced distinct endeavors, such as web and mobile development, deployment of SaaS infrastructures, backend engineering, project management and technical leadership.
Portfolio
These are some fantastic companies I had the pleasure of working with within the past few years.
HP
Hewlett Packard 2010 - 2014, 2022 - PresentCurrently acting as the technical leader of an R&D initiative regarding mobile development, as a remote outsourcer.
I have also previously worked at HP as an employee for four years of recurrent personal recognition. I have rapidly evolved from an intern to the technical leader of a 10+ people team globally distributed, coordinating an Android app with 25+ million downloads at that moment.
Globo
2017 - 2018, 2021 - PresentPerformed as a technical leader and manager of the first project with this customer. This initiative comprised the R&D of an Android app, gathering user data for academic research.
On the second occasion, I act again as the technical leader and project manager covering the development and maintenance of highly popular web applications that are accessed thousands of times daily.
My team was performing as remote outsourcing in both projects.
Epson
2021 - 2022Contributed as a technical leader and project manager while building this LMS web platform.
This project supported a variety of media types, complete CMS features, and had its data backed up into a proprietary blockchain solution for immutability.
Mitsubishi
2018 - 2019Acted as a technical leader and manager of this project, which my team contributed as a remote outsourced resource.
The delivery consisted of a web LMS platform to be used by hundreds of the customer's employees countrywide.
Rocket.Chat
2018Worked on this project as a freelancer developer, solving issues and developing features on the original native Android app.
The RocketChat team recently decided to archive the native app (https://github.com/RocketChat/Rocket.Chat.Android) and adopt React Native instead.
This app contained significant communication complexity due to its nature of being a chat platform. Also, the project required constant communication with team members collaborating from across the globe.
Cambridge
Cambridge University 2017 - 2018Worked on this project as an outsourced developer, responsible for developing features on the Android app and for managing other team members of my company.
The app called "Quiz your English by Cambridge University" is no longer available at the Google Play Store, and it relied on many gamification mechanisms for engaging users in learning activities.
The game app contained many animations and required intense communication with a backend server for receiving content and updating user progress.
TiqueTaque
TiqueTaque App 2017 - 2018Responsible for maintaining their two Android apps, which are used by hundreds of employees for managing working hours information.
The company offers a solution with its own physical device for logging working hours by gathering fingerprints. I made the initial version and later maintained the Android app capable of connecting with this IoT for setting it up.
Also maintained the employee-targeted app responsible for registering working hours and paid leaves.
Google Award
Google Social Impact Awards 2014 - 2016This initiative to combat women's domestic violence won first prize at the Google Social Impact Award 2014, competing among 700+ candidates.
The solution mainly consisted of an app with a panic button triggered by repeatedly pressing the phone's power button. This discreet mechanism immediately warns public security agents by sending the victim's information, thus quickening the urgent assistance.
I was the main developer of the team, responsible for the Android app development and validation of server features. I worked on it ever since the creation of the very first proof of concept and later supported updates in the upcoming years.
Mandaê
2014 - 2015This rapidly-growing startup provides logistics solutions by heavily depending on software to automate daily routines.
Worked on this project throughout 2014 as a fully-remote Android developer, responsible for their two mobile apps.
Their solution consists of an end-consumer app used to manage shipping orders, and a second app targeted at internal use only for package handling.


Toggle navigation
SLAcer.js (bêta)
About
GitHub
2D viewer
Slice
Abort
ZIP
Transformations
Mirror
yes
no
Action
scale
rotate
translate
Uniform
yes
no
X
Y
Z
File
Browse
Or drop an STL file anywhere.
Mesh
Faces
0
Width
(
mm
)
0
Depth
(
mm
)
0
Height
(
mm
)
0
Volume
(ml)
0
Weight
(g)
0
Cost
($)
0
Slicer
Layers
(current / total)
0
/
0
Layers height
(μm)
Exposure time
(ms)
Lifting height
(mm)
Lifting speed
(mm/min)
Output type
png
svg
Light off delay
(ms)
Make ZIP file
yes
no
Speed mode
yes
no
Speed mode
delay
(ms)
Build volume
X
(width)
Y
(depth)
Z
(height)
unit
in
mm
Resin
Density
(g / cm³)
Price
($ / l)
Screen
Dot pitch
(mm)
0
Width
(px)
Height
(px)
Diagonal size
Diagonal unit
in
mm
Colors
Mesh
Slice
loading...
100
0
Alert message empty...


CppLua is a C++ framework to interoperate with Lua programming language in an expressive and object-oriented way. CppLua proposes itself as an alternative to code wrapper generators such as SWIG or tolua. CppLua is somewhat like a Boost::Python for Lua, although it currently misses many advanced (and frequently used) features of the Boost library.
LuaState
CppLua can be used at two levels. At the first level it is simply a straightforward C++ wrapper for the Lua C API.
To access this level of functionality, you simply have to include the luastate.h header file.
This brings you the LuaState
class, which is a wrapper around an old plain lua_State
. For an example on how to use LuaState
, look at the following code, which simply creates a new Lua state and uses Lua to send a greeting to the console:
#include <luastate.h> using namespace cpplua; int main() { LuaState L; L.getGlobal("print"); L.pushString("Hello World"); L.pcall(1, 0, 0); return 0; }
As you can see, the CppLua equivalent of a Lua API has the same name, but written in a Java-like style.
Almost every Lua API is wrapped in LuaState
.
This is a more advanced example to illustrate the use of getTable
/setTable
:
#include <iostream> #include <luastate.h> using namespace cpplua; int main() { LuaState L; L.newTable(); L.pushNumber(0); L.pushNumber(15); L.setTable(); L.pushNumber(1); L.pushNumber(30); L.setTable(); for(int i = 0; i < 2; i++) { L.pushNumber(i); L.getTable(); std::cout << L.toNumber<int>() << std::endl; L.pop(); } return 0; }
As you can see, many LuaState
methods which take indexes as parameters will use sensible defaults if they are not provided: for example, getTable
assumes -2 for its parameter, and setTable
assumes -3, since these are the most common choices.
This reduces the number of keystrokes without (hopefully) impacting readability.
The real strength of CppLua, however, is not this slightly improved C++ version of lua_State
.
Instead, including the header "cpplua.h" gives you the whole CppLua framework, that is, the ability to manipulate Lua objects directly from C++ code.
Let's start with the usual "Hello World" example:
#include <cpplua.h> using namespace cpplua; int main() { LuaState L; LuaObject luaPrint = L.global("print"); luaPrint("Hello World"); return 0; }
As you see, no stack handling is explicitly performed. The first line simply defines a LuaState
as in the previous examples. You always need to create a LuaState
before starting to use CppLua.
The second line access the Lua global object named print
and stores it in the LuaObject
luaPrint
. A LuaObject
is a bridge between Lua and C++ worlds; you can think of it as a C++ reference to a Lua object. Since Lua functions are first class citizens, it is perfectly legal to store one in a LuaObject
.
The third line calls the function, passing the string "Hello World" as a parameter. Nothing hard to understand, here.
Tables are handled as any other Lua object. To create an empty table, use emptyTable
, to access table elements, use the common array notation. For example:
#include <cpplua.h> #include <cassert> using namespace cpplua; int main() { LuaState L; LuaObject table = L.emptyTable(); for(int i = 0; i < 10; i++) table[i] = i*i; table["hello"] = -1.8; LuaObject table2 = L.emptyTable(); table[table2] = "A table index"; table["x"] = table2; table2[0] = 3; assert(table[table["x"][0]] == 9); }
CppLua provides a facility to treat member functions (methods, in the following) as ordinary global functions. Here is an example:
#include <cpplua.h> using namespace cpplua; class Dummy { int x; public: Dummy(int x) : x(x) {} int add(int y) { return x+y; } }; int main() { LuaState L; Dummy dummy(10); L.global("f") = L.method(dummy, &Dummy::add); L.doString("temp = f(5)"); assert(L.global("temp") == 15); }
First, a Dummy
class is created. This class has an incapsulated integer x
and an add
method which simply sums its argument to x
.
In main
we create an instance of the Dummy
class, setting its private member to 10. If y
is any integer variable, calling
dummy.add(y)
would result in 10 + y
being returned. If we think of the add
method as a function taking two arguments, a Dummy*
and an int
, fixing a Dummy
instance has the effect of currying the function, thus producing one with one integer parameter only.
This can be achieved in CppLua using method
, and passing a reference to a fixed Dummy
instance and a pointer to member function, as you can see in the example code.


---
layout: default
title: OpenCL matrix-multiplication SGEMM tutorial
current: 5
tutorial_page: 1
redirect_from:
- /tutorial/
- /tutorial.html
- /tutorial.php/
---
Introduction
This article describes a GPU OpenCL implementation of single-precision matrix-multiplication (SGEMM) in a step-by-step approach. We'll start with the most basic version, but we'll quickly move on towards more advanced code. Each step introduces a new optimisation - and best of all - working OpenCL code. This means that you'll be able to test it and tune it for your own machine. To make it even easier for you, there is also a GitHub repository online with a benchmarking infrastructure and kernel code for each step.
The first few steps of this article are rather basic, so those familiar with tiling might want to skip ahead. Nonetheless, these first steps can be very useful for those that want to learn about basic OpenCL optimisations (in general) or the design space of parallel matrix-multiplication. The remainder of the article is targeted at those that want to get decent matrix-multiplication performance and are familiar with concepts such as bank conflicts, warps, assembly code, vector operations and instruction latency.
The main reason why I wrote this article - and the code - is the poor performance of the clBlas library on NVIDIA GPUs. I worked on a project that required acceleration of code on an NVIDIA Tesla K40m GPU using OpenCL. Since its main component was a dense single-precision matrix-multiplication, I made a call to the SGEMM routine of clBlas. It turned out that clBlas is roughly a factor 5-6 slower (on my GPU) compared to its CUDA counterpart cuBLAS: clBlas does not get much more than 500 GFLOPS (out-of-the-box) or 700 GFLOPS (tuned), whereas the far superior cuBLAS reaches a little over 3 TFLOPS (~80% of the GPU's peak performance). This is shown in the image below, which also includes my best-case performance so far ("myGEMM").
Like I said, we'll go over the optimisations step-by-step. And remember, they all come with OpenCL code, so please _do_ try this at home. Just a quick heads-up of what the steps are:
- Naive implementation
- Tiling in the local memory
- Increased work per thread
- Wider data-types (vectors)
- Transposed input matrix and rectangular tiles
- 2D register blocking
- Wider loads with register blocking
- CUDA and Kepler-specific optimisations
- Software pre-fetching
- Incomplete tiles and support for arbitrary matrix-sizes
Technical notes: All tests were performed on a Kepler SM 3.5 GPU, the Tesla K40m. The GPU was configured with ECC enabled. Version 6.5 of the CUDA toolkit was used (including OpenCL).


Fifth Week of RC
Day 1: Routes Refactor
March 18, 2019
Ruby was the first language I learned, and I often find myself comparing the structure of OpenOversight, which is written in Python and Flask, to a Ruby on Rails app. Though I enjoy working in Python, I do think certain aspects of Ruby on Rails, particularly the routes' layout, is more intuitive.
Both Python-Flask and Ruby on Rails have straightfoward commands that display the routes. For a Ruby on Rails app, you can run rake routes
and see all of the routes. For Python Flask, flask routes
, or in this specific case, docker exec -it openoversight_web_1 flask routes
.
In a Ruby on Rails app, all of the routes are housed within the routes
file in the config
folder. In OpenOversight, the routes live within main/views.py
and auth/views.py
.
I'm currently adding a departments dashboard to the app, which will allow admins to see all current departments and delete or deactivate existing departments. Since admins need to be logged in to see the dashboard, I'm adding it to auth/views.py
. I'm also modeling it off the existing UsersAPI in auth/views.py
, which allows admins to view all users and enable, disable or delete users. There are some existing routes related to departments in OpenOversight, but they're split between auth/views.py
and main/views.py
. The routes in main/views.py
do have decorators of @login_required
and @admin_required
, which keep any unauthorized users from accessing them. Nevertheless, I think the refactor will make the code easier to follow, and I'm excited to get it done.


Struct JobNotifications
Configures notifications associated with a JobObject.
Inherited Members
System.ValueType.Equals(System.Object)
System.ValueType.GetHashCode()
System.ValueType.ToString()
System.Object.Equals(System.Object, System.Object)
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.GetType()
Namespace: Fs.Processes.JobObjects
Assembly: Fs.Processes.dll
Syntax
public struct JobNotifications
Properties
| Improve this Doc View SourceCpuRate
Raises a CpuRateLimitExceeded event when the CPU time for all processes associated with the job exceeds this value.
Declaration
public RateControl? CpuRate { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<RateControl> |
IoBytesRead
Raises a IoLimitExceeded event when the total number of I/O bytes read for all processes associated with the job exceeds this value.
Declaration
public ulong? IoBytesRead { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.UInt64> |
IoBytesWritten
Raises a IoLimitExceeded event when the total number of I/O bytes written for all processes associated with the job exceeds this value.
Declaration
public ulong? IoBytesWritten { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.UInt64> |
MaximumMemory
Raises a MemoryLimitExceeded event when the total committed virtual memory for all processes associated with the job exceeds this value.
Declaration
public ulong? MaximumMemory { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.UInt64> |
TimeLimit
Raises a TimeLimitExceeded event when the total user-mode time for all processes in the job exceeds this value.
Declaration
public TimeSpan? TimeLimit { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.TimeSpan> |


Cookies
The Skills Funding Agency (SFA) puts small files (known as ‘cookies’) onto your computer to collect information about how you browse our sites.
Cookies are used to:
- measure how you use our websites so they can be updated and improved based on your needs
- remember the notifications you’ve seen so that we don’t show them to you again
SFA cookies aren’t used to identify you personally.
You’ll normally see a message on the site before we store a cookie on your computer.
Find out more about how to manage cookies.
How cookies are used by SFA
Measuring website usage (Google Analytics)
We use Google Analytics software to collect information about how you use SFA sites. We do this to help make sure our sites are meeting the needs of its users and to help us make improvements.
Google Analytics stores information about:
- the pages you visit on SFA sites
- how long you spend on each SFA page
- how you got to our sites
- what you click on while you’re visiting our sites
We don’t collect or store your personal information (for example your name or address) so this information can’t be used to identify who you are.
We don’t allow Google to use or share our analytics data.
Google Analytics sets the following cookies:
Universal Analytics
| Name | Purpose | Expires |
|---|---|---|
| _ga | This helps us count how many people visit SFA sites by tracking if you’ve visited before | 2 years |
| _gat | Used to manage the rate at which page view requests are made | 10 minutes |
You can opt out of Google Analytics cookies.
Application Insight
We use Microsoft Azure Application Insights to monitor and improve the performance
| Name | Purpose | Expires |
|---|---|---|
| ai_session | Allow us to track a user over current session. | 10 minutes |
| ai_user | Allow us to track a user over a longer period of time. | 1 year |
Read more about Application Insights data retention
Our introductory message
You may see a pop-up welcome message when you first visit an SFA site. We’ll store a cookie so that your computer knows you’ve seen it and knows not to show it again.
| Name | Purpose | Expires |
|---|---|---|
| seen_cookie_message | Saves a message to let us know that you’ve seen our cookie message | 30 days |
HotJar
We use HotJar software to collect information about how you use SFA sites. We do this to help anonymously identify user experiences issues and test improvments to the service.
| Name | Purpose | Expires |
|---|---|---|
| seen_cookie_message | Saves a message to let us know that you’ve seen our cookie message | 30 days |
Government services
Most services we link to are run by different government departments, eg HM Revenue and Customs (HMRC) or the Home Office. These services may set additional cookies and, if so, will have their own cookies policy.
Our performance survey
We use SurveyMonkey to collect responses to the survey. If you take part, SurveyMonkey will save extra cookies to your computer to track your progress through it.


|
Imperx Camera SDK
<IP_ADDRESS>
|
An Array class contains methods to access all GenICam camera parameters. More...
#include <IpxCameraApi.h>
Public Member Functions | |
| virtual | ~Array () |
| Array class destructor. More... | |
| virtual Param * | GetParam (const char *name, IpxCamErr *err)=0 |
| This method gets the pointer to the Param class object for the specified node name from the node map declared in the camera descriptor XML file. More... | |
| virtual Boolean * | GetBoolean (const char *name, IpxCamErr *err)=0 |
| This method gets the pointer to the Boolean class object for the specified node name of the camera descriptor XML file. More... | |
| virtual Command * | GetCommand (const char *name, IpxCamErr *err)=0 |
| This method gets the pointer to the Command class object for the specified node name of the camera descriptor XML file. More... | |
| virtual Enum * | GetEnum (const char *name, IpxCamErr *err)=0 |
| This method gets the pointer to the Enum class object for the specified node name of the camera descriptor XML file. More... | |
| virtual Float * | GetFloat (const char *name, IpxCamErr *err)=0 |
| This method gets the pointer to the Float class object for the specified node name of the camera descriptor XML file. More... | |
| virtual Int * | GetInt (const char *name, IpxCamErr *err)=0 |
| This method gets the pointer to the Int class object for the specified node name of the camera descriptor XML file. More... | |
| virtual String * | GetString (const char *name, IpxCamErr *err)=0 |
| This method gets the pointer to the String class object for the specified node name of the camera descriptor XML file. More... | |
| virtual Category * | GetRootCategory (IpxCamErr *err)=0 |
| This method gets the pointer to the root category node object. The Root node is considered a special node. It has no parent node. In the topology graph, it is the top node which connects to at least one child node. The child node may connect to the device node that provides the connection to the transport layer. More... | |
| virtual IPX_GENAPI_NS::INodeMap * | GetNodeMap (IpxCamErr *err)=0 |
| This method gets the pointer to the NodeMap interface. The NodeMap interface will provide methods to retrieves all nodes in the node map. More... | |
| virtual uint32_t | GetCount ()=0 |
| This method gets the number of nodes. More... | |
| virtual Param * | GetParamByIndex (uint32_t idx, IpxCamErr *err)=0 |
| This method gets the parameter by index. More... | |
| virtual IpxCamErr | SetBooleanValue (const char *name, bool aValue)=0 |
| This method sets the Boolean value of the Boolean node. More... | |
| virtual bool | GetBooleanValue (const char *name, IpxCamErr *err=nullptr)=0 |
| This method gets the Boolean value of the Boolean node. More... | |
| virtual IpxCamErr | SetEnumValueStr (const char *name, const char *val)=0 |
| This method sets the Enum node maps and the Enum interface to a name and index value. Each of the enum entries are represented by a name and index pair. This method sets the Enum value String of the corresponding node. The enum nodes map to a drop down box. More... | |
| virtual IpxCamErr | SetEnumValue (const char *name, int64_t val)=0 |
| This method sets the Enum value of the enum node. More... | |
| virtual const char * | GetEnumValueStr (const char *name, IpxCamErr *err=nullptr)=0 |
| This method gets the Enum value string of the current set Enum value entry. More... | |
| virtual int64_t | GetEnumValue (const char *name, IpxCamErr *err=nullptr)=0 |
| This method gets the Enum value of the Enum node. More... | |
| virtual IpxCamErr | SetFloatValue (const char *name, double val)=0 |
| This method sets the Float value of the Float node. More... | |
| virtual double | GetFloatValue (const char *name, IpxCamErr *err=nullptr)=0 |
| This method gets the Float value of the Float node. More... | |
| virtual IpxCamErr | SetIntegerValue (const char *name, int64_t val)=0 |
| This method sets the Integer value of the Integer node. More... | |
| virtual int64_t | GetIntegerValue (const char *name, IpxCamErr *err=nullptr)=0 |
| This method gets the Integer value of the Integer node. More... | |
| virtual IpxCamErr | SetStringValue (const char *name, const char *val)=0 |
| This method sets the String value of the String node. More... | |
| virtual const char * | GetStringValue (const char *name, IpxCamErr *err=nullptr)=0 |
| This method gets the String value of the String node. More... | |
| virtual IpxCamErr | ExecuteCommand (const char *name)=0 |
| This method executes/submits the command. More... | |
| virtual bool | IsCommandDone (const char *name, IpxCamErr *err=nullptr)=0 |
| This method polls the corresponding executed command to see if the executed command is done or not. More... | |
| virtual IpxCamErr | Poll (int64_t elapsedTime)=0 |
| This method fires nodes which have a polling time. More... | |
An Array class contains methods to access all GenICam camera parameters.
This class contains methods that can access each node from the GenICam camera description XML file by parameters type and name.
|
inlinevirtual |
|
pure virtual |
This method gets the pointer to the Param class object for the specified node name from the node map declared in the camera descriptor XML file.
| [in] | name | Unique name of a node in node map. |
| [out] | err | Returns an error code:
|
|
pure virtual |
This method gets the pointer to the Boolean class object for the specified node name of the camera descriptor XML file.
| [in] | name | A unique name of Boolean type node in the camera descriptor XML file. |
| [out] | err | Returns an error code:
|
|
pure virtual |
This method gets the pointer to the Command class object for the specified node name of the camera descriptor XML file.
| [in] | name | Unique name of Command type node in the camera descriptor XML file. |
| [out] | err | returns an error code:
|
|
pure virtual |
This method gets the pointer to the Enum class object for the specified node name of the camera descriptor XML file.
| [in] | name | Unique name of Enumeration type node in the camera descriptor XML file. |
| [out] | err | returns an error code:
|
|
pure virtual |
This method gets the pointer to the Float class object for the specified node name of the camera descriptor XML file.
| [in] | name | Unique name of Float type node in the camera descriptor XML file. |
| [out] | err | returns an error code:
|
|
pure virtual |
This method gets the pointer to the Int class object for the specified node name of the camera descriptor XML file.
| [in] | name | Unique name of Integer type node in the camera descriptor XML file. |
| [out] | err | returns an error code:
|
|
pure virtual |
This method gets the pointer to the String class object for the specified node name of the camera descriptor XML file.
| [in] | name | Unique name of String type node in the camera descriptor XML file. |
| [out] | err | returns an error code:
|
|
pure virtual |
This method gets the pointer to the root category node object. The Root node is considered a special node. It has no parent node. In the topology graph, it is the top node which connects to at least one child node. The child node may connect to the device node that provides the connection to the transport layer.
| [out] | err | returns an error code:
|
|
pure virtual |
This method gets the pointer to the NodeMap interface. The NodeMap interface will provide methods to retrieves all nodes in the node map.
| [out] | err | returns an error code:
|
|
pure virtual |
This method gets the number of nodes.
|
pure virtual |
This method gets the parameter by index.
| [in] | idx | Index |
| [out] | err | returns the error code:
|
|
pure virtual |
|
pure virtual |
This method gets the Boolean value of the Boolean node.
| [in] | name | Unique name of Boolean node to get |
| [out] | err | returns the error code:
|
|
pure virtual |
This method sets the Enum node maps and the Enum interface to a name and index value. Each of the enum entries are represented by a name and index pair. This method sets the Enum value String of the corresponding node. The enum nodes map to a drop down box.
IpxCamErr::IPX_CAM_ERR_OK
- Successfully sets the Enum Value stringIpxCamErr::IPX_CAM_GENICAM_ACCESS_ERROR
- Unable to access genicam specified nodeIpxCamErr::IPX_CAM_GENICAM_OUT_OF_RANGE
- the value entered is out of range
|
pure virtual |
This method sets the Enum value of the enum node.
IpxCamErr::IPX_CAM_ERR_OK
- Successfully gets the Enum valueIpxCamErr::IPX_CAM_GENICAM_ACCESS_ERROR
- Unable to access genicam specified nodeIpxCamErr::IPX_CAM_GENICAM_UNKNOWN_PARAM
- unknown parameterIpxCamErr::IPX_CAM_GENICAM_TYPE_ERROR
- Unable to access genicam specified node typeIpxCamErr::IPX_CAM_GENICAM_OUT_OF_RANGE
- the value entered is out of range
|
pure virtual |
This method gets the Enum value string of the current set Enum value entry.
|
pure virtual |
This method gets the Enum value of the Enum node.
| [in] | name | Unique name of Enum type node in the camera descriptor XML file. |
| [out] | err | returns error code:
|
|
pure virtual |
This method sets the Float value of the Float node.
| [in] | name | Unique name of Float type node in the camera descriptor XML file. |
| [in] | val | Float value to set |
IpxCamErr::IPX_CAM_ERR_OK
- Successfully sets the Float valueIpxCamErr::IPX_CAM_GENICAM_ACCESS_ERROR
- Unable to access genicam specified nodeIpxCamErr::IPX_CAM_GENICAM_UNKNOWN_PARAM
- unknown parameterIpxCamErr::IPX_CAM_GENICAM_TYPE_ERROR
- Unable to access genicam specified node typeIpxCamErr::IPX_CAM_GENICAM_OUT_OF_RANGE
- the value entered is out of range
|
pure virtual |
This method gets the Float value of the Float node.
| [in] | name | Unique name of Float type node in the camera descriptor XML file. |
| [out] | err | returns the error code:
|
|
pure virtual |
This method sets the Integer value of the Integer node.
| [in] | name | Unique name of Integer type node in the camera descriptor XML file. |
| [in] | val | Integer value to set |
IpxCamErr::IPX_CAM_ERR_OK
- Successfully sets the Integer valueIpxCamErr::IPX_CAM_GENICAM_ACCESS_ERROR
- Unable to access genicam specified nodeIpxCamErr::IPX_CAM_GENICAM_UNKNOWN_PARAM
- unknown parameterIpxCamErr::IPX_CAM_GENICAM_TYPE_ERROR
- Unable to access genicam specified node typeIpxCamErr::IPX_CAM_GENICAM_OUT_OF_RANGE
- the value entered is out of range
|
pure virtual |
This method gets the Integer value of the Integer node.
| [in] | name | Unique name of Integer type node in the camera descriptor XML file. |
| [out] | err | returns the error code:
|
|
pure virtual |
This method sets the String value of the String node.
| [in] | name | Unique name of String type node in the camera descriptor XML file. |
| [in] | val | String value to set |
IpxCamErr::IPX_CAM_ERR_OK
- Successfully sets the String valueIpxCamErr::IPX_CAM_GENICAM_ACCESS_ERROR
- Unable to access genicam specified nodeIpxCamErr::IPX_CAM_GENICAM_UNKNOWN_PARAM
- unknown parameterIpxCamErr::IPX_CAM_GENICAM_TYPE_ERROR
- Unable to access genicam specified node typeIpxCamErr::IPX_CAM_GENICAM_OUT_OF_RANGE
- the value entered is out of range
|
pure virtual |
This method gets the String value of the String node.
| [in] | name | Unique name of String type node in the camera descriptor XML file. |
| [out] | err | returns the error code:
|
|
pure virtual |
This method executes/submits the command.
| [in] | name | Unique name of Command type node in the camera descriptor XML file. |
IpxCamErr::IPX_CAM_ERR_OK
- Successfully determines state of executed command.IpxCamErr::IPX_CAM_GENICAM_ACCESS_ERROR
- Unable to access genicam specified node
|
pure virtual |
This method polls the corresponding executed command to see if the executed command is done or not.
| [in] | name | Unique name of Command type node in the camera descriptor XML file. |
| [out] | err | returns the error code:
|
|
pure virtual |
This method fires nodes which have a polling time.
| [in] | elapsedTime | Time elapsed since last poll in msec |
IpxCamErr::IPX_CAM_ERR_OK
- Successfully determines state of executed command.IpxCamErr::IPX_CAM_GENICAM_ACCESS_ERROR
- Unable to access genicam specified node


2 overrides of StateChanged
System.Management.Automation (2)
engine\hostifaces\pipelinebase.cs (1)
735
public override event EventHandler<PipelineStateEventArgs>
StateChanged
= null;
engine\remoting\client\remotepipeline.cs (1)
634
public override event EventHandler<PipelineStateEventArgs>
StateChanged
= null;
11 references to StateChanged
Microsoft.PowerShell.ConsoleHost (1)
host\msh\Executor.cs (1)
131
p.
StateChanged
+= PipelineStateChangedHandler;
System.Management.Automation (10)
engine\hostifaces\Pipeline.cs (1)
245
/// <see cref="Pipeline.
StateChanged
"/> event.
engine\hostifaces\PowerShell.cs (2)
5615
CurrentlyRunningPipeline.
StateChanged
+= _shell.PipelineStateChanged;
5716
CurrentlyRunningPipeline.
StateChanged
-= _shell.PipelineStateChanged;
engine\remoting\client\Job.cs (3)
2685
this.pipeline.
StateChanged
+= HandlePipelineStateChanged;
3515
pipeline.
StateChanged
+= HandlePipelineStateChanged;
3680
pipeline.
StateChanged
-= HandlePipelineStateChanged;
engine\remoting\commands\PSRemotingCmdlet.cs (4)
3352
this.pipeline.
StateChanged
+= HandlePipelineStateChanged;
3460
pipeline.
StateChanged
-= HandlePipelineStateChanged;
3526
pipeline.
StateChanged
+= HandlePipelineStateChanged;
3697
pipeline.
StateChanged
-= HandlePipelineStateChanged;


{% load static %}
Reader-Writer Problem (Writer Preference)
User 1:
Read:
Click
Write:
Click
User 2:
Read:
Click
Write:
Click
User 3:
Read:
Click
Write:
Click
Stop Writer
Writer - :
Write Text Here..
Not accessing -
Reading -
Writing -


Provide shortcuts to simply the creation of nested default hashes. This pattern is useful, common practice, and unsightly when done manually.
Methods
Public Instance methods
Dynamically create a nested hash structure used to cache calls to method_name The cache method is named +#{method_name}_cache+ unless :as => :alternate_name is given.
The hash structure is created using nested Hash.new. For example:
def slow_method(a, b) a ** b end
can be cached using hash_cache :slow_method, which will define the method slow_method_cache. We can then find the result of a ** b using:
slow_method_cache[a][b]
The hash structure returned by slow_method_cache would look like this:
Hash.new do |as, a| as[a] = Hash.new do |bs, b| bs[b] = slow_method(a, b) end end
The generated code is actually compressed onto a single line to maintain sensible backtrace signatures.
[ show source ]
# File vendor/rails/activesupport/lib/active_support/caching_tools.rb, line 31 31: def hash_cache(method_name, options = {}) 32: selector = options[:as] || "#{method_name}_cache" 33: method = self.instance_method(method_name) 34: 35: args = [] 36: code = "def #{selector}(); @#{selector} ||= " 37: 38: (1..method.arity).each do |n| 39: args << "v#{n}" 40: code << "Hash.new {|h#{n}, v#{n}| h#{n}[v#{n}] = " 41: end 42: 43: # Add the method call with arguments, followed by closing braces and end. 44: code << "#{method_name}(#{args * ', '}) #{'}' * method.arity} end" 45: 46: # Extract the line number information from the caller. Exceptions arising 47: # in the generated code should point to the +hash_cache :...+ line. 48: if caller[0] && /^(.*):(\d+)$/ =~ caller[0] 49: file, line_number = $1, $2.to_i 50: else # We can't give good trackback info; fallback to this line: 51: file, line_number = __FILE__, __LINE__ 52: end 53: 54: # We use eval rather than building proc's because it allows us to avoid 55: # linking the Hash's to this method's binding. Experience has shown that 56: # doing so can cause obtuse memory leaks. 57: class_eval code, file, line_number 58: end


The plcrtd project: OpenSSL Certificate Manager
Description
This is an online web certificate manager implemented
as described in
howto
written by
mtigas
Goals
- Provide a service to managing OpenSSL certificates.
- An integration with the
nginx
project.
- An interface to send a client certificate via email.
Development
This is an open source project. Please, checkout sources
here.
Private keys
Attention!
By pressing submit button you are accept to wipe
all private keys from the server.
| Name |
Encrypted |
Type |
Size |
|
|
|
|
|
Remove
|
Certificate signing requests
Attention!
By pressing submit button you are accept to wipe
all certificate signing requests from the server.
| Name |
Subject |
Key |
Digest |
|
|
|
|
|
Remove
|
Certificates
Attention!
By pressing submit button you are accept to wipe
all certificates from the server.
Missing CRL
The certificate was not added to any Certificate Revocation List.
Certificate revocation lists
Attention!
By pressing submit button you are accept to wipe
all certificate revocation lists from the server.
| Name |
Description |
CA |
CA key |
|
|
|
|
|
Remove
|


BooKonnect
Pick Books to Donate Now!
About
Team
Partners
|
Sign-up/Login
×
Are you sure you want to purchase and donate this?
Yes
No
Check Out
Your Shopping Cart
×
Product
Price
Actions
Total:
$


No Meeting Today! again...
MidTerm's... No Meeting. GL
No Meeting Today!
Happy Winter Break!
Wrapping up sessions for this year & waiting for the new year!
Got FTC code going along with personal Websites
Started Solving Project Eulear Problems.
Started Setting Up Hackclub.com connection
No Meeting this week! Next Week Is Mandatory!
-Radio Website Still On Track
-Java Game in Alpha
-Brainstorming!
Were starting to Use Bootstrap and getting back on track with the projects that we have started. Hopefully we'll still hit the Christmas deadline for the Radio Club Website.
No Meeting Today. Enjoy your thankgiving!
First Public Meeting. All are invited, and welcomed! Along with that we finally split up into different groups focusing on certain tasks. Work on the HpOwls Radio Website is in full swing and conceptual ideas on a game are under progress(Talk to Ben Deatz for that).
No meeting this week. Work On personal websites see you next week!
Members were allowed Server access along with Work on HpRadio Club website.
Launch of ask.hpcoders.com Along with first sketches of RadioClub website.
Along with learning Tricks in CSS. All members were offered the chance for a subdomain to create a personal website.
Started setting up Standards and Announced our first project. To create a website from scratch for the RadioClub.
Setup Server And voted on Domain Name along with Logo and Web hosting
First Meeting For HPCODERS. *Private


This inspection reports reports any instances of Groovy arithmetic expressions with too many terms. Such
expressions may be confusing and bug-prone.
Use the field provided below to specify the maximum number of terms allowed in an arithmetic expression.
Powered by InspectorGroovy


{extend name="common/common" /} {block name="head"}
{/block}These cases are perfectly simple and easy to distinguish. In a free hour, when our power of choice is untrammelled and when nothing prevents our being able to and what we like best, every pleasure is to be welcomed and every pain avoided. But in cetain circumstances and owing to the claims of duty or the obligations of busness it will frequently occur that pleasures have to be repudiatedTemporibus recaae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus to a maiores maiores alias consequatur aut endis doloriu asperiores repellat.maiores what we like best, every pleasure is to be welcomed and every pain avoided. But in cetain circumstances and owing to the claims.
maiores alias consequatur aut endis doloriu asperiores repellat.maiores what we like best, every pleasure is to be welcomed and every pain avoided. But in cetain circumstances and owing to the claims of duty or the obligations of busness it will frequently occur that pleasures have to be repudiatedTemporibus recaae. Itaque earum rerum hic tenetur a sapiente delectus.
| Compositions | Cotton |
| Styles | Casual |
| Properties | Short Sleeve |


Counts different things within the given input. ## Syntax
count(type: <#Type (WFCountType)#>, input: <#Variable#>)
count(type: Items, input: Names)


Info
Please press refresh if graphs don't show up.
Name {{q.user.get().name}}
Start time {{q.startTime}}
Duration (s) {{q.duration}}
# of samples {{q.sampleNumber}}
Av. sample frequ {{q.avSampleFrequ}}
Orig. sample frequ {{q.origSampleFrequ}}
User Agent {{q.userAgent}}
Data store key {{q.key.id()}}
Accelerometer Plot
Detection algorithm
Here, the above chart is filtered for a specific movement. If the graph below is 1, it means that a movement was detected.
{{error}}
Gyroscope Plot
Detection Algorithm Report
This report is relevant for internal use only.


--- layout: default title: Bored? permalink: /bored.html ---
Computer picked:
Result:
Wins: Losses: Draws:


44 If recursion is new to you, here are a few brief hints: It’s crucial that the recursion have a base case, that is, some small(est) case that the block can handle without using recursion. In this example, it’s the case depth=0, for which the block does nothing at all, because of the enclosing if. Without a base case, the recursion would run forever, calling itself over and over. Don’t try to trace the exact sequence of steps that the computer follows in a recursive program. Instead, imagine that inside the computer there are many small people, and if Theresa is drawing a tree of size 100, depth 6, she hires Tom to make a tree of size 70, depth 5, and later hires Theo to make another tree of size 70, depth 5. Tom in turn hires Tammy and Tallulah, and so on. Each little person has his or her own local variables size and depth, each with different values. You can also write recursive reporters, like this block to compute the factorial function: Note the use of the report block. When a reporter block uses this block, the reporter ﬁnishes its work and reports the value given; any further blocks in the script are not evaluated. Thus, the if else block in the script above could have been just an if, with the second report block below it instead of inside it, and the result would be the same, because when the ﬁrst report is seen in the base case, that ﬁnishes the block invocation, and the second report is ignored. There is also a stop this block block that has a similar purpose, ending the block invocation early, for command blocks. (By contrast, the stop this script block stops not only the current block invocation, but also the entire toplevel script that called it.) Here’s a slightly more compact way to write the factorial function: For more on recursion, see Thinking Recursively by Eric Roberts. (The original edition is ISBN<PHONE_NUMBER>522; a more recent Thinking Recursively in Java is ISBN<PHONE_NUMBER>460.) C. Block Libraries When you save a project (see Chapter II above), any custom blocks you’ve made are saved with it. But sometimes you’d like to save a collection of blocks that you expect to be useful in more than one project. Perhaps your blocks implement a particular data structure (a stack, or a dictionary, etc.), or they’re the framework for building a multilevel game.


15+ People Whose Life Is Full of Dramedy
On average, adults spend nearly 2 hours every day in a bad mood, according to a study. Usually it’s because of the weather or the traffic. On rarer and more unfortunate occasions it’s because of some absurd situation, like finding out a group of cows has been secretly living in your newly built house. But the truth is that later on, those moments become something to laugh at.
Bright Side picked some photos of unlucky moments that could very well be featured in a sitcom.
1. When the universe tries to remind you to save money:
2.
3. “My dad finally found his missing Led Zeppelin tickets. 44 years too late...”
4. “I received this gift from my crush.”
5. “The day I visited the Great Wall of China.”
6. “Time to move, I guess.”
7. “A truck carrying a tank of white paint dropped it on the road.”
8. This couple asked a lady to take their photo at Yellowstone and she did... in a way.
9. The Hunger Games are back in full force.
10. “This big guy and 3 of his friends got into a newly built house and lived there for a month before being found.”
11. “Someone threw a sink into my car last night.”
12. Let’s hope they were able to get a ride to work.
13. “Great way to start the morning.”
14. “Well, the neighbor won’t be leaving any time soon.”
15. “Buying the one behind it didn’t work, and buying the one behind that one didn’t work, aaaaand... I’m out of change.”
16. Maybe they traveled back in time and this turned out OK.
17. Nature strikes when you least expect it.
18. It’s so bad, it’s hilarious.
19. Windgardium Leviosa
Which of these unlucky people’s photos did you like the most? Has something similar ever happened to you that you now look back at and laugh? Share your stories with us in the comments!
Preview photo credit Dakdraff / Imgur, msalina2017 / reddit


Print map maker
1. Choose a base map
Streets
Black & White
Hybrid (HERE)
Hybrid (Mapbox)
2. Search
... Or enter Latitude:
Longitude:
3. If you want to add GeoJSON data to your map, you can create points, lines, and polygons using GeoJSON.io.
Create some GeoJSON
4. If you made some GeoJSON (or already have some), copy and paste it below. Then click the
ADD GeoJSON
button.
5. Adjust your zoom then click the "Save PNG" button.
Address Request Form Map (450x275)
Facebook Timeline
Square (540px)
Square (1080px)


TeamSpeakPHPBots Example Application Copyright 2016 All Rights Reserved Version:
Login (Name or E-Mail)
Password
Session was closed.Please, login again.


--- layout: default title: Student Wiki description: Locally sourced, organic wisdom. Shared by the student body, curated by USB. ---


Module: WsdlMapper::Naming::Inflector
- Extended by:
- Inflector
- Included in:
- Inflector, NamerBase
- Defined in:
- lib/wsdl_mapper/naming/inflector.rb
Overview
Module with inflection helper methods. As a permanent dependency on Rails' ActiveSupport library is not feasible, here are some quick re-implementations.
Constant Summary
- FIRST_CHAR =
/^./
- NON_WORD =
/[^a-zA-Z]/
- NON_AN =
/[^a-zA-Z0-9]/
- NON_WORD_FOLLOWED_BY_WORD =
/[^a-zA-Z0-9]+([a-zA-Z0-9])/
- CAPITALS =
/([A-Z])/
- DOWN_FOLLOWED_BY_UP =
/([a-z0-9])([A-Z])/
Instance Method Summary (collapse)
-
- (String) camelize(source)
Camelize a string.
-
- (String) underscore(source)
Snake-cases a string.
Instance Method Details
- (String) camelize(source)
Camelize a string.
20 21 22 23 24 25 |
# File 'lib/wsdl_mapper/naming/inflector.rb', line 20 def camelize(source) source. strip. gsub(NON_WORD_FOLLOWED_BY_WORD) { |s| $1.upcase }. sub(FIRST_CHAR) { |s| s.upcase } end |
- (String) underscore(source)
Snake-cases a string.
32 33 34 35 36 37 38 39 |
# File 'lib/wsdl_mapper/naming/inflector.rb', line 32 def underscore(source) source. strip. gsub(DOWN_FOLLOWED_BY_UP) { |s| "#{$1}_#{$2.downcase}" }. downcase. gsub(NON_AN, '_'). gsub(/_+/, '_') end |


| 10 Mel Road | PO Box 332 Berrimah 0828 | ||
| 08 8920 0600 |<EMAIL_ADDRESS>|
| OpenIng Hours 8.00am to 4.30pm |
Small groups and having a consistent educator, supports current thinking in early childhood research where children who feel safe, have secure attachments and the confidence to explore and investigate the world around them is the foundation that supports learning and development.
The Educators and families build positive relationships and shared understanding of children’s preferences, interests, background and culture allow educators to plan their curriculum to be engaging, relevant, culturally and in context with the community.
There is a diversity of influences and approach between the educators curriculum with approaches ranging from Reggio Emilia, Montessori and Steiner and extending to nature based and inquiry pedagogies. All educators are guided by the fundamental tenants of play based learning in a culturally aware, inclusive and responsive context with the child at the centre of the relationship between family, community and education and care.


Hello! I am Shimon Moyal. Life long learner. Advocate of On-line learning technologies. JavaScript enthusiast. I'm looking for my next challenge as a Full Stack Developer
Contact meWork Experience
Frontend Web Developer
Ashdod Municipality
Responsible for the digital transformation process of the municipality and all its departments. Characterization of work processes, construction of convenient user interfaces to take easy and timely customer service while keeping in mind that the residents are the focus. Remodeling of all manual processes and documents into web applications.
Product manager/Web Developer
Independent Contractor
Self-employed, specializing in characterizing projects in the field of web and website application development. Also, building websites from scratch and using content management systems such as WordPress, Joomla, Wix.
Programming languages
HTML
CSS3
JavaScript
Python
SQL
Contact Info
Hobbies
Close-up Magic, Mixed-Martail Arts, Cooking, Amateur Chess Player


Glühwein - mulled wine
A recipe for Glühwein/mulled wine a beverage you can find at almost every European christmas market. This recipe is my favorite one - optimized for flavor rather than alcohol content (it still kicks in).
Ingredients
for 1 liter of Glühwein
- 300 ml Cassis-Juice (Johannesbeer), if you can’t find it you can replace it with another juice, I did it e.g. with cranberry pomegranate juice
- 1 bottle 700ml red wine (I prefer Primitivo/Zinfandel), don’t buy a cheap cooking wine, you want to drink it :)
- 50 g Sugar
- 25 g Raisins
- 1 orange
- 1 cinamon bark
- 1 spoon ginger powder (or a bit of fresh ginger)
- 1 spoon cloves
- 5 star anise
- if you don’t have the spices you can also just throw in sweet cinamon tea bags instead (or similar), they contain most spices - I took 6 teabags for 1 litre
Directions
- cut the orange in nice looking pieces (since they are mainly decoration)
- throw everything in a pot
- warm up (don’t boil)
- enjoy
Contributors
Recipe tags:
drink
quick
swiss
german
french


Money Play. How should Red play 33?
pips Red=128 White=137
(CorrectAnswer= 0/0, ErrorScore= 0)
It may seem logical to race when ahead and play 18/15(2), 11/8, 6/3 but that move leaves Red with a very inflexible structure.
To clear his points safely he will probably need to roll doubles anyway so it best to clear the mid-point now with 13/10(3) and then 11/8 is the logical fourth 3. If not hit (and that hit could be fraught with danger for White) then Red has plenty of spares to move while he awaits a set of doubles to clear the bar-point.
The other advantage of keeping White’s bar-point is that if White does hit after 13/10(3), 11/8 then the bar-point can provide an escape route for the hit checker.
Any move not involving 13/10(3) is a blunder.
To clear his points safely he will probably need to roll doubles anyway so it best to clear the mid-point now with 13/10(3) and then 11/8 is the logical fourth 3. If not hit (and that hit could be fraught with danger for White) then Red has plenty of spares to move while he awaits a set of doubles to clear the bar-point.
The other advantage of keeping White’s bar-point is that if White does hit after 13/10(3), 11/8 then the bar-point can provide an escape route for the hit checker.
Any move not involving 13/10(3) is a blunder.
1. Cubeful 2-ply 13/10(3) 11/8 Eq.: +0.186 0.562 0.085 0.001 - 0.438 0.077 0.001 2. Cubeful 2-ply 13/10(3) 6/3 Eq.: +0.129 (-0.057) 0.543 0.094 0.001 - 0.457 0.086 0.001 3. Cubeful 2-ply 18/15(2) 11/8 4/1 Eq.: +0.121 (-0.065) 0.548 0.095 0.002 - 0.452 0.107 0.002 4. Cubeful 2-ply 18/15(2) 11/8 6/3 Eq.: +0.120 (-0.066) 0.545 0.094 0.002 - 0.455 0.102 0.002 5. Cubeful 2-ply 13/10(3) 4/1 Eq.: +0.115 (-0.071) 0.535 0.113 0.002 - 0.465 0.094 0.002


"KENIZZITE "(1.) The name of a tribe referred to in the covenant God made with Abraham (Genesis 15:19). They are not mentioned among the original inhabitants of Canaan (Exodus 3:8; Joshua 3:10), and probably they inhabited some part of Arabia, in the confines of Syria. (2.) A designation given to Caleb (R.V., Numbers 32:12; A.V., Kenezite).
"KENIZZITE "(1.) The name of a tribe referred to in the covenant God made with Abraham (Genesis 15:19). They are not mentioned among the original inhabitants of Canaan (Exodus 3:8; Joshua 3:10), and probably they inhabited some part of Arabia, in the confines of Syria.
(2.) A designation given to Caleb (R.V., Numbers 32:12; A.V., Kenezite).


| [ Team LiB ] |
|
[SYMBOL]
[A]
[B]
[C]
[D]
[E]
[F]
[G]
[H]
[I]
[J]
[K]
[L]
[M]
[N]
[O]
[P]
[Q]
[R]
[S]
[T]
[U]
[V]
[W]
[X]
[Y]
[Z]
X clients X servers X toolkit choosing X windowing system 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th and XFree86 X/Open Xalan xcalc xcdroast 2nd 3rd xchat xdb XEmacs XENIX Xerox PARC 2nd 3rd 4th 5th 6th 7th 8th XF86Config file 2nd XFree86 2nd 3rd XHTML XML 2nd 3rd 4th 5th 6th 7th XML Cover Pages XML-DocBook 2nd XML-RPC 2nd xmllint xmltk xmlto 2nd 3rd 4th 5th 6th 7th 8th xsl-fo-proc XSLT 2nd 3rd xsltproc 2nd xterm 2nd 3rd xvi |
| [ Team LiB ] |


Meet Peyton. He lived under a bridge in midtown for almost two weeks in January.
He's home now
Enter characteristics such as "retriever" or "brown, husky" or "peyton, retriever"
{{entry.moreDetails}}


Click the various buttons to interact with the text on the page - you can change the number, size, and color using the buttons to change those elements of the main display on the right-hand size


Note
Click here to download the full example code
Get Started with NNVM¶
Author: Tianqi Chen
This article is an introductory tutorial to workflow in NNVM.
import nnvm.compiler
import nnvm.symbol as sym
Declare Computation¶
We start by describing our need using computational graph. Most deep learning frameworks use computation graph to describe their computation. In this example, we directly use NNVM’s API to construct the computational graph.
Note
In a typical deep learning compilation workflow,
we can get the models from nnvm.frontend
The following code snippet describes \(z = x + \sqrt{y}\) and creates a nnvm graph from the description. We can print out the graph ir to check the graph content.
x = sym.Variable("x")
y = sym.Variable("y")
z = sym.elemwise_add(x, sym.sqrt(y))
compute_graph = nnvm.graph.create(z)
print("-------compute graph-------")
print(compute_graph.ir())
Compile¶
We can call nnvm.compiler.build
to compile the graph.
The build function takes a shape parameter which specifies the
input shape requirement. Here we only need to pass in shape of x
and the other one will be inferred automatically by NNVM.
The function returns three values. deploy_graph
contains
the final compiled graph structure. lib
is a tvm.module.Module
that contains compiled CUDA functions. We do not need the params
in this case.
shape = (4,)
deploy_graph, lib, params = nnvm.compiler.build(
compute_graph, target="cuda", shape={"x": shape}, dtype="float32")
We can print out the IR of deploy_graph
to understand what just
happened under the hood. We can find that deploy_graph
only
contains a single operator tvm_op
. This is because NNVM
automatically fused the operator together into one operator.
print("-------deploy graph-------")
print(deploy_graph.ir())
Let us also peek into content of lib
.
Typically a compiled TVM CUDA module contains a host module(lib)
and a device module(lib.imported_modules[0]
) that contains the CUDA code.
We print out the the generated device code here.
This is exactly a fused CUDA version of kernel that the graph points to.
print("-------deploy library-------")
print(lib.imported_modules[0].get_source())
Deploy and Run¶
Now that we have have compiled module, let us run it.
We can use graph_runtime
in tvm to create a deployable GraphModule
.
We can use the set_input
,
run
and
get_output
function
to set the input, execute the graph and get the output we need.
import tvm
import numpy as np
from tvm.contrib import graph_runtime, util
module = graph_runtime.create(deploy_graph, lib, tvm.gpu(0))
x_np = np.array([1, 2, 3, 4]).astype("float32")
y_np = np.array([4, 4, 4, 4]).astype("float32")
# set input to the graph module
module.set_input(x=x_np, y=y_np)
# run forward computation
module.run()
# get the first output
out = module.get_output(0, out=tvm.nd.empty(shape))
print(out.asnumpy())
Provide Model Parameters¶
Most deep learning models contains two types of inputs: parameters
that remains fixed during inference and data input that need to
change for each inference task. It is helpful to provide these
information to NNVM. Let us assume that y
is the parameter
in our example. We can provide the model parameter information
by the params argument to nnvm.compiler.build
.
deploy_graph, lib, params = nnvm.compiler.build(
compute_graph, target="cuda", shape={"x": shape}, params={"y": y_np})
This time we will need params value returned by nnvm.compiler.build
.
NNVM applys optimization to pre-compute the intermediate values in
the graph that can be determined by parameters. In this case
\(\sqrt{y}\) can be pre-computed. The pre-computed values
are returned as new params. We can print out the new compiled library
to confirm that the fused kernel only now contains add.
print("-----optimized params-----")
print(params)
print("-------deploy library-------")
print(lib.imported_modules[0].get_source())
Save the Deployed Module¶
We can save the deploy_graph
, lib
and params
separately
and load them back later. We can use tvm.module.Module
to export
the compiled library. deploy_graph
is saved in json format and params
is serialized into a bytearray.
temp = util.tempdir()
path_lib = temp.relpath("deploy.so")
lib.export_library(path_lib)
with open(temp.relpath("deploy.json"), "w") as fo:
fo.write(deploy_graph.json())
with open(temp.relpath("deploy.params"), "wb") as fo:
fo.write(nnvm.compiler.save_param_dict(params))
print(temp.listdir())
We can load the module back.
loaded_lib = tvm.module.load(path_lib)
loaded_json = open(temp.relpath("deploy.json")).read()
loaded_params = bytearray(open(temp.relpath("deploy.params"), "rb").read())
module = graph_runtime.create(loaded_json, loaded_lib, tvm.gpu(0))
params = nnvm.compiler.load_param_dict(loaded_params)
# directly load from byte array
module.load_params(loaded_params)
module.run(x=x_np)
# get the first output
out = module.get_output(0, out=tvm.nd.empty(shape))
print(out.asnumpy())
Deploy using Another Language¶
We use python in this example for demonstration. We can also deploy the compiled modules with other languages supported by TVM such as c++, java, javascript. The graph module itself is fully embedded in TVM runtime.
The following block demonstrates how we can directly use TVM’s runtime API to execute the compiled module. You can find similar runtime API in TVMRuntime of other languages.
fcreate = tvm.get_global_func("tvm.graph_runtime.create")
ctx = tvm.gpu(0)
gmodule = fcreate(loaded_json, loaded_lib, ctx.device_type, ctx.device_id)
set_input, get_output, run = gmodule["set_input"], gmodule["get_output"], gmodule["run"]
set_input("x", tvm.nd.array(x_np))
gmodule["load_params"](loaded_params)
run()
out = tvm.nd.empty(shape)
get_output(0, out)
print(out.asnumpy())
Total running time of the script: ( 0 minutes 0.000 seconds)


Database Service Documentation¶
The database service is composed of two main parts. A local database (using SQLite) and
an external repository of data (Pastebin). The local database is very simple, it only saves
entries of the shape (app_id, date, category, URL)
, where app_id
tells the database
who is accessing it, the date
is the date for which we want to get/create a category, and
category
is the key we’re interested in.
All requests to databse must be authenticated with an app_id
parameter.
This allows the database to return the values for said application. Basically,
the database service keeps a (key : value) collection for a specific application.
When a request is made to the database, for a specifc combination of [app_id, date, category]
the service will obtain the pastebin URL (if any) and it will make a request to this URL and obtain
the actual data the user is interested in. We can think that pastebin is our actual data repository
and the local database is only an index.
Required Authentication¶
The authentication steps in the database service are two, one made by the user (when specifying the
app_id
parameter), and the other is made by the service when it authenticates with pastebin so
that it can create pastes.
Endpoint Reference Table¶
| Resource | Operation | Description |
|---|---|---|
| Create Entry | POST /records/(date)/categories | Creates entry for date+category combination. |
| Get Categories for Date | GET /records/(date)/categories | Returns list of categories for which we have information for a date. |
| Get Category Information for Date | GET /records/(date)/categories/(category) | Returns information we have saved for a category on a specific date. |
| Get Records | GET /records | Returns list of dates in database. |
| Update Entry | PUT /records/(date)/categories/(category) | Updates an entry of date+category combination. |
Endpoint Documentation¶
-
GET
/records
¶ Returns the records (dates) that we have information of in the database.
Example request:
GET /records HTTP/1.1 Host: http://tupini07.pythonanywhere.com Accept: application/json
Example response:
HTTP/1.1 200 OK Vary: Accept Content-Type: application/json { "data": [ "2019-01-14", "2019-01-15", "2019-01-16", "2019-01-17" ] }
Query Parameters: - app_id – this is the id of the app
Status Codes: - 422 Unprocessable Entity – the
app_id
parameter was not provided - 206 Partial Content – no records found in database
- 200 OK – records found
-
GET
/records/
(date)/categories/
(category)¶ Get the entry we have saved for a specific category on a specific date. This endpoint will first check if we have a corresponding entry for the combined (date, category) and if yes then it will attempt to pull the information from the corresponding pastebin page.
On some occasions Pastebin will complain saing that a paste is SPAM and a captcha has to be filled to see the paste’s content. In this case the endpoing will just return the pastebin URL and it will be up to the user to go to the URL, solve the captcha, and see the paste.
Note that the content returned for the category is completely arbitrary, and is up to the creator of said content to specify it.
Example request:
GET /records/2019-01-16/categories/ebooks HTTP/1.1 Host: http://tupini07.pythonanywhere.com Accept: application/json
Example response: (Note: this result has been shortened to save space. Normally the result will contain 7 entries insted of 2)
HTTP/1.1 200 OK Vary: Accept Content-Type: text/javascript { "data": ` Title: Accidental Texting: Finding Love despite the Spotl .EPUB Seeders: 4 Leechers: 0 Title: Tear You Apart by Megan Hart .PDF Seeders: 3 Leechers: 0 This data can also be found in pastebin, at the following URL: https://pastebin.com/9tggfzGT ` }
Query Parameters: - app_id – this is the id of the app category
- date – the date which we’re interested in
- category – the category we’re interested in
Status Codes: - 422 Unprocessable Entity – the
app_id
parameter was not provided - 422 Unprocessable Entity – the date parameter is not properly formatted
- 500 Internal Server Error – pastebin is asking for captcha verification (only pastebin URL is returned in this case)
- 206 Partial Content – no records found in database
- 200 OK – records found
-
PUT
/records/
(date)/categories/
(category)¶ Allow us to update an entry for the specified
date
andcategory
, with the specifiedcontent
(which is passed as parameter in the request body).Basically what is done is that a new paste in pastebin is created and the URL associated with the record gets updated to the URL of the new paste.
Example request:
PUT /records/2019-01-17/categories/movies HTTP/1.1 Host: http://tupini07.pythonanywhere.com Accept: application/json { "content": "some new content to replace the old content", }
Example response:
HTTP/1.1 200 OK Vary: Accept Content-Type: application/json { "data": "https://pastebin.com/raw/sXCVakjQ" }
Query Parameters: - app_id – this is the id of the app
- date – the date for which we want to update the entry
- category – the category for which we want to update the entry
JSON Parameters: - content – this is the new content that we want to associate with the category
Status Codes: - 422 Unprocessable Entity – the
app_id
parameter was not provided - 422 Unprocessable Entity – the date parameter is not properly formatted
- 422 Unprocessable Entity – no
content
parameter is present in the request body - 206 Partial Content – there is no record with the combination date+category so no update is possible
- 500 Internal Server Error – cannot create entry in pastebin. This happens when the service exceeds the 24h paste limit
- 200 OK – record updated successfully
-
GET
/records/
(date)/categories
¶ Returns the list of categories for which we have information in the database for a specific date.
Example request:
GET /records/2019-01-16/categories HTTP/1.1 Host: http://tupini07.pythonanywhere.com Accept: application/json
Example response:
HTTP/1.1 200 OK Vary: Accept Content-Type: application/json { "data": [ "ebooks", "movies", "TV-series" ] }
Query Parameters: - app_id – this is the id of the app
- date – the date for which we want to get the list of available categories
Status Codes: - 422 Unprocessable Entity – the
app_id
parameter was not provided - 422 Unprocessable Entity – the date parameter is not properly formatted
- 206 Partial Content – no records found in database
- 200 OK – records found
-
POST
/records/
(date)/categories
¶ Allow us to create a new entry for the specified
date
andcategory
, which will have the specifiedcontent
(both content and category are passed as parameters in the request body).Example request:
POST /records/2019-01-17/categories HTTP/1.1 Host: http://tupini07.pythonanywhere.com Accept: application/json { "content": "some test content", "category": "test-category" }
Example response:
HTTP/1.1 200 OK Vary: Accept Content-Type: application/json { "data": "some test content\n\nThis data can also be found in pastebin, at the following URL: https://pastebin.com/raw/2VTRywd3" }
Query Parameters: - app_id – this is the id of the app
- date – the date for which we want to create a new category entry
JSON Parameters: - category – this is the name of the category which we want to create
- content – this is the content that we want to associate with the category
Status Codes: - 422 Unprocessable Entity – the
app_id
parameter was not provided - 422 Unprocessable Entity – the date parameter is not properly formatted
- 422 Unprocessable Entity – no
category
parameter is present in the request body - 422 Unprocessable Entity – no
content
parameter is present in the request body - 409 Conflict – records already exists for combination date+category
- 500 Internal Server Error – cannot create entry in pastebin. This happens when the service exceeds the 24h paste limit
- 201 Created – new record created successfully


Specify custom ports to send the parsed data to, separated by commas.
Custom rules can be used to override the parser selection. When a rule's regular expression matches with the url of the problem that is being parsed, the parser configured in that rule is used instead of the default parser.
When a problem is sent to the ports a tool could possibly be listening on a timeout is set so requests sent to ports with no listening tools aren't kept alive for too long. You should not change this value unless you are facing issues with your tools not receiving the problem data after clicking the "+" button when they should be.
If debug mode is enabled, all the JSON data that is sent is logged to the console as well.