Getting started
Make one-to-one calls
See who’s already available to connect on Duo or invite a friend to join.
Let friends know that you’ve joined
Tap into a contact to leave a note, video or voice message.
Set up groups for your friends & family
Create a group of 32 participants. Then, tap the group name to easily start a group video call.
Duo uses end-to-end encryption
Your calls and messages stay private and can only be seen by you and the person you're talking with.
Be part of bedtime
Be part of bedtime
Tuck them in with their favorite stories over one-to-one video calls with the highest quality1, so you don't miss a precious moment. Learn more about Nest.
Get the group together
Get the group together
Keep the fun times rolling with your weekly game nights over group calling. Available for 32 friends at a time and works on Android phones, iPhones, iPads and tablets. You can also join a group call with just a link.
 Family mode also helps avoid accidental hang-ups and mutes by hiding those buttons while you play together.
Send a little love
their way
Send a little love
their way
Brighten up someone’s day by sending a note, voice or video message with fun effects. Let them know you’re thinking of them, even when they’re far away or can’t pick up.
Make video calls
more fun
Make video calls
more fun
From putting on a pair of virtual heart glasses to channeling your inner dinosaur, new AR effects let you express yourself. These fun new effects change based on your facial expressions and move with you around the screen.
Capture special moments
Capture special moments
Take a photo of your video call to capture any moment, and share it automatically with everyone on the call.
Keep calls private with end-to-end encryption
Keep calls private with end-to-end encryption
Whether it's one-to-one calls, group calls or video messages, your conversations on Duo will always stay private with end-to-end encryption. Learn more.
Try Google Duo
Download Google Duo for free, simple, high quality video calling on iOS and Android.


Hello! I am Thein Thein Soe. I study at Technology University Mandalay-TU(MDY) in final year(IT Major).I will try to become web developer
I studied from Grade(1) to Grade(5) at San Tann Shoool in Monywa.And Then I studied form Grade(6) to Grade(9) B.E.H.S (3) Monywa.Then I went to Mandalay where I stuided Grade(10) and Grade(11) at Victory Education Center,Mandalay.I passed Grade(11) over three disctinctions
Informatin Technology(IT)
I started my higher education by attending at Technology University Mandalay TU(MDY).Now I am attending at final year of IT major.I am training in PHP DEVELOPER BOOTCAMP OF MYANMAR IT CONSULTING for gaining good intenship company.
Address
Between 60*61/Khaing Shwe War Street/Chan Mya Thar Si Township/Mandalay Region
Phone
+959691194191, +959969890936
theintheinsoe1218@gmail.com


Enumeration of the various types of packet headers.
Stored in a 4 bit bitfield (b31-b28) of the first word in the packet
typedef enum GemTraceSync_ContextType {
GemTraceSync_ContextType_Reserved0,
// reserved for future use
GemTraceSync_ContextType_SyncPoint,
// Sync Point event serial number
GemTraceSync_ContextType_ContextChange,
// Context Change event serial number
GemTraceSync_ContextType_Snapshot,
// Snapshot event Snapshot ID
GemTraceSync_ContextType_Reserved4,
// reserved for future use
GemTraceSync_ContextType_Reserved5,
// reserved for future use
GemTraceSync_ContextType_Reserved6,
// reserved for future use
GemTraceSync_ContextType_Reserved7,
// reserved for future use
GemTraceSync_ContextType_Reserved8,
// reserved for future use
GemTraceSync_ContextType_Reserved9,
// reserved for future use
GemTraceSync_ContextType_Reserved10,
// reserved for future use
GemTraceSync_ContextType_Reserved11,
// reserved for future use
GemTraceSync_ContextType_Reserved12,
// reserved for future use
GemTraceSync_ContextType_Reserved13,
// reserved for future use
GemTraceSync_ContextType_Global32bTimestamp,
// 32b Global Timestamp
GemTraceSync_ContextType_User
// User defined data
} GemTraceSync_ContextType;
the CtxChg_ContextType constant that describes what
context info the 2 words contain
This method logs a sync point event and injects
correlation info into the trace stream (if available)
to enable correlation between software events and hardware trace.
This method logs a sync point event and injects
correlation info into the trace stream (if available)
to enable correlation between software events and hardware trace.
// Get this module's unique id
Bool GemTraceSync_Module_startupDone();
// Test if this module has completed startup
// The heap from which this module allocates memory
Bool GemTraceSync_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 GemTraceSync_Module_getMask();
// Returns the diagnostics mask for this module
Void GemTraceSync_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module


Put your application in production
Here some simple tips to optimize your application for production.
application.conf
First off, the best way to specify production mode is to give a specific ID to your production framework. Let’s pick production
as an example. Refer manage application.conf in several environments to see how.
Set the framework in prod mode:
%production.application.mode=prod
In this mode, the framework will pre-compile all Java sources and templates. If an error is found at this step, the application will not start. Source modifications will not be hot reloaded.
Define a real database:
If you have used a development database (either db=mem
or db=fs
), you should configure a more robust database engine:
%production.db.url=jdbc:mysql://localhost/prod
%production.db.driver=com.mysql.jdbc.Driver
%production.db.user=root
%production.db.pass=1515312
Disable JPA automatic schema update:
If you have used the automatic schema update feature provided by Hibernate, you should disable this feature for production.
For your production server, it’s usually a bad idea to let Hibernate automatically ALTER your production database’s schema and data…
The initial deployment is potentially a different issue. In this case only specify:
%production.jpa.ddl=create
Define a secure secret key:
The Play secret key is used to secure cryptographic functions, like the session signature. Your application must keep this key very secret.
%production.application.secret=c12d1c59af499d20f4955d07255ed8ea333
You can use the play secret
command to generate a new secure and random key (at least on a ‘real’ OS). If you plan to distribute your application to several servers, remember to use the same key
for all application instances!
Configuração de log
For production it’s a good idea to use rolling log files. Do not send logging to the Console, since it will be written to the logs/system.out
file and it will grow without bound!
Create a custom log4j.properties
in the conf/
directory:
log4j.rootLogger=ERROR, Rolling
log4j.logger.play=INFO
# Rolling files
log4j.appender.Rolling=org.apache.log4j.RollingFileAppender
log4j.appender.Rolling.File=application.log
log4j.appender.Rolling.MaxFileSize=1MB
log4j.appender.Rolling.MaxBackupIndex=100
log4j.appender.Rolling.layout=org.apache.log4j.PatternLayout
log4j.appender.Rolling.layout.ConversionPattern=%d{ABSOLUTE} %-5p ~ %m%n
Front-end HTTP server
You can easily deploy your application as a stand-alone server by setting the application HTTP port to 80
:
%production.http.port=80
But if you plan to host several applications in the same server or load balance several instances of your application for scalability or fault tolerance, you can use a front-end HTTP server.
Note that using a front-end HTTP server will never give you better performance than using Play server directly!
Set-up with lighttpd
This example shows you how to configure lighttpd as a front-end web server. Note that you can do the same with Apache, but if you only need virtual hosting or load balancing, lighttpd is a very good choice and much easier to configure!
The /etc/lighttpd/lighttpd.conf
file should define things like this:
server.modules = (
"mod_access",
"mod_proxy",
"mod_accesslog"
)
…
$HTTP["host"] =~ "www.myapp.com" {
proxy.balance = "round-robin" proxy.server = ( "/" =>
( ( "host" => "<IP_ADDRESS>", "port" => 9000 ) ) )
}
$HTTP["host"] =~ "www.loadbalancedapp.com" {
proxy.balance = "round-robin" proxy.server = ( "/" => (
( "host" => "<IP_ADDRESS>", "port" => 9000 ),
( "host" => "<IP_ADDRESS>", "port" => 9001 ) )
)
}
Set-up with Apache
The example below shows a simple set-up with Apache httpd server running in front of a standard Play configuration.
LoadModule proxy_module modules/mod_proxy.so
…
<VirtualHost *:80>
ProxyPreserveHost On
ServerName www.loadbalancedapp.com
ProxyPass / http://<IP_ADDRESS>:9000/
ProxyPassReverse / http://<IP_ADDRESS>:9000/
</VirtualHost>
Apache as a front proxy to allow transparent upgrade of your application
The basic idea is to run two Play instances of your web application and let the front-end proxy load-balance them. In case one is not available, it will forward all the requests to the available one.
Let’s start the same Play application two times: one on port 9999 and one on port 9998.
Make a copy of the application and edit the application.conf
in the conf
directory to change the port numbers.
For each web application directory:
play start mysuperwebapp
Now, let’s configure our Apache web server to have a load balancer.
In Apache, I have the following configuration:
<VirtualHost mysuperwebapp.com:80>
ServerName mysuperwebapp.com
<Location /balancer-manager>
SetHandler balancer-manager
Order Deny,Allow
Deny from all
Allow from .mysuperwebapp.com
</Location>
<Proxy balancer://mycluster>
BalancerMember http://localhost:9999
BalancerMember http://localhost:9998 status=+H
</Proxy>
<Proxy *>
Order Allow,Deny
Allow From All
</Proxy>
ProxyPreserveHost On
ProxyPass /balancer-manager !
ProxyPass / balancer://mycluster/
ProxyPassReverse / http://localhost:9999/
ProxyPassReverse / http://localhost:9998/
</VirtualHost>
The important part is balancer://mycluster. This declares a load balancer. The +H option means that the second Play application is on stand-by. But you can also instruct it to load-balance.
Every time you want to upgrade mysuperwebapp, here is what you need to do:
play stop mysuperwebapp1
The load-balancer then forwards everything to mysuperwebapp2. In the meantime update mysuperwebapp1. Once you are done:
play start mysuperwebapp1
You can now safely update mysuperwebapp2.
Apache also provides a way to view the status of your cluster. Simply point your browser to /balancer-manager to view the current status of your clusters.
Because Play is completely stateless you don’t have to manage sessions between the 2 clusters. You can actually easily scale to more than 2 Play instances.
Advanced proxy settings
When using an HTTP frontal server, request addresses are seen as coming from the HTTP server. In a usual set-up, where you both have the Play app and the proxy running on the same machine, the Play app will see the requests coming from <IP_ADDRESS>.
Proxy servers can add a specific header to the request to tell the proxied application where the request came from. Most web servers will add an X-Forwarded-For header with the remote client IP address as first argument. If you enable the forward support in the XForwardedSupport configuration, Play will change the request.remoteAddress from the proxy’s IP to the client’s IP. You have to list the IP addresses of your proxy servers for this to work.
However, the host header is untouched, it’ll remain issued by the proxy. If you use Apache 2.x, you can add a directive like:
ProxyPreserveHost on
The host: header will be the original host request header issued by the client. By combining theses two techniques, your app will appear to be directly exposed.
HTTPS configuration
The built-in server supports the HTTPS protocol, which you can use it in production. It supports certificate management, either via the classical Java keystore or simple cert
and key
files. To start an HTTPS connector for your application, just declare the https.port
configuration property in your application.conf
file:
http.port=9000
https.port=9443
You need to put your certificates in the conf
directory. Play supports X509 certificates and keystore certificates. The X509 certificates must be named as follows:
host.cert for the certificate and host.key for the key. If you are using keystore, then, by default it should be named certificate.jks.
If you are using X509 certificates, then the following parameters can be configured in your application.conf
file:
# X509 certificates
certificate.key.file=conf/host.key
certificate.file=conf/host.cert
# In case your key file is password protected
certificate.password=secret
trustmanager.algorithm=JKS
If you are using keystore:
keystore.algorithm=JKS
keystore.password=secret
keystore.file=conf/certificate.jks
Note that the values above are the default values.
You can generate self-signed certificates using openssl:
openssl genrsa 1024 > host.key
openssl req -new -x509 -nodes -sha1 -days 365 -key host.key > host.cert
If you are using the Java keystore mechanism, then the following properties can be configured in your application.conf
file:
# Keystore
ssl.KeyManagerFactory.algorithm=SunX509
trustmanager.algorithm=JKS
keystore.password=secret
keystore.file=certificate.jks
The values above are the default values.
Deploying Without Python
Python is installed by default on most Unix machines, and a Windows version is embedded with Play. However there may be cases where you need to deploy an application on a server without any Python executable.
For that, a build.xml file providing limited functionalities is provided with Play applications.
From the application folder, you can start the server using:
ant start -Dplay.path=/path/to/playdirectory
Warning: using the play
command the output will be redirected to System.out
; however using Ant the standard output is not accessible. It is necessary to provide a Log4j properties file where you specify a file appended.
To stop the server:
ant stop -Dplay.path=/path/to/playdirectory
Note that you can also specify the path to Play framework in an environment variable or directly in your application’s build.xml
.
Continuing the discussion
Next: Opções de deploy.


All the messages in this protocol (except for a connection invitation that requires no security, by design) must be sent encrypted, using the encryption format specified in DIDComm's encryption envelope. This gives strong guarantees about the confidentiality and integrity of exchanged data, regardless of the transport mechanism used to transmit the messages.
Because peer DIDs are generated from an algorithm that includes the values of their initial public key(s) as input, they cannot be created without the creator controlling them. As mentioned earlier, this prevents man-in-the-middle attacks at the time of creation.
Since keys must be created from keys generated by a secure random number generator, they are guaranteed to be unpredictable and globally unique at creation time.
Keys used to control peer DIDs, or keys authorized to communicate and update the DID docs for peer DIDs, should be managed according to best practices for DKMS, as described in the DKMS spec.
SGL rules are powerful and flexible, and should be used to implement best practices.


Home
See All Bears
Order a Bear
Register
Logi in
Register
Full Name
Username
Email
Password
Confirm Password


[% page.import({ title => 'Download Perl', section => 'download', description => 'Downloading Perl', }); # Add note recommending either building your own perl or using local::lib. %]
| Operating system | Unix like | Mac OS X | Windows |
|---|---|---|---|
| Installed? | Included | Included | Download Needed |
If you are using a Linux (or Unix like) system, including Mac OS X, Perl is probably already installed. Open a terminal (on OSX this is Applications->Utilities->Terminal) and on the command line type 'perl -v', this will show you which version of Perl you already have installed.
You really want a Perl version greater than 5.8 if possible, otherwise use your systems package manager to upgrade or find the relevant port for your system.
For Win32 based systems there are two binary distributions available.
There are ports and binary distributions available for many other platforms.
The Comprehensive Perl Archive Network (CPAN) is a large repository of Perl software, modules, and documentation. On CPAN, you'll find modules organized by author, name, or category. CPAN is mirrored in over [% perl_stats.cpan_mirrors %] locations around the world.
If you are after a list of recommended modules, look at Task::Kensho.


The effect of conspecifics on foraging efficiency of territorial feeders at Pasir Ris Park
| Camera model | Sensor width /mm | Sensor height /mm | Image resolution /(w x h)px |
|---|---|---|---|
| Canon EOS Kiss X5 | 22.3 | 14.9 | 5184x3456 5184x2192 |
| Canon EOS 5D Mark II | 36 | 24 | 5184x3456 |
| Casio EX-ZR50 | 6.17 | 4.55 | 4608x3456 |
| Oppo R7s | 4.69 | 3.52 | 4160x2340 6656x3744 |
All Occurrence Sampling
Scan Sampling
$dist.\ from\ obj\ to\ camera$
$= \frac{focal\ length\ \> \times \> object\ height\ (mm) \> \times \> image\ height}{object\ height\ (px) \> \times \> sensor\ height}$
$x = \frac{dist.\ btwn\ objects\ (px) \> \times \> sensor\ width \> \times \> dist.\ from\ obj\ to\ camera}{focal\ length \> \times \> image\ width}$
"Usually individuals are well spaced out along the 8km stretch of estuary"
"Aggressive displays were commonly seen among foraging Grey Herons"
Cook, D. C. (1978). Grey Herons Ardea cinerea holding
feeding territories on the Ythan Estuary. Bird study, 25(1), 11-16.
Snow, D. W.; Perrins, C. M. 1998. The Birds of the Western Palearctic vol. 1:
Non-Passerines. Oxford University Press, Oxford.
"The species is typically a solitary feeder but at abundant temporary food sources, or where available feeding areas are restricted, large congregations may occur”
These results suggest that the presence of conspecifics adversely affects foraging efficiency, although we acknowledge that our study is limited by other factors


Log
Connection
Address
State
SetValue
Address
Value
GetValue
Address
Value
Subscribe
Addresses
Unsubscribe
Addresses


Main Achievements
- Completed Duke of Edinburgh
- Achieved Band 6 for all subjects for School Certificate
- NSW Schools Representative Gallipoli, ANZAC Centenary, 2015
| Grade | Year 10 |
| School | St Andrews Cathedral School |
| Areas of Interest/Expertise | |
| City | Sydney |
I am friendly, hard-working and responsible year 10 student. I am good at explaining difficult or complex concepts clearly. One of my strengths is in working systematically through marking criteria, maximising grade potential.


Here is the code which take from the CXF managment to show how to avoid
the 1099 Port already in use Exception.
if (serviceUrl.indexOf("localhost") > -1
&& url.getProtocol().compareToIgnoreCase("rmi") == 0) {
try {
int port = getURLLocalHostPort(serviceUrl);
try {
LocateRegistry.createRegistry(port);
} catch (Exception ex) {
// the registry may had been created
LocateRegistry.getRegistry(port);
}
} catch (Exception ex) {
LOG.log(Level.SEVERE, "CREATE_REGISTRY_FAULT_MSG", new
Object[]{ex});
}
}
Willem.
Willem Jiang wrote:
> Hi Martina
>
> 1099 is the default rmi registry listen port. When you run more than
> on instance , only one rmi registry can start rightly.
>
> Maybe we need to change the activemq's jmx server looking up code to
> connector the already start up registry if the registry is created.
>
> Willem.
>
>
> martymusk wrote:
>> Hy,
>> I'm working with ws-notification example (instance1, instance2,
>> instance3).
>> I'm working with eclipse.
>> When instance 1 run, it work fine, but when I run instance 2, the
>> following
>> error occurs:
>>
>>
>> DEBUG - ManagementContext - Failed to create local registry
>> java.rmi.server.ExportException: Port already in use: 1099; nested
>> exception
>> is: java.net.BindException: Address already in use
>> at sun.rmi.transport.tcp.TCPTransport.listen(TCPTransport.java:249)
>> at
>> sun.rmi.transport.tcp.TCPTransport.exportObject(TCPTransport.java:184)
>> at
>> sun.rmi.transport.tcp.TCPEndpoint.exportObject(TCPEndpoint.java:382)
>> at sun.rmi.transport.LiveRef.exportObject(LiveRef.java:116)
>> at
>> sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:180)
>> at sun.rmi.registry.RegistryImpl.setup(RegistryImpl.java:92)
>> at sun.rmi.registry.RegistryImpl.<init>(RegistryImpl.java:78)
>> at
>> java.rmi.registry.LocateRegistry.createRegistry(LocateRegistry.java:186)
>> at
>> org.apache.activemq.broker.jmx.ManagementContext.createConnector(ManagementContext.java:382)
>>
>> at
>> org.apache.activemq.broker.jmx.ManagementContext.findMBeanServer(ManagementContext.java:301)
>>
>> at
>> org.apache.activemq.broker.jmx.ManagementContext.getMBeanServer(ManagementContext.java:154)
>>
>>
>>
>> Why this?
>> Can somebody help me, please!
>>
>> Thank you very much!
>>
>> Martina
>>
>
>
|


