The purpose of the KeySSI concept is to provide blockchain-anchored identities for things and processes,
but potentially also for companies and individuals.
The concept of KeySSI is more general than the concept proposed by the W3C DID web standard.
DIDs and KeySSIs are two different methods of creating SSIs (Self Sovereign Identifiers).
Also, an important innovation proposed by KeySSI is that they are used as secret (symmetrical) encryption/decryption keys for DSUs (or for parts of the DSUs).
A KeySSI never comes alone but is accompanied by KeySSIs derived from it or from which it was derived. Derivation can be understood as a form of access delegation:
someone who holds a KeySSI with a higher access level delegates accesses to lower levels.
The syntax of KeySSIs is inspired by the W3C DID, but the KeySSI starts with the “ssi” string and the DID
methods are interpreted as subtypes and not as incompatible methods.
In the image above:
subtype is a string representing the KeySSI's type.
Ledger.domain/path represents a path in a blockchain hierarchy.
Subtype specific is usually a Zero Access SSI (zaSSI).
Control is used by the anchoring services to validate the requests for a new version of the anchored DSU. The algorithm used for verification is subtype specific.
vn is a string reflecting the version number of the subtype. The vn field is optional and, if missing, is set to v0. Each version establishes the hash function and algorithm used by the control mechanisms.
Hint is optional and subtype specific. Typically provides some additional information to the KeySSI resolver.
ssi:seed:ePI.pharma:RANDOM_SEED_KEY:HASH_RANDOM_KEY
ssi:za:ePI.pharma:HASH_SERIALISATION:HASH_PUBLIC_KEY
The most important subtypes of KeySSI are self certifying SSIs. The self certification properties are coming
from the usage of the hash of a public key as part of the identifier. The image below shows shows the main
types
of self certifying KeySSIs and the access level each type provides.
The downward arrow in the image above represents the derivation operation; the
lower level KeySSIs are derived from higher level KeySSIs. A lower level KeySSI is, usually, obtained
by applying a cryptographic hash function to a higher level KeySSI. The above KeySSI hierarchy is called
the SecretSSI family.
SecretSSI := random():hpk
AnchorSSI := hash(SeedSSI):hpk
ReadSSI := hash(AnchorSSI):hpk
PublicSSI := hash(ReadSSI):hpk
zaSSI := hash(PublicSSI):hpk
In the example above:
random is a cryptographically safe random generating function
hash is a cryptographic hashing function
hpk is the hash of the public key
As seen in the above example, the SecretSSI family is created starting from a random secret number (256bits) in
the subtype specific part of the
identifier and the hash of a public key in the control part. All the other subtypes are derived using a hash
function from the subtype specific part of the previous subtype.
The blockchain's state and the public key's hash are preserved during subtype derivation.
Seed based KeySSI's are not self-certifying (do not contain a reference to the public key in their identifiers).
The image and table below show the Seed based KeySSI family and the purposes of each KeySSI:
KeySSI type | Purpose
secret | Owning a SecretSSI provides total control (ownership) over the anchored DSU Example: ssi:secret:domain:secret_key_base58:hash_public_key_base58:v0
anchor | Owning an AnchorSSI provides anchoring (write access). The possession of the SecretSSI is required for anchoring new versions of the DSU. An AnchorSSI provides read access to the confidential information from the DSU and to the secret part of the DSU (as will be defined in the next chapter).The confidential and the secret part are not identical (despite some potential confusion from the name) Example: ssi:anchor:domain:hash(SecretSSI):hash_public_key_base58:v0
read | Owning a SecretSSI provides read access to the confidential part of the DSU. Depending on the DSU type, typically here confidential part contains business-specific information that is shared to a larger group. Example: ssi:read:domain:hash(AnchorSSI):hash_public_key_base58:v0
public | Owning a SecretSSI provides read access to the public part of the DSU. The public and confidential parts are not the same, the public contains public keys or other types of information that are not confidential in any important way. Example: ssi:public:domain:hash(ReadSSI):hash_public_key_base58:v0
za | Owning a zaSSI provides no access. Having a zaSSI indicates that a SecretSSI exists and has a specified number of versions Example: ssi:zar:domain:hash(PublicSSI):hash_public_key_base58:v0


{% extends 'bootstrap/base.html' %} {% import "bootstrap/wtf.html" as wtf %} {% block content %} {% include "header.html" %} Budget Forecasts Manage multiple forecasts and scenarios from this page


Web Search
Sign in
Outlook.com
Facebook
Skype
Twitter
Office
Microsoft Store
One Drive
Pakistan win piles more pressure on England
We won't take Afghans lightly
40kg drugs found in Brazil president's plane
The Independent
No more yawning for Sarfaraz
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
Bollywood
Edit
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
ICC Wrold Cup
Edit
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
Pakistan
Edit
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
Life
Edit
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
Miley, Ariana, Lana sing together?
Kliye Minogue finds true love
Kate borrows Meghan's style
Lovato to tell her story via album
Ideal couples to double date with
The Science of dark circles
Spacy squed alleged groping
GoT star donates $10000 to charity
World
Edit
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
Miley, Ariana, Lana sing together?
Kliye Minogue finds true love
Kate borrows Meghan's style
Lovato to tell her story via album
Ideal couples to double date with
The Science of dark circles
Spacy squed alleged groping
GoT star donates $10000 to charity
40kg drugs found in Brazil president's plane
The Independent
Sports
Edit
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
Miley, Ariana, Lana sing together?
Kliye Minogue finds true love
Kate borrows Meghan's style
Lovato to tell her story via album
Ideal couples to double date with
The Science of dark circles
Spacy squed alleged groping
GoT star donates $10000 to charity
40kg drugs found in Brazil president's plane
The Independent
Video
Edit
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
Photos
Edit
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent
40kg drugs found in Brazil president's plane
The Independent


| DOSE: |
6.0 mg |
oral |
Melatonin |
(capsule) |
| |
400 mg |
oral |
Valerian |
(pill / tablet) |
| |
200 mg |
oral |
Vitamin B-6 |
(pill / tablet) |
| |
100 mg |
oral |
Skullcap |
(pill / tablet) |
| |
50 mg |
oral |
Hops |
(pill / tablet) |
In December 2004, I had been reading quite a bit about the potentiation of extremely intense dreams through the use of Melatonin, Vitamin B-6, and Valerian Root. This is an account of my first experience with those three chemicals.
For informational purposes, I am a 16 year-old male in high-school and living with my parents. They don't like my experimentation, so I stick to soft and legal stuff like Melatonin and the like.
I first went to the drug store, and picked up some 'B-6 100mg Tablettes' and 'Herbal Nerve' tablettes. Vitamin B-6 is said to aid in dream recall, dream lucidity, and dream intensity. The Herbal Nerve formula contained a 1:4 extract of Valerian root, equivilant to 400mg of dried Valerian Root per tab. The final product I picked up was Melatonin, which is used for resetting circadian rythm after a disruption (jet lag, for instance), and for getting a better night's sleep. The pharmacist whom I asked to assist me in finding this item told me that they may soon be taking Melatonin off of the shelves, as there has been some research done that suggests it does: nothing. I raised my eyebrow, and bought two bottles, just in case.
After getting the bottles home I decided on the following:
This meant taking two of each pill. It should be noted that the Herbal Nerve Formula also contained Skullcap and Hops, but in smaller quantities (100mg and 50mg, respectively) whereas the Valerian Root extract (1:4) was at 50mg -- the equivilant of 200mg.
At 10:00pm exactly, I took all of the pills. I had not eaten since about 5:00 or 6:00pm. At 10:30pm, I went to bed.
What happened next was pretty interesting, and though the effects are hard to pin down, there was obviously SOMETHING happening.
I was dreaming of course, but everything was extremely vivid and hyper-real. My dreams are usually quite fuzzy (but in colour, no less), but this time they were vivid and sharp. At one point, I dreamt I woke up in my room to the fact that my parents had found out about my experimentation, and were very pissed for some reason. I turned on my CD player, and started playing music. After doing some stuff in my room, I suddenly woke up. The dream had recreated my room down to EVERY detail. It was most likely the most intense dreaming experience I've ever had, and I took a long time to realise that I wasn't dreaming anymore.
So at T+7hrs, I woke up. I couldn't get back to sleep again for some reason (possibly the melatonin), but I felt quite awake and chipper regardless.
I intend on experimenting further with these chemicals, specifically playing witht the Vitamin B-6 dose, as it seems to be the most powerful ingredient according to other experience reports.
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.


4 instantiations of LookupPathCollection
System.Management.Automation (4)
engine\CommandDiscovery.cs (1)
1297
LookupPathCollection result = new
LookupPathCollection
();
engine\CommandSearcher.cs (3)
1339
var result = new
LookupPathCollection
();
1557
var directoryCollection = new
LookupPathCollection
{ directory };
1601
var directoryCollection = new
LookupPathCollection
{ directory };
9 references to LookupPathCollection
System.Management.Automation (9)
engine\CommandDiscovery.cs (3)
1295
internal
LookupPathCollection
GetLookupDirectoryPaths()
1297
LookupPathCollection
result = new LookupPathCollection();
1354
private
LookupPathCollection
_cachedLookupPaths;
engine\CommandPathSearch.cs (2)
45
LookupPathCollection
lookupPaths,
537
private readonly
LookupPathCollection
_lookupPaths;
engine\CommandSearcher.cs (4)
1337
internal
LookupPathCollection
ConstructSearchPatternsFromName(string name, bool commandDiscovery = false)
1339
var
result = new LookupPathCollection();
1557
var
directoryCollection = new LookupPathCollection { directory };
1601
var
directoryCollection = new LookupPathCollection { directory };


Simple Applications
27 Sep 2013A discussion about simple interfaces with Brian Anderson and Tyler Bell got me thinking. So I jumped on Editorially and started typing this post. Editorially is an example of a new breed of software where the interface isn’t in-your-face (see what I did there?). It’s designed to let your content be the focus while providing a refined set of features, available when you need them, instead of the usual heap of icons lumped in ribbons and tabs. This philosophy is also evident in IA Writer, Ghost, and Medium. Sure, you can’t use these to mail-merge, but when you want to write, they let you. Simplicity is a beautiful thing.
Then I thought about more complex tasks. Do we lose the efficiency which these narrow focused tools provide when you end up having to use four simple tools to replace one broad one? Of course I don’t want one tool that does everything. The thought of a Pages-Photoshop-Espresso-CodeKit-Terminal-Chrome mutant makes me seasick. So what’s the optimal balance? Can we hope for a future of few, focused apps or will we cycle back toward the comfort of bloated suites?
Now I will publish this using Wordpress, an example of software that does too much, except when you need that one extra feature.
UPDATE: 2/19/14 - I moved this blog from wordpress to Jekyll, an example of a simple web platform.


