We have seen how to create hypertext link using text and we also learnt how to use images in our webpages. Now, we will learn how to use images to create hyperlinks.
It's simple to use an image as hyperlink. We just need to use an image inside hyperlink at the place of text as shown below −
<!DOCTYPE html>   <title>Image Hyperlink Example</title>
Click following link

This was the simplest way of creating hyperlinks using images. Next we will see how we can create Mouse-Sensitive Image Links.
The HTML and XHTML standards provides a feature that lets you embed many different links inside a single image. You can create different links on the single image based on different coordinates available on the image. Once different links are attached to different coordinates, we can click different parts of the image to open target documents. Such mouse-sensitive images are known as image maps.
There are two ways to create image maps −
Server-side image maps − This is enabled by the ismap attribute of the  tag and requires access to a server and related image-map processing applications.
Client-side image maps − This is created with the usemap attribute of the  tag, along with corresponding <map> and <area> tags.
Here you simply put your image inside a hyper link and use ismap attribute which makes it special image and when the user clicks some place within the image, the browser passes the coordinates of the mouse pointer along with the URL specified in the  tag to the web server. The server uses the mouse-pointer coordinates to determine which document to deliver back to the browser.
When ismap is used, the href attribute of the containing  tag must contain the URL of a server application like a cgi or PHP script etc. to process the incoming request based on the passed coordinates.
The coordinates of the mouse position are screen pixels counted from the upper-left corner of the image, beginning with (0,0). The coordinates, preceded by a question mark, are added to the end of the URL.
For example, if a user clicks 20 pixels over and 30 pixels down from the upper-left corner of the following image −
Which has been generated by the following code snippet −
<!DOCTYPE html>   <title>ISMAP Hyperlink Example</title>
Click following link
     »
Then the browser sends the following search parameters to the web server which can be processed by ismap.cgi script or map file and you can link whatever documents you like to these coordinates −
/cgi-bin/ismap.cgi?20,30
This way you can assign different links to different coordinates of the image and when those coordinates are clicked, you can open corresponding linked document.
Note − You will learn CGI programming when you will study Perl programming. You can write your script to process these passed coordinates using PHP or any other script as well. For now, let's concentrate on learning HTML and later you can revisit this section.
Client side image maps are enabled by the usemap attribute of the  tag and defined by special <map> and <area> extension tags.
The image that is going to form the map is inserted into the page using the  tag as a normal image, except it carries an extra attribute called usemap. The value of the usemap attribute is the value which will be used in a <map> tag to link map and image tags. The <map> along with <area> tags define all the image coordinates and corresponding links.
The <area> tag inside the map tag, specifies the shape and the coordinates to define the boundaries of each clickable hotspot available on the image. Here's an example from the image map −
<!DOCTYPE html>   <title>USEMAP Hyperlink Example</title>
Search and click the hotspot
   <map name = "html"> <area shape = "circle" coords = "80,80,20" href = "/css/index.htm" alt = "CSS Link" target = "_self" /> <area shape = "rect" coords = "5,5,40,40" alt = "jQuery Link" href = "/jquery/index.htm" target = "_self" /> </map>  »


magneticalc.GUI.GUI(QMainWindow)
class documentationmagneticalc.GUI
(View In Hierarchy)
GUI class.
| Class Variable | DefaultFilename | Undocumented |
| Class Variable | calculation_status | Undocumented |
| Class Variable | calculation_exited | Undocumented |
| Method | __init__ | Initializes the GUI. |
| Instance Variable | locale | Undocumented |
| Instance Variable | config | Undocumented |
| Instance Variable | calculation_thread | Undocumented |
| Instance Variable | calculation_start_time | Undocumented |
| Instance Variable | model | Undocumented |
| Instance Variable | sidebar_left | Undocumented |
| Instance Variable | sidebar_right | Undocumented |
| Instance Variable | vispy_canvas | Undocumented |
| Instance Variable | statusbar | Undocumented |
| Instance Variable | splitter | Undocumented |
| Instance Variable | menu | Undocumented |
| Instance Variable | initializing | Undocumented |
| Method | redraw | Re-draws the scene. |
| Method | recalculate | Re-calculates the model. |
| Method | on_calculation_exited | This is called after calculation thread has exited. |
| Method | interrupt_calculation | Kills any running calculation. |
| Method | set_window | Sets the basic window properties. |
| Method | quit | Quits the application. |
| Method | closeEvent | Handles close event. |
| Method | keyPressEvent | Handles key press event. |
| Method | on_config_changed | Gets called when the configuration changed. |
| Method | file_open | Opens some INI file. |
| Method | file_save | Saves to the currently set INI file. |
| Method | file_save_as | Saves to some INI file. |
| Method | file_save_image | Saves the currently displayed scene to PNG file. |


OnePlus Gallery 3.7.19 now lets you sort photos by when they were added
by Arol WrightEach OEM has their own take on their photo saving and picture-backup experience. Some have a simple, old-fashioned gallery app that displays pictures saved on your device and not much more. Then, we have devices that ship only with Google Photos, Google’s own alternative which includes cloud saving and a number of AI features complementing the whole experience. The OnePlus Gallery app, far from being barebones, includes a number of features which is further going to be expanded in some markets at least.
Now, it will include yet another new feature: sorting photos by added/import date. This seems like a surprisingly minor feature, but previously, the app would only allow you to sort images by their capture/creation date: this meant that some images, particularly those downloaded online, could end up buried in your gallery since they were created much earlier than most of your other images in your gallery app. Allowing users to sort images by the date and time they were added in your gallery should keep much of this hassle at bay.
This update, which goes by the number 3.7.19, is now rolling out through the Google Play Store as an update to the current OnePlus Gallery app, so if your OnePlus device has the latest version of OxygenOS and OnePlus Gallery, you should be receiving it on your device very soon. If for some reason, it doesn’t appear on your device, then the latest version should come to your device whenever it receives a new OxygenOS update.
As we said before, this update should be plenty useful to solve this minor, yet considerable, inconvenience we all have faced at least once.
Thanks to XDA Senior Member Some_Random_Username for the tip!


Documentation
This is a short description of the REST-style API version 0.1. You need an RoboEarth Account to use the API, except for Downloading existing data.Content:
Download
Using the unified identifier (UID) (see table data fields) is the easiest way to access the data. Therefore a "GET"-request has to be send to the corresponding URL:
| Data | URL |
|---|---|
| Action Recipes | {{ Domain }}api/0.1/recipe/<UID> |
| Object Description | {{ Domain }}api/0.1/object/<UID> |
| Environment | {{ Domain }}api/0.1/environment/<UID> |
Object descriptions, action recipes and environment descriptions are encoded in OWL. If the exact UID is not known than RoboEarth is able to execute SeRQL queries to find the corresponding data. A SeRQL query can be send by a "POST"-request to the following URLs:
| Data | URL |
|---|---|
| Action Recipes | {{ Domain }}api/0.1/recipe |
| Object Description | {{ Domain }}api/0.1/object |
| Environment | {{ Domain }}api/0.1/environment |
The SeRQL query has to be encoded in JSON:
{ " query " : "SELECT source FROM CONTEXT source ..." }
Important! Every query has to begin with "SELECT source FROM CONTEXT source"!
Upload
For uploading data you need an account for the RoboEarth platform. The data of the "POST"-request has to be encoded in JSON. Table upload URLs show the upload URLs.
| Data | URL |
|---|---|
| Action Recipes | {{ Domain }}api/0.1/recipe |
| Object Description | {{ Domain }}api/0.1/object |
| Environment | {{ Domain }}api/0.1/environment |
The API supports following data fields:
| Data Type | Data Fields | Unified Identifier (generated automatically) |
|---|---|---|
| Action Recipes | class, id, description, recipe, api_key | class.id |
| Object Description | class, id, description, object description (semantic data), api_key | class.id |
| Environment | class, id, environment (OWL), api_key | class.id |
| Robot | environment, id, api_key | id |
Object descriptions contain binary data. This data has to be uploaded in a second step. Once the text data where uploaded RoboEarth will return the data, including the complete UID (class.id) which has to be used to upload the binary data. The "POST"-request has to contain your "api_key" for authentication and the "file". Object description allow an arbitrary number of binary files, therefor you have to specifiy the file identifier additionally. The Upload URL is:
{{ Domain }}api/0.1/binary/<UID>
Update
Existing data can be updated by sending an "PUT"-request to the same URLs with the same data fields described in the section Upload.Delete
To delete an object the exact UID has to be known. Further you need to have an account for the RoboEarth platform. Following URLs can be used to delete an entry by sending an "DELETE"-request:
| Data | URL |
|---|---|
| Action Recipe | {{ Domain }}api/recipe/<UID>/<API_KEY> |
| Object Description | {{ Domain }}api/object/<UID>/<API_KEY> |
| File | {{ Domain }}api/object/<UID>/<API_KEY>/<FILE_ID> |
| Environment | {{ Domain }}api/environment/<UID>/<API_KEY> |


Functions for generating XML filter descriptions (<install_prefix>/share/pymango.xml).
Simply inspects all main-driver registered filter classes and accumlates the
individual XML descriptions (using the mango.application.main_driver.MainDriverFilter.getXmlFileName()
or mango.application.main_driver.MainDriverFilter.getXmlString() methods).
Helper Functions
Most of the helper functions which return a str look for the relevant method attribute
on a filter class before calling the method, if the attribute isn’t present, then None
is returned.


package away3d.events { import away3d.sprites.*; import flash.events.Event; /** * Passed as a parameter when a segment event occurs */ public class SpriteEvent extends Event { /** * Defines the value of the type property of a materialChanged event object. */ public static const MATERIAL_CHANGED:String = "materialChanged"; /** * A reference to the Billboard object that is relevant to the event. */ public var sprite:Sprite3D; /** * Creates a new BillboardEvent object. * * @param type The type of the event. Possible values are: BillboardEvent.MATERIAL_CHANGED. * @param Billboard A reference to the Billboard object that is relevant to the event. */ public function SpriteEvent(type:String, sprite:Sprite3D) { super(type); this.sprite = sprite; } /** * Creates a copy of the BillboardEvent object and sets the value of each property to match that of the original. */ public override function clone():Event { return new SpriteEvent(type, sprite); } } }