Use this AI to see how likely a tweet is to be from a Russian Troll!
Enter text or a direct link to a tweet. You can also quote/retweet @Troll_Spotter!
This is an artificial intelligence (AI) designed to detect the difference between "regular" tweets and Russian troll tweets. It's not perfect, and it only operates on text, so it won't investigate a particular Twitter user.
Bad actors are using technology to spread divisive rhetoric and fake news. Manual intervention is not effective enough, because by the time it gets reported, the tweet has reached all the people it is likely to reach. So, if they're going to use technology, so can we.
When you submit a tweet, a breakdown of what the results mean will be displayed. If you think the result is wrong, help us out by submitting the tweet here.
NBC Universal has provided 200,000 tweets determined to be related in some way to Russian trolls. You can find the dataset here. There's also a popular dataset of 1,600,000 "regular" tweets here.
TrollSpotter is an artificial neural network that was trained on 1,600,000 "regular" tweets, and 200,000 known Russian troll tweets. The percentages you see in the output roughly represent how close your input is to tweets its seen before of either category.
DonateThe AI is bound to have false negatives and false positives. In testing, accuracy on completely new data was roughly 87%. However, if you want to help the AI learn, please submit your tweet here so the AI can learn from it. Just because the AI says something is a troll tweet doesn't mean it actually is. See the legal/disclaimer section.
The AI is trained to detect incendiary rhetoric, fake news and divisive comments. Tweets that simply voice support for a party or candidate (ex. "I think Donald Trump is doing great things for this country") shouldn't register. If the AI is registering otherwise, please fill out the form here so that we can improve the AI.
Though the final result is binary, there are two results, each expressed as a percentage. They are independent of each other, even though they usually are close to 100% when added together. This allows the AI to express confusion in a result- a 0% result on both outputs indicates it's never seen it before.
The database is from Feb 2018, so while it is fairly current, very recent events won't register. You can help it learn by submitting tweets here
On things it's never seen before, it correctly classifies tweets 96% of the time (for the technically minded, it has a validation accuracy of 96%). You can help it learn by submitting tweets here
For all inquiries, media or otherwise, please contact me at<EMAIL_ADDRESS>There is a somewhat coherent readme here that explains how things work.
Please help the AI learn by filling out the Google form here
We will use crowdsourced feedback to better train the AI.
Feel free to fill out your thoughts here
It's all open source on GitHub, so feel free to fork it and throw up a pull request there. The data is also in the repo.
Service repository
Website repository
Your money will help us improve the technology. Some future improvements could be live integration with a Twitter bot, a connection to live news feeds so it stays current, and a more powerful host so it can serve more requests. Use the donate button below if you feel so inclined!
Donate


Recipe Search
Find Something to Make Tonight!
How Does This Work?
Make a Meal!
Mix a Drink!
What ingredients do you have?
Enter Ingredient
Add Ingredient
Clear Ingredients
Find Some Recipes
Show Filters
Vegan
Vegetarian
Peanut-Free
Alcohol-Free


JUPITER'S MOONS
- On Jan. 7, 1610, Galileo Galilei's improvements to the telescope enabled humanity to see Jupiter's four largest moons for the first time.
- Io, Europa, Ganymede and Callisto--the so-called Galilean satellites--were seen by the Long Range Reconnaissance Imager on the New Horizons spacecraft during its flyby of Jupiter in late February 2007.
- Io is notable for its active volcanism, which New Horizons studied extensively.
- On the other hand, Europa's smooth, icy surface likely conceals an ocean of liquid water.
- Ganymede, the largest moon in the solar system, has a dirty ice surface cut by fractures and peppered by impact craters.
Back


Simple hamburger menu for generic applications
This page demonstrates the thing it describes by displaying a fake menu at the top.
I needed a simple hamburger menu for mobile websites.
Here you will find that menu and the code needed to create it. HTML (this document), Javascript and CSS.
There is no design pattern for what goes in the menu. The name 'hamburger menu' creates the fallacious impression that we are talking about a menu by definition. As far as I am concerned, however, site builders can put whatever they want on their hamburgers.
Usage notes TL/DR: by default a menu gets shown, but if the screen is narrow and the user has Javascript, your menu will be replaced by the image of a hamburger. Click the hamburger to show the menu.
For desktop you could choose to enforce the hamburger nevertheless.
Application
Step 1. Make sure your web page is mobile ready (i.e. viewport is set and so on).
Step 2. Add a menu, give it an ID to your liking and a class 'menu-hamburger'.
Step 2. Link the script containing the hamburger menu code.
Step 3. Copy the sample styles to your style sheet and edit to taste. (See the notes in the CSS about what to copy and what not.)
Step 4. Call menuHamburger() with the ID of the hamburger element.
Usage notes
Set-up
In a mobile-first set-up, assuming Javascript is enabled, you will have three states:
- Wide screen: menu is always displayed, all buttons will be hidden.
- Narrow screen: default is menu is hidden, menu has both class 'hamburger-menu' and 'hamburger-menu-hidden', a Hamburger/Open button () is shown.
- Narrow screen, hamburger was clicked: hamburger menu is being shown, menu only has class 'menu-hamburger', the hamburger button has become a Close button ().
In this case, the default lay-out will be to hide the menu but show the icon. If the menu has a class 'menu-hamburger-show' or if the screen is wide, the menu will be shown. If the screen is narrow, a Close icon will also be shown.
Localisation
You can pass an object containing strings as the second argument of the menuHamburger() function.
The value with key 'showmenu' contains your translation (or adaptation) of the string 'Show menu', whereas key 'hidemenu' represents your version of 'Hide menu'.
I.e. menuHamburger('my-id', {'showmenu': 'Open menu', 'hidemenu': 'Close menu'});
Accessibility
This should work, but let me know if it does not. You may wish to add the attribute 'aria-expanded' to the element with class 'menu-hamburger' and then use the Javascript to set the correct value ("true" or "false").
Visual style
Replace the sprite for the buttons with your own. The style sheet contains three sections; the first you must copy; the second you may copy (but likely you will want to change the definitions); the third you shouldn't copy.
Questions I have been asking myself
Q: Aren't hamburger menus out?
A: Yes! No! Maybe? Thing is, customers unwilling to pay for intricate solutions keep coming up with intricate needs, so I had to come up with a known technology that can be used in the 'value pack'.
Q: Aren't there already a thousand hamburger menus out there?
A: Probably. It takes far less time to roll my own than to evaluate a thousand existing solutions. Also, in our attention economy the most popular existing solutions tend to be a little, shall we say, bloaty?
Q: Fail! This is not CSS-only.
A: CSS-only menus are 90 % for bragging rights and only 10 % for real world usage. If you can make it work in only CSS, good for you!
Widescreen demo
This second demo displays a hamburger menu that is always on, regardless of the screen width.
Versions
0.1 First release.
0.2 Fixed a bug where the CSS expects there to be a div with class="content". If you have been using this menu since v.0.1, you may need to rename or remove your div with class="content".
This document contains no footer.


쇼핑몰
company name
product name
price
score
company name
product name
price
score
company name
product name
price
score
company name
product name
price
score
company name
product name
price
score
discounts
news
details
inspires


Benjamin C Pope III
Democrat
I am currently a Loadmaster at a Chrysler Corporation Warehouse.
I am a Graduate Of Miami University in Ohio. I was a Double Major in Social Work and the Humanities(Comparative Religion). This educational background has allowed to see things acutely, at the community and local levels and understand the needs of the people, with empathy and with clear solutions.
80010
I have a great knack for organizing, and creating harmony and results in the process. Sometimes its like not having a recipe to cook from, but having rich ingredients , all the same. I know where to put which spice, and how long to simmer, and 'viola!, we all have a great, but trying day. The work is done and we are fulfilled... until the next time. With my company FCA, we have committed ourselves to community engagement, and at any chance possible, I try to do this on my free time, here all across Colorado. And let me just say, the beauty of the state make it all that much easier.
As a child, my parents were active in the community and local government. They taught me and my siblings the importance of our vote. and of doing our parts to be good citizens. At 16, I was a volunteer at the Cincinnati HQ for the Clinton campaign in 1992. Not even old enough to vote yet, I still felt like my canvassing and phone bank calls to voters made a difference. I have been active with my local party for every election since. Be it Registering people to vote, to giving classes on local measures, I believe that it is my civic duty to inform. I have remained neutral and haven't giving to any campaign or organization.
Colorado Democratic Party. Michigan Democratic Party. Cincinnati Civic Garden Club. Alpha Sigma Phi Fraternity
I believe that I will be a great asset and addition to the Redistricting Commission, because I have a love for fairness and equality. My focuses in university allowed me to be diverse in my approach to serving the public, while understanding the role of Government, and how to make it all work together. My experience in management has allowed me to experience working under pressure and meeting deadlines. And having being an Educator I understand that everything we will do will be to the benefit of the future, and the legacy passed on to generations down the road. Being part of this Commission, I will bear all of this in mind.
Whether it is stated, or not, we as Commissioners will be delegates, bringing with us our experiences, and reasoning based on our make up, and our environment. This is a good thing. We are all human beings, and citizens of Colorado at the end of the day. And while we may disagree on some matters, the objective and aim will be the same. And we will always find common solutions. I will listen to all sides of a matter, and be fair and seek council, even from those with an opposing view, to come to a clear solution.
I base much of my reasoning on a legal term called RPP, or Reasonable Prudent Person. In many situations, while I may tend to overthink, I will ask myself, "what would a reasonably prudent person do in this situation?" and If I am armed with all of the facts I usually come to a favorable conclusion, for the prudent. It is a simple approach, but it works more than it doesn't.
Male


