BLOG: Using Oracle Big Data Spatial and Graph and Oracle Big Data Lite VM for Multimedia Analytics (Facial Detection, Optical Character Recognition, and QR/Barcode Detection)
David Bayard, Oracle Big Data Pursuit Team
April 2016
Multimedia Analytics with Oracle Big Data Spatial and Graph
In this blog, we will explore how to use and extend the new Multimedia Analytics (MMA) framework that ships with the Oracle Big Data Spatial and Graph (BDSG) product. We will show how we can leverage the BDSG Multimedia Analytics framework to help us do things like facial recognition, optical character recognition, and barcode/QR detection.
Note: This blog build upon some of the work in our previous blog about doing Barcode and QR Detection with the Big Data Lite VM. You might benefit from reading the previous blog before continuing. The previous blog is available here: https://blogs.oracle.com/datawarehousing/entry/using_spark_scala_and_oracle
Getting Started with Oracle Big Data Spatial and Graph on the Oracle Big Data Lite VM:
This demonstration uses the Oracle Big Data Lite VM version 4.4, which is available here: http://www.oracle.com/technetwork/database/bigdata-appliance/oracle-bigdatalite-2104726.html . Version 4.4 of the VM includes CDH 5.5 and Oracle Big Data Spatial and Graph version 1.1.2. You may not be familiar with Oracle Big Data Spatial and Graph; if so, you can find more information at http://docs.oracle.com/cd/E69290_01/doc.44/e67958/toc.htm . This blog will focus on the multimedia analytics framework, which is Chapter 6 in the previous link.
Obviously, your first step is to download the Oracle Big Data Lite VM (version 4.4 or higher). Once you have the Big Data Lite VM downloaded, imported, and running, then click on the “Refresh Samples” icon on the VM desktop to refresh the samples. At this point, you should find the files needed for this blog under your /home/oracle/src/Blogs/BDSG_Barcode directory.
[Note: If you want to get access to the files referenced in
this blog outside of the Oracle Big Data LiteVM, you can find them here: https://github.com/oracle/BigDataLite/tree/master/Blogs/BDSG_Barcode
]
Now, run setup.sh
The setup.sh script will configure the Big Data Lite VM for
this blog by first getting the java libraries needed by ZXing (which is an
open-source Barcode/QR detection library). Then it will proceed to setup Tesseract,
which is a C++ open source library for Optical Character Recognition. Next, we
grab the Tess4J java libraries that make it easy to call Tesseract from java.
Finally, we copy a couple of sample videos into HDFS. Review the setup.sh
script if you are curious about the specific details and commands.
Running the basic sample from BDSG Multimedia Analytics
Now that we have click on Refresh Samples and run setup.sh,
our first activity will be to run a Facial Detection sample that ships with Oracle
Big Data Spatial and Graph’s Multimedia Analytics feature. We will try to
identify the faces from this video (which is pretty funny, so check it out with
the sound on): https://www.youtube.com/watch?v=Qz8bRyf1374&list=PL0DF9A83456FF4351&index=3
You can learn more about the Facial Detection sample here: http://docs.oracle.com/cd/E69290_01/doc.44/e67958/GUID-4B15F058-BCE7-4A3C-A6B8-163DB2D4368B.htm#GUID-3C6B70D7-8AE9-4580-AE1C-7F8F15093F3E
The facial detection sample leverages the open source OpenCV
libraries. You can read more about OpenCV’s functionality for facial
recognition here: http://docs.opencv.org/2.4/modules/contrib/doc/facerec/facerec_tutorial.html
For this sample, the Big Data Lite VM has already been
trained to detect the faces of 4 different individuals (you can re-run the
training with the /home/oracle/src/samples/mma/facetrain/trainface_bdl.sh script
if you are interested). The set of training images is located at /u01/oracle-spatial-graph/multimedia/example/facetrain/faces/bigdata
. Below are the training images for individual #4.
For this blog, let’s invoke the multimedia analytics
framework to do facial detection using our trained facial data against our
sample video (which is stored locally on the VM at /u01/oracle-spatial-graph/multimedia/example/video/bigdata.mp4
). To do so,
$ cd /home/oracle/src/samples/mma/analytics
$ hadoop fs -rm -R voutput_image
$ ./runjob_bdl.sh
Notice that a map-reduce job is started. The multimedia
analytics framework provides an extensible map-reduce job that we can customize
to do various kinds of image analytics.
When the map-reduce job finishes, we can run the script playimage_bdl.sh
(located at /home/oracle/src/samples/mma/analytics ) to see what faces it
detected.
When done, close the image window and type ctrl-c in the
terminal window to get back to the terminal prompt.
Building a simple custom OrdFrameProcessor for the framework
Now that we’ve seen a working example, let’s look at what it
will take to build our own. As we noted above, the multimedia analytics
framework provides an out-of-the-box map-reduce program to extend. The main
way you will extend the framework is by writing your own implementation of the OrdFrameProcessor
class (Read more about extending the framework here: http://docs.oracle.com/cd/E69290_01/doc.44/e67958/GUID-4B15F058-BCE7-4A3C-A6B8-163DB2D4368B.htm#BDSPA-GUID-090BD058-396D-41F8-814E-D407DF0941F6
and here: http://docs.oracle.com/cd/E69290_01/doc.44/e66533/oracle/ord/hadoop/mapreduce/OrdFrameProcessor.html
).
Our first OrdFrameProcessor will be very basic; it will
simply take the individual images passed in to it and pass them along. In
essence, this example will leverage the framework to convert a video into a
series of images.
Before continuing, let’s run this simple example by
executing the run_video2image.sh script in the /home/oracle/src/Blogs/BDSG_Barcode
directory.
When the framework’s map-reduce job completes, enter Y to
view the results…
This will launch a script (save_images.sh) that will save
the output images (which by default were written to set of SequenceFiles on
HDFS) to the local linux file system.
Then it will launch the linux “xdg-open” utility to let you
browse the individual image files. Use the Next and Previous arrows to
navigate amongst the images. NOTE: the first image will be black because the
video starts out with a black image; simply click the Next arrow to see the
images as expected.
Let’s look at the code:
import oracle.ord.hadoop.mapreduce.OrdFrameProcessor;
import oracle.ord.hadoop.mapreduce.OrdImageWritable;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.io.Text;
import java.awt.image.BufferedImage;
public class VideoToImage
extends OrdFrameProcessor {
private Text m_frame_key_text = null;
private Text m_frame_value_text = null;
private OrdImageWritable m_frame_image = null;
public VideoToImage(Configuration conf) {
super(conf);
}
/**
* Implement the processFrame method to process the key-value pair, an image,
* in the mapper of a MapReduce job.
*/
@Override
public void processFrame(Text key, OrdImageWritable value) {
if (m_frame_key_text == null ||m_frame_value_text == null || m_frame_image == null) {
m_frame_image = new OrdImageWritable();
m_frame_key_text = new Text();
m_frame_value_text = new Text();
}
m_frame_key_text.set(key);
//this is where we do our custom code.
//In this example, do a simple identity map. Take the image and return it.
BufferedImage bi = value.getImage();
m_frame_image.setImage(bi);
}
/**
* Implement the getKey method to return the key after processing an image
* in the mapper.
*/
@Override
public Text getKey() {
return m_frame_key_text;
}
/**
* Implement the getValue method to return the value after processing an
* image in the mapper.
*/
@Override
public OrdImageWritable getValue() {
return m_frame_image;
}
}
Notice that the class extends OrdFrameProcessor. And notice
that we defined the types of the Keys and Values that are passed in and out of
the class. In this example, the input and output keys are both Text while the
input and output values are both OrdImageWriteable.
Also notice the implementation of the processFrame method.
This method reads the value being passed in (which is an OrdImageWriteable that
can be converted to a regular java BufferedImage via
OrdImageWriteable.getImage). Then it stores the BufferedImage as an
OrdImageWriteable (via OrdImageWriteable.setImage). Essentially, this code
demonstrates how to convert from BufferedImage to OrdImageWriteable and back.
Beyond writing our OrdFrameProcessor, we also need to setup
a configuration file that tells the framework’s map-reduce job about our custom
code. Here is what the configuration file looks like:
<?xml
version="1.0" encoding="UTF-8"?>
<configuration>
<!--Framework properties -->
<property>
<name>oracle.ord.hadoop.numofsplits</name>
<value>2</value>
</property>
<property>
<name>oracle.ord.hadoop.frameinterval</name>
<value>3</value>
</property>
<property>
<name>oracle.ord.hadoop.inputtype</name>
<value>video</value>
</property>
<property>
<name>oracle.ord.hadoop.outputtypes</name>
<value>image</value>
</property>
<property>
<name>oracle.ord.hadoop.ordframegrabber</name>
<value>oracle.ord.hadoop.decoder.OrdJcodecFrameGrabber</value>
</property>
<property>
<name>oracle.ord.hadoop.ordframeprocessor</name>
<value>VideoToImage</value>
</property>
<property>
<name>oracle.ord.hadoop.ordframeprocessor.k2</name>
<value>org.apache.hadoop.io.Text</value>
</property>
<property>
<name>oracle.ord.hadoop.ordframeprocessor.v2</name>
<value>oracle.ord.hadoop.mapreduce.OrdImageWritable</value>
</property>
</configuration>
Notice that in the configuration file, we specify our custom
class (VideoToImage) to use for the OrdFrameProcessor and we inform the
framework of the Types to use for the output key and value.
Finally, let’s look at the command that runs it (this is a
command inside the run_video2image.sh script):
hadoop jar ${MMA_HOME}/lib/ordhadoop-multimedia-analytics.jar -libjars ${CUR_DIR_NAME}/Video2Image/VideoToImage.class -conf ${CUR_DIR_NAME}/Video2Image/video2image.xml bdsg_mma_input bdsg_mma_output
Notice that in the command line, we’ve told the framework
map-reduce job where to find the configuration file, as well as what hdfs
directories to use for input and output.
Building and Running the OrdFaceDetectionSample
Now that we have gotten a very simple example built and
running, we will look again at the Face Detection sample that we ran
previously. You can find the code in the OrdFaceDetection directory (/home/oracle/src/Blogs/BDSG_Barcode/OrdFaceDetection
).
Let’s first compile and run this example:
$ cd /home/oracle/src/Blogs/BDSG_Barcode
$ run_sample.sh
When asked type Y to view the image output. Notice how the
faces are detected in most scenes, especially when they are fully facing
forward.
Now, explore the java source (/home/oracle/src/Blogs/BDSG_Barcode/OrdFaceDetection/OrdFaceDetectionSample.java),
configuration file (/home/oracle/src/Blogs/BDSG_Barcode/OrdFaceDetection/sample.xml),
and the hadoop jar command (/home/oracle/src/Blogs/BDSG_Barcode/run_sample.sh)
to see how this example was built.
QR Detection (ZXing) with Big Data Spatial and Graph:
Our next example will build on some of the work done in our
previous blog post, located here: https://blogs.oracle.com/datawarehousing/entry/using_spark_scala_and_oracle
Specifically, we will re-use the BarcodeProcessor.java from
the previous blog.
Run the run_QRImage.sh script to see it in action
against a video QR.mov that we’ve provided.
If we look at the java source code (/home/oracle/src/Blogs/BDSG_Barcode/QR/QRImage.java)
for our OrdFrameProcessor, we will see this code in the processFrame() method
showing how we are calling our BarcodeProcessor class and how we are drawing
the results on the output image:
BufferedImage bi = value.getImage();
String barcodeString ="";
try {
barcodeString = BarcodeProcessor.processImage(bi);
System.out.println("Testing. "+barcodeString);
} catch (Exception e) {
System.out.println("Key:"+key+" exception: "+e);
barcodeString = "Exception:"+e;
}
m_frame_value_text.set(barcodeString);
int width = bi.getWidth();
int height = bi.getHeight();
BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = bufferedImage.createGraphics();
g2d.drawImage(bi, 0, 0, null);
g2d.setPaint(Color.blue);
g2d.setFont(new Font("Serif", Font.BOLD, 36));
FontMetrics fm = g2d.getFontMetrics();
int y = fm.getHeight();
for (String line : barcodeString.split(" ---- ")) {
int x = width - fm.stringWidth(line) - 5;
g2d.drawString(line, x, y += fm.getHeight());
}
g2d.dispose();
m_frame_image.setImage(bufferedImage);
...
To learn more about QR/Barcode detection and the open source
ZXing library, refer to our previously mentioned blog.
Optical Character Recognition (Tesseract) with Big Data Lite VM:
Our next example will use the open source Tesseract library
to do Optical Character Recognition (OCR). Read about Tesseract here: https://github.com/tesseract-ocr/tesseract
One of your first challenges to working with Tesseract will
be installing it. We’ve taken care of installing it for you in the setup.sh
script you ran earlier, but let’s discuss what setup.sh did. Tesseract is a
C++ program. One way to install it is by downloading the source and building
it. For purposes of this blog, we decided to look for an already compiled
version of Tesseract. Given that the Big Data Lite VM runs Oracle Linux (which
uses rpms/yum like RedHat), we want to find an rpm-based version of Tesseract.
We were able to find this at the EPEL yum repository. EPEL stands for “Extra
Packages for Enterprise Linux” (you can find out more about EPEL here: https://fedoraproject.org/wiki/EPEL/FAQ
). Our setup.sh script first configures our Big Data Lite VM to know about
EPEL, then it uses yum to install and download Tesseract and its dependencies.
Tesseract also needs training data to recognize images as characters, so we
download some pre-built training data via EPEL as well.
Now that Tesseract is installed in your Big Data Lite VM,
feel free to test it out on the command line. Simply run “tesseract -help”.
As discussed above, Tesseract is a C++ open source project.
However, much of the hadoop ecosystem is more tailored towards working with java.
There are a couple of approaches to bridge Tesseract to java, such as Tess4J
and the java-cpp-presets project. This blog/demonstration shows the Tess4J
approach, although we’ve used the java-cpp-presets approach in other situations
and don’t judge one better than the other. For more on Tess4J, see http://tess4j.sourceforge.net/ . The
setup.sh script downloaded the jar files needed by Tess4J and its dependencies.
Using Tesseract with Big Data Spatial and Graph:
Now that we’ve discussed how Tesseract and Tess4J were
setup, let’s look at an example of Tesseract in a custom OrdFrameProcessor. Run
the script “run_tessImage.sh” to run against a sample video OCR.mov that
we’ve provided.
You should see that the Tesseract did a fairly good job at
identifying the characters in the frames that were grabbed from the sample
video.
Let’s look at parts of the code (/home/oracle/src/Blogs/BDSG_Barcode/TessImage/TessImage.java)
of our custom OrdFrameProcessor:
public TessImage(Configuration conf) {
super(conf);
instance = Tesseract.getInstance();
instance.setDatapath("/usr/share/tesseract");
instance.setLanguage("eng");
instance.setPageSegMode(3);
}
…
String ocrString ="";
try {
ocrString = instance.doOCR(bi);
System.out.println("Key:"+key+" OCR:"+ocrString);
} catch (Exception e) {
System.out.println("Key:"+key+" exception: "+e);
ocrString = "Exception:"+e;
}
…
Key things to highlight in the code are the necessary
Tesseract setup commands in the class constructor and the call to the Tesseract
api (instance.doOCR) in the processFrame() method.
Outputting Text Information from the framework
So far, all of our OrdFrameProcessor examples have generated
image (OrdImageWriteable) output. Our final example will show how to generate
text output.
Run the script run_tessText.sh
As seen above, this example saves its output as textual
data, not images.
To see how this worked, notice the changes in the xml
configuration file (/home/oracle/src/Blogs/BDSG_Barcode/TessText/tess.xml) as
well as the Tess.java (/home/oracle/src/Blogs/BDSG_Barcode/TessText/Tess.java)
class.
<property>
<name>oracle.ord.hadoop.outputtypes</name>
<value>csv</value>
</property>
<property>
<name>oracle.ord.hadoop.ordframeprocessor.v2</name>
<value>org.apache.hadoop.io.Text</value>
</property>
public class Tess
extends OrdFrameProcessor {
…
public Text getValue() {
return m_frame_value_text;
}
Moving Beyond:
Hopefully, this was a good start for your journey into Big
Data Spatial and Graph’s Multimedia Analytics Framework. Here are some
possible future paths you could take:
- You could make test the above code out with your own
movies. For instance, I used my iPhone to record some videos, copied them
onto my laptop, and then copied them into my Big Data Lite VM.
- You could get your own set of facial photos and train the
Facial Detection example to work with your own videos.
- You could explore other possibilities for custom
OrdFrameProcessor, using other features of the OpenCV or other open source
libraries.
NOTE: If you want to play around with the source
files and make modifications, you should probably copy the BDSG_Barcode
directory tree into a new directory outside of /home/oracle/src. This is
because the “Refresh Samples” utility will wipe-out the /home/oracle/src directory
every time it runs.
Conclusion:
This blog has shown you how work with and extend the
Multimedia Analytics framework that is part of Oracle Big Data Spatial and
Graph. We have explored how the Facial Recognition example works and built new
examples to do Barcode/QR detection and Optical Character Recognition.
Hopefully, this has made you more comfortable with working
with tools like the Oracle Big Data Lite VM, Oracle Big Data Spatial and Graph,
OpenCV, ZXing, Tesseract, Tess4j, and EPEL. Enjoy.
About the Author:
David Bayard is a member of the Big Data Pursuit team for
Oracle North America Sales.


JavaScript is disabled on your browser.
Skip navigation links
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
Prev Letter
Next Letter
Frames
No Frames
All Classes
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
R
S
T
U
V
W
Y
W
WebClientPacket
- Class in
org.cantaloupe.network.web
WebPacket
- Class in
org.cantaloupe.network.web
WebPacket()
- Constructor for class org.cantaloupe.network.web.
WebPacket
WebPacketHandler
- Class in
org.cantaloupe.network.web
WebPacketHandler()
- Constructor for class org.cantaloupe.network.web.
WebPacketHandler
WebServer
- Class in
org.cantaloupe.network.web.server
WebServer.Scopes
- Class in
org.cantaloupe.network.web.server
WebServerConnection
- Class in
org.cantaloupe.network.web.server
WebServerPacket
- Class in
org.cantaloupe.network.web
WebServerPacket()
- Constructor for class org.cantaloupe.network.web.
WebServerPacket
WebServerPacketListener
- Class in
org.cantaloupe.network.web.server
WHITE
- Static variable in class org.cantaloupe.text.format.
TextColors
world(World)
- Method in class org.cantaloupe.entity.
FakeArmorStand.Builder
Sets the world of the builder.
world(World)
- Method in class org.cantaloupe.entity.
FakeEntity.Builder
Sets the world of the builder.
world(World)
- Method in class org.cantaloupe.entity.
FakePlayer.Builder
Sets the world of the builder.
world(World)
- Method in class org.cantaloupe.hologram.
Hologram.Builder
Sets the world of the builder.
world(World)
- Method in class org.cantaloupe.statue.
ArmorStandStatue.Builder
world(World)
- Method in class org.cantaloupe.statue.
PlayerStatue.Builder
world(World)
- Method in class org.cantaloupe.statue.
Statue.Builder
World
- Class in
org.cantaloupe.world
WORLD_SWITCH
- Static variable in class org.cantaloupe.player.
PlayerManager.Scopes
WorldListener
- Class in
org.cantaloupe.wrapper.listeners
WorldListener()
- Constructor for class org.cantaloupe.wrapper.listeners.
WorldListener
WorldManager
- Class in
org.cantaloupe.world
WorldObject
- Class in
org.cantaloupe.world
WorldObject()
- Constructor for class org.cantaloupe.world.
WorldObject
WorldObjectPlaceEvent
- Class in
org.cantaloupe.events
WorldObjectPlaceEvent(World, WorldObject)
- Constructor for class org.cantaloupe.events.
WorldObjectPlaceEvent
WorldObjectRemoveEvent
- Class in
org.cantaloupe.events
WorldObjectRemoveEvent(World, WorldObject)
- Constructor for class org.cantaloupe.events.
WorldObjectRemoveEvent
WorldSource
- Class in
org.cantaloupe.audio.source
An abstract class containing methods for physical sources.
write()
- Method in class org.cantaloupe.audio.network.packets.
S004PacketPlay
write()
- Method in class org.cantaloupe.audio.network.packets.
S005PacketPlayBounds
write()
- Method in class org.cantaloupe.audio.network.packets.
S009PacketVolume
write()
- Method in class org.cantaloupe.audio.network.packets.
S010PacketPan
write()
- Method in class org.cantaloupe.audio.network.packets.
S011PacketVolumePan
write()
- Method in class org.cantaloupe.audio.network.packets.
S012PacketSync
write()
- Method in class org.cantaloupe.audio.network.packets.
SXXXPacketSource
write()
- Method in interface org.cantaloupe.network.packet.
IPacket
Writes the data to be sent.
write()
- Method in class org.cantaloupe.network.tcp.server.packets.
S000PacketSession
write()
- Method in class org.cantaloupe.network.tcp.server.packets.
S001PacketConnect
write()
- Method in class org.cantaloupe.network.tcp.server.packets.
S002PacketDisconnect
write()
- Method in class org.cantaloupe.network.tcp.
TCPClientPacket
write()
- Method in class org.cantaloupe.network.tcp.
TCPPacket
write()
- Method in class org.cantaloupe.network.web.server.packets.
S000PacketSession
write()
- Method in class org.cantaloupe.network.web.server.packets.
S001PacketConnect
write()
- Method in class org.cantaloupe.network.web.server.packets.
S002PacketDisconnect
write()
- Method in class org.cantaloupe.network.web.
WebClientPacket
write()
- Method in class org.cantaloupe.network.web.
WebPacket
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
R
S
T
U
V
W
Y
Skip navigation links
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
Prev Letter
Next Letter
Frames
No Frames
All Classes


Every year we look forward to hosting WOW! That’s Engineering—an all day event that includes workshops, panels, speakers, and hands-on activities with a focus on tech and engineering in order to encourage female youth to pursue careers in STEM. Last year we had over 140 attendees (highschoolers and some parents) from all over the Bay Area. Companies like Blach Construction, IBM, NASA, Lockheed Martin, and Intel held interactive workshops which incorporated building bridges, robots, code, circuits, and career-related skills


How to get the scroll position in a page or in an element.


Sonars¶
Athos and Porthos has two sonar arrays (front and rear), while Aramis have only one (front) sonar array, sonar or ultrasoud is a sensor that uses sound wave for detect obstacles and range information for collision avoidance.
Sonar Specs¶
- Range of view: 0.1 m ~ 5 m
- Aquisition rate: 25 Hz
Warning
If the sonar doesn’t view anything in its cone of view, it will send to the software the max range.
Geometry¶
The position of each sonar is showed in the image below.
Important
- All these locations are fixed in the robot.
- There’re a URDF file, describing these locations to ROS. Please see the section description of the robot.
Sensitivity Adjustment¶
The driver electronics for each array is calibrated at the factory. However, you may adjust the array’s sensitivity and range to accommodate differing operating environments. The sonar gain control is on the underside of the sonar driver board, which is attached to the floor of each sonar module.
Sonar sensitivity adjustment controls are accessible directly, although you may need to remove the Gripperto access the front sonar, if you have that accessory attached. For the front sonar, for instance, locate ahole near the front underside of the array through which you can see the cap of the sonar-gain adjustment potentiometer. Using a small flat-blade screwdriver, turn the gain control counterclockwise to make the sonar less sensitive to external noise and false echoes.
Low sonar-gain settings reduce the robot’s ability to see small objects. Under some circumstances, that is desirable. For instance, attenuate the sonar if you are operating in a noisy environment or on uneven or highly reflective floor, a heavy shag carpet, for example. If the sonar are too sensitive, they will “see” the carpet immediately ahead of the robot as an obstacle.
Increase the sensitivity of the sonar by turning the gain-adjustment screw clockwise, making them more likely to see small objects or objects at a greater distance. For instance, increase the gain if youare operating in a relatively quiet and open environment with a smooth floor surface.
By Mobile Robots©
Hint
See more in the manual.


webapplications 4
2020-2021
Your assignment for this class can be found as a pdf on chamilo
You'll also find a github classroom link there (if you don't see a github classroom link for some reason, contact me asap)
deadline is friday 21th of May 2021, 23h59
0 introduction
what are we going to do this course?
last updated 14 januari 2021
1. angular basics
the basics of a component, and how to pass data to it using @Input
last updated 14 feb 2021
2. angular services
@Output, event handlers and services in angular
last updated 11 feb 2020
3. .NET Core backend API
slides are a pdf on chamilo
4. use the API
introduction on observables, learn how to connect with our backend API
last updated 26 feb 2020
5. forms
how to build reactive forms with validation
last updated 1 March 2020
6. testing
testing with Cypress
last updated 8 March 2020
7. routing and modules
how to handle routing, modules and lazy loading
last updated 17 March 2020
8. authentication
authentication in the frontend
last updated 9 april 2020
9. state and advanced rxjs
state management, using rxjs
last updated 1 may 2020