#include <cppsimgen.hpp>
◆ cppBvType
◆ CppVar() [1/5]
| ilasynth::CppVar::CppVar |
( |
nptr_t |
nptr, |
|
|
const std::string & |
name = "" |
|
) |
| |
◆ CppVar() [2/5]
| ilasynth::CppVar::CppVar |
( |
const Node * |
node, |
|
|
const std::string & |
name = "" |
|
) |
| |
◆ CppVar() [3/5]
| ilasynth::CppVar::CppVar |
( |
int |
width | ) |
|
◆ CppVar() [4/5]
| ilasynth::CppVar::CppVar |
( |
const std::string & |
name, |
|
|
const std::string & |
val |
|
) |
| |
◆ CppVar() [5/5]
| ilasynth::CppVar::CppVar |
( |
const CppVar * |
var | ) |
|
◆ ~CppVar()
| ilasynth::CppVar::~CppVar |
( |
| ) |
|
◆ castUse()
| std::string ilasynth::CppVar::castUse |
( |
| ) |
const |
◆ ctorDef()
| std::string ilasynth::CppVar::ctorDef |
( |
| ) |
const |
◆ def()
| std::string ilasynth::CppVar::def |
( |
| ) |
const |
◆ exactUse()
| std::string ilasynth::CppVar::exactUse |
( |
| ) |
const |
◆ init() [1/2]
| void ilasynth::CppVar::init |
( |
nptr_t |
n | ) |
|
|
private |
◆ init() [2/2]
| void ilasynth::CppVar::init |
( |
const Node * |
n | ) |
|
|
private |
◆ refDef()
| std::string ilasynth::CppVar::refDef |
( |
| ) |
const |
◆ signedUse()
| std::string ilasynth::CppVar::signedUse |
( |
| ) |
const |
◆ use()
| std::string ilasynth::CppVar::use |
( |
| ) |
const |
◆ vType()
| std::string ilasynth::CppVar::vType |
( |
| ) |
const |
◆ CppFun
◆ CppSimGen
◆ _idxwidth
| int ilasynth::CppVar::_idxwidth |
|
protected |
◆ _isConst
| bool ilasynth::CppVar::_isConst |
|
protected |
◆ _name
| std::string ilasynth::CppVar::_name |
|
protected |
◆ _type
| std::string ilasynth::CppVar::_type |
|
protected |
◆ _val
| std::string ilasynth::CppVar::_val |
|
protected |
◆ _width
| int ilasynth::CppVar::_width |
|
protected |
◆ boolStr
| std::string ilasynth::CppVar::boolStr |
|
static |
◆ bvStr
| std::string ilasynth::CppVar::bvStr |
|
static |
◆ memStr
| std::string ilasynth::CppVar::memStr |
|
static |
◆ varCnt
| int ilasynth::CppVar::varCnt |
|
static |
◆ voidStr
| std::string ilasynth::CppVar::voidStr |
|
static |
The documentation for this class was generated from the following file:


%matplotlib inline
Convolutional Neural Network with Pytorch¶
Training a Classifier¶
This is it. You have seen how to define neural networks, compute loss and make updates to the weights of the network.
Now you might be thinking,
What about data?¶
Generally, when you have to deal with image, text, audio or video data,
you can use standard python packages that load data into a numpy array.
Then you can convert this array into a torch.*Tensor
.
For images, packages such as Pillow, OpenCV are useful
For audio, packages such as scipy and librosa
For text, either raw Python or Cython based loading, or NLTK and SpaCy are useful
Specifically for vision, we have created a package called
torchvision
, that has data loaders for common datasets such as
Imagenet, CIFAR10, MNIST, etc. and data transformers for images, viz.,
torchvision.datasets
and torch.utils.data.DataLoader
.
This provides a huge convenience and avoids writing boilerplate code.
For this tutorial, we will use the CIFAR10 dataset. It has the classes: ‘airplane’, ‘automobile’, ‘bird’, ‘cat’, ‘deer’, ‘dog’, ‘frog’, ‘horse’, ‘ship’, ‘truck’. The images in CIFAR-10 are of size 3x32x32, i.e. 3-channel color images of 32x32 pixels in size.
.. figure:: /_static/img/cifar10.png :alt: cifar10
cifar10
Training an image classifier¶
We will do the following steps in order:
Load and normalizing the CIFAR10 training and test datasets using
torchvision
Define a Convolution Neural Network
Define a loss function
Train the network on the training data
Test the network on the test data
Loading and normalizing CIFAR10 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Using torchvision
, it’s extremely easy to load CIFAR10.
import torch
import torchvision
import torchvision.transforms as transforms
The output of torchvision datasets are PILImage images of range [0, 1]. We transform them to Tensors of normalized range [-1, 1].
transform = transforms.Compose(
[transforms.ToTensor(),
transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])
trainset = torchvision.datasets.CIFAR10(root='./data', train=True,
download=True, transform=transform)
trainloader = torch.utils.data.DataLoader(trainset, batch_size=4,
shuffle=True, num_workers=2)
testset = torchvision.datasets.CIFAR10(root='./data', train=False,
download=True, transform=transform)
testloader = torch.utils.data.DataLoader(testset, batch_size=4,
shuffle=False, num_workers=2)
classes = ('plane', 'car', 'bird', 'cat',
'deer', 'dog', 'frog', 'horse', 'ship', 'truck')
Downloading https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz to ./data/cifar-10-python.tar.gz
Files already downloaded and verified
Let us show some of the training images, for fun.
import matplotlib.pyplot as plt
import numpy as np
# functions to show an image
def imshow(img):
img = img / 2 + 0.5 # unnormalize
npimg = img.numpy()
plt.imshow(np.transpose(npimg, (1, 2, 0)))
# get some random training images
dataiter = iter(trainloader)
images, labels = dataiter.next()
# show images
imshow(torchvision.utils.make_grid(images))
# print labels
print(' '.join('%5s' % classes[labels[j]] for j in range(4)))
cat car truck ship
Define a Convolution Neural Network ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Copy the neural network from the Neural Networks section before and modify it to take 3-channel images (instead of 1-channel images as it was defined).
import torch.nn as nn
import torch.nn.functional as F
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.conv1 = nn.Conv2d(3, 6, 5)
self.pool = nn.MaxPool2d(2, 2)
self.conv2 = nn.Conv2d(6, 16, 5)
self.fc1 = nn.Linear(16 * 5 * 5, 120)
self.fc2 = nn.Linear(120, 84)
self.fc3 = nn.Linear(84, 10)
def forward(self, x):
x = self.pool(F.relu(self.conv1(x)))
x = self.pool(F.relu(self.conv2(x)))
x = x.view(-1, 16 * 5 * 5)
x = F.relu(self.fc1(x))
x = F.relu(self.fc2(x))
x = self.fc3(x)
return x
net = Net()
Define a Loss function and optimizer ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Let’s use a Classification Cross-Entropy loss and SGD with momentum.
import torch.optim as optim
criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(net.parameters(), lr=0.001, momentum=0.9)
Train the network ^^^^^^^^^^^^^^^^^^^^
This is when things start to get interesting. We simply have to loop over our data iterator, and feed the inputs to the network and optimize.
for epoch in range(2): # loop over the dataset multiple times
running_loss = 0.0
for i, data in enumerate(trainloader, 0):
# get the inputs
inputs, labels = data
# zero the parameter gradients
optimizer.zero_grad()
# forward + backward + optimize
outputs = net(inputs)
loss = criterion(outputs, labels)
loss.backward()
optimizer.step()
# print statistics
running_loss += loss.item()
if i % 2000 == 1999: # print every 2000 mini-batches
print('[%d, %5d] loss: %.3f' %
(epoch + 1, i + 1, running_loss / 2000))
running_loss = 0.0
print('Finished Training')
[1, 2000] loss: 2.197
[1, 4000] loss: 1.840
[1, 6000] loss: 1.692
[1, 8000] loss: 1.603
[1, 10000] loss: 1.514
[1, 12000] loss: 1.471
[2, 2000] loss: 1.413
[2, 4000] loss: 1.371
[2, 6000] loss: 1.340
[2, 8000] loss: 1.324
[2, 10000] loss: 1.273
[2, 12000] loss: 1.275
Finished Training
Test the network on the test data ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
We have trained the network for 2 passes over the training dataset. But we need to check if the network has learnt anything at all.
We will check this by predicting the class label that the neural network outputs, and checking it against the ground-truth. If the prediction is correct, we add the sample to the list of correct predictions.
Okay, first step. Let us display an image from the test set to get familiar.
dataiter = iter(testloader)
images, labels = dataiter.next()
# print images
imshow(torchvision.utils.make_grid(images))
print('GroundTruth: ', ' '.join('%5s' % classes[labels[j]] for j in range(4)))
Exception ignored in: <bound method _DataLoaderIter.__del__ of <torch.utils.data.dataloader._DataLoaderIter object at 0x7f6a1c07cb00>> Traceback (most recent call last): File "/opt/conda/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 399, in __del__ self._shutdown_workers() File "/opt/conda/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 378, in _shutdown_workers self.worker_result_queue.get() File "/opt/conda/lib/python3.6/multiprocessing/queues.py", line 337, in get return _ForkingPickler.loads(res) File "/opt/conda/lib/python3.6/site-packages/torch/multiprocessing/reductions.py", line 151, in rebuild_storage_fd fd = df.detach() File "/opt/conda/lib/python3.6/multiprocessing/resource_sharer.py", line 57, in detach with _resource_sharer.get_connection(self._id) as conn: File "/opt/conda/lib/python3.6/multiprocessing/resource_sharer.py", line 87, in get_connection c = Client(address, authkey=process.current_process().authkey) File "/opt/conda/lib/python3.6/multiprocessing/connection.py", line 493, in Client answer_challenge(c, authkey) File "/opt/conda/lib/python3.6/multiprocessing/connection.py", line 737, in answer_challenge response = connection.recv_bytes(256) # reject large message File "/opt/conda/lib/python3.6/multiprocessing/connection.py", line 216, in recv_bytes buf = self._recv_bytes(maxlength) File "/opt/conda/lib/python3.6/multiprocessing/connection.py", line 407, in _recv_bytes buf = self._recv(4) File "/opt/conda/lib/python3.6/multiprocessing/connection.py", line 379, in _recv chunk = read(handle, remaining) ConnectionResetError: [Errno 104] Connection reset by peer
GroundTruth: cat ship ship plane
Okay, now let us see what the neural network thinks these examples above are:
outputs = net(images)
The outputs are energies for the 10 classes. Higher the energy for a class, the more the network thinks that the image is of the particular class. So, let’s get the index of the highest energy:
_, predicted = torch.max(outputs, 1)
print('Predicted: ', ' '.join('%5s' % classes[predicted[j]]
for j in range(4)))
Predicted: cat ship ship plane
The results seem pretty good.
Let us look at how the network performs on the whole dataset.
correct = 0
total = 0
with torch.no_grad():
for data in testloader:
images, labels = data
outputs = net(images)
_, predicted = torch.max(outputs.data, 1)
total += labels.size(0)
correct += (predicted == labels).sum().item()
print('Accuracy of the network on the 10000 test images: %d %%' % (
100 * correct / total))
Accuracy of the network on the 10000 test images: 55 %
That looks waaay better than chance, which is 10% accuracy (randomly picking a class out of 10 classes). Seems like the network learnt something.
Hmmm, what are the classes that performed well, and the classes that did not perform well:
class_correct = list(0. for i in range(10))
class_total = list(0. for i in range(10))
with torch.no_grad():
for data in testloader:
images, labels = data
outputs = net(images)
_, predicted = torch.max(outputs, 1)
c = (predicted == labels).squeeze()
for i in range(4):
label = labels[i]
class_correct[label] += c[i].item()
class_total[label] += 1
for i in range(10):
print('Accuracy of %5s : %2d %%' % (
classes[i], 100 * class_correct[i] / class_total[i]))
Accuracy of plane : 58 %
Accuracy of car : 61 %
Accuracy of bird : 30 %
Accuracy of cat : 42 %
Accuracy of deer : 43 %
Accuracy of dog : 55 %
Accuracy of frog : 76 %
Accuracy of horse : 56 %
Accuracy of ship : 59 %
Accuracy of truck : 69 %
Okay, so what next?
How do we run these neural networks on the GPU?
Training on GPU¶
Just like how you transfer a Tensor on to the GPU, you transfer the neural net onto the GPU.
Let’s first define our device as the first visible cuda device if we have CUDA available:
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
# Assume that we are on a CUDA machine, then this should print a CUDA device:
print(device)
cpu
The rest of this section assumes that device
is a CUDA device.
Then these methods will recursively go over all modules and convert their parameters and buffers to CUDA tensors:
.. code:: python
net.to(device)
Remember that you will have to send the inputs and targets at every step to the GPU too:
.. code:: python
inputs, labels = inputs.to(device), labels.to(device)
Why dont I notice MASSIVE speedup compared to CPU? Because your network is realllly small.
Exercise: Try increasing the width of your network (argument 2 of
the first nn.Conv2d
, and argument 1 of the second nn.Conv2d
–
they need to be the same number), see what kind of speedup you get.
Goals achieved:
Understanding PyTorch’s Tensor library and neural networks at a high level.
Train a small neural network to classify images
Training on multiple GPUs¶
If you want to see even more MASSIVE speedup using all of your GPUs,
please check out :doc:data_parallel_tutorial
.
Where do I go next?¶
:doc:
Train neural nets to play video games </intermediate/reinforcement_q_learning>
Train a state-of-the-art ResNet network on imagenet
_Train a face generator using Generative Adversarial Networks
_Train a word-level language model using Recurrent LSTM networks
_More examples
_More tutorials
_Discuss PyTorch on the Forums
_Chat with other users on Slack
_


