name: inverse layout: true class: center, middle, inverse --- # Libraries --- # "Batteries Included" -- ## Python has lots of libraries --- ![Long list of libraries](img/python_library_list_1.png) ![Another long list of libraries](img/python_library_list.png) --- # "Batteries Included" ## Python has lots of libraries ## Like, tons. That's not counting PyPI -- ## And it's hard to know where to start --- # What even is a library anyway? --- name: default layout: true --- .left-column[ ## Libraries ] .right-column[ ## What's a library?  The simplest versions of a library are just one file, or a directory with an `__init__.py` file in it. ] -- .right-column[ There are a couple of ways to import and use them. ``` import random random.choice((1,2,3,4,5,6)) ``` ] -- .right-column[ ``` from random import choice choice((1,2,3,4,5,6)) ``` ] -- .right-column[ ``` from random import * choice((1,2,3,4,5,6)) ``` Don't do this last one unless the library supports it! ] --- .left-column[ ## Libraries ] .right-column[ ## Some other methods ``` from random import choice, randint, shuffle choice((1,2,3,4,5,6)) ``` ] -- .right-column[ ``` from random import choice as roll d6 = (1,2,3,4,5,6) roll(d6) ``` ] -- .right-column[ ``` import random, os, sys ``` ] --- .left-column[ ## Libraries ] .right-column[ ## Caveats ] -- .right-column[ **Circular imports** If you import library A into B, and then B into A, you'll get a circular import (actually, an `AttributeError`. The solution is usually to pull the common code out into a third library, or merge the two. ] -- .right-column[ **Library Shadowing** If you create a library with the same name as a built-in, you won't be able to import the built-in: it'll just load the local version. ] --- .left-column[ ## Libraries ] .right-column[ ## Testing libraries One thing that you'll see used quite often is to be able to test your library (or run it as a script) and import it separately. When you import a library, it'll run everything in the file. ] -- .right-column[ To avoid that, you can use the `__name__ == '__main__'` trick. ``` if __name__ == '__main__': # do things you don't want to do on import ``` ] --- .left-column[ ## Libraries ## Using classes ] .right-column[ ## Creating classes Most of the Python libraries use classes. We look at them in detail after lunch, but they're straightforward if you're just using them. ] ??? (We've already used lots of them, eg. when looking at string methods) -- .right-column[ Class instances can be returned from library functions ``` >>> import datetime >>> now = datetime.datetime.now() >>> now datetime.datetime(2017, 8, 2, 21, 10, 3, 271597) >>> type(now)
``` ] -- .right-column[ Or you can import the class and create instances directly. ``` >>> tut_start = datetime.datetime(2017, 8, 3, 9, 0, 0, 0) >>> tut_start datetime.datetime(2017, 8, 3, 9, 0) >>> type(tut_start)
``` ] --- .left-column[ ## Libraries ## Using classes ] .right-column[ ## Using class instances The object that you create from a class is called a Class Instance. It stores specific data like day, month, year, and you can also poke at it with class methods. ``` >>> tut_start.strftime("%Y-%m-%d") '2017-08-03' >>> tut_start.replace(minute=10) datetime.datetime(2017, 8, 3, 9, 10) # returns a new time ``` This is the case for everything in Python, though - numbers, lists, dictionaries, etc. Libraries are just a little more obvious about it. ] --- name: inverse layout: true class: center, middle, inverse --- # Ok, now let's look at some libraries --- # Libraries ## I've split these by function ### .pull-left[ General programming ] ### Data storage ### .pull-left[ Web clients ] ### Web serving ### .pull-left[ Email ] ### Command line ### .pull-left[ UI and games ] ### Anything else? --- name: inverse layout: true class: centerish, top, inverse --- # Programming ## os, sys, os.path, os.walk `os` and `os.path` are used for all sorts of file handling and manipulation: copy, delete, create directories, permissions, testing paths `sys` is mainly used for command line arguments (`sys.argv`) and exiting your program (`sys.exit()`) `os.walk` will recurse over a whole directory and return all the files and directories Lots of examples of these in the code samples --- # Programming ## collections Has extra data structures that can be useful in some situations `defaultdict` is a dictionary that will create new entries rather than raise a `KeyError` `namedtuple` is a lightweight data storage class ``` >>> Point = namedtuple('Point', ['x', 'y']) >>> p = Point(11, y=22) >>> p.x 11 ``` --- # Programming ## random Not just for random numbers, you can shuffle lists, pick a random choice. ## sha / hexdigest Useful for testing identities of things (duplicate files, images) --- # Programming ## pprint Handy debugging tool, makes data structures much more readable. ``` >>> pp = pprint.PrettyPrinter(indent=4) >>> pp.pprint(stuff) ``` ## logging Much easier than rolling your own (or print debugging in production) ``` import logging logging.basicConfig(filename='example.log',level=logging.INFO) logging.debug("This message won't go to the log file") logging.warning("This will, though") ``` --- # Programming ## testing: unittest, doctest, py.test `unittest` is based on the Java package, and has a very similar feel. `doctest` runs tests from the class or function's docstring. `py.test` is a 3rd party package which is a more lightweight, Pythonic version of unittest. ``` def inc(x): return x + 1 def test_answer(): assert inc(3) == 5 ``` --- # Data storage ## json Turns dictionaries into JSON structures (slightly different dictionaries) and back again For configuration, you can just import a dictionary from a `config.py` file. ??? dictionary.__repl__() --- # Data storage ## csv If you need to work with business types, or interoperate with something. It's kind of a linga franca of legacy systems. Just watch out for Excel autoconverting things. And if you're using Python 2, install unicodecsv --- # Data storage ## sqlite For structured data, where you need some normalisation, speed or slight multithreading, but don't want a full database. There's a 3rd party library called peewee which puts a lightweight ORM on top of sqlite. There are libraries for Postgres, MySQL, Oracle, etc. too, though. --- # Data storage ## Others There are other formats, like YAML or Pickle, but don't use them if you can help it. ## TinyDB A lightweight NoSQL library, but not thread safe. Haven't tried it yet, but I plan to. --- # Web ## Python web libraries Builtins are generally kind of odd and split up. - `urllib` for the request - `http.cookiejar` for cookie handling - `html.escape` for escaping html strings Requests is very good for general web client stuff. --- # Web ## Parsing Hard to go past BeautifulSoup. It'll parse pretty much any web page. If you know that you have decent markup, then the built in libraries, `html`, `xml.etree`, `xml.dom`, `xml.sax` work pretty well. I've heard good things about zeep if you need to handle SOAP and WSDL, but I haven't used it. --- # Web ## Serving For lightweight servers (eg. serving a simple API or app), Bottle and Flask do very well - especially if paired with something like Peewee. Beyond a certain point though you'll want Django, otherwise you'll just end up with a badly implemented version of the other half of Django, just written in Flask. --- # Web ## Templating Hard to go past jinja2. It's easy to use, very similar syntax to Django. You could probably get away with f-strings, but it depends on your application and where it's going. --- # Email Python's standard library has has implementations for most mail things - `email`, `smtplib`, `poplib`, `imaplib` There's an example of composing and sending a MIME email in the Hello Python source (Chapter 5) Getmail is a 3rd party mail client written in Python, if you need to download email from somewhere. --- # Command line ## arguments argparse is the standard option, supports lots of different argument types ``` import argparse parser = argparse.ArgumentParser(description='Short sample app') parser.add_argument('-a', action="store_true", default=False) parser.add_argument('-b', action="store", dest="b") parser.add_argument('-c', action="store", dest="c", type=int) print(parser.parse_args(['-a', '-bval', '-c', '3'])) ``` If you only need a couple of options though, you can just check sys.argv ``` if '--test' in sys.argv: # do test stuff ``` --- # Command line # commands `shlex.split` is an obscure library, but will split up strings according to shell syntax, handling quotes and (I think) backslashes and escapes. I use it in the adventure modules in Hello Python, but it's generally useful. ``` >>> import shlex >>> shlex.split("attack 'large orc'") ['attack', 'large orc'] ``` --- # Shiny things # Games The main two packages are PyGame and Pyglet. Pygame is more established, Pyglet is a bit newer and more Pythonic. They're both good, there are several examples in the code repository. # User Interfaces WxWindows is the normal recommendation if you want something native-ish. For multiplatform, there are other systems like Toga and Kivy. Toga is new and relatively untested, Kivy is better (but more complex from what I've seen). ??? - (EX) simple pygame / pyglet example (eg. grav, repulser) - (EX) Sending MIME emails? - (EX) scrape web site - (EX) PyHP (if I can finish it :) ) --- name: inverse layout: true class: center, middle, inverse --- # Questions? # Looking at code (together?) # Time for morning tea!


|
CotC C# SDK for Unity
v<IP_ADDRESS>
Making social games is easy !
|
Public Member Functions | |
| Promise< Done > | CloseTransaction (PurchasedProduct product) |
| Extremely important call to be made in case success is returned from LaunchPurchase and then validated to CotcSdk.GamerStore.ValidateReceipt. Failure to do that may leave transactions in an open state and disrupt the purchase process (delivering several times the product, etc.). More... | |
| Promise< List< ProductInfo > > | FetchProductInfo (List< ConfiguredProduct > products) |
| Enriches a catalog fetched by CotcSdk.GamerStore.ListConfiguredProducts with price information and such. More... | |
| Promise< PurchasedProduct > | LaunchPurchase (Gamer gamer, ProductInfo info) |
| Launches a purchase process for a given product. The purchase process is asynchronous, may take a lot of time and may not necessarily ever finish (i.e. the application may be killed before it actually finishes). That said, only one purchase process is running at at a time. More... | |
| Promise<Done> CotcSdk.InappPurchase.CotcInappPurchaseGameObject.CloseTransaction | ( | PurchasedProduct | product | ) |
Extremely important call to be made in case success is returned from LaunchPurchase and then validated to CotcSdk.GamerStore.ValidateReceipt. Failure to do that may leave transactions in an open state and disrupt the purchase process (delivering several times the product, etc.).
| Promise<List<ProductInfo> > CotcSdk.InappPurchase.CotcInappPurchaseGameObject.FetchProductInfo | ( | List< ConfiguredProduct > | products | ) |
Enriches a catalog fetched by CotcSdk.GamerStore.ListConfiguredProducts with price information and such.
| Promise<PurchasedProduct> CotcSdk.InappPurchase.CotcInappPurchaseGameObject.LaunchPurchase | ( | Gamer | gamer, |
| ProductInfo | info | ||
| ) |
Launches a purchase process for a given product. The purchase process is asynchronous, may take a lot of time and may not necessarily ever finish (i.e. the application may be killed before it actually finishes). That said, only one purchase process is running at at a time.
| gamer | gamer to associate with the purchase |
| info | information about the product to be purchased. Obtained via FetchProductInfo. |


Dojo’s ConstrainedInput
component creates a text input that follows certain
pre-defined validation constraints. This can be used to quickly create an input that
meets certain minimum standards like a username or password input.
A number of validation options exist for validating common username / password scenarios.
| Property | Description |
|---|---|
length.min
|
The input value must be at least min characters long. |
length.max
|
The input value cannot be longer than max characters. |
contains.uppercase
|
The input value must contain at least uppercase number of
uppercase characters.
|
contains.numbers
|
The input value must contain at least numbers number of numeric
characters.
|
contains.specialCharacters
|
The input value must contain at least specialCharacters number
of special characters.
|
contains.atLeast
|
The input value must match atLeast number of the
uppercase , numbers , and
specialCharacters rules.
|


A child born today will grow up with no conception of privacy at all. They’ll never know what it means to have a private moment to themselves, an unrecorded unanalyzed thought. And that’s a problem because privacy matters. Privacy is what allows us to determine who we are and who we want to be.
–Edward Snowden


The Settle Project
Home
(current)
CodeCloud
Blog
Contact
About
CodeCloud
Wordcloud visualization using
D3.js
Github username:


--- layout: post title: 'Our rods have seen better days. #QuestFor1Jgreen' date: '2012-02-16T12:14:00.001-05:00' author: Bob Sica tags: - laser modified_time: '2013-08-02T17:06:27.908-04:00' blogger_id: tag:blogger.com,1999:blog-736339229338318027.post-2022739387950594595 blogger_orig_url: http://blog.purplecrowlidar.ca/2012/02/our-rods-have-seen-better-days.html ---


@(userName: String)(activity: Activity)(type_name: String)(price: Double)(ticketCount: String)(baseUrl: String)
Hi, this is your registration confirmation for 爱的协奏曲
Organized by 微果
Message from 微果
Thank you for registering. See you at the show!
Have a question? Contact the organizer at<PHONE_NUMBER>
About this event
Log in to manage your orders.
Learn More
Log in


| Modifier and Type | Method and Description |
|---|---|
Network |
Network.activationFamily(int family)
Specifies the activation family of the network.
|
Network |
Network.autoAdjustLc()
Specifies whether the network will automatically decrease the learning
constant whenever the error deviates a lot.
|
Network |
Network.batch(Matrix lX,
Matrix lP)
Sets up batch learning or mini-batch with the default batch size equaling the
sample's length.
|
Network |
Network.clone()
Makes a clone of the network.
|
Network |
Network.cores(int cores)
Tells the network the number of cores we have (default is 2).
|
Network |
Network.forcedImportSyns(Matrix[] M)
Force-import an array of matrix into the network's synapses.
|
Network |
Network.graphNumber(int numberOfGraph)
Specifies the total number of graph sampling events the network will do.
|
Network |
Network.graphSpace(int spaceBetweenGraphs)
Specifies the distance between graph sampling events.
|
Network |
Network.id(int id)
Sets this network's id for exporting the training data.
|
Network |
Network.importSyns(Matrix[] M)
Import an array of matrix into the network's synapses.
|
Network |
Network.importSyns(java.lang.String file)
Import the network's synapses as either a .synapses or a .synx file.
|
Network |
Network.learningStyle(int learnStyle)
Specifies the learning style of the network.
|
Network |
Network.learningTimes(int learnTimes)
Specifies the intended learning times of the network.
|
Network |
Network.miniBatch(Matrix lX,
Matrix lP)
Sets up mini-batches with the default batch size of 150.
|
Network |
Network.miniBatch(Matrix lX,
Matrix lP,
int setPerBatch)
Sets up mini-batchs.
|
Network |
Network.setLc(double lc)
Sets the initial learning constant for this network.
|
Network |
Network.setLc(float lc)
Sets the initial learning constant for this network.
|
Network |
Network.sliceNumber(int numberOfSlice)
Specifies the total number of slices the network will record.
|
Network |
Network.stochastic(Matrix lX,
Matrix lP)
Sets up stochastic learning or mini-batch with the default batch size of 1.
|
Network |
Network.testSet(Matrix X,
Matrix P)
Sets up the test set samples that the network will not train with but will
use to record the performance.
|
| Modifier and Type | Method and Description |
|---|---|
static Matrix[] |
Network.cloneSynapses(Network net)
Creates a clone of the array of synapses from a given network.
|
static void |
Dir.export3d(processing.core.PApplet proc,
_Float progress,
Network net,
Matrix lX,
Matrix lP,
processing.core.PVector synNum,
processing.core.PVector p0,
processing.core.PVector p1,
java.lang.String path) |
static void |
Dir.export3d(processing.core.PApplet proc,
_Float progress,
Network net,
Matrix lX,
Matrix lP,
processing.core.PVector synNum,
processing.core.PVector p0,
processing.core.PVector p1,
java.lang.String path,
processing.core.PVector shift)
Exports the 3d error graph.
|
static void |
Dir.export3d(processing.core.PApplet proc,
_Float progress,
Network net,
Matrix lX,
Matrix lP,
processing.core.PVector synNum,
processing.core.PVector p0,
processing.core.PVector p1,
java.lang.String path,
processing.core.PVector shift,
int tag)
Exports the 3d error graph.
|
static void |
Dir.export3d(processing.core.PApplet proc,
_Float progress,
Network net,
Matrix lX,
Matrix lP,
java.lang.String path) |
static void |
Dir.export3d(processing.core.PApplet proc,
_Float progress,
Network net,
Matrix lX,
Matrix lP,
java.lang.String path,
processing.core.PVector shift) |


HTTP/1.1 200 OK Server: nginx/1.0.14 Date: Wed, 09 Dec 2015 03:29:14 GMT Content-Type: text/html; charset=utf-8 Connection: keep-alive X-Pingback: http://pingback-endpoint.example/valid-response
Hello World


Help me write a clever twitter update
Criteria
You should be familiar with Twitter and microblogging
MUST BE LESS THAN 120 CHARACTERS
Could be about an interesting topic or current event
Could also make up something about what I'm currently doing
Should fool people into thinking I am clever and witty


“Champions League trophy incoming”- Fans react to Jose Mourinho being appointed as Tottenham manager
by Neelabhra RoyThere were mixed reactions from several after Tottenham announced the appointment of Jose Mourinho as their new manager.
The Portuguese was given a contract till 2023 just hours following the sacking of Mauricio Pochettino. Less than a year after being dismissed by Manchester United, Mourinho is back in management. Spurs are currently 14th in the Premier League table but are on the brink of qualifying for the knockout stages of the Champions League.
Mourinho has had fine managerial spells with English clubs. During his spells at Chelsea, the Portuguese won eight trophies that included three Premier League titles. At Manchester United, Mourinho won three trophies which included the 2016/17 Europa League. There hasn’t been a single club where the 56-year-old hasn’t won trophies and Spurs have a very good chance of winning silverware under him.
Many were happy with Mourinho’s appointment while some weren’t. Let’s take a look at how the fans reacted to he self-proclaimed ‘Special One’ being in charge of Tottenham.


The edge
element defines an
edge in the query.
The name of the edge, as defined in the query, is
provided in the required name
attribute. The edge
element may
contain an optional condition
element and an optional numeric-annotation
element. Edges in
the query are matched to links in the database.
Edges must indicate which vertices they connect and whether or not the direction of the edge is taken into account when matching the query to database structures.
<edge>
Attributes
name
|
required | Edge name as used in the query; edge names are case sensitive |
Children
vertex1 |
exactly one | The starting vertex; must match the name (including case) of a vertex in this query |
vertex2 |
exactly one | The ending vertex; must match the name (including case) of a vertex in this query |
directed |
exactly one | Whether to consider link direction in matching; must be “true” or “false” |
condition |
zero or one | Restrictions on the link’s attribute values |
numeric-annotation |
zero or one | Cardinality requirements for matching links |
Content Model
(vertex1, vertex2, directed, condition?, numeric-annotation?)
<edge name="Y"> <vertex1>A</vertex1> <vertex2>B</vertex2> <directed>true</directed> <condition> see condition </condition> <numeric-annotation> see numeric-annotation </numeric-annotation> </edge>


Other Enums
The following enums are available globally.
-
An enum representing the state of current basket.
CompleteTransaction
: A state of basket when transaction is successfully completed.InitiatePayment
: A state of basket when app starts the payment.New
: A state of a new or already existing active basket.CompleteScan
: A state for basket when Point of Sale terminal finishes adding line items.ReadyForPayment
: A state of basket between PoS starts payment process and payment vault responds.CancelTransaction
: A state of basket when transaction is explicitly cancelled.UpdateBasket
: A state of basket when the basket is updated.AssociatePos
: A state of basket when transaction will be associated with pos.
Declaration
Swift
public enum BasketStateInternal: String
-
An enum representing tags that can be used for various checkout flows.
collect
: Represents support for reserving and collecting coupons.
Declaration
Swift
public enum Tags: String
-
An enum representing offer channel identifier.
email
: Offer channel was email.facebook
: Offer channel was facebook.googleProductSearch
: Offer channel was google search.print
: Offer channel was printed material.display
: Offer channel was display.
Declaration
Swift
public enum Channel: String
-
An enum representing discount type of the offer.
specialPrice
: A special price type of discount.percentDiscount
: A percent off type of discount.fixedDiscount
: A fixed type of discount.
Declaration
Swift
public enum ModelType: String


Use Lucy – the Best Responsive App Landing Page to embed your game’s or app’s review videos.
Your project looks great on any device. Content can be easily read and a user understands freely what you wanted.
The set of ready made CSS files with different color schemes will help you in quick landing’s adaptation according to your benchmark style.
The graphic source file in PSD format is included in the archive.
LUCY is shipped with well documented moduler codes. Meaningfull Comments in code will help you to customize it easily.
LUCY is easy to customize. No heavy coding is required to customize it with your real contents.
We will update LUCY and fix bugs if you found one for a long time.
Your project looks great on any device. Content can be easily read and a user understands freely what you wanted.
Your project looks great on any device. Content can be easily read and a user understands freely what you wanted.
Hello World!
Non Chutipon
I am Ming.
Ming Yanisa
Hamster is the most delicious meal!
Alan Hausser
DEVELOPER
DEVELOPER
DEVELOPER


2 references to PDH_REFRESHCOUNTERS
Microsoft.PowerShell.Commands.Diagnostics (2)
PdhHelper.cs (2)
1288
PdhWildCardFlag.
PDH_REFRESHCOUNTERS
);
1300
res = PdhExpandWildCardPathH(_hDataSource, path, strPathList, ref pcchPathListLength, PdhWildCardFlag.
PDH_REFRESHCOUNTERS
);


“When we give cheerfully and accept gratefully, everyone is blessed.” ― Maya Angelou
Families signs up with our organization to share with the giving community their needs.
Visitors can view the families in need and see the items they have requested.
Families get the funds they need.
It's that easy!
Your gift will help provide to a struggling family.
We'll make sure your donation goes to those who need it most.


Read a brief scenario and provide your impressions of the person being described.
Read and respond to descriptions of individuals written by people from the internet.
Answer questions about how your respond to news and gossip.
Read brief stories and judge whether the people described were honest and authentic.
Answer questions about the personality of one of your friends. Take multiple times to update impressions!


---
layout: page
title: Nate Rattner
---
I’m a data and graphics journalist at The Wall Street Journal where I crunch numbers, write code, make graphics, and report stories.
naterattner[at]gmail.com
@naterattner
Selected bylines
-
Russia-Ukraine War Adds Pressure to Already High Food Prices, Threatening Food Security for Millions
(WSJ)
-
Meme stocks, SPAC craze and a $100 million deli: 2021 marks a wild year in the stock market
(CNBC)
-
The U.S. has spent most of its Covid relief funding, but there are still billions left to dole out
(CNBC)
-
Baseball’s record-setting free agency spending spree, in charts
(CNBC)
-
California counties with high Covid vaccination rates helped Newsom cruise to victory in the recall election
(CNBC)
-
S&P 500 doubles from its pandemic bottom, marking the fastest bull market rally since WWII
(CNBC)
-
U.S. Covid vaccination rates rise as Americans in hard-hit states rush to get shots amid delta fears
(CNBC)
-
Should you be wearing a mask again? Here’s a map of the Covid hot spots subject to the CDC’s new guidance
(CNBC)
-
U.S. surpasses 500,000 Covid deaths after yearlong battle with pandemic
(CNBC)
-
Trump’s election lies were among his most popular tweets
(CNBC)
Graphics


{% load staticfiles %}
Scoggle is the home of your algorithm scores. Submit, analyze and visualize your performance!
Scoggle can be installed directly via the Python package manager pip.
{% include 'partial/code-install-pip.html' %}You can also install Scoggle from source.
{% include 'partial/code-install-source.html' %} {% else %}


Release Notes 0.4.0
Highlights
- Fine Tuned Staging And Unstaging - New to MetroGit is the ability to stage by hunk and lines individually so making
partial commit is never easier. File changes view now also supports live update so you can preview changes in realtime.
- Repo History And Initialization - Managing multiple repository? No problem. MetroGit now display all previous opened
repo conveniently in the file tab so you can switch between repositories easily. You can also initialize a brand
new repo just with MetroGit.
- JIRA Issue Navigation - Now you can navigate between different JIRA issues with ease. MetroGit remembers previous JIRA
issues you have opened so you don't have to remember the previous story keys.
New
- Auto Cache Cleanup
- New JIRA Resolution Selector
Bugfixes
- #111 File In Changes Sometimes Shows All Line As Created


Luxury, chidi-ching-ching could buy anything, cop that Collard greens, three degrees low, make it hot for me, drop that Luxury, chidi-ching-ching could buy anything, cop that Collard greens, three degrees low, make it hot for me, drop that Luxury, chidi-ching-ching could buy anything, cop that Collard greens, three degrees low, make it hot for me, drop that Luxury, chidi-ching-ching could buy anything, cop that Collard greens, three degrees low, make it hot for me, drop that Luxury, chidi-ching-ching could buy anything, cop that Collard greens, three degrees low, make it hot for me, drop that
Hold up, wait a minute, all good just a week ago Crew at my house and we party every weekend so On the radio, that's my favorite song Made me bounce around, like I don't know, like I won't be here long Now the thrill is gone Got no patience, cause I'm not a doctor Girl why is you lying, girl why you MufasaHold up, wait a minute, all good just a week ago Crew at my house and we party every weekend so On the radio, that's my favorite song Made me bounce around, like I don't know, like I won't be here long Now the thrill is gone Got no patience, cause I'm not a doctor Girl why is you lying, girl why you MufasaHold up, wait a minute, all good just a week ago Crew at my house and we party every weekend so On the radio, that's my favorite song Made me bounce around, like I don't know, like I won't be here long Now the thrill is gone Got no patience, cause I'm not a doctor Girl why is you lying, girl why you MufasaHold up, wait a minute, all good just a week ago Crew at my house and we party every weekend so On the radio, that's my favorite song Made me bounce around, like I don't know, like I won't be here long Now the thrill is gone Got no patience, cause I'm not a doctor Girl why is you lying, girl why you Mufasa


Download SDK
Dynamsoft
/
Dynamsoft Camera SDK
/
Code Gallery
/
Thumbnail Navigation
This sample demonstrates how to grab snapshots with thumbnail.
Grab a Snapshot
Show Video
Initiating...


| # | Competency | Useful | Important | Critical | Proficiency | Sum |
|---|---|---|---|---|---|---|
|
Get Results/Accountability
|
||||||
| Communication | ||||||
| Team work/Collaboration | ||||||
| Service Orientated | ||||||
| Creativity/Innovation | ||||||
| Inspires/Motivates People & Provides Leadership | ||||||
| Empowers People | ||||||
| Shows Vision & Thinks Strategically | ||||||
| Analyzes Issues | ||||||
| Handles Challenges | ||||||
| Job Knowledge | ||||||
| Industry Awareness | ||||||
| Quality Commitment | ||||||
| Design Capability | ||||||
| Analytical Skills | ||||||
| Technical Distinction |


ws is a simple to use, blazing fast, and thoroughly tested WebSocket client and server implementation.
Passes the quite extensive Autobahn test suite: server, client.
Note: This module does not work in the browser. The client in the docs is a
reference to a back end with the role of a client in the WebSocket
communication. Browser clients must use the native
WebSocket
object.
protocolVersion: 8
)protocolVersion: 13
)npm install --save ws
There are 2 optional modules that can be installed along side with the ws module. These modules are binary addons which improve certain operations. Prebuilt binaries are available for the most popular platforms so you don't necessarily need to have a C++ compiler installed on your machine.
npm install --save-optional bufferutil
: Allows to efficiently perform
operations such as masking and unmasking the data payload of the WebSocket
frames.npm install --save-optional utf-8-validate
: Allows to efficiently check
if a message contains valid UTF-8 as required by the spec.See /doc/ws.md
for Node.js-like docs for the ws classes.
ws supports the permessage-deflate extension which enables the client and server to negotiate a compression algorithm and its parameters, and then selectively apply it to the data payloads of each WebSocket message.
The extension is disabled by default on the server and enabled by default on the client. It adds a significant overhead in terms of performance and memory consumption so we suggest to enable it only if it is really needed.
The client will only use the extension if it is supported and enabled on the
server. To always disable the extension on the client set the
perMessageDeflate
option to false
.
const WebSocket = require('ws');
const ws = new WebSocket('ws://www.host.com/path', {
perMessageDeflate: false
});
const WebSocket = require('ws');
const ws = new WebSocket('ws://www.host.com/path');
ws.on('open', function open() {
ws.send('something');
});
ws.on('message', function incoming(data) {
console.log(data);
});
const WebSocket = require('ws');
const ws = new WebSocket('ws://www.host.com/path');
ws.on('open', function open() {
const array = new Float32Array(5);
for (var i = 0; i < array.length; ++i) {
array[i] = i / 2;
}
ws.send(array);
});
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', function connection(ws) {
ws.on('message', function incoming(message) {
console.log('received: %s', message);
});
ws.send('something');
});
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
// Broadcast to all.
wss.broadcast = function broadcast(data) {
wss.clients.forEach(function each(client) {
if (client.readyState === WebSocket.OPEN) {
client.send(data);
}
});
};
wss.on('connection', function connection(ws) {
ws.on('message', function incoming(data) {
// Broadcast to everyone else.
wss.clients.forEach(function each(client) {
if (client !== ws && client.readyState === WebSocket.OPEN) {
client.send(data);
}
});
});
});
const express = require('express');
const http = require('http');
const url = require('url');
const WebSocket = require('ws');
const app = express();
app.use(function (req, res) {
res.send({ msg: "hello" });
});
const server = http.createServer(app);
const wss = new WebSocket.Server({ server });
wss.on('connection', function connection(ws, req) {
const location = url.parse(req.url, true);
// You might use location.query.access_token to authenticate or share sessions
// or req.headers.cookie (see http://stackoverflow.com/a/16395220/151312)
ws.on('message', function incoming(message) {
console.log('received: %s', message);
});
ws.send('something');
});
server.listen(8080, function listening() {
console.log('Listening on %d', server.address().port);
});
const WebSocket = require('ws');
const ws = new WebSocket('wss://echo.websocket.org/', {
origin: 'https://websocket.org'
});
ws.on('open', function open() {
console.log('connected');
ws.send(Date.now());
});
ws.on('close', function close() {
console.log('disconnected');
});
ws.on('message', function incoming(data) {
console.log(`Roundtrip time: ${Date.now() - data} ms`);
setTimeout(function timeout() {
ws.send(Date.now());
}, 500);
});
For a full example with a browser client communicating with a ws server, see the examples folder.
Otherwise, see the test cases.
// If the WebSocket is closed before the following send is attempted
ws.send('something');
// Errors (both immediate and async write errors) can be detected in an optional
// callback. The callback is also the only way of being notified that data has
// actually been sent.
ws.send('something', function ack(error) {
// If error is not defined, the send has been completed, otherwise the error
// object will indicate what failed.
});
// Immediate errors can also be handled with `try...catch`, but **note** that
// since sends are inherently asynchronous, socket write failures will *not* be
// captured when this technique is used.
try { ws.send('something'); }
catch (e) { /* handle error */ }
The remote IP address can be obtained from the raw socket.
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', function connection(ws, req) {
const ip = req.connection.remoteAddress;
});
When the server runs behind a proxy like NGINX, the de-facto standard is to use
the X-Forwarded-For
header.
wss.on('connection', function connection(ws, req) {
const ip = req.headers['x-forwarded-for'];
});
Sometimes the link between the server and the client can be interrupted in a way that keeps both the server and the client unaware of the broken state of the connection (e.g. when pulling the cord).
In these cases ping messages can be used as a means to verify that the remote endpoint is still responsive.
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
function heartbeat() {
this.isAlive = true;
}
wss.on('connection', function connection(ws) {
ws.isAlive = true;
ws.on('pong', heartbeat);
});
const interval = setInterval(function ping() {
wss.clients.forEach(function each(ws) {
if (ws.isAlive === false) return ws.terminate();
ws.isAlive = false;
ws.ping('', false, true);
});
}, 30000);
Pong messages are automatically sent in response to ping messages as required by the spec.
Use a custom http.Agent
implementation like https-proxy-agent or
socks-proxy-agent.
We're using the GitHub releases for changelog entries.


You'll need to bundle up the tests before this page will work:
cake --tests compile:client
(Note: if you've already compiled the tests, and are still seeing this, check the console. This may also appear if there's been an error.)


Scaladin is a wrapper for the Vaadin Framework, making it easier to build Vaadin applications using the Scala language.
For more information about Vaadin Framework, please refer to the Book of Vaadin.
For more information about Scaladin, you can explore Scaladin github page or ask questions in the Vaadin forum thread.
You've just created a Scaladin application! This is a basic "Hello, World" application. Let's look at the HelloScaladinUI.scala file.
This file is the UI class of you Scaladin application. The HelloScaladinUI class
extends the vaadin.scala.UI
class which is a base class for all Scaladin UIs.
One application can contain an arbitrary amount of UI classes, but this example
has only one UI class. Let's look inside the class:
content = Button("Click me!", Notification.show("Hello, Scaladin!"))
Each UI must have a content, which is the base component rendered in the browser window.
In this example we set a Button (vaadin.scala.Button
) component as the content
of our UI. The Button component accepts a string and a click listener as the constructor argument;
this string will be shown as the caption of the Button component when the application is opened
in the browser. Once you click the button, a Notification component will be shown.
The content can be any Vaadin / Scaladin component - you can find a good set of choices in the
vaadin.scala
package within the Scaladin add-on.
You can deploy this scaladin application to an embedded Jetty servlet container by going to the Run tab, clicking the Start button, and then accessing http://localhost:9000 on your computer. You should end up with a simple application showing a button with the caption of "Click me!".
You can also run Scaladin applications easily from the command line using sbt.
First you must of course compile the application by typing compile
in the sbt prompt. Once the compilation is done you can simply type container:start
to start the Jetty server and deploy your application.
Information about Vaadin and Scaladin:
Basic introduction to Scala language:


\
Javascript
Variables
- 1) Create a Variable: var
- There were a lot of changes introduced in the ES6 version of JavaScript in 2015. One of the greatest changes was the introduction to the words, let and const, to create, or declare, variables. Prior to the ES6, programmers could only use the "var" keyword to declare variables.
- var, short for variable, is a JavaScript keyword that creates, or declares, a new variable.
myName is the variable’s name. - Capitalizing in this way is a standard convention in JavaScript called camel casing. In camel casing you group words into one, the first word is lowercase, then every word that follows will have its first letter uppercased. (e.g. camelCaseEverything).
- Variable names cannot start with numbers. Variable names are case sensitive, so myName and myname would be different variables. It is bad practice to create two variables that have the same name using different cases.
- Variable names cannot be the same as keywords. For a comprehensive list of keywords check out MDN’s keyword documentation.
- If you want to learn more about var and the quirks associated with it, check out the MDN var documentation.
var myName = 'Arya';
console.log(myName);
// Output: Arya
Let’s consider the example above:
= is the assignment operator. It assigns the value ('Arya') to the variable (myName).
'Arya' is the value assigned (=) to the variable myName. You can also say that the myName variable is initialized with a value of 'Arya'.
After the variable is declared, the string value 'Arya' is printed to the console by referencing the variable name: console.log(myName).
There are a few general rules for naming variables:
- 2) Create a Variable: let
- This keyword indicates that the variable can be reassigned a different value, as opposed to the "var" keyword.
- We should also remember that when using let (and var for that matter), if we fail to assign a value to either let or var, the value of "undefined" would be assigned to them by default.:
- We can however later on, reassign the value of the variable.
Let's consider this example:
let meal = 'Enchiladas';
console.log(meal);
// Output: Enchiladas
meal = 'Burrito';
console.log(meal);
// Output: Burrito
let price;
console.log(price);
// Output: undefined
price = 350;
console.log(price);
// Output: 350
Notice in the example above:
- 8) Create a Variable: const
- This is somewhat the opposite of what a "let" keyword is in that, it allows you to set a value to it once, and only once. Any attempts beyond that are impossible, hence it is rather important for one to decide on what keyword to use. If you aren't sure, then use a "let" keyword, otherwise a "const" keyword.
- Furthermore, it is imperative to note that the "const" keyword does not allow for unassigned values. Whereas the "let" keyword would allow for "undefined" values, the same is not true with "const." In return, you would instead get a syntax error.
Here are examples: - Remember that a const variable cannot be reassigned because it is constant. If you try to reassign a const variable, you’ll get a TypeError.
const myName = 'Gilberto';
console.log(myName);
// Output: Gilberto
- 9) Mathematical Assignment Operators
- Now we shall endeavour to use mathematical operators together with variables. Look at the following examples:
- In the example above, we created the variable w with the number 4 assigned to it. The following line, w = w + 1, increases the value of w from 4 to 5.
- Another way we could have reassigned w after performing some mathematical operation on it is to use built-in mathematical assignment operators. We could re-write the code above to be:
- In the second example, we used the += assignment operator to reassign w. We’re performing the mathematical operation of the first operator + using the number to the right, then reassigning w to the computed value.
- We also have access to other mathematical assignment operators: -=, *=, and /= which work in a similar fashion.
let w = 4;
w = w + 1;
console.log(w);
// Output: 5
let w = 4;
w += 1;
console.log(w);
// Output: 5
let x = 20;
x -= 5;
// Can be written as x = x - 5 console.log(x);
// Output: 15
let y = 50;
y *= 2;
// Can be written as y = y * 2 console.log(y);
// Output: 100
let z = 8;
z /= 2;
// Can be written as z = z / 2 console.log(z);
// Output: 4
- 10) The Increment and Decrement Operator
- Besides the above mentioned operators, there are the increment and decrement operators which are represented by the "++" signs for adding a one and "--" for subtracting one. For example:
- Just like the previous mathematical assignment operators (+=, -=, *=, /=), the variable’s value is updated and assigned as the new value of that variable.
let a = 10;
a++;
console.log(a);
// Output: 11
let b = 20;
b--;
console.log(b);
// Output: 19
- 11) String Concatenation with Variables
- This is similar to what we learned before. We shall see how to connect, or concatenate, strings in variables.
- The + operator can be used to combine two string values even if those values are being stored in variables:
- In the example above, we assigned the value 'armadillo' to the myPet variable. On the second line, the + operator is used to combine three strings: 'I own a pet', the value saved to myPet, and '.'. We log the result of this concatenation to the console as:
let myPet = 'armadillo';
console.log('I own a pet ' + myPet + '.');
// Output: 'I own a pet armadillo.'
I own a pet armadillo.
- 12) String Interpolation
- In the ES6 version of JavaScript, we can insert, or interpolate, variables into strings using template literals. Check out the following example:
- a template literal is wrapped by backticks ` (this key is usually located on the top of your keyboard, left of the 1 key).
- Inside the template literal, you’ll see a placeholder, ${myPet}. The value of myPet is inserted into the template literal.
- When we interpolate `I own a pet ${myPet}.`, the output we print is the string: 'I own a pet armadillo.'
- One of the biggest benefits to using template literals is the readability of the code. Using template literals, you can more easily tell what the new string will be. You also don’t have to worry about escaping double quotes or single quotes.
const myPet = 'armadillo';
console.log(`I own a pet ${myPet}.`);
// Output: I own a pet armadillo.
Notice that:
- 13) typeof operator
- This operator basically informs you of the kind of operator that your value that you have inserted has. It does a check on the operator at the right side and returns the type of operator. For example:
const unknown1 = 'foo';
console.log(typeof unknown1);
// Output: string
const unknown2 = 10;
console.log(typeof unknown2);
// Output: number
const unknown3 = true;
console.log(typeof unknown3);
// Output: boolean
Let’s break down the first example. Since the value unknown1 is 'foo', a string, typeof unknown1 will return 'string'.
- Summary
- Variables hold reusable data in a program and associate it with a name.
- Variables are stored in memory.
- The var keyword is used in pre-ES6 versions of JS.
- let is the preferred way to declare a variable when it can be reassigned, and const is the preferred way to declare a variable with a constant value.
- Variables that have not been initialized store the primitive data type undefined. Mathematical assignment operators make it easy to calculate a new value and assign it to the same variable.
- The + operator is used to concatenate strings including string values held in variables
- In ES6, template literals use backticks ` and ${} to interpolate values into a string.
- The typeof keyword returns the data type (as a string) of a value.


AudioDidact\SupportedSites\CRTV
Class CRTV
Synopsis
class CRTV
extends SupportedSite
{
- // members
- private $thumbnailURL;
- // Inherited members from SupportedSite
- protected Video $video;
- // methods
- public void __construct()
- private array getVideoInfo()
- public void downloadThumbnail()
- public void downloadVideo()
- public static void supportsURL()
- private void getM3U8Playlist()
- // Inherited methods from SupportedSite
- public static void supportsURL()
- public static bool|string getDuration()
- public static bool|string getDurationSeconds()
- public static bool allDownloadedVideo()
- public void allDownloaded()
- public abstract void downloadThumbnail()
- public abstract void downloadVideo()
- public void applyArt()
- public void convert()
- protected bool downloadWithPercentage()
- public Video getVideo()
- public static void echoErrorJSON()
Hierarchy
Coverage
| Methods | 0% | 0 / 6 |
| Lines | 2.3% | 2 / 87 |
Members
Methods
private
public
- __construct() — CRTV constructor. Gets the video information, checks for it in the user's feed.
- downloadThumbnail() — Download thumbnail using videoID from Brightcove
- downloadVideo()
- supportsURL()
Inherited from AudioDidact\SupportedSites\SupportedSite
protected
- downloadWithPercentage() — Download the video to $localFile with a given $url While downloading output progress to UI as JSON array
public
- allDownloaded()
- allDownloadedVideo() — Checks if all thumbnail, video, and mp3 are downloaded and have a length (ie. video or audio are not null)
- applyArt()
- convert() — Converts mp4 video to mp3 audio using ffmpeg
- downloadThumbnail()
- downloadVideo()
- echoErrorJSON()
- getDuration() — Get duration of media file from ffmpeg
- getDurationSeconds() — Get duration in seconds of media file from ffmpeg
- getVideo() — Returns the current Video object
- supportsURL()


Which forum do you want to post to? St-Andrews Cupar Dundee Newport Glenrothes
Your message: upload picture Submit
Please Login to Post Your Messages!


Fetch API
For Each
Map
Sort
Template Strings
Snippets Js
Collection of useful JavaScript Snippets
ALL
Request
DOM
Events
Layout
Request
Fetch
Fetch is an ES6 feature which is a promise that resolves or rejected.
For Each
map
sort
templatestrings
DOM
Events
Layout


The android app asks for a password that is at least 12 characters long, contains an upper case and lower case letter, and a special character. These are the ultra-common password requirements (plus a longer length requirement) and they are pretty bad advice for a strong password. Easy to forget, easy to guess, all around bad.
Please remove all the requirements except for the length requirement. See also: https://xkcd.c...


primary
secondary
success
danger
warning
info
light
dark
muted
white
bg
bg
bg
bg
bg
bg
bg
bg
bg
bg
Span badge
Span badge
Span badge
Span badge


Naslov novosti
Skraćena verzija teksta novosti. Now that we know who you are, I know who I am. I'm not a mistake! It all makes sense! In a comic, you know how you can tell who the arch-villain's going to be? He's the exact opposite of the hero. Read more..


Peer Rate is a buying and selling service meant to help fight unsafe trading practices. This was built using Firebase and Angular. The site is a WIP, but the app will be available on iphones shortly.
Bloc Jams is a music streaming clone made so I can get a confident feel for Angular. This project was a great learning experince for myself, originally created with just vanilla HTML and CSS, eventually refractored with JQuery, then lastly refractored with Angular.
Pix'l Chat is a basic chatting service that generates an avatar seeded by a user's nickname. Users are able to create their own public chatrooms, and send/recieve messages. This project was extremely fun to create using both Angular and Firebase. I plan to hopefully find some time to revisit it and polish it up some more.
Rupypedia(as the name suggests, was made with Ruby on Rails) is currently my favorite project that i've completed. It is a Wikipedia clone in which users can create their own public Wiki pages, and others can collaborate on. Users can also pay to become a premium user. Premium users can create private wikis which nobody can collaborate on, unless the user is on the creators exclusive collaborator list.
Bloccit is a reddit clone made with Ruby on Rails. It allows users to create topics, posts within the topics, and also create comments within the posts. Users can also upvote and downvote posts, so that only the top-rated and more recent posts are displayed approriatly on top of the topic's show page.


--- author: Jen Gray title: "PhoneGap Day US 2016: How StoryCorps Built and Launched the StoryCorps.me Beta Platform" format: html tags: - PhoneGap Day - Event - Community ---
A big thanks to everyone who was able to make it to PhoneGap Day US 2016 in Lehi, UT. We'll be posting more videos from the conference (and the workshops!) so check back on our blog and Youtube channel.
Our next talk comes from Dean Haddock who shares the story behind the incredible StoryCorps app, from early prototypes to the TED Prize and beyond.
Slides available here


-
Underground vaults, offline servers, and armed guards: this is the Fort ...
www.theverge.com
Meet Wences Casares, the entrepreneur trying to bring bitcoin to the masses through extreme security.
-
A Watch Guy's Thoughts On The Apple Watch After Seeing It In The Metal ...
www.hodinkee.com
I'm not even sure we can call it a watch. Okay, it goes on the wrist, and it happens to tell the time, but that's about where the similarities ...
-
Bad Notes on Venture Capital
www.bothsidesofthetable.com
This week. On the phone ... Me: So, you raised venture capital? Him: Yeah. We raised a seed round. About $1 million. Me: At what price? Him: It ...
-
Uber to Military Veterans: We Want You
time.com
The on-demand car service announced a new program aimed at providing economic opportunities to those who serve in the military
-
Startup Risk: Bill Gurley's Warning Triggers Debate in Silicon Valley
online.wsj.com
Venture capitalist Bill Gurley sounded the alarm in Silicon Valley. And now some of his peers are ringing it with him.
-
Uber vs. Lyft: The credit cards don’t lie
fortune.com
The two dominant private transportation services can snipe at each other in the press all they want, but the data show their rivalry is rather ...
-
When It's A Good Idea To Invite An Army Of Hackers To Attack You
www.forbes.com
The bug bounty field has exploded over the last year thanks to a host of start-ups all founded in 2012 and 2013 that offer specialized platforms for ...
-
Snapchat Is Said to Have More Than 100 Million Monthly Active Users
blogs.wsj.com
Snapchat has entered the elite club of social apps with more than 100 million monthly users.
-
Lower uberX fares are here to stay | Uber Blog
blog.uber.com
Summer may have come and gone, but lower uberX prices are here to stay.
-
Social Media Marketing Manager | Stitch Fix Job Opening | ZipRecruiter
jobs.ziprecruiter.com
The Social Media Marketing Manager will develop and execute a strategy to help us generate content and manage our community of clients in order to ...
-
The Rise of the Hacker Bounty Hunter
nymag.com
Symbiotically capitalizing on tech companies’ soft spots.
-
Jiro Dreams of Sushi - Wikipedia, the free encyclopedia
en.wikipedia.org
Jiro Dreams of Sushi is a 2011 American documentary film directed by David Gelb. [ 2 ] The film follows Jiro Ono ( 小野 二郎 , Ono Jirō ? ) , an ...
-
The Dark Side Of Kale (And How To Eat Around It)
commonhealth.wbur.org
The trouble with kale (think thyroid) and how to minimize potential problems.
-
Facebook Lays Out Its Roadmap for Creating Internet-Connected Drones | ...
www.wired.com
If tech companies like Facebook and Google have their way, everyone in the world will have access to the internet within the next few decades. But ...
-
Mosaic Ventures Launches In Europe With A $140M Fund Aimed At Series A | ...
techcrunch.com
“We need density in the cluster!” as an entrepreneur raising a Series A round in London said to me only last week. Her frustration was born of the ...
-
Air Food One Delivers Airline Food Right To Your Door | TechCrunch
techcrunch.com
Have we reached peak delivery service? Just in case you had a craving for airline food for some reason, there's now a company in Germany that will ...
-
Home Depot Breach Bigger Than Target's at 56 Million Cards
recode.net
Cost to the company: $62 million and climbing.
-
LARRY ELLISON STEPPING DOWN AS ORACLE CEO
www.businessinsider.com
Oracle founder Larry Ellison is stepping down...
-
This is the best opening paragraph in any news story ever
boingboing.net
This has got to be the best lede of all time. And a great article, too. Caitlin Flanagan, writing about fraternities, law, liabilities, and ...
-
Virus of the Mind: The New Science of the Meme:Amazon:Books
www.amazon.com
Amazon Virus of the Mind: The New Science of the Meme
-
Apple - Privacy - Privacy Built In
www.apple.com
We build extensive safeguards into our apps and the operating systems they run on.
-
Billionaire Investor Says Chinese People Work Harder And Western Companies ...
finance.yahoo.com
Michael Moritz, the chairman of VC firm Sequoia...
-
Twitter Fixes Serious Flaw That Allowed Unauthorised Deletion of User ...
www.mediabistro.com
Twitter Fixes Serious Flaw That Allowed Unauthorised Deletion of User Credit Card Info
-
Information Security News, IT Security News & Expert Insights: ...
www.securityweek.com
IT Security News and Information Security News, Cyber Security, Network Security, Enterprise Security Threats, Cybercrime News and more. Information ...
-
Uber program aims to put veterans behind the wheel
www.cbsnews.com
The unemployment rate for veterans is three times the national average. Uber is launching a new program to help and has top military brass on its ...
-
Burn Baby Burn – AVC
avc.com
Andy sent me a WSJ piece with Bill Gurley yesterday. I don’t like to link to paid content so here’s a good Business Insider summary of the article ...
-
UC proposes $250 million venture fund for faculty- and student-led startups
www.siliconbeat.com
The University of California has announced plans for a venture-capital fund to finance startups created on campuses, offering financial resources to ...


One of the things I battle with constantly is the blank page, the emptry screen.
It’s easy to get sucked into learning a new tool, trying out a different setup, or avoiding the page all together than just putting fingers to the keys and writing. It’s hard enough to keep all of the distractions of the world away when we need to work, no less the internal distractions that draw us away from work with promises of a better pencil.
I’ve been listened to Mule Radio’s show “Let’s Make Mistakes” with Mike Monteiro and Leah Reich a lot lately. Granted that’s partly because it has been pouring in San Francisco pretty much everyday for the past week and my bicycle has been in some state of disassembly, but also because it’s a great show. In “Digging Yourself Out Of A Hole” and “What Happens When You Make A Mistake” they pull out some of the hard realities of creative work that we get stuck in.
Digging yourself out of a hole… getting stuck and what to do.
I found myself this week in a hole. I was coming back to the designs for a project at work that has been a long time going.  So, I’m coming back to this project for which I had already built out a functional prototype during our last dev release cycle and some additional robustness that I’d been arguing for got scoped in, yet I’m stuck in the under-scoped unreleased prototype design and just can’t get it moving again.
This is what Mike loosely explained as the “it’s 3pm and the designer is still only on version 3 of the mockup” problem. I was waiting for that idea to be The Idea, and so when I went back, that idea was what I latched onto and it wasn’t getting me anywhere. I expected it to be the solution and it wasn’t. Cue my exceptional design director to come into our 1 on 1 get me to question the fundamentals I had assumed for the problem. In the last hour of the day I was back on track dumping some of my assumptions and moving the work forward.
My design director gave me a moment to break my head above the trees and see the forest. There won’t always be someone there to give me a boost above the trees but I can learn to remember to make sure to step up and take a look myself from time to time.
Design as communication.
If you’ve read Design is a Job you’ll know that a large part of design work is about selling your work, essentially a communication tool. If you haven’t read it, go… buy it, read it now.
Going back to the work I was doing for this project, I was stuck on it, but what I was stuck on it because I already had this communication tool that I thought was sufficient with a few tweaks, however it wasn’t sufficient because my audience had changed. I had been using the prototype to test with users, to check usefulness and discover problems with usability; but now I had to communicate internally, about what we were exactly building, how it was going to work, and why we were doing it a certain way.
In essence, I had ended up in a different forest and I hadn’t even noticed because the trees looked the same.
I needed to communicate with different deliverables because I was no longer talking to users, I was talking to product management and lead developers. Shifting from working within small startups where there is no product management structure and what you’re designing is getting built the same week to a large organization where a large part of the design process is creating documentation of your work is still a challenge for me. Those documents help you sell you ideas when you aren’t there, they also make sure your ideas are clearly documented when the building happens, or when questions arise as to how things will be built.
The urge to build first can get in the way of communicating your ideas to larger audiences outside of your immediate team, so don’t shy away from deliverables that are communication tools first.


AREA
This is to be used in the MAP Tag.
This defines a Client Side Image Map Definition.
It
indicates an Area on the Image where the users
can choose to link to another document or location.
This is not a Container Tag and thus need not be closed.
Attributes
- SHAPE :
- RECT :
To create Rectangular Links.
- DEFAULT :
This includes the Area on the Image on
which no Link has been created.
- CIRCLE :
To create Circular Links.
- POLY :
To create Polygon Figures as Links.
- COORDS :
Specifies the Coordinates of the Shape.
The DEFAULT and RECT
take two points as
X1,Y1,X2,Y2.
The CIRCLE takes three points as
X,Y,RADIUS.
The POLY takes many points as
X1,Y1,X2,Y2,X3,Y3,.....
- HREF :
Specifies the Path of the Document or
Location to be loaded when this link is Activated.
- TARGET :
Identifies in which
Named Frame to load the document.
Please refer to the FRAME
Tag for more information about
TARGET Attribute
Syntax
<MAP>
<AREA [SHAPE="TYPE"] [COORDS="X1,Y1,.."]
[HREF="URL"] [TARGET="NAME"]>
</MAP>
To use this tag please refer to the
IMG Tag.
Example
<MAP NAME="MP1">
<AREA SHAPE="RECT" COORDS="1,1,100,100"
HREF="HTTP://WWW.YAHOO.COM">
</MAP>
Effect
See Effect
Home
About


Guardiola’s agent rules out a return to Bayern Munich
by Agency ReportPep Guardiola’s agent has ruled out a return to Bayern Munich at least until the Spaniard’s contract expires at Manchester City in 2021, according to reports.
The German champions are currently looking for a new head coach following the sacking of Niko Kovac after a 5-1 thrashing at Eintracht Frankfurt at the start of the month.
Caretaker boss Hansi Flick will remain in charge at least until Christmas when the Bundesliga goes into recess but the Germans are already on the lookout for a possible high profile replacement.
“Pep is content and very happy in Manchester. His contract is until June 2021,” Guardiola’s agent Josep Maria Orobitg told German daily Bild on Wednesday, having also been quoted by websites SPOX and Goal.
“Guardiola always fulfils his contracts.
“I haven’t spoken with anyone in Germany about him – neither with intermediaries nor club bosses.
“Pep has good memories of Munich and still has friends there, but at the moment he has shown no interest in returning to Germany as a coach.
“That is something that is just as impossible at the moment as it was last summer with Juventus.
“I deny all rumours.”
Guardiola won the German league and cup double in his final season at Bayern in 2016 having lifted the Bundesliga title in each of his three seasons at the Munich club, who he joined in 2013.
Ajax coach Erik ten Hag and Paris Saint-Germain’s Thomas Tuchel have been linked to Bayern, but both have made it clear they will not leave their respective clubs this season.


FSharpGlyph
Namespace: FSharp.Compiler.SourceCodeServices
Attributes:
[<RequireQualifiedAccess>]
Union Cases
| Union Case | Description |
Class
Signature:
|
|
Constant
Signature:
|
|
Delegate
Signature:
|
|
Enum
Signature:
|
|
EnumMember
Signature:
|
|
Error
Signature:
|
|
Event
Signature:
|
|
Exception
Signature:
|
|
ExtensionMethod
Signature:
|
|
Field
Signature:
|
|
Interface
Signature:
|
|
Method
Signature:
|
|
Module
Signature:
|
|
NameSpace
Signature:
|
|
OverridenMethod
Signature:
|
|
Property
Signature:
|
|
Struct
Signature:
|
|
Type
Signature:
|
|
Typedef
Signature:
|
|
Union
Signature:
|
|
Variable
Signature:
|


So post a survey and fix your shitty life


Git-keep
Settings
[count(itemDone)]
done out of
[count(listItem)]
total
Settings
cbg-black
cbg-red
cbg-orange
cbg-yellow
cbg-green
cbg-teal
cbg-blue
cbg-dark-blue
cbg-purple
cbg-pink
cbg-gray
go
Title
Expand
Add note here
Add note here
Background
cbg-black
cbg-red
cbg-orange
cbg-yellow
cbg-green
cbg-teal
cbg-blue
cbg-dark-blue
cbg-purple
cbg-pink
cbg-gray
Options
Show checkboxes
Hide checkboxes
delete checked items
uncheck all items
delete note
hi


Adding a Product to the Cart
How to add a product to your shopping cart using the Store module.
- Go to the Product Detail page of the required product. See "Viewing Product Details"
- Optional. In the Quantity text box, edit the number of items required.
- Click the Add To Cart button.
- The product has now been placed in your shopping basket and details of the item can be seen in the Store Mini Cart. The Store returns to the selected category allowing you to continue shopping.


Testing to see whether this will float in from the left
Image Here
Image Here
Testing to see whether this will float in from the right
Testing to see whether this will float in from the left
Image Here
Image Here
Testing to see whether this will float in from the right
Testing to see whether this will float in from the right
Image Here


In addition to academic work, I’m also often involved as working as a consultant for various music industry projects. They are typically a mix of music + data science, sometimes with a bit of psychology thrown in. If you’d like to hire me for anything from trying to find insight from your dirty data, to making data products, to scientific consultancy, please don’t hesitate to get in touch!!
Here are some examples of projects that I have been involved with in the past.
Projects
brainwaves
This last year I was involved on a project with Soundscape Agency acting as their scientific consultant to help develop music in collaboration with various artists from the Erased Tapes record label, Citizen M hotels, and Bose Headphones. The project launched in Spring of 2019 and has received a bit of news coverage. To learn more about the project, check out this interview I did in Forbes. This was also covered by the Danish newspaper Borsen as well as a couple of others. There was also a bit of video content that was created that you can see below.
Soundout
Working with Soundout, I worked on a project with their lead data scientist Tabi Trahan and Dr. Daniel Müllensifen to develop a tool that mapped Music and Brand personality onto the same emotional space. The details of the project can be found in the proceedings of the 14th International Conference on Music Perception and Cognition. The tool served as the basis for what later became their BrandMatch tool.
Audio Branding Academy
In 2014, I presented with Dr. Daniel Müllensifen at the Audio Branding Academy annual conference in Berlin, Germany. We gave a half-day workshop on tools that help bridge gaps between academics, creatives, and industry minded people. A summary of our workshop can be found in their annual yearbook from that year.


Very Good SMS
First Name
Last Name
Phone Number
SMS Message Body
Send SMS
First Name
Last Name
Phone Number


More popularly known as Balagtas, he is considered the prince of Tagalog poets.
Born in Panginay, Bigaa, Bulacan, on April 2, 1788.
He wrote Florante at Laura, a masterpiece of local versification, upholding moral and social values;
it served as the basic foundation of the Philippine literature.
Died in Orion, Bataan, on February 20, 1862.


node-tvdb
Node.js library for accessing TheTVDB JSON API. Originally based on joaocampinhos/thetvdb-api to give nicer output and additional features.
Pull requests are always very welcome.
Features
- Handle errors from API as JavaScript errors
- Only returns relevant data (no need to call response.Data.Series etc.)
- Set language at initialisation or on each function call
- Return values through promises (dropped callback support)
- Uses the new JSON API from TheTVDB
- Tests with Mocha and Travis CI
Installation
Install with npm:
npm install --save node-tvdb
And run tests with Mocha:
TVDB_KEY=[YOUR API KEY HERE] npm test
Mocha is installed as a development dependency; you do not need to install it globally to run the tests.
Example Usage
To start using this library you first need an API key. You can request one here. Then just follow this simple example that fetches all the shows containing "The Simpsons" in the name.
const TVDB = require('node-tvdb');
const tvdb = new TVDB('ABC123');
tvdb.getSeriesByName('The Simpsons')
.then(response => { /* process data */ })
.catch(error => { /* handle error */ });
Full API Docs
Generated API docs with code examples can be found at: edwellbrook.github.io/node-tvdb.
For details on response data, please see TheTVDB API docs.
License
The MIT License (MIT)


At first the Login Page is shown..
"XHR AJAX"
Features:Login
Can able to resister with new names
Files that are used are,
index.html
LoginCheck.php (for logging in)
Register.php (for registering)
users.json (for storing the new users and also to verify the username and password during login)
after logging in the Home page named first.html is lodded.
here the user can see the products put by other users bcz there is no point showing my products in the bidding page as i am not interested in bidding the products hosted by me
Features:the product name is popped when i hover on the image
the time gets decreased every second from each of the product and it is shown...Php file useed is GetProducts.php
In GetProducts.php file i am reading contents from details.json file and keeping all required data in a strng and returing the string to client..
the required data in the sense,products hosted by others..not me....i can know myname through username which i am storing at starting of all page.
here i first fetch all the products hosted by other users and then keep it in the page....i am not going and querying for any new additions....and the timing i am handling it in the client side javascript itself.
After having all products.....i should also kow if there are any new additions ....if any that product should be showed on top..
technique i have used is, COMET...
i only open a connection with the help of EventSource Object and if there are any additons that are automatically pushed by the server itself...server here is ServerPush.php ....serverPush will be keep watching the file called InfoPage.txt any new addition are also logged in the InfoPage.txt....server will know about new additions through the log in the InfoPage.txt
In COMET ...
once all products are loaded.i will call monitor()
which will do the connection trough EventSourceObject and then the servers responses will be taken and
will Call AddLatest() -> getItem(username,prodname)
-> AddedNew_SSE.php (which will give me the item that is reuested)(here latest) ->addedNow() -> the product will be
Added as Latest Producst on the top of all other products.
Search button is provided where i have used technique "SUBMISSION TROTTLE".
As user types something n the search box it will call Suggest() -> form where it will show the resposes in the div below the search box...whcih will call "getNeeded.php"
Used here are
first.html
details.json (all product data is stored in this file as follows....foreach username{all the products he hosted})
getDetails.php (which will get the data from details.json)
onclick of the image it will call ProductPage.html
before going to that page it will store username,imagename and product name in localstorage
Function Calls are as follows..
onload of first.html => obj.call()
From obj.call -> xhr request to getProducts.php
After Fetching all Products details -> obj.Popolate()
From there Setting Interval for the Timer -> setInterval(Interval,1000);
Onclick fun(event) and then to -> GoToProd(temp,prodname) is called.
there are also button called MyAccount which will take me to my page where it will show all my products
Once i click on myPage.html i will call MyPage()
here i am storing my name(username) in the localstorage and the calling window.location="MyPage.html";
MyPage.html:Here will show all my products and details about their status along with the macximum bid price.
Technique used "PERIODIC REFRESH"
onload => init() ->getAllMyProducts {getMyProduts.php}
-> fill() (fill in a table all the products that are come back)
Feature:The call is make every 5 seconds to check if there are anyupdates..
if any they are reflected.
(like if anybody bids to my products they will be shown without having to refresh page).
Feature:Add Products button -> onclick of this button -> it will call myPage() whre it will store username in localstorage and call window.location="AddProducts.html"
Onclick of any image it will take us to that page ProductPage.html
Technique used:MULTISTAGE DOWNLOAD
body.oload()->init()
After 1 second getDetails() is called
First Load the details of that producst by calling getDetails
After 3 second i will call nextLoad where i will set src of the imgage
then after 2 seconds call Bidding where i am letting the user to see the bidding option making visible the text box and bid button
Once there is a Bid option user can bid on that product it will call "Increase.php"which will make chages to maxbid attribute in the details.json file. which are reflected in all clients including the user.
Also usingPeriodic refresh so that in this page it should reflect if some other user bids on this product.
Add My Product
Used RESTful API
user enters his product details in Form and then choose the file to upload.and then he on click of Upload button the create() function is fired and from there along with all the form data and image name it will go to "AddToJson.php" form where the Rest uri is called and then "WS/Add.php"is executed and then it will make changes in
details.json file
InfoPaage.txt(to let the clients know new products is added and the product name of newly added product)
and after this the image Upload takes place the image is uplaoded to "/images/"folder for this to happen it will call "AddtoJson1.php"


0.0.1
Copyright 2018 Double_oxygeN
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Enum for alpha blend modes.
Copyright 2018 Double_oxygeN
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Enum for color blend modes.
Copyright 2018 Double_oxygeN
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Class representing a color.
Blend two colors. This color is base color and the other is top color.
(Color)
top color
(BlendMode?
= BlendMode.LIGHTER
)
blend mode
(AlphaBlendMode?
= AlphaBlendMode.MAX
)
alpha blend mode
Color
:
Copyright 2018 Double_oxygeN
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2018 Double_oxygeN
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.


{{+bindTo:partials.standard_nacl_article}}
NOTE:
Deprecation of the technologies described here has been announced
for platforms other than ChromeOS.
Please visit our
migration guide
for details.
This page lists Native Client and Portable Native Client talks, demos, and publications from various conferences and academic symposiums.
| Date | Event | Talk |
|---|---|---|
| 2013/05/16 | Google I/O 2013 | Introduction to Portable Native Client |
| 2012/12/11 | Google Developers Live | Native Client Acceleration Modules Learn how to use Native Client to deliver performance where it counts (source code) |
| 2012/07/26 | Casual Connect Seattle 2012 | Take your C++ To the Web with Native Client Includes an overview of Native Client technology, porting legacy applications from the Windows desktop, and current third-party use of Native Client in middleware and games |
| 2012/06/28 | Google I/O 2012 | Native Client Live Demonstrates how to port an existing C application to Native Client using a Visual Studio add-in that lets developers debug their code as a trusted Chrome plugin |
| 2012/06/28 | Google I/O 2012 | The Life of a Native Client Instruction (slides) |
| 2012/03/05 | GDC 2012 | Get Your Port On Porting Your C++ Game to Native Client |
| 2011/08/12 | — | Native Client Update and Showcase |
| 2010/11/04 | 2010 LLVM Developers’ Meeting | Portable Native Client |
| Title | Authors | Published in |
|---|---|---|
| Language-Independent Sandboxing of Just-In-Time Compilation and Self-Modifying Code | Jason Ansel, Petr Marchenko, Úlfar Erlingsson, Elijah Taylor, Brad Chen, Derek Schuff, David Sehr, Cliff L. Biffle, Bennet S. Yee | ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), 2011 |
| Adapting Software Fault Isolation to Contemporary CPU Architectures | David Sehr, Robert Muth, Cliff L. Biffle, Victor Khimenko, Egor Pasko, Bennet S. Yee, Karl Schimpf, Brad Chen | 19th USENIX Security Symposium, 2010, pp. 1-11 |
| Native Client: A Sandbox for Portable, Untrusted x86 Native Code | Bennet S. Yee, David Sehr, Greg Dardyk, Brad Chen, Robert Muth, Tavis Ormandy, Shiki Okasaka, Neha Narula, Nicholas Fullagar | IEEE Symposium on Security and Privacy (Oakland ‘09), 2009 |
| PNaCl: Portable Native Client Executables | Alan Donovan, Robert Muth, Brad Chen, David Sehr | February 2010 |
In these articles outside developers and Google engineers describe their experience porting libraries and applications to Native Client and Portable Native Client. They share their insights and provide some tips and instructions for how to port your own code.
Andre Weissflog ported his Nebula3 engine to Portable Native Client (see his demos). He discusses build systems and app entry.
Fire Hose Games developed a new webgame Go Home Dinosaurs. It features tower defense, dinosaurs, and good old fashioned BBQ. This article explains their experiences developing for Native Client including useful lessons learned to help you get started.
Fuzzycube Software, traditionally a mobile game development studio, talks about their adventure into the web, porting the undead decathlon Zombie Track Meat from Objective C to Native Client.
Carbon Games chose Native Client as a solution for cross-platform delivery of their PC game AirMech to Linux and Macintosh in lieu of native ports. They describe the porting process on their blog.