Money Play. How should Red play 33?
pips Red=155 White=181
(CorrectAnswer= 0/0, ErrorScore= 0)
One three will be played 6/3. Being ahead in the race 13/4* seems illogical.
Similarly, 24/21, 13/10(2), 6/3 isn’t quite right as it gives White targets to aim at.
Best is the very simple. 8/5(3), 6/3. This obeys Falafel’s law and puts the pressure where it belongs, on White’s rear blots which will then need to anchor or face a blitz.
Anything other than 8/5(3), 6/3 is a blunder.
Similarly, 24/21, 13/10(2), 6/3 isn’t quite right as it gives White targets to aim at.
Best is the very simple. 8/5(3), 6/3. This obeys Falafel’s law and puts the pressure where it belongs, on White’s rear blots which will then need to anchor or face a blitz.
Anything other than 8/5(3), 6/3 is a blunder.
1. Cubeful 2-ply 8/5(3) 6/3 Eq.: +0.545 0.616 0.236 0.010 - 0.384 0.077 0.002 2. Cubeful 2-ply 24/21 13/10(2) 6/3 Eq.: +0.436 (-0.109) 0.602 0.207 0.010 - 0.398 0.090 0.003 3. Cubeful 2-ply 24/15 6/3 Eq.: +0.333 (-0.212) 0.584 0.185 0.010 - 0.416 0.099 0.003 4. Cubeful 0-ply 24/21 8/5(2) 6/3 Eq.: +0.309 (-0.236) 0.565 0.209 0.014 - 0.435 0.088 0.003 5. Cubeful 0-ply 13/4* 6/3 Eq.: +0.303 (-0.242) 0.563 0.210 0.018 - 0.437 0.091 0.004


 The two of them as quickly possible, and when they were safe, and gave each other a giant .
One day, and were walking through the woods, when suddenly a giant appeared. "", cried. The two of them as quickly possible, and when they were safe, and gave each other a giant .


[Loading...]
The top panel is an image plot of phenotype, measured over time, for many individuals. The rows correspond to individuals. There is a color scale at the bottom right.
Hover over a row to see the detailed time course below.
Click on a row and the curve below will be retained as you move away. Click again (if you can get your pointer onto it) and it will be removed.
Code on github


Recently I read chenshuo's blog, 《A proper implementation of string class in C++ interview》，the article shows beautiful implementation of a minimalist string class, but not support some complex operator,such as [],==,<，no exception handing. So I try to implement a string class, supplement some remaining function, including exception handing and testing.
Requirements
The specific requirements are these:
Support conversion from/to traditional c string.
- string object -> c_str()
- c string -> string object
Support [] operator, modify a character in a string object.
- Overloaded operator =, ==, >, <, +, +=.
- Some handy function, such size(),empty().
- String object can use as value type of standard container,such as vector/list/deque.
- String object can use as key type of map/unordered_map.
- Support exception handing: it's best to specify a custom function to handing
new
failure, when allocating string space. - Support testing: Write test case(use google test, or Boost test framework) to test all kinds of unexpected circumstances.
Design
when the system unable to allocate the request memory, how to handling?
Generally, there are two ways to haneling this situation.use "nothrow" form of new operator, write codes like this:
Widget *pwd = new (std::nothrow) Widget; if (pwd == NULL) { ... }
set a handler to handling allocating failure.
Befor operator new throws an exception in response to an unsatisfiable request for memory, it calls a client-specifiable error-handling function called a new-handler. You can callset_new_handler
function to set it.void outOfMen() { std::cerr << "Unable to satisfy request for memory."; std::abort(); } int main() { std::set_new_handler(outOfMen); int *pBigDataArray = new int[100000000L]; ... }
In this place, I write a class
NewHandlerHolder
，inherited by string class to set a class-specfic new-handler. when dynamically allocating string object failed, it will call new-handler setted in string class.string class support value type, key type of standard container.
Sequential container(such as vector, deque, list,etc.) can keep any type objects, but some container operation requires that value type class implement some operator, such as<
operator for sort operation. For the associative containers(map, multimap, set, and multiset), the key type must define a way to compare the elements. By default, the library uses the < operator for the key type to compare the keys. In the set types, the key is the element type; in the map types, the key is the first type.testing
Use boost test framework to test every function in string class. Write test cases to test all kinds of success or failure.
Implementation
Generally, there are three way to implement string class:
Eager Copy
This has no special processing. The code skeleton like this:class string { public: char *begin() {return start;} char *end() {return start+size;} size_t size() const {return size;} size_t capacity() const {return capacity;} ... private: char *start; size_t size; size_t capacity; };
Data structure schematic diagram like this:
SSO(short-string-optimized)
It has local buffer to store short string, if the string too large to keep in local buffer, it will store it in a dynamic memory space addressed bystart
pointer.The code skeleton like this:class string { public: //some access function ... private: char *start; size_t size; static const int kLocalSize = 15; union { char buffer[kLocalSize+1]; size_t capacity; }data; };
The memory layout like this:
If the string too large to store in the buffer, it will dynamically allocate a space in heap pointed by start to store string.
COW(Copy-On-Write)
Copy a string with no modification, it will actually not copy all char string, just increase it's referance count. While copy a string with some modification, or directly modify one more char in string, it will reallocate a new space to store new string, and revise referance count.The code skeleton like this:class string { public: //some access function ... private: struct Rep { size_t size; size_t capacity; size_t refcount; char *data[1]; }; char *start; };
The memory layout like this:
Andrei Alexandrescu advise we should choose right version of string for different application Scenarios. For short strings, use SSO version; For strings of medium length, use Eager Copy version; For large strings, use COW version. You can profiling to decide s to use which version of string.
I implement Eager Copy version, and SSO version string, the code is in file1, file2.


20,000 Leagues Under the Sea
Produced by Walt Disney. Directed by Richard Fleischer. Starring Kirk Douglas, James Mason, Paul Lukas, and Peter Lorre. Runtime: 127. Reviewed by Michael A. Turton
This cinema classic still moves the heart and stirs the imagination even after so many years have passed.
It is the middle of the 19th century. A strange creature, perhaps a ship, has been preying on the shipping of the world. Sent to find and fight it, three men, Ned Land (kirk Douglas), Professor Aronax (Paul Lukas) and his faithful servant, Conseil (Peter Lorre) accidently find themselves aboard the submarine of Captain Nemo (James Mason), who is moved by powerful, mysterious passions which cause him to terrorize the world. A stirring adventure story which everyone has read, _20,000 Leagues Under the Sea_ remains a classic of high ... er... low adventure.
Disney spent a bundle on sets, models and special effects, and all have held up well over the years. The scenes of the men moving underwater, the submarine ramming the ships, the ships exploding undersea, and other effects still excite, while the sets of the submarine, outre to begin with, have become appropriately outlandishly age-of-iron over the years. Sadly, the acting is spotty. Mason handles the smolder of Nemo well, but his impassioned outbursts sound forced. Lukas' monotone efficiently packs the maximum of incomprehensibility into the minimum of emotion. Peter Lorre is badly miscast, sounding conspiratorial rather than timid.  Though the story too often depends on cliches, like the use of an undiscovered island in the S. Pacific where Nemo has his base, its great reach and stunning vision compel respect even in an age of technological miracles.
Despite its flaws this film remains a great favorite of young males, many of whom fondly remember it into adulthood. A good offbeat choice for those nights when the video store offers nothing but frustration. 4 out of 5.
Copyright 1998 by Michael A. Turton
-----== Posted via Deja News, The Leader in Internet Discussion ==----- http://www.dejanews.com/rg_mkgrp.xp Create Your Own Free Member Forum
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Current Score: 0 || Correct: 0 || Incorrect: 0
What is the answer?
A
Choice A
B
Choice B
C
Choice C
D
Choice D


A few weeks back, Saul Mora and I sat down for a (virtual) chat on his podcast, NSBrief. It was supposed to be a conversation about being involved in open source projects, but the conversation ended up veering into matters of life and importance.
I got a wee bit rambl-ey, as some of the topics we were discussing were still pretty raw for me (in particular my health over the last few years), but I enjoyed the conversation so I think it’s worth a listen if you haven’t done so already!


| Package | com.whirled.avrg |
| Class | public class PlayerSubControlServer |
| Inheritance | PlayerSubControlServer PlayerSubControlBase TargetedSubControl AbstractSubControl AbstractControl flash.events.EventDispatcher |
| Implements | MessageSubControl |
See also
| Method | Defined by | ||
|---|---|---|---|
|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registers an event listener.
| AbstractControl | ||
|
awardPrize(ident:String):void
Awards the specified prize item to this player.
| PlayerSubControlServer | ||
|
awardTrophy(ident:String):Boolean
Awards the specified trophy to this player.
| PlayerSubControlServer | ||
|
completeTask(taskId:String, payout:Number):void
This method calculates and awards a coin payout for the player.
| PlayerSubControlBase | ||
|
consumeItemPack(ident:String):Boolean
Consumes the specified item pack for this player.
| PlayerSubControlServer | ||
|
deactivateGame():void
Quits the game for this player.
| PlayerSubControlBase | ||
|
doBatch(fn:Function, ... args):void
Execute the specified function as a batch of commands that will be sent to the server
together.
| AbstractSubControl | ||
|
getBars():int
Returns this player's current bar balance.
| PlayerSubControlBase | ||
|
getCoins():int
Returns this player's current coin balance.
| PlayerSubControlBase | ||
|
getPartyId():int
Get the party id of this player.
| PlayerSubControlBase | ||
|
getPlayerId():int
Returns the id of this player.
| PlayerSubControlServer | ||
|
getPlayerItemPacks():Array
Returns all item packs owned by this client's player (the default) or a specified player.
| PlayerSubControlBase | ||
|
getPlayerLevelPacks():Array
Returns all level packs owned by this client's player (the default) or a specified player.
| PlayerSubControlBase | ||
|
getPlayerName():String
Returns the name of this player.
| PlayerSubControlServer | ||
|
getRoomId():int
Accesses the id of the room that this player is in.
| PlayerSubControlBase | ||
|
getTargetId():int
Get the targetId on which this control operates.
| TargetedSubControl | ||
|
holdsTrophy(ident:String):Boolean
Returns true if this client's player (the default) or a specified player has the trophy
with the specified identifier.
| PlayerSubControlBase | ||
|
isConnected():Boolean
Are we connected and running inside the whirled environment, or has someone just
loaded up our SWF by itself?
| AbstractSubControl | ||
|
moveToRoom(roomId:int, exitCoords:Array = null):void
Instructs this player's client to move to the specified room, or pass 0 to put the player
in no room.
| PlayerSubControlBase | ||
|
playAvatarAction(action:String):void
Plays an action on this players avatar.
| PlayerSubControlBase | ||
|
purchaseItemPack(ident:String):void
Purchases the item pack with the specified identifier on behalf of the player.
| PlayerSubControlServer | ||
|
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Unregisters an event listener.
| AbstractControl | ||
|
sendMessage(name:String, value:Object = null):void
Sends a message to this player only.
| PlayerSubControlServer | ||
|
setAvatarLocation(x:Number, y:Number, z:Number, orient:Number):void
Sets the location and orientation of this player's avatar in room coordinates.
| PlayerSubControlBase | ||
|
setAvatarState(state:String):void
Sets the stats of this player's avatar.
| PlayerSubControlBase |
| awardPrize | () | method |
public function awardPrize(ident:String):void
Awards the specified prize item to this player. If the supplied prize identifier is not valid, this will not be known until the request is processed on the server, so the method will return successfully but no prize will have been awarded. Thus you should be careful not to misspell your prize identifier in your code or in the associated prize item.
Note: a game is only allowed to award a prize once per game session. This is to guard against bugs that might try to award many hundreds of the same prize to a user while playing a game. If you eallywant to award multiple instances of a prize, you will need to make different prize items with unique identifiers which all reference the same target item.
Note also: because a game anaward the same prize more than once if the player earns the prize in separate game sessions, a game that wishes to only award a prize once should couple the award of the prize with the award of a trophy and then structure their code like so:
if (_ctrl.awardTrophy("special_award_trophy")) { _ctrl.awardPrize("special_award_avatar"); }
The first time the player accomplishes the necessary goal, they will be awarded the trophy and the prize. Subsequently, awardTrophy() will return false indicating that the player already has the trophy in question and the prize will not be awarded. Alternatively the game could store whether or not the player has earned the prize in a user cookie.
Parametersident:String |
| awardTrophy | () | method |
public function awardTrophy(ident:String):Boolean
Awards the specified trophy to this player. If the supplied trophy identifier is not valid, this will not be known until the request is processed on the server, so the method will return succcessfully but no trophy will be awarded. Thus, you should be careful not to misspell your trophy identifier in your code or in the associated trophy source item.
Parametersident:String |
Boolean — true if the trophy was requested, false if the player already has that trophy.
|
| consumeItemPack | () | method |
public function consumeItemPack(ident:String):Boolean
Consumes the specified item pack for this player. The player must currently own at least one copy of the item pack. On success, a GameContentEvent.PLAYER_CONTENT_CONSUMED event will be dispatched on this control (on both the client and server).
Note: this functionality is only allowed for approved games. This method will silently fail for unapproved games. The approval process is still being developed.
Parametersident:String — the identifier of the item pack to be consumed.
|
Boolean — true if the consume request was sent, false if the the player is known not to own at
least one copy of the item pack.
|
| getPlayerId | () | method |
public override function getPlayerId():int
Returns the id of this player. This id is the member id and can be used to view the member's profile (www.whirled.com/#people-{id}).
Returnsint |
| getPlayerName | () | method |
public override function getPlayerName():String
Returns the name of this player.
ReturnsString |
| purchaseItemPack | () | method |
public function purchaseItemPack(ident:String):void
Purchases the item pack with the specified identifier on behalf of the player. If the purchase cannot be completed due to a lack of funds or other reason the player will be notified via chat feedback. A GameContentEvent.PLAYER_CONTENT_ADDED event will be issued if the purchase succeeds.
Note: this functionality is only allowed for approved games. This method will silently fail for unapproved games. The approval process is still being developed.
Parametersident:String |
| sendMessage | () | method |
public function sendMessage(name:String, value:Object = null):void
Sends a message to this player only. Clients receive messages by listening for
MessageReceivedEvent
s on theis PlayerSubControlClient
.
name:String |
|
value:Object (default = null )
|
See also


THIS IS INSIDE JUMBOTRON AND IT TURNS BLUE!
Digital Design · Branding · Video Editing
Now you see me
Projects
Digital Design Works
These are some of the work I submitted for a Visual Arts class I took. The class primarily focused on the use of Adobe programs such as Photoshop and InDesign.
Group Portfolio


This interactive dashboard explores NCAA Division I conference strengths, measured by median team rank at the end of the season, in women's volleyball, soccer, basketball, and softball since 2006. Selecting a conference shows the rank distribution of schools for the same time period.
Data source: ncaa.org
Tools:


{% extends "users/base.html" %} {% block title %} Login {% endblock title%} Here is main.html {% block contents %}


MY LIFE A film review by Jon Ridge Copyright 1993 Jon Ridge
CAST: Michael Keaton, Nicole Kidman, Haing S. Ngor SCREENPLAY: Bruce Joel Rubin DIRECTOR: Bruce Joel Rubin SCORE: John Barry RUNNING TIME: 1:52 RELEASE: November 12, 1993
It was, I believe, just around three years ago that a certain screenwriter by the name of Bruce Joel Rubin produced what ultimately became one of the most popular films of the year. You know the movie. Add to that one of the most talked about movies of its year, JACOB'S LADDER, and what you've got is a very talented individual. Now, in 1993, Rubin has created yet another heart-wrenching and emotionally stimulating script by the name of MY LIFE. The difference this time round is that in addition to writing the film, Rubin is credited with directorial status in order to give his film the touch of magic it needs.
The story surrounds an advertising executive named Bob Jones. As the film opens, right from the get-go, Jones has been diagnosed with cancer in his lungs.  And knowing that he may not be around long enough to see his baby's birth, Jones decides to video the part of his life he is currently living so that his child will have something by which to know him. A sweet notion.
However, Bob isn't willing to simply rest on his laurels. No, he goes through the full gamut of emotions from denial to confusion to final acceptance. This is a wonderful Michael Keaton performance, totally unlike anything he has shown audiences as of yet. And not only does he he bring poignancy to his dying-man role, he brings forth humor as well, so even the most cynical of cynics can appreciate something about his performance. Beside him all the way is Nicole Kidman. Kidman is a gorgeous actress, always it seems. And she has never been prettier than she is in MY LIFE. Of course, she can also act, and that gives her role of the wife a touching bit of emotion in itself. Gail stands by her husband through the roughest of times, with ample opportunity to leave at any time if so desired. But that isn't what she wants, and Kidman is the right actress to play the part of loving wife. When she tells Keaton, "You're the love of my life," we have no choice but to believe her.
In a way, MY LIFE is a bit of a let-down. I kept wanting a little grit along with all the poignancy, and the bit involving Keaton's toy shopping spree and rollercoaster ride at a park really have no place in such an otherwise heart-tugging movie. But I can't complain; for everything this film lacks it also has a lot to appreciate and an awful lot to like. Just try and keep from smiling when Keaton and Kidman try hard to get their newborn to sit upright without falling over. Just try to keep from crying your eyes out when Keaton finally tells his father that he loves him. Just try and not walk away from this film with an affirmation of life.
MY LIFE is a winner.
CRITICAL RATING: ***1/2
.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


About
This website is about cats, grumpy cats
Our Location
USA
New York
Columbus
Austin
Philly
World
Ottawa
Sydney
Upcoming Classes
Location
Topics
New York
JavaS & jQuery
San F
HTML &CSS
Sign Up!
>
Name:
Email:
Location:
San F
New Y
Gender:
Female
Male


CHARLIE CHAN AT THE OLYMPICS (director: H. Bruce Humberstone; screenwriters: from a story by Paul Burger/Robert Ellis/Helen Logan; cinematographer: Daniel Clark; editor: Fred Allen; cast: Warner Oland (Charlie Chan), Keye Luke (Lee), C. Henry Gordon (Hughes), Jonathan Hale (Hopkins), Allan Lane (Dick Masters), Katherine de Mille (Yvonne Roland), Pauline Moore (Betty Adams), Fredrick Vogeding (Inspector Strasser), John Eldredge (Cartwright), Layne Tom, Jr. (Number Two Son), Morgan Wallace (Charles Zaraka), Andrew Tombes (Chief Scott); Runtime: 71; 20th Century Fox; 1937)
Reviewed by Dennis Schwartz
This adventure story features some actual footage of the 1936 Berlin Olympics. It's about spies who steal a robot remote control device to be used for navigating an airplane, and of Charlie having to solve two murders while at the Berlin Olympics. It doesn't make too much political sense and it glorifies the Nazi police force of Berlin in a revolting manner, but it's a snappy film and quite entertaining.
In Honolulu, a test plane, with an experimental robot remote control, is stolen when a mechanic sneaked onto the plane during the flight and killed the pilot. The mechanic will land the plane where Charlie is fishing with Number Two Son and he will set it on fire. Cartwright (John Eldredge) invented the military device and sold a majority partnership in his invention to a Mr. Hopkins (Hale).
Chan finds the mechanic murdered in his hotel room and notes the last call he made was to someone in the Royal Hotel. He thereby deduces that the most likely suspects are those who were residing in the Royal Hotel: Masters (Allan Lane), Cartwright, Hughes (C. Henry Gordon), and Roland (Katherine DeMille). He's asked by Honolulu Police Chief Scott to fly to the Berlin Olympics with Hopkins and Cartwright and track down the other suspects who are going there by boat. Incidentally, Charlie flew there on the dirigible Hindenburg.
Pilot Dick Masters, fur-clad mystery woman Yvonne Roland, and the untrustworthy Hughes, someone who shows an interest in either purchasing or stealing the device, are on a boat leaving from New York with Olympic athletes that include Lee Chan (Keye Luke). Lee is going there to compete as a swimmer.
Masters excused himself suspiciously from the last test flight because of an injury and is now going to compete as a pole vaulter in the Olympics. He's accompanied by his jealous girlfriend Betty Adams (Moore). She's upset because he's spending so much time with Yvonne. Hughes, in the meantime, is keeping a close tab on Yvonne, even stealing a coded radiogram she receives.
Charlie, once in Berlin, gets help from Inspector Strasser (Frederick Vogeding), as they investigate the disappearance of Roland from the ship. She fled the scene and put the device in the camera she stole from Betty and then placed the device in Betty's luggage.
When Charlie fools the spies and comes up with the device in Betty's room, in the hands of a maid working for the spies, he switches the real device for a phony and gives it back to the rightful owners, Hopkins and Cartwright. When Hopkins is jumped for what is believed to be the real device in his hotel room, it turns out that Roland is behind this and that she is working with the wealthy aristocrat Zaraka (Wallace). But the gang is disappointed to learn that the device they took from Hopkins is a phony.
The exciting climax to this complex plot, comes when Lee is kidnapped by the Zaraka team to force Charlie to hand over the real device. Meanwhile, the ruthless Hughes is also after the device and has trailed Lee to the kidnapper's house. Charlie goes after Lee by following the kidnapper's instructions and cleverly sets a trap by putting a transmitter in the device so the police can follow him. The disclosing of the one masterminding this scheme adds the final surprise to this film that is full of plot twists.
REVIEWED ON 8/17/2001 GRADE: C+
Dennis Schwartz: "Ozus' World Movie Reviews"
http://www.sover.net/~ozus
<EMAIL_ADDRESS>© ALL RIGHTS RESERVED DENNIS SCHWARTZ
========== X-RAMR-ID: 29196 X-Language: en X-RT-ReviewID: 244166 X-RT-TitleID: 10000596 X-RT-SourceID: 873 X-RT-AuthorID: 1315 X-RT-RatingText: C+
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


| PERLUNIFAQ(1) | Perl Programmers Reference Guide | PERLUNIFAQ(1) |
Perl has an abstracted interface for all supported character encodings, so this is actually a generic "Encode" tutorial and "Encode" FAQ. But many people think that Unicode is special and magical, and I didn't want to disappoint them, so I decided to call the document a Unicode tutorial.
perl -MEncode -le "print for Encode->encodings(':all')"
You should also check your modules, and upgrade them if necessary. For example, HTML::Entities requires version >= 1.32 to function correctly, even though the changelog is silent about this.
Be careful, though, to never combine text strings with binary strings. If you need text in a binary stream, encode your text strings first using the appropriate encoding, then join them with binary strings. See also: "What if I don't encode?".
This silent implicit decoding is known as "upgrading". That may sound positive, but it's best to avoid it.
Wide character in print at example.pl line 2.
Because the internal format is often UTF-8, these bugs are hard to spot, because UTF-8 is usually the encoding you wanted! But don't be lazy, and don't use the fact that Perl's internal format is UTF-8 to your advantage. Encode explicitly to avoid weird bugs, and to show to maintenance programmers that you thought this through.
You can provide this layer when "open"ing the file:
open my $fh, '>:encoding(UTF-8)', $filename; # auto encoding on write open my $fh, '<:encoding(UTF-8)', $filename; # auto decoding on read
Or if you already have an open filehandle:
binmode $fh, ':encoding(UTF-8)';
Some database drivers for DBI can also automatically encode and decode, but that is sometimes limited to the UTF-8 encoding.
You could open the document in a web browser, and change the character set or character encoding until you can visually confirm that all characters look the way they should.
There is no way to reliably detect the encoding automatically, so if people keep sending you data without charset indication, you may have to educate them.
use utf8;
This doesn't do anything to your input, or to your output. It only influences the way your sources are read. You can use Unicode in string literals, in identifiers (but they still have to be "word characters" according to "\w"), and even in custom delimiters.
Here's what happens: when Perl reads in a string literal, it sticks to 8 bit encoding as long as it can. (But perhaps originally it was internally encoded as UTF-8, when you dumped it.) When it has to give that up because other characters are added to the text string, it silently upgrades the string to UTF-8.
If you properly encode your strings for output, none of this is of your concern, and you can just "eval" dumped data as always.
The rationale for requiring this is to not break older programs that rely on the way things worked before Unicode came along. Those older programs knew only about the ASCII character set, and so may not work properly for additional characters. When a string is encoded in UTF-8, Perl assumes that the program is prepared to deal with Unicode, but when the string isn't, Perl assumes that only ASCII is wanted, and so those characters that are not ASCII characters aren't recognized as to what they would be in Unicode. "use feature 'unicode_strings'" tells Perl to treat all characters as Unicode, whether the string is encoded in UTF-8 or not, thus avoiding the problem.
However, on earlier Perls, or if you pass strings to subroutines outside the feature's scope, you can force Unicode rules by changing the encoding to UTF-8 by doing "utf8::upgrade($string)". This can be used safely on any string, as it checks and does not change strings that have already been upgraded.
For a more detailed discussion, see Unicode::Semantics on CPAN.
This is something you, the programmer, has to keep track of; sorry. You could consider adopting a kind of "Hungarian notation" to help with this.
my $text_string = decode('FOO', $foo_string); my $bar_string = encode('BAR', $text_string);
or by skipping the text string part, and going directly from one binary encoding to the other:
use Encode qw(from_to); from_to($string, 'FOO', 'BAR'); # changes contents of $string
or by letting automatic decoding and encoding do all the work:
open my $foofh, '<:encoding(FOO)', 'example.foo.txt'; open my $barfh, '>:encoding(BAR)', 'example.bar.txt'; print { $barfh } $_ while <$foofh>;
The Perl warning "Wide character in ..." is caused by such a character. With no specified encoding layer, Perl tries to fit things into a single byte. When it can't, it emits this warning (if warnings are enabled), and uses UTF-8 encoded data instead.
To avoid this warning and to avoid having different output encodings in a single stream, always specify an encoding explicitly, for example with a PerlIO layer:
binmode STDOUT, ":encoding(UTF-8)";
The UTF8 flag, also called SvUTF8, is an internal flag that indicates that the current internal representation is UTF-8. Without the flag, it is assumed to be ISO-8859-1. Perl converts between these automatically. (Actually Perl usually assumes the representation is ASCII; see "Why do regex character classes sometimes match only in the ASCII range?" above.)
One of Perl's internal formats happens to be UTF-8. Unfortunately, Perl can't keep a secret, so everyone knows about this. That is the source of much confusion. It's better to pretend that the internal format is some unknown encoding, and that you always have to encode and decode explicitly.
"use bytes" is usually a failed attempt to do something useful. Just forget about it.
If you need non-ASCII characters in your source code, make it a UTF-8 encoded file and "use utf8".
If you need to set the encoding for STDIN, STDOUT, and STDERR, for example based on the user's locale, "use open".
Instead of ":encoding(UTF-8)", you can simply use ":utf8", which skips the encoding step if the data was already represented as UTF8 internally. This is widely accepted as good behavior when you're writing, but it can be dangerous when reading, because it causes internal inconsistency when you have invalid byte sequences. Using ":utf8" for input can sometimes result in security breaches, so please use ":encoding(UTF-8)" instead.
Instead of "decode" and "encode", you could use "_utf8_on" and "_utf8_off", but this is considered bad style. Especially "_utf8_on" can be dangerous, for the same reason that ":utf8" can.
There are some shortcuts for oneliners; see -C in perlrun.
"UTF-8" is internally known as "utf-8-strict". The tutorial uses UTF-8 consistently, even where utf8 is actually used internally, because the distinction can be hard to make, and is mostly irrelevant.
For example, utf8 can be used for code points that don't exist in Unicode, like 9999999, but if you encode that to UTF-8, you get a substitution character (by default; see "Handling Malformed Data" in Encode for more ways of dealing with this.)
Okay, if you insist: the "internal format" is utf8, not UTF-8. (When it's not some other encoding.)
Perl knows how it stored the string internally, and will use that knowledge when you "encode". In other words: don't try to find out what the internal encoding for a certain string is, but instead just encode it into the encoding that you want.
| 2019-10-21 | perl v5.30.3 |


I’ve been playing around with Macs for as long as I can remember, and I’m now in the fortunate position of being able to earn a living doing what I love. I like speaking about Puppet, Munki, deploying Macs, and the intersection of the three. I work on several open source projects.
I currently work at Airbnb managing their fleet of Macs. Any views or opinions expressed on this site are my own and are not necessarily shared by my employer.
Everything on this site is mine, although feel free to link to anything I’ve written here and all of the code can be considered open source under the Apache license unless otherwise stated.


Allocate is India's savings and financial literacy app. Allocate makes it easy for you and your friends to save towards goals for the lifestyle you've always dreamed of!


Digit Recognition (Sign Prediction)
One
Two
Three
Four
Five
Six
One:
Two:
Three:
Four:
Five:
Six:
Train Network
Once training is complete, click 'Start Predicting' to see predictions, and 'Stop Predicting' to end. Once you are happy with your model, click 'Download Model' to save the model to your local disk.
Start Predicting
Stop Predicting
Download Model


Relaxing Clock
{{/* Spotify */}}
{{ partial "settings/spotify.html" }}
{{/* Alarm */}}
{{ partial "settings/alarm.html" }}
{{/* Pomodoro */}}
{{ partial "settings/pomodoro.html" }}
{{/* High contrast */}}
{{ partial "settings/high-contrast.html" }}
{{/* Blink */}}
{{ partial "settings/blink.html" }}
{{/* Remote time */}}
{{ partial "settings/remote-time.html" }}
{{/* Beta */}}


Deposit Contract
Deposit Reserve Fund
0.00000000
ETH
Deposit Token Price
0.00000000
ETH/DPT
Deposit Token Supply
0.00000000
DPT
Deposit Token Balance
0.00000000
DPT
Credit Contract
Credit Reserve Fund
0.00000000
ETH
Credit Token Price
0.00000000
ETH/CDT
Credit Token Supply
0.00000000
CDT
Credit Token Balance
0.00000000
CDT


Sales
open from 6:00 Am To 7:00 Pm
you can content us on email<EMAIL_ADDRESS>locations :
Seattle
tokyo
dubai
paris
lima


This is the official AtomicDEX mobile beta program channel -
Android: https://play.google.com/store/apps/details?id=com.komodoplatform.atomicdex - iOS: https://testflight.apple.com/join/c2mOLEoC - Please use https://github.com/KomodoPlatform/atomicdex/issues for bug reports and feature requests. For critical security bug reports please do send us your encrypted (https://pgp.mit.edu/pks/lookup?op=get&search=0x379287998EE6CF47) report to<EMAIL_ADDRESS>and allow up to 24h for reply. For atomicDEX API (mm2) related issue reports or feature requests please do use https://github.com/KomodoPlatform/atomicDEX-API/issues
100 messages
Before 05-Dec-19 12:00 AM
TonyL31-Oct-19 05:30 PM
Everything broken, everybody stressed - perfect stress test imo
5
6
tese31-Oct-19 05:30 PM
Absolutely agreee
cezo48431-Oct-19 05:30 PM
I swaped 2
heguli9731-Oct-19 05:31 PM
i have like a 100 failed ones already, i think that's enough for today since i got a few successful ones
ubiq31-Oct-19 05:31 PM
Me too 2 swap
[deleted]31-Oct-19 05:32 PM
Do we have to send log file?
cezo48431-Oct-19 05:32 PM
@ubiq can we earn?
1
tese31-Oct-19 05:32 PM
Yes
TonyL31-Oct-19 05:33 PM
@[deleted] yes, please send logfiles to @smk762 - dracocanis ominator if something is missing in leaderboard
1
we'll collect/finalize as accurate data as we can tomorrow
ronyi31-Oct-19 05:33 PM
@heguli97 I have more than 200 still nothing(maybe one 1/3)...
Mark8131-Oct-19 05:34 PM
is stress test over?
FtrSaroth31-Oct-19 05:35 PM
I get 1 complete, 1 timeout, 5 waiting for a match and many more cancelled good stress we get
TonyL31-Oct-19 05:35 PM
is stress test over? no, 25 more minutes to try your luck
vogelfreund8831-Oct-19 05:35 PM
Is there a trick to get it running?
TonyL31-Oct-19 05:35 PM
I don't know - got 500+ attempts without any luck
gigamesh31-Oct-19 05:35 PM
if i check my RICK address in KMD explorer should that show me any swaps i made?
cuz i see nothing
TonyL31-Oct-19 05:36 PM
Yes, in general it's possible to check your swaps via RICK/MORTY explorers
by transactions from/to b address
gigamesh31-Oct-19 05:36 PM
is that in the KMD explorer?
Strob31-Oct-19 05:37 PM
There must be some trick cause someone got 19 and got 0 even though I tried since the first second of the test.
final swap data and leaderboard stats will be prepared over the next 24 hours. I will announce here once done and let everyone who sent logs know to get theier verification
heguli9731-Oct-19 05:40 PM
based on the explorer i have like 10 completed swaps (edited)
tese31-Oct-19 05:40 PM
More than 15
paia31-Oct-19 05:40 PM
0 here
Bernz - Selling LABS31-Oct-19 05:41 PM
Been trying for 40 mins and cant even get 1 rip my shot at the prize pool
Cryptoon31-Oct-19 05:41 PM
If it takes too long to match
Just cancel
Sir Seven31-Oct-19 05:41 PM
@Bernz - Selling LABS You still have time to go. Good luck!
1
Cryptoon31-Oct-19 05:41 PM
And put in a new order
When it matches its usually in the first minute after you put up the order
I had 2 in the past 10-15 mins
Strob31-Oct-19 05:47 PM
I'm just getting 1 at the last minute!
Bernz - Selling LABS31-Oct-19 05:48 PM
Phew
1
Cryptoon31-Oct-19 05:48 PM
Mark8131-Oct-19 05:49 PM
i nailed one too!
3
tese31-Oct-19 05:50 PM
While an order is still in the "matching" (0/3) state and you navigate back, and click on the orders tab, then you can't get to the order again by tapping it. Usually, as soon as state 1/3 has started, tapping the order leads you back to its details. (Android)
Sir Seven31-Oct-19 05:51 PM
@tese You can't get to details 'cause there are pretty much no details to show yet.
In 0/3 state
tese31-Oct-19 05:51 PM
But you shoud view the 0/3 state
The same screen shown after conforming the swap
phm8731-Oct-19 05:52 PM
I updated atomicdex, now i have a black screen when i start it. How can i bypass it ? Uninstall reinstall use existing seed ?
Cryptoon31-Oct-19 05:52 PM
Yes
Sir Seven31-Oct-19 05:52 PM
@phm87 Yes, please make sure you have your seed saved before uninstallation. Oops.(edited)
ubiq31-Oct-19 05:53 PM
The app use a lot of data ...2.3gb
phm8731-Oct-19 05:54 PM
There was less than 1 kmd of value on it so i don t really care abt the seed. Thank you @Cryptoon and @Sir Seven
TonyL31-Oct-19 05:54 PM
less than 1 kmd today, 1mil usd tomorrow, who knows
This is the official AtomicDEX mobile (smartphone app) repository - KomodoPlatform/atomicDEX
Goku31-Oct-19 05:55 PM
Tried to exchange ltc against dgb between two phones with same rates, but it did not match and exchange.
But when it will work in future...
Wow that's awesome.
Happy to be a part of a revolutionary technology(edited)
1
phm8731-Oct-19 05:55 PM
@farl ok so i will keep my black screen for now. Thx guys
polycryptoblog31-Oct-19 05:56 PM
@Goku try after the stress test , normal circumstances that swap would complete quickly. I was doing them as demos yesterday
1
Flint31-Oct-19 06:00 PM
one insignificant swap was a success
Cryptoon31-Oct-19 06:00 PM
27aume31-Oct-19 06:00 PM
GG to everyone who successfully swapped and sorry to the other who struggled. All of us we're doing great and seing wwhen and how it would stop working was the whole point of this test event.
4
Cryptoon31-Oct-19 06:00 PM
Hihi last minute
fat3lvis31-Oct-19 06:00 PM
Tried for over an hour. Never even got an order to match for stress test
Jimm B.31-Oct-19 06:01 PM
30% battery, despite connected charging cable
TonyL31-Oct-19 06:01 PM
I promise that next time such event will be much less stressful for participants(edited)
3
figgy13231-Oct-19 06:01 PM
Nowt happening, 1 failed swap, 1 swap timedout
Sir Seven31-Oct-19 06:02 PM
@figgy132 Even faild swaps are counted in. Thanks for participating.
1
farl31-Oct-19 06:02 PM
Thank you all for helping Komodo! Great respect for everyone who was here for hours. I know how hard is was. Good job guys!
sir31-Oct-19 06:02 PM
Do any timeout orders count?
vogelfreund8831-Oct-19 06:02 PM
Nope nothing for me but a lot of time invest in AtomicDEX
sir31-Oct-19 06:03 PM
Got like 8 timeouts out of several hundred attempts
Flint31-Oct-19 06:03 PM
5-10 minutes before the end, a swap for thousandths of a coin was successful - so Im still lucky!)
coingirl8731-Oct-19 06:03 PM
Me two flint
Jimm B.31-Oct-19 06:03 PM
I count 30 Swaps and 7 timeout. Leaderboard Shows 17-0
coingirl8731-Oct-19 06:03 PM
Maybe we swap :-)
vogelfreund8831-Oct-19 06:03 PM
Happy Halloween to all
sir31-Oct-19 06:04 PM
If only I wasn't also working. Could have dedicated more time haha
Gordon Freeman31-Oct-19 06:04 PM
This is frustrating, not a single swap. Tried for more than 3 hours. Sad.
Monstar31-Oct-19 06:05 PM
Hi guys, do the Timeouts also count in?
Flint31-Oct-19 06:05 PM
By the way, I once changed the VPN gateway - I dont know if this affected the event shortly before the end
maybe taken into account - testers themselves do not yet know what to consider and what not
1
yorklab31-Oct-19 06:06 PM
After 5 hours of trying, I finally got a swap.
4
t131-Oct-19 06:07 PM
The leaderboard is not reflecting my swaps.
And how are we taken into account if we had only 1/3 confirmations?
cezo48431-Oct-19 06:08 PM
Finished?
ѕℓιм31-Oct-19 06:08 PM
im glad I at least got 1 swap in earlier
Sir Seven31-Oct-19 06:08 PM
@t1 it's enough to be logged by servers.
cezo48431-Oct-19 06:08 PM
9 swap
Flint31-Oct-19 06:08 PM
yes
TonyL31-Oct-19 06:08 PM
Tomorrow we'll collect all the data we can (data about failed swaps as well) - for now in case of succesful swaps not counted in the dashboard feel free to send logs to @smk762 - dracocanis ominator to be sure that it's counted
cezo48431-Oct-19 06:08 PM
When Will distribution +?
Flint31-Oct-19 06:09 PM
@cezo484 are you a hacker
modereck31-Oct-19 06:10 PM
only 1 swap
cezo48431-Oct-19 06:10 PM
No... This worked 20 Mins ago.. And restart app again open is working
Strob31-Oct-19 06:11 PM
Does Jason vs Freddy also count?(edited)
1
cezo48431-Oct-19 06:14 PM
Campaign ongoing or finish?
Booster99x31-Oct-19 06:17 PM
Am I the only one that got many failed swap that appeared in history at 6PM precisely? xD


Siphon is a minimalistic NoSQL database accessed via HTTP.
It consists of two languages - one for designing schemas and one for querying your data - and a HTTP server for creating and using a database.
The data is organised into a key-value store, which makes it easy to create the database and query it.
Here's an example of a schema, a query, and a response:
users: [user]
posts: <int:post>
struct user {
id: int
name: string
pass: string
post_ids: [int]
}
struct post {
id: int
title: string
content: string
likes: uint
}
users[5].friends[name~/^foo/]
{
"id": 5,
"name": "foobar",
"pass": "...",
"post_ids": [
1,
5,
10,
21
]
}
bool
float
, float32
int
, int32
, int16
, int8
uint
, uint32
, uint16
, uint8
regexp
<key:val>
[type]


MIKE KUTI Email<EMAIL_ADDRESS>I am Mr. Miku Kuti, a staff of a reputable bank in Johannesburg, Gauteng Province in the Republic of South Africa. I have an urgent and very confidential business proposition for you. We had a foreign client named Mr. Wooin Shim, who deposited a huge sum of money (12.5 Million United States Dollars), with our bank. Eventually, this client died in a plane crash and since his death we have not had anybody come up for the claims as the next of kin. You may want to take a look at other passangers who were on the same plane, here is a site for your perusal. http://www.cnn.com/WORLD/9708/06/guam.passenger.list/ A situation I have monitored closely with my position in the bank. Now having monitored this deposit and managed it over the years before his death, and hence nobody has showed up as the next of kin for the past years. I now solicit for your assistance to present you as the next of kin as every other arrangement has been concluded by me and my partners involved. I am only waiting for a foreigner to enable us move the funds to his or her account. This does not have any risk attached to it, as we have our contacts in various departments of the bank that will handle all the internal documentations.I therefore request you to confirm your interest by a return message through my email and I will furnish you with details and more information. Best regards MIKE KUTI _________________________________________________


JavaScript: Why so popular?
For this unit of DBC, we've been asked to write a post on why JavaScript is so popular in web development. From my limited experience I know that--if HTML is the structure of a web page and CSS is the style of a web page then JavaScript is the action of a webpage...or how elements behave.
So JavaScript is the scripting language of the web. It gives us all the cool web bells and whistles we are so used to like slideshows, autocomplete, and pop-ups. But why else is JavaScript so popular?
Here's my take:
- Easy to learn
- Can be used on the client as well as server side
- It's fast and responsive. It works well with the server which means more efficiency for the user
JavaScript is becoming a high-demand skill. It seems that getting up on your JavaScript game is super beneficial to becoming an in demand developer.


A picture with his wife on the Allure of the Seas ship
Picture of Jonathan graduating with his doctorate degree
Jonathan and his wife enjoying the sun in Pueblo
Jonathan deciding to relax with the family and take a selfie!
Jonathan and his wife enjoying the pool at their vacation home in Florida!
Picture on his birthday, posing with the family!
Picture yet again on his birthday, this time with his son who is young in the picture!


--- layout: default title: Contact cv: passive projects: passive notes: passive contact: active description: Contact Information for Abhi Sharma. ---
Feel free to reach out through the links below, as well as the icons at the bottom of the site:


These colors are used to identify the areas of a Space Palette configuration. You create an image using these colors, and give it to Space Palette to tell it about the areas you want to use. Each area becomes a separate multitouch surface. The session IDs in the TUIO messages indicate the area - e.g. TUIO session IDs from area 5 will start at 5000, from area 6 will start at 6000, etc.
| Area Index | Color | RGB (decimal) | RGB (hex) |
| not used | 0, 0, 0 | 0, 0, 0 | |
| background | 255, 0, 0 | FF0000 | |
| 1 | 0, 255, 0 | 00FF00 | |
| 2 | 0, 0, 255 | 0000FF | |
| 3 | 255, 255, 0 | FFFF00 | |
| 4 | 0, 255, 255 | 00FFFF | |
| 5 | 255, 0, 255 | FF00FF | |
| 6 | 255, 128, 0 | FF8000 | |
| 7 | 128, 255, 0 | 80FF00 | |
| 8 | 128, 0, 255 | 8000FF | |
| 9 | 255, 0, 128 | FF0080 | |
| 10 | 0, 255, 128 | 00FF80 | |
| 11 | 0, 128, 255 | 0080FF | |
| 12 | 255, 128, 128 | FF8080 | |
| 13 | 128, 255, 128 | 80FF80 | |
| 14 | 128, 128, 255 | 8080FF | |
| 15 | 255, 255, 128 | FFFF80 | |
| mask | 255, 255, 255 | FFFFFF |


Inuka Records is a high end studio located in Kisii , Ogembo and well known of the quality services it delivers. Inuka Records has released over 2000 tracks of different groups and solo artists. It has also filmed many events and has done video shooting for over 1000 choirs.
PRODUCTION
Our team consists of amazing well rounded and fast paced producers working in this studio with quality gear acoustics and experienced composers. As well as some well rounded session mucisians, which together with the chilled vibes and the creative atmosphere, makes the studio different from other studios
PHOTOGRAPHY
Best memories of your Child
Get the best shoots for your choir
Get the best shoots for your wedding
Get the best shoots for your students
Get the best night shoots
GRAPHIC DESIGN
SOUND AND VIDEO ENGINEER
Inuka Records offers the best sound engineer and video editor "Dir.Andrew Okwena(Pro.Andy)" who is a specialist in the field of audio and video for media and music production.


[1]
Adequate performance, nice looks, long distance cruiser.
[2]
[3]
overall performance good, poor engine performance, gas mileage 22 highway and poor comfort level.


Security Of Girls By Them
So, What You should Do?
 Yup we agree that most of the boys are into the things like harrsements and all that but trust me not everybody is like that. Now let's get back to Topic, What should you do. It is Listed below in the list.
- Remove The Fear :
- That you are not safe.
- You are safe everywhere.
- Don't think all the time that you are not safe. It will discomfort you and lead to unwanted stress.
- Go to parties and party hard. But leave home only with your parents permissions.
- You have all the rights to go outside and do fun activities.
- Let yourself be open in Society. Explore and gain EXPERIENCE. It will lead to a better Future.
- Tell The Truth :
- Always tell your parents where are you going.
- Tell your parents all about your life.
- Try keeping safe distance from friends.
- If you found yourself in any difficulties tell your parents about it, avoid friends.
- If your parents say NO to something please don't do it. They are not your enemies. They know everything so obey them.
- Be Strong :
- Learn Self-Defence.
- Avoid martial arts if you just want to protect yourself from beasics. First complete the basics of Self-defence and if you have a long-term commitment then go for Martial-Arts.
- As the basic Self-Defence keep PEPPER SPRAY with you.
- Learn How to Escape from the scene if you get caught in any situation.
- Get the basic knowledge of the Self-Defence Laws. And learn how can you attack the attckers and BE SAFE.
- Awerness :
- Always Look for if you are valnurable of HOME-JACKING or HOTEL-JACKING.
- HOME-JACKING is a process of breaking into the homes by workers by coming into home as a help or service man and take all the info of yourself. Then they attack whenever the time is good for them.
- HOTEL-JACKING is same process as HOME-JACKING. In this Waiter is the MAN-IN-THE-MIDDLE. He takes all the Info and break down in night through windows and duplicate keys.
- Most of the things happen in Most Famous Hotel or Very poor hotels. Try staying in Mid-Ranged hotel.
- Always check out for any CAMERA in CHANGING-ROOM. They can BLACKMAIL you with that clip and If you got caught try contacting the police or concern person with solid proof.
- Try Using your 6th-SENSE. And if you find something wrong contact to relatives imediately and get out of there.
- If you are travelling alone in the night or any time, If you find something suspious capture the photo of Number-plate and send it to someone.
- Whenever travelling, keep all the windows open and If the car is stopped then open the doors. It will Help you a lot.
- If you are travelling alone, Give more money and Buy a full time ride. So you can be sure that you are SAFE. Because most of the crime is done when the girl is travelling alone.
- Cyber Security :
- Although Internet is fun and Entertainment thing, It can also be Very Dangerous sometimes if you don't care.
- When Commnucating use nick-name and try not using original address.
- Avoid un-neccesary use of SOCIAL-MEDIA.
- Try uploading less photos that doen't matter.
- Only Accept the known guys.
- Set your privacy to Friends Instead of Everyone.
- Avoid to open Social-Media accounts in others PC or Phone.
- Upload only clean photos of you.
- Avoid sending photos online to someone.
- Relationship Matters but not at This Cost :
- We know that at some age, Love is obivious thing.
- Avoid sending photos to strangers.
- If you have a BF try keeping all your chat clean and phtos cleaner.
- Avoid sending Nudes to your Loving Ones. If they love you they dont ask for it forcefully. Sending it or not is personal choice.
- When talking to strangers keep topics good and educational.
Inspired By Heta and Her MOM.


For this page to work you must install dev dependencies via the command line
$ cd arro
$ npm install
Using the left and right arrows keys should flip through the jumps without interfering with scrolling.
It should not work when horizontal scrollbar is present.


# Note
Images in this **reveal.js** slide deck were extracted using this ImageMagick command:
convert -density 150 -antialias BioinvasionOfGuamForests.pdf -resize 1024x -quality 100 jpg/%03d.jpg
and inserted into an HTML template using a Python script in a Jupyter notebook.
Details available at https://github.com/aubreymoore/PDF_to_Reveal
Aubrey Moore, University of Guam
Biological Invasion of Forests on Guam and Other Islands in Micronesia
Aubrey Moore
Forestry Workshop on Invasive Insects
University of Guam, Feb. 11, 2020


Table: Queue
+-------------+---------+ | Column Name | Type | +-------------+---------+ | person_id | int | | person_name | varchar | | weight | int | | turn | int | +-------------+---------+ person_id is the primary key column for this table. This table has the information about all people waiting for an elevator. Theperson_id
andturn
columns will contain all numbers from 1 to n, where n is the number of rows in the table.
The maximum weight the elevator can hold is 1000.
Write an SQL query to find the person_name
of the last person who will fit in the elevator without exceeding the weight limit. It is guaranteed that the person who is first in the queue can fit in the elevator.
The query result format is in the following example:
Queue table +-----------+-------------------+--------+------+ | person_id | person_name | weight | turn | +-----------+-------------------+--------+------+ | 5 | George Washington | 250 | 1 | | 3 | John Adams | 350 | 2 | | 6 | Thomas Jefferson | 400 | 3 | | 2 | Will Johnliams | 200 | 4 | | 4 | Thomas Jefferson | 175 | 5 | | 1 | James Elephant | 500 | 6 | +-----------+-------------------+--------+------+ Result table +-------------------+ | person_name | +-------------------+ | Thomas Jefferson | +-------------------+ Queue table is ordered by turn in the example for simplicity. In the example George Washington(id 5), John Adams(id 3) and Thomas Jefferson(id 6) will enter the elevator as their weight sum is 250 + 350 + 400 = 1000. Thomas Jefferson(id 6) is the last person to fit in the elevator because he has the last turn in these three people.


Bought an antacid or multivitamin lately which did not seem to have any effect? It might have been fake medicine manufactured locally by an inter-state syndicate...
Read MoreHere are certain preventive measures you might want to take to avoid getting duped into buying fake medicines...
Read MorePrescribing and using pharmaceuticals is a matter of trust. Health service providers and patients need to know medicines are genuine....
Read MoreA WHO report (2017) claims 10.5 percent of medicines sold in low and middle-income countries, including India, are substandard and falsified....
Read More


Before Change
// temp_dir
with pytest.raises(Exception) as exc_info:
ray.init(address="<IP_ADDRESS>:6379", temp_dir="/tmp/this_should_fail")
assert exc_info.value.args[0] == (
"When connecting to an existing cluster, "
"temp_dir must not be provided.")
After Change
def test_conn_cluster():
// plasma_store_socket_name
with pytest.raises(Exception) as exc_info:
ray.init(
address="<IP_ADDRESS>:6379",
plasma_store_socket_name=os.path.join(
ray.utils.get_user_temp_dir(), "this_should_fail"))
assert exc_info.value.args[0] == (
"When connecting to an existing cluster, "
"plasma_store_socket_name must not be provided.")
// raylet_socket_name
with pytest.raises(Exception) as exc_info:
ray.init(
address="<IP_ADDRESS>:6379",
raylet_socket_name=os.path.join(ray.utils.get_user_temp_dir(),
"this_should_fail"))
assert exc_info.value.args[0] == (
"When connecting to an existing cluster, "
"raylet_socket_name must not be provided.")
// temp_dir
with pytest.raises(Exception) as exc_info:
ray.init(
address="<IP_ADDRESS>:6379",
temp_dir=os.path.join(ray.utils.get_user_temp_dir(),
"this_should_fail"))
assert exc_info.value.args[0] == (
"When connecting to an existing cluster, "
"temp_dir must not be provided.")


UrtheCast Corp. 2019 Q3 - Results - Earnings Call Presentation
by SA Transcripts, https://seekingalpha.com/author/sa-transcriptsThe following slide deck was published by UrtheCast Corp. in conjunction with their 2019 Q3 earnings call.
The following slide deck was published by UrtheCast Corp. in conjunction with their 2019 Q3 earnings call.


Elder Kenneth H Browning’s Testimony
Tuesday, April 29, 2003
At the request of Matt Price, from the Country Creek Ward, Layton Utah Holmes Creek Stake, I am writing this Testimony.
I bear my Testimony that I know that God lives, that He is the Eternal Father in Heaven, the literal Father of our Spirits and that He loves each one of his children. I know that He has an Eternal plan, that when followed, will allow each of his children, that will be faithful to those eternal laws, the privilege of returning home to where he dwells. I know that Jesus Christ is God’s Eldest Son in the preexistent world and is His only begotten Son upon this earth. He was chosen to be the central figure in the eternal plan of Our Heavenly Father, to come in the Meridian of time to this earth, to be born of an earthly Mother, “Mary”. To grow day by day learning much the way each of us do, the experiences of earth life. I know that He lived a perfect life, not making even one mistake. I am sure that because of His Father that He was often tutored by Heavenly Angles. I know that when he reached the age that allowed him to begin His ministry, that He organized His Church in its fullness here on earth. I know that He set for us a perfect example of how we are to try to live. He lived in perfect harmony and obedience to His Heavenly Fathers Eternal laws and ordinances. I know that because of Our Heavenly Father and Jesus's love for each of us that Jesus was allowed to suffer the most unjust trial and then was crucified on the cross. Jesus is the Christ foretold by all the Prophets of God from the beginning of time. Through His selfless sacrifice He became the First to be resurrected and made it possible for everyone that has been or that will be born to be resurrected from the death of the body. Also because of His love for us He was willing to suffer and paid the Eternal price for all the sins of those that are willing to take upon then self His Name and be obedient to His commandments. Through this Atonement for our sins, we will be able to be cleansed from our sins and return to live with Our Heavenly Father and receive Eternal Exaltation.
I know that there was a falling away into total Apostasy from Christ’s True Church after His death and the death of His chosen Apostles. The authority from God for man to act in His name was taken. Although many men tried to find the truth and many brought about great forces of change, it wasn’t until April 6, 1830 that The Church of Jesus Christ was restored through Joseph Smith Jr. and subsequently followed by the restoration of all the ancient authority and gifts that God had given to the Prophets of old until there was a fullness of the Gospel as given by Christ Himself. I know and bear Testimony that the Church of Jesus Christ of Latter Day Saints is that Church and we have been and are today lead by A Prophet of God, even until the present, with that Prophet being Gordon B. Hinckley.
I pray with all the desires of my heart that I may always bear this testimony and be obedience all of my life. I bear this testimony in the Name of Jesus Christ. Amen.