Duckuino
► Run Compiler
Download Payload
Hak5 Payloads
Documentation
NOTE:
This compiler is dependent on
NicoHood's HID
.
You need to add it to the Arduino IDE Library.
Ducky Script
Arduino
Console:
Made with
by
d4n5h


Geonames Pandas Shapefile
2014-11-28
###GEONAMESPandasintoSHape file#### ####For the scripts /script/ /scripts/csvtoshp.py, csvtoshpTEST.py, Geoname.py#### 1. The industry data for emission inventory is in address with its details. To get get the latitude and longitude value of each address has to have a database with address with its latitude and longitude. 1. One such database is Geonames, its country wise data is having smaller amount of data for Coimbatore case, but POSTAL CODE data has more than 641 postal code details with latitude and longitude information. 1. To get that data into pandas dataframe used following script. Faced a problem in specifying delimiter, it has to be mentioned as ‘\t’ for specifying space delimited data
db=pd.read_csv('IN.txt', delimiter="\t")
db=pd.read_csv('IN.txt', delimiter="\t", header=None, names=['countryCode','postalCode','placeName','adminName1','adminCode1',
'adminName2','adminCode2','adminName3','adminCode3','latitude','longitude','accuracy'])
db2=db[db['admin name2'].str.contains("Coimbatore")]
- To convert this data into shape file used following script based on this and this following script, In which the PNADAS datfarme has to converted into csv file other wise having problem of
#this gives error of unidentifuiable like this ```File "hashtable.pyx", line 388, in pandas.hashtable.Int64HashTable.get_item (pandas/hashtable.c:6517)
#KeyError: 0
#this was reproducecd in #for j,k in enumerate(db2.longitude):
a=db2.latitude[j]
print k,a
#The baove problem was solved IF I am getting the dataframe from a csv file, a problem related with pandas dataframe ````
import shapefile as shp
import pandas as pd
import csv
import os
import sys
db0=pd.read_csv('IN.txt', delimiter="\t", header=None, names=['countryCode','postalCode','placeName','adminName1','adminCode1','adminName2','adminCode2','adminName3','adminCode3','latitude','longitude','accuracy'])
db1=db0[db0['adminName2'].str.contains("Coimbatore")]
db2=db.drop_duplicates(cols='postalCode', take_last=True)
db2.to_csv('Coimbatore_postal2.csv')
db=pd.read_csv('Coimbatore_postal2.csv')
w = shp.Writer(shp.POINT)
w.autoBalance = 1 #ensures gemoetry and attributes match
w.field("postalCode","N",10)
w.field("longitude","F",10,8)
w.field("latitude","F",10,8)
w.field("placeName","C",30)
w.field("adminName1","C",30)
w.field("adminName2","C",30)
w.field("adminName3","C",30)
w.field("accuracy","C",5)
for j,k in enumerate(db.longitude):
w.point(k,db.latitude[j]) #write the geometry
w.record(db.postalCode[j],db.longitude[j],db.latitude[j],db.placeName[j],db.placeName[j],db.adminName1[j],db.adminName2[j],db.adminName3[j],db.accuracy[j])
out_file='Coimbatore_postalcode1.shp'
w.save(out_file)
print "Done!"
- This generated shape file for 641 rows in the datafraem but with only 120 points in the shape file, latter found that most of the rows are having same latitude and longitude value, so having problem with geonames POSTAL CODE data resolution for latitude and longitude.
- The final scripts are these, /scripts/csvtoshp.py, csvtoshp_TEST.py, Geoname.py


A Monitor is something PicoContainer uses to inform on events in component instantiation and lifecycle. One use would be an instance based logger. Many alternative implementations in here.


{% load static %}
Code base
We keep your data secure so that no hacker can get into your personal data.
A ticket will be generated for every complaint. This ticket will possess a unique ID.
This will help the consultant and the user to uniquely identify the complaint and track down the progress made by the officials in solving the issue.
Admin Dashboard
We have proper organization for admin to have systematic work
Complaints will be classified on the basis of tags. This allows the officials to search for problems on the basis of tags.
This will include a certain level of flexibility to the search process and the officials as well since they can now search for tags in their area of expertise.
Analytics
Data will be analyzed on a regular basis and shown in the analytics dashboard.
Analytical data will include the location(s) and the tag(s) associated with the complaint This will help in identifying the areas which are infested with the heinous crime of cyberbullying
This will also bring into our notice the types of cyberbullying occuring in those areas, including the frequency at which the complaints are addressed and solved by the authorities.
Summary
In short we have layers of implementation to make sure that we solve your problems.


Selected Type: {{selectedType}}
Selected Types: {{type}}
Selected Color: {{color1}}
Selected Color: {{color2}}
Selected Cars: {{selectedCars}}


The jQuery Mobile framework provides a simple way to build CSS-based columns that can also be responsive. Jump to section
Grids are 100% width, completely invisible (no borders or backgrounds) and don't have padding or margins, so they shouldn't interfere with the styles of elements placed inside them.Within the grid container, child elements are assigned ui-block-a/b/c/d/e
in a sequential manner which makes each "block" element float side-by-side, forming the grid.
To build a two-column (50/50%) layout, start with a container with a class
of ui-grid-a
, and add two child containers inside it classed with ui-block-a
for the first column and ui-block-b
for the second. On the blocks below, we're adding two classes: ui-bar
to add the default bar padding and ui-bar-e
to apply the background gradient and font styling for the "e" toolbar theme swatch. For illustration purposes, an inline style="height:120px"
attribute is also added to each grid to set each to a standard height.
Grid classes can be applied to any container. In this next example, we add ui-grid-a
to a fieldset
, and apply the ui-block
classes to the container of each of the two buttons inside to stretch them each to 50% of the screen width:
The other grid layout configuration uses class=ui-grid-b
on the parent, and 3 child container elements, each with its respective ui-block-a/b/c
class, to create a three-column layout (33/33/33%).
And an example of a 3 column grid with buttons inside:
A four-column, 25/25/25/25% grid is created by specifying class=ui-grid-c
on the parent and adding a fourth block.
A five-column, 20/20/20/20/20% grid is created by specifying class=ui-grid-d
on the parent and adding a fifth block.
Grids are designed to wrap to multiple rows of items. For example, if you specify a 3-column grid (ui-grid-b) on a container that has nine child blocks, it will wrap to 3 rows of 3 items each. There is a CSS rule to clear the floats and start a new line when the class=ui-block-a
is seen so make sure to assign block classes in a repeating sequence (a, b, c, a, b, c, etc.) that maps to the grid type:
Please note that the framework adds left and right margin to buttons in a grid. For a single button you can use a container with class ui-grid-solo
and wrap the button in a div with class ui-block-a
like the example below. This way the button will get the same margin.
It's straightforward to take the standard grids and make them responsive by stacking the grid blocks at narrow widths. Since we just want to override the floats and widths of the standard grid styles below a single breakpoint, use a max-width
breakpoint to only apply the stacked styling as an override.
We recommend adding a class (ex: my-breakpoint
) to scope the styles for the media query so it can be applied selectively. From this basic start, you can customize the appearance further or even add additional breakpoints. See an example of a custom responsive grid.
/* stack all grids below 40em (640px) */
@media all and (max-width: 35em) {
.my-breakpoint .ui-block-a,
.my-breakpoint .ui-block-b,
.my-breakpoint .ui-block-c,
.my-breakpoint .ui-block-d,
.my-breakpoint .ui-block-e {
width: 100%;
float:none;
}
}
To apply a preset breakpoint to stack grids below 35em (560px), add the .ui-responsive
class to the grid container.