fun trackLoaded(track: AudioTrack): Unit
Called by Lavaplayer whenever a single track is loaded successfully, completing the result.
track - The AudioTrack object.
track


Get three equal-width columns starting at orientation portrait and scaling to orientation landscape. On orientation portrait, the columns will automatically stack.
1
2
3
Three unequal columns
Get three unequal columns starting at orientation portrait and scaling to orientation landscape. On orientation portrait, the columns will automatically stack.
Remember, unequal columns are prescribed by the Pareto principle widths of 80/20 and 20/60/20.
1/2
Two unequal columns with content on the left
Get two unequal columns starting at orientation portrait and scaling to orientation landscape. On orientation portrait, the columns will automatically stack.
Remember, unequal grid columns are prescribed by the Pareto principle widths of 80/20 and 20/60/20.
3/4
Two unequal columns with content on the right
Get two unequal columns starting at orientation portrait and scaling to orientation landscape. On orientation portrait, the columns will automatically stack.
Remember, unequal columns are prescribed by the Pareto principle widths of 80/20 and 20/60/20.
3/4
Full width single column
An
 displays full width.
Alternatively, a single
 also displays full width.
Complex nested equal columns
Nesting gives you columns starting at orientation portrait and scaling to orientation landscape, within the larger column. On orientation portrait, the columns will automatically stack.
1
nest 1
nest 2
2
Orientation
Portrait & Landscape views make Ambient ideal for both responsive web design and adaptive content.
Column clearing
Clear layout sections (columns) with article, header, footer and nav base elements as well as 100% width elements h1, h2, h3, h4, h5, h6, p, hr.
Example columns
1 equal column
Full width

Full width


Vim documentation: usr_01
main help file*usr_01.txt* For Vim version 7.2. Last change: 2008 May 07 VIM USER MANUAL - by Bram Moolenaar About the manuals This chapter introduces the manuals available with Vim. Read this to know the conditions under which the commands are explained. |01.1| Two manuals |01.2| Vim installed |01.3| Using the Vim tutor |01.4| Copyright Next chapter: |usr_02.txt| The first steps in Vim Table of contents: |usr_toc.txt|
*01.1* Two manuals The Vim documentation consists of two parts: 1. The User manual Task oriented explanations, from simple to complex. Reads from start to end like a book. 2. The Reference manual Precise description of how everything in Vim works. The notation used in these manuals is explained here: |notation| JUMPING AROUND The text contains hyperlinks between the two parts, allowing you to quickly jump between the description of an editing task and a precise explanation of the commands and options used for it. Use these two commands: Press CTRL-] to jump to a subject under the cursor. Press CTRL-O to jump back (repeat to go further back). Many links are in vertical bars, like this: |bars|. An option name, like 'number', a command in double quotes like ":write" and any other word can also be used as a link. Try it out: Move the cursor to CTRL-] and press CTRL-] on it. Other subjects can be found with the ":help" command, see |help.txt|.
*01.2* Vim installed Most of the manuals assume that Vim has been properly installed. If you didn't do that yet, or if Vim doesn't run properly (e.g., files can't be found or in the GUI the menus do not show up) first read the chapter on installation: |usr_90.txt|. *not-compatible* The manuals often assume you are using Vim with Vi-compatibility switched off. For most commands this doesn't matter, but sometimes it is important, e.g., for multi-level undo. An easy way to make sure you are using a nice setup is to copy the example vimrc file. By doing this inside Vim you don't have to check out where it is located. How to do this depends on the system you are using: Unix: :!cp -i $VIMRUNTIME/vimrc_example.vim ~/.vimrc MS-DOS, MS-Windows, OS/2: :!copy $VIMRUNTIME/vimrc_example.vim $VIM/_vimrc Amiga: :!copy $VIMRUNTIME/vimrc_example.vim $VIM/.vimrc If the file already exists you probably want to keep it. If you start Vim now, the 'compatible' option should be off. You can check it with this command: :set compatible? If it responds with "nocompatible" you are doing well. If the response is "compatible" you are in trouble. You will have to find out why the option is still set. Perhaps the file you wrote above is not found. Use this command to find out: :scriptnames If your file is not in the list, check its location and name. If it is in the list, there must be some other place where the 'compatible' option is switched back on. For more info see |vimrc| and |compatible-default|. Note: This manual is about using Vim in the normal way. There is an alternative called "evim" (easy Vim). This is still Vim, but used in a way that resembles a click-and-type editor like Notepad. It always stays in Insert mode, thus it feels very different. It is not explained in the user manual, since it should be mostly self explanatory. See |evim-keys| for details.
*01.3* Using the Vim tutor *tutor* *vimtutor* Instead of reading the text (boring!) you can use the vimtutor to learn your first Vim commands. This is a 30 minute tutorial that teaches the most basic Vim functionality hands-on. On Unix, if Vim has been properly installed, you can start it from the shell: vimtutor On MS-Windows you can find it in the Program/Vim menu. Or execute vimtutor.bat in the $VIMRUNTIME directory. This will make a copy of the tutor file, so that you can edit it without the risk of damaging the original. There are a few translated versions of the tutor. To find out if yours is available, use the two-letter language code. For French: vimtutor fr On Unix, if you prefer using the GUI version of Vim, use "gvimtutor" or "vimtutor -g" instead of "vimtutor". For OpenVMS, if Vim has been properly installed, you can start vimtutor from a VMS prompt with: @VIM:vimtutor Optionally add the two-letter language code as above. On other systems, you have to do a little work: 1. Copy the tutor file. You can do this with Vim (it knows where to find it): vim -u NONE -c 'e $VIMRUNTIME/tutor/tutor' -c 'w! TUTORCOPY' -c 'q' This will write the file "TUTORCOPY" in the current directory. To use a translated version of the tutor, append the two-letter language code to the filename. For French: vim -u NONE -c 'e $VIMRUNTIME/tutor/tutor.fr' -c 'w! TUTORCOPY' -c 'q' 2. Edit the copied file with Vim: vim -u NONE -c "set nocp" TUTORCOPY The extra arguments make sure Vim is started in a good mood. 3. Delete the copied file when you are finished with it: del TUTORCOPY
*01.4* Copyright *manual-copyright* The Vim user manual and reference manual are Copyright (c) 1988-2003 by Bram Moolenaar. This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, v1.0 or later. The latest version is presently available at: http://www.opencontent.org/openpub/ People who contribute to the manuals must agree with the above copyright notice. *frombook* Parts of the user manual come from the book "Vi IMproved - Vim" by Steve Oualline (published by New Riders Publishing, ISBN:<PHONE_NUMBER>). The Open Publication License applies to this book. Only selected parts are included and these have been modified (e.g., by removing the pictures, updating the text for Vim 6.0 and later, fixing mistakes). The omission of the |frombook| tag does not mean that the text does not come from the book. Many thanks to Steve Oualline and New Riders for creating this book and publishing it under the OPL! It has been a great help while writing the user manual. Not only by providing literal text, but also by setting the tone and style. If you make money through selling the manuals, you are strongly encouraged to donate part of the profit to help AIDS victims in Uganda. See |iccf|.
Next chapter: |usr_02.txt| The first steps in Vim Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: top - main help file


Mattis Purus Vulputate
Lorem ipsum dolor sit amet consec te tur adipiscing elit, sed do eius mod tempor incididunt ut labore et dolore magna aliqua.
This style guide is intended to help new designers, developers and content managers understand the structure and patterns of Crossroads.net.
:
in property declarations.{
in rule declarations.#000
unless using rgba()
.margin: 0;
instead of margin: 0px;
.Here are some good examples that apply the above guidelines:
// Example of good basic formatting practices .styleguide-format { color: #000; background-color: rgba(0, 0, 0, .5); border: 1px solid #0f0; } // Example of individual selectors getting their own lines (for error reporting) .multiple, .classes, .get-new-lines { display: block; }
In general, the Sass files for the project will live in /app/scss
. Within that directory, there are subdirectories that we use to organize the code.
base/
folder holds what we might call the boilerplate stuff for your project. helpers/
folder gathers all Sass tools and helpers we’ll use across the project, including variables and overrides to Bootstrap. layout/
directory contains files which set up styles for the main sections of the layout (header, footer, and so on). modules/
folder. While layout/
is kind of macro (defining the global wireframe), components/
is more micro. It can contain all kinds of specific modules like a slider, a loader, a widget, or anything along those lines. pages/
folder and in a file named after the page.app/ | └── scss/ | ├── base/ | ├── brand.scss # Crossroads colors, etc | ├── typography.scss # Typography rules | ... # Etc… | ├── helpers/ | ├── style-overrides.scss # Override Bootstrap styles | ├── variable-overrides.scss # Override Bootstrap variables | ... # Etc… | ├── layout/ | ├── footer.scss # Footer styles | ├── forms.scss # Form styles | ... # Etc… | ├── modules/ | ├── billboard.scss # Ad Boxes | ├── brandbar.scss # Brandbar | ... # Etc… | ├── pages/ | ├── home.scss # Home specific styles | ├── blog.scss # Blog specific styles | ... # Etc… | | └── main.scss # primary Sass file
If a component of the site is turned into an Angular module, then the structural styling for the module will live outside of the app/scss
directory. The styling that is required by the module to work on it's own should live in that's module directory. An example of this is the Profile module. If you have styling for the module that is just theming (colors, typeography, etc) and not structural, then it should live in the scss folder: app/scss/modules/profile.scss
modules/ └── profile/ # Example using the Profile module └── app/ └── css └── module.scss # Non-theme module styles ... # Etc…
app/ └── scss/ └── modules/ └── profile.scss # Theme styles for the Profile module
is-
as in is-hidden
or is-collapsed
..pod
, .pod-constrained
, .pod-callout
)Elements that occur exactly once inside a page can use IDs, otherwise, use classes. When in doubt, use a class name.
#selector
) make sure that you have no more than one in your rule declaration. A rule like #header .search #quicksearch { ... }
is considered harmful..listings-layout.bigger
use rules like .listings-layout.listings-bigger
. Think about ack/grep
ing your code in the future.disabled
, mousedown
, danger
, hover
, selected
, and active
should always be namespaced by a class (button.selected
is a good example).We use Autoprefixer to parse CSS and add vendor prefixes to CSS rules using values from Can I Use. For that reason, you do not need to include any vendor prefixes in your SCSS.
We use inline SVGs with the <use>
element for icons. For more information as to why, read here.
Used to indicate the site is waiting for something to load. Use <preloader full-screen='false'> </preloader>
to display in an element. When used for a whole page, you just have to make sure all of your data is being resolved in the route. This uses <preloader full-screen='true'> </preloader>
.
We've created a hierarchy of layouts as follows:
base: Basic structure, including head elements | ├── default: Adds a Header and Footer | | | └── container: Adds the container wrapper | | | ├── container_row: Adds the row wrapper | | | | | ├── one_column: Central content section only | | | | | | | └── post: Adds post meta data (title and date) | | | | | ├── left_column: Adds a left sidebar section | | | | | └── right_column: Adds a right sdiebar section | | | └── row: Adds the row wrapper, without a container wrapper | | | └── full_width: Spans the entire page width | └── full_page: No header or footer, complete flexibility within the body
Click to view example:
| # | First Name | Tables |
|---|---|---|
| 1 | Michael | Are formatted like this |
| 2 | Lucille | Do you like them? |
| 3 | Success | |
| 4 | Danger | |
| 5 | Warning | |
| 6 | Active |
| # | First Name | Tables |
|---|---|---|
| 1 | Michael | This one is bordered and condensed |
| 2 | Lucille | Do you still like it? |
This is a lead paragraph.
This is an ordinary paragraph that is long enough to wrap to multiple lines so that you can see how the line spacing looks.
Muted color paragraph.
Warning color paragraph.
Danger color paragraph.
Info color paragraph.
Success color paragraph.
Emphasis color paragraph.
This is text in a small
wrapper. NBD, right?
Here's what a blockquote looks like in Bootstrap. Use small
to identify the source.
function preFormatting() { // looks like this; var something = somethingElse; return true;}
The Primary .btn-primary
is used as the Call to Action button. It should never be used as a standard button type.
The Standard .btn-standard
is to used for all buttons that aren't the Call to Action.
The Secondary .btn-secondary
is used as a secondary call to action. It should never be used as a standard button type, or as the primary call to action.
The Standard (Dark) .btn-standard-dark
is used as a standard button, but when the background color of the containing container calls for it.
This is the bootstrap default button .btn-default
that is used by many third party libraries. It can be treated as a standard button, primarily, when attached to a form element. i.e. Datepicker.
Use .btn-block-mobile
on form submit buttons so they are smaller on desktop, and expand to full width on mobile.
These buttons are to be used only inside an alert as shown in the example below.
The .disabled
class is added to a button while loading.
Primary button example
Primary button example
Standard button example
Standard button example
We use IMGIX to serve our images. This service assures the correct image size is delivered to the browser based on the size of the container and viewport of the device used to view the page.
Images are hosted on Amazon S3 but served from IMGIX, use the data-src="//crds-cms-uploads.imgix.net/content/images/
along with class imgix-fluid
to take advantage of this service.
Example:

Note:
DO NOT populate the src attribute or the image will load twice, duplicating http requests.
img-rounded
img-circle
img-thumbnail
For background images, the data-src
needs to exist on the contain with the background along with class imgix-fluid-bg
. Use class img-background
to make the image cover the contain and center.
Example:

BACKGROUND IMAGES

Note:
DO NOT populate the src attribute or the background image will load twice, duplicating http requests.
.panel
, .text-muted
and .small
classes.
Growl-style alerts will appears in a fixed position in the top center of the page.
Donec id elit non mi porta gravida at eget metus. Maecenas sed diam eget risus varius blandit.
Donec id elit non mi porta gravida at eget metus. Maecenas sed diam eget risus varius blandit.
Donec id elit non mi porta gravida at eget metus. Maecenas sed diam eget risus varius blandit.
Text is centered both vertically and horizontally.
"It's a great feeling to serve others who are less fortunate in our city, and it's what God calls us to do."
Pellentesque {{styleguide.dynamicTooltipText}}, sit amet venenatis urna cursus eget nunc scelerisque viverra mauris, in aliquam. Tincidunt lobortis feugiat vivamus at left eget arcu dictum varius duis at consectetur lorem. Vitae elementum curabitur right nunc sed velit dignissim sodales ut eu sem integer vitae. Turpis egestas bottom pharetra convallis posuere morbi leo urna, fading at elementum eu, facilisis sed odio morbi quis commodo odio. In cursus delayed turpis massa tincidunt dui ut.
I can even contain HTML. Check me out!
Popover on desktop, collapsable well on mobile
Lorem ipsum dolor sit amet consec te tur adipiscing elit, sed do eius mod tempor incididunt ut labore et dolore magna aliqua.
Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Maecenas faucibus mollis interdum.
Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit.
Large (32 x 32px)
Medium (20 x 20px)
Small (16 x 16px)
With Tooltips
With Custom URL Info