USER GUIDE
The DBWTL library is a wrapper around database management system APIs. It provides an uniform interface to all components and supports database specific features.
This manual describes how you can use the Informave DBWTL library.
1. Introduction with a step by step example
All important declarations are provided by the inclusion of the dbobjects header file.
#include <dbwtl/dbobjects>
You have to choose at least one engine and include them. If you want a generic API instead of a specific engine, you can just include the generic engine. The generic engine allows the configuration of a specific engine at runtime.
#include <dbwtl/dal/engines/sqlite>
The next line is not required, but makes life easier. All needed classes are declared inside the informave::db namespace.
using namespace informave::db;
Now we have to declare our own type to tell the dbwtl library which database/engine we want to use. The Database template members declares the right types for connections, resultsets etc. depending on the given engine.
typedef Database<dal::sqlite> DBMS;
The environment is the first thing we have to create. The argument to the constructor tells the environment which backend should be used. For example, you can connect to a SQLite database via the libsqlite.dll C-Library, through ODBC or ADO.
If you are using the generic engine, the first part of the string is important. The generic Environment class instantiates an environment of the given engine "in the background". This makes it possible to select the used engine at runtime.
DBMS::Environment env("sqlite:libsqlite");
Now we can check if everything is correct and the dbwtl library is correctly installed.
gcc -o dbtest dbtest.c -ldbwtl
1.1. Creating a connection
In the next step, we create a new connection to a SQLite database. The Connection constructor takes the environment object as a reference.
DBMS::Connection dbc(env);
Now we can open the database:
dbc.connect("sampledb.sqlitedb"); std::cout << dbc.dbmsName() << std::endl; // using default (UTF-8) std::cout << dbc.dbmsName().to("ISO-8859-1") << std::endl;
1.2. Run a SQL query
To run a query, we need to create a Statement object. The constructor takes the connection object as a reference.
DBMS::Statement stmt(dbc);
The direct execution of a SQL statement is possible via execDirect():
stmt.execDirect("SELECT * from customers");
1.2.1. Iterate over the resultset
After execution of the statement, you can create a new DBMS::Resultset object and attach it to the internal statement resultset:
DBMS::Resultset rs(stmt);
|
Note
|
If the statement contains no internal resultset, the DBMS::Resultset object is marked as bad. This state can only be changed by re-attaching the statement via rs.attach(stmt). |
With the methods first(), next() and eof() you can iterate over the records.
for(rs.first(); !rs.eof(); rs.next()) { //for each record }
1.2.2. Access the record fields
You can access the fields by name or by position (first field has position 1). To determine the number of available fields, use columnCount(). The column() method returns a const DBMS::Value reference which provides many getter methods like asStr(), asInt() or asDate() to get the value. To check if a field is null, call isNull() on the value reference.
for(rs.first(); !rs.eof(); rs.next()) { for(int i = 1; i <= rs.columnCount(); ++i) { if(rs.column(i).isNull()) std::cout << "<NULL>"; else std::cout << rs.column(i).asStr(); } std::cout << std::endl; }
1.2.3. Access the column descriptor
The describeColumn() method provides a getter for all column descriptors.
for(int i = 1; i <= rs.columnCount(); i++) { const DBMS::ColumnDesc &desc = rs.describeColumn(i); std::cout << desc.catalogName() << std::endl; std::cout << desc.columnName() << std::endl; }
A DMBS::ColumnDesc (Interface: dal::IColumnDesc) object has several getter methods all returning a const DBMS::Variant (Interface: dal::IVariant) reference.
2. Supported database systems and drivers
2.1. SQLite
- libsqlite
-
Uses the libsqlite3.so or sqlite3.dll to access a database file.
- odbc
-
Uses a installed ODBC driver to connect to a SQLite database.
3. The Database<> template
The Database<> template defines all important types required to work with a database, depending on the selected engine. The engine is a class name from the dal namespace, e.g. dal::sqlite. If you want to choose the engine at runtime, you can use dal::generic and set the engine later.
3.1. Handles
There are three handles: Environment, Connection and Statement.
3.1.1. Setting options for handles
Each handle provides a setOption() and getOption() method.
DBMS::Environment env("sqlite:libsqlite"); env.setOption("env_library_path", std::wstring("/path/to/libs")); std::string path = ifnull<std::string>(env.getOption("env_library_path"), ".");
3.2. Environment
Database<dal::engine_name>::Environment
3.3. Connection
Database<dal::engine_name>::Connection
3.4. Statement
Database<dal::engine_name>::Statement
3.4.1. Binding BLOB and MEMO types
A DBMS::Statement object provides two overloaded bind() methods for std::streambuf* and std::wstreambuf*.
- Binding std::streambuf*
-
The data is threated as binary data.
- Binding std::wstreambuf*
-
A character set conversion is performed (from UCS-2 or UCS-4 to connection encoding) before the data is sent to the database.
The following examples shows how stream buffers can be bound to a statement:
std::ifstream binFile("photo.jpg", std::ios::binary); stmt.bind(1, binFile.rdbuf()); // binary data std::wifstream textFile("example.txt"); stmt.bind(2, textFile.rdbuf()); // text data std::ifstream utf8File("utf8.txt"); std::wstreambuf *wbuf = new std::wbuffer_convert<std::codecvt_utf8>(utf8File.rdbuf()); stmt.bind(3, wbuf); // text data
The last one is a special case where a char stream buffer is first converted to a wide char stream buffer.
3.5. Resultset
Database<dal::engine_name>::Resultset
3.5.1. Wokring with BLOB and MEMO types
For receiving BLOB or MEMO fields, the Variant class provides two methods: asBlob() and asMemo().
- asBlob
-
Returns a pointer to std::streambuf and performs no charset conversion. You just get the raw data from the database.
- asMemo
-
Returns a pointer to a std::wstreambuf and performs charset conversion (from connection encoding to UCS-2 or UCS-4 [depends on sizeof(wchar_t]). If the underlaying column type is of type BLOB (Variant::daltype() == DAL_TYPE_BLOB), a convert_error exception is raised. All other types are converted into a std::wstreambuf.
If you have obtained a buffer pointer with asBlob() or asMemo(), the pointer is valid (for all rows) until you close the resultset or statement. Scrolling through the dataset (e.g. next()) only resets the buffer to the new row data. If the new field is NULL, the buffer is marked as bad (std::ios::bad).
3.6. General supported types
The Database<> template provides for every selected engine a basic set of types conforming to the SQL standard. An engine can extend this set with system specific types supported by the database.
| SQL:2008 Type | DBWTL Type Mapping |
| CHARACTER | DBMS::String |
| CHARACTER VARING | DBMS::String |
| CHARACTER LARGE OBJECT | DBMS::Memo |
| BINARY | DBMS::Blob |
| BINARY VARYING | DBMS::Blob |
| BINARY LARGE OBJECT | DBMS::Blob |
| NUMERIC | DBMS::Numeric |
| DECIMAL | DBMS::Numeric |
| SMALLINT | DBMS::Smallint |
| INTEGER | DBMS::Integer |
| BIGINT | DBMS::Bigint |
| FLOAT | DBMS::Float |
| REAL | DBMS::Float |
| DOUBLE PRECISION | DBMS::Double |
| BOOLEAN | DBMS::Boolean |
| DATE | DBMS::Date |
| TIME | DBMS::Time |
| TIMESTAMP | DBMS::Timestamp |
| INTERVAL | - (requires implementation) |
Values from resultsets are automatically converted to the variable type. So the following statement ist valid:
const DBMS::Numeric val = rs.column(i); // auto conversion
3.7. Value
The Value type is for column values returned from the engine. You can’t create new objects of type Value, you can only get (mostly const) references from a Resultset object.
const DBMS::Value &val = rs.column(i);
It is a requirement that the Value type implements the IVariant interface. This allows you to pass column values to all methods which accepts IVariant references, for example Statement::bind()
3.8. Variant
The Variant type can be used to create own variant objects. This type can store all the POD types and pointers to such types.
int myint = 5; DBMS::Variant var(&myint); var.setInt(10); assert(myint == 10); // myint was changed through setInt()
3.9. ColumnDesc
TODO
3.10. Blob
TODO
3.11. Memo
TODO
4. Diagnostic and error handling
Each handle (Environment, Connection and Statement) logs warnings and errors as a diagnostic record to an internal buffer. If a buffer reaches DBWTL_DIAG_SIZE, older records are overriden (it works like a circular buffer).
With diagAvail() you can check if there are any diagnostic records available and with fetchDiag() you can fetch them which moves an internal cursor to the next record.
If an error occours, the DBWTL performs two steps: all information about the error are collected and written to a diagnostic record, and second, a SQLSTATE exception with a copy of the diagnostic record is thrown.
Hints and warnings are just logged, no exception is raised.
while(dbc.diagAvail()) { const DBMS::Diag &diag = dbc.fetchDiag(); // print information }
4.1. Exception handling
There are two categories of exceptions implemented in DBWTL.
- Engine exceptions
-
Exceptions inside the DBWTL or DAL code like unknown driver strings, reading NULL values and so on.
- SQLSTATE exceptions
-
Exceptions for SQLSTATEs which are classified as errors, for example SQL syntax erros, constraint violations or authentification errors.
There are only a small set of engine errors:
-
ex::exception: Base class for exceptions
-
ex::convert_error: A variant value could not be converted to the requested type.
-
ex::null_value: A variant value is set to NULL and you have tried to read the value
-
ex::engine_error: Base class for all exceptions raised in DAL code
-
ex::sqlstate_exception: Base class for all SQLSATE error conditions
-
ex::not_found: Raised if you have requested a column or parameter which does not exists
-
ex::charset_error: The source string could not be converted to the requested charset.
-
ex::read_only: Raised if you try to write to a read-only variant
-
ex::missing_function: A required function in the external driver library could not be found
-
ex::engine_busy: Raised if the engine is busy and your request could not be handled
The SQLSTATE exceptions are far more complex. The list of SQLSTATE exceptions you can catch depends on the selected engine. Each engine defines their own list of supported ISO 9075 SQLSATE exceptions (and maybe engine-dependend custom SQLSTATES). Only the generic engine defines the full set of ISO SQLSTATE error codes, specific engines defines only thoose where are supported (plus their own states).
DBMS::Statement stmt(dbc); try { stmt.prepare("INSERT INTO customers VALUES(1, 'Dave Miller');"); stmt.execute(); } catch(DBMS::SQLSTATE_23000 &state) { std::cout << "Constraint violation" << std::endl; } catch(DBMS::SQLSTATE_22000 &state) { std::cout << "General data exception or other 22xxx state" << std::endl; } catch(DBMS::SQLSTATE_42000 &state) { std::cout << "Syntax error or access violation" << std::endl; } catch(ex::engine_error &err) { std::cout << "Other errors" << std::endl; }
A SQLSTATE subclass (last 3 chars) is derived from the SQLSTATE class (first 2 chars) which makes it possible to catch a specific subclass SQLSTATE or all subclasses by catching the class (e.g. SQLSTATE_22000).
An engine can define additional SQLSTATES which can be catched by the same way as regular ISO SQLSTATEs. The only exception is when you are using the generic engine: only the ISO SQLSTATEs are defined. If a specific engine defines for example SQLSTATE_XYZ01, you can catch them only with ex::sqlstate_error which is the base class for all SQLSTATE exceptions. Inside the exception handler you can fetch the SQLSTATE as a string to make your decisions:
DBMS::Statement stmt(dbc); try { stmt.prepare("INSERT INTO customers VALUES(1, 'Dave Miller');"); stmt.execute(); } catch(DBMS::SQLSTATE_42000 &state) { // catched ISO defined SQLSTATE } catch(ex::sqlstate_error &state) { // catched engine specific SQLSTATE std::string s = state.diag().sqlstate().asStr().to("ASCII"); if(s.compare("XYZ01") == 0) { // handle XYZ001 } else if(s.compare("ZZZ55") == 0) { // handle ZZZ55 } else { // other states } }
This provides a powerful method if you want to use the generic layer, but also have to handle engine specific SQLSTATEs.
5. API Reference
This chapter is a reference for the DBWTL classes, types and methods, including the syntax, method arguments and examples of use.
5.1. DBMS::Environment
Handle for Statement.
5.2. DBMS::Connection
Handle for Statement.
5.3. DBMS::Statement
Handle for Statement.
5.3.1. bind()
Binds a value or a pointer to a value to a parameter in a prepared SQL query.
Syntax
void Stmt::bind(size_t number, DBMS::Variant value); void Stmt::bind(size_t number, dal::IVariant* value); void Stmt::bind(size_t number, const dal::IVariant* value); template<class A, class B, class C> void Stmt::bind(int num, const std::basic_string<A, B, C>& data); template<class A, class B, class C> void Stmt::bind(int num, std::basic_string<A, B, C>* data); template<class A, class B, class C> void Stmt::bind(int num, const std::basic_string<A, B, C>* data); template<class A, class B> void Stmt::bind(int num, std::basic_streambuf<A, B>* data); template<class A, class B> void Stmt::bind(int num, const std::basic_streambuf<A, B>* data);
| Parameter | Type | Description |
|---|---|---|
number |
size_t |
Number of the parameter (starts at 1) |
value |
dal::Variant |
Variant value |
Output parameters
Description
bind() passes data to parameters in a SQL query.
Return Value
No return value.
Exceptions
- not_found
-
is thrown when the number argument is out of range.
Examples
DBMS::Stmt stmt(dbc); stmt.prepare(L"SELECT * FROM x WHERE a = ? and b = ?;"); int valA = 4; std::wstring valB = L"data"; stmt.bind(1, valA); stmt.bind(2, valB); stmt.execute();
See Also
prepare(), execute(), reset()
5.4. DBMS::Resultset
Handle for Statement.
5.5. DBMS::CachedResultset
Handle for Statement.
5.6. DBMS::ColumnDesc
Handle for Statement.
5.7. DBMS::Diag
Handle for Statement.
6. Supported systems
DBMS |
Version |
Status |
Write Support |
Version introduced |
General ODBC |
IN PROGRESS |
Yes |
||
PostgreSQL |
>= 8.4 |
IN PROGRESS |
Yes |
0.1.2 |
SQLite |
>= 3.6.0 |
IN PROGRESS |
Yes |
0.1.0 |
6.1. Drivers implemented as SDA connector
DBMS |
Version |
Status |
Write Support |
Version introduced |
Btrieve |
⇐ 6.15 |
IN PROGRESS |
No |
|
DBase |
PLANNED |
Yes |
||
Paradox |
PLANNED |
Yes |
||
Superbase |
IN PROGRESS |
No |
||
TopSpeed |
IN PROGRESS |
No |
7. COPYING
Copyright (C) 2008-2010 Daniel Vogelbacher. Free use of this software is granted under the terms of the BSD License.


A common task with DWR is to fill a select list with options. A common example would be providing options based on an earlier input. For details, see the documentation for addOptions and removeAllOptions.
The best way to set the selected option is to follow a call to dwr.util.addOptions()
with a call to dwr.util.setValue()
.
If you want to have an initial "Please select..." option then you can add it in directly using:
dwr.util.addOptions(id, ["Please select ..."]);
Followed by another call to dwr.util.addOptions()
to include your real options data.
If you wish to maintain the selection of a list while you update it then you need to do something like this:
var sel = dwr.util.getValue(id); dwr.util.removeAllOptions(id); dwr.util.addOptions(id, ...); dwr.util.setValue(id, sel);
DWR provides the dwr.util.addOptions()
function to add to a select list. At it's most simple this takes 2 parameters, the first being the id of a select element to alter, and the second being an array of strings, each of which is to be used as an option.
DWR also provides the dwr.util.removeAllOptions()
function which empties the select element. Separating the 2 functions means that we can better handle default values.
dwr.util.addOptions( "demo1",
)
A list with id="demo1"
:
You may wish to fill a select list from an array of beans rather than an array of strings. In this case you need to specify the property from the bean that will be used for each value.
dwr.util.addOptions( "demo2",
,
)
A list with id="demo2"
:
Alternatively you need to specify differing values (as are submitted by a form or read by dwr.util.getValue() and display texts. There is an optional 4th parameter that allows you to specify data to be used as the text separately from the value.
dwr.util.addOptions( "demo3",
,
,
)
A list with id="demo3"
:
Sometimes you need fill a select list using a map, filling the values from the map keys and the text from the map values.
dwr.util.addOptions( "demo4",
)
A list with id="demo3"
:
You may wish to do it the other way around (i.e. have text from the keys and values from the map values). In DWR v2 dwr.util.addOptions()
function will handle this alternative, with the addition of an extra parameter 'false'. However this syntax should be considered 'likely to be deprecated and replaced' in the future.

and

list editingFinally dwr.util.addOptions()
is also able to alter

and

lists by adding

elements. In this mode the first parameter is the id of a

or

list to alter and the second is an array of strings, each of which is to be used as an option.
The dwr.util.removeAllOptions()
function empties the lists of this type as well.
dwr.util.addOptions( "demo5",
)
A

list with id="demo5"
:
In addition to the action above, DWR can format elements as they are added to a list using a formatting function.
function formatter(data) { return "" + data + "</em&lgt;"; }
dwr.util.addOptions( "demo6",
, formatter, options)
A

list with id="demo6"
:


This is the main island in The Scillies. The port, Hugh Town, is on the western side and is the centre of all services for the islands.
Position 49°55'N, 06°8.7'W.
Customs clearance - there is no Customs Office in Scilly.
Non-EU yachts or yachts with non-EU crew should fly flag Q and telephone 0800 7231110 to clear in
Last updated February 2016.
The easiest and best marked passage into the main anchorages of St Mary's from the mainland and also from the south is through St Mary's Sound between Gugh and St Mary's.
An alternative passages for experienced yachtsmen approaching from the south are Smith Sound, Broad Sound and the North West Passage (formerly known as the "North Channel").
Hugh Town Harbour
In the harbour, there are 28 yellow visitors' buoys for boats up to 40ft and 10 green buoys for boats up to 60ft. Rafting is permitted (with consent from the original boat).
There is good shelter except in W/NW gales.
The mooring buoy charges are £18.50 per night for vessels to 40ft and £24.50 to 60ft. For vessels paying for three nights the fourth night is free
Alongside charges are £25/night for up to 40ft and £30/night for up to 60ft.
A water taxi operates from 8am to 5pm.
There is no anchoring within the harbour itself.
The harbour wall provides room for 3 alongside berths (depth 1m over CD) and a tender landing pontoon. There is water and electricity here.
Garbage bins are provided but for any waste from boats arriving from outside the EU, contact the Harbour office.
Porth Cressa (south of Hugh Town)
There now are 14 private yellow visitor's moorings here for boats up to 45ft.
Charge is £20/night. Showers ashore by the information centre. WiFi also at the moorings.
Anchorages
In W to NW winds, Porth Cressa provides a good anchorage in 2m. It is exposed to any swell from SE to SW.
Watermill Cove, on the NE corner of the island, offers good protection in winds from S to NW. Anchor in 5m.
Last updated February 2016.


Thinking Style
Abstract Sequential
5th April, 2015
Dr. Anthony Gregorc came up with a model in 1984 that consider how the mind works. It provides a combination of 4 possibility to define a person's thinking style. These 4 combination are Concrete Sequential, Abstract Random, Abstract Sequential, and Concrete Random.
After taking the test I was able to determine my style to be Abstract Sequential, which means that I am a logical person who analyses the situation and applies logic before making a decision. In a group setting I like to have my point heard. I learn best with a balance of working alone while having access to experts and in a stimulating environment. I have a hard time working with people of different views and working on the same problem multiple times. I am also not good with emotions also have time management issues.
After finishing 3 weeks of phase 0, I can say I had the most struggle with CSS and setting up my system in that order. The way CSS was taught makes me think that it is a trial and error type of language. You just need to practice it a lot in order to get the page set-up exactly how you want it which is was a hard concept for me to understand. I also had trouble with setting up my computer. I am using Windows operating system and the example that they gave were more mac based. I had to go on-line many times in order to get my system set-up. Both problems are related to not having a clear direction or having access to reference which caused me to spend time researching for correct answers.
After learning that I am an Abstract Sequential thinker, I need to force myself to work in a team setting where my team has different views than me. I am a debater and I try to have people see things like I do. Having the ability to think like others is something I really want to strive towards. This will also help me express my emotions better.


DWR comes packaged with different server load monitors which help balance server load between multiple users. The type of monitor chosen will depend on your application's need.
The Throttling Server Load Monitor at its basic level works by controlling the maximum number of currently connected threads and the maximum hits per second to the server. To control load this load monitor will adjust the time a connection is allowed to stay connected, and the time that the reverse ajax api will wait before connecting to the server again. By adjusting the connected time and the disconnected time the Thottling Server Load Monitor can help give users a better overall experience during times of heavy load.
Since it is inefficient to check load everytime a client requests a new connection, this server monitor runs a separate load management thread that will run at most once every 5 seconds while there are incoming connections. When no more incoming connections are being received the load monitor will simply shutdown and sleep until a new connection is requested. Note that the thread will verify load at least once per hour even if no connections are being received.
When the server is throttling connections there are three possible modes that the server could be in.
<servlet> <servlet-name>dwr-invoker</servlet-name> <display-name>DWR Servlet</display-name> <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> <init-param> <param-name>activeReverseAjaxEnabled</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>org.directwebremoting.extend.ServerLoadMonitor</param-name> <param-value>org.directwebremoting.impl.ThrottlingServerLoadMonitor</param-value> </init-param> </servlet>
At this point DWR will now use the ThrottlingServerLoadMonitor to balance reverse ajax connections.


Preparation time
less than 30 mins
Cooking time
30 mins to 1 hour
Serves
Serves 4
This healthy take on a traditional chicken pie is packed with extra veggies thanks to its cauliflower mash topping.
This meal provides 522 kcal, 61g protein, 17g carbohydrate (of which 14g sugars), 23g fat (of which 11g saturates), 13.5g fibre and 1.6g salt per portion.
Preheat the oven to 220C/200C Fan/Gas 7.
Heat the ghee in a frying pan over a medium heat. Add the leeks and fry for 4-5 minutes, or until softened but not browned. Add the celery and bay leaf and increase the heat to high. Fry for 1-2 minutes.
Add the chicken stock to the pan and bring to the boil, then add the carrots, fennel and mushrooms and reduce the heat until the mixture is simmering. Continue to simmer the mixture until the volume of liquid has reduced and thickened, and the vegetables are tender, about 12-15 minutes.
Meanwhile, for the topping, put the cauliflower, garlic cloves and half of the butter in a large, lidded saucepan. Add 4 tablespoons of water and cover.
Bring the pan contents to a simmer over a medium heat and steam for 6-8 minutes, or until the cauliflower is tender when pierced with a knife (add a splash more water during cooking if necessary). Remove from the heat and transfer the contents to a food processor. Blend to your consistency of choice - either smooth and creamy or roughly textured. Season witth salt and pepper.
To finish the pie filling, remove the bay leaf and add the remaining filling ingredients to the pan. Season with salt and pepper. Stir well, then transfer the mixture to an ovenproof pie dish.
Spoon the pie topping over the filling and spread into an even layer using a palette knife. Use a fork to create a criss-cross pattern on top of the filling. Dot the top of the pie with the remaining butter.
Bake for 25-30 minutes, or until the filling is bubbling and the topping is golden-brown.


a web page of detailed article, free and easy to integrate into a site
e-commerce web site.
Download source code in github for free$$
-
Fiche technique
- path management
- interactive product image list
- display of the product title
- price display
- to be able to display the list of color available
- quantity change
- The addition to cart
- social networks buttons


GET /examples/app/scope
Note: after moving the page, reload repeatedly and confirm how the displayed values change


Home
Services
About batman
Why batman
Merchandise
Congratulations ! Batman is thanking you for buying this product
Product Details
Product quantity
Product name
Product price
1
Batman key chain
500
Total
Sum
500
Taxes
90
Grand Total
590
Thank you !


@(user: db.User)(implicit request: Request[AnyContent])
Welcome to Line Learning. To access your new account, please click here.
Email address: @user.email
Password: @user.password
You should change your password here after logging in.


Order for
Deliver to:
STREET ADDRESS
CITY
,
STATE
ZIP
Tacos:
TACO NAME
INGREDIENT
Click the browser refresh to pull the next order.


WITNESS LIST
Finance
April 3, 2017 10:00 AM
Registering, but not testifying:
ON:
Garcia, Lynn General Counsel (Texas Forensic Science Commission)
FOR:
Lindsay, Thomas Director, Center for Higher Ed (TX Public Policy Fdn.), Austin, TX
Registering, but not testifying:
AGAINST:
Cuellar, Guadalupe Legislative Attorney (City of El Paso)
Green, Joseph Government Relations (Travis County Commissioners Court), Austin, TX
Kleinman, Lee Council Member (City of Dallas)
Tagliabue, Tom Director, Intergovernmental Relations (City of Corpus Christi)
Youngkin, Brandi M. Director of Government Relations (City of Plano)
ON:
Wright, Christine Leg. Mgr. (City of San Antonio), SA, TX
FOR:
LeBas, James Fiscal Analyst (TXOGA), Austin, TX
Shepperd, Ben President (Permian Basin Petroleum Association), Midland, TX
ON:
Currah, Tom Chief Estimator, Revenue (Comptroller of Public Accounts)
Registering, but not testifying:
FOR:
Carter, Teddy Public & Govt. Affairs Lead - TX (Devon Energy)
Casey, Stan Government Relations (Concho Resources), Austin, TX
Flores, Robert Govt Affairs Consultant (Texas Energy Advocates Coalition)
Harmon, Mark Government Relations Director (Chesapeake Energy)
Miller, Lindsey Director of Government Affairs (Texas Independent Producers and Royalty
Owners Association), Austin, TX
Minick, Stephen V.P., Government Affairs (Texas Association of Business), Austin, TX
Moore, Julie Senior Director (Occidental Petroleum), Austin, TX
Rutter, Reenann Sr. Gov't Affairs Specialist (Pioneer Natural Resources), Irving, TX
Simpson, Stephanie Vice President (TX Assn of Manufacturers), Austin, TX
Stevens, Bill (TX Alliance of Energy Resources), Austin, TX
Williams, Julie State Government Affairs Advisor (Chevron), Austin, TX
ON:
Carmichael, Katherine (Panhandle Producers & Royalty Owners Association), Austin, TX
ON:
Scanio, Joseph (Comptroller of Public Accounts)
WITNESS LIST
Finance
April 3, 2017 10:00 AM
Registering, but not testifying:
FOR:
Minick, Stephen V.P. Government Affairs (Texas Association of Business), Austin, TX
Stevens, Bill consultant (TX Alliance of Energy Producers), Austin, TX
FOR:
Bast, Cynthia Partner, Locke Lord LLP (Texas Affiliation of Affordable Housing
Providers)
Bowling, Bobby Home Builder / Developer (Texas Affiliation of Affordable Housing
Providers (TAAHP) & Texas Apartment Association (TAA))
Kahn, Hetting Kahn Development, Barry Affordable Housing Development & Ownership
(Tex. Affiliation of Aff. Housing Providers; Tex. Assoc. Builders; Tex. Apt. Assoc.)
Law, Jeff Chief Appraiser, Tarrant County (Texas Association of Appraisal Districts), FW,
TX
Protine, Emily Community Outreach Liaison (Bonner Carrington)
Registering, but not testifying:
FOR:
Flores, Robert Govt Affairs Consultant (South Texas Housing & Community Corp)
Kercheval, Todd Consultant (Rural Rental Housing Assn.), Austin, TX
Kercheval, Todd Consultant (TX Assn of Local Housing Finance Agencies), Austin, TX
Wright, Felicia (Texas Assn. of Builders), Austin, TX
FOR:
Baxter, Sharon Attorney (TCAD Travis Central Appraisal District)
Moreau, Walter Executive Director (Foundation Communities)
Registering, but not testifying:
FOR:
Thurston, James Director of Policy (United Ways of Texas), Austin, TX
Registering, but not testifying:
FOR:
Forel, Crystal Attorney (Houston Methodist Hospital)
ON:
Scanio, Joseph (Comptroller of Public Accounts)
Providing written testimony:
ON:
Whitehurst, Darren VP - Advocacy (Texas Medical Association), Austin, TX
Registering, but not testifying:
FOR:
Gonzalez, Daniel Consultant (TX. Assoc. of Realtors), Austin
WITNESS LIST
Finance
April 3, 2017 10:00 AM
McLaurin, Kaleb Director of Government Affairs (Texas and Southwestern Cattle Raisers
Assn.), Austin, TX
Parenteau, Julia consultant (Texas Association of Realtors), Austin, TX
Rathgeber, Julia CFO of assn (Assn of Electric Companies of Texas)
Wright, Felicia (Texas Assn. of Builders), Austin, TX
ON:
Esparza, Mike Property Tax Assistance (Comptroller of Public Accounts)
ON:
Lakey, MD, David Physician (University of Texas System)
Registering, but not testifying:
FOR:
Hansch, Greg LMSW (National Alliance on Mental Illness (NAMI) TX), Austin, TX
Hartman, Marilyn Advocate for those with serious mental illness (NAMI Austin (National
Alliance and Mental Illness))
Johnson, Lee Deputy Director (Texas Council of Community Centers)
Rodriguez, Micah Blackridge (Meadows Mental Health Policy Institute), Austin, TX
Romero, Michelle Assoc. Director of Advocacy (Texas Medical Association), Austin, TX
Switzer, Gyl Public Policy Director (Mental Health America of Texas), Austin, TX
Woomer, Eric Consultant (Federation of Texas Psychiatry), Austin, TX
Yanas, Christine Directors, Govt. Affairs (Methodist Healthcare Ministries of South TX),
San Antonio, TX
ON:
Maples, Mike Assistant Deputy Commissioner DSHS (Dept. State Health Services),
Austin, TX
FOR:
LeBas, James Fiscal Analyst (TXOGA), Austin, TX
Shepperd, Ben President (Permian Basin Petroleum Association), Midland, TX
ON:
Currah, Tom Chief Estimator, Revenue (Comptroller of Public Accounts)
Registering, but not testifying:
FOR:
Carter, Teddy Public & Govt. Affairs Lead - TX (Devon Energy)
Casey, Stan Government Relations (Concho Resources), Austin, TX
Flores, Robert Govt Affairs Consultant (Texas Energy Advocates Coalition)
Harmon, Mark Government Relations Director (Chesapeake Energy)
Miller, Lindsey Director of Government Affairs (Texas Independent Producers and Royalty
Owners Association), Austin, TX
Minick, Stephen V.P. Governmental Affairs (Texas Association of Business), Austin, TX
Moore, Julie Senior Director (Occidental Petroleum), Austin, TX
Rutter, Reenann Sr. Gov't Affairs Specialist (Pioneer Natural Resources), Irving, TX
Simpson, Stephanie Vice President (TX Assn of Manufacturers), Austin, TX
WITNESS LIST
Finance
April 3, 2017 10:00 AM
Stevens, Bill Consultant (TX Alliance of Energy Producers), Austin, TX
Williams, Julie State Government Affairs Advisor (Chevron), Austin, TX
ON:
Carmichael, Katherine (Panhandle Producers & Royalty Owners Association), Austin, TX


Announcements
purchase 3 drinks for the price of 2 at the bar!
10% discount on team registration fees!
nominations for the coming 4-a-side weekend competition
4-a-side weekend competition
start of our new social season
purchase 3 drinks for the price of 2 at the bar!
10% discount on team registration fees!
nominations for the coming 4-a-side weekend competition
4-a-side weekend competition
start of our new social season


---
layout: default
title: About
user:
name: me
---
About
We've got what you need!
Start Bootstrap has everything you need to get your new website up and running in no time! All of the templates and themes on Start Bootstrap are open source, free to download, and easy to use. No strings attached!
Hello {{ name }}
Hello {{ page.layout }}
hello {{ page.title }}
Hello {{ page.type }}
Hello {{ 'tobi' }}
{{ site.name }}
{{ site.author.email }}
We made 1 million dollars {% comment %} in losses {% endcomment %} this year
{% raw %}
In Handlebars, {{ this }} will be HTML-escaped, but {{{ that }}} will not.
{% endraw %}
{% if user %}
Hello {{ user.name }}
{% endif %}


This widget reproduces the mechanical subtleties of the Swiss Federal Railways clock, the "Schweizer Bahnhofsuhr", by modeling each hand as a damped torsional harmonic oscillator.
The clock was designed by Swiss engineer and designer Hans Hilfiker in 1944, while working for the Swiss Federal Railways.
More information:


virus cells influenza CEF genes virus-infected expression host avian human changes gene infected cell pathways pathway signaling (Figure UV-treated untreated using down-regulated infection viruses analysis []. hpi {border-style DEGs cells, cells. observed px;} up-regulated #ffffff;} Influenza different protein reported Figure hpi, infections infections. significant used HIPPO data proviral response USA) annotation antiviral compared findings anti-NP associated showed Functional [], differentially expressed metabolic (HN) GeneChip common commonly confirmed ortholog subtype virus. (A) Hippo USA). Virus addition, cytokine examined higher humans px; replication study subtypes. suggested unique {font-family (B) (C) C). Gene activated adaptation compare described factors font-size genes) induced infections, microarray previous staining studies subtypes types (DEGs) A). B.T., CA, DEGs. HPAI S). component disease double; functional indicated induction infect involved low mammalian post-infection receptors severe showing species stained suggesting up- virus, Comparison However, LPAI MDCK MOI Pairwise STAT Type [,]. according acid active border-color border-width clustering down-regulation epithelial global hours involving level mapping mock-infected number orthologous pathogenic performed processes qPCR shown solid; strain strains transcriptome transmission {font-style {font-weight (Affymetrix, (CEF) (Invitrogen, Avian Cell Cells Engl. Human KEGG Med../NEJMoa NeuAc Principal RNA USA), [,,]. able bind bold canine capacity characterization contrast, courier; detected em; enriched followed galactose gene, heat hpi. humans. identified immunofluorescence increased infection, infection. interferon isolated kit microscopy normalized novel pathway, point presence probe prominent pt;} relating replication-dependent respectively, respiratory responsible selected shared specific time viruses,


Display High Scores
Game Timer
Code Quiz
Try to answer the following code-related questions within the time limit. Keep in mind that incorrect answers will penalize your score time by 10 seconds.
Take Quiz


Hacking Code to Help a Friend
The other day my friend Carl sent me a Google chat asking how much I know about javascript. I first thought to myself, hey I'm somewhat decent instead I replied back with I'm pretty good. Once saying this I realized I may be in a world of hurt so he sent me over a code snippet.
My first glance it looked simple enough. Carl wanted to use classes instead of an ID. Doing this would we could specify one class and use it on multiple DOM elements on the page.
I started with changing the javascript to jQuery. I didn't change much of logic since it was already working but doing just this ended up as a fail. A couple more changes and I got things working, well sort of. It was animating the scroll effect but it was doing this on all classes on the page. Plus it was only scrolling the width of the container not the inner content width.
I started dissecting the code more and decided to do this as OOP programming. It's something I haven't had a lot of experience with but I wanted to learn and needed to learn. Referencing code samples across the internet. This got me understanding creating objects. I ended up looking at the jQuery from a Drupal module called Quicktabs that I was using on another project. From this I really started to understand objects and extending them.
It was a lot of trial and error; reading Stackoverflow and watching tutorials on jquery.com. And with all this I ended up get things working.
Now the only thing is to slow down the speed of scrolling so it's legible. The culprit is animate()
so I'm looking at implementing setTimeout()
that would move in increments per millisecond. I'm still working through this problem and hope to add to the functionality.
- Previous: Christopherkollars.com v2.0 I guess?
- Next: Why didn't I ever do this?


Class TumblrClient
Encapsulates the Tumblr API.
Implements
Inherited Members
Namespace: DontPanic.TumblrSharp.Client
Assembly: DontPanic.TumblrSharp.Client.dll
Syntax
public class TumblrClient : TumblrClientBase, IDisposable
Constructors
| Name | Description |
|---|---|
| TumblrClient(IHmacSha1HashProvider, String, String, Token) | Initializes a new instance of the TumblrClient class. |
| TumblrClient(IHttpClientFactory, String, String, String, Token) | Initializes a new instance of the TumblrClient class. |
Methods
| Name | Description |
|---|---|
| CreatePostAsync(String, PostData) | Asynchronously creates a new post. |
| CreatePostAsync(String, PostData, CancellationToken) | Asynchronously creates a new post. |
| DeletePostAsync(String, Int64) | Asynchronously deletes a post. |
| Dispose(Boolean) | Disposes of the object. |
| EditPostAsync(String, Int64, PostData) | Asynchronously edits an existing post. |
| EditPostAsync(String, Int64, PostData, CancellationToken) | Asynchronously edits an existing post. |
| FollowAsync(String) | Asynchronously follows a blog. |
| GetBlogInfoAsync(String) | Asynchronously retrieves general information about the blog, such as the title, number of posts, and other high-level data. |
| GetBlogLikesAsync(String, Int32, Int32, Nullable<DateTime>, Nullable<DateTime>) | Asynchronously retrieves the publicly exposed likes from a blog. |
| GetDashboardPostsAsync(Int64, DashboardOption, Int64, Int32, PostType, Boolean, Boolean) | Asynchronously retrieves posts from the current user's dashboard. |
| GetDashboardPostsAsync(Int64, Int64, Int32, PostType, Boolean, Boolean) | Asynchronously retrieves posts from the current user's dashboard. |
| GetDraftPostsAsync(String, Int64, PostFilter) | Asynchronously returns draft posts. |
| GetFollowersAsync(String, Int32, Int32) | Asynchronously retrieves a blog's followers. |
| GetFollowingAsync(Int64, Int32) | Asynchronously retrieves the blog that the current user is following. |
| GetLikesAsync(Int64, Int32, Nullable<DateTime>, Nullable<DateTime>) | Asynchronously retrieves the current user's likes. |
| GetPostAsync(String, Int64, Boolean, Boolean) | Asynchronously retrieves a specific post by id. |
| GetPostsAsync(String, Int64, Int32, PostType, Boolean, Boolean, PostFilter, String) | Asynchronously retrieves published posts from a blog. |
| GetQueuedPostsAsync(String, Int64, Int32, PostFilter) | Asynchronously returns posts in the current user's queue. |
| GetSubmissionPostsAsync(String, Int64, PostFilter) | Asynchronously retrieves submission posts. |
| GetTaggedPostsAsync(String, Nullable<DateTime>, Int32, PostFilter) | Asynchronously retrieves posts that have been tagged with a specific |
| GetUserInfoAsync() | Asynchronously retrieves the user's account information that matches the OAuth credentials submitted with the request. |
| GetUserLikesAsync(Int32, Int32) | Asynchronously retrieves the current user's likes. |
| LikeAsync(Int64, String) | Asynchronously likes a post. |
| ReblogAsync(String, Int64, String, PostCreationState, Nullable<DateTime>, String) | Asynchronously reblogs a post. |
| ReblogAsync(String, Int64, String, String) | Asynchronously reblogs a post. |
| UnfollowAsync(String) | Asynchronously unfollows a blog. |
| UnlikeAsync(Int64, String) | Asynchronously unlikes a post. |


| Basset Hound Picture |
| Breed Information |
| Popularity |
2017: #392016: #392015: #39 |
| Name |
Basset Hound |
| Other names |
Basset, Hush Puppy |
| Origin |
France |
| Breed Group |
Hound (AKC:1935)Scenthound (UKC) |
| Size |
Medium |
| Type |
Purebred |
| Life span |
10-12 years |
| Temperament |
AffectionateDevotedFriendlyGentleSweet-TemperedTenacious |
| Height |
Male: 12-15 inches (30-38 cm)Female: 11-14 inches (28-36 cm) |
| Weight |
Male: 50-65 pounds (23-29 kg)Female: 45-60 pounds (20-27 kg) |
| Colors |
Black and TanBrownGrayRedTricolorWhite |
| Litter Size |
6-8 puppies |
| Puppy Price |
Average $300 - $500 USD |
|
|
| Breed Characteristics |
| Adaptability |
5 stars |
| Apartment Friendly |
3 starsThe Basset Hound will do okay in an apartment. They are very inactive indoors but outdoors they will run for hours in play if given the chance. They will do okay without a yard, but should be given plenty of opportunities to run and play to keep healthy and trim. |
| Barking Tendencies |
3 starsOccassional |
| Cat Friendly |
5 stars |
| Child Friendly |
5 starsGood with Kids: This is a suitable dog breed for kids. It is also friendly toward other pets and friendly toward strangers. |
| Dog Friendly |
5 stars |
| Exercise Needs |
3 starsBasset hounds do not require much exercise, but they tend to get excited and energetic once taken outdoors. They should be taken for short walks or allowed to play in the yard. Basset Hounds can live happily in an apartment. |
| Grooming |
2 starsThe oily Basset coat gives the dog a “houndy” odor. Some people like it, some people loathe it. If you’re a loather, you can bathe your Basset weekly to reduce the smell, but it will never completely go away. The rest is basic care. Trim his nails as needed, usually every few weeks, and brush his teeth for good overall health and fresh breath. |
| Health Issues |
3 starsHypoallergenic: No |
| Intelligence |
3 starsRanking: #71. (See All Rankings) |
| Playfulness |
3 stars |
| Shedding Level |
3 starsModerate Shedding: The Basset has a short coat that requires daily care because it sheds heavily. Brush it with a rubber curry brush daily if you want to keep all the loose hair under control. The brush removes dead hairs that would otherwise end up on your floor, furniture and clothing. |
| Stranger Friendly |
5 stars |
| Trainability |
3 starsModerately Easy Training: Basset hounds must be trained with consistency and patience. You should make the process active and engaging to keep them interested. Basset Hounds may forget to obey when a snack reward is not present. The Basset Hound is known for being difficult to house break. |
| Watchdog Ability |
1 stars |
|
|


Run the actions to the right in descending order.
When writing an application, SPs and UDFs can greatly improve application performance by eliminating the need to compute query access plans. However, a DGTT does not support such application objects.
Application object support is provided by a regular table. However, if the application requires a temporary work area to process a large amount of data a regular table is not suitable for concurrency because it does not provide the necessary data isolation.
The addition of the new CGTT type allows DB2 to support both. Follow each of the action steps on this page to see CGTT's performance benefit over a DGTT.
This example populates each temporary table with similar data 100 times. The performance difference is in favor of CGTTs because unlike DGTTs, they do not need to be recreated for each new connection.
| Isolation | Automatic cleanup | Application Object Support | Performance | |
| Static Table | ||||
| DGTT | ||||
| CGTT |
You should see statement run times after the first action and a graph after the second action.
Please note that if you would like to drop a schema containing a CGTT, you must first manually drop the CGTT. The stored procedure to drop all objects before dropping the schema will not work with CGTT.


Test to see if the advice given in iOS Developer Library - Safari Web Content Guide - Handling Events - Making Elements Clickable is actually still accurate...
Test<span>
From testing on iOS devices, it seems that the advice in Apple's documentation is incorrect - this page uses the exact same code that Apple has as example for making elements clickable, but it works fine without needing to add any empty onclick
or similar...(though there are still certain iOS specifc tweaks necessary in order to get event delegation/bubbling to work correctly)


1. Number of Files Containing Warnings: 6
2. Files Containing Warnings:
/kernel_wrapper2.dp.cpp ; /vmc.dp.cpp ; /main.dp.cpp ; /chi2.dp.cpp ; /cluster.dp.cpp ; /shortcuts.dp.hpp ;
3. Number of Warning Type: 8
4. Warning Code Type:
DPCT1065 ; DPCT1003 ; DPCT1049 ; DPCT1000 ; DPCT1001 ; DPCT1007 ; DPCT1032 ; DPCT1010 ;
5. Total Number of Warnings: 131
6. Distribution Graph:
8. Detailed Warning Information (Before CTA)
| No. | Warning Code | File Path | Project Name | Line Number | Warning message |
|---|---|---|---|---|---|
| 1 | DPCT1065 | /kernel_wrapper2.dp.cpp | test_project | 42 | DPCT1065:3: Consider replacing sycl::nd_item::barrier() with * sycl::nd_item::barrier(sycl::access::fence_space::local_space) for better * performance, if there is no access to global memory. |
| 2 | DPCT1065 | /vmc.dp.cpp | test_project | 82 | DPCT1065:4: Consider replacing sycl::nd_item::barrier() with sycl::nd_item::barrier(sycl::access::fence_space::local_space) for better performance, if there is no access to global memory. |
| 3 | DPCT1065 | /vmc.dp.cpp | test_project | 100 | DPCT1065:5: Consider replacing sycl::nd_item::barrier() with sycl::nd_item::barrier(sycl::access::fence_space::local_space) for better performance, if there is no access to global memory. |
| 4 | DPCT1065 | /main.dp.cpp | test_project | 66 | DPCT1065:0: Consider replacing sycl::nd_item::barrier() with sycl::nd_item::barrier(sycl::access::fence_space::local_space) for better performance, if there is no access to global memory. |
| 5 | DPCT1003 | /kernel_wrapper2.dp.cpp | test_project | 126 | DPCT1003:28: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 6 | DPCT1003 | /chi2.dp.cpp | test_project | 165 | DPCT1003:8: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 7 | DPCT1003 | /chi2.dp.cpp | test_project | 220 | DPCT1003:9: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 8 | DPCT1003 | /chi2.dp.cpp | test_project | 242 | DPCT1003:10: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 9 | DPCT1003 | /chi2.dp.cpp | test_project | 266 | DPCT1003:11: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 10 | DPCT1003 | /chi2.dp.cpp | test_project | 313 | DPCT1003:13: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 11 | DPCT1003 | /cluster.dp.cpp | test_project | 262 | DPCT1003:28: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 12 | DPCT1003 | /cluster.dp.cpp | test_project | 267 | DPCT1003:30: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 13 | DPCT1003 | /cluster.dp.cpp | test_project | 272 | DPCT1003:31: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 14 | DPCT1003 | /cluster.dp.cpp | test_project | 277 | DPCT1003:32: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 15 | DPCT1003 | /cluster.dp.cpp | test_project | 282 | DPCT1003:33: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 16 | DPCT1003 | /cluster.dp.cpp | test_project | 287 | DPCT1003:34: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 17 | DPCT1003 | /cluster.dp.cpp | test_project | 292 | DPCT1003:35: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 18 | DPCT1003 | /cluster.dp.cpp | test_project | 297 | DPCT1003:36: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 19 | DPCT1003 | /cluster.dp.cpp | test_project | 327 | DPCT1003:37: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 20 | DPCT1003 | /cluster.dp.cpp | test_project | 332 | DPCT1003:38: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 21 | DPCT1003 | /cluster.dp.cpp | test_project | 337 | DPCT1003:39: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 22 | DPCT1003 | /cluster.dp.cpp | test_project | 343 | DPCT1003:40: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 23 | DPCT1003 | /cluster.dp.cpp | test_project | 349 | DPCT1003:41: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 24 | DPCT1003 | /cluster.dp.cpp | test_project | 356 | DPCT1003:42: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 25 | DPCT1003 | /cluster.dp.cpp | test_project | 365 | DPCT1003:43: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 26 | DPCT1003 | /cluster.dp.cpp | test_project | 374 | DPCT1003:44: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 27 | DPCT1003 | /cluster.dp.cpp | test_project | 386 | DPCT1003:45: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 28 | DPCT1003 | /cluster.dp.cpp | test_project | 393 | DPCT1003:46: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 29 | DPCT1003 | /cluster.dp.cpp | test_project | 413 | DPCT1003:47: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 30 | DPCT1003 | /cluster.dp.cpp | test_project | 419 | DPCT1003:48: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 31 | DPCT1003 | /cluster.dp.cpp | test_project | 425 | DPCT1003:49: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 32 | DPCT1003 | /cluster.dp.cpp | test_project | 431 | DPCT1003:50: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 33 | DPCT1003 | /cluster.dp.cpp | test_project | 439 | DPCT1003:51: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 34 | DPCT1003 | /cluster.dp.cpp | test_project | 447 | DPCT1003:52: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 35 | DPCT1003 | /cluster.dp.cpp | test_project | 456 | DPCT1003:53: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 36 | DPCT1003 | /cluster.dp.cpp | test_project | 466 | DPCT1003:54: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 37 | DPCT1003 | /cluster.dp.cpp | test_project | 487 | DPCT1003:55: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 38 | DPCT1003 | /cluster.dp.cpp | test_project | 493 | DPCT1003:56: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 39 | DPCT1003 | /cluster.dp.cpp | test_project | 499 | DPCT1003:57: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 40 | DPCT1003 | /cluster.dp.cpp | test_project | 507 | DPCT1003:58: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 41 | DPCT1003 | /cluster.dp.cpp | test_project | 515 | DPCT1003:59: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 42 | DPCT1003 | /cluster.dp.cpp | test_project | 524 | DPCT1003:60: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 43 | DPCT1003 | /cluster.dp.cpp | test_project | 534 | DPCT1003:61: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 44 | DPCT1003 | /cluster.dp.cpp | test_project | 624 | DPCT1003:62: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 45 | DPCT1003 | /cluster.dp.cpp | test_project | 630 | DPCT1003:63: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 46 | DPCT1003 | /cluster.dp.cpp | test_project | 637 | DPCT1003:64: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 47 | DPCT1003 | /cluster.dp.cpp | test_project | 644 | DPCT1003:65: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 48 | DPCT1003 | /cluster.dp.cpp | test_project | 761 | DPCT1003:66: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 49 | DPCT1003 | /cluster.dp.cpp | test_project | 818 | DPCT1003:67: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 50 | DPCT1003 | /cluster.dp.cpp | test_project | 861 | DPCT1003:70: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 51 | DPCT1003 | /cluster.dp.cpp | test_project | 891 | DPCT1003:71: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 52 | DPCT1003 | /cluster.dp.cpp | test_project | 914 | DPCT1003:72: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 53 | DPCT1003 | /cluster.dp.cpp | test_project | 959 | DPCT1003:73: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 54 | DPCT1003 | /cluster.dp.cpp | test_project | 997 | DPCT1003:74: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 55 | DPCT1003 | /cluster.dp.cpp | test_project | 1037 | DPCT1003:75: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 56 | DPCT1003 | /cluster.dp.cpp | test_project | 1092 | DPCT1003:76: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 57 | DPCT1003 | /cluster.dp.cpp | test_project | 1213 | DPCT1003:79: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 58 | DPCT1003 | /cluster.dp.cpp | test_project | 1218 | DPCT1003:80: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 59 | DPCT1003 | /cluster.dp.cpp | test_project | 1223 | DPCT1003:81: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 60 | DPCT1003 | /vmc.dp.cpp | test_project | 270 | DPCT1003:10: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 61 | DPCT1003 | /vmc.dp.cpp | test_project | 275 | DPCT1003:11: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 62 | DPCT1003 | /vmc.dp.cpp | test_project | 280 | DPCT1003:12: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 63 | DPCT1003 | /vmc.dp.cpp | test_project | 285 | DPCT1003:13: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 64 | DPCT1003 | /vmc.dp.cpp | test_project | 290 | DPCT1003:14: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 65 | DPCT1003 | /vmc.dp.cpp | test_project | 295 | DPCT1003:15: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 66 | DPCT1003 | /vmc.dp.cpp | test_project | 300 | DPCT1003:16: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 67 | DPCT1003 | /vmc.dp.cpp | test_project | 305 | DPCT1003:17: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 68 | DPCT1003 | /vmc.dp.cpp | test_project | 310 | DPCT1003:18: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 69 | DPCT1003 | /vmc.dp.cpp | test_project | 316 | DPCT1003:19: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 70 | DPCT1003 | /vmc.dp.cpp | test_project | 322 | DPCT1003:20: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 71 | DPCT1003 | /vmc.dp.cpp | test_project | 407 | DPCT1003:22: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 72 | DPCT1003 | /vmc.dp.cpp | test_project | 439 | DPCT1003:23: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 73 | DPCT1003 | /vmc.dp.cpp | test_project | 444 | DPCT1003:24: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 74 | DPCT1003 | /vmc.dp.cpp | test_project | 449 | DPCT1003:25: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 75 | DPCT1003 | /vmc.dp.cpp | test_project | 454 | DPCT1003:26: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 76 | DPCT1003 | /vmc.dp.cpp | test_project | 459 | DPCT1003:27: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 77 | DPCT1003 | /vmc.dp.cpp | test_project | 464 | DPCT1003:28: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 78 | DPCT1003 | /vmc.dp.cpp | test_project | 469 | DPCT1003:29: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 79 | DPCT1003 | /vmc.dp.cpp | test_project | 474 | DPCT1003:30: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 80 | DPCT1003 | /vmc.dp.cpp | test_project | 479 | DPCT1003:31: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 81 | DPCT1003 | /vmc.dp.cpp | test_project | 484 | DPCT1003:32: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 82 | DPCT1003 | /vmc.dp.cpp | test_project | 489 | DPCT1003:33: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 83 | DPCT1003 | /main.dp.cpp | test_project | 217 | DPCT1003:1: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 84 | DPCT1003 | /main.dp.cpp | test_project | 223 | DPCT1003:3: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 85 | DPCT1003 | /main.dp.cpp | test_project | 232 | DPCT1003:5: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 86 | DPCT1003 | /main.dp.cpp | test_project | 242 | DPCT1003:7: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 87 | DPCT1003 | /main.dp.cpp | test_project | 250 | DPCT1003:9: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 88 | DPCT1003 | /main.dp.cpp | test_project | 260 | DPCT1003:11: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 89 | DPCT1003 | /main.dp.cpp | test_project | 269 | DPCT1003:13: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 90 | DPCT1003 | /main.dp.cpp | test_project | 336 | DPCT1003:21: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 91 | DPCT1003 | /shortcuts.dp.hpp | test_project | 28 | DPCT1003:29: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 92 | DPCT1003 | /shortcuts.dp.hpp | test_project | 32 | DPCT1003:209: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 93 | DPCT1003 | /shortcuts.dp.hpp | test_project | 46 | DPCT1003:30: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 94 | DPCT1003 | /shortcuts.dp.hpp | test_project | 50 | DPCT1003:210: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 95 | DPCT1003 | /shortcuts.dp.hpp | test_project | 61 | DPCT1003:31: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 96 | DPCT1003 | /shortcuts.dp.hpp | test_project | 65 | DPCT1003:211: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 97 | DPCT1003 | /shortcuts.dp.hpp | test_project | 79 | DPCT1003:32: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 98 | DPCT1003 | /shortcuts.dp.hpp | test_project | 83 | DPCT1003:212: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 99 | DPCT1003 | /shortcuts.dp.hpp | test_project | 94 | DPCT1003:33: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 100 | DPCT1003 | /shortcuts.dp.hpp | test_project | 98 | DPCT1003:213: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 101 | DPCT1003 | /shortcuts.dp.hpp | test_project | 109 | DPCT1003:34: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 102 | DPCT1003 | /shortcuts.dp.hpp | test_project | 113 | DPCT1003:214: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 103 | DPCT1003 | /shortcuts.dp.hpp | test_project | 126 | DPCT1003:35: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 104 | DPCT1003 | /shortcuts.dp.hpp | test_project | 130 | DPCT1003:215: Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code. |
| 105 | DPCT1049 | /kernel_wrapper2.dp.cpp | test_project | 141 | DPCT1049:3: The workgroup size passed to the SYCL kernel may exceed the limit. To get the device limit, query info::device::max_work_group_size. Adjust the workgroup size if needed. |
| 106 | DPCT1049 | /chi2.dp.cpp | test_project | 296 | DPCT1049:12: The workgroup size passed to the SYCL kernel may exceed the limit. To get the device limit, query info::device::max_work_group_size. Adjust the workgroup size if needed. |
| 107 | DPCT1049 | /cluster.dp.cpp | test_project | 873 | DPCT1049:68: The workgroup size passed to the SYCL kernel may exceed the limit. To get the device limit, query info::device::max_work_group_size. Adjust the workgroup size if needed. |
| 108 | DPCT1049 | /cluster.dp.cpp | test_project | 928 | DPCT1049:69: The workgroup size passed to the SYCL kernel may exceed the limit. To get the device limit, query info::device::max_work_group_size. Adjust the workgroup size if needed. |
| 109 | DPCT1049 | /main.dp.cpp | test_project | 290 | DPCT1049:15: The workgroup size passed to the SYCL kernel may exceed the limit. To get the device limit, query info::device::max_work_group_size. Adjust the workgroup size if needed. |
| 110 | DPCT1049 | /main.dp.cpp | test_project | 315 | DPCT1049:18: The workgroup size passed to the SYCL kernel may exceed the limit. To get the device limit, query info::device::max_work_group_size. Adjust the workgroup size if needed. |
| 111 | DPCT1000 | /chi2.dp.cpp | test_project | 228 | DPCT1000:1: Error handling if-stmt was detected but could not be rewritten. |
| 112 | DPCT1000 | /chi2.dp.cpp | test_project | 249 | DPCT1000:3: Error handling if-stmt was detected but could not be rewritten. |
| 113 | DPCT1000 | /chi2.dp.cpp | test_project | 275 | DPCT1000:5: Error handling if-stmt was detected but could not be rewritten. |
| 114 | DPCT1000 | /chi2.dp.cpp | test_project | 321 | DPCT1000:7: Error handling if-stmt was detected but could not be rewritten. |
| 115 | DPCT1001 | /chi2.dp.cpp | test_project | 234 | DPCT1001:0: The statement could not be removed. |
| 116 | DPCT1001 | /chi2.dp.cpp | test_project | 255 | DPCT1001:2: The statement could not be removed. |
| 117 | DPCT1001 | /chi2.dp.cpp | test_project | 281 | DPCT1001:4: The statement could not be removed. |
| 118 | DPCT1001 | /chi2.dp.cpp | test_project | 327 | DPCT1001:6: The statement could not be removed. |
| 119 | DPCT1007 | /cluster.dp.cpp | test_project | 1119 | DPCT1007:77: Migration of this CUDA API is not supported by the Intel(R) * DPC++ Compatibility Tool. |
| 120 | DPCT1007 | /vmc.dp.cpp | test_project | 56 | DPCT1007:3: Migration of this CUDA API is not supported by the Intel(R) DPC++ Compatibility Tool. |
| 121 | DPCT1032 | /cluster.dp.cpp | test_project | 1209 | DPCT1032:78: Different generator is used, you may need to adjust the code. |
| 122 | DPCT1032 | /vmc.dp.cpp | test_project | 34 | DPCT1032:0: Different generator is used, you may need to adjust the code. |
| 123 | DPCT1032 | /vmc.dp.cpp | test_project | 40 | DPCT1032:1: Different generator is used, you may need to adjust the code. |
| 124 | DPCT1032 | /vmc.dp.cpp | test_project | 50 | DPCT1032:2: Different generator is used, you may need to adjust the code. |
| 125 | DPCT1032 | /vmc.dp.cpp | test_project | 166 | DPCT1032:6: Different generator is used, you may need to adjust the code. |
| 126 | DPCT1032 | /vmc.dp.cpp | test_project | 189 | DPCT1032:7: Different generator is used, you may need to adjust the code. |
| 127 | DPCT1032 | /vmc.dp.cpp | test_project | 209 | DPCT1032:8: Different generator is used, you may need to adjust the code. |
| 128 | DPCT1032 | /vmc.dp.cpp | test_project | 265 | DPCT1032:9: Different generator is used, you may need to adjust the code. |
| 129 | DPCT1032 | /vmc.dp.cpp | test_project | 326 | DPCT1032:21: Different generator is used, you may need to adjust the code. |
| 130 | DPCT1010 | /main.dp.cpp | test_project | 302 | DPCT1010:16: SYCL uses exceptions to report errors and does not use the error codes. The call was replaced with 0. You need to rewrite this code. |
| 131 | DPCT1010 | /main.dp.cpp | test_project | 328 | DPCT1010:19: SYCL uses exceptions to report errors and does not use the error codes. The call was replaced with 0. You need to rewrite this code. |
9. Detailed Warning Information (After CTA)
| No. | Warning Code | File Path | Project Name | Line Number | Warning message |
|---|---|---|---|---|---|
| 1 | DPCT1007 | /cluster.dp.cpp | destination_dir | 837 | DPCT1007:77: Migration of this CUDA API is not supported by the Intel(R) * DPC++ Compatibility Tool. |
| 2 | DPCT1007 | /vmc.dp.cpp | destination_dir | 56 | DPCT1007:3: Migration of this CUDA API is not supported by the Intel(R) DPC++ Compatibility Tool. |
| 3 | DPCT1010 | /main.dp.cpp | destination_dir | 266 | DPCT1010:16: SYCL uses exceptions to report errors and does not use the error codes. The call was replaced with 0. You need to rewrite this code. |
| 4 | DPCT1010 | /main.dp.cpp | destination_dir | 295 | DPCT1010:19: SYCL uses exceptions to report errors and does not use the error codes. The call was replaced with 0. You need to rewrite this code. |
10. Detailed Recommendation Information (After CTA)
| No. | Recommendation Code | File Path | Project Name | Line Number | Recommendation message |
|---|---|---|---|---|---|
| 1 | CTA1065 | /kernel_wrapper2.dp.cpp | destination_dir | 42 | CTA1065:3: CTA recommended to ignore this warning. but you can also consider replacing 'item_ct1.barrier();' with 'item_ct1.barrier(sycl::access::fence_space::local_space);' to have have better performance if the kernel function has no memory accesses in the global memory. |
| 2 | CTA1065 | /vmc.dp.cpp | destination_dir | 82 | CTA1065:4: CTA recommended to ignore this warning. but you can also consider replacing 'item_ct1.barrier();' with 'item_ct1.barrier(sycl::access::fence_space::local_space);' to have have better performance if the kernel function has no memory accesses in the global memory. |
| 3 | CTA1065 | /vmc.dp.cpp | destination_dir | 102 | CTA1065:5: CTA recommended to ignore this warning. but you can also consider replacing 'item_ct1.barrier();' with 'item_ct1.barrier(sycl::access::fence_space::local_space);' to have have better performance if the kernel function has no memory accesses in the global memory. |
| 4 | CTA1065 | /main.dp.cpp | destination_dir | 66 | CTA1065:0: CTA recommended to ignore this warning. but you can also consider replacing 'item_ct1.barrier();' with 'item_ct1.barrier(sycl::access::fence_space::local_space);' to have have better performance if the kernel function has no memory accesses in the global memory. |
| 5 | CTA1000 | /chi2.dp.cpp | destination_dir | 217 | CTA1000:1: Base on the experience, strongly recommended to ignore this warning. |
| 6 | CTA1000 | /chi2.dp.cpp | destination_dir | 231 | CTA1000:3: Base on the experience, strongly recommended to ignore this warning. |
| 7 | CTA1000 | /chi2.dp.cpp | destination_dir | 248 | CTA1000:5: Base on the experience, strongly recommended to ignore this warning. |
| 8 | CTA1000 | /chi2.dp.cpp | destination_dir | 287 | CTA1000:7: Base on the experience, strongly recommended to ignore this warning. |
| 9 | CTA1001 | /chi2.dp.cpp | destination_dir | 222 | CTA1001:0: Base on the experience, strongly recommended to ignore this warning. |
| 10 | CTA1001 | /chi2.dp.cpp | destination_dir | 236 | CTA1001:2: Base on the experience, strongly recommended to ignore this warning. |
| 11 | CTA1001 | /chi2.dp.cpp | destination_dir | 253 | CTA1001:4: Base on the experience, strongly recommended to ignore this warning. |
| 12 | CTA1001 | /chi2.dp.cpp | destination_dir | 292 | CTA1001:6: Base on the experience, strongly recommended to ignore this warning. |
| 13 | CTA1032 | /cluster.dp.cpp | destination_dir | 927 | CTA1032:78: Base on the experience, recommended to ignore this warning. If it didn't work, adjust the code. |
| 14 | CTA1032 | /vmc.dp.cpp | destination_dir | 34 | CTA1032:0: Base on the experience, recommended to ignore this warning. If it didn't work, adjust the code. |
| 15 | CTA1032 | /vmc.dp.cpp | destination_dir | 40 | CTA1032:1: Base on the experience, recommended to ignore this warning. If it didn't work, adjust the code. |
| 16 | CTA1032 | /vmc.dp.cpp | destination_dir | 50 | CTA1032:2: Base on the experience, recommended to ignore this warning. If it didn't work, adjust the code. |
| 17 | CTA1032 | /vmc.dp.cpp | destination_dir | 170 | CTA1032:6: Base on the experience, recommended to ignore this warning. If it didn't work, adjust the code. |
| 18 | CTA1032 | /vmc.dp.cpp | destination_dir | 193 | CTA1032:7: Base on the experience, recommended to ignore this warning. If it didn't work, adjust the code. |
| 19 | CTA1032 | /vmc.dp.cpp | destination_dir | 213 | CTA1032:8: Base on the experience, recommended to ignore this warning. If it didn't work, adjust the code. |
| 20 | CTA1032 | /vmc.dp.cpp | destination_dir | 269 | CTA1032:9: Base on the experience, recommended to ignore this warning. If it didn't work, adjust the code. |
| 21 | CTA1032 | /vmc.dp.cpp | destination_dir | 285 | CTA1032:21: Base on the experience, recommended to ignore this warning. If it didn't work, adjust the code. |
11. Number of warnings have been fixed: 106
12. Number of warnings have CTA recommendation: 21
13. Comparison of before & after :
vmc.html


[1]
a five minute walk during which you feel completely safe walking around -/: even at night .
[2]
a five minute walk away from the piaza vieja , and much of the old town .


Downloads
Deposits
Ingest state
View archive size
User database statistics
Uptime
Currently depositing


| DOSE: T+ 0:00 |
1 hit |
oral |
LSD |
(blotter / tab) |
| T+ 0:15 |
0.25 g |
insufflated |
PCP |
(powder / crystals) |
This is my first and so far only experiance with the chemical drug LSD, 1 blotter tab with an green alien face on it.
Well I was 16 at the time and I had a week earlier procured 1 hit of acid from a friend of mine. I had decided to do it on a saturday night at a friends house. He had some pot and I had a cap of pcp with me in case the acid was a dude. Wasn't the best settings or anything, but I wanted to use the acid sooner then later in case it wore off somehow before I got the chance to take it (acid is VERY hard to come by in my town, most of the time being blank paper and I don't know how to get it anywhere else at my age).
Time: approximately 12:00 (midnight). I placed the acid on my tongue and let it sit for 15 minutes until it got squishy enough to swallow.  During this time I gave my friend a 1/4 gram of my pcp and then he smoked a joint. I had been hoping to have a very spiritual experiance as best I could but I realised given my surroundings, I basically had thrown away that possibility. Oh and by the way, we were watching the movie Tremors.
12:15. Swallowed the blotter tab and snorted 1/4 of PCP in 4 itty bitty lines. My friend is a horrible person to get stoned with (he mellows out for maybe 15 minutes then goes to bed) and that is exactly what he did..WENT TO BED! ahh so not fun. Anyway, I continued watching the movie for awhile. I wondered if I would have to set the effects into play myself so I started staring at a cartoonish picture of a devil my friend has painted on his wall across from the 2 seater couch in his room. Staring...staring...staring.
12:30. I had been trying to make the picture talk to me or pop out at me but to no effect so I started watching the movie again. After probably another 15 minutes i just casually glanced back up at this devil picture to see it looking 3D. It was a flat picture but it seemed like i could stick my hand underneath it (which is what I tried to do). No matter what angle I looked at it from, I could see below it! At this point I was incredibly happy to know I had gotten real acid and this increased my buzz because it put me in a good mood. I continued watched the movie. And around now the tracers kicked in.
12:45. At this point without me even realising it, reality had totally changed. It was the scene in the movie the town starts getting attacked my tremors (the scene of the girl in her underwear running is all I can remember). Everything seemed weird but I could not put my finger on it. Then during the scene of them on their roofs, everytime someone would touch any thing, roots would shoot out of their fingers and encircle what their were touching, causing it to crack apart but when they removed their hand it would be perfectly normal again. This took place for roughly 15-30 minutes. Then I had to pee...REALLY bad. I probably urinated 5 times that night which is weird.
1:05. Stumbled my way out of his small room and into the dark hallway. Luckily for me the bathroom is directly outside his bedroom, but I was worried if walking in the dark would send me on a bad trip. Keeping the 'it's only a drug' thought in my mind probably saved me many times that night. So as soon as I walk into the bathroom I look at myself in the mirror. WHOA! I'm totally made up of hues of purple. Different shades for every part of my body. And I'm vibrating. It looks like I'm standing on a giant vibrator because of the way I'm just sort of 'buzzing'. I was intrigued by this effect for a long time and kept staring at my hands and face move in the mirror. I leaned in closer to the mirror to get a better look and I put out my hand and it touched the mirror, causing a rippling, watery effect. This effect would also continue throughout the experiance everytime I touched something or took a step.
 I realised that is not what I came for and started to pee. The stream of urine was actually kind of boring, the only interesting thing was that the yellowish tint of it caused it to grow incredibly bright. I then inspected around the toilet to make sure that I hadn't actually 'miss-fired' in my drug induced state and was pleased to find that I had not. I sat down on the toilet (with the cover down and pants up) because I wanted to enjoy the bright and clean feeling of this room (nice bathrooms RULE).
I kept stepping on the floor and watching the waves ripping out and pass up the wall. Very cool. I really do not know how long I was here. I remembered about the movie then and decided to get up but when I put my hand on the counter top, there was a giant ripple which shook me and I sat back down. It didn't frighten me though. I looked at my hand and countertop and started tapping beats out with my fingers. Each tap would send out a different note with the waves. Everything in the bathroom was almost heavenly bright. My guess is that this was caused by the linolium floor and white walls and ceiling.
After I got bored of this I got back to my friends room with little incidence (just trying hard to get back on to the couch in a cluttered dark small room. I didn't want to turn on the lights to awaken my friend). Watching the movie, I realised hardly any time had passed at all (maybe 5 minutes, 10 at the most, where as it felt like hours in the bathroom).
1:20. move ahead a few minutes. I was extremely disinterested in the movie and needed some way to please myself. I became interested in knowing what sharp pains felt like while on this drug. I found a safety pin I had in my sweater and started poking my self over my chest (after I had taken my shirt off). This feeling pleased me emmensly and I continued poking my chest for some time.
I had to pee again and I put the safety pin aside and got up. I took off my pants so I was only in my boxers (for comfort). When I opened the door of my friends room I heard a very strange and slightly scary noise.  That part didn't bothered me but I was scared that seeing a dog might make me freak out so I hurried into the bathroom.
After I peed I stood up (I sat down because I was too wobbly at this point, maybe an effect of the PCP). When I took a step, the ripples set out again but bounced off the walls and headed straight back for my foot. As soon as they all collided with my foot, my foot seemed to swell up to giant size and turn blackish. It was incredibly painful and I fought with all my strength to keep it from traveling up my leg and hopefully push it out (I was just keeping my fists clenched, teeth gritted, and foot planted firmly. I was standing almost as if I was about to take off running, putting all my weight on my 'infected' foot). I continued to fight with this black substance for quite some time, each of us gaining an inch or 2 then losing it. Eventually it took control of me. It swept up my leg and into my chest and at this point things became a total mind trip.
*It might also be important(or not) to note that now I have no clue what time it was, I only know I finally fell asleep around 6 in the morning*
As the thing 'infected' me, I felt stronger and wiser. More powerful. I sensed I had more control over the universe and the minds of people. I put myself into a trance like state (still standing in the bathroom), with my eyes closed. I found myself in an alley behind a man who couldn't see me. I stepped up closer to him and plunged my hand directly into his back, grabbing hold of his spinal colume. I pulled it out of his back, his head still attached at the top. I had killed this man. I found another man and started taking out organs one by one by plunging my hand into his body, ripping his stomach apart in the process. It was so incredibly fun and I thought I was actually doing this, but without the possibility of getting caught because of my power.
This next piece I am a little fuzzy over. I somehow remeber folding inside myself. Just bending over and twisting in that direction until I somehow came to be standing right side up again. I still had my eyes closed though and this was all in my head.
There was a lot more to that experiance of killing and dismembering then I can remember because it has been over a year but I just remember it was a very strong and powerful feeling I was enjoying, and one of the funner moments of the trip.
I decided to see what else I could do with my powers. There was this beautiful girl I had a crush on who was my age. We had gone out for a few months and we had been the first sexual experiance for each of us (just using hands and mouths on each other, nothing more). But we had broken up. I thought strongly of her and all the sudden I woke up in her bed. I could only see faintly threw the moonlight shining in her window but I could tell I was in her body, controlling it. I did not sense her presense at all, as if she was still sleeping in her subconscience. I decided I wanted to know what an orgasm felt from the female body. I took off my bra and panties and started rubbing my clitorus.
The feeling was so direct and pleasent that I was convinced totally that this wasn't just the trip, that LSD actually unlocked secret doorways to travel through in our minds. Connecting our minds on a higher level, leaving our bodies on a lower one. I felt that because my mind was on this higher levels, and the minds of most people were sleeping, that they would not be aware of I 'borrowed' their bodies and that is what allowed me to do what I was doing.
Back to the experiance. I started inserting fingers into my vagina and it was so great feeling. I continued at this until I had an intense orgasm. It felt like it was the first time I've ever had an orgasm which probably had to do with the body I was in.  After awhile I decided to let her have it back and climbed into bed again and closed my eyes. I immediatly came to, standing in my boxers in the bathroom. Everything was still bright. I checked for ejaculate stains in my boxers to see if I might have actually had an orgasm but I didn't. It was truely all in my mind, and in her body.
Anyway I walked back to my friends room and the movie credits were rolling at this point so with the faint light, I found a piece of cardboard and a pencil and drew a face and body on this cardboard. I had a name for him but I forget it now. I was trying desperately to get him to talk to me but it wouldn't, which really disappointed me. I then laid on my back and started poking myself with the pin again. I started moving the pin around my body, to my arms, hands, cheeks and nose, forhead, lips and tongue.  It was very 'sharp' but also pleasent in a way. I then turned the tv to the channel that tells you whats on for the next hour and a half (well it came on that channel when I turned the VCR off) and with this bluish light(no sound) I watched my skin as I poked it.
 When I pulled it out a gusher of blood came spurting out like a freshly tapped vein of oil like you see in cartoons. Then the blood settled down and formed a pool which pulled itself into a drop centered over the poked hole. Then the blood started seeping down into the skin and spreading around the patterns of the hair and mini-crevices of my flesh.
Then it was gone. Suddenly I was sober again. I looked at my arm and it was only a speck of red..not even bleeding.
I turned off the TV and lay down. At this moment the acid reaffirmed its presense in me and all the lights in the room, from the flashing lighthouse shing in the window to the lights on the tv and vcr started swimming around me. The vcr/tv lights became a UFO and the lighthouse lights ended up becoming 'light' fish swimming around the top of the room. I watched all this for awhile but then I had to pee again.
As I stood up I could think semi-clearly finally and I felt groggy and my mind felt misty. I didn't even feel totally connected to reality at this time. I stood in front of the toilet and started to pee, looking out the window directly in front of me at the lights of houses across the bay.
There was three of these masked men, wearing black clokes and a perverted warped version of the scream-movie mask. The mask was a lot longer, reaching mid chest and coming to a point, with a slit running from the point vertically up to the middle of the mask. A black dot for each eye and that was it. Hooded black cloaks and that mask. I just stared at the 3 faces for awhile and then looked down and pulled my boxers over my penis.
As soon as I looked straight up, one of the masked men just sort of 'swept' aside, and I got the feeling it was coming after me. I did not feel safe anymore so I hurridly went into my friends room again and closed the door. I looked out the window to see if the faces would appear but became intranced in the light of the lighthouse. It's rotation caused it to appear once every 4-5 seconds and everytime it would get brighter, then after it lit up the sky would slowly get darker, this continued until I lay back down and started playing with the pin for awhile, poking myself. This got boring so I picked up the cardboard man.
I started talking to him even if he wasn't going to talk back. I continued a lengthy discussion with him for some time about my feelings and life and how my trip was, telling him of the murder experiances I had just earlier. I was feeling slightly tired so I decided I would go to sleep.
After laying in bed for some time, unable to fall asleep, I realised what was wrong. I couldn't let the cardboard man live! He would be a doorway to this upper level of existence and he could only exist when a human was at this level. If I was sober and he was around, it would have negative effects of reality! The thoughts were so frightening to me at the time that I quickly sat up and grabbed him, then took a safety pin. I told him how sorry I was and that I had to do it, even though I didn't want to. He still wouldn't talk to me. I said my final farewells and drove the pin through his chest. I layed him on the table beside the couch and, content, fell asleep.
The next morning I awoke not remembering much of this. Then as I turned over and saw the strange cardboard thing with a drawing of a man on it with a safety pin stuck in its chest, most of my trip came back. During that morning more and more came back and I kept relating it all to my friend, who seemed really disinterested.
I have been wanted to do acid again since then, to finally experiance a true trip that would lead me to question my existense and ponder the questions of reality. This trip was basically nothing more then a few wierd visuals and one really odd 'out of body' experiance and, while really intreging, it was not what I truly wanted. I blame the experiance on the bad environment and lack of 'trip toys' that I had access to. I have yet to find more acid besides getting dooped into buying plain paper, though I have searched high and low since this experiance.
I want to think I learned something from this, but I don't think I could have. The experiance was nothing more to me then a vacation from normality, when I was searching for a different path of reality. Hopefully I will find another chance to experiance this wonderful drug the way I really want to.
The one thing I don't understand is how high I became off of only one tab. The only thing I can guess is that it was either very strong, or if what a friend told me, I actually took a quadruple tab, because he told me most tabs are usually the size of a pencil eraser but square, while mine was the size of a medium sized postage stamp.
Anyway, I have done more research into the drug, and into spirituality and psycology in general. I know more about myself and have a clearer understanding of how I personally view life and the mind. Hopefully this knowledge will benefit whatever future experiances I have with LSD, hopefully soon :).
OH, I just realised I did learn something, actually two things from this experiance. Killing can be fun without the prisons of morality, judgement, and fear, and women must have a ton more fun then men do masterbating!!
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Sections in this article
The --automation
argument allows to apply a set of actions (eg. button press)
when a condition is met (usually some text is displayed on the screen). It is
especially useful to automate app testing.
A JSON file is expected (either a JSON document or a path prefixed by file:
).
Rules
Rules are a list of rules. Each rule is a dictionary with the following valid keys:
text
: expected text (string)regexp
: regular expression matching the expected text (string)x
: x-coordinate of the text (int)y
: y-coordinate of the text (int)conditions
: list of conditions, described belowactions
: list of actions, described below
Each key is optional.
Actions
4 actions are available:
[ "button", num, pressed ]
: press (pressed=true
) or release (pressed=false
) a button (num=1
for left,num=2
for right)[ "finger", x, y, touched ]
: touch (touched=true
) or release (touched=false
) the screen (x
andy
coordinates)[ "setbool", varname, value ]
: set a variable whose name isvarname
to a boolean value (eithertrue
orfalse
)[ "exit" ]
: exit speculos
The actions of a rule are executed if and only if each rule option matches.
These actions are applied sucessively according to the ordering of the actions
list.
The actions of the first rule matched are applied. Further matching rules are discarded (it allows to implement a default rule).
Conditions
Conditions are a list of variables of tuple (varname, value)
where varname
is a variable name and value
a boolean. These variables are set by the
setbool
action and by default an unset variable is equal to false
.
If a non-empty conditions
list is specified in the rule, each condition should
be met (as well as the other options) to allow the actions to be applied.
Example
As an example, one can consider the following automation JSON file:
{
"version": 1,
"rules": [
{
"text": "Application",
"x": 35,
"y": 3,
"conditions": [
[ "seen", false ]
],
"actions": [
[ "button", 2, true ],
[ "button", 2, false ],
[ "setbool", "seen", true ]
]
},
{
"regexp": "\\d+",
"actions": [
[ "exit" ]
]
},
{
"actions": [
[ "setbool", "default_match", true ]
]
}
]
}
The first rule matches only if:
- the text displayed at
(35, 3)
isApplication
- this rule was never matched before (because the variable
seen
is set totrue
in theactions
and expected to befalse
in theconditions
)
If the first rule is matched, the right button (2
) is pressed then released
(true
then false
) and the variable seen
is set to true
.
The second rules matches if the text is a number (regular expression \d+
)
displayed at any coordinates (no x
nor y
specified). The action exit
makes
speculos exit without any confirmation.
The last rule is a default rule (there are no options). If no previous rule is
matched, the variable default_match
is set to true
.


Software Allowing Hackers To Film You Watching Porn On Laptop Uncovered
by Julia BanimHackers are using malicious software to film people through their webcams while they view porn, security experts have warned.
Advertisements
For the hack to work, the sinister software has to be installed on a person’s PC or laptop. It can then be used to launch the webcam, record footage and send it over to a ‘criminal server’.
The hackers will then use the videos to blackmail those affected, threatening to send it to a person’s family.
Advertisements
The software known as ‘PsiXBot’ can often be loaded to a computer without a person’s knowledge, and may be installed through a person using less reputable websites or by downloading infected videos, music files or software. Only computers running Microsoft Windows are thought to be affected.
Once installed, PsiXBot sits in the background of a computer waiting for a web browser page title containing a specific porn related keyword. Once the page is opened, the filming will begin, German publication Bild reports.
Users may be made aware of the situation after receiving an email containing words such as ‘can publish everything’, ‘dirty video of you’, ‘I recorded you’ and ‘pervert’.
Hackers will threaten to send footage to a person’s family if they don’t pay up, often requesting money in the form of untraceable Bitcoin.
Advertisements
Hackers threatening to sending videos of a person watching an porn is referred to as ‘sextortion’ and has been around for quite a while. However, the hackers’ ability to capture actual footage is a relatively recent development.
Prior to the launch of the new PornModule, hackers would claim they had videos of the user, however such footage rarely actually existed.
Software expert Werner Thalmeier, from security firm Proofpoint, said:
Advertisements
PsiXBot has been around for several years but a new module has been added that allows hackers to capture video.
[…] Now the threat is real and the program has already been distributed thousands of times.
Mr Thalmeier added:
This software is a semi-professional tool and much more dangerous than, say, attacks with manipulated e-mails, because the hidden program on the computer can hardly be found with a virus scanner.
 This could reportedly take hours to run, depending on the hard drive capacity.
However, a computer expert from another security company has noted hackers who claim to have your details can often be bluffing.
Paul Ducklin, computer security expert at Sophos, has claimed almost all cases turn out to false, the MailOnline reports.
According to Mr Ducklin, opportunistic extortionists will often convince a person they have gained webcam access by giving private information that has actually just been gained through a data breach and leak.
Jules studied English Literature with Creative Writing at Lancaster University before earning her masters in International Relations at Leiden University in The Netherlands (Hoi!). She then trained as a journalist through News Associates in Manchester. Jules has previously worked as a mental health blogger, copywriter and freelancer for various publications.