Class Obstacle
AdaptiveGrid obstacle represented by a set of points with extra parameters. Points are used to created bounding box that is aligned with transformation parameter with extra offset. Since offset is applied on the box, distance on corners is even larger. Can be constructed from different objects.
Implements
Inherited Members
Namespace: Elements.Spatial.AdaptiveGrid
Assembly: Hypar.Elements.dll
Syntax
public class Obstacle : GeometricElement, INotifyPropertyChanged
Constructors
Obstacle(Polygon, Double, Double, Boolean, Boolean, Transform)
Create an obstacle from a list of points.
Declaration
public Obstacle(Polygon boundary, double height, double offset, bool addPerimeterEdges, bool allowOutsideBoundary, Transform orientation)
Parameters
| Type | Name | Description |
|---|---|---|
| Polygon | boundary | Boundary of an obstacle |
| System.Double | height | Height of an obstacle |
| System.Double | offset | Extra space around obstacle bounding box. |
| System.Boolean | addPerimeterEdges | Should edges be created around obstacle. |
| System.Boolean | allowOutsideBoundary | Should edges be created when obstacle is outside of Boundaries |
| Transform | orientation | Orientation of the obstacle in space. Helpful for better bounding box creation. |
Properties
AddPerimeterEdges
Should edges be created around obstacle. If false - any intersected edges are just discarded. If true - intersected edges are cut to obstacle and perimeter edges are inserted.
Declaration
public bool AddPerimeterEdges { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
AllowOutsideBoudary
Should edges be created when obstacle is outside Boundaries, it will work only when AddPerimeterEdges property is true />
Declaration
public bool AllowOutsideBoudary { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
Boundary
Perimeter defining obstacle.
Declaration
public Polygon Boundary { get; set; }
Property Value
| Type | Description |
|---|---|
| Polygon |
Height
Obstacle height, offset by Boundary normal vector
Declaration
public double Height { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Double |
Offset
Offset of bounding box created from the list of points.
Declaration
public double Offset { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Double |
Orientation
Additional information about obstacle orientation in space. Use inverted orientation to work in local space of the obstacle.
Declaration
public Transform Orientation { get; set; }
Property Value
| Type | Description |
|---|---|
| Transform |
Points
List of points defining obstacle.
Declaration
public List<Vector3> Points { get; }
Property Value
| Type | Description |
|---|---|
| System.Collections.Generic.List<Vector3> |
Methods
FromBBox(BBox3, Double, Boolean, Boolean)
Create an obstacle from a bounding box.
Declaration
public static Obstacle FromBBox(BBox3 box, double offset = 0, bool addPerimeterEdges = false, bool allowOutsideBoundary = false)
Parameters
| Type | Name | Description |
|---|---|---|
| BBox3 | box | Bounding box to avoid. |
| System.Double | offset | Extra space around obstacle bounding box. |
| System.Boolean | addPerimeterEdges | Should edges be created around obstacle. |
| System.Boolean | allowOutsideBoundary | Should edges be created when obstacle is outside of Boundaries |
Returns
| Type | Description |
|---|---|
| Obstacle | New obstacle object. |
FromColumn(Column, Double, Boolean, Boolean)
Create an obstacle from a column.
Declaration
public static Obstacle FromColumn(Column column, double offset = 0, bool addPerimeterEdges = false, bool allowOutsideBoundary = false)
Parameters
| Type | Name | Description |
|---|---|---|
| Column | column | Column to avoid. |
| System.Double | offset | Extra space around obstacle bounding box. |
| System.Boolean | addPerimeterEdges | Should edges be created around obstacle. |
| System.Boolean | allowOutsideBoundary | Should edges be created when obstacle is outside of Boundaries |
Returns
| Type | Description |
|---|---|
| Obstacle | New obstacle object. |
FromLine(Line, Double, Boolean, Boolean)
Create an obstacle from a line.
Declaration
public static Obstacle FromLine(Line line, double offset = 0.1, bool addPerimeterEdges = false, bool allowOutsideBoundary = false)
Parameters
| Type | Name | Description |
|---|---|---|
| Line | line | Line to avoid. |
| System.Double | offset | Extra space around obstacle bounding box. Should be larger than 0. |
| System.Boolean | addPerimeterEdges | Should edges be created around obstacle. |
| System.Boolean | allowOutsideBoundary | Should edges be created when obstacle is outside of Boundaries |
Returns
| Type | Description |
|---|---|
| Obstacle | New obstacle object. |
FromWall(StandardWall, Double, Boolean, Boolean)
Create an obstacle from a wall.
Declaration
public static Obstacle FromWall(StandardWall wall, double offset = 0, bool addPerimeterEdges = false, bool allowOutsideBoundary = false)
Parameters
| Type | Name | Description |
|---|---|---|
| StandardWall | wall | Wall to avoid. |
| System.Double | offset | Extra space around obstacle bounding box. |
| System.Boolean | addPerimeterEdges | Should edges be created around obstacle. |
| System.Boolean | allowOutsideBoundary | Should edges be created when obstacle is outside of Boundaries |
Returns
| Type | Description |
|---|---|
| Obstacle | New obstacle object. |
Intersects(Line, Double)
Check if line intersects with obstacle
Declaration
public bool Intersects(Line line, double tolerance = 1E-05)
Parameters
| Type | Name | Description |
|---|---|---|
| Line | line | Line to check |
| System.Double | tolerance | Tolerance of checks |
Returns
| Type | Description |
|---|---|
| System.Boolean | Result of check |
Intersects(Polyline, Double)
Check if any segment of polyline intersects with obstacle or is inside of obstacle
Declaration
public bool Intersects(Polyline polyline, double tolerance = 1E-05)
Parameters
| Type | Name | Description |
|---|---|---|
| Polyline | polyline | Polyline to check |
| System.Double | tolerance | Tolerance of checks |
Returns
| Type | Description |
|---|---|
| System.Boolean | Result of check |
UpdateRepresentations()
Create visual representation of obstacle
Declaration
public override void UpdateRepresentations()


In this step you can change column names to match your column names in the template file (if that is required).
After you done that press button "Next >>"
Column names are changed
by clicking on column names in the grid.
Note that only preview of data is
shown in the grid instead of complete data. Only first 100 rows are shown.


--- title: call_to_action: Contact background_image_path: large_header: true testimonials: - message: We use Justice Law in all our endeavours. They offer an unparalleled service when it comes to running a business. image: "//placekitten.com/g/60/60?a=.png" name: Joice Carmold - message: Justice Law are the best of the best. Being local, they care about people and have strong ties to the community. image: "//fillmurray.com/60/60?a=.png" name: Peter Rottenburg - message: Justice Law were everything we could have hoped for when buying our first home. Highly recommended to all. image: "//placebear.com/60/60?a=.png" name: D. and G. Gibbleston _options: image: width: 60 height: 60 ---
GAB-ANNA CHAMBERS is a fully integrated and multi dimensional business law practice office with a Principal, eight (8) Associates and four (4) employed Solicitors engaged in a diversified and expanding practice, which covers a variety of areas of expertise. Our vision is to be a leading provider of integrated professional services to a select group of discerning clients. Our mission is to use all our resources to meet the needs of our clients with absolute commitment to speedy service delivery and excellence.
The firm has developed a wide great level of expertise and proficiency in corporate practice spanning from incorporation of companies, advertising clients on matters falling within other general areas of General Corporate and Commercial Law concerning the operations of business in Nigeria acquisitions and disposals of shares or assets (legal due diligence, negotiation of purchase and sales agreements, obtaining all government or administrative consents), private equity, capital transactions (capital increases, issuance of securities, etc), and purchase of distressed companies.
The firm provides legal support and services to a number of leading banking and financial institutions.
Our areas of practice specialty include:
The firm represents property developers, institutional and private investors, lenders and other parties in various aspects of Real Estate transactions including conveyance acquisitions, depositions, leasing, recovery of premises, joint ventures and conventional and securitized financing. We have access to a vast and highly specialized data bank of precedents in the field of conveyance, real state, commercial property, and mortgage financing which ensures that clients benefits from our ability to rapidly create form and structures to meet their diverse needs.
The firm advises and guides investors and their professional advisers (foreign and local) on the regulatory regime for doing business in Nigeria. We advise on compliance procedures and practice, file, process and obtain requisite licence permits and authorizations and offer immigration advise and processing services. We act for government and its agencies and have over the years acted for the Securities and Exchange Commission (SEC), National Agency for Food and Drug Administration and Control (NAFDAC), Nigerian Prisons, Nigerian Deposit Insurance Corporation (NDIC) etc.
The firm handles a wide range of general civil, land (property) and criminal cases. It is involved in corporate and commercial cases and is active but not limited to areas of company disputes debt recovery, infringement of trademarks, insolvency, property and commercial disputes in general. With highly skilled and experienced litigation and disputes resolution team, our initial approach is to define the goals and objectives of the client and then select the approach best suited to achieve the desired results for the client. The firm from time to time advises as to contentious employment laws, industrial relation issues, and conduct that may lead to or result in litigation.
Tax consultancy services, Admiralty etc. are built into our service delivery processes. Our firm is also committed to doing pro bono work in aid of charitable and humanitarian causes.


Tailseeker 3 uses STAR as the primary sequence alignment software. Optionally, GSNAP can be used to rescue unmapped sequences by STAR. Tags with long poly(A) tails sometimes suffer from low sequence read quality, and this leads to failure in identification of tags. Usually, GSNAP rescues ~0.5% of total reads and ~10% among long poly(A) tails. However, it lengthens total running time of the pipeline by about 10-fold.
Do you want to use GSNAP together with STAR?
Please copy the following configuration and save it as a file named “tailseeker.yaml” in an empty directory. And, run “tseek run -j” there.


BRICS Leaders Meet in Brazil for Two-Day 11th Summit - Video
Brazil's national capital hosts the regular summit of BRICS member states — Brazil, Russia, India, China, and South Africa. The goal of the association of five major emerging economies is to advance multipolarity in the international arena.
'BRICS: Economic Growth for an Innovative Future' is the main topic of the summit. The leaders of the nations - Brazil's Jair Bolsonaro, Russia's Vladimir Putin, Indian Prime Minister Narendra Modi, China’s Xi Jinping, and South Africa's Cyril Ramaphosa - will discuss economic cooperation, joint measures on fighting crimes in different spheres, and mutually beneficial projects.
The meeting takes place in both open and closed formats.
Follow Sputnik's Feed to Find Out More


Special Categories
Recommended News
Swipe left and right
last updated - {{lastupdated}}
status -
{{status}}
Facts
1000
News Sources
24
Hours Of Support
2
Hard Workers
Contact Us
If you have any doubt please free to contact us or send us a message via form listed below!!
Address
Chitnis Nagar, Ramnamaroti Road, NagpurPhone Number
Your message has been sent. Thank you!


Left panel content goes here
Login
Signup
Welcome!
Congratulations! You are now registered.
Make Payment
Rent Unit
Link 1
Link 2


Education
| Milford Senior High School | |
|---|---|
| GPA: 4.0/4.0 | Weighted GPA: 4.44/4.0 |
| University of Notre Dame | |
|---|---|
| Bachelor of Science | Major: Computer Science |
| GPA: 3.851/4.0 | Major GPA: 3.924/4.0 |
Work Experience
Internships
Epic Systems Inc.
Software Developer Intern
- Developed algorithm & UI using ASP.NET framework for patient similarity graph
- Compared and considered different supervised machine learning strategies for patient distance metrics and clustering
- Collaborated with fellow intern on the Predictive Analytics team on project
NextEra Energy
Summer Intern
- Analysed storage usage within the company using SQL to collect data
- Compiled data into a user interface for managers to proactively monitor and allocate data storage
- Optimized memory management to improve the company budget
Technical Work
Department of Computer Science
Teaching Assistant - Discrete Mathematics, Technical Concepts of Visual FX, and Theory of Computing
- Assist professor and other teaching assistants in grading assignments
- Answer student questions on a course message board and during office hours
- Attend regular meetings about course logistics with professor and fellow teaching assistants
Undergraduate Research - Department of Computer Science
Research Assistant
- Researched and develop algorithms for compiling large amounts of data from social networking website
- Studied how social networks are radically changing the rapidity of information and news sharing globally
Projects & Hackathons
See more of my projects here or on my Github.
AT&T Mobile App Hackathon
Study Spaces
- Created web application to track locations of study groups that check in on campus
- Utilized HTML, CSS, Javascript as well as Google Maps APIs and Parse platform databases in application development
- Received Schurz Innovation Challenge prize for efforts in the Hackathon
Course Project
C-Minor Compiler
- Created an ahead-of-time compiler for a C-like pedantic language
- Scanned, parsed and typechecked files, producing error messages when neccesary
- Generated equivalent x86 code outputted as a file
Relevant Coursework
- Compilers
- Design/Analysis of Algorithms
- Data Structures
- Operating Systems
- Basic Unix for Engineers
- Computer Architecture
- Logic Design
- Natural Language Processing
- Neural Networks
- Web Applications
- Computer Graphics
- Technical Concepts of Visual FX
- Theory of Computing
- Programming Paradigms
Technical Skills
Languages: C, C++, Python, HTML, CSS, Javascript, MATLAB, MIPS, x86, Oracle SQLComputer: ASP.NET, Microsoft Business Intelligence Tools, Adobe Photoshop CC, Adobe Illustrator, Autodesk Maya, Quartus, QTSpim, WebGL
Language: Intermediate German
Activities & Leadership
-
Cataloger, Tau Beta Pi Engineering Honor Society
Vice President, Upsilon Pi Epsilon Computer Science and Engineering Honor Society
Member, Computer Science and Engineering Club of Notre Dame
Member, Society of Women Engineers (SWE)
Irish Guard & CORE Member, Marching Band of the Fighting Irish
Primary Flautist, Notre Dame Symphonic Winds Concert Band
Private Music Teacher, Bandlink
Performer, Pasquerilla East Musical Company (PEMCo) Pit Orchestra


ppmrelief(1) ppmrelief(1) NAME ppmrelief - run a Laplacian relief filter on a portable pixmap SYNOPSIS ppmrelief [ppmfile] DESCRIPTION Reads a portable pixmap as input. Does a Laplacian relief filter, and writes a portable pixmap as output. The Laplacian relief filter is described in "Beyond Photography" by Holz‐ mann, equation 3.19. It's a sort of edge-detection. SEE ALSO pgmbentley(1), pgmoil(1), ppm(5) AUTHOR Copyright (C) 1990 by Wilson Bent<EMAIL_ADDRESS>11 January 1991 ppmrelief(1)


| DOSE: |
1/8 tsp |
smoked |
JWH-018 |
(powder / crystals) |
Let me start off with a warning:
JWH-018 in its pure state is deceptively fluffy, and should be taken into account when measuring a dose. Not having a scale, I had to eyeball what looked to be about 1/8 tsp, I would guess somewhere between 3-6mg. This turned to be waaaaaaaayyyyy too much for myself, as explained below.
I have been a daily user of cannabis for a good part of about 4 years, but due to recent life changes, have not been able to procure or be allowed to smoke the good herb for about 4 months or so now. I've always been somewhat of a lightweight when it
comes to pot, and could never smoke the quantities that any of my friends could. I guess that the same applies to JWH-018,
Although I must reiterate that the dosage I took was eyeballed and my no means an accurate or smart way of taking this compound. It is similar in consistency and color to Baking Powder, yet slightly more fluffy, and has a bit of a slippery effect to the way that it moves around. It is basically pure white.
I was so excited after hearing all the good reviews on Spice blends and other people who've used pure JWH, that I was very excited to try this stuff out. So, after receiving it in the mail only 4 days after I ordered it (including a weekend), I couldn't wait to try some. I packed a bowl with a small amount of Wild Dagga, which, even in large quantities, does not produce much of an effect on me. I then sprinkled on about 1/8 tsp of the pure JWH-018 powder and toked and held the hit in for a good 30 seconds.
Initially, I did not feel any effects until about 4-5 min after smoking, I'll list out events in a chronological list.
T-0:00 - Smoked 1 medium size pinch of wild Dagga, and approx. 1/8 tsp pure JWH-018 powder. The powder melted right away, and I had to burn the rest of the dagga to get it all.
T+0:05 - Initial effects were starting to be felt, and felt almost exactly like taking a couple good bongs rips of some good weed, like Haze or the like. A little head high, increasing more into a body high.
T+0:06 - Went to take a shower, and I started to feel REALLY high, like I had smoked wayyyy to much weed (for myself anyway). I started to feel a dry mouth effect, except it was more like I was tasting everything. I tried some mouthwash to give my mouth
something to focus on. I started to feel kind of dizzy, and my vision was very vertigo like, with my point of view being pulled away a bit from everything else. Almost like my neck stretched out a bit and viewing angel became wider. At this point I had my eyes closed while washing up, and could still feel an almost boat-like rocking to the effect, which I had experienced a number of times before when smoking too much pot. It may have been a flashback-like effect, but I'm starting to feel anxiety/panic about
getting caught using this stuff.
T+0:11 - Turned off the water, but had to stand in the shower for a minute to try and calm my body down by grabbing the shower bar and leaning my head on the wall staring down the grout lines to try to steady my vision; anxiety is increased. At this point I
also feel my heart (or so I thought; explained below) starting to increase very rapidly, along with the rocking speed that I'm feeling as well. So I dry off, and get dressed rather slowly, with a noticeably increased loss of coordination and balance. I am also 'tasting' the feeling of my clothes being put on, which is very unpleasant, but not something I haven't experienced before with pot. I try rinsing with more mouthwash, which decreased in effectiveness than 5 min ago. I make my way into my room at this point and sit/lay down in my big armchair, and try to slow my heart rate down with some breathing exercise to force myself to breathe slower.
T+0:20 - Heart rate still feels like it is increasing, as well as my respiration rate, and my heart feels like its going to pound out of my chest. I feel my veins pulsating with my heart, and almost feels like they're swelling twice the size. I was supposed to
leave at this point to pick up my girlfriend, and decided it wasn't going to happen just yet, as I felt EXTREMELY stoned and did not feel ok to drive. I go from a somewhat fetal position to inadvertently flopping over to more on my back. I was trying to use the stillness of my surroundings to bring myself down from this, but to little avail. I slowed my heart rate down slightly, as well as my breathing, but it quickened again soon after.
T+0:35 - Feeling a little more controlled, and determined, because my girlfriend has been waiting to get picked up for a bit now, I decided that I would go and leave. So I get some socks on, and go to leave. But about 1-2min after standing up, I started feeling nauseous, and threw up a little in my mouth and I did my best to bring that back down. I knew at this point, from past experiences, that the inevitable was about to happen. So I go downstairs and ended up vomiting everything I could out of my stomach.
T+0:50 - After throwing up for a good 20-25 min, I try to regain my composure which is near impossible at this point. My heart feels like its going at least double the speed of normal, like I had just ran up 4 flights of stairs, and feels like it is going to beat right out of my chest. My veins still feel throbbing, and I feel very weak overall. I grab a bottle of scope and am laying on the bathroom floor at this point, with my hand losing grip to just keep it on top of the bottle. I am starting to think to myself that this is not normal, and that I might have to tell someone to bring me to the hospital, because it felt like my heart would explode, or that it would bring on a heart attack or something.
T+1:05 - I am gradually picking myself up off the floor, while at the same time trying to clean myself up. About this time, my mom comes downstairs because she thought I had left, but then saw my car still here. I tell her that I just got really sick, and that
I think it was some leftover ham that I had eaten before, which may be possible, but unlikely that it was the cause of this.
T+1:15 - I bring myself back upstairs and immediately go sit down in the living room, unable to do much else. I feel very weary at this point from getting so violently sick, and also a little bit from the drug. My mom gets me a can of ginger ale, and some
pretzels, which seemed to help some, which is a relief at this point. I told her I felt very dizzy and that it felt like my heart was racing. As I was explaining this to her, I was trying to hold back the scared feeling that I was going to die, and I got that little quiver in your bottom lip when it almost feels like you're going to cry. I had her get the blood pressure monitor that she uses.
T+1:20 - My mom takes my blood pressure twice, and to great surprise, my blood pressure and heart rate are perfectly normal. Both of the readings were: 120/72 pulse 90 & 121/72 pulse 92. That is a normal resting blood pressure reading although the pulse was a tiny bit high. Normally, just sitting I would be somewhere between 80-85. A little shocked, but very relieved that I'm not going to die, I continue to sit for a while. My girlfriend called to see how I was doing and she said that she got a ride back home and that I should stay home because she didn't want to get sick either.
T+1:45 - After eating about a dozen thin pretzels and drinking half a can of ginger ale, I decided to go in my room, as I'm feeling much better. I did some stuff I needed to do for work, and just layed down in my chair again and put on the Ambient Beat genre on shuffle in Winamp (mostly Boards of Canada and Shpongle).
T+2:30 - I am passed out at this point pretty much. I am resting, but opened my eyes a couple of times, and I was shocked at how fast time was going.
T+7:30 - I wake up after what felt like a 1-2 hour nap, but it ended up being about 5 hours.
T+7:45 - After eating a little bit more pretzels with some hummus now, I started to write this out, because I decided at the beginning of my trip that I needed to.
T+8:20 - As of right now while finishing this, I still feel mildly stoned, even after my nap, although I'm relaxed at this point.
Let me finish this off by saying that this compound is not something to be messed with lightly, as I'm sure if I had taken more that what I did, I wouldn't be writing this. That's how scared I had gotten. People have stressed about using a .001g sensitive scale to measure out a dose, which I would also recommend. Despite the negatives effects of this trip, I find it a very good learning experience to say the least, and that it is about 95% identical to the effects of some really good cannabis.
I am definitely going to try this again tomorrow, but in a MUCH MUCH smaller dosage. Contrary to my own advice I am going to eyeball out about a 1/4 of the amount I had today, and see how that goes, and take it from there.
I can't stress enough to be EXTREMELY CAREFUL with the dosage as this is very potent stuff. If it looks like too much, it probably is. I would start off not using more than can fit onto the first 3/32' of an Xacto blade. Again an approximation, use your own judgment. Or better yet, weigh out 200mg on an appropriate scale.
[Erowid Note: A volume amount of one powder doesn't necessarily weigh the same as the same volume of another powder. For substances active at such a small dose, eyeballing is particularly unwise. See related article]
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.


the and for was epidemic that infection network with were []. The data contact from model transmission can viral {background time this within-host EBOV are Ebola infected number vaccination virus margin population {border-style This dynamics have one px;} #ffffff;} disease infectious load size assumed used using each estimates simulations also distribution epidemics models more not showed based but could coverage immune nodes simulation [], between contacts intervention level outbreak parameters rate thousand which Health its large results threshold (Fig.Â World antibody been final higher individual patterns period potential responses Sierra Simulations available day defined during i.e., outcomes pathogen px; similar subjects susceptibility than their these where {font-family after age before cases different experimental font-size high index only our pattern population-level processes programs reduced reproduction strategies such ten under vaccine week when Based Fig. Figure NHPs Note Organization. Public among approach assumptions control course data, data. death double; end five highest human influenza into matrix modelling random replication response same studies while within â€" EBOVâ€™s Epidemic Virus across approximately article border-color border-width calculated case case-fatality case. complex conducted dose estimate extracted had has implementation might months networks obtained onset other parameter parameters. population. program provide reduce reproductive secondary shows solid; study supplementary symptom they those without would {font-style {font-weight (AUC) (Additional .â€". AUC Although Availability Disease Estimates Fig.Â Infection Interface./rsif.. Leone One Our Simulated Soc These Time able age-group age-specific all amount any approaches assessments assigned basic bold challenges chosen compared courier; currently curve define detailed detectable determining differences diseases diseases, done dynamic em; empirical epidemics. example express fileÂ first found generated given hosts igraph implementations incubation individuals information low manuscript. materialsâ€� mixing modeling network. observed package physical previous previously primates pt;} realistic required simulation, single some still stochastic tested timing total transmission, two varied zero â€œAvailability


RING! RING! SING! SING! Listen to Kauko the Red-Haired Wizard, as he plays on his living Kantele!
A widow had a son, who lived with his Mother. One day he said to her:
"I will go out into the world to earn money."
But the Mother said, "Why would you go away? Buy yourself a gun and dog, and hunt in the wood."
So he bought himself a gun and dog and went into the wood. He wandered about the whole day, wandered about the wood, and found nothing. Vexed, he returned home, and said to his Mother:
"You wanted me to buy a gun and a dog, and I have got nothing by it."
His Mother said, "You must learn to hunt for many days."
The next day he went out again into the wood, but shot nothing.
He did not wish to go to the wood any more, but his Mother made him go. On the third day, the dog barked at a squirrel in a tree. He was just going to shoot it, when the squirrel spoke.
"Do not shoot me," it said. "I will come down."

It turned into a Maiden, such a beautiful Maiden that the lad could not keep his eyes off her.
The Maiden said, "Because you have not shot me, I will be your bride."
"You are beautiful and please me," said he, "but I do not dare to do it. What would my Mother say?"
"Just take me to your Mother," said she, "and if she lets you, why marry me. If she does not, I will go back to the wood."
So he took her home, and the Maiden stayed out in the courtyard while the lad went in and said to his Mother:
"There is such a lovely and good Maiden, that I want for my bride, if you will say yes."
So his Mother gave her permission, and he took the Maiden for his bride. She was most beautiful, and they lived happily together.
Now the Emperor's Son had been searching three whole years for a bride, but could not find one that pleased him. When he saw the lad's bride he wanted very much to have her for his own.
Then he thought, "Well, I cannot take her from a living husband!" Then he went to the lad's house, and said, "To-night, you must build me over yonder rapids, a golden bridge with silver railings."
The lad was troubled and went to his wife.
"To-night I must build for the Emperor's Son a golden bridge with silver railings."
"Lie down and go to sleep," said his wife. "We will think it over to-night."
After she had thought about it, she gave her beloved a silken handkerchief, saying:
"Go now, strike the water of the rapids with this cloth. Say at the same time, To-night a golden bridge with silver railings shall stand here."
Then he struck the water with the handkerchief, and said this. He went to sleep and slept the night through. And in the morning the bridge was finished.
The Emperor's Son came and stared.
"O well, it is much nicer than we hoped!"
Then he set the lad another task. He said to him:
"In the garden here, are buried three golden piglets. They must be found to-night.
Again the lad went with a troubled mind to his wife, and she asked:
"Why are you so sad?"
"To-night I must produce three golden piglets that are buried in the garden."
"Lie down and go to sleep. We will think it over to-night, how to get them."
They slept the whole night through. The next morning said she:
"Go to the Emperor's Son. Take with you to the garden the Highest General and a spade. In the midst of the garden, stands an oak. Under it dig a pit three fathoms deep. In it you will find the three piglets close to each other."
That he did, and found the three piglets close to each other. He lifted them out.
"There they are!"
After that he went back to his house and his wife.
The Emperor's Son, however, was very much provoked, and he set him another task.
"Now you shall procure for me a Living Kantele, that plays by itself.
Again the lad went troubled to his wife, and she asked:
"Why are you so sad?"
"I must procure a Kantele, a Living Kantele, that plays by itself."
Then answered his wife:
"Go to the Emperor, and demand of him three of the Highest Generals. Then come back to me, that I may send you where you will procure the Living Kantele," said his wife.
Soon he came back to his wife with the Generals, and she gave her beloved another Silken Handkerchief and a Blue Ball of thread. Then she charged him to demand of the Emperor three months and a day in which to fetch the Kantele. And the Emperor gave him this respite.
Just as they were starting on their way, his wife said to him:
"In whatever direction I throw this Ball, follow it. Then you shall find the self-playing Kantele. After you leave here, show this Handkerchief at two places. But do not show it a third time, till you are in the most dreadful of difficulties."
They started out. The Blue Ball rolled and rolled before him; and the three Generals and the Son of the Widow followed it.
They travelled on, and came to a little hut that was covered with earth, like a charcoal burner's hut.
They went inside, and there was an Old Woman sitting in a rocking-chair. She said:
"Oho! For thirty years I have not smelled a human being. Now here comes a roast for my supper!"
But the lad said, "What?
Then he fetched his Silken Handkerchief out of his pocket, and wiped his face with it. At that muttered she:
"Ah! That is my son-in-law, the husband of my daughter!"
Then he must have something to eat and drink, and she did not know how to treat him well enough!
That night they stayed there, and the next morning they started out. The Ball ran before them along the highway.
Again they came to a hut that looked like a charcoal burner's hut. The Blue Ball ran into the hut. There sat an Old Woman in a rocking-chair, just like the first, only older.
"Oho!" said she. "For sixty years I have not smelled a human being. Now here comes a roast for my supper!"
"What?
He again took out the Handkerchief and wiped his face.
"Aha!" said she. "That is my nephew, the husband of my niece!"
He was entertained, and stayed the night there. They all got fine food and drink.
When morning dawned, the Blue Ball rolled again before them along the highway.
It ran and it ran, and then it came to a third hut, like the others. They went in, and there sat a yet older Old Woman in a rocking-chair. She spoke:
"Oho! For ninety years I have smelled no human beings. Now I am getting something for supper!"
 The flesh of a traveller is like gristle, and the soup of him tastes like washwater."
Then they ate and drank out of their own knapsack, and the Son of the Widow spoke:
"We are searching for a Living Kantele. Who can make us one?"
The Old Woman answered:
"Hi! my Boys can make it, but they are in the forest. They will not come home till twilight."
"O well! If they are coming, why we will wait for them."
They waited the whole evening till it was dark. Then three wolves sprang into the hut, leaped over the rafters, and jumped from the dresser, and turned themselves into three handsome young men.
They began to make the Living Kantele, and they told one of the Generals to hold the pine-board.
"If you fall asleep," said they, "it will not go well with you!"
Then they worked on the Kantele. The General held the board, fell asleep, and snored. As he slept, they turned themselves into wolves, gobbled him up for their supper, and ran out into the forest.
The Old Woman said, "They will not come home again till evening."
The lad waited till evening. As it was growing dark, again the three wolves sprang into the hut, leaped from the dresser, and became men.
Again they began to work on the Kantele, and told the second General to hold the board.
"If you sleep, something will happen, as you saw by the other one!"
The General held the pine-board, fell asleep, and snored.
The young men turned themselves again into wolves, gobbled him for their supper, and ran howling into the forest.
"They will not come home before evening," said the Old Woman again.
"All right! When they come, the Kantele must be finished."
They all spent the day walking in the forest, and evening came again. Once more the three wolves sprang into the hut, leaped from the dresser, and turned themselves into men. Now must the last General hold the board! And they said to him:
"Do not you dare to sleep! If you sleep, nothing good will happen!"
He held the board, held it and was a little bit sleepy. He tried hard not to fall asleep, but soon he was snoring. Immediately the young men turned themselves into wolves, and gobbled up the last General.
The lad was alone with the Old Woman!
"They will not come back again before evening."
"All right! When they come, the Kantele must be finished."
Twilight fell. Came the wolves, leaped from the dresser, and changed into men. They began to work on the Living Kantele, and it was the Son of the Widow, who must hold the board this time!
He held it, and held it, became tired, and the young men poked him in the side.
"What? Are you asleep?"
"NO! I am not asleep. I am wondering whether there is more dry than fresh wood in the forest?"
Then they changed themselves into wolves.
"Wait! We will count, and see whether there is more dry or more fresh wood in the forest?"
There they counted the whole day through till evening, then back they came. Again sprang the three wolves over the rafters, down from the dresser, and became men. They worked at the Kantele, and the lad held the board.
He held it, and held it, and grew sleepy. Then he took out the Silken Handkerchief and wiped his eyes. The Old Woman saw it.
"Ah!" said she. "That is the husband of my niece! Why did you not tell me before? The Kantele would have been finished long ago."
Then she entertained him. While she was preparing the food, the young men finished the Kantele.
When the Kantele was all ready, their Mother said to the young men:
"Turn yourselves into wolves. Take him on your backs, and carry him home as quickly as you can, before the Emperor's Son steals his bride."
Then they took him on their backs, and he rode with the most terrible swiftness.
Already the Emperor's Son had carried off the bride to his house, and was going to hold the wedding. The lad threw the Living Kantele down before him.
"Here is the Kantele. Why did you take my bride away before my promised time was up?"
And he rescued his bride from the Emperor's Son, and brought her to his Mother. And they are living there to this very day.


modprobe cciss [ cciss_allow_hpsa=1 ]
Smart Array 5300 Smart Array 5i Smart Array 532 Smart Array 5312 Smart Array 641 Smart Array 642 Smart Array 6400 Smart Array 6400 EM Smart Array 6i Smart Array P600 Smart Array P400i Smart Array E200i Smart Array E200 Smart Array E200i Smart Array E200i Smart Array E200i Smart Array E500
Smart Array 5300 Smart Array 5i Smart Array 532 Smart Array 5312 Smart Array 641 Smart Array 642 Smart Array 6400 Smart Array 6400 U320 Expansion Module Smart Array 6i Smart Array P600 Smart Array P800 Smart Array E400 Smart Array P400i Smart Array E200 Smart Array E200i Smart Array E500 Smart Array P700m Smart Array P212 Smart Array P410 Smart Array P410i Smart Array P411 Smart Array P812 Smart Array P712m Smart Array P711m
Major numbers: 104 cciss0 105 cciss1 106 cciss2 105 cciss3 108 cciss4 109 cciss5 110 cciss6 111 cciss7 Minor numbers: b7 b6 b5 b4 b3 b2 b1 b0 |----+----| |----+----| | | | +-------- Partition ID (0=wholedev, 1-15 partition) | +-------------------- Logical Volume number The device naming scheme is: /dev/cciss/c0d0 Controller 0, disk 0, whole device /dev/cciss/c0d0p1 Controller 0, disk 0, partition 1 /dev/cciss/c0d0p2 Controller 0, disk 0, partition 2 /dev/cciss/c0d0p3 Controller 0, disk 0, partition 3 /dev/cciss/c1d1 Controller 1, disk 1, whole device /dev/cciss/c1d1p1 Controller 1, disk 1, partition 1 /dev/cciss/c1d1p2 Controller 1, disk 1, partition 2 /dev/cciss/c1d1p3 Controller 1, disk 1, partition 3
$ cd /proc/driver/cciss $ ls -l total 0 -rw-r--r-- 1 root root 0 2010-09-10 10:38 cciss0 -rw-r--r-- 1 root root 0 2010-09-10 10:38 cciss1 -rw-r--r-- 1 root root 0 2010-09-10 10:38 cciss2 $ cat cciss2 cciss2: HP Smart Array P800 Controller Board ID: 0x3223103c Firmware Version: 7.14 IRQ: 16 Logical drives: 1 Current Q depth: 0 Current # commands on controller: 0 Max Q depth since init: 1 Max # commands on controller since init: 2 Max SG entries since init: 32 Sequential access devices: 0 cciss/c2d0: 36.38GB RAID 0
Additionally, note that the driver will not engage the SCSI core at init time. The driver must be directed to dynamically engage the SCSI core via the /proc filesystem entry, which the "block" side of the driver creates as /proc/driver/cciss/cciss* at run time. This is because at driver init time, the SCSI core may not yet be initialized (because the driver is a block driver) and attempting to register it with the SCSI core in such a case would cause a hang. This is best done via an initialization script (typically in /etc/init.d, but could vary depending on distribution). For example:
for x in /proc/driver/cciss/cciss[0-9]* do echo "engage scsi" > $x doneOnce the SCSI core is engaged by the driver, it cannot be disengaged (except by unloading the driver, if it happens to be linked as a module.)
Note also that if no sequential access devices or medium changers are detected, the SCSI core will not be engaged by the action of the above script.
echo "rescan" > /proc/scsi/cciss0/1
This causes the driver to:
The driver will output messages indicating which devices have been added or removed and the controller, bus, target, and lun used to address each device. The driver then notifies the SCSI midlayer of these changes.
Note that the naming convention of the /proc filesystem entries contains a number in addition to the driver name (e.g., "cciss0" instead of just "cciss", which you might expect).
Note: Only sequential access devices and medium changers are presented as SCSI devices to the SCSI midlayer by the cciss driver. Specifically, physical SCSI disk drives are not presented to the SCSI midlayer. The only disk devices that are presented to the kernel are logical drives that the array controller constructs from regions on the physical drives. The logical drives are presented to the block layer (not to the SCSI midlayer). It is important for the driver to prevent the kernel from accessing the physical drives directly, since these drives are used by the array controller to construct the logical drives.
The cciss driver is a block driver as well as a SCSI driver and only the tape drives and medium changers are presented to the SCSI midlayer. Furthermore, unlike more straightforward SCSI drivers, disk I/O continues through the block side during the SCSI error-recovery process. Therefore, the cciss driver implements only the first two of these actions, aborting the command, and resetting the device. Note also that most tape drives will not oblige in aborting commands, and sometimes it appears they will not even obey a reset command, though in most circumstances they will. If the command cannot be aborted and the device cannot be reset, the device will be set offline.
In the event that the error-handling code is triggered and a tape drive is successfully reset or the tardy command is successfully aborted, the tape drive may still not allow I/O to continue until some command is issued that positions the tape to a known position. Typically you must rewind the tape (by issuing mt -f /dev/st0 rewind for example) before I/O can proceed again to a tape drive that was reset.
and Documentation/blockdev/cciss.txt and Documentation/ABI/testing/sysfs-bus-pci-devices-cciss in the Linux kernel source tree


IP address is like a mailing address but for your devices. Current IP address are called IP4 and 32 bit hierarchy based address that were designed in 1973. IP addresses are country/region specific, then sub-network and the device address. As they are 32 bits, so current IP4 address can be assigned to 4 Billion unique devices, but as the number of devices on the internet are growing therefore we are transitioning to IP6 which uses 128 bits and can have unto 340 Undecillion unique addresses.
Data Is share over the internet in units or packets, each packet has binary sequences up to 64K in size. Just like physical mailing envelopes, it has the sender and receiver’s information. These packets travel through the electric wires, fiber optic cables and wireless networks.
These packets travel via the distributed network/Internet and can take one of many routes which are build for fault tolerance.These routes are directed by the Routers, which can be direct and indirect. They are like traffic police and can reroute the traffic/packets if there is congestion or the route is broken. More routers increases fault tolerance and increase reliability.
TCP is like an inventory manager which upon the arrival makes sure that all the packets are received and sends the confirmation back to the server, if some packets were loss during transit, it will notify the server and will send the confirmation once received.


I've been posting data from my NanodeRF to emoncms for about a week now. Most of the time it seems to go great, but over the past couple of days the data update rate seemed to be slowing down. Finally found time to hook up to the PC and see the serial output this morning, and the data post was only succeeding once every 10 attempts. So I tried numerous things - added extra diagnostic output, changed to posting to a local server I have complete control over, added a few random delays - but nothing improved the situation. Nothing had changed, so what was going on? Internet and the site I was posting to was responsive, nothing looked wrong. However, the only thing I had not rebooted was my router. Doing so, the problem went away immediately. Data updates every 10 seconds. If my web browsing was slow, or I'd seen other issues, then I'd understand it, but everything else was fine.
I think one to look out for in the future and try and diagnose if it happens again.
(For the record, Netgear DG834GT running V1.03.22 - DGTeam Rev. 1018)
Lloyd
Re: Strange network issue
OK so this is definitely an issue for me. Have been doing a number of controlled experiments today including rebooting and changing power source on EmonBase, but the only thing that returned service to normal was rebooting the router. I have been capturing and graphing in emoncms the ethernet_request counter, and this clearly shows the system going into periods of unresponsiveness, in a very regular pattern. I had thought power could have been an issue, but I don;t think this is the case now - swapping over from usb to FTDI and the failure pattern continues.
I guess there is a chance that the change in my external ip has had an impact, but I don't think this is the case. If I do a manual data post from my PC whilst the emonbase is struggling, it responds with an OK immediately.
Not sure where to go next. I may try a wireshark capture if I can obtain a hub, but doubt that will be until Wednesday evening.
Lloyd
Re: Strange network issue
Have you got any stats from the router..
It sounds like its keeping open all the connections from the NanodeRF and not closing them.
Im using dd-wrt on my router and am showing 21 open connections from the base to CMS system its been running now for over a week and not showing any problems. Iv seem problems with home routers in the past with the number of connections they can keep open before they just grind to a halt so this sounds right. See if your router has an option to show "number of active connections" or something similar sorry im not up to date on your firmware and it looks like the dd-wrt does not work on yours.
This may all be a wild goose chase but i would look at the router.
Rob
Re: Strange network issue
I had terrible problems initially and even ordered a complete nanode kit...
Have replaced Virgin SuperHub with a Netgear WNDR3800 and the situation is MUCH improved....
But, the nanode regularly loses connectivity, resets and resets and then magically starts working again....
Re: Strange network issue
I thought I may have stumbled across something in the ethercard library. A change was made in December that the author was unsure of, so provided instructions on how to reverse it. Unfortunately, this actually made matters worse. So there's another theory down the drain.
What was interesting was the way the serial output differed when running the different versions of the library, which I didn't expect. Normally I see multiple lines returned for each post (as in attached image). With the modified library (ie with the suspect change reversed), I only see one line, the one with date/time on.
Can someone who uses a fairly standard emoncms post their serial output?
Thanks
Lloyd
Re: Strange network issue
Here is an interesting post form the jeelabs.net forum (Consecutive calls to ethercard.browseUrl corrupt previous calls?). May not be the issue here (who knows at the moment), but certainly worth being aware of.
Lloyd
Re: Strange network issue
You can stop emoncms sending full multi line theme html by adding .json to the api call:
http://vis.openenergymonitor.org/emoncms3/api/post.json?apikey=0489a48f8498db5798fdd66842785a95&json={power:252.4,temperature:15.4}
I will add that to the emoncms account page.
Interesting detective work on the routers, I have been logging the number of failed requests and watchdog resets that I get over the last month and a half. About 6500 failed requests where it managed to reconnect without a reset and 500 resets, a reset is forced if it fails to connect after 10 attempts so this could be another 5000 requests in 42 days = 11-22 failed requests an hour. I post once every 5 seconds so that's 12 out of 720 posts an hour that fail a 1.7% failure rate.
When i started logging request failures and resets I noticed that the steeper gradients related to times when I had more than the usual 2 nanodeRF's connected, I haven't been looking at it in detail recently, Id like to do more tests to confirm that.
Re: Strange network issue
Thanks for the info on the http call. I had noticed both options in use, and had wondered what the difference was. Will make a change tomorrow and see what impact that has.
Lloyd
Re: Strange network issue
A quick update as time is rather short tonight.
I've run with .json added to the api call today, and strangely, it is a lot less reliable. Not what I expected at all. The positive news is that I have a number of wireshark captures that occur at the precise moment of failure. The correlation is very high (one to one) between a failed transmit and wireshark complaining about the tcp packets. I don't have time now, but will analyse more over the next day or two and post my findings.
I'm now running without the .json, to try and capture some problems there. At the moment I'm not seeing the errors in the data that I was seeing with .json in the call, bit it may be a matter of time. (I reset my router when making the change so the test is fair).
Lloyd
Re: Strange network issue
Wow that's interesting, would be really good to know why that is happening, not what I expected either!
Re: Strange network issue
for interest, here is a graph that shows how marked the difference is. At the first indicated point on the graph I changed the call to include .json, and then removed it at the second. At each point I also rebooted the router. (To exaggerate the issue I display -1 if the value is zero.)
Lloyd
Re: Strange network issue
That is quite a difference, I will do some tests here to see if I can replicate the effects.
Re: Strange network issue
Here is some output form Wireshark. The top half of the page is a good request, the lower half a bad one. The issue would appear to be the data packet being sent (or at least received) out of sequence, which I believe is a fairly standard thing and so should be handled. Is the ethercard library not handling this out of sequence packet in the correct way? I'm not a TCP expert, so if anyone else would care to comment....
Lloyd
Re: Strange network issue
Packets arriving out of sequence is common and should be catered for in any tcpip stack...
My nanode is fairly stable - I have changed the timeout to 5 attempts..
I will use a packet sniffer when i get a mo - I was concentrating on changing the time from emoncms3 to the nanode, which is in GMT....
Re: Strange network issue
I think I'll post this on the jeelabs forums.
Lloyd


EPOLL_WAIT
Section: Linux Programmer's Manual (2)
Updated: 2014-08-19
Index
Return to Main Contents
NAME
epoll_wait, epoll_pwait - wait for an I/O event on an epoll file descriptor
SYNOPSIS
#include <sys/epoll.h>
int epoll_wait(int epfd, struct epoll_event *events,
int maxevents, int timeout);
int epoll_pwait(int epfd, struct epoll_event *events,
int maxevents, int timeout,
const sigset_t *sigmask);
DESCRIPTION
The
epoll_wait()
system call waits for events on the
epoll(7)
instance referred to by the file descriptor
epfd.
The memory area pointed to by
events
will contain the events that will be available for the caller.
Up to
maxevents
are returned by
epoll_wait().
The
maxevents
argument must be greater than zero.
The
timeout
argument specifies the number of milliseconds that
epoll_wait()
will block.
The call will block until either:
- *
-
a file descriptor delivers an event;
- *
-
the call is interrupted by a signal handler; or
- *
-
the timeout expires.
Note that the
timeout
interval will be rounded up to the system clock granularity,
and kernel scheduling delays mean that the blocking interval
may overrun by a small amount.
Specifying a
timeout
of -1 causes
epoll_wait()
to block indefinitely, while specifying a
timeout
equal to zero cause
epoll_wait()
to return immediately, even if no events are available.
The
struct epoll_event
is defined as :
typedef union epoll_data {
void *ptr;
int fd;
uint32_t u32;
uint64_t u64;
} epoll_data_t;
struct epoll_event {
uint32_t events; /* Epoll events */
epoll_data_t data; /* User data variable */
};
The
data
of each returned structure will contain the same data the user set with an
epoll_ctl(2)
(EPOLL_CTL_ADD, EPOLL_CTL_MOD)
while the
events
member will contain the returned event bit field.
epoll_pwait()
The relationship between
epoll_wait()
and
epoll_pwait()
is analogous to the relationship between
select(2)
and
pselect(2):
like
pselect(2),
epoll_pwait()
allows an application to safely wait until either a file descriptor
becomes ready or until a signal is caught.
The following
epoll_pwait()
call:
ready = epoll_pwait(epfd, &events, maxevents, timeout, &sigmask);
is equivalent to
atomically
executing the following calls:
sigset_t origmask;
sigprocmask(SIG_SETMASK, &sigmask, &origmask);
ready = epoll_wait(epfd, &events, maxevents, timeout);
sigprocmask(SIG_SETMASK, &origmask, NULL);
The
sigmask
argument may be specified as NULL, in which case
epoll_pwait()
is equivalent to
epoll_wait().
RETURN VALUE
When successful,
epoll_wait()
returns the number of file descriptors ready for the requested I/O, or zero
if no file descriptor became ready during the requested
timeout
milliseconds.
When an error occurs,
epoll_wait()
returns -1 and
errno
is set appropriately.
ERRORS
- EBADF
-
epfd
is not a valid file descriptor.
- EFAULT
-
The memory area pointed to by
events
is not accessible with write permissions.
- EINTR
-
The call was interrupted by a signal handler before either (1) any of the
requested events occurred or (2) the
timeout
expired; see
signal(7).
- EINVAL
-
epfd
is not an
epoll
file descriptor, or
maxevents
is less than or equal to zero.
VERSIONS
epoll_wait()
was added to the kernel in version 2.6.
Library support is provided in glibc starting with version 2.3.2.
epoll_pwait()
was added to Linux in kernel 2.6.19.
Library support is provided in glibc starting with version 2.6.
CONFORMING TO
epoll_wait()
is Linux-specific.
NOTES
While one thread is blocked in a call to
epoll_pwait(),
it is possible for another thread to add a file descriptor to the waited-upon
epoll
instance.
If the new file descriptor becomes ready,
it will cause the
epoll_wait()
call to unblock.
For a discussion of what may happen if a file descriptor in an
epoll
instance being monitored by
epoll_wait()
is closed in another thread, see
select(2).
BUGS
In kernels before 2.6.37, a
timeout
value larger than approximately
LONG_MAX / HZ
milliseconds is treated as -1 (i.e., infinity).
Thus, for example, on a system where the
sizeof(long)
is 4 and the kernel
HZ
value is 1000,
this means that timeouts greater than 35.79 minutes are treated as infinity.
C library/kernel ABI differences
The raw
epoll_pwait()
system call has a sixth argument,
size_t sigsetsize,
which specifies the size in bytes of the
sigmask
argument.
The glibc
epoll_pwait()
wrapper function specifies this argument as a fixed value
(equal to
sizeof(sigset_t)).
SEE ALSO
epoll_create(2),
epoll_ctl(2),
epoll(7)
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- epoll_pwait()
-
- RETURN VALUE
-
- ERRORS
-
- VERSIONS
-
- CONFORMING TO
-
- NOTES
-
- BUGS
-
- C library/kernel ABI differences
-
- SEE ALSO
-
This document was created by
man2html,
using the manual pages.
Time: 02:54:50 GMT, September 18, 2014


{% extends 'layout.html' %} {% block content %}
A.T.S.P. is excited to present THE Terraria adventure server! Explore our worlds while stockpiling gear, make yourself a home to show off your hard work and finally, experience hardmode on the weekend to put your effort to the test. If this does not satisfy your adventuring desires, explore our mazes, beat our custom dungeons and make further use of our gameplay-extending features such as advanced wiring, custom statues and many more!
Chests and other valuable objects are automatically protected upon placement, you can also protect whole buildings from change using our anti-grief plugins.
The server is neither a home server nor a Hamachi server, we're a dedicated 24/7 root server hosted and manned by experienced adults. The server is even staffed with it's own developers!
Although it's our hobby to host this server and let others have fun, this still comes at a price every month. While we force nobody to donate, we would be extremely grateful if you did. To encourage users to do so, everyone who donates 5 Euros or more recieves the special in-game rank "VIP". VIPs have access to more commands than regular players, can make use of more statues, own unlimited Bank Chests and more... Depending on the Donation-Type. Click Here!


---
layout: post
title: links for 2007-05-23
date: 2007-05-23 00:00:00
---
-
-
"Depending on which side fence you live, the request for an upfront schedule is either common sense or insanity."
-
"On Friday 18th May, Conservative and Labour MPs voted to exempt Parliament from Freedom of Information laws, creating one law for MPs and Lords and one law for everyone else."
-
"A downloadable 'Ghost Detector' application will also be available for mobile phones. It's designed to detect subtle changes in electromagnetic fields, which is believed to indicate paranormal activity." Oh yes.


You can not access KANR on portrait view. Please change orientation to landscape.
Clicking on Create new object from 'Create Object' tab will allow you to create a new object.
Color:
Rotation:
Opacity:
Scale:X:
Y:
Position:X:
Duration sec.
Timing function:


Return to the article
Check out my skills
Plain
HTML
100%
CSS/CSS3
70%
jQuery
40%
Javascript
65%
XML
40%
C
30%
JAVA
25%
PHP
50%
SQL
80%
VB.NET
35%
Stripes
HTML
100%
CSS/CSS3
70%
jQuery
40%
Javascript
65%
XML
40%
C
30%
JAVA
25%
PHP
50%
SQL
80%
VB.NET
35%


Don't forget to check free website templates every day, because we add a new free website template almost daily.
Even more websites all about website templates on Just Web Templates.
If you're looking for beautiful and professionally made templates you can find them at href="">Template Beauty.
This is a template designed by Profesional Design for you for free you can replace all the text by your own text.


PyScript: Python in the browser!
Can it really replace JavaScript?
At PyCon 2022, PyScript was announced as a way to run Python in the browser and it has made waves in the community since. While there are some really cool demos included in the project, the project is still in early stages of development and the documentation is lagging a bit behind. So let’s have a look at some common things JavaScript is used for, and how to do the, in PyScript.
All code from this post can be found on GitHub. To see the code in action, head over to http://4dcu.be/PyScript-Basics/.
Getting started
We’ll create three files, index.html
, style.css
and main.py
, the former two will be the html page
with a css file for some styling while the latter contains our custom code that will run through PyScript.
Let’s start with index.html
, we’ll define the bare minimum here to load PyScript, our css and Python code.

<title>PyScript Test</title>
<link rel="stylesheet" href="./style.css">
<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />

PyScript status: Not Loaded

<button id="clicks" pys-onClick="increase_counter" class="btn">Count 0</button>
<button id="toggle" pys-onClick="toggle_text" class="btn">Show Text</button>

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus cursus
mauris mauris, vel fermentum risus hendrerit tincidunt. Aliquam pulvinar tellus et iaculis vestibulum. In
pharetra diam eu lectus dignissim tristique. Phasellus laoreet vulputate urna. Fusce vitae elit sodales,
tempus dui in, scelerisque magna.

<button id="clicks_class" pys-onClick="test_class.inc" class="btn">Count 0</button>
<py-script src='./main.py'></py-script>

And a little css to be able to hide the text field, and a bit I grabbed from w3schools to make the buttons look like actual buttons.
body {
padding: 15px;
}
.hidden {
display: none;
}
.btn {
background-color: #4CAF50;
border: none;
color: white;
padding: 15px 32px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 16px;
}
Connecting it to Python
There are two hooks in the code that PyScript will use to run the code in main.py
. At the bottom of the body there
is the tag <py-script src='./main.py'></py-script>
which will specify there is an external file that needs to
be run once the page is loaded. This concept is identical to how you would include a bit of JavaScript code with


WITNESS LIST Criminal Justice (Interim) Committee November 17, 1997-1:30P Supplemental Charge I: On: Allison, Jim (Co.Judg.& Comm. Assoc.), Austin Campbell, Craig (TCLEOSE), Austin Fillmore, Debbie (TX Comm. on Jail Stand.), Austin Goen, Rodney J. (Self), Greenville Hampton, Keith (TX Crim.Def.Lawyer Asso), Austin Hearon, Genevieve (Capacity for Justice), Austin Kepple, Robert (TX Dis. & Cou.Atty.Asso), Austin Kifowit, Dee (TX Cou.Off.w/Menta Inpr), Austin Mitchell, Beth (Advocacy Inc.), Austin White, Bonita (TDCJ-CJAD), Austin Registering, but not testifying: On: Dieter, Allison (Self & Cap. for Justice), Austin


-
Bid and Proposal Co-ordinator
Level: 3 (equivalent to A levels at grades A to E)
Typical length: 24 months
-
Internal Audit Practitioner
Level: 4 (equivalent to certificate of higher education)
Typical length: 18 months
-
Financial Services Professional
Level: 6 (equivalent to bachelor's degree)
Typical length: 42 months
-
Infrastructure technician
warningThis apprenticeship is closed to new starters from 1 August 2020Level: 3 (equivalent to A levels at grades A to E)
Typical length: 12 months
-
Relationship manager (banking)
Level: 6 (equivalent to bachelor's degree)
Typical length: 48 months
-
Digital and technology solutions professional
Level: 6 (equivalent to bachelor's degree)
Typical length: 36 months
Searches related to Business Administrator
{% include '../components/faa-fat/_fat-search-filter.html'%}


The range control is ideal to use as a video seek bar. This example shows how to programmatically use a stylized range control with an HTML5 <video> element.


Preparation time
less than 30 mins
Cooking time
less than 10 mins
Serves
Serves 2
Deep-fry your fish in fizzy batter and eat it hot.
Trim, halve and bone the plaice (or ask your fishmonger to prepare it for you).
For the batter, mix the flour and cornflour together in a large mixing bowl. Season, to taste, with salt and freshly ground black pepper. Gradually whisk in enough of the water to give you a batter with the consistency of double cream (you may not need to use all the water).
Heat the oil in a deep, heavy-based frying pan until the surface of the oil begins to shimmer. To test if it's hot enough, dribble some of the batter into the hot oil. It should sizzle and brown. (NB: hot oil can be very dangerous. Don't leave unattended.)
When the oil is hot, give the batter a final stir. Dip the plaice into the mixture, then drop the fish into the pan of hot oil. The fish will take 3-4 minutes to crisp up, depending on size.
When the fish is crisp and golden, carefully remove the fish with a slotted spoon and drain on kitchen paper.
Serve hot, with wedges of lemon.


class containing all map parameters and definition of gameplay elements
More...
|
| static void | InitGrid (CMatrix &Mat, const unsigned &Size, CPosition &PosPlayer1, CPosition &PosPlayer2, Config &Params) |
| | Initialization Grid and KTokensPlayers. More...
|
| |
| static void | DisplayGrid (const CMatrix &Mat, Config &Params, const unsigned &Border, const bool &PreBorder=false) |
| | Display Grid and KTokensPlayers. More...
|
| |
class containing all map parameters and definition of gameplay elements
◆ DisplayGrid()
| static void Grid::DisplayGrid |
( |
const CMatrix & |
Mat, |
|
|
Config & |
Params, |
|
|
const unsigned & |
Border, |
|
|
const bool & |
PreBorder = false |
|
) |
| |
|
static |
Display Grid and KTokensPlayers.
- Parameters
-
| Mat | : Game grid |
| Params | : Init all variables |
| Border | : Size gaz border |
| PreBorder | : Deadly effect gaz |
◆ InitGrid()
| static void Grid::InitGrid |
( |
CMatrix & |
Mat, |
|
|
const unsigned & |
Size, |
|
|
CPosition & |
PosPlayer1, |
|
|
CPosition & |
PosPlayer2, |
|
|
Config & |
Params |
|
) |
| |
|
static |
Initialization Grid and KTokensPlayers.
- Parameters
-
| Mat | : Game grid |
| Size | : Size grid |
| PosPlayer1 | : Position Player 1 |
| PosPlayer2 | : Position Player 2 |
| Params | : Init positions players |
The documentation for this class was generated from the following files: