Famous Michael Jordan quotes to inspire you
Experience is the best teacher. For one to succeed in life, they need to learn from those who have made it. If you are a basketball fan, you must know Jordan. He is a famous basketball legend who is among the greatest players of all time. Michael Jordan quotes have inspired many in the basketball field and in real life.
Michael Jordan quotes are not just based on basketball playing, but also real-life situations. They can be relevant to all those who need motivation. Moreover, they are relevant to both the young and the old. He does not just tell the secret to success, but he also tells how to make it in life, and the difference between those who have succeeded and those of have not. The following are some inspirational quotes by Michael Jordan in different categories.
Basketball quotes Michael Jordan
Jordan is a basketball legend. His success came as a result of his perseverance and hard work. The following are some of his words on basketball;
Latest details on the signing of Lukaku to Inter Milan
- I have never looked at the consequences of missing a big shot. When you think about the consequences you always think of a negative result.
- If you don’t practice, you don’t deserve to win.
- I play to win, whether during practice or a real game. And I will not let anything get in the way of me and my competitive enthusiasm to win.
- Talent wins games, but teamwork and intelligence win champions.
- There is no such thing as a perfect basketball player, and I don’t believe there is only one greatest player, either.
Michael Jordan inspirational quotes
Michael is famous for inspiring people whenever he speaks. The following are some of his inspirational quotes;
- Never say never, because limits like fears are often just an illusion.
- The minute you get away from fundamentals – whether it is proper technique, work ethic, or mental preparation – the bottom can fall out of your game, schoolwork, your job, whatever you are doing.
- Enjoy every minute in life. Never second-guess life.
- My father used to say that it is never too late to do anything you wanted to do. And he said, ‘you never know what you can accomplish until you try it.’
Shaquille Oneal net worth and his personal life
Michael Jordan motivational quotes
His words also motivate people to be courageous, set their goals, and not give up.
- You must expect great things of yourself before you can do them.
- Success is not something you chase. It is something you have to put forth the effort for constantly, then maybe it may come when you least expect it.
- Obstacles don’t have to stop you. If you run into a wall, don’t turn around and give up. Figure out how to climb it, go through it, or work around it.
- Do not let them drag you down by rumors just go with what you believe in.
- Look me in the eye. It’s okay if you are scared. So am I. But we are scared for different reasons. I am scared of what I could become. Look at me. I won’t let myself end where I started. I won’t let myself finish where I began. I know what is within me, even if you can’t see it yet. Look me in the eye. I have something more important than courage. I have patience. I will become what I know I am.
Dany Garcia: Top facts to know about Dwayne Johnson's ex wife
Michael Jordan famous quotes
There are numerous famous Michael Jordan quotes that have been shared by many people over the years. Some of them include the following;
- Talent wins games, but teamwork and intelligence win champions.
- What is love? Love is playing every game as if it is your last.
- All I knew is that I never wanted to be average.
- Learning is a gift, even when pain is your teacher.
Quotes about Michael Jordan
The following are some of the inspirational quotes Michael Jordan. The basketball player revealed information about his character and beliefs through his words.
- The game is my wife. It demands loyalty and responsibility, and it gives me back fulfillment and peace.
- I want to be perceived as a guy who played his best in all facets, not just scoring. A guy who loved challenges.
- I accept failure, everyone fails at something. But I can’t accept not trying again.
- I have never been afraid to fail
- Even when am old and grey, I won’t be able to play it, but I’ll still love the game.
Top 15 most touching Asa songs ever
Best Michael Jordan quotes
Among the numerous quotes from Michael Jordan, the following are some of his best;
- Sometimes, things may not go your way, but the effort should be there every single night.
- I believe greatness is an evolutionary process that changes and evolves era to era.
- Winning is not always championship.
- You can practice shooting eight hours a day, but if your technique is wrong, then all you become is very good at shooting the wrong way. Get the fundamentals down, and the level of everything you do will rise.
- The heart is what separates the good from the great.
Michael Jordan quotes are inspirational to many people who want to reach great heights in life. When you read them, you learn that as long as you work hard and you are dedicated, you will achieve your dreams. Moreover, the quotes do not just inspire; they also motivate people to be focused on being extraordinary in whatever they do.


OLL (Orientation of the Last Layer) is the third step of the CFOP method, where you orient all the pieces on the last layer.
2-look OLL solves this in two steps, and there are only 10 algorithms total.
If you want to get faster after being fairly good at beginner's method OLL, this is what to learn.
There are three cases you can get to get to a yellow cross.
Once you have a yellow cross, these seven cases get you an oriented layer.


Loading...
Instructions
Move: Joystick
Shoot: A/B
God Mode: G
Click to Start Game!
Return to First Screen
A
B
G
P


