Pyxer0.7.3
Yet another Python Framework
(C)opyright by Dirk Holtwick, Germany
<EMAIL_ADDRESS>http://www.pyxer.net
The Pyxer Server is a very simple Python Web Framework that aims to makes starting a new project as easy as it can be. It still works respecting the MVC concept but the files can be mixed in one directory. For a high end solution you should maybe consider using Pylons,Django, TurboGears and similar.
This work is inspired by http://pythonpaste.org/webob/do-it-yourself.html.
The Google App Engine (GAE) in version 1.1 offers a very restricted Python environment and the developer as to ship arround a lot of limitations. Pyxer helps on this point by providing solutions that also work together with the WSGI Framework Paste by Ian Bicking. This way you get the best from both sides: GAE and Paste. To achieve this, some other common third party tools are used like WebOb and VirtualEnv also by Ian Bicking. The templating s based on Genshi.
Install Pyxer using
easy_install
from SetupTools:
$ easy_install pyxer
All required packages (
webob
,
html5lib
,
beaker
) should be installed automatically if needed.
If you want to use Google App Engine you have to install it separately.
At first set up a new Pyxer project using the Pyxer command line tool like this:
$ pyxer init myexample
In the newly created directory
myexample
you will find a directory structure like the following (on Windows
bin
will be called
Scripts
):
bin/ public/ lib/
Place your files in the
public
directory.
To start the server you may choose between the Paster-Engine:
$ xpaster serve
Or the GAE-Engine:
$ xgae serve
Or use Pyxer command line tool again to use the default engine (which is WSGI from Python standard lib):
$ pyxer serve
But you may also use Pyxer without using the command line tools e.g. like this:
$ paster serve development.ini
For a simple "Hello World" just put an
index.html
file into the
public
directory with the following content:
Hello World
This works just like a static server. To use a controller put the file
__init__.py
into the same directory with the following
content:
@controller def index(): return "Hello World"
Controller, templates and static files are placed in the same
directory (usually
public
). First Pyxer
looks for a matching controller. A controller is defined in the
__init__.py
file and decorated by using
@controller
which is defined in
pyxer.base
.
from pyxer.base import * @controller def index(): return "Hello World"
This controller adds the
GET
and
POST
parameters as arguments to the function call (like in CherryPy):
from pyxer.base import * @expose def index(name="unknown"): return "Your name is " + name
If no matching controller can be found the one named
default
will be called:
from pyxer.base import * @controller def default(): return "This is path: " + request.path
This example can be called via
/
or
/index
.
To use a Pyxer template with this file you may use the
render()
function or just return
None
(that is the same as
not using
return
) and the matching template will be used, in this
case
index.html
. The available objects in the template
are the same as used by Pylons:
c
= context,
g
= globals and
h
= helpers.
from pyxer.base import * @controller def index(): c.title = "Hello World"
By default a Genshi like templating language is used and output is specified as
xhtml-strict
. You may want to change that for certain documents e.g. to render a plain text:
from pyxer.base import * @controller(output="plain") def index(): c.title = "Hello World"
Or use another template:
from pyxer.base import * @controller(template="test.html", output="html") def index(): c.title = "Hello World"
Or use your own renderer:
from pyxer.base import * def myrender(): result = request.result return "The result is: " + repr(result) @controller(render=myrender) def index(): return 9 + 9
To return data as JSON just return a dict or list object from your controller:
from pyxer.base import *
@controller
def index():
return dict(success=True, msg="Everything ok")
Session are realized using the Beaker
package. You can use the variable
session
to set and get values. To store the session data use
session.save()
. Here is a simple example of a counter:
from pyxer.base import *
@controller
def index():
c.ctr = session.get("ctr", 0)
session["ctr"] = c.ctr + 1
session.save()
??? XXX
#Looks for a controller (foo.bar:bar)
If the controller returns a dictionary this will be applied to template (step 2)
To publish your project to GAE you may also use the Pyxer command line tool. First check if your
app.yaml
file contains the right informations like the project name and version infos. Then just do like this:
$ xgae upload
Be aware that Pyxer first needs to fix the paths to be relative instead of absolute to make them work on the GAE environment. If you choose not to use Pyxer for uploading you have to do this fix up explicitly before you upload your application like this:
$ xgae fix
The routing in Pyxer is based on some conventions by default but can be extended in a very flexible and easy way. By default all public project data is expected to be found in the folder
public
. If you just put static content there it will behave like you expect it from a normal webserver.
To add controllers to it, start by creating the
__init__.py
file. This makes the folder become a Python package and Pyxer routing will at first evaluate this one before looking for static content.
The easiest controller looks like this:
@controller def index(): return "Hello World"
This will be called with the following URLs:
http://<domain>/
http://<domain>/index
http://<domain>/index.html
http://<domain>/index.htm
If the controller has another name as
index
, these corresponding URLs will match:
http://<domain>/<controller>
http://<domain>/<controller>.html
http://<domain>/<controller>.htm
There is one other special controller named
default
. If this one exists all non matching request will be passed to this controller.
If you have sub packages in your
public
folder like
foo
and
foo.bar
, these will be matched by the corresponding path and in this package the rules described before will apply:
http://<domain>/foo/bar/...
Everything that does not match will be considered static content. Pyxer tries to match the path relatively to the last matched package.
If you need more sophisticated routing or want to include external packages that are not placed under the
public
folder you may add your own routing. This is as simple as adding this line to your global space of your module:
router = Router()
Important! The name of this object has to be
router
by convention!
To add your own ...
router.add("content-{name}", "content")
This matches all URL starting with
content-
while the rest will be saved in
req.urlvars
as key called
name
. For example the URL
/content-myentry
will result in a call of the controller
content
where
req.urlvars["name"]=="myentry"
.
For more complicated routes you may also use the
add_re
method, which offers more flexibility. Here is an example that matches the rest of the path after "content/" and passes the value to the controller via
req.urlvars["path"]
:
router.add_re("^content/(?P<path>.*?)$", controller="index", name="_content")
In your templates you should try to often use the
h.url()
helper. It calculates a URL relative to the matched routes base. For example if we take a look at the
add_re
routing example we can see that the
path
component is under the content component. Let's say we have a controller called
edit
we like to call from the page created by
index
, then we can not write it like this:
Edit
That does not always work because this page could have been called via
index?path=xyz
or via
content/xyz
. To make sure we are get the correct URL corresponding to our modules controller we could write it like this:
Edit
Or even better using the feature of
h.url
that lets you append GET parameters as named arguments of the helper function:
Edit
If you use
redirect
it will call the
url
helper too so that relative parts will be translated to absolute ones.
Pyxer offers yet another templating language that is very close toGenshi and Kid. Beause Genshi did not work with Google App Engine when Pyxer was started, the new templating tools have been implemented.
The default templating works similar to most known other
templating languages. Variables and expressions are realized like
$<varname>
(where
<varname>
may
contain dots!) and
${<expression>}
:
Hello ${name.capitalize()}, you won $price. $item.amount times $item.name.
These are also known form templating languages like Genshi and Kid. They are used like this:

Welcome $name

Or this:

Welcome $name

These are the available commands. They behave like the Genshi equivalents:
If HTML comments start with "!" they are ignored for output:

The implementation of layout templates is quite easy. Place the
py:layout
command in the

tag and pass a Template object. For loading you can use the convenience function
load()
.
 ...
In the template file you can then access the original template stream with the global variable
top
. Use CSS selection or XPATH to access elements.
CSS Selectors
CSS Selectors ending with
*
(notice the space) return just the inner texts and elements of the matched pattern.
You are free to use any database model you like. For GAE you do not have much choice. But for other engines I recommend using Elixir. You should try to separate your controller stuff from your database stuff by creating a Python module called
model.py
. For a GAE project this may look like this:
from google.appengine.ext import db from google.appengine.api import users class GuestBook(db.Model): name = db.StringProperty() date = db.DateTimeProperty(auto_now_add=True)
While using Elixir you can start like this:
xxx
XXX See the GuestBook example for a complete demo.
To make deployment of GAE projects easy a virtual environment (VM) is created. If you start GAE via
xgae
or paster via
xpaster
these virtual environments will automatically be used. Pyxer determines the root of the VM by looking for the
app.yaml
file. If you have to enter the VM for installing packages or for other reasons you may do it like this:
$ pyxer vm (vm)$ easy_install html5lib (vm)$ exit
You can also use the usual functions as described in virtualenv by Ian Bicking.
$ Scripts\activate.bat
$ easy_install SomePackageName $ deactivate
And for other Unix like system like this:
$ source bin/activate $ easy_install SomePackageName $ deactivate
If you decide to develop Pyxer you may run into the following problem: each project comes with an own virtual machine (VM) and its own installation of Pyxer in it. So if you change the development version it will have no effect on your installation. Therefore a command
pyxer
is added that synchronizes the Pyxer installation in the VM with the development version:
$ pyxer pyxer
BTW: To install the development version using SetupTools do like this:
$ cd <Path_to_development_version_of_Pyxer> $ python setup.py develop
You will have to repeat this each time the version of Pyxer changes, because otherwise the command line tools do not work.
Since a Pyxer project is based on Paster, writing test cases is quite the same. The most simple test looks like this. (We asume that the test file to will be placed in the root of the project. For normal testing you have do add the root directory, where
app.yaml
is placed, to
sys.path
and modify the
loadapp
argument.):
from paste.deploy import loadapp from paste.fixture import TestApp import os.path app = TestApp(loadapp('config:%s' % os.path.abspath('development.ini'))) res = app.get("/") assert ('<body' in res)
For more informations about testing look here http://pythonpaste.org/testing-applications.html.
xxx
xxx
If you have installed
mod_python
the deployment of your project is as simple as writing the following five lines. Just copy them to your sites configuration and adjust the absolute path to the
development.ini
:
<Location "/">
SetHandler python-program
PythonHandler paste.modpython
PythonOption paste.ini /<absolute_path_to_ini_file>/development.ini
</Location>
Pyxer configuration is placed in the configuration file used by Paster or GAE respectively
development.ini
or
gae.ini
. If both are not available Pyxer looks into
pyxer.ini
. Example:
[pyxer] session = beaker
XXX
Pyxer uses support different so called "engines" to publish a project. Most of them need own configurations and a well prepare environment to work fine. These are very specific to each of these engines and Pyxer tries to make the setup as easy as possible
Common options:
--host=HOST
(default: <IP_ADDRESS>)
--port=PORT
(default: 8080)
$ pyxer serve
Options:
--reload
XXX
With the virtual machine:
$ xpaster serve --reload
Without the virtual machine:
$ paster serve development.ini
$ xgae serve
To make websites safe against abuse Pyxer integrates support for reCaptcha. You have to register your web sites URL for free there to get a private and public key. To use them see the following demo:
from pyxer import recaptcha CAPTCHA_PUBLIC = "XXX" CAPTCHA_PRIVATE = "XXX" @expose def myform(**kw): # This creates the HTML code for the captcha input field c.captcha = recaptcha.html(CAPTCHA_PUBLIC) # Do some more form stuff here pass # Test if the captcha has been correct if recaptcha.test(CAPTCHA_PRIVATE): # Do something like storing the data into the database pass # After success jump to another page return redirect("success_info")
The corresponding template
myform.html
could look like this:
<form action="">  $c.captcha <input type="submit" /> </form>
Handling of timezones is tricky in Python and on GAE.  First you should install pytz like this:
$ pyxer vm (vm)$ easy_install pytz
If you want to show a datetime from Googles datastore you can now do like this in your templates:
Local time ${h.strftime(entry.added, '%H:%M', 'Europe/Berlin')}
Simple upload GAE:
@expose
def upload(image=None): if image is not None: Images(image=db.Blob(image.file.read())).put()
Simple out:
@expose def show(): image = Images.all().get() #???
if image.image:
response.headers['Content-Type'] = 'image/jpeg'
response.body_file.write(image.image)
return "NO IMAGE"
index
: Name of the root controller
default
: Name of the collecting controller
router
: Name of the routing object
session
: Session
req
,
request
resp
,
response
cache
c
g
h
config


Ruby Regular Expressions
Basic Pattern Matching, MatchData Objects & Lookarounds
November 29, 2014
Since beginning DBC 8 weeks (EIGHT. WEEKS. Has it gone by that fast?!), I've encountered the concept of regular expressions a few times. Every time, I tried to tackle the concept within the context of learning another new Ruby concept, it was difficult to comprehend. So, now that I have a foundational understanding of Ruby now, I decided that it was time to get at least a functional understanding of the concept before the on-site phase began.
Regular expressions, or regexps, are patterns to match the contents of a string. They test whether a string has a given pattern. They also can extract portions of that match. Ruby regular expressions are Objects because everything in Ruby is an Object. This means that you can pass methods to these objects. It also means that you can set them to variables.
Basic Pattern Matching
Essentially, you are asking, "Does this string contain this pattern?" It almost serves as a search function for a string object. You're typing in the pattern, or substring, which you place within backslash.
Positive operator =~
- Asks if this string contains this pattern
- This returns the character number where the match begins
Negative operator !~
- Asks if this string does NOT contain this pattern
- This returns true/false
/hazelnut/ =~ "cinnamon hazelnut macchiato" => returns 9 because that is where the character number where the match "hazelnut" begins.
/vanilla/ !~ "cinnamon hazelnut macchiato" => returns true because the string does not contain the substring "vanilla"
MatchData Objects
Setting my_match to a MatchData Object, you have access to a lot more functionality with Regular Expressions. You are creating an instance of the MatchData Class, which allows you to access additional methods and to create, essentially, something similar to an array to access the elements within.
First, you create the my_match object.
string = "I can help the next person in line." my_match = /person/.match(string) => returns
This returns in an instance of MatchData class being created, which is an Object. You can, thus, call some methods on it.***
Calling to_s produces the string of the matched pattern
my_match.to_s => "person"
Calling the pre_match method returns the substring before the match
my_match.pre_match => "I can help the next "
Calling the post_match method returns the substring after the match
my_match.post_match => " in line"
Capture Groups
You can use .* which means any character appearing any number of times along with () parantheses to separate a string into groups. This will store matches for these groups to be called later on.
For instance,
/(.*)person(.*)/
The (.*) means a substring containing any character of any character length before or after the substring pattern "person".
my_match = /(.*)person(.*)/.match(string) my_match.captures => ["I can help the next ", " in line"]
You can access the MatchData object my_match in the same way as an array with one key difference. The zero index returns the entire string. So, in order to access the first element of the MatchData object, you would call my_match[1].
Lookarounds
Up until now, we've looked at regular expressions in terms of basic pattern matching. However, beyond simply matching a pattern, we can also take it one step further by defining the context for that particular match. Essentially, you can return a match when and only when it is surrounded by a certain context.
The operators:
- Positive Lookahead: ?=
- Negative Lookahead: ?!
- Positive Lookbehind: ?<=
- Negative Lookbehind: ?
Lookaheads looks for the context ahead of the match for main pattern, whereas lookbehinds match a pattern everytime it is preceded by another pattern.
Reviewing Regular Expression after a more foundational understanding of Ruby proved to be more helpful. I think that with this functional background undestanding of regexps, it will be helpful with writing Ruby programs in the future, particularly with parsing through substrings within strings.
***All my example strings have been things I've been hearing for the past few hours. I've been sitting at a cafe for way too long, if you can't tell...


This is a paragraph.
This is a paragraph.
This is a paragraph.
This paragraph contains a lot of lines in the source code, but the browser ignores it.
This paragraph
contains a lot of spaces
in the source code,
but the browser
ignores it.
The number of lines in a paragraph depends on the size of your browser window. If you resize the browser window, the number of lines in this paragraph will change.


Joan needs to find the roll of stamps she has so she can mail a note. Then she can go on a camping trip. She thinks the roll of stamps is on the desk by the globe. It is not there. Joan's stuff is scattered so she cannot find the roll of stamps. Joan decides to clean the clutter. She hangs her robe and yellow coat on the rack. She makes the bed and sets the foam pillows in place. She folds her clothes. She wipes the desk and globe with a rag. Dust floats in the light from the window. She still cannot find the roll of stamps. Mom hears Joan stomp around the room. "Joan, do not stomp!" exclaims Mom. "I need my stamps," groans Joan. "I have the stamps!" says Mom. The stamps were not in Joan's room, but it was so cluttered, she did not know!
in-context


Lilian Li's work South of Railway, Cangdong Road is a video projection of a slideshow on a floating screen. Lilian's body becomes the living canvas for the images; an embodiment of these photographs. A shadow of its former past, this site is where Lilian lived and laughed. Pursuing other ventures in life she has not returned in 17 years. These images become tattoos on her body, a memory that must not be abandoned. As a result Lilian is a witness to this derelict site. Nowadays buildings look alike with gentrification of communities leading to a slew of tower blocks. She used to go back to revel in nostalgia, but alas the government's ambition has ultimately desecrated the place where Lilian laughed and lived.


I'm thinking ...
Game won!
Game lost!
Draw!
New Game - White
New Game - Black
Links
Rules
My LinkedIn Page


Formatters are responsible for formatting LogEvent data. An Outputter owning a Formatter will invoke the Log4r::Formatter#format method prior to writing.
Log4r::BasicFormatter - default
Log4r::PatternFormatter - most flexible. See log4r/formatter/patternformatter.rb
Log4r::SimpleFormatter - like BasicFormatter for Strings only (low noise)
Log4r::ObjectFormatter - for inspecting objects
Log4r::NullFormatter - twirls on its feet and does nothing
Specify the Formatter and its class (as type) under an <outputter> directive:
<outputter name="someout" type="sometype"> <formatter type="Log4r::BasicFormatter"/> </outputter>
As explained in log4r/configurator.rb, the hash arguments you would normally pass to new are specified as XML parameters. Only PatternFormatter has any of these.
Building a custom Formatter is extremely easy. Just define a class that extends Formatter and override the Formatter#format method. Then give it to any interested Outputters.
If you’re interested in setting up your custom formatters in XML, please take a look at log4r/configurator.rb.
See Log4r::LogEvent
Version |
$Id$ |


webc-app-loader is an internal component used only by webc-app-router.
When webc-app-router is loaded, it brings in DOM a series of components from stencil-router, including an array with many components of type stencil-route. Each generated route will load a webc-app-loader.


--- layout: post esbma_id: 3000 title: Support for git's fast-import format in Veracity date: 2011-09-09 10:00:00 ---
Version 1.1 (coming sometime in the next few weeks) of Veracity will have support for import and export using the fast-import format popularized by git. (If you are interested in trying this feature before the 1.1 release, grab a recent nightly build.)
I was initially a bit resistant to having this feature. Getting people to switch from git to Veracity isn't really a big focus for us, so I didn't think we needed it.
But it seems like the fast-import format is becoming a de facto standard for interchange of version control data. In addition to git itself, it is now possible to export in this format from Mercurial, Bazaar, Subversion and Perforce. By supporting fast-import, we make it possible for a wide range of users to import their data and give Veracity a test drive.
Veracity can export into this format as well. Some people will try Veracity and decide it is not for them. They can export their Veracity repository into a fast-import file and take it to git or Mercurial or wherever they want. Hopefully that makes it a little less scary to give young Veracity a closer look.
To import into Veracity, first you need to get your repo into a fast-import file. The steps to do this will vary depending on what VCS you are using now. For example, from git, it looks something like this:
git fast-export --all --signed-tags=strip > ~/my_repository.fi
Then create a new Veracity repo using that import file:
vv fast-import ~/my_repository.fi name_of_new_repo
To go in the other direction:
vv fast-export name_of_repo ~/my_repository.fi
Which should produce a fast-import file that can be imported into whatever participating VCS you choose. For example, importing into git would look like this:
mkdir new_git_repo cd new_git_repo git init git fast-import < ~/my_repository.fi
This feature is new and is currently being tested. I won't be surprised if there are some wrinkles that need to be ironed out. But we've successfully handled some significant test cases.
Any questions about this feature should go to our Q&A area on the Veracity website.
Enjoy!


0450 341 037 /<EMAIL_ADDRESS>May 2018 - Present
Senior Developer (Contract)
React, Typescript, Node.js, ES6, Webpack, AEM
Jun 2017 - Apr 2018
Senior Developer
AEM, Amazon AWS, Node.js, ES6, Java, React, Redux, Webpack
Dec 2016 - Jun 2017
Senior Front-end Developer
AEM, Node.js, ES6, Java, React, Webpack, PostCSS
Jun 2016 - Dec 2016
Senior Developer (Contract)
PHP, ES6, WordPress, Magento, React, Webpack, PostCSS
Jul 2015 - Jun 2016
Web Developer (Contract)
PHP, ES6, Angular, WordPress, Magento
Nov 2014 - Jul 2015
Web Developer
PHP, JavaScript, WordPress, Node.js, Gulp, SASS
Dec 2014 - Feb 2015
Front end Developer (Contract)
Node.js, JavaScript, Angular
Nov 2013 - Jan 2014
Web Developer (Contract)
PHP, JavaScript, WordPress, SASS
2010 - 2011
Software Engineer
OpenEdge, PHP, JavaScript
2009 - Present
I've been involved on a number of smaller projects as a contractor. Highlights include:
2018
Typescript, React, Redux, Fastify, Node.js, Service Workers
2017
Typescript, React, Redux, GraphQL, Node.js, Service Workers
2015
github.com/manugill/catbox-server
Node.js, Socket.IO, Java (Android app)
2014
Node.js, Ghost, ES6, LESS
July 2014
ES6, SASS
2012
2015
Bachelor of Computer Science
Reading epic fantasy novels (eagerly waiting for the next Game of Thrones book), occasional photography and daydreaming about traveling the world.
Provided upon request.


A useful modern JavaScript solution that helps your website users to add (install) a progressive web application (PWA) to the Home screen of their mobile iOS device.
Designed for the latest 4 major versions of iOS Safari 9.x-12.2+.
Star


Dashboard
Add New Product
About Us
Dashboard
Add New Product
About Us
Product Dashboard
Current Products
Add New Product
New Product Form
Product Name
Product description
Select product category
Business Products
Cards
Calender
Fine Arts
Photo Prints
Poster
Photo Gifts
PhotoBook
Sample Set
Wall Decors
About Us
Saal Digital - Ihr Partner für den professionellen Auftritt Werbeprodukte in HighEnd Qualität


What was the problem?
Syntax errors!! I would get them constantly, but find it so difficult to fix them.
What problem solving techniques did you use?
I broke down the error, figuring out exactly where abouts in my code I had gone wrong, then read over it to make sure I had everything correct. I would try adding things or taking things away until the error was fixed.
How did you feel throughout the process?
Frustrated, useless and upset when it didnt go right - but when it did work I felt on top of the world, and I felt like I could do anything!
What did you learn?
Be patient with yourself, take time to slowly and carefully go over these things, the more you rush the harder it is to pick up on these errors, and its generally why you make mistakes in the first place - if you're always rushing.
Pseudocode
It is a text-based method for preparing the code that you want to create. It's written in English, but its a useful tool to give you step by step to give you the result you want. I use this form of problem solving because it helps prevent creating a problem in the first place.
Trying something
The easiest way of problem solving - if it doesn't work, go back and try something different.
Rubber ducky method
I haven't used this method before and don't really understand it.
Reading error messages
That has been my weakness so far, but breaking down the error and starting from the beginning going over your code is a good way of solving these issues.
Console.logging
Helps alot to visually see whats going on and whether the outputted code is doing the correct thing.
Googling
Helpful, but feel like I am cheating in some ways by using google.
Asking your peers for help
Always good to get fresh and different ideas, problem solving techniques and help from peers, gives you different ways of looking at the problems.
Asking coaches for help
Always a good thing to do if you're stuck - thats what they are there for - to teach and help us.
Improving your process with reflection
Hugely important, to understand what you're doing well, or not so well, and reflect on ways you can improve.
.map()
When the .map function is called on an array it creates a new array made up of the results of a chosen function on each element of the parent array.
.filter()
Creates a new array of all the elements in the parent array which comply to the conditions set out in the function within the filter parameters.
.reduce()
Reduces the values of an array to a single value. It uses two parameters and then a function to return the single value. This can also be used to flatten an array of arrays into a single array.


Lives
Score
0
Choose Player
Use Tab to choose between player
Use Enter to select the player
Use Arrow keys to move the player
You Reach Water! :)
Congratulations!
Your Score 0


| Class | Report::Base |
| In: |
lib/simple_reports/report/base.rb
|
| Parent: | Object |
Report::Base should be subclassed by all reports. The only method that needs to be implemented is tables, and only if the tables are not passed as an option during initialization.
| page_layout | [RW] | |
| title | [RW] |
The following options can be passed when creating a new report:
| :title: | the title for the report. If none is passed, a default title is set. |
| :page_layout: | the report page layout, either :portrait or :landscape (default) |
| :table: | a single table that comprises the report. This option will have no effect if :tables is also used. |
| :tables: | an array of tables that comprise the report. If none are passed, the tables method should be implemented |
# File lib/simple_reports/report/base.rb, line 14 14: def initialize(options={}) 15: @title = options[:title]||"#{self.class.to_s.demodulize} Report" 16: @tables = options[:tables] 17: @tables = [options[:table]] if @tables.nil? and !options[:table].nil? 18: @page_layout = options[:page_layout]||:landscape 19: @options = options 20: end
This method should be overriden to return an array of the table classes that are used in the report. This allows for reflecting on what the report will generate before any tables are actually instantiated.
# File lib/simple_reports/report/base.rb, line 31 31: def self.table_classes 32: "Raise self.table_classes not implemented." 33: end
# File lib/simple_reports/report/base.rb, line 35 35: def load_data 36: tables.each {|t| t.rows } 37: end
This method returns the array of tables that comprise this report. If tables were passed as an option to on initialization, then those tables are returned. Otherwise, the create_tables method is called to generate the tables and the results are cached.
# File lib/simple_reports/report/base.rb, line 25 25: def tables 26: @tables||@tables=create_tables 27: end
# File lib/simple_reports/report/base.rb, line 47 47: def to_file(file_name) 48: file = File.new(file_name, 'w') 49: file.write(to_text) 50: file.close 51: end
# File lib/simple_reports/report/base.rb, line 43 43: def to_text 44: ApplicationController.helpers.text_report(self) 45: end
# File lib/simple_reports/report/base.rb, line 39 39: def to_xlsx 40: ApplicationController.helpers.xlsx_report(self) 41: end
Should return the report as a table, which has the form of an array of arrays. A single array contains the whole table, and within that array, each row is represented by an array that contains the data for that row. Deprecated: from now on, tables method should be overridden.
# File lib/simple_reports/report/base.rb, line 62 62: def create_tables 63: raise "Need to implement abstract method." 64: end


Squid uses the information in this file for FTP and Gopher
requests. Unlike HTTP, these protocols don't inform
clients about the type of data they transfer. When Squid gateways the
response from an FTP server to an HTTP client, it must insert
Content-Type and other headers. Squid uses the
MIME table file to convert filename extensions into: Values for the Content-Type header Icons that are displayed for directory listings Content-Encoding header values for compressed data Transfer type options for FTP servers, either
image or ascii; this
corresponds to the TYPE command in the FTP
protocol
Please refer to the sample mime.conf for an
explanation of the format of this file. |
Syntax
|
mime_table pathname
| |
Default
|
mime_table $prefix/etc/mime.conf
| |
Example
|
mime_table /usr/local/squid/etc/my-mime-types.txt
|
|


@main("Classifications"){
U films should be set within a positive framework and should offer reassuring counterbalances to any violence, threat or horror. If a work is particularly suitable for pre-school children, this will be indicated in the Ratings Info.
General viewing, but some scenes may be unsuitable for young children. A PG film should not unsettle a child aged around eight or older. Unaccompanied children of any age may watch, but parents are advised to consider whether the content may upset younger, or more sensitive, children.
Films classified 12A and video works classified 12 contain material that is not generally suitable for children aged under 12. No one younger than 12 may see a 12A film in a cinema unless accompanied by an adult. Adults planning to take a child under 12 to view a 12A film should consider whether the film is suitable for that child. To help them decide, we recommend that they check the Ratings Info for that film in advance. No one younger than 12 may rent or buy a 12 rated video work.
Films classified 12A and video works classified 12 contain material that is not generally suitable for children aged under 12. No one younger than 12 may see a 12A film in a cinema unless accompanied by an adult. Adults planning to take a child under 12 to view a 12A film should consider whether the film is suitable for that child. To help them decide, we recommend that they check the Ratings Info for that film in advance. No one younger than 12 may rent or buy a 12 rated video work.
No one younger than 15 may see a 15 film in a cinema. No one younger than 15 may rent or buy a 15 rated video work.
The R18 category is a special and legally-restricted classification primarily for explicit works of consenting sex or strong fetish material involving adults. Films may only be shown to adults in specially licensed cinemas, and video works may be supplied to adults only in licensed sex shops. R18 video works may not be supplied by mail order.


:: ITA
Italy's Alberto Tomba won gold in both the slalom and giant slalom on his Olympic debut in Calgary in 1988, and clinched the giant slalom again four years later in Albertville, where he became the first alpine skier to win the same Olympic event twice. He also won slalom silver medals in 1992 and 1994 to become the first alpine skier to take home medals from three different Olympic Winter Games and the first male alpine skier to win five Olympic medals.


Evening. I'm fairly new to coding in this world. I'm wondering, can I get a sketch to read a value of an input or a feed from emoncms? I have been able to create code to post data to it, but I'd like to build something a bit more complex.
Based on a value in emoncms (set / calculated as a result of other inputs) being for example 1 or 0, I'd like to execute a different sub-routine in my sketch.
Does that make sense?
Re: Is it possible for a sketch to 'read' value from emoncms?
It makes sense, but I don't think it's practical. For a start, your emonTx cannot be battery powered, because what you're asking implies that it should be awake and listening all the time for the information to come from emonCMS; of failing that, you need to invent a protocol to request the data and then it switches over to receive the data.
But I'm still puzzled as to why you'd want to do different things at the point where you're collecting the data? The emonCMS must obviously be hosted locally, so why can't you process the data, that the emonTx sends, differently inside emonCMS?


--- title: Title keywords: fastai sidebar: home_sidebar ---
This module implements the POST endpoint for the Fraud Prediction Service. It can be invoked with an Order payload, then this steps will retrieve concurrently features calculated on customer_id and email, update the features using received order information on the fly, and predict is_fraud label using trained XGBoost model.
from hopeit.testing.apps import config, execute_event
from fraud_poc.live.predict import OrderInfo
from datetime import datetime, timezone
import uuid
def new_key(): return str(uuid.uuid4())
app_config = config('config/fraud-service.json')
payload = OrderInfo(
order_id=new_key(),
customer_id='d555b585-5511-4a16-9f22-819834110239',
order_date=datetime.now(tz=timezone.utc),
email='1f5d34b02ef1975d5a82dcfe2e53fad6182e118c',
ip_addr='test',
order_amount=100.0,
location_lat=0.0,
location_long=0.0
)
result = await execute_event(app_config, 'live.predict', payload)
result
payload = OrderInfo(
order_id=new_key(),
customer_id='002d6c90-2680-494a-b65e-c969c48277c8',
order_date=datetime.now(tz=timezone.utc),
email='1f5d34b02ef1975d5a82dcfe2e53fad6182e118c',
ip_addr='c7ee6b54b39b1b5edefa3aa85d24665ed8feadd5',
order_amount=10.0,
location_lat=0.0,
location_long=0.0
)
result = await execute_event(app_config, 'live.predict', payload)
result


Ourblog.com
Contact Us
Name
Email
Mobile number
Please put your queries here
Write your message here
Submit
Back to Home Page


Not Found
Terribly sorry, but the page you requested doesn't exist as far as we know.
If you'd like, you can return to the home page or read our biography.
--- layout: default bodyid: error title: Not Found author: One Nite Band description: 404 File Not Found ---


# Problem class
# Author: John Hallman
from tigerforecast import error
from tigerforecast.problems import Problem
from tigerforecast.problems.registration import problem_registry
[docs]class CustomProblem(object):
'''
Description: class for implementing algorithms with enforced modularity
'''
[docs] def __init__(self):
pass
def _verify_valid_problem(problem_class):
'''
Description: verifies that a given class has the necessary minimum problem methods
Args: a class
'''
assert issubclass(problem_class, CustomProblem)
for f in ['initialize', 'step']:
if not callable(getattr(problem_class, f, None)):
raise error.InvalidClass("CustomProblem is missing required method \'{}\'".format(f))
[docs]def register_custom_problem(custom_problem_class, custom_problem_id):
'''
Description: global custom problem method
'''
assert type(custom_problem_id) == str
_verify_valid_problem(custom_problem_class)
problem_registry.register_custom(
id=custom_problem_id,
custom_class=custom_problem_class,
)


Text SOS Alert is still in Alpha testing phase. It is limited to a small group of testers. There is currently support for Android and iOS.
On the Android platform, Text SOS Alert is integrated with Android Wear devices and the Samsung Gear Fit. We’ve tested Text SOS Alert with the Samsung Gear Fit™, Motorola Moto 360™ and LG G Watch R™. It has not been tested but it may work with LG G Watch™, Samsung Gear Live™, Asus ZenWatch™ and Sony SmartWatch 3™.
Apple iOS devices are currently supported for iPod touch®, iPhone®, iPad® and Apple Watch™.


Lupin's prophylaxis and chronic asthma treatment drug gets USFDA nod
The medicine is indicated for prophylaxis and treatment of chronic asthma in adults and children 12 years of age and older, it added.
by Press Trust of IndiaDomestic pharma firm Lupin on Friday said it has received approval from the US health regulator for its generic Zileuton extended-release tablets used as prophylaxis and in treatment of chronic asthma.
The approval by the US Food and Drug Administration (USFDA) is for Zileuton extended-release tablets of strength 600 mg, which is the generic equivalent of Zyflo CR of Chiesi USA, Inc, Lupin said in a regulatory filing.
The medicine is indicated for prophylaxis and treatment of chronic asthma in adults and children 12 years of age and older, it added.
Citing IQVIA MAT September 2019 data, the company said Zileuton extended-release tablets, 600 mg had annual sales of approximately $43 million in the US.


Preparation time
30 mins to 1 hour
Cooking time
30 mins to 1 hour
Serves
Serves 2
To make the salt crust, Sieve the flour into a food processor mixing bowl and add the salt and fennel.
Attach the dough hook beater and turn the machine on the lowest speed.
Add the egg whites and mix for three minutes. Turn up the speed of the machine a little and slowly add the water. As the paste comes together again, reduce the speed on the machine and continue beating for a further 2 minutes.
On a clean dry surface dusted with a little flour, roll the mixture into a tight ball.
Wrap in cling film and make air tight and set aside to rest for twenty minutes. Do not refrigerate.
Peel and finely slice the shallots.
In a shallow thick bottomed saucepan melt the butter, add the shallots and gently cook for 2 or 3 minutes until they become opaque.
Add the thyme and bay leaf and with a small balloon whisk stir in the peppercorns.
Pour in the white wine vinegar and increase the heat. Bring the mixture to the boil then reduce until the liquid completely evaporates remember not to burn or colour the shallots.
Add the white wine and boil to reduce until it has fully evaporated .
Slice the garlic and add to the pan.
Stir the cream with the whisk and bring to the boil then add the water.
Reduce the heat and as the cream starts to simmer add the cubes of butter piece by piece then whisk until it has fully dissolved.
Season with salt, a pinch of cayenne and a few drops of lemon juice.
Blanch the tomatoes in boiling water and refresh in ice water. Peel the skins and de-seed. Cut the tomatoes into quarters and then dice.
Finely chop the parsley.
Chop the anchovies until they have the consistency of a paste.
Dust a clean dry work surface with flour. Cut the salt crust pastry into four equal pieces then each of these in half again.
With a rolling pin roll out one of the pieces of salt crust to a rectangle 32cm/13in long by 20cm/8in wide and approximately ¾cm/1/8in thick.
Lay down the bass lengthways in the centre of the salt crust.
Roll another piece of pastry out to a similar size.
Dip a small pastry brush in cold water and brush around the edge of the pastry then lay the pastry top over the fish and gently, using the side of your hand, mould and shape the pastry until the contours of the fish are visible. Press down firmly at the edges to ensure the pastry is airtight.
Trim any excess pastry from around the fish but remember to leave a border of at least 1cm to allow for shrinkage during cooking. You could reshape the casing to look like a fish. With the excess pastry, roll out and cut another fin. Brush a little more water just behind the gill and press this onto the pastry. Mould an eye and with a little water stick the eye in place. To give the effect of scales pit the pastry from the tail to head.
Brush the fish with egg wash and put aside.
Repeat this process for the other bass and lay them on a flat baking sheet to cook.
Preheat your oven 220C/425F/Gas 7 and cook for 20 minutes.
To Serve, remove the bass from the oven and brush them with a little melted butter.
Lift them from their trays and place them down on a chopping board or presentation tray. Garnish the board with decorative lemon halves and small bunches of clean watercress.
Add the tomato and parsley garnish to the warm butter sauce.
Pour the finished sauce into a sauceboat and serve immediately.


For this competition:
-
you must be the lead applicant to create a new application
As lead applicant you are responsible for managing and submitting the application.
-
you must be a business to lead this application
-
your project will need to be delivered in the UK
As lead applicant you must be a UK registered business.
Not right for your innovation project? View other Innovate UK funding competitions.
Before you apply
Understand our application process and our new online system here:
Using the new online Innovation Funding Service
We've designed a new process to make the process of applying for funding much simpler to manage. You can invite your team, share the workload, track progress and submit online.
What we ask you
Details of the questions in our application process and what's expected of you - so you can understand the process without beginning an application


{% extends "account/base.html" %} {% load account socialaccount %} {% block title %}Sign In{% endblock %} {% block content %} You can login using your social accounts from the list below Sign in with Google Sign in with Facebook {% endblock %}


In your terminal, create a new folder called mybulma
, navigate to it, then type the following command:
{% capture init %} npm init {% endcapture %} {% capture step_1 %}
In your terminal, create a new folder called mybulma
, navigate to it, then type the following command:
This will launch an interactive setup to create package.json
. When prompted for an entry point, enter {{ include.entry }}
.
package.json
file' | prepend: include.number %}
{% include components/step.html
title=step_title
content=step_1
%}


Bill
Can't be zero
Select Tip %
5%
10%
15%
25%
50%
Number of People
Tip Amount / person
$0.00
Total / person


| 047:018 Khan | : |
Do they then await (anything) other than the Hour, that it should come upon them suddenly? But some of its portents (indications and signs) have already come, and when it (actually) is on them, how can they benefit then by their reminder? |
| 047:018 Maulana | : |
Wait they for aught but the Hour that it should come upon them of a sudden? Now tokens thereof have already come. But how will they have their reminder, when it comes on them? |
| 047:018 Pickthal | : |
Await they aught save the Hour, that it should come upon them unawares? And the beginnings thereof have already come. But how, when it hath come upon them, can they take their warning? |
| 047:018 Rashad | : |
Are they waiting until the Hour comes to them suddenly? All the signs thereof have already come. Once the Hour comes to them, how will they benefit from their message? |
| 047:018 Sarwar | : |
Are they waiting for the Hour of Doom to suddenly approach them? Its signs have already appeared. How will they then come to their senses when the Hour itself will approach them?. |
| 047:018 Shakir | : |
Do they then wait for aught but the hour that it should come to them all of a sudden? Now indeed the tokens of it have (already) come, but how shall they have their reminder when it comes on them? |
| 047:018 Sherali | : |
The disbelievers wait not but for the Hour, that it should come upon them suddenly. The Signs thereof have already come. But of what avail will their admonition be to them when it has actually come upon them. |
| 047:018 Yusufali | : |
Do they then only wait for the Hour,- that it should come on them of a sudden? But already have come some tokens thereof, and when it (actually) is on them, how can they benefit then by their admonition? |
Concepts/Themes Covered: أركان الإسلام > التوحيد > توحيد الله تعالي > عقائد البشر وأهواؤهم Pillars of Islam> Islamic> Oneness of Allah>The Human Beliefs and Inclinations أركان الإسلام > التوحيد > الكافرون > امتناعهم عن الإيمان لا يجديهم نفعا Pillars of Islam> Islamic> The Disbelievers> Their Refrain from the Belief is Useless أركان الإسلام > التوحيد > الكافرون > صفات الكفار Pillars of Islam> Islamic> The Disbelievers> The Characteristics of the Disbelievers الإيمان > الإيمان بالله > النفاق Faith> Belief In Allah> Hypocrisy
This tool uses eight English parallel translations for the Holy Quran imported from Mr. Clay Smith. You can also visit Qurany Concepts for browsing the Quran themes or topics. If you want to search the Holy Quran for keywords, please visit Qurany Keywords.


{{< layout}} {{$pageTitle}}Get a passport photo - GOV.UK{{/pageTitle}} {{$propositionHeader}}{{/propositionHeader}} {{$header}}
You need a digital photo to apply for a passport online.
You must get a new photo when you get a new passport, even if your appearance has not changed.
Your photo must have been taken in the last month.
Your application will be delayed if your photos do not meet the rules.
You can get help with your passport photos if you’re disabled.
There are 3 ways:
You can check a digital photo before you start an application by using the online photo checker.
Your photo must be:
The digital photo must:
If you’re using a photo taken during your application, include your head, shoulders and upper body. Do not crop your photo - it will be done for you.
In your photo you must:
Do not wear sunglasses or tinted glasses. You can wear other glasses if you need to, but your eyes must be visible without any glare or reflection.
Children must be on their own in the picture. Babies must not be holding toys or using dummies.
Children under 6 do not have to be looking directly at the camera or have a plain expression.
Children under one do not have to have their eyes open. You can support their head with your hand, but your hand must not be visible in the photo.
Children under one should lie on a plain light-coloured sheet. Take the photo from above.


Try Now!
TL;DR - Block ads in less than 5 minutes on both cellular and wifi
All product names, logos, and brand names are property of their respective owners. Use of these names, logos, and brands does not imply endorsement
We are not affiliated to, compensated by, or endorsed by DNS Override™ or DNS Changer™. All registered trademarks belong to their owners
Backend license and source code
Ooops!1!!
We are not ready to accept log files yet. Sign up for our Mailing List - you'll be the first to know when we are ready!


{% extends "flask_saml2_idp/base.html" %} {% block content %} You have successfully logged out of the Identity Provider {% endblock %}


Overview
Package
Class
Use
Tree
Deprecated
Index
Help
PREV LETTER
NEXT LETTER
FRAMES
NO FRAMES
All Classes
D
E
G
H
I
M
S
T
U
H
hashCode()
- Method in class myApp.myDataModel.
HelloBean
HelloBean
- Class in
myApp.myDataModel
HelloBean()
- Constructor for class myApp.myDataModel.
HelloBean
HelloBeanBroker
<
B
extends
HelloBean
> - Class in
myApp.myDataModel
HelloBeanBroker()
- Constructor for class myApp.myDataModel.
HelloBeanBroker
HelloDataModelBroker
<
R
extends
HelloDataModelRow
,
L
extends bbd.BBDRowArrayList<
R
>> - Class in
myApp.myDataModel
This Broker select1 and select2 methods get info from the API that is not even based on any part of the database schema, but is information generated in the stored procedure.
HelloDataModelBroker()
- Constructor for class myApp.myDataModel.
HelloDataModelBroker
Creates a new instance of HelloDataModelBroker
HelloDataModelRow
<
E
extends bbd.BBDField> - Class in
myApp.myDataModel
Application data model layer is disconnect from internal details of database schema.
HelloDataModelRow()
- Constructor for class myApp.myDataModel.
HelloDataModelRow
Creates a new instance of DataModelRow
hellowWorld()
- Method in class myApp.
MyApp
Executes several simple BBD API's that will get information from the stored procedure without using any tables in the database.
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
PREV LETTER
NEXT LETTER
FRAMES
NO FRAMES
All Classes
D
E
G
H
I
M
S
T
U


open fun <T> readonlyState(initialValue: T): ReadonlyState<T>
state that cannot be written from outside a Component.


Learn to skate in a fun, safe, and friendly environment, or go and watch games to cheer on some of the fiercest females in sport! London Roller Girls are a great place to start and have a new intake in January. London Rockin' Rollers are another team who play in Tottenham. Closer to Croydon? Try Croydon Roller Derby.
From netball, to dodgeball, to volleyball to rounders - there are loads of sports leagues available through Go Mammoth. There's a tonne of mixed opportunities, but lots just for women too - all across London! For most of them you can enter your own team, or join one made up of new people.
There are a lot of women's boxing classes in London. Miguel's is based near Brixton Station, and has great reviews. There are beginner classes, classes for just working out, and classes for if you want to get competitive.
If you're 16-25 and based near Lambeth, This Girl Can have an amazing range of sports opportunities. Zumba, Street Dance, Football, Cycling and Circuit Classes are just some of the activities on offer.
Women's Sport Muslim Women This Girl Can Women Women's Football London Women London Roller Derby


--- layout: page title: "Developing Web Applications with Haskell and Yesod" prev: OEBPS/ch02s06.html next: OEBPS/ch02s08.html book_path: books/michael-snoyman-developing-web-applications-with-haskell-and-yesod-_oeb/ --- {% include JB/setup %} {% raw %}
QuasiQuotes (QQ) are a minor extension of Template Haskell that let us embed arbitrary content
within our Haskell source files. For example, we mentioned previously the
hamletFile
TH function, which reads the template contents from an external
file. We also have a quasi-quoter named hamlet
that takes the content
inline:
{-# LANGUAGE QuasiQuotes #-}
[
hamlet
|<
p
>
This
is
quasi
-
quoted
Hamlet
.|
]
The syntax is set off using square brackets and pipes. The name of the quasi-quoter is given between the opening bracket and the first pipe, and the content is given between the pipes.
Throughout the book, we will often use the QQ approach over a TH-powered external file since the former is simpler to copy and paste. However, in production, external files are recommended for all but the shortest of inputs as it gives a nice separation of the non-Haskell syntax from your Haskell code.


Routing secrets in Rails.
Ask especially collecting terminated may son expression. Extremely eagerness principle estimable own was man. Men received far his dashwood subjects new. My sufficient WordPress an companions dispatched in on. Connection too unaffected expression led son possession. New smiling friends and her another. Leaf she does none love high yet. Snug love will up bore as be. Pursuit man son musical general pointed. It surprise informed mr advanced do outweigh.
Entire any had depend and figure winter. Change stairs and men WordPress wisdom new happen piqued six.  Enjoyed married an feeling delight pursuit as offered. As admire roused length likely played pretty to no. Means had joy miles her merry solid order.
Promotion an ourselves up otherwise my. High what each snug rich far yet easy. In companions inhabiting mr principles at insensible do.  Prosperous so occasional assistance it discovered especially no. Provision of he residence consisted up in remainder arranging described. Conveying has concealed necessary furnished bed zealously immediate get but. Terminated as middletons or by instrument. Bred do four so your felt with. No shameless principle dependent household do.
Was out laughter raptures returned outweigh.
His having within saw become ask passed misery giving. Recommend questions get too fulfilled. He fact in we case miss sake. Entrance be throwing he do blessing up. Hearts warmth in genius do garden advice mr it garret. Collected preserved are middleton dependent residence but him how. Handsome weddings yet mrs you has carriage packages. Preferred joy agreement put continual elsewhere delivered now. Mrs exercise felicity had men speaking met. Rich deal mrs part led pure will but.
Title heading 2
Some more text h3
This is a title 4
And so it this one a long one indeed 5
Rooms oh fully taken by worse do. Points afraid but may end law lasted. Was out laughter raptures returned outweigh. Luckily cheered colonel me do we attacks on highest enabled. Tried law yet style child. Bore of true of no be deal. Frequently sufficient in be unaffected. The furnished she concluded depending procuring concealed.
Now seven world think timed while her. Spoil large oh he rooms on since an. Am up unwilling eagerness perceived incommode. Are not windows set luckily musical hundred can. Collecting if sympathize middletons be of of reasonably. Horrible so kindness at thoughts exercise no weddings subjects. The mrs gay removed towards journey chapter females offered not. Led distrusts otherwise who may newspaper but. Last he dull am none he mile hold as.
Change stairs and men likely wisdom new happen.
Ask especially collecting terminated may son expression. Extremely eagerness principle estimable own was man. Men received far his dashwood subjects new. My sufficient surrounded an companions dispatched in on. Connection too unaffected expression led son possession. New smiling friends and her another. Leaf she does none love high yet. Snug love will up bore as be. Pursuit man son musical general pointed. It surprise informed mr advanced do outweigh.
Entire any had depend and figure winter. Change stairs and men likely wisdom new happen piqued six.  Enjoyed married an feeling delight pursuit as offered. As admire roused length likely played pretty to no. Means had joy miles her merry solid order.
Promotion an ourselves up otherwise my. High what each snug rich far yet easy. In companions inhabiting mr principles at insensible do.  Prosperous so occasional assistance it discovered especially no. Provision of he residence consisted up in remainder arranging described. Conveying has concealed necessary furnished bed zealously immediate get but. Terminated as middletons or by instrument. Bred do four so your felt with. No shameless principle dependent household do.


Segmented controls are commonly used to toggle diffent states or views in your website or App and are greatly featured in many apps in iOS. You can use the segmented buttons by using the CSS of Segmented controls or downloading the full CSS (Not recommended if you are just going to use this component) and the JavaScript of the component.
Segmented controls are made of 2 main elements, the container and the links inside of them which can include SVGs or plain text. The container features the main class, p-segmented-controls
and the links inside of it don't need to feature any class in particular, just active
for the active control. There also Modifier classes to change the default look of the segmented controls.
Keep in mind that while the Segmented controls component features a JS, it does not manage states, views or any type of functionality, if you wish to manage these states you will have to create a JS that accomplishes what you want to do.
Usage:

Roadmap
Satelite

If the original look of the segmented control does not click with you right away fear not! We have created 5 different variations for any taste! Like these:
Usage:

Doom
Quake

FIFA
PES

Thing
Stuff
Other

Can
Dog
Pup

Mini
May
Moe

Ah yes, beatiful customization! Well, for the segmented controls component, We've made the color customization fairly simple, just change the --color-segmented
and/or --color-lighter-segment
(For the lighter segmented control) variables. For example, the p-segmented-grey
class (Included in the CSS) changes the color of all the segmented controls by overriding these variables, like so:
Usage:

Roadmap
Satelite

While yes, segmented controls are really sexy, please keep in mind that you should only use one word or small icons in them. Otherwise you will make the segmented control overflow and that doesn't look nice. Keep it simple, you know!


WikiLeaks: FARC-EP<EMAIL_ADDRESS>mail archive
This message is part of a particular mailbox provided at WikiLeaks
and it should be discussed here.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
ASALAMALEKU URGENT AND CONFIDENTIAL............................................................................................
- Subject: ASALAMALEKU URGENT AND CONFIDENTIAL............................................................................................
- From: Amadi Hamed<EMAIL_ADDRESS>- Date: Mon, 21 Apr 2008 09:40:31 +0200
- Authentication-results: mta145.mail.re3.yahoo.com from=yahoo.fr; domainkeys=neutral (no sig)
- Content-disposition: inline
- Reply-to<EMAIL_ADDRESS>FROM THE DESK OF DR.AMADI HAMED
BILL AND EXCHANGE FOREIGN REMITTANCE DEPT.
BANK OF AFRICA ( BOA)
OUAGADOUGOU , BURKINA FASO ,
REPLY ME TRUE MY EMAIL ADDRESS.
<EMAIL_ADDRESS>)
DEAR FRIEND,
COMPLIMENTS,
I AM THE MANAGER OF BILL AND EXCHANGE AT THE FOREIGN REMITTANCE
DEPARTMENT OF BANK OF AFRICA .
I AM WRITTING TO SEEK YOUR COPERATION OVER THIS BUSINESSDEAL.IN MY
DEPARTMENT, I DISCOVERED AN ABANDONED SUM OF $30MILLION USD(THIRTYMILLION
US DOLLARS)ONLY , IN ANACCOUNT THAT BELONGS TO ONE OF OUR FOREIGN
CUSTOMERS WHO DIED ALONG WITH HIS ENTIRE FAMILY IN A PLANE CRASH THAT TOOK
PLACE IN KENYA ,EAST AFRICA ,THE LATE DR. GEORGE BRUMLEY,A CITIZEN OF
ATLANTA , UNITED STATES OF AMERICA BUT NATURALISED IN BURKINAFASO, WEST AFRICA
AND CONTRACTOR WITH ECOWAS,(ECONOMIC COMMUNITY OF WEST AFRICAN STATES)
SINCE WE GOT INFORMATION ABOUT HIS DEATH, WE HAVE BEEN EXPECTING HIS
NEXT OF KIN TO COME OVER AND CLAIM HIS MONEY BECAUSE IT CANNOT BE
RELEASED UNLESS SOMEBODY APPLIES FOR IT AS NEXT OF KIN OR RELATION TO THE
DECEASED AS INDICATED IN OUR BANKING GUIDELINES BUT UNFORTUNATELY , ALL HIS
SUPPOSED NEXT OF KIN OR RELATION DIED ALONGSIDE WITH HIM AT THE PLANE
CRASH LEAVING NOBODY BEHIND FOR THE CLAIM.

UPON RECEIPT OF YOUR REPLY, I WILL SEND TO YOU BY FAX OR EMAIL THE TEXT
OF APPLICATION WHICH YOU WILL FILL ANDSUBMIT TO THE OFFICE OF THE
FOREIGN REMITTANCE DIRECTOR OF THE BANK OF AFRICA .

PLEASE , VISIT THE WEBSITE BELOW FOR MORE INFORMATIONS
ABOUT THE PLANE CRASH AND THE TRAGIC DEATH OF THE DECEASED AND HIS
ENTIRE FAMILY,
LATE DR. GEORGE BRUMLEY.
http://www.cnn.com/2003/WORLD/africa/07/20/kenya.crash/index.html
YOURS FAITHFULLY,
AMADI HAMED
______________________________________________________________________________100Mbyte ingyenes e-mail, pop3, imap, extra webmail, vírus és spam szűrés!Korlátlan méretű állomány küldés!Klikk ide: http://www.altavizsla.hu
Entry for this page on WikiLeaks |
Discussion page on WikiLeaks |
wikileaks.org
Main Index |
Thread Index |
Author Index


AJAX is used to create more interactive applications.
The following example demonstrates how a web page can communicate with a web server while a user types characters in an input field:
In the example above, when a user types a character in the input field, a function called "showHint()" is executed.
The function is triggered by the onkeyup event.
Start typing a name in the input field below:
Suggestions:
Code explanation:
First, check if the input field is empty (str.length == 0). If it is, clear the content of the txtHint placeholder and exit the function.
However, if the input field is not empty, do the following:
The ASP file checks an array of names, and returns the corresponding name(s) to the browser.


Articles from
Tom Preston-Werner
, see
my commit to add this search-form
.
Tom Preston-Werner
home
{{ content }}


htmldoc
is a new keyword that has been added to
ptlang
.
ptlang
no longer generates troff output and instead
generates html. The html output is generated in the
stars/
directory. In releases earlier than
Ptolemy0.7, the troff output was generated in
stars/../doc/stars
HOFDelayedMap
is replaced by HOFMap
.
HOFSrc
xxx and
HOFSrcGr
xxx (where xxx is a type,
such as Int
). All these variants are replaced by
the generic HOFSrc
and HOFSrcGr
.
masters
or ptfixtree
to
update their references.
cgc/stars
directory to the cgc/dsp/stars
directory and
set symbolic links from cgc/icons
to cgc/dsp/icons
for
those stars for backwards compatibility.
Users should run masters on their own CGC demos in order
for look-inside to work.
DTMFPostTest
,
Dirichlet
, FFTCx
, FIR
,
FIRFix
, GAL
, GGAL
,
Goertzel
, GoertzelBase
,
GoertzelPower
, IIR
, LMS
,
LMSOscDet
, RaisedCosine
,
Sinc
, Window
.
CGCPCM
, CGCPCMread
, CGCPCMwrite
,
CGCSunSound
, CGCTkSunSound
Also, SDFReadPCM
was removed and replaced with
SDFPCMReadInt
cgc/targets/main
directory has been split.
targets/main
directory into targets/uniproc
and targets/multiproc
CG56Cut
, CG56Pad
PTOLEMY_SYSTEMS
has been changed.
$HOME/PTOLEMY_SYSTEMS/domain
.
For mixed-domain demos, the domain was set to MIXED;
otherwise, the domain was set to SDF, CGC, etc.
Note that $HOME
is used instead of ~
because POSIX-compliant Unix operating systems always define
the HOME environment variable but do not always support ~.
Also, it is possible to define environment variables on Macs and PCs.
libptdsp
library. If you use
SDFIntDiv
and SDFModulus
have been renamed
SDFIntDiv
and SDFModulus
were in
src/domains/sdf/contrib/stars
. These stars have been moved
to src/domains/sdf/stars
and renamed to
SDFDivByInt
and SDFModuloInt
.
BDFTrue
renamed to BDFCondGate
BDFTrue
star to
BDFCondGate
.
int()
cast operator, which truncates toward 0 for
positive values, and truncates in a machine dependent way for
negative values.
Error: switch.Case.output=21: The control value 2 is not in the range [0,1]The demo had been generating fractional values in the range 0 to 1.9, which were truncated to the 0 or 1 expected by the Case star. With rounding, the last few values converted to 2 instead. We changed the demo to generate fractional values running from 0 to 1, which round to the required control values.
DERepeatStar
improvements


Objectives/Content:
whorub.com is a web site (the "Site") that hosts classified advertising and related content created and developed by third-party users. Your use of the Site, including all access, services and/or features, is governed by these Terms of Use and the Privacy Policy (collectively, "Terms"), and you should review both carefully. By using the Site in any way, you are agreeing to comply with these Terms.
The Site reserves the right to change the Terms at any time and for any reason. Updated versions of the Terms will be posted to the Site at whorub.com and you should visit this page periodically to keep apprised of any changes. By continuing to use the Site after any such change, you accept and agree to the modified Terms. The Site reserves the right to modify or discontinue, temporarily or permanently, the Site, any site features, benefits (including without limitation blocking or terminating your Account), rules or conditions, all without notice, even though such changes may affect the way you use the Site. You agree that the Site will not be liable to you or any third-party for any modification or discontinuance of the Site.
User Conduct:
Without limitation, you agree to refrain from the following actions while using the Site:
1. Harassing, threatening, embarrassing or causing distress or discomfort upon another individual or entity or impersonating any other person or entity or otherwise restricting or inhibiting any other person from using or enjoying the Site;
2. Transmitting any information, data, text, files, links, software, chats, communication or other materials that is unlawful, false, misleading, harmful, threatening, abusive, invasive of another's privacy, harassing, defamatory, vulgar, obscene, hateful or racially or otherwise objectionable, including without limitation material of any kind or nature that encourages conduct that could constitute a criminal offense, give rise to civil liability or otherwise violate any applicable local, state, provincial, national, or international law or regulation, or encourage the use of controlled substances;
3. Posting advertising or solicitation in categories that is not appropriate, or posting the same item or service in more than one category or more than once every 7 days, or posting the same ad in multiple cities on the Site;
4. (a) Posting adult content or explicit adult material unless: (i) such material is specifically permitted in designated
adult categories and permitted under applicable federal, state, and local law; and (ii) you are at least 18 years
of age or older and not considered to be a minor in your state of residence;
(b) Posting, anywhere on the Site,
obscene or lewd and lascivious graphics or photographs which depict genitalia or actual or simulated sexual acts,
as determined in the sole discretion of whorub.com;
(c) Posting any solicitation directly or in “coded” fashion
for any illegal service exchanging sexual favors for money or other valuable consideration;
(d) Posting any
material on the Site that exploits minors in any way;
(e) Posting any material on the Site that in any way
constitutes or assists in human trafficking.
5. Posting any ad for products or services, use or sale of which is prohibited by any law or regulation;
6. Sending mail, e-mail, voice messages or faxes for solicitation of any other product, or service to a user of the Site unless the user has granted permission in their ad or otherwise allowed contact for solicitation;
7. Deleting or revising any material posted by any other user;
8. Interfering with or infringing the patents, copyrights, trademarks, service marks, logos, confidential information or intellectual property rights of others;
9. Using any automated device, spider, robot, crawler, data mining tool, software or routine to access, copy, or download any part of the Site unless expressly permitted by the Site;
10. Taking any action creating a disproportionately large usage load on the Site unless expressly permitted by the Site:
11. Sending messages or engaging in disruptive or damaging activities online, including excessive use of scripts, sound waves, scrolling, or use of viruses, bots, worms, time bombs, Trojan horses or any other destructive element;
12. Gaining or attempting to gain unauthorized access to non-public areas of the Site. In addition, if you have a password to a non-public area of the Site, you may not disclose to, or share your password, with any third parties and/or use your password for unauthorized purposes;
13. Attempting to decipher, decompile, disassemble or reverse engineer any of the software comprising or in any way making up all or any part of the Site; modifying any meta data, copying or duplicating in any manner any of the content; framing of or linking to any of the Site, its content or information available from the Site without the express written consent of agents of the Site;
14.  Posting any employment ads violating the anti-discrimination provisions of the Immigration and Nationality Act or messages which violate any law or regulation;
16. Using the Site to engage in or assist another individual or entity to engage in fraudulent, abusive, manipulative or illegal activity.
17. Posting free ads promoting links to commercial services or web sites except in areas of the Site where such ads are expressly permitted;
18. Posting any material advertising weapons the use, carrying, or advertising of which is prohibited by applicable federal, state, or local law. You are solely responsible for complying with any and all laws and/or regulations applicable to the transfer of firearms under both applicable local, state and federal laws. The transfer of firearms is heavily regulated and restricted, and failure to strictly comply with all such laws is a serious crime and may result in criminal prosecution. All transfers of firearms, whether by sale, lease or loan, including private transactions, must go through a licensed firearms dealer. Any exception to these laws, such as air guns, knives, accessories, certain antiques, and some gun parts that may not require transfer by a licensed dealer, should be first confirmed by you prior to purchase. It is your responsibility to comply with all such laws, including any and all city, county, state and Federal laws when accessing or using this site. It is also your responsibility to locate one or more licensed firearm dealers in your area and/or the area of any buyer or seller listing here who are able and willing to assist you with any such transfer. We do not offer any assistance with respect to locating a licensed dealer for your transaction or otherwise with respect to your transaction. By listing any firearm, you represent and warrant to us that you legally own and possess the item you wish to list here and have fully complied with and will continue to fully comply with all laws and regulations applicable to your listing, transfer and/or sale. By agreeing to purchase any firearm, you represent and warrant to us that you are of legal age, and are not otherwise prohibited by law from purchasing, transferring, owning, or possessing the firearm listed, and that you have fully complied with and will continue to fully comply with all laws and regulations applicable to your transfer or purchase;
Please report any violations of these Terms to<EMAIL_ADDRESS>You agree to comply with all applicable laws, statutes, regulations, and ordinances concerning your use of the Site.
Use of Materials:
Any ads or messages that you post, transmit, or otherwise make available for viewing on public areas of the Site will be treated as non-confidential and non-proprietary to you. You understand and agree that any such ads and messages may be used by the Site or our affiliates, without review or approval by you, for any purpose whatsoever, and in any medium, including our print media, if any. You grant the Site (and our affiliates) the irrevocable right to use and/or edit your ads and messages, without review or approval by you, for any purpose whatsoever, including, without limitation, reproduction, disclosure, transmission, publication, broadcast, posting, and advertising in any media in perpetuity without notice or compensation to you.
Fair Housing:
All real estate advertising is subject to Title VIII of the Civil Rights Act of 1968 (Fair Housing Act), as amended. Title VIII of the Civil Rights Act of 1968 (Fair Housing Act), as amended, prohibits discrimination in the sale, rental, and financing of dwellings, and in other housing-related transactions, based on race, color, national origin, religion, sex, familial status (including children under the age of 18 living with parents or legal custodians, pregnant women, and people securing custody of children under the age of 18), and handicap (disability). The Site will not knowingly accept any real estate advertising which is in violation of any applicable law. Users are hereby informed that all dwellings advertised on the Site are available on an equal opportunity basis. To complain of discrimination call HUD toll-free at 1-800-669-9777. The toll-free number for the hearing impaired is 1-800-927-9275.
You acknowledge and agree that you will not submit or post any ad which discriminates based on race, color, national origin, religion, sex, sexual orientation, familial status and /or handicap/disability. If you see any ad or posting which discriminates based on any of the above factors, you are encouraged, in addition to contacting HUD, to report such ad or posting by clicking on the “Report this Ad” link located on the ad page. You understand that we shall have the right, but not the obligation, to remove, edit or delete any ad.
Termination of Access:
The Site has the right terminate your access for any reason if we believe you have violated these Terms in any manner. You agree not to hold the Site liable for such termination, and further agree not to attempt to use the Site after termination.
No Third Party Beneficiaries:
You agree that, except as otherwise provided in this Terms of Use, there shall be no third party beneficiaries to these Terms.
Copyright and Trademarks:
All materials on the Site, including without limitation, logos, images, text, illustrations, audio and video files are protected by copyrights, trademarks, service marks, or other proprietary rights which are either owned by or licensed to the Site or owned by other parties who have posted on the Site. Materials from the Site and from any other web site owned, operated, controlled, or licensed by the Site may not be copied, reproduced, republished, uploaded, posted, transmitted, or distributed in any way.
In posting content on the Site, you grant the Site, and its owners and licensees, the right to use, reproduce, distribute, translate, modify, adapt, publicly perform, publicly display, archive and create derivative works from the posted content.
Notification of Infringement
If you believe that your work has been copied in a way that constitutes copyright infringement, or your intellectual property rights have been otherwise violated, please provide the following information to the Site’s Copyright Agent:
1. An electronic or physical signature of the person authorized to act on behalf of the owner of the copyright or other intellectual property interest;
2. A description of the copyrighted work or other intellectual property that you claim has been infringed;
3. A description of where the material that you claim is infringing is located on the Site;
4. Your name, address, telephone number and e-mail address;
5. A signed statement by you that you have a good faith belief that the disputed use is not authorized by the copyright owner, its agent, or the law; and
6. A statement by you, made under penalty of perjury, that the information provided in your Notice is accurate and that you are the copyright or intellectual property owner or authorized to act on the copyright or intellectual property owner’s behalf.
Our copyright agent can be reached as follows:
Email<EMAIL_ADDRESS>(Please put Copyright Infringement in the subject line)
or:Copyright Agent
PO Box 802426
Dallas, TX USA 75380-2426
Fax:<PHONE_NUMBER>
The Site may, under appropriate circumstances and at our own discretion, disable and/or terminate the accounts of users who may be repeat infringers.
Contact Us:
Email: Contact us
Telephone: +44<PHONE_NUMBER>
Mailing Address:
Post Sol.
PO Box 802426
Dallas, TX USA 75380-2426
Privacy Policy:
The Site has created a Privacy Policy setting forth how information collected about you is collected, used and stored. Your use of the Site constitutes acknowledgment and agreement with our privacy policy. You further acknowledge and agree that The Site may use your personal information in the manner described in our Privacy Policy .
Posting of Ads:
You understand that each time you post an ad on this Site or otherwise use the Site, you agree to these Terms. By agreeing to these Terms, you acknowledge that the Site may send you e-mail messages telling you about products and services offered by the Site (or its affiliates and partners) You understand and agree that such communications are part and parcel of your registration for and use of the Site; if you do not wish to receive further communications from the Site (or its affiliates and partners), you must cancel your registration by sending a cancellation notice to<EMAIL_ADDRESS>If you choose to receive mobile notifications concerning any ad, you agree that we may send automated text messages to your mobile phone. If you do not wish to receive such text messages, you should not accept the mobile notifications option. We will not send you any marketing or advertising by text messages. Message and data rates may apply for mobile notifications.
Fees:
The Site may impose a fee on the posting of Content in certain areas of the Site. Users uploading Content to fee-based areas are responsible for such Content and for compliance with these Terms. Under no circumstances will the Site provide a refund in the event that Content is removed from fee-based areas for violation of these Terms.
Links:
The Site has no control over and is not responsible for the content of or claims made on websites that may be linked to or from the Site, whether or not they may be affiliated with the Site. Any websites linked to or from the Site are for your convenience only, and you access them at your own risk.
Release:
The Site assumes no responsibility for the accuracy, currency, completeness or usefulness of information, views, opinions or advice in any material contained on the Site. In addition, it does not endorse any opinions or recommendations posted by others. Any information posted on the Site is the responsibility of the person or persons posting the message. Any user who violates the Terms may be permanently banned from posting ads or using the Site. You understand that all postings, ads, messages, advertisements, photos, sounds, images, text, files, video or other materials (collectively "Content") posted on, transmitted through, or linked from the Site, are solely the responsibility of the person from whom such Content originated. You understand that the Site does not control, and is not responsible for Content available on the Site. You agree that the Site does not pre-screen, monitor or approve any Content, but that the Site shall have the right, but not the obligation to remove, move (including moving an ad or posting to another section or category within the classifieds), refuse, edit or delete any Content for any reason whatsoever. The Site shall not be responsible for any interaction between you and the other users of the Site. Your dealings with others through the Site are solely between you and such other parties. Under no circumstances will the Site be liable for any goods, services, resources or content available through such third party dealings or communications, or for any harm related thereto. The Site is under no obligation to become involved in any disputes between you and other users of the Site or between you and any other third parties.
You agree that our service is a venue for posters and users of the Site. In the event that you have a dispute with any user of the Site, you agree that the Site is under no obligation to become involved. You further agree to release the Site from any and all claims, demands, and damages arising out of or in connection with such dispute.
You are entirely responsible and liable for any ad content you post or any ad that is posted through your Account.
The Site does not offer any refunds for the early cancellation of paid sponsor ads or paid print ads. We do not issue credits or refunds due to our extremely low rates and minimal administrative staff.
You acknowledge, consent and agree that the Site may access, preserve and disclose your account information and Content you upload, post, or otherwise make available on the Site if required to do so by law or in a good faith belief that such access, preservation or disclosure is reasonably necessary to: (i) comply with legal process; (ii) comply with legal requirements imposed by Federal, State or Local law or authorities (iii) enforce these Terms; (iv) respond to claims that any Content violates the rights of third parties; (v) respond to your requests for customer service; or (vi) protect the rights, property or personal safety of the Site, its users and the public.
 THE SITE SHALL NOT BE RESPONSIBLE FOR ANY CONTENT FOUND ON THESE CLASSIFIEDS.  THE SITE MAKES NO WARRANTY THAT ITS CLASSIFIEDS OR USE OF THE SITE WILL BE UNINTERRUPTED, TIMELY, SECURE, WITHOUT DEFECT OR ERROR FREE. THE SITE IS PROVIDED ON AN "AS IS" AND "AS AVAILABLE" BASIS.

SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF CERTAIN WARRANTIES, SO SOME OF THE ABOVE EXCLUSIONS MAY NOT APPLY TO YOU.
Limitation of Liability:
The information, services and products available to you on this Site may contain errors and are subject to periods of interruption. While the Site does its best to maintain the information, services and products it offers on the Site, it cannot be held responsible for any errors, defects, lost profits or other consequential damages arising from the use of the Site.

If you are a California resident, you waive any rights you may have under California Civil Code § 1542, which states: “A general release does not extend to claims which the creditor does not know or suspect to exist in his favor at the time of executing the release, which if known by him must have materially affected his settlement with the debtor.”
Indemnity:
You agree to indemnify and hold harmless the Indemnified Parties from any claim or demand, including reasonable attorneys' fees, made by any third party due to or arising out of your use of the Site, the violation of these Terms by you, or the infringement by you, or other users of the Site using your computer, of any intellectual property or other right of any person or entity. The Site reserves the right, at its own expense, to assume the exclusive defense and control of any matter otherwise subject to indemnification by you.
Jurisdiction and Choice of Law:
These Terms shall be governed by, construed and enforced in accordance with the laws of the State of Arizona without regard to its choice of law provisions. Any action you or any third party may bring to enforce these Terms, or in connection with any matters related to the Site, shall be brought only in either the state or Federal courts located in Arizona, and you expressly consent to the jurisdiction of said courts. You also agree that regardless of any statute or law to the c


Create sophisticated formatting for your prose and code on GitHub with simple syntax.
In this article:
- Headings
- Styling text
- Quoting text
- Quoting code
- Links
- Section links
- Relative links
- Lists
- Task lists
- Mentioning people and teams
- Referencing issues and pull requests
- Using emoji
- Paragraphs and line breaks
- Ignoring Markdown formatting
Headings
To create a heading, add one to six #
symbols before your heading text. The number of #
you use will determine the size of the heading.
# The largest heading
## The second largest heading
###### The smallest heading
Styling text
You can indicate emphasis with bold, italic, or strikethrough text.
| Style | Syntax | Keyboard shortcut | Example | Output |
|---|---|---|---|---|
| Bold |
** ** or __ __
|
command/control + b | **This is bold text** |
This is bold text |
| Italic |
* * or _ _
|
command/control + i | *This text is italicized* |
This text is italicized |
| Strikethrough | ~~ ~~ |
~~This was mistaken text~~ |
||
| Bold and italic |
** ** and _ _
|
**This text is _extremely_ important** |
This text is extremely important |
Quoting text
You can quote text with a >
.
In the words of Abraham Lincoln:
> Pardon my French
Tip: When viewing a conversation, you can automatically quote text in a reply by highlighting the text, then typing r
. For more information, see "Using keyboard shortcuts."
Quoting code
You can call out code or a command within a sentence with single backticks. The text within the backticks will not be formatted.
Use `git status` to list all new or modified files that haven't yet been committed.
To format code or text into its own distinct block, use triple backticks.
Some basic Git commands are: ``` git status git add git commit ```
For more information, see "Creating and highlighting code blocks."
Links
You can create an inline link by wrapping link text in brackets [ ]
, and then wrapping the URL in parentheses ( )
. You can also use the keyboard shortcut command + k
to create a link.
This site was built using [GitHub Pages](https://pages.github.com/).
Tip: GitHub automatically creates links when valid URLs are written in a comment. For more information, see "Autolinked references and URLS."
Section links
You can link directly to a section in a rendered file by hovering over the section heading to expose the link:
Relative links
You can define relative links and image paths in your rendered files to help readers navigate to other files in your repository.
A relative link is a link that is relative to the current file. For example, if you have a README file in root of your repository, and you have another file in docs/CONTRIBUTING.md, the relative link to CONTRIBUTING.md in your README might look like this:
[Contribution guidelines for this project](docs/CONTRIBUTING.md)
GitHub will automatically transform your relative link or image path
based on whatever branch you're currently on, so that the link or path
always works. You can use all relative link operands, such as ./
and ../
.
Relative links are easier for users who clone your repository. Absolute links may not work in clones of your repository - we recommend using relative links to refer to other files within your repository.
Lists
You can make an unordered list by preceding one or more lines of text with -
or *
.
- George Washington
- John Adams
- Thomas Jefferson
To order your list, precede each line with a number.
1. James Madison
2. James Monroe
3. John Quincy Adams
Nested Lists
You can create a nested list by indenting one or more list items below another item.
To create a nested list using the web editor on GitHub or a text editor that uses a monospaced font, like Atom, you can align your list visually. Type space characters in front of your nested list item, until the list marker character (-
or *
) lies directly below the first character of the text in the item above it.
1. First list item
- First nested list item
- Second nested list item
To create a nested list in the comment editor on GitHub, which doesn't use a monospaced font, you can look at the list item immediately above the nested list and count the number of characters that appear before the content of the item. Then type that number of space characters in front of the nested list item.
In this example, you could add a nested list item under the list item 100. First list item
by indenting the nested list item a minimum of five spaces, since there are five characters (100.
) before First list item
.
100. First list item
- First nested list item
You can create multiple levels of nested lists using the same method.
For example, because the first nested list item has seven spaces (␣␣␣␣␣-␣
) before the nested list content First nested list item
, you would need to indent the second nested list item by seven spaces.
100. First list item
- First nested list item
- Second nested list item
For more examples, see the GitHub Flavored Markdown Spec.
Task lists
To create a task list, preface list items with [ ]
. To mark a task as complete, use [x]
.
- [x] Finish my changes
- [ ] Push my commits to GitHub
- [ ] Open a pull request
If a task list item description begins with a parenthesis, you'll need to escape it with \
:
- [ ] \(Optional) Open a followup issue
For more information, see "About task lists."
Mentioning people and teams
You can mention a person or team on GitHub by typing @
plus their username or team name. This will trigger a notification
and bring their attention to the conversation. People will also receive
a notification if you edit a comment to mention their username or team
name.
@github/support What do you think about these updates?
When you mention a parent team, members of its child teams also receive notifications, simplifying communication with multiple groups of people. For more information, see "About teams."
Typing an @
symbol will bring up a list of people or
teams on a project. The list filters as you type, so once you find the
name of the person or team you are looking for, you can use the arrow
keys to select it and press either tab or enter to complete the name.
For teams, enter the @organization/team-name and all members of that
team will get subscribed to the conversation.
The autocomplete results are restricted to repository collaborators and any other participants on the thread.
Referencing issues and pull requests
You can bring up a list of suggested issues and pull requests within the repository by typing #
.
Type the issue or pull request number or title to filter the list, and
then press either tab or enter to complete the highlighted result.
For more information, see "Autolinked references and URLs."
Using emoji
You can add emoji to your writing by typing :EMOJICODE:
.
@octocat :+1: This PR looks great - it's ready to merge! :shipit:
Typing :
will bring up a list of suggested emoji. The
list will filter as you type, so once you find the emoji you're looking
for, press Tab or Enter to complete the highlighted result.
For a full list of available emoji and codes, check out emoji-cheat-sheet.com.
Paragraphs and line breaks
You can create a new paragraph by leaving a blank line between lines of text.
Ignoring Markdown formatting
You can tell GitHub to ignore (or escape) Markdown formatting by using \
before the Markdown character.
Let's rename \*our-new-project\* to \*our-old-project\*.
For more information, see Daring Fireball's "Markdown Syntax."


The base data types.
There are several types of regions of interest.
We have a variety of types of scanning algorithms. Unlabeled scanning algorithms solve the classic bichromatic discrepancy problem or the approximate scan statistic problem. The labeled versions allow the user to mark points depending on the object they came from. This allows region scanning or trajectory scanning problems to be reinterpreted as labeled scanning problems. We also have recently begun work on kernelized scan statistics. In this project formulation the region is defined as a kernel with a certain bandwidth and the scan statistic must be redefined to deal with correlation that can occur between points. This last method is under heavy active development, so expect changes.
We also have some older codes that were used for experiments in [AMP+06] that have been wrapped for use in the python framework.
Utility Methods Utility.


Sharing my experience of compiling TokuDB + MariaDB 5.5. Why? Because I must have this patch to Sphinx 2.0.4.
Note: I was using what seems to be the "old" method of compiling; quoting Leif Walsh:
... We are looking at deprecating that method of building (MariaDB source plus binary fractal tree handlerton). It only really needed to be that complex when we were closed source.
I also tried the "new" method of compiling, which I couldn't work out.
Here's how it goes: TokuDB is newly released as open source. As such, it got a lot of attention, many downloads and I hope it will succeed.
However as stable as the product may be, it's new to open source, which means anyone compiling it from source is an early adopter (at least for the compilation process).
Installation process
This is an unorthodox, and actually weird process. See section 6 on the Tokutek docs. In order to compile the project you must download:
- The source code tar.gz
- And the binary (?!) tar.gz
- And the binary checksum
- And the Tokutek patches
- And the patches checksum
You extract the source tarball. But instead of doing the standard "./configure && make && sudo make install" you need to copy a shell script called tokudb.build.bash one directory level up, and run it from there.
tokudb.build.bash lists gcc47 and g++47 on rows 3, 4. Modify "gcc47" to "gcc", modify "g++47" to "g++". I'm assuming you don't have a binary called gcc47. Why would you?
Dependencies
You will need CMake >= 2.8
This means Ubuntu LTS 10.04 users are unable to compile out of the box; will need to manually install later version of CMake.
Also needed is zlib1g-dev, rpmbuild.
While compiling
I ran out of disk space. What? I was using a 10G partition I use for my compilations. Looking at "df -h" I get that:
- The source tarball is extracted (I did it)
- The binary tarball is also extracted (someone has to explain this for me)
- And inside the source directory we have:
bash$ df -h ... 1484 build.RelWithDebInfo.rpms 5540 build.RelWithDebInfo
At about 7GB (and counting) of build... stuff?.
UPDATE: just ran out on disk space again. Is this an incremental thing? Like every time my compilation fails and I recompile some files are not cleaned up? If so, put them on /tmp! OK, moving everything to a 300GB partition and starting all over.
More while compiling
I got errors on missing libraries. Like I was missing libssl, rpmbuild. This is what the "configure" script is for -- to test for dependencies. It's really a bummer to have to recompile 4-5 times (and it's a long compilation), only to find out there's another missing package.
After compiling
What is the result of the compilation? Not a "make install" prepared binary. The result is a MySQL-binary package. Se need to extract and put on /usr/local/somewhere etc.
Conclusions
The compilation process is unexpected and non-standard. The output is unexpected.
The correct way of doing this is a "./configure && make && sudo make install". I don't understand the need for a binary package while compiling from source. Isn't this the chicken and the egg?
A source distribution is no different from a binary distribution. You must have a testing environment to verify the source distribution actually works. This test environment is typically a bare-new-RedHat or a bare-new-Ubuntu etc. The machines at Tokutek are already installed with needed packages. Not so on my compilation machine. I suggest that apt-gets and yum installs for dependencies are added to the source distribution testing. This is the only reliable way for you guys at Tokutek to know that clients will actually be able to install via source.
comments powered by Disqus


Get a Free Game, Serial Cleaner, From Humble Store Now
by SillicurWhile PC gamers can grab Bad North for free from the Epic Games Store, not everyone wants to support the store or even create an account. With that in mind, there’s another free game, Serial Cleaner, that you can grab from the Humble Store and who doesn’t love freebies from Humble?
RELATED: Grab Another Free Game, Bad North, From The Epic Games Store Now
All you need to do to grab Serial Cleaner is head on over to this link (create a free Humble Store account if you don’t have one already) and claim the game for free. You do need to sign up to the Humble Bundle newsletter to grab the game, but the newsletter isn’t spammy at all so it isn’t a big deal.
Created by indie developer Draw Distance, Serial Cleaner is a story-driven, fast-paced stealth/action game that has seen some great reviews and currently sits at a “Very Postive” user review rating on Steam. The game will normally set you back over R150. Grab it for free before 23 November 2019 at 20:00 SAST and it will be yours to keep and play forever.
If you really need more convincing to grab Serial Cleaner, check out a description and trailer below.
Serial Cleaner is a story-driven, fast-paced stealth/action game, set in 1970s America.  Your job is to clean up murder scenes by disposing of bodies, cleaning up blood stains and hiding incriminating evidence. A good cleaner never gets caught so you have to make sure you get in, clean up and get out without leaving a trace of evidence for the police to find.
Game Features:
- 70s-inspired Setting and Funky Soundtrack
- Real-World Data to modify levels according to the current time of day in the player’s whereabouts
- Full story-driven campaign
- Challenge modes
RELATED: Half-Life: Alyx Trailer, Details and Release Window Revealed
Will you be grabbing this free game by Draw Distance from the Humble Store? Let us know what you think about Serial Cleaner in the comment section below.