China targets individual behaviour with 'green living' campaign
SHANGHAI: China launched a national "green living" campaign on Wednesday (Nov 6) to urge people to cut waste, save water and plant trees as part of a broader effort to reverse the damage done by decades of untrammeled growth.
While the government did not specify how its targets would be met or enforced, the campaign will use traditional Communist Party mobilisation methods to change individual behaviour rather than cracking down on companies as in the past.
READ: China warns of heavy smog during anniversary celebrations
READ: China to set stricter targets for polluting cities in heating season
By 2022, more than 60 per cent of households would be expected to engage in "green living" activities such as tree-planting, wildlife protection, and cutting plastic waste.
Communist Party and government departments would have to meet requirements to recycle, purchase new-energy vehicles and create paperless offices, while schools would be expected to create "green campuses".
READ: Beijing set to exit list of world's top 200 most-polluted cities: Data
Urban residential districts would be expected to create "liveable environments" and increase green spaces, while shopping malls would be encouraged to cut waste and promote "green consumption".
China is the world's biggest emitter of greenhouse gases blamed for global warming. It has been waging war on pollution and modernising its heavy industrial economy in a bid to cut emissions and clean up its environment.
As well as launching a series of campaigns against corporate polluters, it has built infrastructure and created incentives to treat waste. It is building 100 new recycling bases set to be completed by the end of next year.
Shanghai has launched a series of new initiatives aimed at improving its environment, and it was the first Chinese city to force its residents to sort their own trash.


Shea Weber scores twice, Canadiens beat Kings 3-2
MONTREAL (AP) - Shea Weber led by example for the Montreal Canadiens
The Montreal captain scored two power-play goals in the Canadiens‘ 3-2 victory over the Los Angeles Kings on Saturday night.
“We know we haven’t been good enough here in the last little while,” Weber said. “We got to take a look in the mirror and we’ve all got to be better. I thought tonight we had a much better start and obviously you saw what a start can do.”
Nate Thompson also scored and Carey Price made 31 saves. The Canadiens improved to 9-5-3 with their fifth victory in six games.
Blake Lizotte scored his first NHL goal, Anze Kopitar also connected, and Jonathan Quick stopped 34 shots for the Kings. Los Angeles has only one victory in its last eight.
“We had a good second, we had a good third,” Kopitar said. “We’ve talked about this enough so far. I mean, it’s been 16 games in. You can’t play 40 minutes, or 45, or 55. You got to fight for the full 60.”
Weber opened the scoring midway through the first period. The defenseman fired a shot from the top of the faceoff circle that hit defenseman Matt Roy. As the puck landed back toward Weber, he blasted it past Quick.
“That was a weird one, definitely,” Weber said. “Just waiting for it to come back down. Got lucky on the timing.”
Thompson made it 2-0 15 seconds later, and Weber added his second in the period.
Kopitar scored early in the second on a power play. Lizotte pulled the Kings within one with 6:56 left.
“I’ve been dreaming about that one for a while,” Lizotte said. “I’ve had some good chances that haven’t gone my way but it really feels good to get that one.”
NOTES: Weber has 101 career power-play goals. … Montreal was 2 of 6 on the power play. Los Angeles was 1 of 3.
UP NEXT
Kings: Host Minnesota on Tuesday night.
Canadiens: Host Columbus on Tuesday night.
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


{% load staticfiles %}
Accepted to Information Sciences, July 2017
Accepted to IEEE Transactions on Multimedia (TMM), May 2017
Accepted to IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI), Feb. 2017
Accepted to International Conference on Image and Graphics (ICIG), July 2017
Accepted to ACM International Conference on Multimedia (MM), Full Paper, July 2017
Accepted to International Conference on Image Processing (ICIP), May 2017
International Conference on Multimedia Modelling (MMM), pp. 264-276, 2017
Sensing and Imaging, vol. 17, no. 1, pp. 1-20, November 2016
Information Sciences, vol. 369, pp. 334-346, 2016
IEEE Transactions on Multimedia (TMM), vol. 18, no. 8, pp. 1661-1674, Aug. 2016
IEEE Transactions on Image Processing (TIP), vol. 25, no. 5, pp. 2311-2323, Feb. 2016
IEEE Transactions on Image Processing (TIP), vol. 25, no. 2, pp. 878-892, 2016
IEEE Transactions on Multimedia (TMM), vol. 18, no. 2, pp. 141-154, 2016
IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI), vol. 38, no. 1, pp. 159-171, 2016
IEEE Transactions on Circuits and Systems for Video Technology (TCSVT), vol. 26, no. 2, pp. 375-384, 2016
ACM Transactions on Multimedia Computing Communications and Applications (TOMM), vol. 12, no. 29, 2016
IEEE International Conference on Visual Communications and Image Processing (VCIP), pp. 1-4, 2016
ACM International Conference on Internet Multimedia Computing and Service (ICIMCS), pp. 18-21, 2016
ACM International Conference on Internet Multimedia Computing and Service (ICIMCS), pp. 242-245, 2016
Pacific-Rim Conference on Multimedia (PCM), pp. 559-568, June 2016
ACM International Conference on Multimedia (MM), pp. 1257-1266, long paper, 1257-1266, 2016
IEEE International Conference on Image Processing (ICIP), pp. 2871-2875, 2016
IEEE International Conference on Image Processing (ICIP), pp. 2876-2880, 2016
IEEE International Conference on Multimedia and Expo (ICME), pp. 1-6, 2016
IEEE International Conference on Computer Vision and Pattern Recognition (CVPR), pp. 1134-1142, 2016
International Conference on Multimedia Modelling (MMM), pp. 686-697, 2016
International Conference on Multimedia Modelling (MMM), pp. 818-828, 2016
IEEE Transactions on Image Processing (TIP), vol. 24, no. 1, pp. 4287-4298, 2015
IEEE Transactions on Image Processing (TIP), vol. 24, no. 3, pp. 967-979, 2015
IEEE Transactions on Multimedia (TMM), vol. 17, no. 4, pp. 538-548, 2015
Multimedia System Journal (MMSJ), vol. 21, no. 3, pp. 245-254, 2015
ACM International Conference on Multimedia (MM), 1075-1078, 2015
ACM International Conference on Internet Multimedia Computing and Service (ICIMCS), 2015
IEEE International Conference on Image Processing (ICIP), 2015
IEEE China Summit and International Conference on Signal and Information Processing (ChinaSIP), 2015
IEEE China Summit and International Conference on Signal and Information Processing (ChinaSIP), 2015
IEEE International Conference on Multimedia Retrieval (ICMR), 2015
IEEE International Conference on Multimedia and Expo (ICME), 2015
IEEE International Conference on Computer Vision and Pattern Recognition (CVPR), 2015
IEEE Transactions on Image Processing (TIP), vol. 23, no. 5, pp. 2047-2057, 2014
IEEE Transactions on Multimedia (TMM), vol. 16, no. 3, pp. 601-611, 2014
IEEE Transactions on Image Processing (TIP), vol. 23, no. 4, pp. 1606-1614, 2014
Journal of Computer Science and Technology (JCST), vol. 29, no. 5, pp. 837-848, 2014
Journal of Computer Vision and Image Understanding (CVIU), vol. 124, pp. 31-41, 2014
SPIE/COS Photonics Asia. International Society for Optics and Photonics, 2014
ACM International Conference on Multimedia (MM), pp. 287-296, Full Paper, 2014
International Conference on Internet Multimedia Computing and Service, pp. 46-49, 2014
International Conference on Internet Multimedia Computing and Service, 2014
International Conference on Internet Multimedia Computing and Service (ICIMCS), 2014
IEEE International Conference on Computer Vision and Pattern Recognition (CVPR), 2014
ACM Transactions on Multimedia Computing, Communications and Applications (TOMCCAP), vol. 9, no. 1, article 4, February, 2013
The 21st ACM International Conference on Multimedia (MM"13), Full Paper, Acceptance Rate: 20%, Barcelona, Spain, October 21-25, 2013
IEEE Transactions on Image Processing (TIP), vol. 21, no. 6, pp. 4269-4279, 2012
the 4th ACM International Conference on Internet Multimedia Computing and Service (ICIMCS 2012), Wuhan, China, September 9-11, pp. 1-6, 2012
ACM International Conference on Multimedia (MM), Full Paper (acceptance rate 20.2%), 2012
ACM International Conference on Multimedia (MM), Full Paper (acceptance rate 20.2%), 2012
ACM International Conference on Multimedia (MM), Short Paper (acceptance rate 31.2%), 2012
ACM International Conference on Multimedia (MM), Short Paper (acceptance rate 31.2%), 2012
ACM International Conference on Multimedia (MM), Short Paper (acceptance rate 31.2%), 2012
International ACM conference on Research and Development in Information Retrieval (SIGIR 2012), pp. 1069-1070, 2012
International Journal of Multimedia Tools and Applications, vol. 51, no. 2, pp.441-477, 2011
Journal of Computer Vision and Image Understanding, vol. 115, no. 3, pp. 403-414, 2011
Pattern Recognition, vol. 44, no. 10-11, pp.2263-2273 2011
ACM International Conference on Multimedia (MM), Short paper (acceptance rate: 36.3%, 120 out of 331), Scottsdale, Arizona, Nov. 28-Dec. 1, pp.1349-1352, 2011
Image Vision Computing, vol. 28, no. 4, pp. 668-676, 2010
ACM International Conference on Multimedia (MM), Full Paper (acceptance rate: 16%), Florence, Italy, October 25-29, pp.131-140, 2010
Demo paper at ACM International Conference on Multimedia (MM), Florence, Italy, October 25-29, pp. 1523-1524, 2010
ACM International Conference on Image and Video Retrieval (CIVR), Xi'an，China, July 5-7, pp.205-212, 2010
International Conference on Pattern Recognition (ICPR)，August 23-26, Istanbul, Turkey, pp.834-837, 2010
IEEE International Conference on Acoustics，Speech，and Signal Processing (ICASSP)，March 14-19, pp. 2394-2397, 2010
Chinese of Journal Electronics (English version), vol. 18, no. 2, pp. 281-284, 2009
International Journal of Computer Aided Engineering and Technology, vol. 1, no. 4, pp. 516-531, 2009
Opto-Electronic Engineering, vol. 35, no. 12, 2008
ACM International Conference on Internet Multimedia Computing and Services (ICIMCS)，Kunming，China，November 23-25, pp.14-20, 2009
International Conference on Medical Image Computing and Computer Assisted Intervention (MICCAI), Sept. 6-10, pp.18-26, 2008
International Symposium on Computational Models for Life Sciences (CMLS), Dec. 17-19, pp.137-146, 2007


- NAME
- socket - Open a TCP network connection
- SYNOPSIS
- socket ?options? host port
- socket -server command ?options? port
- DESCRIPTION
- CLIENT SOCKETS
- -myaddr addr
- -myport port
- -async
- SERVER SOCKETS
- -myaddr addr
- CONFIGURATION OPTIONS
- -error
- -sockname
- -peername
- EXAMPLES
- SEE ALSO
- KEYWORDS
socket - Open a TCP network connection
socket ?options? host port
socket -server command ?options? port
This command opens a network socket and returns a channel
identifier that may be used in future invocations of commands like
read, puts and flush.
At present only the TCP network protocol is supported; future
releases may include support for additional protocols.
The socket command may be used to open either the client or
server side of a connection, depending on whether the -server
switch is specified.
Note that the default encoding for all sockets is the system
encoding, as returned by encoding system. Most of the time, you
will need to use fconfigure to alter this to something else,
such as utf-8 (ideal for communicating with other Tcl
processes) or iso8859-1 (useful for many network protocols,
especially the older ones).
If the -server option is not specified, then the client side of a
connection is opened and the command returns a channel identifier
that can be used for both reading and writing.
Port and host specify a port
to connect to; there must be a server accepting connections on
this port. Port is an integer port number
(or service name, where supported and understood by the host operating
system) and host
is either a domain-style name such as www.tcl.tk or
a numerical IP address such as <IP_ADDRESS>.
Use localhost to refer to the host on which the command is invoked.
The following options may also be present before host
to specify additional information about the connection:
- -myaddr addr
-
Addr gives the domain-style name or numerical IP address of
the client-side network interface to use for the connection.
This option may be useful if the client machine has multiple network
interfaces. If the option is omitted then the client-side interface
will be chosen by the system software.
- -myport port
-
Port specifies an integer port number (or service name, where
supported and understood by the host operating system) to use for the
client's
side of the connection. If this option is omitted, the client's
port number will be chosen at random by the system software.
- -async
-
The -async option will cause the client socket to be connected
asynchronously. This means that the socket will be created immediately but
may not yet be connected to the server, when the call to socket
returns. When a gets or flush is done on the socket before the
connection attempt succeeds or fails, if the socket is in blocking mode, the
operation will wait until the connection is completed or fails. If the
socket is in nonblocking mode and a gets or flush is done on
the socket before the connection attempt succeeds or fails, the operation
returns immediately and fblocked on the socket returns 1.
If the -server option is specified then the new socket
will be a server for the port given by port (either an integer
or a service name, where supported and understood by the host
operating system; if port is zero, the operating system will
allocate a free port to the server socket which may be discovered by
using fconfigure to read the -sockname option).
Tcl will automatically accept connections to the given port.
For each connection Tcl will create a new channel that may be used to
communicate with the client. Tcl then invokes command
with three additional arguments: the name of the new channel, the
address, in network address notation, of the client's host, and
the client's port number.
The following additional option may also be specified before host:
- -myaddr addr
-
Addr gives the domain-style name or numerical IP address of
the server-side network interface to use for the connection.
This option may be useful if the server machine has multiple network
interfaces. If the option is omitted then the server socket is bound
to the special address INADDR_ANY so that it can accept connections from
any interface.
Server channels cannot be used for input or output; their sole use is to
accept new client connections. The channels created for each incoming
client connection are opened for input and output. Closing the server
channel shuts down the server so that no new connections will be
accepted; however, existing connections will be unaffected.
Server sockets depend on the Tcl event mechanism to find out when
new connections are opened. If the application doesn't enter the
event loop, for example by invoking the vwait command or
calling the C procedure Tcl_DoOneEvent, then no connections
will be accepted.
If port is specified as zero, the operating system will allocate
an unused port for use as a server socket. The port number actually
allocated may be retrieved from the created server socket using the
fconfigure command to retrieve the -sockname option as
described below.
The fconfigure command can be used to query several readonly
configuration options for socket channels:
- -error
-
This option gets the current error status of the given socket. This
is useful when you need to determine if an asynchronous connect
operation succeeded. If there was an error, the error message is
returned. If there was no error, an empty string is returned.
- -sockname
-
This option returns a list of three elements, the address, the host name
and the port number for the socket. If the host name cannot be computed,
the second element is identical to the address, the first element of the
list.
- -peername
-
This option is not supported by server sockets. For client and accepted
sockets, this option returns a list of three elements; these are the
address, the host name and the port to which the peer socket is connected
or bound. If the host name cannot be computed, the second element of the
list is identical to the address, its first element.
Here is a very simple time server:
proc Server {channel clientaddr clientport} {
puts "Connection from $clientaddr registered"
puts $channel [clock format [clock seconds]]
close $channel
}
socket -server Server 9900
vwait forever
And here is the corresponding client to talk to the server:
set server localhost
set sockChan [socket $server 9900]
gets $sockChan line
close $sockChan
puts "The time on $server is $line"
fconfigure, flush, open, read
bind, channel, connection, domain name, host, network address, socket, tcp
Copyright © 1996 Sun Microsystems, Inc.
Copyright © 1998-1999 by Scriptics Corporation.
Copyright © 1995-1997 Roger E. Critchlow Jr.


Me
Admin
Dashboard
Dropdown
Example #1
Example #2
Example #3
5
You have 5 new notifications
New user registration.
1 mins
High CPU load on cluster #2.
5 mins
New user registration.
10 mins
New items are in queue.
25 mins
Disk space to 85% full.
55 mins
View all notifications
7
You have 7 pending tasks
Preparing new release
30%
Change management
80%
Mobile development
60%
Database migration
20%
View all tasks
1
You have 3 new messages
Bob Carter
Just Now
Consetetur sadipscing elitr...
Jane Doe
45 mins
Sed diam nonumy...
Patrick Nilson
6 hours
No sea takimata sanctus...
View all messages
Projects
John Doe
My Profile
My Calendar
My Tasks
Log Out
Lorem ipsum dolor
Dolor sit invidunt
Consetetur sadipscing elitr
Sed diam nonumy
At vero eos et
Sed diam voluptua
Lorem ipsum dolor
Dolor sit invidunt
Consetetur sadipscing elitr
Sed diam nonumy
At vero eos et
Sed diam voluptua
Documents
John Doe
received $1.527,32
finances.xls
My name is
John Doe
...
briefing.docx
Persons
Jane
Doe
21 years old
Dashboard
UI Features
6
General
Buttons
Tabs & Accordions
Sliders
Nestable List
Typography / Icons
Google Maps
Grid
Form Elements
Form Components
Form Layouts
Form Validation
Form Wizard
Tables
Static Tables
Dynamic Tables (DataTables)
Responsive Tables
Charts & Statistics
Pages
Login
User Profile
Calendar
Invoice
404 Page
4 Level Menu
Item 1
Sample Link 1
Sample Link 1
Sample Link 1
Sample Link 1
Sample Link 1
Sample Link 2
Sample Link 3
Item 2
Sample Link 1
Sample Link 1
Sample Link 1
Item 3
Notifications
Server
#512
crashed.
few seconds ago
John
sent you a message
few second ago
Emma
's account was created
4 hours ago
Bright
Dark
Dashboard
Calendar
Statistics
Users
(+3)
Add new User
Overview
Form Wizard
Good morning, John!
New orders
17,561
20,15,8,50,20,40,20,30,20,15,30,20,25,20
My balance
$21,561.21
20,15,8,50,20,40,20,30,20,15,30,20,25,20
Form Wizard with Validation -
Step 1 of 4
1
Basic Information
2
Your Profile
3
Billing Setup
4
Confirmation
You missed some fields. They have been highlighted.
Good job! :-)
Please fill in your account details
Username
*
Enter your username.
Password
*
Enter your password.
Confirm Password
*
Confirm your password.
Email
*
Enter your email address.
We want to know more about you
Fullname
*
Provide your full name
Gender
*
Male
Female
Country
Afghanistan
Albania
Algeria
American Samoa
Andorra
Angola
Anguilla
Antarctica
Argentina
Armenia
Aruba
Australia
Austria
Azerbaijan
Bahamas
Bahrain
Bangladesh
Barbados
Belarus
Belgium
Belize
Benin
Bermuda
Bhutan
Bolivia
Bosnia and Herzegowina
Botswana
Bouvet Island
Brazil
British Indian Ocean Territory
Brunei Darussalam
Bulgaria
Burkina Faso
Burundi
Cambodia
Cameroon
Canada
Cape Verde
Cayman Islands
Central African Republic
Chad
Chile
China
Christmas Island
Cocos (Keeling) Islands
Colombia
Comoros
Congo
Congo, the Democratic Republic of the
Cook Islands
Costa Rica
Cote d'Ivoire
Croatia (Hrvatska)
Cuba
Cyprus
Czech Republic
Denmark
Djibouti
Dominica
Dominican Republic
Ecuador
Egypt
El Salvador
Equatorial Guinea
Eritrea
Estonia
Ethiopia
Falkland Islands (Malvinas)
Faroe Islands
Fiji
Finland
France
French Guiana
French Polynesia
French Southern Territories
Gabon
Gambia
Georgia
Germany
Ghana
Gibraltar
Greece
Greenland
Grenada
Guadeloupe
Guam
Guatemala
Guinea
Guinea-Bissau
Guyana
Haiti
Heard and Mc Donald Islands
Holy See (Vatican City State)
Honduras
Hong Kong
Hungary
Iceland
India
Indonesia
Iran (Islamic Republic of)
Iraq
Ireland
Israel
Italy
Jamaica
Japan
Jordan
Kazakhstan
Kenya
Kiribati
Korea, Democratic People's Republic of
Korea, Republic of
Kuwait
Kyrgyzstan
Lao People's Democratic Republic
Latvia
Lebanon
Lesotho
Liberia
Libyan Arab Jamahiriya
Liechtenstein
Lithuania
Luxembourg
Macau
Macedonia, The Former Yugoslav Republic of
Madagascar
Malawi
Malaysia
Maldives
Mali
Malta
Marshall Islands
Martinique
Mauritania
Mauritius
Mayotte
Mexico
Micronesia, Federated States of
Moldova, Republic of
Monaco
Mongolia
Montserrat
Morocco
Mozambique
Myanmar
Namibia
Nauru
Nepal
Netherlands
Netherlands Antilles
New Caledonia
New Zealand
Nicaragua
Niger
Nigeria
Niue
Norfolk Island
Northern Mariana Islands
Norway
Oman
Pakistan
Palau
Panama
Papua New Guinea
Paraguay
Peru
Philippines
Pitcairn
Poland
Portugal
Puerto Rico
Qatar
Reunion
Romania
Russian Federation
Rwanda
Saint Kitts and Nevis
Saint LUCIA
Saint Vincent and the Grenadines
Samoa
San Marino
Sao Tome and Principe
Saudi Arabia
Senegal
Seychelles
Sierra Leone
Singapore
Slovakia (Slovak Republic)
Slovenia
Solomon Islands
Somalia
South Africa
South Georgia and the South Sandwich Islands
Spain
Sri Lanka
St. Helena
St. Pierre and Miquelon
Sudan
Suriname
Svalbard and Jan Mayen Islands
Swaziland
Sweden
Switzerland
Syrian Arab Republic
Taiwan, Province of China
Tajikistan
Tanzania, United Republic of
Thailand
Togo
Tokelau
Tonga
Trinidad and Tobago
Tunisia
Turkey
Turkmenistan
Turks and Caicos Islands
Tuvalu
Uganda
Ukraine
United Arab Emirates
United Kingdom
United States
United States Minor Outlying Islands
Uruguay
Uzbekistan
Vanuatu
Venezuela
Viet Nam
Virgin Islands (British)
Virgin Islands (U.S.)
Wallis and Futuna Islands
Western Sahara
Yemen
Zambia
Zimbabwe
Remarks
Provide your billing and credit card details
Card Holder Name
*
Card Number
*
Confirm your account
Account
Username:
Email:
Profile
Fullname:
Gender:
Country:
Remarks:
Billing
Card Holder Name:
Card Number:
Back
Continue
Submit