VDIST - Using the WGS-84 Earth ellipsoid, compute the distance between two points within a few millimeters of accuracy, compute forward azimuth, and compute backward azimuth, all using a vectorized version of Vincenty's algorithm. s = vdist(lat1,lon1,lat2,lon2) [s,a12] = vdist(lat1,lon1,lat2,lon2) [s,a12,a21] = vdist(lat1,lon1,lat2,lon2) s = distance in meters (inputs may be scalars, vectors, or matrices) a12 = azimuth in degrees from first point to second point (forward) a21 = azimuth in degrees from second point to first point (backward) (Azimuths are in degrees clockwise from north.) lat1 = GEODETIC latitude of first point (degrees) lon1 = longitude of first point (degrees) lat2, lon2 = second point (degrees) Original algorithm source: T. Vincenty, "Direct and Inverse Solutions of Geodesics on the Ellipsoid with Application of Nested Equations", Survey Review, vol. 23, no. 176, April 1975, pp 88-93. Available at: http://www.ngs.noaa.gov/PUBS_LIB/inverse.pdf Notes: (1) lat1,lon1,lat2,lon2 can be any (identical) size/shape. Outputs will have the same size and shape. (2) Error correcting code, convergence failure traps, antipodal corrections, polar error corrections, WGS84 ellipsoid parameters, testing, and comments: Michael Kleder, 2004. (3) Azimuth implementation (including quadrant abiguity resolution) and code vectorization, Michael Kleder, Sep 2005. (4) Vectorization is convergence sensitive; that is, quantities which have already converged to within tolerance are not recomputed during subsequent iterations (while other quantities are still converging). (5) Vincenty describes his distance algorithm as precise to within 0.01 millimeters, subject to the ellipsoidal model. (6) For distance calculations, essentially antipodal points are treated as exactly antipodal, potentially reducing accuracy slightly. (7) Distance failures for points exactly at the poles are eliminated by moving the points by 0.6 millimeters. (8) The Vincenty distance algorithm was transcribed verbatim by Peter Cederholm, August 12, 2003. It was modified and translated to English by Michael Kleder. Mr. Cederholm's website is http://www.plan.aau.dk/~pce/ (9) Distances agree with the Mapping Toolbox, version 2.2 (R14SP3) with a max relative difference of about 5e-9, except when the two points are nearly antipodal, and except when one point is near the equator and the two longitudes are nearly 180 degrees apart. This function (vdist) is more accurate in such cases. For example, note this difference (as of this writing): >>vdist(0.2,305,15,125) 18322827.0131551 >>distance(0.2,305,15,125,[6378137 0.08181919]) 0 (10) Azimuths FROM the north pole (either forward starting at the north pole or backward when ending at the north pole) are set to 180 degrees by convention. Azimuths FROM the south pole are set to 0 degrees by convention. (11) Azimuths agree with the Mapping Toolbox, version 2.2 (R14SP3) to within about a hundred-thousandth of a degree, except when traversing to or from a pole, where the convention for this function is described in (10), and except in the cases noted above in (9). (12) No warranties; use at your own risk.
0001 function varargout = vdist(lat1,lon1,lat2,lon2) 0002 % VDIST - Using the WGS-84 Earth ellipsoid, compute the distance between 0003 % two points within a few millimeters of accuracy, compute forward 0004 % azimuth, and compute backward azimuth, all using a vectorized 0005 % version of Vincenty's algorithm. 0006 % 0007 % s = vdist(lat1,lon1,lat2,lon2) 0008 % [s,a12] = vdist(lat1,lon1,lat2,lon2) 0009 % [s,a12,a21] = vdist(lat1,lon1,lat2,lon2) 0010 % 0011 % s = distance in meters (inputs may be scalars, vectors, or matrices) 0012 % a12 = azimuth in degrees from first point to second point (forward) 0013 % a21 = azimuth in degrees from second point to first point (backward) 0014 % (Azimuths are in degrees clockwise from north.) 0015 % lat1 = GEODETIC latitude of first point (degrees) 0016 % lon1 = longitude of first point (degrees) 0017 % lat2, lon2 = second point (degrees) 0018 % 0019 % Original algorithm source: 0020 % T. Vincenty, "Direct and Inverse Solutions of Geodesics on the Ellipsoid 0021 % with Application of Nested Equations", Survey Review, vol. 23, no. 176, 0022 % April 1975, pp 88-93. 0023 % Available at: http://www.ngs.noaa.gov/PUBS_LIB/inverse.pdf 0024 % 0025 % Notes: (1) lat1,lon1,lat2,lon2 can be any (identical) size/shape. Outputs 0026 % will have the same size and shape. 0027 % (2) Error correcting code, convergence failure traps, antipodal 0028 % corrections, polar error corrections, WGS84 ellipsoid 0029 % parameters, testing, and comments: Michael Kleder, 2004. 0030 % (3) Azimuth implementation (including quadrant abiguity 0031 % resolution) and code vectorization, Michael Kleder, Sep 2005. 0032 % (4) Vectorization is convergence sensitive; that is, quantities 0033 % which have already converged to within tolerance are not 0034 % recomputed during subsequent iterations (while other 0035 % quantities are still converging). 0036 % (5) Vincenty describes his distance algorithm as precise to within 0037 % 0.01 millimeters, subject to the ellipsoidal model. 0038 % (6) For distance calculations, essentially antipodal points are 0039 % treated as exactly antipodal, potentially reducing accuracy 0040 % slightly. 0041 % (7) Distance failures for points exactly at the poles are 0042 % eliminated by moving the points by 0.6 millimeters. 0043 % (8) The Vincenty distance algorithm was transcribed verbatim by 0044 % Peter Cederholm, August 12, 2003. It was modified and 0045 % translated to English by Michael Kleder. 0046 % Mr. Cederholm's website is http://www.plan.aau.dk/~pce/ 0047 % (9) Distances agree with the Mapping Toolbox, version 2.2 (R14SP3) 0048 % with a max relative difference of about 5e-9, except when the 0049 % two points are nearly antipodal, and except when one point is 0050 % near the equator and the two longitudes are nearly 180 degrees 0051 % apart. This function (vdist) is more accurate in such cases. 0052 % For example, note this difference (as of this writing): 0053 % >>vdist(0.2,305,15,125) 0054 % 18322827.0131551 0055 % >>distance(0.2,305,15,125,[6378137 0.08181919]) 0056 % 0 0057 % (10) Azimuths FROM the north pole (either forward starting at the 0058 % north pole or backward when ending at the north pole) are set 0059 % to 180 degrees by convention. Azimuths FROM the south pole are 0060 % set to 0 degrees by convention. 0061 % (11) Azimuths agree with the Mapping Toolbox, version 2.2 (R14SP3) 0062 % to within about a hundred-thousandth of a degree, except when 0063 % traversing to or from a pole, where the convention for this 0064 % function is described in (10), and except in the cases noted 0065 % above in (9). 0066 % (12) No warranties; use at your own risk. 0067 0068 % reshape inputs 0069 keepsize = size(lat1); 0070 lat1=lat1(:); 0071 lon1=lon1(:); 0072 lat2=lat2(:); 0073 lon2=lon2(:); 0074 % Input check: 0075 if any(abs(lat1)>90 | abs(lat2)>90) 0076 error('Input latitudes must be between -90 and 90 degrees, inclusive.') 0077 end 0078 % Supply WGS84 earth ellipsoid axis lengths in meters: 0079 a = 6378137; % definitionally 0080 b = 6356752.31424518; % computed from WGS84 earth flattening coefficient 0081 % preserve true input latitudes: 0082 lat1tr = lat1; 0083 lat2tr = lat2; 0084 % convert inputs in degrees to radians: 0085 lat1 = lat1 * 0.0174532925199433; 0086 lon1 = lon1 * 0.0174532925199433; 0087 lat2 = lat2 * 0.0174532925199433; 0088 lon2 = lon2 * 0.0174532925199433; 0089 % correct for errors at exact poles by adjusting 0.6 millimeters: 0090 kidx = abs(pi/2-abs(lat1)) < 1e-10; 0091 if any(kidx) 0092 lat1(kidx) = sign(lat1(kidx))*(pi/2-(1e-10)); 0093 end 0094 kidx = abs(pi/2-abs(lat2)) < 1e-10; 0095 if any(kidx) 0096 lat2(kidx) = sign(lat2(kidx))*(pi/2-(1e-10)); 0097 end 0098 f = (a-b)/a; 0099 U1 = atan((1-f)*tan(lat1)); 0100 U2 = atan((1-f)*tan(lat2)); 0101 lon1 = mod(lon1,2*pi); 0102 lon2 = mod(lon2,2*pi); 0103 L = abs(lon2-lon1); 0104 kidx = L > pi; 0105 if any(kidx) 0106 L(kidx) = 2*pi - L(kidx); 0107 end 0108 lambda = L; 0109 lambdaold = 0*lat1; 0110 itercount = 0; 0111 notdone = logical(1+0*lat1); 0112 alpha = 0*lat1; 0113 sigma = 0*lat1; 0114 cos2sigmam = 0*lat1; 0115 C = 0*lat1; 0116 warninggiven = false; 0117 while any(notdone) % force at least one execution 0118 %disp(['lambda(21752) = ' num2str(lambda(21752),20)]); 0119 itercount = itercount+1; 0120 if itercount > 50 0121 if ~warninggiven 0122 warning(['Essentially antipodal points encountered. ' ... 0123 'Precision may be reduced slightly.']); 0124 end 0125 lambda(notdone) = pi; 0126 break 0127 end 0128 lambdaold(notdone) = lambda(notdone); 0129 sinsigma(notdone) = sqrt((cos(U2(notdone)).*sin(lambda(notdone)))... 0130 .^2+(cos(U1(notdone)).*sin(U2(notdone))-sin(U1(notdone)).*... 0131 cos(U2(notdone)).*cos(lambda(notdone))).^2); 0132 cossigma(notdone) = sin(U1(notdone)).*sin(U2(notdone))+... 0133 cos(U1(notdone)).*cos(U2(notdone)).*cos(lambda(notdone)); 0134 % eliminate rare imaginary portions at limit of numerical precision: 0135 sinsigma(notdone)=real(sinsigma(notdone)); 0136 cossigma(notdone)=real(cossigma(notdone)); 0137 sigma(notdone) = atan2(sinsigma(notdone),cossigma(notdone)); 0138 alpha(notdone) = asin(cos(U1(notdone)).*cos(U2(notdone)).*... 0139 sin(lambda(notdone))./sin(sigma(notdone))); 0140 cos2sigmam(notdone) = cos(sigma(notdone))-2*sin(U1(notdone)).*... 0141 sin(U2(notdone))./cos(alpha(notdone)).^2; 0142 C(notdone) = f/16*cos(alpha(notdone)).^2.*(4+f*(4-3*... 0143 cos(alpha(notdone)).^2)); 0144 lambda(notdone) = L(notdone)+(1-C(notdone)).*f.*sin(alpha(notdone))... 0145 .*(sigma(notdone)+C(notdone).*sin(sigma(notdone)).*... 0146 (cos2sigmam(notdone)+C(notdone).*cos(sigma(notdone)).*... 0147 (-1+2.*cos2sigmam(notdone).^2))); 0148 %disp(['then, lambda(21752) = ' num2str(lambda(21752),20)]); 0149 % correct for convergence failure in the case of essentially antipodal 0150 % points 0151 if any(lambda(notdone) > pi) 0152 warning(['Essentially antipodal points encountered. ' ... 0153 'Precision may be reduced slightly.']); 0154 warninggiven = true; 0155 lambdaold(lambda>pi) = pi; 0156 lambda(lambda>pi) = pi; 0157 end 0158 notdone = abs(lambda-lambdaold) > 1e-12; 0159 end 0160 u2 = cos(alpha).^2.*(a^2-b^2)/b^2; 0161 A = 1+u2./16384.*(4096+u2.*(-768+u2.*(320-175.*u2))); 0162 B = u2./1024.*(256+u2.*(-128+u2.*(74-47.*u2))); 0163 deltasigma = B.*sin(sigma).*(cos2sigmam+B./4.*(cos(sigma).*(-1+2.*... 0164 cos2sigmam.^2)-B./6.*cos2sigmam.*(-3+4.*sin(sigma).^2).*(-3+4*... 0165 cos2sigmam.^2))); 0166 varargout{1} = reshape(b.*A.*(sigma-deltasigma),keepsize); 0167 if nargout > 1 0168 % From point #1 to point #2 0169 % correct sign of lambda for azimuth calcs: 0170 lambda = abs(lambda); 0171 kidx=sign(sin(lon2-lon1)) .* sign(sin(lambda)) < 0; 0172 lambda(kidx) = -lambda(kidx); 0173 numer = cos(U2).*sin(lambda); 0174 denom = cos(U1).*sin(U2)-sin(U1).*cos(U2).*cos(lambda); 0175 a12 = atan2(numer,denom); 0176 kidx = a12<0; 0177 a12(kidx)=a12(kidx)+2*pi; 0178 % from poles: 0179 a12(lat1tr <= -90) = 0; 0180 a12(lat1tr >= 90 ) = pi; 0181 varargout{2} = reshape(rad2deg(a12),keepsize); % to degrees 0182 end 0183 if nargout > 2 0184 a21=NaN*lat1; 0185 % From point #2 to point #1 0186 % correct sign of lambda for azimuth calcs: 0187 lambda = abs(lambda); 0188 kidx=sign(sin(lon1-lon2)) .* sign(sin(lambda)) < 0; 0189 lambda(kidx)=-lambda(kidx); 0190 numer = cos(U1).*sin(lambda); 0191 denom = sin(U1).*cos(U2)-cos(U1).*sin(U2).*cos(lambda); 0192 a21 = atan2(numer,denom); 0193 kidx=a21<0; 0194 a21(kidx)= a21(kidx)+2*pi; 0195 % backwards from poles: 0196 a21(lat2tr >= 90) = pi; 0197 a21(lat2tr <= -90) = 0; 0198 varargout{3} = reshape(rad2deg(a21),keepsize); % to degrees 0199 end 0200 0201 end % function


This demo provides a client-side interactive shell for the Lua programming language.
Note: the C++ source code of this demo is available in webports. The terminal interface is rendered in HTML/CSS using the hterm library.
Links:
Unit Testss:
Lua Unit Tests
Benchmarks:
SciMark,
binarytrees
Snippets:
Mandlebrot Ascii,
Donut


Here are some small icons - they are converted to base64-strings and bundled.
Here is a bigger image. See for yourself if it is bundled or not?


--- layout: example categories: example/v1.0.0 version: v1.0.0 title: Create markers from HTML description: Use L.divIcon to create custom HTML markers. tags: - markers ---


Whistlepig is a minimalist realtime full-text search index. Its goal is to be as small and feature-free as possible, while still remaining useful, performant and scalable to large corpora. If you want realtime full-text search without the frills, Whistlepig may be for you.
Whistlepig is written in ANSI C99. It currently provides a C API and Ruby bindings.
Latest version: 0.8, released 2012-03-13.
Status: beta News: http://all-thing.net/label/whistlepig/ Homepage: http://masanjin.net/whistlepig/ Bug reports: http://github.com/wmorgan/whistlepig/issues
Getting it
Tarball: http://masanjin.net/whistlepig/whistlepig-0.7.tar.gz Rubygem: gem install whistlepig Git: git clone git://github.com/wmorgan/whistlepig.git
Realtime search
Roughly speaking, realtime search means:
documents are available to to queries immediately after indexing, without any reindexing or index merging;
later documents are more important than earlier documents.
Whistlepig takes these principles to an extreme.
It only returns documents in the reverse (LIFO) order to which they were added, and performs no ranking, reordering, or scoring.
It only supports incremental indexing. There is no notion of batch indexing or index merging.
It does not support document deletion or modification (except in the special case of labels; see below).
It only supports in-memory indexes.
Features that Whistlepig does provide:
Incremental indexing. Updates to the index are immediately available to readers.
Fielded terms with arbitrary fields.
A full query language and parser with conjunctions, disjunctions, phrases, negations, grouping, and nesting.
Labels: arbitrary tokens which can be added to and removed from documents at any point, and incorporated into search queries.
Early query termination and resumable queries.
A tiny, < 3 KLOC ANSI C99 implementation.
Synopsis (using Ruby bindings)
require 'rubygems' require 'whistlepig' include Whistlepig index = Index.new "index" entry1 = Entry.new entry1.add_string "body", "hello there bob" docid1 = index.add_entry entry1 # => 1 entry2 = Entry.new entry2.add_string "body", "goodbye bob" docid2 = index.add_entry entry2 # => 2 q1 = Query.new "body", "bob" results1 = index.search q1 # => [2, 1] q2 = q1.and Query.new("body", "hello") results2 = index.search q2 # => [1] index.add_label docid2, "funny" q3 = Query.new "body", "bob ~funny" results3 = index.search q3 # => [2] entry3 = Entry.new entry3.add_string "body", "hello joe" entry3.add_string "subject", "what do you know?" docid3 = index.add_entry entry3 # => 3 q4 = Query.new "body", "subject:know hello" results4 = index.search q4 # => [3]
A note on concurrency:
Whistlepig is currently single-process and single-thread only. However, it is built with multi-process access in mind. Per-segment single-writer, multi-reader support is planned in the near future. Multi-writer support can be accomplished via index striping and may be attempted in the distant future.
Please send bug reports and comments to: wmorgan-whistlepig-readme@masanjin.net.