Cylon.js is a JavaScript framework for robotics, physical computing, and the Internet of Things (IoT).
It provides a simple, but powerful way to create solutions that incorporate multiple, different hardware devices concurrently.
Want to use Ruby on robots? Check out our sister project, Artoo.
Want to use Golang to power your robots? Check out our sister project, Gobot.
All you need to get started on a new robot is the cylon
module:
npm install cylon
With the core module installed, now install the modules for whatever hardware
support you need. For the Arduino + LED blink example, we'll need the firmata
, gpio
, and i2c
modules:
npm install cylon-firmata cylon-gpio cylon-i2c
The below example connects to an Arduino over a serial connection, and blinks an LED once per second.
The example requires that the Arduino have the Firmata sketch installed; which
can be obtained either through the Ardunio IDE or the gort arduino upload firmata
command available in gort.
var Cylon = require('cylon');
// define the robot
var robot = Cylon.robot({
// change the port to the correct one for your Arduino
connections: {
arduino: { adaptor: 'firmata', port: '/dev/ttyACM0' }
},
devices: {
led: { driver: 'led', pin: 13 }
},
work: function(my) {
every((1).second(), my.led.toggle);
}
});
// connect to the Arduino and start working
robot.start();
var Cylon = require('cylon');
Cylon.robot({
connections: {
ardrone: { adaptor: 'ardrone', port: '<IP_ADDRESS>' }
},
devices: {
drone: { driver: 'ardrone' }
},
work: function(my) {
my.drone.takeoff();
after((10).seconds(), my.drone.land);
after((15).seconds(), my.drone.stop);
}
}).start();
var Cylon = require('cylon');
Cylon.robot({
connections: {
digispark: { adaptor: 'digispark' },
leapmotion: { adaptor: 'leapmotion' }
},
devices: {
servo1: { driver: 'servo', pin: 0, connection: 'digispark' },
servo2: { driver: 'servo', pin: 1, connection: 'digispark' },
leapmotion: { driver: 'leapmotion', connection: 'leapmotion' }
},
work: function(my) {
my.x = 90;
my.z = 90;
my.leapmotion.on('hand', function(hand) {
my.x = hand.palmX.fromScale(-300, 300).toScale(30, 150);
my.z = hand.palmZ.fromScale(-300, 300).toScale(30, 150);
});
every(100, function() {
my.servo1.angle(my.x);
my.servo2.angle(my.z);
console.log(my.servo1.currentAngle() + ", " + my.servo2.currentAngle());
});
}
}).start();
To use the HTTP API plugin, first install it's NPM module:
$ npm install cylon-api-http
Then it can be used in scripts:
var Cylon = require('cylon');
// tell the HTTP API plugin to listen for requests at https://localhost:4000
Cylon.api("http", { port: 4000 });
var bots = [
{ port: '/dev/rfcomm0', name: 'Thelma' },
{ port: '/dev/rfcomm1', name: 'Louise' }
];
bots.forEach(function(bot) {
Cylon.robot({
name: bot.name,
connections: {
sphero: { adaptor: "sphero", port: bot.port }
},
devices: {
sphero: { driver: "sphero" }
},
work: function(my) {
every((1).second(), function() {
console.log(my.name);
my.sphero.setRandomColor();
my.sphero.roll(60, Math.floor(Math.random() * 360));
});
}
});
});
// start up all robots at once
Cylon.start();
For those more familiar with jQuery, D3, or other fluent-style JavaScript libraries, Cylon.JS also supports a chainable syntax:
var Cylon = require('cylon');
Cylon
.robot()
.connection('arduino', { adaptor: 'firmata', port: '/dev/ttyACM0' })
.device('led', { driver: 'led', pin: 13 })
.on('ready', function(bot) {
setInterval(function() {
bot.led.toggle();
}, 1000);
});
Cylon.start();
Cylon.js has an extensible syntax for connecting to multiple, different hardware devices. The following 36 platforms are currently supported:
Our implementation of GPIO (General Purpose Input/Output) allows for a shared set of drivers supporting a number of devices:
Additionally, we also support a number of I2C (Inter-Integrated Circuit) devices
through a shared cylon-i2c
module:
In addition to our supported platforms, we have the following user contributed platforms:
| Platform | Support |
|---|---|
| Parrot Rolling Spider | cylon-rolling-spider |
| PCDuino | cylon-pcduino |
| iBeacon | cylon-beacon |
| WeMo | cylon-wemo |
We'll also have many more platforms and drivers coming soon, follow us on Twitter for updates.
Cylon.js can be run directly in-browser, using the browserify
NPM module.
You can also run it from withing a Chrome connected app, or a PhoneGap mobile app.
For more info on browser support, and for help with different configurations, you can find more info in our docs.
Cylon.js has support for different API plugins that can be used to interact with your robots remotely. At this time we have support for http/https, mqtt, and socket.io with more coming in the near future.
To use an API plugin, install it alongside Cylon:
$ npm install cylon-api-http cylon-api-socketio
Then, all you need to do is call Cylon#api
in your robot's script:
var Cylon = require("cylon");
// For http
Cylon.api('http');
// Or for Socket.io
Cylon.api('socketio');
Then visit https://localhost:3000/
and you are ready to control your robots from a web browser!
You can check out more information on the Cylon API in the docs here.
Cylon uses the Gort http://gort.io Command Line Interface (CLI) so you can access important features right from the command line. We call it "RobotOps", aka "DevOps For Robotics". You can scan, connect, update device firmware, and more!
Cylon also has its own CLI to generate new robots, adaptors, and drivers. You can check it out at https://github.com/hybridgroup/cylon-cli.
We're busy adding documentation to our website, check it out at cylonjs.com/documentation.
If you want to help with documentation, you can find the code for our website at on the https://github.com/hybridgroup/cylon-site.
For our contribution guidelines, please go to CONTRIBUTING.md.
For the release history, please go to RELEASES.md.
Copyright (c) 2013-2015 The Hybrid Group. Licensed under the Apache 2.0 license.


Introduction
disadvantage of traditional payment:
- traditional payment rely on the financial institutions as the trusted third parties.
- completely non-reversible transactions are not possible, because financial instituions can not avoid mediating disputes.
- the cost of mediation.
- limiting the minimum practical transaction size.
- certain percentage of fraud.
advantage of electronic payment based on cryptographic proof:
- allow to transact directly without the need for a trusted third party.
- non-reversible transactions
- no limit for minimum transaction size
Transactions
First, electronic coin is a chain of digital signatures. Each signature is consists of a hash of the previous transaction and the public key of the next owner. Then if we combine all of these signatures following the order of timestamp, that is an electronic coin.
The payee can verify the signatures to verify the chain of ownership. (1) How we can achieve this? Let’s be the first problem in our problem set. I will try to answer all of problems in my new post.
If we are the payee, and we successfully verified the ownership of coin. How can we continue to verify that the owner did not double-spend the coin? The traditional solution is to introduce a trusted central authority (Bank) to help us, to check whether our transaction is double spending.
How to find a way to know that the previous owners did not sign any earlier transactions? For the trusted third partie, they have to be aware of all transactions. Although we do not have the trusted party, we can publicly announce our transaction and let other participants help us to check our transaction. (2) So how can we design such a system to accomplish the target? That is our second question.
Timestamp Server
A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it.
(3) How we can understand the concept of timestamps? What is it useful for?
Proof-of-Work
Proof-of-Work is the system we need in solving double spending. So that is the answer for our second question in problem set. Let’s explore the mechanism of Proof-of-Work.
The work we need to proof is to find a value, which decide the number of zero bits of hash in the begining. The average work required is exponential in the numberof zero bits required. The last section indtoduce the timestamp. The timestamp network actually is a chain of block with a nonce. Each block consists of two parts.The first part is the hash of previous block, and the second part is a nonce. Before you proof the work of that block, you can not change the block. Since the blocks are nest, the work to change the block would include redoing all the blocks after it. That is the key to prevent some participants to modify the transactions, unless he have enough chances to proof the work before other participants.
The proof-of-work also solves the problem of determining representation in majority decision making. As the author saying, “The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. To modify a past block, an attacker would have to redo the proof-of-work of the block and all blocks after it and then catch up with and surpass the work of the honest nodes.”
Here have a new problem, “the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they’re generated too fast, the difficulty increases.” If the participants spend too much time in the proof. Obviously, it will increase the cost of transactions.
Network
The steps to run the network are as follows:
- New transactions are broadcast to all nodes.
- Each node collects new transactions into a block.
- Each node works on finding a difficult proof-of-work for its block.
- When a node finds a proof-of-work, it broadcasts the block to all nodes.
- Nodes accept the block only if all transactions in it are valid and not already spent.
- Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash.
Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the next proofof-work is found and one branch becomes longer; the nodes that were working on the other branch will then switch to the longer one.
New transaction broadcasts do not necessarily need to reach all nodes. As long as they reach many nodes, they will get into a block before long. Block broadcasts are also tolerant of dropped messages. If a node does not receive a block, it will request it when it receives the next block and realizes it missed one.
Incentive
Incentive is very important for the Bitcoin, since it encourage the participants to be the nodes to support the network. In Bitcoin, the first transaction of each block would awards the creator of the block with a constant of amount of new coins. Otherwise, the incentive can also be funded with transaction fees. “If the output value of a transaction is less than its input value, the difference is a transaction fee that is added to the incentive value of the block containing the transaction”.
Reclaiming Disk Space
transactions are hashed in a Merkle Tree, with only the root included in the block’s hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored
- What Merkle Tree is?
Simplified Payment Verification
It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he’s convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it’s timestamped in. He can’t check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it.
As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker’s fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user’s software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification.
Combining and Splitting Value
Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender.
It should be noted that fan-out, where a transaction depends on several transactions, and those transactions depend on many more, is not a problem here. There is never the need to extract a complete standalone copy of a transaction’s history.
Privacy
The traditional banking model achieves a level of privacy by limiting access to information to the parties involved and the trusted third party. The necessity to announce all transactions publicly precludes this method, but privacy can still be maintained by breaking the flow of information in another place: by keeping public keys anonymous. The public can see that someone is sending an amount to someone else, but without information linking the transaction to anyone. This is similar to the level of information released by stock exchanges, where the time and size of individual trades, the “tape”, is made public, but without telling who the parties were.
As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner. Some linking is still unavoidable with multi-input transactions, which necessarily reveal that their inputs were owned by the same owner. The risk is that if the owner of a key is revealed, linking could reveal other transactions that belonged to the same owner.
Problem Sets:
- How can we verify the chain of ownership?
- how can we design a system without third trusted parties to avoid double spending?
- How we can understand the concept of timestamps? What is it useful for?
- What Merkle Tree is?