Announcing the #MesosCon Europe Hackathon
We are proud to announce the first ever MesosCon Europe hackathon on Friday, October 9th, 2015. This event is an opportunity to contribute to the project, learn from other members of the community, and build some fantastic hacks.
The hackathon is being sponsored by Joyent, and, though not required, participants are invited to use Joyent’s cloud during the hack day. Joyent is offering each participant substantial service credits in their cloud to kickstart work and continue hacking after the event.
Award categories
We are challenging participants to hack on Mesos in two categories:
- Community need: These are issues logged in the Mesos issue tracker that have received a large amount of activity (comments, votes, etc), and address some of the larger problems or pain points for the community. Suggested projects include new features, bugs, or documentation.
- People’s choice: These contributions will be voted on by your peers, and our guidance is intentionally open-ended so teams will run wild with their ideas. We’re excited to see what you come up with.
Additionally, Joyent is offering a container-native bonus award to one hack in each of the above categories that best leverages Joyent’s Triton bare metal container infrastructure. Joyent’s judges may award the container-native bonus at their discretion.
Rules
- Coding may not begin until the hackathon officially begins, although we encourage you to plan and scheme ahead of time!
- Sourcecode from the hackathon must be fully available on Github, Bitbucket, or a public source repo in order to be successfully submitted. Code must additionally be licensed in a manner compatible with Mesos' licensing.
- Submitted applications must run.
- Teams may have a maximum of four contributors.
- A team may only win one category.
- Submissions must be related to Mesos in some way.
These rules are subject to change. Please hack the code, not the rules: if you think you’re doing something that’s against the rules or that gives you an unfair advantage, you probably shouldn’t do it.
Schedule
9:00 - Hacking begins at conference center
13:00 - Lunch arrives
17:00 - Coding stops, refreshments are served
17:15 - Re-explain the voting rules
17:20 - Presentations start - Each team gets 5 minutes to pitch what they built and show it off
18:00 - Voting occurs
18:15 - Winners announced
Registration
The hackathon is open to all MesosCon Europe 2015 attendees. Please indicate your interest in the hackathon while registering for the conference or update your registration to reflect it.


CONTACT
You Cantact and Follow Me Through the following:
s
<EMAIL_ADDRESS>+639062989528
johnlestertumangan
chubie_lester
chubielester


{% assign projectByYear = site.projects | | group_by_exp:"project", "project.date | date: '%Y'" %} {% for year in projectByYear reversed %}
{{ project.description }}


Tutorials¶
These tutorials provide narrative explanations, sample code, and expected output for the most common MNE-Python analysis tasks. The emphasis here is on thorough explanations that get you up to speed quickly, at the expense of covering only a limited number of topics. The sections and tutorials are arranged in a fixed order, so in theory a new user should be able to progress through in order without encountering any cases where background knowledge is assumed and unexplained. More experienced users (i.e., those with significant experience analyzing EEG/MEG signals with different software) can probably skip around to just the topics they need without too much trouble.
Introductory tutorials¶
These tutorials cover the basic EEG/MEG pipeline for event-related analysis,
introduce the mne.Info
, events, and mne.Annotations
data structures, discuss how sensor locations are handled, and introduce some
of the configuration options available.
Reading data for different recording systems¶
These tutorials cover the basics of loading EEG/MEG data into MNE-Python for various recording devices.
Working with continuous data¶
These tutorials cover the basics of loading EEG/MEG data into MNE-Python, and
how to query, manipulate, annotate, plot, and export continuous data in the
Raw
format.
Preprocessing¶
These tutorials cover various preprocessing techniques for continuous data, as well as some diagnostic plotting methods.
Segmenting continuous data into epochs¶
These tutorials cover epoched data, and how it differs from working with continuous data.
Estimating evoked responses¶
These tutorials cover estimates of evoked responses (i.e., averages across several repetitions of an experimental condition).
Time-frequency analysis¶
These tutorials cover frequency and time-frequency analysis of neural signals.
Forward models and source spaces¶
These tutorials cover how the cortical source locations (source spaces) and forward models (AKA leadfield matrices) are defined.
Source localization and inverses¶
These tutorials cover estimation of cortical activity from sensor recordings.
Statistical analysis of sensor data¶
These tutorials describe some approaches to statistical analysis of sensor-level data.
Statistical analysis of source estimates¶
These tutorials cover within-subject statistical analysis of source estimates.
Machine learning models of neural activity¶
These tutorials cover some of the machine learning methods available in MNE-Python.
Simulation¶
These tutorials describe how to populate MNE-Python data structures with arbitrary data, using the array-based constructors and the simulation submodule.


Team Rating
Community Rating
Product Rating
Wallet Rating
Team Rating
Community Rating
Product Rating
Wallet Rating
thumb_up
Team
Community
Product
Wallet
thumb_down
Team
Community
Product
Wallet
Team Rating
Community Rating
Product Rating
Wallet Rating


Files CCore/inc/gadget/Meta.h CCore/src/gadget/Meta.cpp
This file contains a collection of meta-tools. Meta-programming is a programming in compile-time. Sometimes you need to derive a constant, type or function, based on the argument type properties. Meta supports solutions of such kind of tasks. It is enclosed in the namespace Meta (::CCore::Meta).
Meta-programming produces its results as Meta-classes, i.g. a classes with public static members, like constants, inner types or static functions. Consider Meta-class as a compound return value, comprised by several values. If such class has some main return value, it is usually named as Ret or RetType.
Meta-function is a class template or a template typedef, which, been instantiated, gives some Meta-class. Instantiation of Meta-function is a "compile-time call" of it.
In some cases Meta-function is a template typedef, which produces a single resulting type.
Inheritance is used to include a result in a Meta-function.
template <class S,class T> struct CommonType;
CommonType is a Meta-function. It is empty if the input types are distinct. But if they are the same, it returns the common type.
// // typename CommonType<T,T>::Ret == T //
Empty is an empty structure. It is used to return a no-value. Usually it is generated if a meta-function cannot produce a reasonable result, i.e. in the case of the out of domain of definition call.
struct Empty
{
};
Meta-function DefType returns its argument as a type:
template <class T>
struct DefType
{
typedef T Ret;
};
//
// typename DefType<T>::Ret == T
//
Meta-function DefConst returns its second argument as a constant, first argument defines the constant type:
template <class SUInt,SUInt Val>
struct DefConst
{
enum RetType : SUInt { Ret = Val };
};
//
// DefConst<T,Val>::Ret == Val
//
True, False, If and IfNot produce a boolean result:
/* struct True */ struct True { enum RetType { Ret = true }; }; /* struct False */ struct False { enum RetType { Ret = false }; }; /* struct If<bool Cond> */ template <> struct If<true> : True {}; template <> struct If<false> : False {}; /* struct IfNot<bool Cond> */ template <> struct IfNot<true> : False {}; template <> struct IfNot<false> : True {};
Select is the one of the most important Meta-functions, it produces one of the given type based on the given condition:
template <bool Cond,class T1,class T2>
using Select = typename ImpSelect<Cond,T1,T2>::Ret ;
//
// Select<true,T1,T2> == T1
//
// Select<false,T1,T2> == T2
//
Select is widely used in the recursive meta-programming. It is implemented using template typedef, that eliminates the usage of the keyword typename.
SelectList selects a type from the given type list by its zero-based index.
template <int Index,class ... TT>
using SelectList = typename ImpSelectList<Index,TT...>::Ret ;
//
// SelectList<0,T0,T1,T2> == T0
//
// SelectList<1,T0,T1,T2> == T1
//
// SelectList<2,T0,T1,T2> == T2
//
BuildIf is another conditional tool: it performs instantiation, if the condition is true.
template <bool Cond,template <class> class F,class T> struct BuildIf;
template <template <class> class F,class T>
struct BuildIf<true,F,T> : F<T> {};
template <template <class> class F,class T>
struct BuildIf<false,F,T> {};
//
// BuildIf<true,F,T> inherits F<T>
//
// BuildIf<false,F,T> is empty
//
Has is used to determine a property of the type.
template <class T,class ProbeSet>
struct Has
{
enum RetType { Ret = ProbeSet::template Probe<T>(0) };
};
Here is an example. Assume you want to know, if the given type has a non-static method, named setInt of signature int(int). You can evaluate it, using the following ProbeSet:
struct ProbeSet_setInt { template <class T,int (T::*M)(int)> struct Host; template <class T> static constexpr bool Probe(...) { return false; } template <class T> static constexpr bool Probe(Host<T,&T::setInt> *) { return true; } };
Then apply Has to get the result:
// // Has<T,ProbeSet_setInt>::Ret //
This solution is temporary, until concepts will be implemented in the C++.
ProbeIndex is an extended variant of Has. It can be used with multiple template type parameters.
template <class ProbeSet,class ... TT>
struct ProbeIndex
{
enum RetType { Ret = ProbeSet::template Probe<TT...>(0) };
};
EnableIf allows poor simulation of concepts — the feature still missing in C++, it can be used to enable or disable a function instantiation.
template <bool Cond,class RetType=int>
using EnableIf = typename Select<Cond, DefType<RetType> , Empty >::Ret ;
Usually it is used to specify a function return value:
template <class T> EnableIf< SomeCond<T>::Ret , T > SomeFunction(T arg);
It is also a template typedef, so you get the result without extra typing.
TypeListLen is a length of the type list:
template <class ... TT>
struct TypeListLen : DefConst<unsigned,( sizeof...(TT) )> {};
//
// TypeListLen<>::Ret == 0
//
//
// TypeListLen<T1>::Ret == 1
//
//
// TypeListLen<T1,T2>::Ret == 2
//
// and so on
//
IndexOf searches the type in the given type list and returns its 1-based index. If the type is not in the list, nothing is returned.
template <class T,class ... TT> struct IndexOf<T,TT...>;
//
// IndexOf<short, short,int,long>::Ret == 1
//
// IndexOf<int, short,int,long>::Ret == 2
//
// IndexOf<long, short,int,long>::Ret == 3
//
UnRef removes reference modifier from the type, if any.
template <class T>
using UnRef = typename std::remove_reference<T>::type ;
UnConst removes const modifier from the type, if any.
template <class T>
using UnConst = typename std::remove_const<T>::type ;
RangeObjType is another template typedef, it gives the object type of range or pointer kind of types:
template <class R>
using RangeObjType = .... ;
struct SomeRange
{
T & operator * ();
};
//
// RangeObjType<SomeRange> == T
//
IsSInt is true on signed integral types. By default, such types are signed char, short, int, long, long long and char if it is signed. But target may extend this list using a specialization of the ExtraInt::Prop<T> structure in the header file PlatformBase.h.
template <class T> struct IsSInt;
//
// IsSInt<T>::Ret == true if T is a signed integral type
//
IsUInt is true on unsigned integral types. By default, such types are unsigned char, unsigned short, unsigned, unsigned long, unsigned long long and char if it is unsigned. But target may extend this list using a specialization of the ExtraInt::Prop<T> structure in the header file PlatformBase.h.
template <class T> struct IsUInt;
//
// IsUInt<T>::Ret == true if T is an unsigned integral type
//
IsSUInt is true if one of IsSInt or IsUInt is true, i.g. if the argument is an integral type. bool is not considered as integral.
template <class T> struct IsSUInt;
//
// IsSUInt<T>::Ret == true if T is an integral type
//
SIntToUInt returns an unsigned pair of the given signed integral type. It is empty if the type is not a signed integral.
template <class T> struct SIntToUInt;
//
// SIntToUInt<T> is empty if IsSInt<T>::Ret == false
//
// typename SIntToUInt<T>::SType == "signed T"
//
// typename SIntToUInt<T>::UType == "unsigned T"
//
PromoteUInt returns a promote type for the given unsigned integral type. Promote type is a unsigend int, unsigend long or unsigend long long "greater or equal" than the original type.
template <class T> struct PromoteUInt;
//
// PromoteUInt<T> is empty if IsUInt<T>::Ret == false
//
// typename PromoteUInt<T>::Type == "promote type of T"
//
PromoteSInt returns a promote type for the given signed integral type. Signed promote type is a int, long or long long "greater or equal" than the original type. Unsigned promote type is a unsigend int, unsigend long or unsigend long long "greater or equal" than the original type.
template <class T> struct PromoteSInt;
//
// PromoteSInt<T> is empty if IsSInt<T>::Ret == false
//
// typename PromoteSInt<T>::SType == "signed promote type of T"
//
// typename PromoteSInt<T>::UType == "unsigned promote type of T"
//
UIntBits returns the number of bits in the given unsigned integral type.
template <class T> struct UIntBits;
//
// UIntBits<T>::Ret == "bit size of T"
//
HexWidth returns the number of hex digits, required for the type value representation. The type must be unsigned integral.
template <class UInt> struct HexWidth;
//
// HexWidth<T>::Ret == "hex size of T"
//
Target must provide the following entities in the its header file PlatformBase.h.
namespace CCore { namespace Bits { const unsigned unsigned_char = "bit size of type char" ; const unsigned unsigned_short = "bit size of type short" ; const unsigned unsigned_int = "bit size of type int" ; const unsigned unsigned_long = "bit size of type long" ; const unsigned unsigned_long_long = "bit size of type long long" ; } // namespace Bits } // namespace CCore
The following structure is used to extend the list of types, recognized as integral types:
namespace CCore { namespace ExtraInt { template <class T> struct Prop { enum { IsSigned = false, IsUnsigned = false }; }; template <> struct Prop<"extra sint type"> { enum { IsSigned = true, IsUnsigned = false, }; typedef "signed type" SType; typedef "unsigned type" UType; typedef "signed promote type" PromoteSType; typedef "unsigned promote type" PromoteUType; }; template <> struct Prop<"extra uint type"> { enum { IsSigned = false, IsUnsigned = true, Bits = "bit size" }; typedef "promote type" PromoteUType; }; } // namespace ExtraInt } // namespace CCore


Hi! My name is Ryan, and I am a Product Designer. Currently, I design products at littleBits where I have focused on our educational products. I'm also doing some consulting for Anji Play, and running a reading club about pedagogy called Pedagogy Play Lab. I studied Industrial Design at RISD, where I served as President at RISD STEAM and RISD Quickies. I've also done contract Industrial Design and Branding work for awesome tech startups Polymaker and Supply. I'm interested in educational technology, human-computer interaction, and human-centered product design.
Say hi:
Email,
twitter,
fork me.


Serving Retina Images to Devices that Need them
07 Apr 2014Update: Chrome 34
(released around April 9 2014) is supposed to have support for the srcset
attribute. Read on to find out what that means.
 When did fuzzy images become a capital crime? And it’s not like I’m talking horrible, pixelated images, no, just a bit fuzzy which all of a sudden is completely unacceptable.
This is an issue that affects mainly the Macs because on the iPad and iPhone, even with Retina displays, the screen size and pixel density are such that a non-retina image is a lot less noticeable.
It would be interesting to figure out what percentage of our web viewers actually have a retina display Mac before we go and spend hours trying to cater to a small minority.
So what’s a web developer to do?
Option 1
Just serve huge images to everybody. This is the easiest thing to do, but you still need some work for things to look good on the bloody retina displays, you need to set your image width and height to half the actual size or it will still look (oh no!) fuzzy.
Here’s an example, say your image is 1024 x 960 pixels, this is how you need to present it.
Of course you want to avoid HTML attributes and inline CSS so you can create a class for it.
The downside to this method is, of course, you’re serving huge images, even to the majority who don’t have a fancy new retina display.
And the width: 50%
in the CSS won’t help you get the image at the size you want, that’s a bit tricker and you might have to do it on an individual basis which is bad news all around.
Option 2
Use Safari’s fancy new-fangled srcset
tag to serve retina images. It sounds great. Supposedly webkit has this new tag where you specify the name of the retina image and the browser will only load the needed one. It’s supposed to be like this:
Note the 2x
at the end of the name, no, that’s not a typo, that’s what the spec says to use. Safari is supposed to look at this and determine which image it will serve depending on the device. Sounds awesome. The best part: it will not load both images, just the one it needs to render, everybody wins.
The bad news: this doesn’t seem to work, that is, there is no support on the main browsers for it at the moment, which is a bit strange considering that this change came out for webkit in August 2013. Safari 7 in Mavericks was supposed to have it but it doesn’t, nor does Safari for iOS 7.1 either. I read somewhere that the latest version of Chrome (or Chrmomium, the poster wasn’t too sure) supports this but in my tests with Chrome 33.0.1750.152
downloaded yesterday it doesn’t work.
So, useless for the time being, keep it around for the future if you already changed your web pages.
Read the blog post straight from the horses mouth.
Option 3
Use Javascript to serve the retina images only for retina devices. This seems to be the best option so far (see option 2 as to why that is). We use a little javascript to overwrite the image source tag if we detect a retina device.
This is a javascript I stole from my brother who in turn stole it from some dude on the internet. I had to change it to actually make it work because, as usual, the code he sent me was full of errors.

Alright, for you Javascript perverts:
I’ve left the console logs in there so you can see if the damn thing is working or not.
What it does is very simple:
Since we had already used the new-fangled, useless srcset
tag, we leverage that to overwrite the image source, it works like this:
- Checks to see if the device is a retina device based on Pixel Ratio being greater than 1
- then picks up all the images in the page
- checks to see if they have the
srcset
attribute - if they do have the attribute, it takes the image name from that attribute,
- removes the space and
2x
at the end of the name, hence grabbing the name of the high-res image - and overwrites the
src
attribute with this new, high-res image.
Simple. The nice thing about this script is that it’s short, simple and you can leave the srcset
in there for the future when the major browsers start supporting it, at which time you simply remove the call for the javascript and things should work (fingers crossed).
 Or if you don’t, rightly, trust my Javascript skills?
Then your best bet is probably to use javascript written by someone who actually knows javascript, like this one right here: retina.js which seems to be the most popular out there.
Downsides to both this script and the retina.js one, a couple:
- The browser will load both images, making your pages take longer to load, even if you’re not serving the retina images, this sucks!
- Pages will be slower on all devices, this is especially bad on mobile devices which have less capable CPUs and already takes them longer to render images and pages.
However, this is the best option I’ve found so far to serve retina images. If you know of something better, by all means, get in touch and let us know.
Cheers.


The Internet is considered to be one of the greatest inventions of the twenty-first century. The greatness of it is on the same plane as the printing press or even the wheel because of how impactful it is in shaping our civilization.
Dating back to the 1950s, a psychologist and computer scientist named J.C.R. Licklider envisioned that computers would allow us to communicate better and allow all computers to connect together to help share information better. His vision wasn't realized until 1960s when Leonard Kleinrock began applying his queuing theory to computers that led to the base of data transmission. Queuing theory is similar in concept to that of the USPS mailing process where the mail queue in line until they are released into their designated locations. He implemented two techniques, demand access and distributed control, in order to speed up the network to aid the data transmission process.
The military in the early 60s, America feared a Soviet nuclear attack would level American cities that the telephone system would be so damaged that the military would be unable to launch a counter-attack. To assure retaliation, America needed an indestructible communications network. Paul Baran was hired to see if one could be built.
In the early 1960s surfing was the search for the perfect wave mail was only delivered by the post office online meant waiting behind someone at the movie theater and a server was a waitress at your favorite drive-in. Frustrations of a single ARPA - Advanced Research Projects - scientist Bob Taylor, due to no two computers could talk to each other, Taylor had to move from terminal to terminal to work on a different computer. He knew a single terminal could suffice if all the computers were in a common Network. Taylor wanted to build a network because he thought it was crazy that he had to have three different terminals to talk to three different machines instead of one per mole. Taylor asked his boss for money to build a computer network arguing that it could save ARPA time money and resources, and he was allocated 1 million dollars to turn the theories of a computer network into a reality. This was enough to start a chain reaction that changed the world of course at the time nobody knew it we all knew that we were dealing with very powerful technology.
In April 1971 the ARPANET had 18 mainframe computers hooked into the network. Bob Metcalfe, a grad student, who connected MIT's computer to it beyond transferring data files among its but then a new capability was added. The first killer application that took to the masses and increased the usefulness of computer networking to a new level that killer app was email. Ray Tomlinson created the first email program and gave the world a new icon for the Information Age the @ sign.
The first international conference on computers and communication sponsored by ARPA sparked many interests including big telephone companies who were more interested in its failure than success. After the conference, the development of computer networks took off and network soon began to multiply throughout the Western world. The National Science Foundation made being on their network a requisite for receiving grant money. Soon others emerged.
On June 9th 1992 Congress passed a bill taking the internet out of the exclusive hands of government and into the public. The following November President Bush signed it into law. The Internet as turned loose into the the open world for commercial use for whatever use. A huge surge of commercial energy and competition and progress by allowing free enterprise and individual’s access to the Internet. The seeds were planted that would flourish into many new and previously unimaginable. A physicist named Tim berners-lee at the CERN Research Institute in Switzerland created an easier way to access all the information in one hub. He developed the software to more easily follow threads of knowledge within the information stored throughout the internet. He named his invention the World Wide Web. It started growing on itself that went from just Tim in his little computer to a worldwide phenomenon carrying a billions going on trillions of dollars of Commerce. The World Wide Web made it easier to follow threads of information.


References
1
Mombeshora, S., & Le Bel, S. (2009). Parks-people conflicts: the case of Gonarezhou National Park and the Chitsa community in south-east Zimbabwe. Topics in Biodiversity and Conservation, 65–87. doi:10.1007/978-94-007-0174-8_5
Download


Photo Gallery
No thumbnail added.
{{store.description}}
No description added.
Product Range
{{categories.join(', ') || 'No Category selected'}}
Store Location


Empirical Likelihood emplike
¶
Introduction¶
Empirical likelihood is a method of nonparametric inference and estimation that lifts the
obligation of having to specify a family of underlying distributions. Moreover, empirical
likelihood methods do not require re-sampling but still
uniquely determine confidence regions whose shape mirrors the shape of the data.
In essence, empirical likelihood attempts to combine the benefits of parametric
and nonparametric methods while limiting their shortcomings. The main difficulties of
empirical likelihood is the computationally intensive methods required to conduct inference.
statsmodels.emplike
attempts to provide a user-friendly interface that allows the
end user to effectively conduct empirical likelihood analysis without having to concern
themselves with the computational burdens.
Currently, emplike
provides methods to conduct hypothesis tests and form confidence
intervals for descriptive statistics. Empirical likelihood estimation and inference
in a regression, accelerated failure time and instrumental variable model are
currently under development.
References¶
The main reference for empirical likelihood is:
Owen, A.B. "Empirical Likelihood." Chapman and Hall, 2001.
Examples¶
import numpy as np
import statsmodels.api as sm
# Generate Data
x = np.random.standard_normal(50)
# initiate EL
el = sm.emplike.DescStat(x)
# confidence interval for the mean
el.ci_mean()
# test variance is 1
el.test_var(1)
Module Reference¶
descriptive.DescStat (endog) |
Returns an instance to conduct inference on descriptive statistics via empirical likelihood. |
descriptive.DescStatUV (endog) |
A class to compute confidence intervals and hypothesis tests involving mean, variance, kurtosis and skewness of a univariate random variable. |
descriptive.DescStatMV (endog) |
A class for conducting inference on multivariate means and correlation. |


An Interactive Introduction To Quantum Computing
By David Kemp
@david_b_kemp
This article was originally written in 2014, but has had some minor improvements in December 2017 and January 2018 when I received some useful feedback after the article had unexpectedly been posted on Hacker News in December 2017.
Heard of quantum computers?
Heard that they are faster than conventional computers?
Perhaps you have heard of quantum bits (abbreviated to qubits).
Maybe you have even heard of the puzzling notion that qubits can have the values 0 and 1 both at the same time.
Let me try to explain what this really means.
This is part one of a two part series for those that want to learn a little about quantum computing, but lack the mathematics and quantum physics background required by many of the introductions out there. It covers some of the basics of quantum computing, such as qubits, state phases, and quantum interference. Part 2 goes on to look at quantum search.
Qubits
I assume you know what plain old ordinary binary bits are. Sorry, But I cannot assume you know nothing at all!
Conventional bits are implemented using many different approaches: e.g. voltages on a wire, pulses of light on a glass fibre, etc. etc.
Just like bits, qubits have a binary state.
Qubits represent 0 and 1 using quantum phenomenon like the nuclear spin direction of individual atoms.
E.g. use “clockwise” for 0 and “anti clockwise” for 1.
The NOT operator
Consider the conventional NOT (or bit-flip) operator. 0 and 1 can represent logical true and false. NOT true is false, and NOT false is true. And so, NOT of 1 is 0, and NOT of 0 is 1.
For example, performing a NOT operation on the right most bit of the binary number 111 flips the target bit and results in 110.
In what follows, it will be convenient to represent the state of a system by listing all possible states and placing a blue disk next to the current state.
Click the button labelled “Not bita” to apply the NOT operation to the left bit, and click the button labelled “Not bitb” to apply the NOT operation to the right bit:
There is nothing quantum mechanical about these first few interactive examples. Their main purpose is to familiarise you with interactive animations I use in this article.
Random NOT
Random NOT: A NOT operator that has a specified chance of flipping a bit.
Although not very common, the “Random NOT” is still just a classical (non-quantum) operator, but it will help me explain the workings of some quantum operators.
Consider applying a Random NOT twice to a bit whose initial value is 0, where the operator has, for instance, a 30% chance of flipping the bit. What is the probability of the final state being 0?
There are a couple of possible scenarios. For instance, the first Random NOT might flip the bit from 0 to 1, and the second Random NOT might flip the bit back to 0. We represent this as:
0 → 1 → 0
There are two paths leading to a final state of 0:
- 0 → 0 → 0 with probability of 0.7 x 0.7 = 0.49
- 0 → 1 → 0 with probability of 0.3 x 0.3 = 0.09
And so the final state will be 0 with a probability of 49% + 9% = 58%
Random NOT (your turn)
Next we provide an interactive animation of the Random NOT operator.
The blue disk now splits in two so that we can track the different possible outcomes.
The probability of being in a state is represented by the radius of the disk.
Press the “Random NOT” button multiple times and note how the arrows add head to tail.
Still nothing quantum mechanical about any of this. We are still just warming up.
Measurement
We have seen how a random NOT operator can cause a conventional computer to have various probabilities of being in different states. Of course in reality it is in only one of those states. We just don't know which one. Strangely, this is an assumption about reality that we will need to reconsider when we look at qubits.
If you peek at the system to determine its actual state, then the probabilities all collapse so that one state (the observed state) is deemed to now have a probability of 1, and all the others are deemed to have a probability of 0.
Remember, the larger the blue disk, the more likely the system will turn out to be in that state.
In quantum computing, the word measurement refers to this act of peeking.
Press the “Random NOT” button multiple times and then press the “measurement” button.
Note that there is still nothing quantum mechanical about this yet. That comes next!
Hadamard of 0
The “Hadamard operator” is a special quantum operator that can be applied to qubits.
Warning: this first look at quantum operators will be pretty boring. I promise it will get interesting soon!
As you will see below, the Hadamard initially acts like a Random NOT with 50% chance of success.
In this interactive example, I purposely disable the Hadamard button after you press it. Later in this article we will see what happens when you apply the Hadamard twice in a row.
Nothing unusual about that was there?
But you will be surprised by what comes next...
Hadamard of 1
Things start to become weird when you look at the Hadamard of 1.
Look carefully at the arrow directions.
Huh?
Phase
Puzzled? You should be if this is all new to you. Please hang in there for a while longer.
The arrow directions represent what physicists call phase:
- it is an abstract concept of quantum mechanics.
- it has no “common sense” interpretation.
- it can only be measured indirectly.
In the case of nuclear spin, phases can be manipulated by applying electric and/or magnetic fields.
We will see the importance of phase in a moment, but first let's look at another interesting quantum computing operator...
T Operator
The T operator rotates the phase of 1, but leaves 0 untouched.
Note how it does not affect the probabilities at all.
Measurement Revisited
Recall:
- Measurement causes the system to collapse to the observed state.
- The larger the blue disk, the more likely the system will collapse to that state.
- Once the system has collapsed to a particular state, it will remain in that state until another operation is performed.
Important: The likelihood of a state being observed is entirely determined by the size of the blue disk, and is completely unaffected by the direction of the arrow.
Quantum Interference
Consider what happens when we apply a Hadamard operation twice in a row.
Let's assume that a qubit is initially known to definitely have the value 0. If you were to apply the Hadamard to it twice in a row, then there are four equally likely scenarios (Recall that “x → y → z” means “the qubit starts with a value x, the first Hadamard results in the qubit having the value y, and the second Hadamard results in the qubit having the value z”):
- 0 → 0 → 0
- 0 → 0 → 1
- 0 → 1 → 0
- 0 → 1 → 1
So the final value should be equally likely to be 0 or 1 but, in reality, applying the Hadamard operator twice in a row always returns the qubit to its original value. In our case, where the qubit is initially 0, two applications of the Hadamard will result in it being 0 again.
Try it out. Press the “Apply Hadamard” button twice and watch it return to having a 100% likelihood of having the value 0.
Totally confused?

Niels Bohr
What is going on here?
The state of the qubit after the first Hadamard seems to have a 50% chance of being 0 and a 50% chance of being 1.
The second Hadamard is applied to both the 0 and 1 states and the results are combined.
The arrows still add head to tail.
The two different scenarios ending in a 1 state have opposite phases and so they cancel each other out.
This process of phases causing possible outcomes to cancel or re-enforce is what physicists call interference.
This is what philosophers of physics loose sleep over.
By the way, the mathematically inclined may be worried about all the probabilities not adding up to 1 any more. The trick is that the arrow lengths now have to represent the square roots of the probabilities. We will briefly cover this in more detail in the section entitled Some mathematics in Part 2.
Hadamard of 1 (revisited)
It is instructive to observe the effects of applying a Hadamard twice in a row when the initial value is 1. This time, the qubit returns to 1:
Different kinds of uncertainty
We are actually dealing with two different kinds of uncertainty:
- It is possible that a bit, and even a qubit, may be in a fixed state of 0 or 1, but that you simply do not know which one it is.
- However, it is also possible for a qubit to be in what is called a “superposition” of both 0 and 1. Such a qubit is in a strange combination of both 0 and 1.
Small Diversion: Superposition of Locations
So far, the rather abstract phenomenon of nuclear spin is the only approach that I have mentioned for creating qubits.
Quantum physics seems even more bizarre when you discover that physical objects can be in superpositions of different locations.
The photons travelling through an “interferometer” are in superpositions of locations that can be kilometres apart (as they are in the LIGO interferometer).
A simple interferometer is shown below. Photons are emitted by a light source (e.g. a laser) that is pointing at a “half silvered mirror”, which reflects some of the light and lets some of the light through.
Individual photons end up in a superposition of having been reflected and having been let through. A couple more mirrors are used to bring the split light beam back together at a detector. The positions of the mirrors and the detector all effect the lengths of the two different paths, so that one path can be longer than the other. Like the T operator described earlier, a change in the relative path lengths will alter the relative phases of the two photon states. A difference equal to the wavelength of light is enough to change the relative phases by an entire 360 degrees. If the phases are exactly opposite, then they will cancel each other out, and the detector will not detect anything. The resulting effect will be an alternating series of light and dark concentric rings like those shown below.
This interference effect even happens when the light source is slowly emitting photons one at a time.
It is tempting to think that the half silvered mirror is splitting each photon in two and that the interference effects are caused by the two photons interacting with each other. But this is not what happens.
If detectors are placed on the two paths, and the light source is slowly emitting photons one at a time, then the detectors only ever detect a photon on one path or the other. They never detect two photons at once! (Well, they very occasionally do due to the light source very occasionally emitting two at once, but the frequency that this should happen is easily predicted and verified.)
If detectors are placed on either or both of the two paths, then the act of detecting the presence (or absence) of the photon causes the superposition to collapse to one or the other, and the interference effects disappear, even if the detector lets the photon continue on.
It gets even more interesting when you have more than one qubit
The quantum weirdness rises to a whole new level when there are two or more qubits interacting. This is explored in Part 2.
If you want to experiment with various single qubit quantum operations first, then have a play with the Quantum Computer Gate Playground
Attributions
Michelson Interferometer: http://commons.wikimedia.org/wiki/File:Michaelson_with_letters.jpg
Interference Pattern: http://commons.wikimedia.org/wiki/File:Zonenplatte_Cosinus.png


| URL | Page Title |
|---|---|
/projects/iam/ |
I Am |
/projects/miniecs/ |
Mini ECS. |
/projects/evolearning/ |
Evo Learning |
/projects/wwix/ |
World War IX |
/projects/displaysim/ |
Display Sim |
/projects/updateall/ |
Update All |
/tags/ |
|
/tags/3D simulation/ |
Tagged “3D simulation” |
/tags/Retro Gaming/ |
Tagged “Retro Gaming” |
/tags/Game/ |
Tagged “Game” |
/tags/Unity 3D/ |
Tagged “Unity 3D” |
/tags/Deep Learning/ |
Tagged “Deep Learning” |
/tags/Library/ |
Tagged “Library” |
/tags/MiSTer FPGA/ |
Tagged “MiSTer FPGA” |
/gamedev/ |
|
/ |
|
/about/ |


These elements have different child elements and execute their scripts in unique contexts.
One of the elements is nested in an element of the same type, and the two are still mutually independent.


SAVING PRIVATE RYAN ****1/2 (out of five stars) A review by Jamey Hughton
Starring-Tom Hanks, Tom Sizemore, Edward Burns, Matt Damon, Jeremy Davies Giovanni Ribisi, Barry Pepper, Adam Goldberg and Vin Diesel Director-Steven Spielberg Rated 18A
More MOVIE VIEWS by Jamey Hughton at: http://welcome.to/movieviews
In Steven Spielberg's newest film, he demonstrates what the word war really means.  And then he pits us there, right in the middle of the most realistic battle scene ever experienced on screen.
That scene is the landing on Omaha Beach, which starts off Saving Private Ryan and then doesn't end for a painful and unquestionably brutal 25 minutes into the movie. The deaths are not quick and painless like in other war movies. Men have their limbs blown off left and right, blood splatters in every direction, young soldiers lay on the ground holding their own guts screaming for their "mommy", all of which sends shivers down your spine. Spielberg's three hour WWII epic is a masterful achievement that ranks easily as one of the best movies of the year. But that doesn't mean it's perfect. There are some moments when you feel the final impact should have been more dramatically satisfying. But still, after two films (The Lost World and Amistad) that I thought weren't up to Spielberg's average quota, this one will set him back on track.
The Private Ryan of the title is one of four brothers fighting in World War II. After the other three are killed in battle, a squad is sent out to recover the remaining Ryan (played by Matt Damon) and bring him back safely to his family. Leading the platoon is shaky captain Miller (Tom Hanks, wonderful), and a loyal soldier who always sticks by his side (the surprisingly commanding Tom Sizemore). Jeremy Davies plays a frightened translator to such a stunning effect for a rookie player, and the young cast shows they are capable of the most grating of tasks: to hold their own in a Spielberg movie.
When the squad finally finds Ryan, 2/3 of the way into this three-hour film, he turns out to be a stubborn yet likeable lad who doesn't want to leave his platoon behind. This means Hanks and his team must stay to defend one of the last remaining bridges from incoming Nazi's, in a final sequence that is one of the most incredible scenes I've ever witnessed on screen. The editing is marvelous, done to near perfection, and once the smoke clears the final impact of the amazing battle will stay with you long after you exit the theater.
Saving Private Ryan is one of the best war films of our time, standing strong next to Glory and Platoon. When Steven Spielberg has a vision, it usually seems to work out. Unlike his mindless rampaging dino movie of 1997, this is a true vision. And it seemed to work out just fine.
More Weekly Video Pics at: MOVIE VIEWS by Jamey Hughton http://welcome.to/movieviews
Jamey Hughton writes a Published Column in The StarPhoenix (Saskatoon, Sk Canada) and was a 1999 Writing Finalist in the Canadian YTV Achievement Awards.
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


In the course you will learn scala from scratch which covers classes, trait, function, higher order functions, pattern matching recursion, map, flatmap and much more.
In the course you will learn scala from scratch which covers classes, trait, function, higher order functions, pattern matching recursion, map, flatmap and much more.
This course covers Akka Actors, supervison, parent child creation, routing, data persistence, remoting, clustering, event sourcing, circuit breaker, Akka stream and Akka http
This course covers Akka Actors, supervison, parent child creation, routing, data persistence, remoting, clustering, event sourcing, circuit breaker, Akka stream and Akka http
In the course you will learn Play anatomy, Http programming, async http programming, creating play actions, routes, result, configuration, working with json and dependecny injection
In the course you will learn Play anatomy, Http programming, async http programming, creating play actions, routes, result, configuration, working with json and dependecny injection
In the course you will learn scala from scratch which covers classes, trait, function,higher order functions, pattern matching recursion, map, flatmap and much more.
In the course you will learn scala from scratch which covers classes, trait, function,higher order functions, pattern matching recursion, map, flatmap and much more.
In the course you will learn scala from scratch which covers classes, trait, function,higher order functions, pattern matching recursion, map, flatmap and much more.
In the course you will learn scala from scratch which covers classes, trait, function,higher order functions, pattern matching recursion, map, flatmap and much more.


How we help you to share money with your friends
Help us to achieve our goal of
Wally can help you manage your savings so you always know how much money you have and how many you still receive from your friends
It is the best app to keep track of payments between roommates , a holiday with friends and much more
It's easy, fast and above, all free


John Higgins
Bio
Articles & Reports
Books & Chapters
Services & Materials
Collaborators
Contact
Contact
I can be contacted at<EMAIL_ADDRESS>or fill out the form below
Message:
Your Name:
Email:
Submit
Posted your message successfully!
Error
Sorry there was an error sending your form.


The simplest, most fundamental answer is that it's already there! The web has a history of integration and development specifically with JavaScript, and the language is basically defaulted to be the go to for front-end development. JavaScript is the only language with which you can pop open a broswer and start working with right away.
It is important for people to know the distinction between core JavaScript and client-side JavaScript because this is crucial in understanding its use in front-end work. Core JavaScript is the fundamental language itself. It is the syntax, logic, typing, and all the other good bits. It is what you use to evolve into things like Node.js.
Client-side JavaScript is JavaScript that has been integrated into browsers. It is, essentially, JavaScript that has been built up and made more versatile, specifically to cope with what browsers do and have to offer. There is a standard and are recommendations for what client-side consists of, but what client-side JavaScript is capable is defined by the specific browser you're working on. An older version of Internet Explorer does not offer the same methods that the newest version of Google Chrome does, for instance. This is why libraries like JQuery exist. It uses the most fundamental JavaScript that every browser offers in order to create uniform functionality across browsers for developers.
Beyond the ubiquitous nature of JavaScript, the language is well liked for web development because it is high-level and dynamic. This means it works in the abstract and executes at the run-time.  Executing at the run-time allows for easier manipulation of the code. As you can imagine, on the web where everything is expected to adapt to constant changes, this is very important.
JavaScript is also dynamically, weakly typed, and this is big. Essentially this means, there is more fluidity in JavaScript when it comes to interpreting the type of an object. Many functions are type dependent. In the world of web development there has to be fluidity between all that is going on. JavaScript allows for that.
These reasons are just the tip of the iceberg, but they help explain why JavaScript is so popular for web development. It is a powerful tool that allows for a lot of versatilty. It is shaped for web development. Any good programmer takes what it has to offer and runs!


GitHub
linkedin
[ LOGIQUE ]
Home
About
Portfolio
Contact
Get In Touch
Here are my contact information. Also my GitHub, my personal website and my LinkedIn.
Home
Contact
Send Message
<EMAIL_ADDRESS>(818) 245-2434
GitHub
LinkedIn
Personal website


This is the first week of me having this module. I found out that I am the only business student in this elective and I am ready to embrace the unique experience I will encounter.
This week I learnt about how to stay safe and follow the rules of the Fablab and a brief rundown on how the module is going to be like. I also managed to pass my safety quiz which will allow me to enter Fablab yay!
This week I learnt about the different tools I will get to use during this elective and which one to choose. This is also my first time doing coding of any sorts. I am excited to learn about HTML. Another life skill attain!Belows show me trying to push origin to github and my Sublimetext codes
I learn about CSS this week which is the layout of the website as it helps to decorate the HTML codes, sort of. I also made a Github account and I learnt that most of the companies started off using Github to upload their codes and do testing. I have successfully managed to put my HTML code into a Github website which is avaliable to be viewed by anyone!Below shows my stylesheet
I learn about CAD and did my first Fusion360 sketch which was drawing exercise 1. Afterwards, we started doing many exercises on Fusion360 to learn about the different function and capabilities.
This week we learn about Computer Controlled Cutting which will be used for laser cutting. Later that week, we had a more indepth lesson about Computer Controlled Cutting which will allow us to have deeper knowledge about the technology. Turns out laser cutting have many degrees of power and high accuracy. As I am from business school, this is all very new to me and I find it very interesting!
This week we did learn how to create sketches for 3d printing. I created a sketch of a chess piece where it will be 3d printed later on after learning how to use the machine and passing the quiz over the holidays. Below shows the example of my sketches.
This week i learn about laser cutting. How it would be done from creating the sketch to making the outline hairline for laser cutting.
This week we get the chance to do the quiz for 3D printing. I managed to pass the quiz which enables me to book for practical lesson before being able to use the 3d printer for my own project. I learnt many things about what to do and not to do when operating the 3d printer. I managed to pass this quiz with 19/20 as per stated before
Vacation week, rest time.
This week we get the chance to do the quiz for Laser cutting. I managed to pass the quiz which enables me to book for practical lesson before being able to use the laser cutter for my own project. I learnt many things about what to do and not to do when operating the laser cutter.
This week we got the chance to do laser cutting where i cut my own music box. This is very exciting! I first designed the box before loading it into the computer at fablab to do some final editings and measurements of the 3mm plywood before laser cutting my music box which turns out great! Belows show my process and my music box SVG
This week we learnt about Basic Electronics, Soldering and Breadboarding. Below shows what i did for that lesson and im very glad to have this opportunity to learn how to do sketches of the arduino board to check if it works before physically plugging it all in. This is also one of my tinkercad design for CA2.
I got the chance to touch an actual Arduino board. I also tried to use ultrasonic sensor to detect my hand and buzzer to emit sound. Very interesting experience!
I managed to power up the LCD display where it would show the moisture level of the soil and display it.
This week i continued on my final project and i managed to setup and got my soil moisture sensor to work.
I attempted to project the animation on the oled display however i accidentally fried it by swapping VCC and GND. :(
This week is the week we all have been waiting for. To showcase our final project, the one we all have been learning and working towards for.


public static final class R.string
extends java.lang.Object
| Constructor and Description |
|---|
string() |
public static final int abc_action_bar_home_description
public static final int abc_action_bar_home_description_format
public static final int abc_action_bar_home_subtitle_description_format
public static final int abc_action_bar_up_description
public static final int abc_action_menu_overflow_description
public static final int abc_action_mode_done
public static final int abc_activity_chooser_view_see_all
public static final int abc_activitychooserview_choose_application
public static final int abc_capital_off
public static final int abc_capital_on
public static final int abc_font_family_body_1_material
public static final int abc_font_family_body_2_material
public static final int abc_font_family_button_material
public static final int abc_font_family_caption_material
public static final int abc_font_family_display_1_material
public static final int abc_font_family_display_2_material
public static final int abc_font_family_display_3_material
public static final int abc_font_family_display_4_material
public static final int abc_font_family_headline_material
public static final int abc_font_family_menu_material
public static final int abc_font_family_subhead_material
public static final int abc_font_family_title_material
public static final int abc_search_hint
public static final int abc_searchview_description_clear
public static final int abc_searchview_description_query
public static final int abc_searchview_description_search
public static final int abc_searchview_description_submit
public static final int abc_searchview_description_voice
public static final int abc_shareactionprovider_share_with
public static final int abc_shareactionprovider_share_with_application
public static final int abc_toolbar_collapse_description
public static final int accept_request
public static final int action_settings
public static final int app_name
public static final int appbar_scrolling_view_behavior
public static final int bottom_sheet_behavior
public static final int cancel_habit
public static final int character_counter_pattern
public static final int close
public static final int comment_body_test
public static final int comment_header
public static final int common_google_play_services_enable_button
public static final int common_google_play_services_enable_text
public static final int common_google_play_services_enable_title
public static final int common_google_play_services_install_button
public static final int common_google_play_services_install_text
public static final int common_google_play_services_install_title
public static final int common_google_play_services_notification_ticker
public static final int common_google_play_services_unknown_issue
public static final int common_google_play_services_unsupported_text
public static final int common_google_play_services_update_button
public static final int common_google_play_services_update_text
public static final int common_google_play_services_update_title
public static final int common_google_play_services_updating_text
public static final int common_google_play_services_wear_update_text
public static final int common_open_on_phone
public static final int common_signin_button_text
public static final int common_signin_button_text_long
public static final int completed_habits_header
public static final int completed_habits_test_value
public static final int delete_habit
public static final int edit_habit_interval
public static final int edit_usr_btn
public static final int event_image
public static final int followFindOtherUsers
public static final int followName
public static final int followStreak
public static final int google_maps_key
public static final int habit_events_header
public static final int habit_name
public static final int habit_name_hint
public static final int log_habit_event
public static final int missed_habit_header
public static final int missed_habits_test_value
public static final int navigation_drawer_close
public static final int navigation_drawer_open
public static final int open
public static final int password_toggle_content_description
public static final int path_password_eye
public static final int path_password_eye_mask_strike_through
public static final int path_password_eye_mask_visible
public static final int path_password_strike_through
public static final int permission_denied_explanation
public static final int permission_rationale
public static final int pick_habit_start
public static final int progress_bar_prct
public static final int progress_level
public static final int reject_request
public static final int save_habit
public static final int search_btn
public static final int search_menu_title
public static final int send_request
public static final int settings
public static final int signup_dismiss
public static final int signup_explanation
public static final int signup_welcome
public static final int status_bar_notification_info_overflow
public static final int streak_image
public static final int title_activity_current_habits
public static final int title_activity_maps
public static final int usr_photo
public static final int view_habit_stats
public static final int view_he_del_btn
public static final int view_he_edit_btn


[name]
Use an array of [page:Bone bones] to create a skeleton that can be used by a [page:SkinnedMesh].
WebGL only.
Example
// Create a simple "arm"
var bones = [];
var shoulder = new THREE.Bone();
var elbow = new THREE.Bone();
var hand = new THREE.Bone();
shoulder.add( elbow );
elbow.add( hand );
bones.push( shoulder );
bones.push( elbow );
bones.push( hand );
shoulder.position.y = -5;
elbow.position.y = 0;
hand.position.y = 5;
var armSkeleton = new THREE.Skeleton( bones );
// See THREE.SkinnedMesh for an example of usage with a mesh
Constructor
[name]( [page:Array bones], [page:Array boneInverses], [page:Boolean useVertexTexture] )
bones — The array of [page:bone bones]
boneInverses — (optional) An array of [page:Matrix4 Matrix4s]
useVertexTexture — (optional) Whether or not to use a vertex texture in the shader.
The constructor automatically sets up all of the properties below.
Properties
[property:Array bones]
The array of [page:bone bones]
[property:Boolean useVertexTexture]
Whether or not to use a vertex texture in the shader, set in the constructor. Not all devices
support floating point pixel textures. If this option is set then the bone matrices will be packed into
a texture and sent to the shader. This method allows a much larger set of bones to be used. Otherwise
the vertex shader will use uniforms, which do not allow for as many bones to be used. The exact
numbers vary between devices.
[property:Array boneInverses]
An array of [page:Matrix4 Matrix4s] that represent the inverse of the matrixWorld of the individual bones.
[property:Integer boneTextureWidth]
The width of the vertex data texture.
[property:Integer boneTextureHeight]
The height of the vertex data texture.
[property:Float32Array boneMatrices]
The array buffer holding the bone data when using a vertex texture.
[property:DataTexture boneTexture]
The [page:DataTexture] holding the bone data when using a vertex texture.
Methods
[method:null calculateInverses]()
Generates the boneInverses.
[method:null pose]()
Returns the skeleton to the base pose.
[method:null update]()
Updates the [page:Float32Array boneMatrices] and [page:DataTexture boneTexture] after changing the bones.
This is called automatically by the [page:WebGLRenderer] if the skeleton is used with a [page:SkinnedMesh].
[method:Skeleton clone]()
Clone a Skeleton Object.
Source
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]