I tripped on Salvia a total of three times in one night. This was my second time experiencing Salvia and I decided to test it under three different circumstances. For Salvia we use our foot long bong with the butane lighter. The first trip took place in my roommate’s bedroom where we usually chill. The room had a black light that gave everything an eerie look before I started tripping. The walls had random posters and miscellaneous items on the walls that a mix of people hung up. No one in the apartment had ever tried the 20 Extract so since I bought it I was the designated tester.
I sat on the floor with my back leaning against a two-foot high pile of clothing and a little section of wall. After relaxing my lungs. I brought the bong to my mouth and inhaled. I sat there holding my breath while a semi-circle of friends watched me in anticipation. I exhaled after a sufficient amount of time and waited a few moments to feel it rush through my body. Not satisfied with the amount I received I proceeded to take another hit. As I was hitting the bong I started to feel the effects of the first hit start to gradually increase.
I immediately began to feel as if I was falling. I felt as if hands were on my shoulder pulling me back towards the ground. As I started falling the pile of clothes started looking bigger and higher up. A friend who was on the other side of the clothes started saying things to me as I fell back. I remember getting scared and I started resisting the drug. My friend was on top of a cliff made of clothing yelling out towards me as I was falling to what I thought was going to be the ground and my eventual death. In a panic I remember grabbing onto the clothing cliff and trying to pull myself up. My arms felt like they stretched a little as I pulled myself towards the cliff and pile of clothes and I remembered the Salvia.
I then sat there and looked around at my friends and saw them looking at me. I felt so uncomfortable that I decided the next trip was going to be less weird (I could not describe it sufficient enough so I went with an ambiguous term) by not have people watching me. As I felt all motor skills and control regain I started rambling about stuff that I didn’t want to say because I felt it would all be misunderstood. By them reading this they should better understand what they saw and heard from me on my trip. I can more easily organize my thoughts by typing them in this form so I decided this was the best way to go about explaining it.
After regaining all my composure and sense of self I decided it was time for the second experiment. For this one, we decided to move into the living room and set up a different atmosphere. The room was made completely dark except a computer monitor that lighted up a circular area around where I was sitting. We decided that we should smoke some good Purple Skunk to relax and hopefully increase the effects of the Salvia. We had music from the Chillout channel playing in the background. A friend of mine was sitting across from me in a computer chair ready to experience the trip from the strange smelling leaves. I sat there and took a rip from the bong greater then the ones I had inhaled in the other room.
As I sat there feeling the effects take on I noticed something happening across from me behind my friend. As I sat there watching something that didn’t exist but somehow felt its existence I saw it. Two giant hands obviously female hands started materializing before me. At first I didn’t know what it was because it started at the wrist and moved its way up until both the hands were complete. The hands looked out of focus and had a peach coloring to it. As if they knew when I was ready for more the hands began to reach up towards my friend and grabbed his chair. I immediately became worried that he was going to be pulled down and felt as if I could do nothing.
As I sat there I realized the hands weren’t actually pulling him down but just resting on the chair. Immediately my friend and I moved around and I was ready to take some more. I sat near the spot where I saw the hands and my friend decided to sit on the recliner that I was originally leaning against. After he had his fill I took the bong and ripped it harder then I had previously. This time the Salvia took into effect much quicker and I was feeling a tingly sensation all over my body. I felt a little wobbly but could retain all my motor skills enough to refill the bowl and rip another. As I was filling the bowl my arms looked as if they were stretched to about 1.5 to 2 times the normal length. As I watched this while loading the bowl I actually enjoyed seeing my arms in that weird fashion.
When the second rip took into effect is when I slipped into a world I had not previously experienced. Immediately I noted the floor, it looked as if it was a giant roll of black cat fireworks and was shifting across to the West. I noticed I was sitting at the edge of it and to my right and down I noticed that this brick of fireworks were on top of another and another and I realized there were endless layers of them. As I watched in awe they started shifting in different direction and speeds.
The next part of the trip has escaped from my mind and I have a gap in my trip. I am not sure how I should feel about that but I wish that I could know what happened. The next thing I remember is looking up at my friend and seeing him in the recliner doing nothing but sitting there. To his right I noticed my other friend hovering there. That is when I noticed I was inside of something big. I felt 4 inches tall in a giant refrigerator. Out of nowhere between my recliner friend and I the two hands appeared again. I tried to will the hands away but they wouldn’t leave. I wanted to be alone but she persisted. I started getting agitated and tried with every ounce of mental energy I had to push her away.
Then it happened, the hands were gone and I felt a weird sense of relief. That’s when I noticed it started to get really cold and realized I couldn’t move, I was an ice cube! The hands came back as if to taunt me I thought, and that angered me further. I wasn’t sure how to react because of the swirl of emotions going through my head at once. Never before had I felt so many emotions at once. I felt anger towards the hands, happiness at how good I felt as an ice cube, fear of not being able to control my mind, compassion for the others in the fridge with me, and confusion, confusion as to what was happening and why.
All of a sudden I realized that this was all just a Salvia trip and I was back in the living room. When I looked up to see everything around me I saw my friend still sitting in the recliner in the exact same position as if nothing had happened. Then I noticed the music, I forgot music was playing, the music beat started pulling at everything around me. The recliner and everything I looked at was being pulled and sucked away with the beat of the music. That is when I told my friend who was in control of the music to turn it off. When he did this I was completely pulled out of the trip like I wanted, I had had enough and not sure if I mentally wanted more at the time.
After being pulled out of the trip I started to feel weird, I didn’t like not hearing the music that I had been hearing the entire trip. I felt something was missing when it was just the feeling the music gave me that I missed. That is when both my friend in the recliner and I decided that the music needed to be turned on. With the music back on I felt at ease and my mind immediately started racing over what had just happened. I couldn’t explain it well at the time and my thoughts we jumping all over the place so I decided to write it now, after a night of rest so that my mind could organize my thoughts. After only 15 minutes I had already lost a gap in my trip and couldn’t recall what had happened in between those two events.
A little more then an hour went by before my recliner friend and I decided that we were ready to trip again. We had just watched three friends trip in that wait and couldn’t resist another go. We went back into the “chill” room and specified to our friends that we wanted to be alone. This time we turned off the black light and turned on our lamp with a green light bulb in it. It gave the room a nice warm green glow and the ambient light gave me the feeling that the trip would be completely different, I was more right then I could have imagined. My friend sat on the couch under a sleeping bag and hit the bong. I then proceeded to take it from him and sat two feet away on the floor waiting. When I was assured he had enough and was into a trip I took my rip and waited.
I went from sitting on the floor to lie down and look around. I began to feel a pulling sensation and I looked towards the direction of the pull. I looked in the direction of my feet because that is where the pull came from and noticed that the bathroom door was open. I felt as if there was some sort of vortex that was trying to pull me in and I panicked. I started grabbing onto the bed and floor as it was pulling me towards the bathroom. I was then pulled across the bedroom floor and was half in the bathroom and half out as I was grabbing on the pile of clothes that I sat by in the earlier trip. It was the most frightened I had ever been in my life and I was holding on with all my strength. That is when the door busted open and one of my roommates came in yelling about how loud we were being. This was a huge rush as I was pulled out of my trip and it made the rest of the night feel very unpleasant, I guess this is why they suggest a sitter. ^_^
Salvia is by far one of the most interesting drugs I have ever taken in my life. I am about to go on a camping trip so I am going to have to conclude this now. I am about to go on a Salvia adventure in the forest. Write about it when I get back so you’ll know how that goes. Have a good day and safe experimenting,
Ja ne -Sayjo
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.


With supporting text below as a natural lead-in to additional content.
See moreWith supporting text below as a natural lead-in to additional content.
See moreWith supporting text below as a natural lead-in to additional content.
See moreWith supporting text below as a natural lead-in to additional content.
See more


{% include anchor.html edit="true" title="List active tasks" hash="active_tasks" %}
{% highlight js %}
PouchDB.activeTasks.list()
{% endhighlight %}
List all active database tasks. There are three types of internal tasks: `database_compaction`, `view_indexing`, and `replication`. PouchDB will report progress of these tasks to the active tasks API and remove tasks as soon as they are completed or have failed.
#### Example Usage:
{% highlight js %}
var tasks = PouchDB.activeTasks.list()
{% endhighlight %}
#### Example Result:
{% highlight js %}
[{
"id": "d81fea92-8ce4-42df-bb2b-89a4e67536c3",
"name": "database_compaction",
"created_at": "2022-02-08T15:38:45.318Z",
"total_items": 12,
"completed_items": 1,
"updated_at": "2022-02-08T15:38:45.821Z"
}]
{% endhighlight %}
### Real-time updates
You can use [JavaScript Proxies](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy) to monitor calls to the active tasks API. For the `PouchDB.activeTasks.add()` function, which is used internally to announce new tasks to PouchDB, you can monitor calls as follows:
{% highlight js %}
PouchDB.activeTasks.add = new Proxy(PouchDB.activeTasks.add, {
apply: (target, thisArg, argumentsList) => {
const task = argumentsList[0];
const id = Reflect.apply(
target,
PouchDB.activeTasks,
[task]
);
console.log('Added task', id, task.name);
return id;
},
});
{% endhighlight %}