Hover effects
Shadow effect
Colors and intensity
Use one of the classes below to change the color and intensity of the overlay.
Light overlay
.rgba-blue-light
.rgba-red-light
.rgba-pink-light
.rgba-purple-light
.rgba-indigo-light
.rgba-cyan-light
.rgba-teal-light
.rgba-green-light
.rgba-lime-light
.rgba-yellow-light
.rgba-orange-light
.rgba-brown-light
.rgba-grey-light
.rgba-blue-grey-light
.rgba-black-light
.rgba-stylish-light
.rgba-white-light
Strong overlay
.rgba-blue-strong
.rgba-red-strong
.rgba-pink-strong
.rgba-purple-strong
.rgba-indigo-strong
.rgba-cyan-strong
.rgba-teal-strong
.rgba-green-strong
.rgba-lime-strong
.rgba-yellow-strong
.rgba-orange-strong
.rgba-brown-strong
.rgba-grey-strong
.rgba-blue-grey-strong
.rgba-black-strong
.rgba-stylish-strong
.rgba-white-strong
Super Light overlay
.rgba-blue-slight
.rgba-red-slight
.rgba-pink-slight
.rgba-purple-slight
.rgba-indigo-slight
.rgba-cyan-slight
.rgba-teal-slight
.rgba-green-slight
.rgba-lime-light
.rgba-yellow-slight
.rgba-orange-slight
.rgba-brown-slight
.rgba-grey-slight
.rgba-blue-grey-slight
.rgba-black-slight
.rgba-stylish-slight
.rgba-white-slight
Full documentation
Read the full documentation for these components.
Learn more


---
layout: default
title: Release v1.1.5
---
Release v1.1.5, 27th June 2014
Download
- Spelling Mistake
- When create new venue on edit venue event page, js only fires on 1 field
- When add or remove event from curated list should stay on event page
- Listing venues on event edit venue page should be alphabetical
- Start of CLI API 1!
- Extra JSON & JSONP methods to get a users public calendar
- Added Sponsor2. Appears in ICAL feeds.
- Hidden basic page for user to add or remove event from groups. Add edit/groups to an event URL,
eg. http://demo.hasacalendar.co.uk/event/9-hackathon/edit/groups


FixedFrameLine3DBasics
, FrameLine3DBasics
, FrameLine3DReadOnly
, Line3DBasics
FrameLine3D
, Line3D
public interface Line3DReadOnly
A line 3D represents an infinitely long line in 3 dimensions and defined by a point and a direction.
| Modifier and Type | Method | Description |
|---|---|---|
default double |
closestPointsWith(Line3DReadOnly otherLine,
us.ihmc.euclid.tuple3D.interfaces.Point3DBasics closestPointOnThisLineToPack,
us.ihmc.euclid.tuple3D.interfaces.Point3DBasics closestPointOnOtherLineToPack) |
This methods computes two points P ∈ this line and Q ∈
otherLine such that the
distance || P - Q || is the minimum distance between the two 3D lines. |
default double |
distance(Line3DReadOnly otherLine) |
This methods computes the minimum distance between this line and
otherLine . |
default double |
distance(us.ihmc.euclid.tuple3D.interfaces.Point3DReadOnly point) |
Computes the minimum distance the given 3D point and this line.
|
default boolean |
epsilonEquals(Line3DReadOnly other,
double epsilon) |
Tests on a per-component basis on the point and vector if this line is equal to
other
with the tolerance epsilon . |
default boolean |
equals(Line3DReadOnly other) |
Tests on a per component basis, if this line 3D is exactly equal to
other . |
default boolean |
geometricallyEquals(Line3DReadOnly other,
double epsilon) |
Compares
this to other to determine if the two lines are geometrically similar. |
default void |
get(us.ihmc.euclid.tuple3D.interfaces.Point3DBasics pointToPack,
us.ihmc.euclid.tuple3D.interfaces.Vector3DBasics directionToPack) |
Gets the point and direction defining this line by storing their components in the given
arguments
pointToPack and directionToPack . |
us.ihmc.euclid.tuple3D.interfaces.Vector3DReadOnly |
getDirection() |
Gets the read-only reference to the direction of this line.
|
default double |
getDirectionX() |
Gets the x-component of this line's direction.
|
default double |
getDirectionY() |
Gets the y-component of this line's direction.
|
default double |
getDirectionZ() |
Gets the z-component of this line's direction.
|
us.ihmc.euclid.tuple3D.interfaces.Point3DReadOnly |
getPoint() |
Gets the read-only reference to the point through which this line is going.
|
default double |
getPointX() |
Gets the x-coordinate of a point this line goes through.
|
default double |
getPointY() |
Gets the y-coordinate of a point this line goes through.
|
default double |
getPointZ() |
Gets the z-coordinate of a point this line goes through.
|
default void |
getTwoPointsOnLine(us.ihmc.euclid.tuple3D.interfaces.Point3DBasics firstPointOnLineToPack,
us.ihmc.euclid.tuple3D.interfaces.Point3DBasics secondPointOnLineToPack) |
Gets the coordinates of two distinct points this line goes through.
|
default boolean |
isCollinear(Line3DReadOnly other,
double epsilon) |
Compares
this with other to determine if the two lines are collinear. |
default boolean |
isCollinear(Line3DReadOnly other,
double angleEpsilon,
double distanceEpsilon) |
Compares
this with other to determine if the two lines are collinear. |
default boolean |
isPointOnLine(us.ihmc.euclid.tuple3D.interfaces.Point3DReadOnly point,
double epsilon) |
Tests if the given is located on this line.
|
default boolean |
orthogonalProjection(us.ihmc.euclid.tuple3D.interfaces.Point3DReadOnly pointToProject,
us.ihmc.euclid.tuple3D.interfaces.Point3DBasics projectionToPack) |
Computes the orthogonal projection of the given 3D point on this 3D line.
|
default us.ihmc.euclid.tuple3D.Point3D |
orthogonalProjectionCopy(us.ihmc.euclid.tuple3D.interfaces.Point3DReadOnly pointToProject) |
Computes the orthogonal projection of the given 3D point on this 3D line.
|
default double |
parameterGivenPointOnLine(us.ihmc.euclid.tuple3D.interfaces.Point3DReadOnly pointOnLine,
double epsilon) |
Calculates the parameter 't' corresponding to the coordinates of the given
pointOnLine
'p' by solving the line equation:p = t * n + p0 where n is the unit-vector defining the direction of this line and p0 is the point defining this line which also corresponds to the point for which t=0. |
default us.ihmc.euclid.tuple3D.Point3D |
pointOnLineGivenParameter(double t) |
Calculates the coordinates of the point 'p' given the parameter 't' as follows:
p = t * n + p0 where n is the unit-vector defining the direction of this line and p0 is the point defining this line which also corresponds to the point for which t=0. |
default void |
pointOnLineGivenParameter(double t,
us.ihmc.euclid.tuple3D.interfaces.Point3DBasics pointToPack) |
Calculates the coordinates of the point 'p' given the parameter 't' as follows:
p = t * n + p0 where n is the unit-vector defining the direction of this line and p0 is the point defining this line which also corresponds to the point for which t=0. |
us.ihmc.euclid.tuple3D.interfaces.Point3DReadOnly getPoint()
us.ihmc.euclid.tuple3D.interfaces.Vector3DReadOnly getDirection()
default double getDirectionX()
default double getDirectionY()
default double getDirectionZ()
default void get(us.ihmc.euclid.tuple3D.interfaces.Point3DBasics pointToPack, us.ihmc.euclid.tuple3D.interfaces.Vector3DBasics directionToPack)
pointToPack
and directionToPack
.pointToPack
- point in which the coordinates of this line's point are stored. Modified.directionToPack
- vector in which the components of this line's direction are stored.
Modified.default double getPointX()
default double getPointY()
default double getPointZ()
default double distance(Line3DReadOnly otherLine)
otherLine
.
Useful link.otherLine
- the other line to compute the distance from. Not modified.default double distance(us.ihmc.euclid.tuple3D.interfaces.Point3DReadOnly point)
Edge cases:
direction.length() <
EuclidGeometryTools.ONE_TRILLIONTH
, this method
returns the distance between point
and the given point
.
point
- 3D point to compute the distance from the line. Not modified.default boolean orthogonalProjection(us.ihmc.euclid.tuple3D.interfaces.Point3DReadOnly pointToProject, us.ihmc.euclid.tuple3D.interfaces.Point3DBasics projectionToPack)
Edge cases:
lineDirection.lengthSquared() <
1.0E-12, this method
fails and returns false
.
pointToProject
- the point to compute the projection of. Not modified.projectionToPack
- point in which the projection of the point onto the line is stored.
Modified.default us.ihmc.euclid.tuple3D.Point3D orthogonalProjectionCopy(us.ihmc.euclid.tuple3D.interfaces.Point3DReadOnly pointToProject)
Edge cases:
lineDirection.lengthSquared() <
1.0E-12, this method
fails and returns false
.
WARNING: This method generates garbage.
pointToProject
- the point to compute the projection of. Not modified.null
if the method failed.default boolean isPointOnLine(us.ihmc.euclid.tuple3D.interfaces.Point3DReadOnly point, double epsilon)
More precisely, the point is assumed to be on this line if it is located at a distance less than
epsilon
from it.
point
- the coordinates of the query. Not modified.epsilon
- the tolerance used for this test.true
if the point is located on this line, false
otherwise.default double parameterGivenPointOnLine(us.ihmc.euclid.tuple3D.interfaces.Point3DReadOnly pointOnLine, double epsilon)
pointOnLine
'p' by solving the line equation:Note that the absolute value of 't' is equal to the distance between the point 'p' and the point p0 defining this line.
pointOnLine
- the coordinates of the 'p' from which the parameter 't' is to be calculated.
The point has to be on the line. Not modified.epsilon
- the maximum distance allowed between the given point and this line. If the given
point is at a distance less than epsilon
from this line, it is considered as
being located on this line.java.lang.RuntimeException
- if the given point is located at a distance greater than epsilon
from this line.default us.ihmc.euclid.tuple3D.Point3D pointOnLineGivenParameter(double t)
Note that the absolute value of 't' is equal to the distance between the point 'p' and the point p0 defining this line.
WARNING: This method generates garbage.
t
- the parameter used to calculate the point coordinates.default void pointOnLineGivenParameter(double t, us.ihmc.euclid.tuple3D.interfaces.Point3DBasics pointToPack)
Note that the absolute value of 't' is equal to the distance between the point 'p' and the point p0 defining this line.
t
- the parameter used to calculate the point coordinates.pointToPack
- the point in which the coordinates of 'p' are stored. Modified.default void getTwoPointsOnLine(us.ihmc.euclid.tuple3D.interfaces.Point3DBasics firstPointOnLineToPack, us.ihmc.euclid.tuple3D.interfaces.Point3DBasics secondPointOnLineToPack)
firstPointOnLineToPack
- the coordinates of a first point located on this line. Modified.secondPointOnLineToPack
- the coordinates of a second point located on this line. Modified.default boolean isCollinear(Line3DReadOnly other, double epsilon)
this
with other
to determine if the two lines are collinear.other
- the line to compare to. Not modified.epsilon
- the tolerance of the comparison.true
if the lines are collinear, false
otherwise.default boolean isCollinear(Line3DReadOnly other, double angleEpsilon, double distanceEpsilon)
this
with other
to determine if the two lines are collinear.other
- the line to compare to. Not modified.angleEpsilon
- the tolerance of the comparison for angle.distanceEpsilon
- the tolerance of the comparison for distance.true
if the lines are collinear, false
otherwise.default double closestPointsWith(Line3DReadOnly otherLine, us.ihmc.euclid.tuple3D.interfaces.Point3DBasics closestPointOnThisLineToPack, us.ihmc.euclid.tuple3D.interfaces.Point3DBasics closestPointOnOtherLineToPack)
otherLine
such that the
distance || P - Q || is the minimum distance between the two 3D lines.
Useful link.otherLine
- the second line. Not modified.closestPointOnThisLineToPack
- the 3D coordinates of the point P are packed in this 3D
point. Modified. Can be null
.closestPointOnOtherLineToPack
- the 3D coordinates of the point Q are packed in this 3D
point. Modified. Can be null
.default boolean epsilonEquals(Line3DReadOnly other, double epsilon)
other
with the tolerance epsilon
. This method will return false
if the two lines are
physically the same but either the point or vector of each line is different. For instance, if
this.point == other.point
and this.direction == - other.direction
, the two lines
are physically the same but this method returns false
.other
- the query. Not modified.epsilon
- the tolerance to use.true
if the two lines are equal, false
otherwise.default boolean geometricallyEquals(Line3DReadOnly other, double epsilon)
this
to other
to determine if the two lines are geometrically similar.
Two lines are considered geometrically equal is they are collinear, pointing toward the same or opposite direction.
other
- the line to compare to. Not modified.epsilon
- the tolerance of the comparison.true
if the two lines represent the same geometry, false
otherwise.default boolean equals(Line3DReadOnly other)
other
.other
- the other line 3D to compare against this. Not modified.true
if the two lines are exactly equal component-wise, false
otherwise.


The Thread class provides a psuedo-thread implementation for Framework Objects. Each thread is sensitive to the object lifecycle, and can stop itself when the object is destroyed or when the framework is shutdown.
Creates a psuedo asynchronous thread.
See Example Thread #1 for an example of implementating the script on a page.
Demonstrate how to use the Thread component.
var MyThreadedObject = { handle_thread_run : function(oThread){ /* basic demo */ document.title = (new Date()).getTime(); }};/* Prepare the MyThreadedObject for use with Engine */Hemi.prepareObject("CustomThread","1.0",true,MyThreadedObject);/* Create a new thread for MyThreadedObject*/var oThread = Hemi.util.thread.newInstance(MyThreadedObject);/* run the thread every 5 seconds */oThread.run(5000);
Creates a new instance of a psuedo thread. The thread is bound to the object lifetime of the specified object, so that when the object is explicitly destroyed or removed from the ObjectRegistry, the thread will also terminate.
t = newInstance( o )
t as Thread: A new ThreadInstance.
A psuedo thread that is created by invoking the static thread class newInstance method.
Object API structure for storing sub structures: object_config.pointers and object_config.status.
object = object.object_config
Unique instance identifier.
String = object.object_id
The type of this object.
String = object.object_type
Version of the object class.
String = object.object_version
Object load and execution state. Follows: 0 unitialized, 1 through 3 variant, 4 ready, 5 destroyed.
int = object.ready_state
Invokes the stop method and prevents the thread from further execution.
void allStop( )
Prepares the object for destruction.
void destroy( )
Returns true if the thread can be run.
b = getIsRunnable( )
b as boolean: Bit indicating whether the thread can be run.
Returns true if the thread is running, false otherwise.
b = getIsRunning( )
b as boolean: Bit indicating whether the thread is running.
Returns the delay interval used to start the thread.
i = getLastInterval( )
i as int: The interval in milliseconds used to start the thread.
Returns the unique id of the object.
i = getObjectId( )
i as String: The unique object instance id.
Returns the type of the object.
t = getObjectType( )
t as String: The type of the object instance.
Returns the version of the object.
v = getObjectVersion( )
v as String: The version of the object instance.
Returns the object_config.pointers sub structure.
o = getPointers( )
o as object: The object_config.pointers substructure.
Returns the state of the object.
s = getReadyState( )
s as int: The object ready state.
Returns the object_config.status sub structure.
o = getStatus( )
o as object: The object_config.status substructure.
Invoked when the thread is running an iteration. Method is virtual and can be overridden.
void handle_thread_run( t )
Invoked when the thread is starting. Method is virtual and can be overridden.
void handle_thread_start( t )
Invoked when the thread is shutting down. Method is virtual and can be overridden.
void handle_thread_stop( t )
Restarts the thread interval.
b = restart( )
b as boolean: Bit indicating whether the thread was restarted.
Runs the thread with the specifed delay.
b = run( d, b )
b as boolean: Bit indicating whether the thread started running.
Stops the thread.
b = stop( b )
b as boolean: Bit indicating whether the thread was stopped.
[ Hemi JavaScript Framework - Stephen W. Cote, 2002 - 2013. ]


Copyright (c) 1993 Jean-Claude Rosa
Troll is a two player game played on an empty 8x8 square board:
|
| An example
White has not won yet! He does not have an orthogonal chain of stones between his two edges. He might win by dropping at one of the cells [1]. If it's Black's turn, he can defend by playing at cell [2]. |


---
layout: volunteer
title: Volunteer
permalink: "/Volunteer/"
menuOrder: 5
paragraph:
style: 1
text: |
Volunteers make Rev possible. Without your help, Rev could not offer an amazing experience to guests or make a lasting impact on Central Indiana.
Benefits to volunteering for Rev:
- For a great cause!
- Have fun and meet others from the Indianapolis area
- Exclusive behind-the-scenes volunteer orientation at IMS prior to the event
- Receive a special thank you volunteer gift
- Access to the Volunteer Hospitality Room during the event
- Receive a free Rev T-shirt to wear while you volunteer
- If you volunteer for a four-hour shift either Friday or before 6:00 pm Saturday, you will have the opportunity to purchase discounted Premiere tickets at $150.00 each (limit two)
Volunteer opportunities
A flexible schedule lets you find the volunteer opportunity that fits with your time and skills.
Volunteer to help set up before the event, keep things running during Rev or clean up afterward.
ctaLearnMore:
heading: "Interested in Learning More?"
call: ""
email<EMAIL_ADDRESS>---


Pairing was and, honestly, still is the most intimidating feature of the DBC experience for me. With communication emphasized, I find myself occasionally having trouble articulating verbally the coding strategies I attempt to employ. This may sound counterintuitive, but I think the problem occurs from trying to think about a challenge in different ways. I put pressure on myself to commit to the first strategy I think up, whereas I usually tend to sit and mull over a problem when I work it on my own. This pressure is compounded with the main critique I've heard, which is that I don't always fully articulate my thoughts. It is a bad habit of mine not to finish a sentence. I think out loud a lot. For me, it is a problem that is easily caught, and practice hopefully will improve my communication.
So far my pairing sessions have gone well. From the beginning, I have tried to go into them with a positive attitude, with a conscious effort to listen, and with an adequate amount of preparation. I don't know if this is the best strategy, but I think it's a solid one. It pays off in a good pairing session mood, which is essential to have a productive learning session. I've had no new, great insight into pair programming though. I do feel like I haven't used them to their greatest potential. This might be because a good dynamic is difficult to form.
In terms of feedback, I've found that making specific, actionable comments are the most difficult to get down. General problems seem like they're much more prevalent. I'm trying to combat this by being more observant. I've found that sometimes the best critique can be made towards an aspect of a session that wasn't necessarily apparent. What's missing might be the biggest drawback of a bad session.
The biggest problem I have with pairing, though, is initializing it. Reaching out to people is not something I normally do. I have to work on this, and I have to become more comfortable in doing it. It's hard for me to be proactive with people over the Internet. They have lives, schedules, and work I am oblivious to. It is almost like reaching out into the void for me. I'm hoping the different situation of active pairing at DBC will eliminate this personal tension I have. In addition, I believe once I get to know my cohort better after face-to-face meetings, I'll be more comfortable reaching out to them.
Pairing, like many other aspects of learning, is about moving forward and improving. Practice is essential. The more experienced know where the pitfalls are and where the potential lies.


Brad Fabian About Me Work Experience Education Skills Community Work References References happily provided when needed.


---
layout: post
title: MicrobiomeDB 16 Released
category: [MicrobiomeDB]
---
We are pleased to announce the release of MicrobiomeDB 16
New data in this release
A study of a birth cohort of 271 children from the Amazonian lowlands near Iquitos, Peru, for which stool samples were collected at postnatal months 6, 12, 18, and 24". This cohort has a high prevalence of growth stunting and diarrhea, and is one of the participating sites in the MAL-ED study
New features in this release
The search box on the landing page now searches both the text on each study card, as well as the the more extensive 'study details' page. This means that users can now easily filter cards based on principal investigator, publications, institution, and more.
Users now have the ability to customize histogram displays for any sample detail (metadata) variable in the filtering tools, including rescaling X and Y axis, toggling between log and linear displays, and customized binning.
The search strategy has been redesigned for a better user experience.