Huawei Watch GT 2 confirmed to arrive in India early December
by Aakash JhaveriHuawei Watch GT 2 confirmed to arrive in India early December
No phones yet
(Image credit: Future)
Huawei is finally bringing its Kirin A1-powered connected devices to India, starting with the Watch GT 2 in the first week of December.
Earlier this month, Huawei India confirmed that its connected device ecosystem would be coming to India shortly. All of these are powered by the new Kirin A1 chipset, which specializes in connection quality without taking a toll on battery life.
The company has now confirmed that the Huawei Watch GT 2 will come to India in the first week of December. It was originally unveiled in September, alongside the Mate 30 series. One of its most notable features is two weeks of battery life on a single charge, which is unheard of in the world of smartwatches.
It achieves that with a hardware and software combination, implementing the Kirin A1’s efficiency and opting to use an in-house operating system called Lite OS instead of Wear OS. This supposedly enables the 445 mAh battery to last for 14 days.
The Watch GT 2 comes in two sizes, a 42mm dial, and a 46mm, both of which sport AMOLED displays spanning 1.2-inches and 1.39-inches diagonally. It is also waterproof up to 50m, with 5ATM certification.
In terms of features, we are looking at step tracking, heart rate monitoring, sleep monitoring, Huawei TruRelax, and all-day activity tracking.
In the European market, the Huawei Watch GT 2 is priced at €249, which converts to about Rs 20,000 for the 46mm variant.
- Hands on: Huawei Watch GT 2
- Kirin A1-powered wireless Huawei products coming soon to India


Being a first timer in a Model United Nations conference, the rules of procedure are seemingly complicated, and honestly there is a lot to remember.
In simpler terms, the executive board calls out each country from the country matrix so that they can present their stance.
Either of the two stances can be opted by each delegate:
Moving on from formal debate, we now deal with motions. A motion, as the name suggests, is used to move the proceedings of the committee into either informal debate from formal debate, or into a break. The EB asks for motions usually after 3 or 4 speeches are done or if they feel the need for a particular motion. Informal debate is divided into two parts, the Unmoderated Caucus and the Moderated Caucus. Unmoderated caucuses are slightly more disruptive (cause disturbance) in nature. Whereas, the moderated caucuses are a lot like the formal form of debate with sub agendas of the main Agenda.
The moderated caucus is basically where you discuss the sub-agendas of the overall agenda in the committee. For example, if the agenda is 'Pollution', then the sub agendas would be 'Air Pollution' or 'Water Pollution'.
As mentioned in the earlier section, motion for a moderated caucus can be raised by following a verbatim/format, which is, “The delegate of [country name] would like to raise a motion to suspend formal debate and move into a moderated caucus on the topic [sub agenda] for a total time period [total time] with individual speakers time being [individual speakers time] each”.
For example, “The delegate of Spain would like to raise a motion to suspend formal debate and move into a moderated caucus on the topic “Water pollution” for a time period of 20 minutes, with individual speaker's time of 60 seconds”. This motion, if passed, establishes a moderated caucus that accomodates 20 speakers for a discussion on water pollution. Make sure that the total time period is exactly divisible by individual speakers time.
After various motions are raised by the delegates, the Executive Board sets them for a vote. This is a classic example of procedural voting, in which a 50% plus one of the members will have to agree (If the committee has 8 members, then 5 members have to agree on it or if the committee has 15 members, then 9 members have to agree on it.) Then the delegate who raised the moderated caucus will choose either to be the first or the last speaker.
This is when the delegates are allowed to leave their seats and approach anyone in the committee. This time is usually reserved for lobbying (A word coming from the practise of Delegates to meet in the UN lobby to discuss various substantial issues, it means trying to talk someone into supporting your view), to reach a compromise or a consesus on various issues, and to plan the future course of action in the committee amongst themselves. The unmoderated caucus can be raised when the EB invites motions, it is raised using the verbatim “The Delegate of {Country Name} would like to suspend formal debate and move into an Unmoderated Caucus for a time period {Time Period}”, for example “The Delegate of India would like to raise a motion to suspend formal debate and move into an Unmoderated Caucus for a time period of 15 minutes." As the Unmoderated Caucus is the most disruptive, whenever the motion is raised by a delegate, it is almost always the one to be first voted upon.
During this while, the Delegates can get up from their seats, walk around the room, leave the council room, go and talk to anyone whether it be the Executive Board, any other delegate or any member of the Organising Committee. This is somewhat similar to a break however it is strongly adviced that this time should be used to plan the proceedings of the committee or to win over some other delegate to support your cause. As almost every Executive Board marks on the lobbying skills of a Delegate.
If you feel that the EB has made some procedural or substantial errors, then this point can be raised to clear them out. This point can also be raised to point out factual inaccuracies in other delegate’s speech.
If the delegate of USA calls Lucknow as the capital of India, it is expected from the other delegates to raise a point of order by quoting the statement made by the delegate of USA and giving the correction. If the error is contested, the burden of proof lies with the one who has raised the point.
Point of information are, essentially, questions.
During formal debate, if you yield your remaining time to points of information, other delegates will be allowed to ask you various questions on the speech you just made or the stance taken by your country.
Points of information can also be sent through chits, at any time.


[bleed]="true"
on the panel body to have the contents of the panel body bleed to the outer edge.
This is useful for components like tables and trees.
[nogap]
[nogap]="true"
will remove the margins between the panels.
[col]="2"
renders a 2 column grid.


Before you may cross the bridge, you must answer these questions!
WHAT, is your name?
WHAT, is your email address?
WHAT, is your email address? Again!
WHAT, is your favorite website?
WHAT, is the phone number of your favorite pizza place?
WHAT, is your date of birth?
WHAT, is your age?
WHAT, is your favorite color?
WHAT, is your favorite kind of chocolate?
WHAT, is the part number of a
3/4" Philips Head machine screw
?
WHAT, is the airspeed velocity of an unladen swallow?
1
(m/s)
Cross the bridge


About the Developer
Once the decision was made to leave the previous career for a new one in 2018, the field of Software Development became the starting point. Utilizing skills in HTML, CSS, JavaScript, and jQuery was benificial for a new Web Developer.
After web development an opportunity to learn C++ and the Unreal Engine 4 presented itself in early 2019. The passion for Game Development grew from the friendly environment Epic Games provides to Indie Game Developers through their free pro level tool, Unreal Engine 4.


RuPaul's Cheryl Hole begs 'icon' Cheryl to team up with her in 2020
The RuPaul's Drag Race UK star met her idol when she was a guest judge on the hit show, and now she wants them to work together
by Vicki Newman, https://www.mirror.co.uk/authors/vicki-newman/RuPaul's Drag Race UK star Cheryl Hole has reached out to her idol Cheryl in the hope of teaming up on a duet.
The drag queen, who was the seventh to be eliminated from the BBC Three series, had the chance to meet the Girls Aloud star when she appeared as a guest judge.
And after her dream came true, she's hoping they could end up working together in 2020.
The 25-year-old even went as far as to brand Chezza the "best guest judge of the season".
She told MailOnline : "We have crossed paths since filming and she’s an absolute icon. Who knows, 2020 we might be delivering some Cheryl and Cheryl!
"I’m putting feelers out there so Chez if you’re listening, not that she’d be listening in on our phone call, but, yea, I’m definitely up for it."
Geordie star Cheryl delighted fans when she appeared on the UK version of the hit US contest.
Her drag namesake said: "She loves drag, she’s been surrounded by drag her entire life, that came across so well on the show and you could tell she was living her best life."
She went on to say that the singer and Little Mix star Jade Thirlwall were the best guest judges on the season, which will conclude tomorrow night.
Drag queens Baga Chipz, The Vivienne and Divina De Campo are the only three contestants left.
Tomorrow's finale will see them fight it out for the crown and to be named the UK's first Drag Race winner.
The victor will head to Los Angeles to film their own web series with the creators of RuPaul's Drag Race.
Cheryl Hole said being part of Drag Race was a "surreal experience" and something she never thought would happen.
* RuPaul's Drag Race UK lands on BBC iPlayer at 8pm on Thursday
Do you have a story to sell? Get in touch with us at<EMAIL_ADDRESS>or call us direct 0207 29 33033


We make
quality
leather
products
a travel essential
Duffle Bag
Artificial Leather
a must have
Messenger Bag
Genuine Leather
a party perfect
Purse
Genuine Leather
and
stunning
leather shoes
Artificial Leather
Who else will love these?
Share!
We love crafting
Leather Bag
Jackets
Shoes
Wallets
Purses
We are
Leather Corner
Contact us at
+91<PHONE_NUMBER>


# frozen_string_literal: true
module AutomationObject
module State
module Composite
# Composite action loop base class
class ActionLoop
attr_accessor :composite, :blue_prints, :loops - (Attribute) AutomationObject::State::Composite::ActionLoop#blue_prints is a writable attribute
- (Attribute) AutomationObject::State::Composite::ActionLoop#composite is a writable attribute
- (Attribute) AutomationObject::State::Composite::ActionLoop#loops is a writable attribute
def initialize(blue_prints, driver, composite, loops = 30)
self.blue_prints = blue_prints
self.driver = driver
self.composite = composite
self.loops = loops
end
def driver
composite.driver
end
# @return [Boolean] run success or not
def run
loops.times do
return true if single_run
end
false
end
# @return [Boolean] success or not
def single_run
raise 'Abstract Issue'
end
end
end
end
end


{% extends 'global/base.html' %} {% block content %}
Sorry! The page you're looking for isn't available.
Find out about organizing a Django Girls workshop in your city.


Road accident claims 12 lives in Niger —FRSC
by Agency ReportThe Federal Road Safety Corps in Niger State has said that 12 people have died in an accident on Sunday at Sawmill Village along Mokwa-Makera road in Mokwa Local Government Area of the state.
The FRSC Sector Commander in the state, Mr Joel Dagwa, told News Agency of Nigeria on Monday in Minna that the accident involved a truck with registration No. KJ 555 XX heading to Lagos.
Dagwa said that the truck which came from Maiduguri, picked passengers from Zaria in Kaduna State before heading to Lagos.
“The accident involved 103 people; 55 females, 40 males, 8 children. 12 of them were killed while 91 sustained injuries and were taken to Mokwa general hospital for treatment.
“All the 12 corpses have been deposited at the hospital’s morgue,” he said.
He blamed the accident on over speeding.
The sector commander said that the Corps would continue to monitor road users to guard against overloading and dangerous driving.
“We have since embarked on aggressive patrols across all major highways to ensure that road users adhere strictly to traffic rules and regulations to avoid road accidents before, during and after the Christmas and New year festivities,” he said.
(NAN)