In a previous post we discussed the problem of stocking our food cart to maximize our profitability. We created a simple heuristic and then performed simulations to evaluate the expected profitability. We discussed that knowing the expected profitability was not enough, we calculated Confidence Intervals to understand the where the true expected profitability lies. This week we want to find a better plan for packing the food cart. We will use Mathematical Planning to find an answer which maximize the expected profitability which outperforms the heuristic used in the first post.
Note: To see all the code for this post, go here
The Probability of Selling
Math Warning: I like to explain the math behind how we calculate the probablility of us selling items. If you would like to skip the math, feel free to jump to the next section
There’s a nuance to this problem that the heuristic from the previous post did not take into consideration. We know that the number of sales of a food can be modeled by a Poisson Distribution. The Poisson Distribution takes a single parameter, $\lambda$, which is the average arrival rate of a process. In our case, the “process” is people placing orders for a given food. Our historical data shows that the average daily demand for food is 600 burgers, 900 pizzas, and 700 tacos.
| Burger | Pizza | Taco | |
|---|---|---|---|
| Average Demand | $600.0 \frac{\text{item}}{\text{day}}$ | $900.0 \frac{\text{item}}{\text{day}}$ | $700.0 \frac{\text{item}}{\text{day}}$ |
Why do we care about this? Why do we care that the demand is actually a Poisson Distribution? Let’s perform a thought experiment. What are the odds that we sell at least 1 pizza in a day? Essentially 100%, right? What about 2 pizzas? Still 100% but maybe infinitesimally smaller. What are the odds of us selling 900 pizzas? Well, ~50% because historically we have seen that is the average demand. On rare days we will only sell 800 pizzas and on some we may sell over 1,000 if we do not run out of inventory. We can use the Poisson Distribution to calculate the odds of us selling a particular number of pizzas on any given day. Before we go any farther, lets plot the distribution of pizza demand between 800 and 1,000.
You notice that the peak is at 900 which is what we expect since that is the average. Visually we can tell that the probability of demand being between 850 and 950 is high but drops off rapidly at the tails.
We need to figure out how to use this information to help us find the ideal number of each food we should pack. What would be really useful is being able to calculate what the probability is of us completely selling our inventory. If we pack 950 pizzas, how likely are we to sell through all of them? We would rather not waste space on foods that are not going to sell. We need a function which allows us to calculate the probability of demand exceeding some value of $x$. In math terms we would write:
$$ P(demand > x) $$
One the ingredients for this calculation is called the Cumulative Distribution Function (CDF). The CDF for the Poisson Distribution is:
$$ \text{CDF}(x) = P(X \le x) = \frac{\Gamma(x + 1,\ \lambda)}{\lfloor x \rfloor !} \qquad \qquad x = 0,1,2 , \ldots $$
That’s some scary looking math so let’s unpack what this means. The function $F(x)$ calculates the probability of a random observation from our Poisson Distribution being less than or equal to the value of $x$. In our case, $x$ is the number of servings we pack of a food.
The CDF isn’t quite what we need. What we want is to know the probability of demand exceeding $x$, not being less or equal to $x$. It is pretty simple to adjust the formula though. The probability of demand being greater than $x$ is equal to 1.0 minus the probability of demand being less than $x$
$$ P(demand > x) = 1 - P(demand \leq x) $$
We can swap in our CDF for the Poisson distribution to get a new formula which allows us to calculate the demand exceeding $x$.
$$ P(demand > x) = 1 - \frac{\Gamma(x + 1,\ \lambda)}{\lfloor x \rfloor !} $$
Fortunately, the MathNET
library includes a function for calculating these values so we will not need to worry about implementing them.
Applying to Food Cart Problem
How do we apply this to the food cart problem? Let’s say we want to know the odds of us being able to sell at least 800 pizzas. We can plug the value into the function, and we get a probability of 99.963% chance of demand exceeding 800. We can also put 1,000 in and find that there is only a 0.049% chance of demand for pizza being that high.
We will use this in our objective function. We want to maximize the expected revenue so we will weight the revenue we receive for an item by the probability that we actually sell it. This means that the revenue we receive for the $n^\text{th}$ item of a given food will be multiplied by the probability that demand meets are exceeds that amount. This gives us the following formula for expected revenue.
$$ \text{Expected Revenue} = \sum_{f \in food}\sum_{n} P(\text{demand} \ge n) * \text{Revenue}_{f} $$
We are using the same domain as in the previous post and we will be extending it. Let’s write a function which will gives us the probabilities of selling the $n^\text{th}$ number of a food. To keep track of the $n^\text{th}$ item we are going to add a new type to our domain.
type NthItem = NthItem of int
Now we create the function which calculates the probabilites for a given food for 1 item up to some max number of items.
let createIncrementProbability
(foodDemands: seq<Food * DemandRate>)
(maxItems: int) =
seq {
for (food, DemandRate demandRate) in foodDemands do
for i in 1..maxItems ->
let probability = 1.0 - (Poisson.CDF (demandRate - 1.0, (float i)))
(food, NthItem i), probability
} |> SMap2
The createIncrementProbability
function takes in a sequence of Food * DemandRate
tuples for which we will generate probabilities. Food
is a type we are using to represent burger, pizza, or taco. The DemandRate
type represents the average daily demand for a food.
For each food, we calculate the probability of demand meeting or exceeding the values from 1 to maxItems
. maxItems
is the maximum quantity of a given food we would consider packing into our food cart. We store this data in a SMap2
for ease use in our model formulation.
We now create a function for building a model for our problem. Let’s call it create
and have it take all the arguments we will need for our model.
let create
(revenue: SMap<Food, float<USD/serving>>)
(storage: SMap<Food, float<cm^3/serving>>)
(fridgeSpace: SMap<Food, float<cm^3/serving>>)
(weight: SMap<Food, float<gm/serving>>)
(incrementProbability: SMap2<Food, NthItem, float>)
(packDecision: SMap2<Food, NthItem, Decision<serving>>)
(maxStorage: float<cm^3>)
(maxWeight: float<gm>)
(maxFridgeSpace: float<cm^3>) =
Parameter Definitions:
revenue
is the amount of money we make when selling a particularFood
storage
is the amount of pantry space required to pack a single servingfridgeSpace
is the amount of fridge space required to for a single servingweight
is the weight for a single serving of a foodincrementProbability
is the probability of selling a particular quantity of aFood
packDecision
is a 2-dimensional SliceMap indexed byFood
andNthItem
.Food
will correspond to burger, pizza, or taco.NthItem
is the index of particular food within the group. The $1^\text{st}$ pizza, the $2^\text{nd}$ pizza, the $3^\text{rd}$ pizza etc. The value stored in the SliceMap is aBoolean
decision variable where 1 indicates that you should pack the food and 0 indicates that you should not.maxStorage
is the maximum amount of storage spacemaxweight
is the maxumum amount of weight that can be packedmaxFridgeSpace
is the maximum amount of refrigerated storage
From here creating our model is straightforward. We need to create a constraints for the available storage, weight, and fridge space. We take advantage of the sum
function and Hadamard Product operator, .*
, included in the SliceMap
library to make the notation simple. The Hadamard Product is taking care of the joining of the data before multiplying the values.
let weightConstraint =
Constraint.create "MaxWeight" (sum (weight .* packDecision) <== maxWeight)
let storageConstraint =
Constraint.create "MaxStorage" (sum (storage .* packDecision) <== maxStorage)
let fridgeSpaceConstraint =
Constraint.create "MaxFridgeSpace" (sum (fridgeSpace .* packDecision) <== maxFridgeSpace)
Our objective function is the revenue adjusted for the probability of selling the number of items. We then use this expression to create an objective.
let revenueExpectation =
sum (revenue .* incrementProbability .* packDecision)
let objective =
Objective.create "MaxRevenueExpectation" Maximize revenueExpectation
We bring all this together and create a model which is what the create
function returns.
Model.create objective
|> Model.addConstraint weightConstraint
|> Model.addConstraint storageConstraint
|> Model.addConstraint fridgeSpaceConstraint
Now we can calculate our probabilities, create decision variables, and use these functions to build the model and solve it.
let incrementProbabilities = PlanningModel.createIncrementProbability demandRates maxItems
let packDecisions =
DecisionBuilder<serving> "Pack" {
for food in foods do
for increment in ([1 .. maxItems] |> List.map DemandLevel) ->
Boolean
} |> SMap2
let planModel = PlanningModel.create revenue storage fridgeSpace weight incrementProbabilities packDecisions maxStorage maxWeight maxFridge
let result = Solver.solve Settings.basic planModel
Let’s compare the plan from the Heuristic in the last post to what the Optimization is recommending.
| Burgers | Pizza | Taco | Storage Usage | Fridge Usage | Weight Usage | |
|---|---|---|---|---|---|---|
| Heuristic | 0 | 900 | 466 | 40.93% | 62.10% | 99.96% |
| Optimization | 572 | 355 | 669 | 42.43% | 70.86% | 100.00% |
This is quite a different plan than what we saw before. The real test will come from performing the simulations with both plans and seeing which one ends up with a better expected revenue and tighter standard deviation. We perform 1M simulations of both plans and see the following.
| Metric | Heuristic | Optimization |
|---|---|---|
| Revenue Mean ± (99% CI) | 2073.25 ± 0.07 | 2244.10 ± 0.03 |
| Revenue Variance | 776.27 | 110.34 |
| Revenue StdDev | 27.86 | 10.50 |
The plan found by the optimization is providing an additional $171 in revenue but also has a lower Standard Deviation which means the revenue is more reliable. This is a fantastic result and shows how taking the randomness into account can yield superior results.
Next Steps
This post showed that even a simple mathematical planning model can yield significant improvements over simple heuristics for decision making. By taking the variability of demand into account we were able to realize a higher average revenue but also a more reliable amount of revenue.
In the next post we will introduce a simple Machine Learning model to make predictions about demand in the future. So far, we have only used the historical average of demand to create our plan. What if we took that data and instead created a model for predicting demand and then fed that into our Mathematical Planning model?


Send a tip to:
{{ application?.first_name }}
Employee of {{ application?.employer }}
{{ application?.employment_information }}
Disclaimer: Tip Northshore and Northshore Parent assumes zero liability. This is on the honor system here, and we will not be vetting each person in the database.


Weather Dashboard
Search for a City:
City Name (Date)
Temperature:
Humidity:
Wind Speed:
UV Index:
5-Day Forecast:


Malaysia to write to India on extradition of controversial preacher Zakir Naik
KUALA LUMPUR: Malaysia’s Foreign Affairs Ministry will send an official letter to the Indian government to explain Malaysia’s stance for not sending controversial Muslim preacher Zakir Naik back to his country of origin.
Minister Saifuddin Abdullah said in parliament on Thursday (Nov 7) that he would discuss with Attorney-General Tommy Thomas about preparing the contents of the letter.
“There was a request from India and Prime Minister (Mahathir Mohamad) had already explained why we didn’t send (Zakir) back.
“During my meeting with my counterpart from India (Subrahmanyam Jaishankar) last week in Bangkok during the 35th ASEAN Summit, he had politely raised the issue and had asked us to send a letter as an official reply from us,” he said as he wound up debate on the Supply Bill 2020 for his ministry.
Mr Zakir, who is a Malaysian permanent resident, is wanted in India for charges of money laundering and hate speech.
READ: Wanted in India, fiery Islamic preacher says he has not broken any law
The Malaysian government has refused to accede to an extradition request from India, which was made in January 2018.
Dr Mahathir had said that Malaysia has the right not to extradite Mr Zakir on the claim that that he would not receive a fair trial in India.
The prime minister also said that Mr Zakir could not be sent back to India for fear that he might be killed. “If any country wants to have him, they are welcome,” he said, according to Bernama.
In August, the Malaysian police banned Mr Zakir from public activities after his racially sensitive remarks sparked outrage.
He had said in a speech in Kelantan that Hindus in Malaysia had “100 times more rights” than the Muslim minority in India and that they support the prime minister of India instead of the prime minister of Malaysia.


IDLE HANDS RATING: 6 / 10 --> Barely recommendable
For more reviews and movie trivia, visit http://www.joblo.com/
Finally, a teen flick that deals with the real issues that conflict our generation of Xers from day to day: kids smoking pot, watching TV all day, getting horny, getting their hand possessed by the devil, listening to heavy rock music, killing folks in the gruesomest of manners, and oh yeah, smoking more pot.
PLOT: Young man with nothing but time on his hands, suddenly finds one of his hands possessed by the devil, and looking for murder. After his hand kills two of his good friends, they return as the undead and try to help their buddy solve his little hand problem, and save the girl of his dreams from the wrath of his five fingers.
CRITIQUE: A poor man's rehash of two true horror/comedy classics: Sam Raimi's EVIL DEAD 2 (8/10) and John Landis' AN AMERICAN WEREWOLF IN LONDON (8/10), this film features a lot of hit-and-miss black humor, some overly disgusting killings, a beautiful damsel in distress, and a lot of head-banging music, that will have you momentarily amnesia-ing its lame plot and overall weak impact. This movie is easy enough to watch if you enjoy this type of gore and humor, but nothing to brag about to your horror-fiend buddies. Weak believability is another detriment to this film, as his right hand's "possession" is never really explained, and his love interest, for reasons unknown to anyone, never ever notices one little thing about his major problem. Hello?!? McFly? Anybody home? In its defense, the film actually does pull off the delicate balance of comedy and horror, but somehow lacks the conviction or originality in either of the two arenas to score as a complete hit.
Some cinematic newbies might enjoy it because of its original premise (Unoriginal to me, having seen the themes covered better in earlier films), the loud and hip music (The punk-band-de-la-jour "The Offspring" actually make an appearance in the movie, and officially staple themselves as sell-outs, or horror movie aficionados?) and the T&A sprinkled here and there (Well actually, there is only some T, but unfortunately for all of us, no A whatsoever). The actors are all very good with Devon Sawa pulling off a great performance as the Mary-Jane-slacker-kid with the possessed hand, and Seth Green continuing his streak of solid comedic showings as one of the lively undead. All in all, a passable horror/comedy time for those looking for exactly this type of gruesome action (Potheads also more than welcome!), but a definite skip-me to all others who might be looking for something original, all-out funny and/or terrifying. Recommended slightly higher on video.
Little Known Facts about this film and its stars: Devon Sawa was born in Vancouver, Canada. You may remember him from his title role of CASPER as the ghost's human persona, opposite the lovely Christina Ricci. Seth Green made his film debut at the tender age of eight in THE HOTEL NEW HAMPSHIRE and starred in Woody Allen's RADIO DAYS four years later. He was born in Philadelphia, and might be best remembered of late as the son of Dr. Evil in Mike Myers' AUSTIN POWERS movies. In love with the idea of becoming an actress from the age of five, Jessica Alba was twelve before she took her first acting class. Nine months later, she was signed by an agent. Vivica A. Fox hasn't stopped working ever since she was discovered in a Sunset Boulevard restaurant more than ten years ago. Her big break came in 1996's INDEPENDENCE DAY (6/10). Director Rodman Flender cut his teeth on the horror genre under the watchful eye of film legend Roger Corman. A Harvard grad, Flender was made Vice-President of Worldwide Marketing and Distribution at Corman's company, and eventually, VP of production, after having sent his student film BLOODY MUTILATORS to Corman himself. He also directed LEPRECHAUN 2. This is the first produced screenplay for writers Terri Hughes and Ron Milbauer. Producers Suzanne Todd and Jennifer Todd are sisters.
Review Date: April 28, 1999 Director: Rodman Flender Writers: Terri Hughes and Ron Milbauer Producers: Suzanne Todd and Jennifer Todd Actors: Devon Sawa as Anton Tobias, Seth Green as Mick, Elden Henson as Pnub Genre: Horror/ Comedy Year of Release: 1999 --------------------------------------- JoBlo's Movie Emporium http://www.joblo.com ---------------------------------------
(c) 1999 Berge Garabedian
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


Toggle navigation
Start Bootstrap
Register
Home
Contact
Membership year starts from
May
of the current year and remains valid until
April
of next year.
Please renew or get new membership by April.
We accept payment by either check, cash or Paypal. Our PayPal Id is nebraskamarathimandal
at
gmail.com (Note: at = @)
Payment related queries can be directed to member relations Mr. Vijay Gayee
781-724-1509
Individual
$
15
00
per year
1
adult
Sign Up!
Couple
$
25
00
per year
2
adults
Sign Up!
Family
$
35
00
per year
2
adults and up to
2
kids (age 5 - 13 years)
Sign Up!
Full Name:
Address Line 1:
Street address, P.O. box, company name, c/o
Address Line 2:
Apartment, suite , unit, building, floor, etc.
City / Town
State / Province / Region
Zip / Postal Code
Phone Number:
Email Address:
Message:
Send Message


{% extends "core.html" %} {% load i18n %} {% block title %}Ahmia - Documentation{% endblock %} {% block body %}
Ahmia is mainly divided into three parts. Codes for these parts are open source and available on Github. You can click on respective links to access them.
Ahmia collects a list of known .onion sites, information about these sites and saves it to its database. Collected data is filtered to remove child abuse content (Refer: {% trans "Blacklist" %} ).
Once data is filtered, it is available for search at Ahmia.
We are honouring robots.txt files. This means that you can prevent our crawler from indexing your page by using robots.txt rules. This way your page is not shown in the search results. On the other hand, your page still shows in the list of all known hidden services that are online.
Check robotstxt.org for details to create robots.txt.