{% extends PATH + "/inc/layout.html" %} {% block staff_content %} {# this is a macro: pass the id of the selected iteam. Code in inc/layout.html #} {{ horizontal_nav('nav-team') }}
cases in team
Outstanding BF dates
Outstanding over 20 days
Outstanding initial action over 5 days
| Case | Status | Status updated | Claim submitted |
|---|---|---|---|
| Marcus Smith | New appliction | 4 June 2017 | 4 June 2017 |
| Muriel Gray | First call | 15 June 2017 | 12 June 2017 |
| Candice Campari | First call | 22 May 2017 | 21 May 2017 |
| Justine Time | Second call | 22 May 2017 | 20 May 2017 |
| Stephanie Sloan | Referred for assessment | 20 May 2017 | 18 May 2017 |
| Case | Status | Status updated | Claim submitted |
|---|---|---|---|
| Malcolm Best | New appliction | 4 June 2017 | 4 June 2017 |
| Judith Speight | New application | 13 June 2017 | 13 June 2017 |
| Sandra Gaul | New application | 13 June 2017 | 13 June 2017 |
| Gina Peaches | Employer contact | 4 June 2017 | 29 May 2017 |


  Even for only a few minutes. You need more than just courage,but also the cries of revolution from the bottom of your heart,only to wake a few people up.
{include file="Public/footer" /}


the and that for are with ENAM enamel were from teeth branches The was frameshift functional have based []. branch molecular synonymous (Figure gene stop {background fossil mixed pseudogene all Figure but evolution loss substitution dN/dS occurrence rate sequences which codons data enamelless frameshifts margin pseudogenic stem analyses edentulous under {border-style not placental common px;} species taxa #ffffff;} evolved used evolutionary hypothesis mutations Biol ancestor extant history neutral one two using Xenarthra additional enamelin first mammals may million record selection this time PCR ancestral been here mya reconstructed these Click LINK after both crown-group degeneration different estimated file. having lack leading lost mysticete suggests taxa. than tree xenarthran years S). also estimate genes mammalian nonsynonymous other purifying value (i.e., DNA Our [],[]. alignment basal between constraints early evidence four nodes only without aardvarks branch, branches, changes codon divergence expected forms internal living numbers rates respectively. sequence transition Bayesian Evol PAML baleen crown decay enamel, estimates insertions least more most mysticetes nonfunctional number pangolins performed px; there {font-family ENAM, ENAM. Mus Pilosa case detected earlier enamel. font-size has independently morphological new nucleotide optimization phylogenetic probability provide result shared support then tooth where (see Acad Dataset Eocene Manis Mixed Natl Press Sci This [], absence accumulation al.[] branch. calculated character double; equation exon following included lead lineage mammal maximum minimum missing model mutation occur occurred our per predict protein-coding relationships segments sperm substitutions teeth, timing values versus will within (e.g., (ω) AMBN, AMELX, All Dasypodidae Given However, Marshall Nat Paleocene TIF) Univ age analysis assumed border-color border-width either expression formation fossils genome had implies interpretation into length mapped method mutations, mya) onto orders palaeanodonts pangolin phylogenetics, predicted presence provides rates, ratio relaxed secretory segment selective solid; split taxa, test three toothless when whereas would xenarthrans {font-style {font-weight Amer Ancestral Calculations DOC) EMPs Enamel Ensembl Frameshifts Functional Hist MSS. Methods). Miocene Pholidota South Utaetus [],[], aardvark agrees ameloblast-specific amount and/or armadillo bold clocks, combination composite consistent contain courier; dasypodid deletions development each em; epithelium evolution, followed fossils, histories its lower mixed, mouse mysticetes, origin physeteroids possible postcanine pre-mutation predictive products proteins pt;} range ratios. reconstructions record, region relationship respectively, sampled sets show sites state study times very whales =


Hosker's Library
Hosker's Library is a library of the very best works of (and relating to) English poetry. It is a subsidiary project of Hosker's Almanack.
Poets of the Golden Age
GOLDENPOETSImportant Anthologies and Collections
See also the library of the Department of Theology for translations of the Bible into English.
ANTHOLOGIESOther Works of Interest
Poets Not of the Golden Age
OTHERPOETSPoetry-Related Material
POETRYRELATEDHosker's Folk Songs
Hosker's Folk Songs can be found here.
Hosker's Catalogue
Hosker's Catalogue can be found here.


Connect with your friends from across the globe!
Answer a few basic questions and find your friends.
Find Now


This post is a part of a series i plan to write periodically to document my exploits with CNC machines and other stuff i have built! This post is about a stepper system tester i built a while back.
Stepper motors are quite widely used for CNCs/3D Printers or other Electromechanical hacks like the polar plotter etc. ! There is as always a constant need to run the motor to check whether its aligned properly or not? Does the flex coupling has any issues? Is the driver dead or alive and the best one- whether the current setting is fine to generate enough torque to hold or move the lead screw/Belt.
Pestered by the same above questions i wanted to build my own driver/motor tester overnight and it 'must' be built ACAP (As cheap as possible) :D ! I stumbled open this awesome project that i saw on Hack-A-Day.
It uses an ATiny AVR microcontroller which I did'nt have and the least capable one i had was the MSP430G2230 which came in a SOIC pkg a bit difficult to go on the perfboard and my laziness propelled me away from etching a board for accommodating the same (I now feel the need though). I thought of building a microcontroller-less one as most modern stepper drivers like the ones from Pololu need just two signal i.e STEP and DIR.
A pulse on step pin will initiate a step to the internal indexer that handles what coil has to be energized based on the sequence and micro-stepping settings, while the DIR is a level signal whose level decides whether the internal indexer of the driver counts up or down!
So, only two inputs i.e Pulsed input for STEP and level input for DIR. This can be achieved using the 555 timer in the astable mode. The Output of 555 i.e pin 3 will go into the step pin and the DIR pin is pulled up using a resistor and it is also connected to ground via switch.
This gets the job done! We can also have a POT to vary the frequency since some motors don't respond to faster pulses due to rotor inertia.The driver i am using is based on DRV8825 from TI. It is slightly wider than the polulu one. (You might call me a TI fan boy). I designed it myself based on reference designs by TI and had the PCBs made by SeeedStudio's Fusion PCB Service. It took about 30 odd days to reach. The driver is two layer in-contrast the Pololu ones are 4 layer. I had to widen the PCB to provide enough dissipating area for the inbuilt heatsink on the the HTSSOP pkg of the DRV8825. Also the SMD resistor cousins of those lower value resistors were not available here in Delhi, so had to go with through hole ones. Ditto for the POT !

The circuit is as follows:
It has two power inputs 12v, 5v and a common ground, all of which are sourced from an ATX! The circuit itself is pretty simple.
The final build on a perfboard is shown below.
I chose to use a SMD 0603 10K resistor between pin 8 and 7 to reduce the space and connected 104 (0.1uF) Ceramic caps as shown. The switch is a 10xx and the capacitor is required at the input of stepper driver to reduce supply dips when it draws current. I have used female headers for the motor since most motors come with a connector that can be easily wired up with a single strand wire. I used the Power Terminal connectors for the main 12V Driver supply as the driver is rated for 2.5A which is too high for the usual jumper cables !
TIP: If you are using the non-tinned/less tinned headers that have been lying around in the component box for a while, make sure to rub the connectors using sandpaper to remove corrosion residue on the contacts else it might seem soldered but it wont actually be soldered. Also you may use some extra flux.
Video:
Cheers !
Rohit Gupta
Read moreDISCLAIMER This article is for exploratory and educational purposes only. Kindly use the code and project responsibly.
Happy Engineers Day !
Televison and Childhood… These things are inseparable. Remember waiting for your favourite TV show to come live. That experience was certainly unique.TV used to be the bargain if someone had to get things done from kids. TV today is a bit different. It has changed and I would certainly refrain from using the word ‘evolved’. Indian TV is now filled with good-for-nothing ultra HD Home shows that could destroy any household ecosystem if followed. I have rather ‘evolved’ to avoid them.
Being the ‘90’s Kid’, going by the parlance, TV we watched as kids used to have good, humble and light hearted shows. I loved the ones like “Byomkesh Bakshi” , “Recess” ,”Small Wonder”, “Shreeman Shreemati”, “TaleSpin”, “Captain Planet” etc.
So, one fine day while struggling with streaming on my slow connection while watching my favourite show,it occurred to me that a Pi which can runs off my cellphone charger would be a great tool for offlin-ing. Sort of a physical Youtube App on a Pi. Nothing needs to be said about Youtube Experience on Windows Phone !
The system should read a couple of links from a file and then offline them sequentially and store them on the SD Card. It should have a location and quality filter to set a requirements of the video like on the App. Once done watching, DELETE !
It turned out to be a pretty easy task. Thanks to pafy
python library. I integrated it to do the url read part from txt file and selecting the required location to save the file.
The steps are pretty simple:
pafy
using pip the usual wayIf you intend to sleep and leave Pi do the work, you can check an awesome utility called screen
. It just detaches the terminal instance you are on and opens up a new one. Which you can exit, So the task you were originally in the old instance runs. Then Login and restore the instance later.
You can check this amazing tutorial about screen here.
After you are finished, just SFTP
to the pi and copy/cut all the stuff and edit the url.txt file for further jobs.
There can be several extensions of the idea.We can also attach a small LED on one of the Pins to indicate when downloading ends. Further a NAS can be configured instead of SFTP for easier file exchanges. Better we can combine it with other services to make Pi a Bandwidth Hogger and a mean downloading machine.
Cheers,
Rohit
Read moreThis didnt seem to be coming ! Some of us were travelling to Bedse Caves on a weekend. [ZT] had the amazing MotoX -Ghost aka 2013 one that served as our primary camera and navigator since he was leading. The MotoX was (or rather is) a flagship phone that gave way for the present generation Moto G and E. But it had an AMOLED that usually steals the show.. If you know what i mean.
The essence of the trip was captured in the phone and we were to meet the next day to swap pictures. I was anticipating it even more as I wanted to write a short trip entry.
The next day [ZT] didnt have the same phone. His hands were graced by a crappy qwerty from the time Texts became cheaper than an alpenliebe.
With profound grief he said, Dude it got bricked after installing an OTA for Lollipop. The worst part he had already tried clear memory.
We discussed how to get it up and running. The obvious choice being service guys! He submitted the phone for repair.
A week passed and he reverted saying the service guys say they cant figure what happened and are saying to change the motherboard costing around 15k INR ($235). Logically.. Its better to buy a new phone.
But AMOLED !
As his search for a new phone began. I thought that since the phone is booting but is stuck in a loop. Maybe the hardware is fine. Its the software that has got hurt. Clueless as a noob, I asked him to give me the brick to play around. He gladly obliged. I searched places to find a solution to assess the gravity of the situation. It turns out, Bootloops are pretty common issues and videos like these were surely encouraging.
Maintaining brevity of the topic, Most android phones have a fastboot mode which is like a BIOS thing that can be used to flash things (usually compiled codes/OS aka ROMs) to the internal memory sectors and then hoping they will all come together to work. This mode gets activated using a hardware trigger (like happens on PCs) which is usually a combination of lock and Volume button. Searching online one can get it for any device. In the X its Vol - + Pwr
And if a device enters a fastboot it should be easy to heal it. Thankfully our did.
Now the USB on the MotoX has some durability issues and it was not working on this device. [ZT] says it works when the time and physics are fine. Bummer.. It took me the whole night to connect it via USB to the PC. I turns out i have about 7 USB-micro cables. LOL
At around 2am the space time matrix budged a bit and i was able to connect it using a micromax cable.
Now i started the process whats mentioned on several blogs around the web. Its a generic method to restore any phone via fastboot.
It works well on windows i reckon! All you need is a couple of drivers and the OS you wished to flash (obviously for ur device).
Folks at XDA Developers have made a streamlined setup for that here. You should get that. Plus you need motorola drivers from motorola website i suggest you get the suite !
For Moto Devices you will need the mfastboot
When you are all set. Go to the adb folder in C: and type fastboot devices
. You should see your device or maybe check USB cable or the word connected written on fastboot screen.
Like this:
Now download the ROM from a trusted source. I got the MotoX Kitkat Asia ROM from here after 5 failed downloads.
Now unzip the file and copy the contents of adb folder plus mfastboot exe into the unzipped folder. Rename it to give a short name.
You will find a .xml
file in the ROM that shows the commands for fastboot installation. You have to prefix fastboot
before every command. For Moto devices use the command mfastboot flash system system.img
instead of fastboot flash system system.img
Follow them and make sure your USB is always connected. Mine got disconnected after much efforts that almost killed the excitement for me.I was up all night to get the USB connected after about 100 failed insertion and reinsertion cycles i gave up to try with the last cable that i had but was in use - The Kindle cable.
Next Day! It got connected in one shot. Followed the commands but forgot the last one fastboot oem fb_mode_clear
. It failed to boot. After much googling i found out the cure and wrote the command.
And it booted…. Yeah!! Victory!
There was one problem. The camera was not working! I ran a couple of checks with [ZT] who quickly came to collect the phone ! I turned out that the Ribbon for camera had loosened. We just pressed it a bit and it was up and running again.
One device saved !
If you guys need any more info shoot the queries in the comment window.
Cheers,
Rohit
Read more


Saturday, February 8, 2003
21:35
Substance: 5-MeO-DMT
Dose: unknown
Set: Life is generally good. We are starting the commune in a few months! I have been weight-lifting and getting into better shape recently. At this time I am taking daily multi-vitamins, b-12 supplements (I’m almost vegan), yohimbe extract, ginkgo biloba and Depakote (valproic acid).
Setting: I am home, in my messy bedroom, with my girlfriend S and best friend R. I have cleared the bed of everything as my trip space. I have elected to not have any music playing and have candles going to barely light the room after R turns the over head light off.
Report: [T -3:00] I smoke some chunk hash. I am very stoned at this point, but by T +0:00 I just feel like I smoked a bowl of regular cannabis.
[T +0:00] I tried something different. Since I've had difficulty fully penetrating into the 5-MeO-DMT space with just vaporizing it I decided to try an intramuscular (IM) injection. So, we prepared the sterile needle using distilled water and the substance, prepared the injection site and needle with alcohol and shot it into me.
[T +0:05] I laid there for about 5-6 minutes and just barely felt it. Some light vibration in my body, very slight euphoria and that peculiar feeling I get in my teeth. I'm not sure exactly what the time frame for IM 5-MeO-DMT is, as I couldn't really find any information on it and so maybe I should have waited a little longer but I just had an intuition that if I smoked some then I would definitely leave this reality for the other reality.
I was right.
I can't really describe the trip too much, it was such a blur. I remember just like a 'white out' for about 5 seconds (which goodygrrl later said was about 3-5 minutes).
[T +0:10?]Then at one instant I opened my eyes and this reality existed again, although I was still tripping unbelievably hard. It was like coming out of warp speed to impulse power. And of course as soon as this happened my analytical mind turned on and started trying to bring it back, which I should know better than by now. I remember standing up, with much difficulty, and propping myself up in the corner. I was trying to pay attention to what was happening, but I couldn't concentrate and it was going by so incredibly fast. I didn't know my brain could GO that fast. As I started coming down I tried to verbalize, but it was hard. It was quite nice to come back to two of my favorite people in the world though =).
[T +0:13?] After a couple minutes of gesticulation and confusion I came down enough to make sensible faces to my companions and soon after start talking to them. I continued coming down for probably another 20-30 minutes, with another 30 minutes or so of after effects. While I was coming down my mind was still racing, in a bit of a generic “trippy” space with tracers and impaired motor coordination.  This was hard when I was “watching” the ball come in because I would space out and forget to move my hand. When I tried to get into “Zen” mode and not think about catching it I did much better, it just happened naturally.
[T +1:00] Afterwards they told me that I talked some while I was tripping, as well as making noises and kicking some. I don't remember this part. Xanthan had put some more 5-MeO-DMT in the vaporizer before he brought it over to me to smoke and he managed to vaporize everything in the bowl! I think part of my not remembering stems from too high of a dose, but we are getting better at finding what works for me. I know soon we'll much better able to get me the right dosage for the exploration I want to do. However, this trip was incredible and ineffable. I am simply in awe. This experience was unlike anything else I've ever experienced, including other drug induced states.
I think next time I will probably try IM + vaporizing again, but with a smaller vaporized dose. I hope this will allow me to reach that space again, but at a dose where I can remember more of it. Like I said, I only remember the peak as 5 seconds long, which is odd because with tryptamines I usually get time dilation, not time compression. I remember most of the come down however. 'What a long, strange trip it's been.'
Peace.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Blog post created successfully, check it out in your drafts!
Could not create blog post. Please make sure the Author Email is a user in your Portal.