|
1-Wire API for .NET Version 4.00
|
Inherits com::dalsemi::onewire::container::OneWireContainer, and com::dalsemi::onewire::container::ADContainer.
Public Member Functions | |
| OneWireContainer20 () | |
| Default constructor. | |
| OneWireContainer20 (DSPortAdapter sourceAdapter, byte[] newAddress) | |
| Creates a container with a provided adapter object and the address of the 1-Wire device. | |
| OneWireContainer20 (DSPortAdapter sourceAdapter, long newAddress) | |
| Creates a container with a provided adapter object and the address of the 1-Wire device. | |
| OneWireContainer20 (DSPortAdapter sourceAdapter, String newAddress) | |
| Creates a container with a provided adapter object and the address of the 1-Wire device. | |
| String | getName () |
| Gets the name of this 1-Wire device. | |
| String | getAlternateNames () |
| Gets any other possible names for this 1-Wire device. | |
| String | getDescription () |
| Gets a brief description of the functionality of this 1-Wire device. | |
| int | getMaxSpeed () |
| Gets the maximum speed this 1-Wire device can communicate at. | |
| Enumeration | getMemoryBanks () |
| Gets an enumeration of memory banks. | |
| int | getNumberADChannels () |
| Queries to get the number of channels supported by this A/D. | |
| boolean | hasADAlarms () |
| Queries to see if this A/D measuring device has high/low alarms. | |
| double[] | getADRanges (int channel) |
| Queries to get an array of available ranges for the specified A/D channel. | |
| double[] | getADResolutions (int channel, double range) |
| Queries to get an array of available resolutions based on the specified range on the specified A/D channel. | |
| boolean | canADMultiChannelRead () |
| Queries to see if this A/D supports doing multiple voltage conversions at the same time. | |
| byte[] | readDevice () throws OneWireIOException, OneWireException |
| Retrieves the entire A/D control/status and alarm pages. | |
| void | writeDevice (byte[] state) throws OneWireIOException, OneWireException |
| Writes the bytes in the provided A/D register pages that have been changed by the 'set' methods. | |
| double[] | getADVoltage (byte[] state) throws OneWireIOException, OneWireException |
| Reads the voltage values. | |
| double | getADVoltage (int channel, byte[] state) throws OneWireIOException, OneWireException |
| Reads a channels voltage value. | |
| void | doADConvert (int channel, byte[] state) throws OneWireIOException, OneWireException |
| Performs voltage conversion on specified channel. | |
| void | doADConvert (boolean[] doConvert, byte[] state) throws OneWireIOException, OneWireException |
| Performs voltage conversion on all specified channels. | |
| void | doADConvert (int channel, int preset, byte[] state) throws OneWireIOException, OneWireException, IllegalArgumentException |
| Performs voltage conversion on specified channel. | |
| void | doADConvert (boolean[] doConvert, int[] preset, byte[] state) throws OneWireIOException, OneWireException |
| Performs voltage conversion on all specified channels. | |
| double | getADAlarm (int channel, int alarmType, byte[] state) |
| Extracts the alarm voltage value of the specified channel from the provided state buffer. | |
| boolean | getADAlarmEnable (int channel, int alarmType, byte[] state) |
| Extracts the alarm enable value of the specified channel from the provided state buffer. | |
| boolean | hasADAlarmed (int channel, int alarmType, byte[] state) |
| Checks the alarm event value of the specified channel from the provided state buffer. | |
| double | getADResolution (int channel, byte[] state) |
| Extracts the conversion resolution of the specified channel from the provided state buffer expressed in volts. | |
| double | getADRange (int channel, byte[] state) |
| Extracts the input voltage range of the specified channel from the provided state buffer. | |
| boolean | isOutputEnabled (int channel, byte[] state) throws IllegalArgumentException |
| Detects if the output is enabled for the specified channel from the provided register buffer. | |
| boolean | getOutputState (int channel, byte[] state) throws IllegalArgumentException |
| Detects if the output is enabled for the specified channel from the provided register buffer. | |
| boolean | getDevicePOR (byte[] state) |
| Detects if this device has seen a Power-On-Reset (POR). | |
| boolean | isPowerExternal (byte[] state) |
| Extracts the state of the external power indicator from the provided register buffer. | |
| void | setADAlarm (int channel, int alarmType, double alarm, byte[] state) |
| Sets the alarm voltage value of the specified channel in the provided state buffer. | |
| void | setADAlarmEnable (int channel, int alarmType, boolean alarmEnable, byte[] state) |
| Sets the alarm enable value of the specified channel in the provided state buffer. | |
| void | setADResolution (int channel, double resolution, byte[] state) |
| Sets the conversion resolution value for the specified channel in the provided state buffer. | |
| void | setADRange (int channel, double range, byte[] state) |
| Sets the input range for the specified channel in the provided state buffer. | |
| void | setOutput (int channel, boolean outputEnable, boolean outputState, byte[] state) |
| Sets the output enable and state for the specified channel in the provided register buffer. | |
| void | setPower (boolean external, byte[] state) |
| Sets or clears the external power flag in the provided register buffer. | |
Static Public Member Functions | |
| static double | interpretVoltage (long rawVoltage, double range) |
| Converts a raw voltage long value for the DS2450 into a valid voltage. | |
| static int | voltageToInt (double voltage, double range) |
| Converts a voltage double value to the DS2450 specific int value. | |
Static Public Attributes | |
| static final int | BITMAP_OFFSET = 24 |
| Offset of BITMAP in array returned from read state. | |
| static final int | ALARM_OFFSET = 8 |
| Offset of ALARMS in array returned from read state. | |
| static final int | EXPOWER_OFFSET = 20 |
| Offset of external power offset in array returned from read state. | |
| static final int | CHANNELA = 0 |
| Channel A number. | |
| static final int | CHANNELB = 1 |
| Channel B number. | |
| static final int | CHANNELC = 2 |
| Channel C number. | |
| static final int | CHANNELD = 3 |
| Channel D number. | |
| static final int | NO_PRESET = 0 |
| No preset value. | |
| static final int | PRESET_TO_ZEROS = 1 |
| Preset value to zeros. | |
| static final int | PRESET_TO_ONES = 2 |
| Preset value to ones. | |
| static final int | NUM_CHANNELS = 4 |
| Number of channels. |
1-Wire® container that encapsulates the functionality of the 1-Wire family type 20 (hex), Maxim Integrated Products part number: DS2450, 1-Wire Quad A/D Converter.
Example device setup
byte[] state = owd.readDevice();
owd.setResolution(OneWireContainer20.CHANNELA, 16, state);
owd.setResolution(OneWireContainer20.CHANNELB, 8, state);
owd.setRange(OneWireContainer20.CHANNELA, 5.12, state);
owd.setRange(OneWireContainer20.CHANNELB, 2.56, state);
owd.writeDevice();
Example device read
owd.doADConvert(OneWireContainer20.CHANNELA, state);
owd.doADConvert(OneWireContainer20.CHANNELB, state);
double chAVolatge = owd.getADVoltage(OneWireContainer20.CHANNELA, state);
double chBVoltage = owd.getADVoltage(OneWireContainer20.CHANNELB, state);
When converting analog voltages to digital, the user of the device must gaurantee that the voltage seen by the channel of the quad A/D does not exceed the selected input range of the device. If this happens, the device will default to reading 0 volts. There is NO way to know if the device is reading a higher than specified voltage or NO voltage.
http://pdfserv.maxim-ic.com/arpdf/DS2450.pdf
| OneWireContainer20 | ( | DSPortAdapter | sourceAdapter, |
| byte[] | newAddress | ||
| ) |
Creates a container with a provided adapter object and the address of the 1-Wire device.
| sourceAdapter | adapter required to communicate with this device |
| newAddress | address of this 1-Wire device |
| OneWireContainer20 | ( | DSPortAdapter | sourceAdapter, |
| long | newAddress | ||
| ) |
Creates a container with a provided adapter object and the address of the 1-Wire device.
| sourceAdapter | adapter required to communicate with this device |
| newAddress | address of this 1-Wire device |
| OneWireContainer20 | ( | DSPortAdapter | sourceAdapter, |
| String | newAddress | ||
| ) |
Creates a container with a provided adapter object and the address of the 1-Wire device.
| sourceAdapter | adapter required to communicate with this device |
| newAddress | address of this 1-Wire device |
| boolean canADMultiChannelRead | ( | ) |
Queries to see if this A/D supports doing multiple voltage conversions at the same time.
true
if can do multi-channel voltage reads Implements ADContainer.
| void doADConvert | ( | boolean[] | doConvert, |
| byte[] | state | ||
| ) | throws OneWireIOException, OneWireException |
Performs voltage conversion on all specified channels.
The method getADVoltage()
can be used to read the result of the conversion. This A/D must support multi-channel read canMultiChannelRead()
if there are more then 1 channel is specified.
| doConvert | which channels to perform conversion on. |
| state | current state of this device returned from readDevice() |
| OneWireIOException | Data was not written correctly |
| OneWireException | Could not find part |
Implements ADContainer.
| void doADConvert | ( | int | channel, |
| int | preset, | ||
| byte[] | state | ||
| ) | throws OneWireIOException, OneWireException, IllegalArgumentException |
Performs voltage conversion on specified channel.
The method getADVoltage()
can be used to read the result of the conversion.
| channel | 0,1,2,3 representing the channels A,B,C,D |
| preset | preset value: NO_PRESET (0), PRESET_TO_ZEROS (1), and PRESET_TO_ONES (2) |
| state | state of this device returned from readDevice() |
| OneWireIOException | Data could not be written correctly |
| OneWireException | Could not find part |
| IllegalArgumentException | Invalid channel number passed |
| void doADConvert | ( | boolean[] | doConvert, |
| int[] | preset, | ||
| byte[] | state | ||
| ) | throws OneWireIOException, OneWireException |
Performs voltage conversion on all specified channels.
The method getADVoltage()
can be used to read the result of the conversion.
| doConvert | which channels to perform conversion on |
| preset | preset values NO_PRESET (0), PRESET_TO_ZEROS (1), and PRESET_TO_ONES (2) |
| state | current state of this device returned from readDevice() |
| OneWireIOException | Data could not be written correctly |
| OneWireException | Could not find part |
| void doADConvert | ( | int | channel, |
| byte[] | state | ||
| ) | throws OneWireIOException, OneWireException |
Performs voltage conversion on specified channel.
The method getADVoltage()
can be used to read the result of the conversion.
| channel | channel in the range [0 to (getNumberChannels() - 1)] |
| state | current state of this device returned from readDevice() |
| OneWireIOException | Data was not written correctly |
| OneWireException | Could not find part |
Implements ADContainer.
| double getADAlarm | ( | int | channel, |
| int | alarmType, | ||
| byte[] | state | ||
| ) |
Extracts the alarm voltage value of the specified channel from the provided state buffer.
The state buffer is retrieved from the readDevice()
method.
| channel | channel in the range [0 to (getNumberChannels() - 1)] |
| alarmType | desired alarm, ALARM_HIGH (1) or ALARM_LOW (0) |
| state | current state of this device returned from readDevice() |
| IllegalArgumentException | Invalid channel number passed |
Implements ADContainer.
| boolean getADAlarmEnable | ( | int | channel, |
| int | alarmType, | ||
| byte[] | state | ||
| ) |
Extracts the alarm enable value of the specified channel from the provided state buffer.
The state buffer is retrieved from the readDevice()
method.
| channel | channel in the range [0 to (getNumberChannels() - 1)] |
| alarmType | desired alarm, ALARM_HIGH (1) or ALARM_LOW (0) |
| state | current state of the state returned from readDevice() |
true
if specified alarm is enabled| IllegalArgumentException | Invalid channel number passed |
Implements ADContainer.
| double getADRange | ( | int | channel, |
| byte[] | state | ||
| ) |
Extracts the input voltage range of the specified channel from the provided state buffer.
The state buffer is retrieved from the readDevice()
method.
| channel | channel in the range [0 to (getNumberChannels() - 1)] |
| state | current state of the state returned from readDevice() |
| IllegalArgumentException | Invalid channel number passed |
Implements ADContainer.
| double [] getADRanges | ( | int | channel | ) |
Queries to get an array of available ranges for the specified A/D channel.
| channel | channel in the range [0 to (getNumberChannels() - 1)] |
Implements ADContainer.
| double getADResolution | ( | int | channel, |
| byte[] | state | ||
| ) |
Extracts the conversion resolution of the specified channel from the provided state buffer expressed in volts.
The state is retrieved from the readDevice()
method.
| channel | channel in the range [0 to (getNumberChannels() - 1)] |
| state | current state of the state returned from readDevice() |
| IllegalArgumentException | Invalid channel number passed |
Implements ADContainer.
| double [] getADResolutions | ( | int | channel, |
| double | range | ||
| ) |
Queries to get an array of available resolutions based on the specified range on the specified A/D channel.
| channel | channel in the range [0 to (getNumberChannels() - 1)] |
| range | specified range |
Implements ADContainer.
| double [] getADVoltage | ( | byte[] | state | ) | throws OneWireIOException, OneWireException |
Reads the voltage values.
Must be used after a doADConvert()
method call. Also must include the last valid state from the readDevice()
method and this A/D must support multi-channel read canMultiChannelRead()
if there are more then 1 channel.
| state | current state of this device returned from readDevice() |
| OneWireIOException | Data was not read correctly |
| OneWireException | Could not find part |
Implements ADContainer.
| double getADVoltage | ( | int | channel, |
| byte[] | state | ||
| ) | throws OneWireIOException, OneWireException |
Reads a channels voltage value.
Must be used after a doADConvert()
method call. Also must include the last valid state from the readDevice()
method. Note, if more then one channel is to be read then it is more efficient to use the getADVoltage(byte[])
method that returns all channel values.
| channel | channel in the range [0 to (getNumberChannels() - 1)] |
| state | current state of this device returned from readDevice() |
| OneWireIOException | Data was not read correctly |
| OneWireException | Could not find part |
| IllegalArgumentException | Invalid channel number passed |
Implements ADContainer.
| String getAlternateNames | ( | ) |
Gets any other possible names for this 1-Wire device.
Reimplemented from OneWireContainer.
| String getDescription | ( | ) |
Gets a brief description of the functionality of this 1-Wire device.
Reimplemented from OneWireContainer.
| boolean getDevicePOR | ( | byte[] | state | ) |
Detects if this device has seen a Power-On-Reset (POR).
If this has occured it may be necessary to set the state of the device to the desired values. The register buffer is retrieved from the readDevice()
method.
| state | current state of the device returned from readDevice() |
false
if output is conducting to ground and true
if not conducting | int getMaxSpeed | ( | ) |
Gets the maximum speed this 1-Wire device can communicate at.
Reimplemented from OneWireContainer.
| Enumeration getMemoryBanks | ( | ) |
Gets an enumeration of memory banks.
Reimplemented from OneWireContainer.
| String getName | ( | ) |
Gets the name of this 1-Wire device.
Reimplemented from OneWireContainer.
| int getNumberADChannels | ( | ) |
Queries to get the number of channels supported by this A/D.
Channel specific methods will use a channel number specified by an integer from [0 to (getNumberChannels() - 1)]
.
Implements ADContainer.
| boolean getOutputState | ( | int | channel, |
| byte[] | state | ||
| ) | throws IllegalArgumentException |
Detects if the output is enabled for the specified channel from the provided register buffer.
The register buffer is retrieved from the readDevice()
method.
| channel | channel in the range [0 to (getNumberChannels() - 1)] |
| state | current state of the device returned from readDevice() |
false
if output is conducting to ground and true
if not conducting| IllegalArgumentException | Invalid channel number passed |
| boolean hasADAlarmed | ( | int | channel, |
| int | alarmType, | ||
| byte[] | state | ||
| ) |
Checks the alarm event value of the specified channel from the provided state buffer.
The state buffer is retrieved from the readDevice()
method.
| channel | channel in the range [0 to (getNumberChannels() - 1)] |
| alarmType | desired alarm, ALARM_HIGH (1) or ALARM_LOW (0) |
| state | current state of the state returned from readDevice() |
true
if specified alarm occurred| IllegalArgumentException | Invalid channel number passed |
Implements ADContainer.
| boolean hasADAlarms | ( | ) |
Queries to see if this A/D measuring device has high/low alarms.
true
if it has high/low trips Implements ADContainer.
| static double interpretVoltage | ( | long | rawVoltage, |
| double | range | ||
| ) | [static] |
Converts a raw voltage long value for the DS2450 into a valid voltage.
Requires the max voltage value.
| rawVoltage | raw voltage |
| range | max voltage |
| boolean isOutputEnabled | ( | int | channel, |
| byte[] | state | ||
| ) | throws IllegalArgumentException |
Detects if the output is enabled for the specified channel from the provided register buffer.
The register buffer is retrieved from the readDevice()
method.
| channel | channel in the range [0 to (getNumberChannels() - 1)] |
| state | current state of the device returned from readDevice() |
true
if output is enabled on specified channel| IllegalArgumentException | Invalid channel number passed |
| boolean isPowerExternal | ( | byte[] | state | ) |
Extracts the state of the external power indicator from the provided register buffer.
Use 'setPower' to set or clear the external power indicator flag. The register buffer is retrieved from the readDevice()
method.
| state | current state of the device returned from readDevice() |
true
if set to external power operation | byte [] readDevice | ( | ) | throws OneWireIOException, OneWireException |
Retrieves the entire A/D control/status and alarm pages.
It reads this and verifies the data with the onboard CRC generator. Use the byte array returned from this method with static utility methods to extract the status, alarm and other register values. Appended to the data is 2 bytes that represent a bitmap of changed bytes. These bytes are used in the writeADRegisters()
in conjuction with the 'set' methods to only write back the changed register bytes.
| OneWireIOException | Data was not read correctly |
| OneWireException | Could not find part |
Implements OneWireSensor.
| void setADAlarm | ( | int | channel, |
| int | alarmType, | ||
| double | alarm, | ||
| byte[] | state | ||
| ) |
Sets the alarm voltage value of the specified channel in the provided state buffer.
The state buffer is retrieved from the readDevice()
method. The method writeDevice()
must be called to finalize these changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice()
.
| channel | channel in the range [0 to (getNumberChannels() - 1)] |
| alarmType | desired alarm, ALARM_HIGH (1) or ALARM_LOW (0) |
| alarm | alarm value (will be reduced to 8 bit resolution) |
| state | current state of this device returned from readDevice() |
| IllegalArgumentException | Invalid channel number passed |
Implements ADContainer.
| void setADAlarmEnable | ( | int | channel, |
| int | alarmType, | ||
| boolean | alarmEnable, | ||
| byte[] | state | ||
| ) |
Sets the alarm enable value of the specified channel in the provided state buffer.
The state buffer is retrieved from the readDevice()
method. The method writeDevice()
must be called to finalize these changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice()
.
| channel | channel in the range [0 to (getNumberChannels() - 1)] |
| alarmType | desired alarm, ALARM_HIGH (1) or ALARM_LOW (0) |
| alarmEnable | alarm enable value |
| state | current state of this device returned from readDevice() |
| IllegalArgumentException | Invalid channel number passed |
Implements ADContainer.
| void setADRange | ( | int | channel, |
| double | range, | ||
| byte[] | state | ||
| ) |
Sets the input range for the specified channel in the provided state buffer.
The state buffer is retrieved from the readDevice()
method. The method writeDevice()
must be called to finalize these changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice()
.
| channel | channel in the range [0 to (getNumberChannels() - 1)] |
| range | max volt range, use getRanges() method to get available ranges |
| state | current state of this device returned from readDevice() |
| IllegalArgumentException | Invalid channel number passed |
Implements ADContainer.
| void setADResolution | ( | int | channel, |
| double | resolution, | ||
| byte[] | state | ||
| ) |
Sets the conversion resolution value for the specified channel in the provided state buffer.
The state buffer is retrieved from the readDevice()
method. The method writeDevice()
must be called to finalize these changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice()
.
| channel | channel in the range [0 to (getNumberChannels() - 1)] |
| resolution | resolution to use in volts |
| state | current state of this device returned from readDevice() |
| IllegalArgumentException | Invalid channel number passed |
Implements ADContainer.
| void setOutput | ( | int | channel, |
| boolean | outputEnable, | ||
| boolean | outputState, | ||
| byte[] | state | ||
| ) |
Sets the output enable and state for the specified channel in the provided register buffer.
The register buffer is retrieved from the readDevice()
method. The method writeDevice()
must be called to finalize these changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice()
.
| channel | channel in the range [0 to (getNumberChannels() - 1)] |
| outputEnable | true if output is enabled |
| outputState | false if output is conducting to ground and true if not conducting. This parameter is not used if outputEnable is false |
| state | current state of the device returned from readDevice() |
| void setPower | ( | boolean | external, |
| byte[] | state | ||
| ) |
Sets or clears the external power flag in the provided register buffer.
The register buffer is retrieved from the readDevice()
method. The method writeDevice()
must be called to finalize these changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice()
.
| external | true if setting external power is used |
| state | current state of this device returned from readDevice() |
| static int voltageToInt | ( | double | voltage, |
| double | range | ||
| ) | [static] |
Converts a voltage double value to the DS2450 specific int value.
Requires the max voltage value.
| voltage | voltage |
| range | max voltage |
| void writeDevice | ( | byte[] | state | ) | throws OneWireIOException, OneWireException |
Writes the bytes in the provided A/D register pages that have been changed by the 'set' methods.
It knows which state has changed by looking at the bitmap fields appended to the register data. Any alarm flags will be automatically cleared. Only VCC powered indicator byte in physical location 0x1C can be written in the calibration memory bank.
| state | register pages |
| OneWireIOException | Data was not written correctly |
| OneWireException | Could not find part |
Implements OneWireSensor.


{{set . "title" "OATH-HOTP demo: Home"}}
{{template "header.html" .}}
Demo app for the hotp
Go package; built by Kyle Isom.
Source available
on Github.OATH-HOTP / Google Authenticator Demo
You will need the Google Authenticator app to use this demo.
Let's get started. What's your name?


Files | |
| file | Action.hpp [code] |
| Class thor::Action. | |
| file | ActionContext.hpp [code] |
| Class template thor::ActionContext. | |
| file | ActionMap.hpp [code] |
| Class template thor::ActionMap. | |
| file | Connection.hpp [code] |
| Classes thor::Connection, thor::ScopedConnection. | |
| file | EventSystem.hpp [code] |
| Class template thor::EventSystem. | |
| file | InputNames.hpp [code] |
| Functions to convert SFML keyboard/mouse enumerators from and to strings. | |
| file | Joystick.hpp [code] |
| Class thor::Joystick. | |


Goals available for this plugin:
| Goal | Description |
|---|---|
| sling:deploy | Deploy a JAR representing an OSGi Bundle to a Sling OSGi Bundle
Repository. This method posts the bundle built by maven to the OSGi
Bundle Repository. The plugin uses a multipart/format-data
POST request to just post the file to the URL configured in the
obr property. |
| sling:deploy-file | Deploy a JAR representing an OSGi Bundle to a Sling OSGi Bundle
Repository. This method posts the bundle referenced via
sling.file to an OSGi Bundle Repository accepting the
bundle. The plugin uses a multipart/format-data POST
request to just post the file to the URL configured in the
obr property. |
| sling:fsmount | Creates OSGi configurations for the Apache Sling File System Resource Provider. |
| sling:fsunmount | Removes OSGi configurations for the Apache Sling File System Resource Provider. |
| sling:generate-adapter-metadata | Build adapter
metadata (JSON) for the Web Console Plugin at
/system/console/status-adapters and
/system/console/adapters from classes annotated with
adapter
annotations. |
| sling:help | Display help information on maven-sling-plugin. Call mvn sling:help -Ddetail=true
-Dgoal=<goal-name> to display parameter details. |
| sling:install | Install an OSGi bundle to a running Sling instance. The plugin
places an HTTP POST request to Felix
Web Console. It's also possible to HTTP PUT instead of POST
leveraging the WebDAV
bundle from Sling. Since version 2.1.8 you can also leverage
the the Sling
POST servlet for that The chosen method depends on the
parameter deploymentMethod . Intermediate Node Creation For all
|
| sling:install-file | Install an OSGi bundle to a running Sling instance. |
| sling:uninstall | Uninstall an OSGi bundle from a running Sling instance. The plugin
places by default an HTTP POST request to Felix
Web Console to uninstall the bundle. It's also possible to use
HTTP DELETE leveraging the WebDAV
bundle from Sling. or the Sling
POST servlet to uninstall the bundle. The chosen method depends
on the parameter deploymentMethod . |
| sling:validate | The validate goal checks the JSON code of a bundle. |
The following specifies the minimum requirements to run this Maven plugin:
| Maven | 3.0.4 |
| JDK | 1.7 |
| Memory | No minimum requirement. |
| Disk Space | No minimum requirement. |
You should specify the version in your project's plugin configuration:
<project> ... <build> <!-- To define the plugin version in your parent POM --> <pluginManagement> <plugins> <plugin> <groupId>org.apache.sling</groupId> <artifactId>maven-sling-plugin</artifactId> <version>2.3.2</version> </plugin> ... </plugins> </pluginManagement> <!-- To use the plugin goals in your POM or parent POM --> <plugins> <plugin> <groupId>org.apache.sling</groupId> <artifactId>maven-sling-plugin</artifactId> <version>2.3.2</version> </plugin> ... </plugins> </build> ... </project>
For more information, see "Guide to Configuring Plug-ins"


| BEST BLOCK >> | NEO NETWORK STATUS | << TIME AGO |
SWITCHEO STATUS MONITOR
| Nodes | Version | Block Height | Create/Sync | Peers | MemPool |
|---|---|---|---|---|---|
| seed1.switcheo.network:10331 | |||||
| seed2.switcheo.network:10331 | |||||
| seed3.switcheo.network:10331 | |||||
| seed4.switcheo.network:10331 | |||||
| seed5.switcheo.network:10331 |
Add multi addresses.
Smart contract balance. Enter address.
Smart contract balance. Address: {{addresses[0]}}
Smart contract balance. Address: MULTI
WAITING FOR CONFIRMATION
CONTRACT BALANCE
TOKENS IN OPEN ORDERS
{{parseFloat(result1+"e-"+dec.decimals)}} {{index1}}
{{parseFloat(result2.amount+"e-"+dec.decimals)}} {{index1}} {{result2.event_type}}
Deposits and withdrawals. Enter address.
Deposits and withdrawals. Address: {{addresses[0]}}
Deposits and withdrawals. Address: MULTI
{{moment.unix(uresult.time).format('DD-MM-YYYY, HH:mm:ss')}} deposit withdrawal {{uresult.amount}} {{utok}} txid: {{uresult.txid}}
Last 200 orders. Enter address.
Last 200 orders. Address: {{addresses[0]}}
Last 200 orders. Address: MULTI
{{moment(oresult.created_at).format('DD-MM-YYYY, HH:mm:ss')}} sell {{otok1}}/{{otok2}} amount: {{parseFloat(oresult.offer_amount+"e-"+ohash1.decimals)}} price: buy {{otok2}}/{{otok1}} amount: {{parseFloat(oresult.want_amount+"e-"+ohash2.decimals)}} price: {{priced(oresult.fills, oresult.makes)}} status: {{oresult.order_status}} {{oresult.order_status}} {{oresult.order_status}} filled:{{Math.round(persent(oresult.fills, oresult.makes)/Number(oresult.offer_amount)*100)}}%
Trading volume for last 200 orders. Enter address.
Trading volume for last 200 orders. Address: {{addresses[0]}}
Trading volume for last 200 orders. Address: MULTI
{{m}} offer:{{ms[i].toFixed(8)}} want:{{mb[i].toFixed(8)}} total:{{(ms[i] + mb[i]).toFixed(8)}}


#VRML V2.0 utf8 # # floater.wrl # Floating Pads # by David R. Nadeau # # A collection of white pads are created. Each pad # slides back and forth horizontally or vertically at its # own speed. A green light illuminates the tops of the # pads while a blue light illuminates the bottoms. # # Complexity is created from simplicity via two tricks: # # 1. Create a set of simple shapes, then repeat the # same shapes several times. In this case, there # are only 7 original pads moving left and right. # Those 7 are repeated again, but turned around the # Y axis so that they slide front to back. The # same 7 are repeated again, but rotated around the # Z axis so that they slide up and down. The # effect is one of a complex bunch of moving shapes # when in reality there are only 7. # # 2. Give each moving shape a slightly different cycle # interval for its animation. This makes all the # movement out of sync, which again creates the # appearance of complexity. # # A PROTO is used to create a new Pad node that incorporates a # box shape, a time sensor, a position interpolator, and routes to # connect them together. Fields to the Pad node control the initial # placement of the pad, and it's animation cycle interval. # # Things to experiment with... # Extend the PROTO node to include a color field for selecting # the color of a pad. # # Add textures. Particularly try adding a texture with a # transparency (alpha) channel. Using transparency textures # you can add stripes, checks, or whatever to the pads. One # approach that looks interesting is to add a cloud texture, # but make the sky behind the clouds transparent in the # texture. When mapped, this creates a blobby indistinct # shape on each pad. # # Add a Transform node around the entire group of pads, then # use an OrientationInterpolator and TimeSensor to slowly # spin the world. Remembering the complexity tricks above, # you can create a complex tumble by using three nested # Transform nodes (X, Y, and Z), each with its own # OrientationInterpolator and TimeSensor. Give the three # TimeSensors slightly different cycleInterval values (such # as 5.0, 7.0, and 11.0). Prime numbers are good choices. # Since the cycle times are different for the three spins, # they don't sync up, and it looks like a chaotic tumble. # WorldInfo { title "Floating Pads" info [ "Copyright (c) 1997, David R. Nadeau" ] } DEF Entry Viewpoint { position 0.0 1.6 10.0 description "Entry View" } NavigationInfo { type [ "EXAMINE", "ANY" ] headlight FALSE } Background { skyColor [ 0.0 0.2 0.6 ] } PointLight { location 0.0 8.0 10.0 color 0.3 1.0 0.3 } PointLight { location 0.0 -8.0 -10.0 color 0.0 0.3 1.0 } # # Define the Pad node type # PROTO Pad [ exposedField SFVec3f translation 0.0 0.0 0.0 exposedField SFRotation rotation 0.0 0.0 1.0 0.0 exposedField SFTime cycleInterval 10.0 ] { Transform { translation IS translation rotation IS rotation children DEF Movee Transform { children [ Shape { appearance Appearance { material Material { diffuseColor 1.0 1.0 1.0 } } geometry Box { size 4.0 0.2 2.0 } } DEF Clock TimeSensor { cycleInterval IS cycleInterval loop TRUE startTime 1.0 stopTime 0.0 } DEF Mover PositionInterpolator { key [ 0.0, 0.5, 1.0 ] keyValue [ -10.0 0.0 0.0, 10.0 0.0 0.0, -10.0 0.0 0.0, ] } ] } } ROUTE Clock.fraction_changed TO Mover.set_fraction ROUTE Mover.value_changed TO Movee.set_translation } # # Make a bunch of moving pads # Pad { translation 0.0 4.0 0.0 cycleInterval 10.0 } Pad { translation -2.0 0.0 -2.0 cycleInterval 12.0 } Pad { translation 2.0 6.0 -4.0 cycleInterval 14.0 } Pad { translation -4.0 2.0 -8.0 cycleInterval 16.0 } Pad { translation 0.0 -6.0 -10.0 cycleInterval 18.0 } Pad { translation 4.0 -2.0 -10.0 cycleInterval 10.0 } Pad { translation 0.0 -4.0 -0.0 cycleInterval 8.0 } Pad { translation 0.0 4.0 0.0 cycleInterval 10.0 rotation 0.0 1.0 0.0 1.571 } Pad { translation -2.0 0.0 -2.0 cycleInterval 12.0 rotation 0.0 1.0 0.0 1.571 } Pad { translation 2.0 6.0 -4.0 cycleInterval 14.0 rotation 0.0 1.0 0.0 1.571 } Pad { translation -4.0 2.0 -8.0 cycleInterval 16.0 rotation 0.0 1.0 0.0 1.571 } Pad { translation 0.0 -6.0 -10.0 cycleInterval 18.0 rotation 0.0 1.0 0.0 1.571 } Pad { translation 4.0 -2.0 -10.0 cycleInterval 10.0 rotation 0.0 1.0 0.0 1.571 } Pad { translation 0.0 -4.0 -0.0 cycleInterval 8.0 rotation 0.0 1.0 0.0 1.571 } Pad { translation 0.0 4.0 0.0 cycleInterval 10.0 rotation 0.0 0.0 1.0 1.571 } Pad { translation -2.0 0.0 -2.0 cycleInterval 12.0 rotation 0.0 0.0 1.0 1.571 } Pad { translation 2.0 6.0 -4.0 cycleInterval 14.0 rotation 0.0 0.0 1.0 1.571 } Pad { translation -4.0 2.0 -8.0 cycleInterval 16.0 rotation 0.0 0.0 1.0 1.571 } Pad { translation 0.0 -6.0 -10.0 cycleInterval 18.0 rotation 0.0 0.0 1.0 1.571 } Pad { translation 4.0 -2.0 -10.0 cycleInterval 10.0 rotation 0.0 0.0 1.0 1.571 } Pad { translation 0.0 -4.0 -0.0 cycleInterval 8.0 rotation 0.0 0.0 1.0 1.571 }


ELECTION OF SENATORS AFTER REAPPORTIONMENT
Section 7. Regardless of whether or not a senator is serving a term that would have extended past the general election at which an apportionment plan becomes effective, the term of office of all senators shall end at that general election. The staggered terms of senators in each district shall be recomputed as established by the next section in this article, and the number of senators in a senatorial district under the reapportionment plan of the commission. [Add Const Con 1978 and election Nov 7, 1978; am SB 2234 (1992) and election Nov 3, 1992; am HB 1 (2000 2d) and election Nov 7, 2000]
Revision Note
Renumbered from section 6 under the authority of Resolution No. 29 of the 1978 Constitutional Convention.


| Statement | Meaning |
|---|---|
use math | # a simple import math = load("math") |
use math, sys | # an import of more # than one module math = load("math") sys = load("sys") |
use lib.package.math | # from a subdirectory math = load("lib/package/math") |
use m = math | # an alias import m = load("math") |
use math: sin, cos | # a qualified import math = load("math") sin = math.sin cos = math.cos |
use math: s=sin, c=cos | # qualified aliases math = load("math") s = math.sin c = math.cos |
use[math]: sin, cos | # a qualification # without import sin = math.sin cos = math.cos |
use math:* | # the qualification of # everything in math math = load("math") gtab().update(record(math)) |
expression = "math" use math = (expression) | # import by a custom # path expression expression = "math" math = load(expression) |
The different forms of the statement may be mixed freely, provied it makes any sense.
A complicated program may have some internal variables that should not be made public. Let us have a look on the following program.
function tabulate_row(t) t.map(|x| str(x).rjust(4)).join("\s|") end function tabulate(a) a.map(tabulate_row).join("\n") end
Here, tabulate_row
is just for internal use
and not meant to be accessible outside of the module.
It is possible to express internal variables in Moss.
begin global tabulate function tabulate_row(t) t.map(|x| str(x).rjust(4)).join("\s|") end function tabulate(a) a.map(tabulate_row).join("\n") end end
Every variable that is declared as global
belongs to
the module interface and is publicly available. All other
variables are only visible inside of begin ... end
.
use my_module: tabulate a = list(1..20).map(|x| [x,x^2]) print(tabulate(a))
Usually, all modules are loaded at the start of a program. If there are many of them, initialization can take quite an amount of time. Also a module might need a large amount of memory space.
use math function main print(math.exp(1)) end
We can achive, that module math
is only loaded,
if we call main
:
function main use math print(math.exp(1)) end
This technique is known as dynamic loading.
Per default, a module is loaded only once. The behavior can be described as follows.
begin public load module_table = {} function load(name) path = __full_path__(name) if path in module_table m = module_table[path] else m = __evaluate_module__(read(path)) module_table[path] = m end return m end end
A computer program consists of a number of subprograms. The root program shall be called main. It is located in the main module. But note that any library module can be used a main program as well. The following construction makes it possible:
# File m1.moss use sys function main(argv) print("argv: ", argv) end if sys.main() main(sys.argv) end
That variable argv
(argument vector)
contains the arguments that are given, if the program is called
by an command-line interface. So
$ moss m1 alpha beta gamma
performs as it would be called as follows:
use m1 m1.main(["m1", "alpha", "beta", "gamma"])


FARM ANIMAL TRIVIA
How well do you know your farm animals?
Press the Start to find out
Question 1
What farm animal is this?
Question 2
What farm animal is this?
Question 3
What farm animal is this?
Question 4
What farm animal is this?
Question 5
What farm animal is this?
Question 6
What farm animal is this?
Question 7
What farm animal is this?
Question 8
What farm animal is this?
Question 9
What farm animal is this?
Question 10
What farm animal is this?
""


|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.upek.android.ptapi.PtGlobal
public class PtGlobal
Main class with basic static Ptapi library methods.
| Field Summary | |
|---|---|
static int |
apiVersion
Version of API in form A.B.C = 0xAAAABBCC. |
static int |
dllVersion
Version of DLL. |
| Constructor Summary | |
|---|---|
PtGlobal()
Use and load the default native library name before first use of the class. |
| Method Summary | |
|---|---|
PtDeviceListItem[] |
enumerateDevices(java.lang.String enumDsn)
Enumerate TFM/ESS devices |
PtGlobalInfo |
globalInfo()
Get information about the API version and other global information, independent on any connection. |
void |
initialize()
Initialize the API library. |
void |
initializeEx(int flags)
Initialize the PTAPI library with possibility to set some additional flags. |
static void |
libraryIsAlreadyLoaded()
Signals to class, that the native library has been loaded by different way and shouldn't be loaded during first construct. |
static void |
loadLibrary()
Load native library with default name. |
PtConnectionI |
open(java.lang.String dsn)
Open new "local" connection to TFM. |
PtConnectionI |
openDevice(java.lang.String dsn)
Opens and prepares connection interface with TFM/ESS. |
PtConnectionI |
openRemote(PtCommCallback commCallback)
Open a new connection to a remote instance of PTAPI library, set the address of a communication callback for this connection and return a connection handle. |
static void |
removeWatchConnection(int handle)
Removes all connections with specified handle from watchedQueu. |
void |
terminate()
Uninitialize the API library. |
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final int apiVersion
Increase of major version number means big change in API, which is not compatible with rules of minor version changes. These are: deleting of data Structure members and deleting whole structures and interfaces. After this change old DLL library can not be compatible with the newer JAR and while first use of PtGlobal (whose static constructor loads DLL) it will raise Error("Incompatible JniPtapi native library."). If a newer DLL is used with old JAR, everything will work correctly, as a DLL should be the same version.
Increase of subversion number means change only inside library without change of outer interface.
Before use of any method, the native library must be loaded by the same classloader which has loaded this class. By default, it will be done automatically during first construct of this class. It is possible to use methods loadLibray(), loadLibrary(libName), load(libFile). These methods are wrapping System.load() and System.loadLibrary calls(), the default one use the default library name (System.loadLibrary("jniidt");) Or it is possible load the native library by different way and signal this fact to class by libraryIsAlreadyLoaded(), constructor will not do the loading then.
public static int dllVersion
| Constructor Detail |
|---|
public PtGlobal()
| Method Detail |
|---|
public void initialize() throws PtException
PtGlobalI
initialize
in interface PtGlobalI
PtException
- Error code of fail, if any was accoured.public void terminate() throws PtException
PtGlobalI
terminate
in interface PtGlobalI
PtException
- Error code of fail, if any was accoured.public PtGlobalInfo globalInfo() throws PtException
PtGlobalI
globalInfo
in interface PtGlobalI
PtException
- Error code of fail, if any was accoured.public PtDeviceListItem[] enumerateDevices(java.lang.String enumDsn) throws PtException
PtGlobalI
enumerateDevices
in interface PtGlobalI
enumDsn
- ASCII string describing the TFM/ESS
connection interface, where enumeration is required,
e.g. USB. Example: "usb".
PtException
- Error code of fail, if any was accoured.public PtConnectionI openDevice(java.lang.String dsn) throws PtException
PtGlobalI
openDevice
in interface PtGlobalI
dsn
- ASCII string descriobing the TFM/ESS connection
interface parameters, e.g. port number etc. Example: "Port=COM1".
PtException
- Error code of fail, if any was accoured.public PtConnectionI open(java.lang.String dsn) throws PtException
PtGlobalI
open
in interface PtGlobalI
dsn
- ASCII string descriobing the TFM connection
parameters, e.g. port number etc. Example: "Port=COM1".
PtException
- Error code of fail, if any was accoured.public PtConnectionI openRemote(PtCommCallback commCallback) throws PtException
PtGlobalI
openRemote
in interface PtGlobalI
commCallback
- Application-provided callback to pass data packet to/from
the remote library instance.
PtException
- Error code of fail, if any was accoured.public void initializeEx(int flags) throws PtException
PtGlobalI
initializeEx
in interface PtGlobalI
PtException
- Error code of fail, if any was accoured.public static void removeWatchConnection(int handle)
handle
- is native connection handle for removepublic static void loadLibrary()
public static void libraryIsAlreadyLoaded()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |