A visual tour of Xfce 4.4.0
As of today, the long awaited version 4.4.0 of the Xfce Desktop Environment is finally available. I will try to highlight some of the new features which have been added since the last stable release.
Desktop Icons
One of the most often requested features during the 4.0 and 4.2 was support for icons on the desktop. Now, with Xfce 4.4.0, this feature was finally added to the desktop manager Xfdesktop.
The desktop manager utilizes Thunar's libraries to handle application launchers and regular files/folders on the desktop. The desktop manager is also able to display icons for minimized windows on the desktop, which is quite a popular feature from the CDE world. Of course, you can disable the desktop icons altogether if you prefer a clean desktop.
Xfdesktop also continues to provide access to the applications menu, as it did in the previous Xfce releases.
File Manager
The desktop icon support goes hand in hand with the new file manager Thunar which replaces the previous file manager Xffm.
Thunar was written from scratch to provide an easy to use, but still very lightweight file manager for Xfce. Its user interface was designed to look similar to the file chooser which was introduced with GTK+ 2.4, and other file managers such as Nautilus and pcmanfm already picked up that idea as well.
Thunar supports all the file management functionality which users will expect, and also several advanced features. For example, a so-called Bulk Renamer is included which allows users to rename multiple files at once using a certain criterion.
Removable Drives and Media
Xfce 4.4.0 provides easy access to data on removable drives and media. Just insert the media into the drive or plug the new drive in to the computer and an icon representing the removable volume will appear on the desktop and in Thunar's side pane.
Click on the icon to automatically mount the volume. Right-click the icon to unmount the drive or eject the media from the drive. Note however that this feature requires HAL and is therefore only available for Linux 2.6.x and FreeBSD 6.x and above at the time of this writing (there is limited removable media support for FreeBSD 4.x and 5.x which does not require HAL).
Text Editor
The new text editor MousePad is included with this release. MousePad provides all the basic editor functionality, nothing more, nothing less.
You can think of MousePad as the equivalent to NotePad on Windows. It starts up very fast, usually in less than one second, even on older systems.
Window Manager
Xfwm4 continues to be the window manager of the hearts.
This release features an enhanced compositor, supporting transparent ARGB windows, shadows, window frame transparency and much more.
Xfwm4 also includes a brand new application switcher, as shown in the screenshot above, which displays all windows from the current workspace with icons and window titles.
Further on support for multiple image formats for window decoration themes was added, including
PNG
, GIF
and SVG
images.
Advanced controls for the window manager were also added, allowing thorough tweaking of window behavior.
Panel
The Xfce4-panel was completely rewritten for the Xfce 4.4 release. Multiple panels are supported out of the box now and can easily be configured using the new Panel Manager shown in the screenshot below.
One of the major problems in previous Xfce releases was that every plugin had to be run in the same process as the panel, and hence every plugin was able to crash the whole panel. To address this issue, support for external plugins was added to the panel.
Developers of panel plugins can now decide whether the plugin should run as external process or as part of the panel process, depending on the stability of the plugin.
Since there is now support for multiple panels, the separate Xftaskbar4 and Xfce4-iconbox utilities are no longer required. Instead, both the taskbar and the iconbox are available as panel plugins now.
Most of the additional panel plugins, available via the Xfce Goodies Project, have been updated for the new panel, and several new plugins were added. For example, the brand new xfce4-xfapplet-plugin allows users to add GNOME panel applets to the Xfce panel.
Time Management
The new time management application Orage replaces the Xfcalendar, which was introduced with Xfce 4.2.0. Orage provides several features to efficiently manage your time.
While Orage is very lightweight and easy to use, it supports all the important features
found in larger calendar applications like Outlook or Evolution. While
Xfcalendar used the custom dbh
format in the past to store your settings,
Orage is based on ical
and therefore compatible with other calendar
applications.
Terminal Emulator
While Terminal was already available during the 4.2 days, it was not mature enough at that time to be part of the core. With this major release, it was moved into the core desktop.
Besides the basic features which you might expect from a terminal emulator, it includes some nice additional features, like multiple tabs per window, customizable toolbars and the ability to configure nearly every aspect of the application via hidden options. As can be seen in the screenshot above, this release also supports real transparency using Xfwm4's integrated composition manager.
Printing
Xfprint, the Xfce printing management application, saw several small improvements with
this release. First, the a2ps
converter is not mandatory anymore, whilst still
recommended. Support for CUPS
1.2 was added and Xfprint is now able to
display the printer state with the CUPS
-backend.
Xfprint also integrates with MousePad to provide generic printing support for
different kinds of text documents using the a2ps
converter.
As you can see the print dialog still looks relatively similar to that of Xfce 4.2, but the
internal workings of the printing support were improved, especially the CUPS
support. Besides that, the printing management functionality was moved to a library, so other
applications can use the API to access the printer configuration.
Autostart
Xfce 4.4.0 implements the new Autostart Specification - actually Xfce was the first desktop to implement said feature, but the others were faster to release. ;-)
The specification consists of two parts, the Autostart of Applications During Startup, which is implemented in xfce4-session and the Autostart Of Applications After Mount which is implemented in thunar-volman. This release also includes the xfce4-autostart-editor, shown in the screenshot above, which allows users to easily add, remove or disable autostarted applications.
Settings
This release introduces new options to customize the desktop to your needs. Some examples of new settings dialogs were already shown in the sections above.
The preferred applications framework, which was previously only available in Terminal, was imported into Xfce, so users no longer need to edit shell profiles to specify which browser and terminal emulator should be used by Xfce applications. The goal was to make it as easy as possible to change an application for a certain category (GNOME users may have already noticed that GNOME adopted this approach, because it is so simple).
And then there was the problem with the keyboard shortcuts in Xfce 4.2... Xfce 4.2 limited the number of freely available keyboard shortcuts, while people wanted to assign any number of keyboard shortcuts. With Xfce 4.4 this limitation is history and the application shortcuts are now separated from the window manager shortcuts.


public class DisjointSet<T>
extends java.lang.Object
| Constructor and Description |
|---|
DisjointSet(java.util.Collection<T> items)
This performs the make-set operation described in
CLRS on all items
in the collection
|
public T findSet(T item)
item
- item whose set is to be determinedpublic boolean union(T x, T y)
x
- member of a disjoint set (unknown whether or not the same set as y)y
- member of a disjoint set (unknown whether or not the same set as x)


I'm currrently a student at Dev Bootcamp Chicago. Here are some of my past and current projects from my time at DBC.


v0.4 documentation
To start off, make sure you are using virtualenv and virtualenvwrapper. If you have not already done so, install them:
pip install virtualenv virtualenvwrapper
Then create a new virtual environment for your new Calloway based project:
mkvirtualenv newproject
Note
Make sure to change your the shbang (first line) in your project’s manage.py to point to the newly installed copy of python in your virtual environment. It should be something like: #!/home/user/.virtualenvs/newproject/bin/python
Activate your new virtual environment and install the Calloway app:
workon newproject
pip install calloway
This will install a load of dependencies along with it. To see the full list for future reference, you can generate a requirements file:
generate_reqs > requirements.txt
In your project’s settings.py make the following changes. Add this bit to the top of the file so that the Calloway apps are on your sys.path:
import os, sys
import calloway
CALLOWAY_ROOT = os.path.abspath(os.path.dirname(calloway.__file__))
sys.path.insert(0, os.path.join(CALLOWAY_ROOT, 'apps'))
Then import the default Calloway settings:
from calloway.settings import *
Now you can alter your INSTALLED_APPS setting to include the Calloway application bundles.  Below is an example of how to setup the media where the static folder contains all of your project’s assets and the media folder is where the new media is copied into for serving. For more information on media handling, checkout Media Configuration
try:
from local_settings import MEDIA_URL_PREFIX
except ImportError:
MEDIA_URL_PREFIX = "http://media.example.com/"
try:
from local_settings import MEDIA_ROOT_PREFIX
except ImportError:
MEDIA_ROOT_PREFIX = '/var/www/media'
try:
from local_settings import MEDIA_ROOT
except ImportError:
MEDIA_ROOT = os.path.join(MEDIA_ROOT_PREFIX, 'ugc')
try:
from local_settings import STATIC_ROOT
except ImportError:
STATIC_ROOT = os.path.join(MEDIA_ROOT_PREFIX, 'static')
MEDIA_URL = '%sugc/' % MEDIA_URL_PREFIX
STATIC_URL = "%sstatic/" % MEDIA_URL_PREFIX
STATIC_MEDIA_APP_MEDIA_PATH = STATIC_ROOT
STATIC_MEDIA_COPY_PATHS = (
{'from': os.path.join(CALLOWAY_ROOT, 'media'), 'to': STATIC_ROOT},
{'from': 'static', 'to': STATIC_ROOT},
)
STATIC_MEDIA_COMPRESS_CSS = not DEBUG
STATIC_MEDIA_COMPRESS_JS = not DEBUG
STATIC_MEDIA_PURGE_OLD_FILES = False
Then make sure you add the default Calloway templates:
TEMPLATE_DIRS = (
'templates',
...
) + CALLOWAY_TEMPLATE_DIRS
The last bits you need to consider is middleware. Again here is an example of MIDDLEWARE_CLASSES that play nicely with Calloway:
MIDDLEWARE_CLASSES = (
'django.middleware.cache.UpdateCacheMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.middleware.gzip.GZipMiddleware',
'django.middleware.http.ConditionalGetMiddleware',
'django.middleware.doc.XViewMiddleware',
'django.contrib.redirects.middleware.RedirectFallbackMiddleware',
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
'pagination.middleware.PaginationMiddleware',
'django.middleware.transaction.TransactionMiddleware',
'ban.middleware.DenyMiddleware',
'django.middleware.cache.FetchFromCacheMiddleware',
)
And finally there are some settings you could define in local_settings.py which should make life a bit easier including media:
CACHE_BACKEND = "dummy:///"
MEDIA_ROOT_PREFIX = 'media'
MEDIA_URL_PREFIX = '/media/'
MEDIA_ROOT = 'uploads'
ADMIN_MEDIA_PREFIX = '/media/static/admin/'
Now you can add the Calloway urlpatterns onto your existing patterns in urls.py:
from calloway.urls import urlpatterns as calloway_patterns
urlpatterns += calloway_patterns
If you also want the catch all categories app to start at the site root, add this line:
urlpatterns += patterns('', ('', include('categories.urls')))
Lastly you can setup a development media server to host your assets:
if settings.DEBUG:
urlpatterns += patterns('django.views.static',
(r'^media/static/(?P<path>.*)$', 'serve',
{'document_root': settings.STATIC_ROOT, 'show_indexes': True}),
)


KUKA Roboter GmbH |
KUKA Fast Robot Interface C++ SDK (version 1.7) |
Public Member Functions | |
| void | setJointPosition (const double *values) |
| Set the joint positions for the current interpolation step. | |
| void | setWrench (const double *wrench) |
| Set the applied wrench vector of the current interpolation step. | |
| void | setTorque (const double *torques) |
| Set the applied joint torques for the current interpolation step. | |
Protected Attributes | |
| FRICommandMessage * | _message |
| FRI command message (protobuf struct). | |
Static Protected Attributes | |
| static const int | LBRCOMMANDMESSAGEID = 0x34001 |
| type identifier for the FRI command message corresponding to a KUKA LBR robot | |
Friends | |
| class | LBRClient |
| void KUKA::FRI::LBRCommand::setJointPosition | ( | const double * | values | ) |
Set the joint positions for the current interpolation step.
This method is only effective when the client is in a commanding state.
| values | Array with the new joint positions (in rad) |
| void KUKA::FRI::LBRCommand::setWrench | ( | const double * | wrench | ) |
Set the applied wrench vector of the current interpolation step.
The wrench vector consists of: [F_x, F_y, F_z, tau_A, tau_B, tau_C]
F ... forces (in N) applied along the Cartesian axes of the currently used motion center. tau ... torques (in Nm) applied along the orientation angles (Euler angles A, B, C) of the currently used motion center.
This method is only effective when the client is in a commanding state. The ControlMode of the robot has to be Cartesian impedance control mode. The Client Command Mode has to be wrench.
| wrench | Applied Cartesian wrench vector. |
| void KUKA::FRI::LBRCommand::setTorque | ( | const double * | torques | ) |
Set the applied joint torques for the current interpolation step.
This method is only effective when the client is in a commanding state. The ControlMode of the robot has to be joint impedance control mode. The Client Command Mode has to be torque.
| torques | Array with the applied torque values (in Nm) |
friend class LBRClient [friend] |
const int KUKA::FRI::LBRCommand::LBRCOMMANDMESSAGEID = 0x34001 [static, protected] |
FRICommandMessage* KUKA::FRI::LBRCommand::_message [protected] |
FRI command message (protobuf struct).
| All Rights Reserved © 2014-2015 KUKA Roboter GmbH, Germany |
created 24 Mar 2015 |


Home
(current)
Fabrication
Construction
Design/ Drafting
About
Terms of Trade
Contact
1
Finish
2
Edge Profile
3
Measurements
4
Options
5
Quote
Loreum Ipsum
Loreum Ipsum
Loreum Ipsum
Loreum Ipsum
Loreum Ipsum
Loreum Ipsum
Loreum Ipsum
Loreum Ipsum
Next
Estimate tabs 2
Estimate tabs 3
Estimate tabs 4
Estimate tabs 5
© 2021 AllCor
Designed & Developed by
LEADconcept


--- layout: default title: About Me ---
A 2nd Year Computer Science student at Kent University and programmer from Cambridgeshire, UK.


Note: This feature is experimental and is subject to change in future releases of Apache Geode.
The Geode Redis adapter allows Geode to function as a drop-in replacement for a Redis data store, letting Redis applications take advantage of Geode’s scaling capabilities without changing their client code. Redis clients connect to a Geode server in the same way they connect to a Redis server, using an IP address and a port number.
Using the Redis Adapter
To use the Redis Adapter, you will need three pieces of information:
- The port number through which clients will communicate
- The IP address of the host where the server is to reside
- A choice of which attributes you will use for a Geode partitioned region
The IP address and port number should be the same ones coded in the Redis clients.
In order to take advantage of Geode’s scaling capabilities, you should specify the Geode region as one of the types that use the PARTITION data policy. PARTITION is the default. Other possibilities include PARTITION_REDUNDANT and PARTITION_PERSISTENT. (See “Region Shortcuts Quick Reference” for a complete list.)
To implement a Geode instance using the Redis Adapter:
- Install Geode on the system where the server is to reside.
- Use gfsh to start a Geode server, specifying the three configuration options described above:
- Use
--redis-port
to specify the port. This parameter is required – the Geode server will listen on this port for Redis commands. - Use
--redis-bind-address
to specify the IP address of the server host. This parameter is optional. If not specified, the default is determined from the /etc/hosts file. - Use
--J=-Dgemfireredis.regiontype
to specify the region type. This parameter is optional. If not specified, regiontype is set to PARTITION.
- Use
For example:
gfsh> start server --name=server1 --redis-bind-address=localhost \
--redis-port=11211 --J=-Dgemfireredis.regiontype=PARTITION_PERSISTENT
Redis clients can then connect to the server at localhost:11211.
How the Redis Adapter Works
The Geode Redis Adapter supports all Redis data structures, including
- String
- List
- Hash
- Set
- SortedSet
- HyperLogLog
In Geode these data structures are implemented using partitioned regions. In most cases, Geode allocates one partitioned region for each data structure. For example, each Sorted Set is allocated its own partitioned region, in which the key is the user data and the value is the user-provided score, and entries are indexed by score. The two exceptions to this design are data types String and HyperLogLog. All Strings are allocated to a single partitioned region. Similarly, all HyperLogLogs are allocated to a single region. Regions use Geode’s OQL and indexes.
The Geode Redis Adapter supports all Redis commands for each of the Redis data structures. (See the Javadocs for the GemFireRedisServer class for a detailed list.) The Geode server’s responses to Redis commands are identical to those of a Redis server with the following exceptions, resulting from Geode’s more extensive partitioning model:
- Any command that removes keys and returns a count of removed entries will return a count of how many entries have been removed from the local vm, rather than a total count of items removed across all members. However, all entries will be removed.
- Any command that returns a count of newly set members has an unspecified return value. The command will work just as the Redis protocol states, but the count will not necessarily reflect the number set compared to the number overridden.
- Transactions work just as they would on a Redis instance; they are local transactions. Transactions cannot be executed on data that is not local to the executing server, that is on a partitioned region in a different server instance, or that is on a persistent region that does not have transactions enabled. Also, you cannot watch or unwatch keys, as all keys within a Geode transaction are watched by default.
Advantages of Geode over a Redis Server
Geode’s primary advantage is its scalability. While the Redis server is single threaded, Geode supports high concurrency. Many Redis clients can execute commands on the Geode server simultaneously.
Geode supports stored procedures, which can execute on the server and report results to the requesting client.
Geode architecture and management features help detect and resolve network partitioning problems without explicit management on the part of the Redis client.
Geode WAN replication allows the data store to expand horizontally, across physically distant sites, while maintaining data consistency.


How to start a Data Science project in Python
A lot of blog posts are written on the complicated Data Science-y stuff but not so many posts talk about the simple stuff. A simple but very important topic is how to start and structure your projects. This post gives a few pointers for setting up your projects.
Project structure
Project structures often organically grow to suit people's needs, leading to different project structures within a team. You can consider yourself lucky if at some point in time you, or someone in your team, finds an obscure blog post with a somewhat sane structure and enforces it in your team.
Many years ago I stumbled upon ProjectTemplate for R. Since then I've tried to get people to use a good project structure. More recently DrivenData released their more generic Cookiecutter Data Science.
The main philosophies of those projects are:
- A consistent and well organized structure allows people to collaborate more easily.
- Your analyses should be reproducible and your structure should enable that.
- A projects starts from raw data that should never be edited; consider raw data immutable and only edit derived sources.
I couldn't help to invent my own project structure and my minimal structure looks something like this (example here):
example_project/
├── data/ <- The original, immutable data dump.
├── figures/ <- Figures saved by notebooks and scripts.
├── notebooks/ <- Jupyter notebooks.
├── output/ <- Processed data, models, logs, etc.
├── exampleproject/ <- Python package with source code.
│ └── __init__.py <-- Make the folder a package.
└── process.py <-- Example module.
├── tests/ <- Tests for your Python package.
└── test_process.py <-- Tests for process.py.
├── environment.yml <- Virtual environment definition.
├── README.md <- README with info of the project.
└── setup.py <- Install and distribute your module.
It mostly follows the other structures:
- raw data is immutable and goes to
data/
; - processed data and derived output goes to different folders like
figures/
andoutput/
; - notebooks go to
notebooks/
; - project info goes in the
README.md
; - and the project code goes to a separate folder.
I try to make a full-fledged Python package (plus tests) out of my project structure so that the step between prototyping and production is as small as possible.
The setup.py
allows me to install the package in a virtual environment and use it in my Notebooks (more on this in a later blog post).
It doesn't really matter which structure you pick, as long as it fits your workflow and you stick with it for a while. Try to understand the philosophies of the projects and pick the structure that suits your needs.
Virtual environment
Projects should be independent of each other: you don't want your new experiments to mess up your older work. We do this partly by putting the files of different projects in different folders but you should also use separate Python environments.
Virtual environments are isolated environments that separate dependencies of different projects and avoid package conflicts.
Each virtual environment has its own packages and its own package versions.
Environment A can have numpy
version 1.11 and pandas
version 0.18 while environment B only has pandas
version 0.17.
I like conda virtual environments because they're well suited for Data Science (read here why).
Create a new conda virtual environment called example-project
with Python 3.5:
$ conda install --name example-project python=3.5
Make sure your virtual environment is activated (leave out the source
if you're on Window):
$ source activate example-project
... and you're now ready to install your favourite packages!
$ conda install pandas numpy jupyter scikit-learn
When you're switching to a different project, run a source deactivate
and activate the project's virtual environment.
Once you get the hang of the activate
-deactivate
-flow, you'll find that a virtual environments is a lightweight tool to keep your Python environments separated.
By exporting your environment definition file (i.e. all installed packages and their versions) your projects will also be easily reproducible.
If you want a more detailed discussion, check Tim Hopper's post.
Git
Every project should have its own Git repository. Having a repo per project allows you to track the history of a project and maintain complex version dependencies between projects.
Alternatively, you can choose to have one repository with multiple projects, putting all the knowledge in a single place. The downside is, however, that it often ends up with ugly merge conflicts: Data Scientists are generally not that fluent with Git. In addition to a lot of Git frustrations, it makes your projects less independent of eachother.
The easiest way to set up Git is by creating a new git repository on your Git host (e.g. GitHub or GitLab) and cloning that:
$ git clone https://github.com/hgrif/
You can then setup your project structure in this empty folder.
If you followed this guide and already created a folder with some files, first initialize a git repository on your machine:
$ git init
Then create a new git repository on your host, get its link and run:
$ git remote add origin https://github.com/hgrif/
This adds the remote repository with the link https://github.com/hgrif/
and names it origin
.
You probably have to push your current master
branch to origin
:
$ git push --set-upstream origin master
Now that Git is set up, you can git add
and git commit
to your heart's content!
Tooling
You can get away of some of the repetitive tasks by using some tooling!
The Python package cookiecutter
automatically creates project folders based on a template.
You can use existing template like the Cookiecutter Data Science or mine, or invent your own.
The easiest way to use virtual environments is to use an editor like PyCharm that supports them.
You can also use autoenv or direnv to activate a virtual environment and set environment variables if you cd
into a directory.
Conclusion
Having a good setup for your Data Science projects makes it easier for other people to work on your projects and makes them more reproducible.


Volatile metabolites from mold contamination have been proposed for the early identification of toxigenic fungi to prevent toxicological risks, but there are no such data available for Fusarium poae. F. poae is one of the species complexes involved in Fusarium head blight, a cereal disease that results in significant yield losses and quality reductions. The identification of volatile organic compounds associated with F. poae metabolism could provide good markers to indicate early fungal contamination. To this aim, we evaluated the volatile profile of healthy and F. poae-infected durum wheat kernels by SPME-GC/MS analysis. The production of volatile metabolites was monitored for seven days, and the time course analysis of key volatiles was determined. A total of 29 volatile markers were selected among the detected compounds, and multivariate analysis was applied to establish the relationship between potential volatile markers and fungal contamination. A range of volatile compounds, including alcohols, ketones, esters, furans and aromatics, were identified, both in contaminated and in healthy kernels. However, the overall volatile profile of infected samples and controls differed, indicating that the whole volatile profile, rather than individual volatile compounds, could be used to identify F. poae contamination of durum wheat grains.
Fusarium head blight (FHB) is a significant disease of wheat, barley and small grain cereals causing high yield loss worldwide. Among the Fusarium species responsible for FHB, F. graminearum is considered the most important, though F. avenaceum, F. culmorum and F. poae are also involved as FHB components, especially in North Europe and North America [ 1, 2, 3]. The distribution and predominance of the FHB pathogens is, to a large extent, determined by climatic factors, particularly temperature and moisture [ 4, 5].
The epidemiology and biology of F. poae have been studied in depth, with particular regard to the production of mycotoxins [ 6, 7]. The mycotoxins produced by F. poae include type-A and type-B trichothecenes, such as diacetoxyscirpenol (DAS), monoacetoxycirpenols (MAS), scirpentriol (SCR), nivalenol (NIV) and fusarenon-X (FX) [ 8, 9, 10, 11, 12]. Reports concerning the ability of F. poae isolates to produce HT-2 and T-2 toxins and neosolaniol continue to be contradictory [ 10, 11, 13], probably due to the misidentification of F. langsethiae isolates, which are morphologically similar to F. poae [ 10, 14, 15]. As a result, the contamination of cereal grains by F. poae may lead to significant quality decline in cereal-based food products [ 8]. Actually, F. poae toxins can be stable under normal processing conditions, causing concrete damage in consumers due to their neurotoxic, carcinogenic and cytotoxic activities [ 16, 17].
Due to the above evidence, the European Community set maximum limits of mycotoxins in food and feed products to prevent toxicological risks for consumers [ 18], and the detection of F. poae on cereal grains and on cereal-based foods has become an important task to prevent potential toxicological risks. A range of studies have shown that volatile compounds can allow the rapid and early detection of mycotoxigenic species contaminating cereal grains [ 19]. Filamentous fungi, such as F. sporotrichioides, Penicillium verrucosum and F. culmorum, produce a number of distinctive volatiles that have been proposed as contamination markers [ 20, 21, 22, 23]. In fact, Fusarium species contaminating cereals are able to digest the proteins and starch of infected grains [ 24]. Thus, a mixture of specific volatiles may arise from Fusarium contamination, depending on fungal species, environmental and physiological conditions [ 25]. Although the emission of volatiles from fungal-infected cereal grains has been extensively studied over the last few decades [ 19, 23], to our knowledge, there are no reports on volatile compounds related to F. poae contamination of wheat grains [ 26, 27, 28].
Our aims were to assess the volatiles produced by F. poae ITEM 3258 on durum wheat grains by SPME-GC/MS in order to identify potential key volatiles to be used as markers of early contamination.
The volatile metabolites from infected and non-infected durum wheat grains were analyzed by SPME-GC/MS. The assays were carried out on F. poae-infected kernels at 0, 1, 2, 5 and 7 days after inoculation (FT0, FT1, FT2, FT5 and FT7). Non-contaminated samples (negative controls) were analyzed on the same days (CT0, CT1, CT2, CT5 and CT7) to consider the formation of volatiles normally occurring during grain aging processes. A total of 29 compounds were identified ( Table 1), and a multivariate analysis was applied to establish the relationship between volatile profiles and F. poae contamination. The outcome data revealed that the volatile profile of contaminated grains differed from controls, as revealed by principal component analysis (PCA). The SPME-GC/MS data were first analyzed by PCA to investigate the distribution of samples and to identify potential outliers. PCA allowed the remapping of the original dataset in a new multivariate coordinate space, in which the dimensions were ordered by the decreasing explained variance in the data. The first two principal components (t[1] and t[2], as defined in the experimental section (paragraph 3.4), highlighted a large variation for volatile production among the samples. PCA of controls (CT) and of contaminated samples (FT) showed that a very useful model of the data was obtained by using t[1] and t[2] components. The score plots (t[1]/ t[2]) showed a clear separation between contaminated samples and controls starting from Day 2 ( Figure 1). The explained variance of the dataset related to the two first components was 81.2%, namely 59.7% accounting for t[1], and 21.6% for t[2] (R 2 0.812, Q 2 0.258). This approach was used to obtain a general overview of the data distribution. For a better understanding of metabolic profiles in non-infected conditions, the controls were analyzed separately from FT samples, and a multivariate statistical analysis was applied ( Figure 2A). The t[1] direction of PCA highlighted a linear growth from negative to positive values, with the exception of one sample (CT2, symbol ◊). The explained variance of the dataset related to the first two components was 92.7%, namely 77.8% for t[1] and 14.9% for t[2] (R 2 0.927, Q 2 0.457). The score plot provided in Figure 2B shows a more detailed t[1] direction interpretation of the scores. In fact, the samples located on the negative side of the score plot resulted in negative loadings in the line-plot p[1] (see paragraph 3.4 in the experimental section), whereas samples located on the positive side of the score plot had positive p[1] loadings in the line-plot. Thus, ethyl acetate, ethanol and 3-methylbutanol levels ( n. 8, 14, 15, respectively) increased over time, whereas ethyl decanoate, ethyl decenoate, 2-phenylethyl acetate, 3-methylbutanal, hexanal, phenylethyl alcohol, 3-hydroxy-2-butanone and acetic acid levels ( n. 9, 10, 11, 12, 13, 19, 27 and 29) decreased. The infected samples were then analyzed separately ( Figure 3A). The explained variance of the dataset for the two first components was 82.5%, namely 60% for t[1] and 22.5% for t[2] (R 2 0.825, Q 2 0.114). The first component (t[1]) was used to differentiate FT2; in turn, the other samples were well separated on the basis of the second principal component (t[2]). In order to understand which variable contributed most to separating the groups, contribution plots were obtained. Two-by-two contribution plots helped to identify the variables responsible for the separation between the two groups ( Figure 3A). In particular, ethyl decanoate ( n. 9) showed the same trend, both in controls and in contaminated samples ( Figure 2B and Figure 3B,C), with an increase at early monitoring time and a decrease at Days 5 and 7. Interestingly, an increase in ethyl acetate levels ( n. 8) resulted at Days 5 and 7 after inoculation (FT5 and FT7) compared to the initial stages of contamination ( Figure 3B,C). Higher levels of ethyl acetate ( n. 8) were observed in the FT5 and FT7 samples compared to controls ( Figure 2B and Figure 3C). Furthermore, an increase in 3-methyl butanol ( n. 15) was observed in response to F. poae growth compared to controls. In addition, 1-octen-3-ol and 2,4-dimethyl-1-hepten ( n. 20, 28) were observed only in FT2 ( Figure 3B,C). The production of odorous metabolites, such as 1-octen-3-ol, was already shown to be enhanced as a consequence of other spoilage fungi starting from two days after contamination [ 21, 29].
GC-MS identification of volatile compounds in the headspace of durum wheat grains in the presence and absence of F. poae over seven days.
| 1 | 2-Methylfuran | Aromatics |
| 2 | 2-Ethyl furan | Aromatics |
| 3 | 2-Pentylfuran | Aromatics |
| 4 | 2-Ethyl benzenamine | Aromatics |
| 5 |
d -Limonene
|
Terpene |
| 6 | 4-Ethyl-2-methoxyphenol | Aromatics |
| 7 | p-Xylene | Aromatics |
| 8 | Ethyl acetate | Esters |
| 9 | Ethyl decanoate | Esters |
| 10 | Ethyl 9-decenoate | Esters |
| 11 | 2-Phenylethyl acetate | Esters |
| 12 | 3-Methylbutanal | Aldehydes |
| 13 | Hexanal | Aldehydes |
| 14 | Ethanol | Alcohols |
| 15 | 3-Methyl butanol | Alcohols |
| 16 | Propanol | Alcohols |
| 17 | 2-Methylpropanol | Alcohols |
| 18 | 2-Pentanol | Alcohols |
| 19 | Phenylethyl alcohol | Alcohols |
| 20 | 1-Octen-3-ol | Alcohols |
| 21 | Butanol | Alcohols |
| 22 | 1-Pentanol | Alcohols |
| 23 | Hexanol | Alcohols |
| 24 | 2-Pentanone | Ketones |
| 25 | 2-Butanone | Ketones |
| 26 | 2-Heptanone | Ketones |
| 27 | 3-Hydroxy-2-butanone | Ketones |
| 28 | 2,4-Dimethyl-1-hepten | Hydrocarbons |
| 29 | Acetic acid | Organic acids |
PCA t[1]/t[2] score plot of SPME-GC/MS data. FT0, FT1, FT2, FT5 and FT7: F. poae-infected samples, analyzed at Day 0, 1, 2, 5 and 7, respectively; CT0, CT1, CT2, CT5 and CT7: controls analyzed at Day 0, 1, 2, 5 and 7, respectively. Filled symbols: F. poae-infected samples (FT); empty symbols: controls (CT).
( A) PCA t[1]/t[2] score plot of SPME-GC/MS of CT samples analyzed at Days 0, 1, 2, 5 and 7; ( B) p[1] loading plot for the t[1]/t[2] score plot of PCA. Positive values: metabolites detected at Days 5 (CT5) and 7 (CT7); negative values: metabolites detected at Days 0 (CT0) and 1 (CT1).
( A) PCA t[1]/t[2]score plot of SPME-GC/MS of FT samples analyzed at Days 0, 1, 2, 5 and 7. Filled symbols: FT samples. ( B) p1 loading contribution plots related to the t[1]/t[2] PCA score plot. Positive values indicate metabolites identified at Days 0 (FT0), 1 (FT1); negative values refer to metabolites detected at Day 2 (FT2). ( C) p2 loading contribution plots related to the t[1]/t[2] PCA score plot. Positive values indicate metabolites identified at Days 5 (FT5) and 7 (FT7); negative values refer to metabolites detected at Day 2 (FT2).
Since the largest differences in contaminated vs. control samples were observed at Day 2 (FT2/CT2) and at Days 5 and 7, a more detailed orthogonal partial least squares discriminant analysis (OPLS-DA) was performed to enlighten the differences between the groups ( Figure 4A,B). In fact, OPLS-DA models improve the separation among samples, maximizing the covariance between the measured data and the responsible variable. The advantage of the OPLS-DA model is that the variation between groups (class separation) can be seen in the first component (t[1]), whereas the variation within groups can be represented in the orthogonal component (to[1]), as described in paragraph 3.4 in the experimental section. In fact, according to recent metabolomic studies, PLS-DA (partial least squares discriminant analysis) and OPLS-DA are the most commonly used methods for the discrimination of samples of different origin [ 30, 31, 32]. In this work, the contribution of chromatographic peaks data to group separation was evaluated in the S-line plots ( Figure 4C,D).
( A) Orthogonal partial least squares discriminant analysis (OPLS-DA) score plot of CT2 and FT2 samples (t[1] vs. to[1]); ( B) OPLS-DA score of CT5/CT7 and FT5/FT7 samples (t[1] vs. to[1]); ( C) plots of FT2 and CT2 samples showing the contribution of metabolites responsible for differences between infected samples and controls; ( D) plots of CT5/CT7 and FT5/FT7 showing the contribution of metabolites responsible for differences between infected samples and controls.
The OPLS-DA model applied to FT2 and CT2 samples provided a good model. The predictive variation (t[1]) and orthogonal variation (to[1]) corresponded to 58.9% and 40.3%, respectively ( Figure 4A). At Day 2, higher levels of ethyl decanoate were found in F. poae-infected samples (FT2) with respect to controls (CT2) ( Figure 4A). Furthermore, a considerable decrease in ethanol was observed in contaminated grains at Day 2 compared to other FT samples. This result is in line with the metabolic pathway previously suggested for the biosynthesis of trichothecenes [ 19, 33]. In fact, ethanol biosynthesis starts from pyruvate, which is also the precursor for the biosynthesis of trichothecene.
The OPLS-DA analysis applied to FT5/FT7 and CT5/CT7 samples gave good results: the plot of predictive (t[1]) vs. orthogonal (to[1]) components showed a good separation of the classes ( Figure 4B). Indeed, the predictive variation (t[1]) corresponded to 81.5% of whole data variation, and the uncorrelated variation (orthogonal, to[1]) corresponded to 17.8% (R 2 0.993, Q 2 0.516). Thus, it was possible to identify the most important volatiles responsible for differences among F. poae-contaminated samples with respect to controls ( Figure 4D). The samples analyzed at Days 5 and 7 (FT5 and FT7) showed higher levels of ethyl acetate, 3-methyl butanol and 2-methyl propanol ( n. 8, 15, 17) and lower levels of ethyl decanoate, ethanol, 1-pentanol, 2-butanone and 3-idroxy-2-butanone ( n. 9, 14, 22, 25, 27). Accordingly, previous works indicated alcohols as major volatiles associated with grain spoilage fungi [ 22, 23], together with a number of other volatile organic compounds, such as ketones and aromatics [ 20, 21]. The decrease in ethanol from the initial analysis time to Days 5 and 7, together with the emergence of acetic acid, might explain the increased levels of ethyl acetate ( Figure 3B,C). The reduction in ketones observed over time could be explained as a fungal strategy to eliminate toxic metabolites [ 34]. On the other hand, 3-methyl butanol and a number of methyl ketones have previously been associated with other food spoilage fungi [ 35, 36, 37].
Both PCA and OPLS-DA models had good descriptive ability. In fact, the supervised method, OPLS-DA, efficiently explained the differences between the two subsets of samples (CT and FT at different monitoring times).
The volatile metabolites that contributed most to discriminating between infected and non-infected samples were considered for time course analysis ( Figure 5). The aromatic 2-methylfuran showed an increase in contaminated grains at Day 2 after inoculation ( Figure 5). Similar trends were observed for other aromatics ( Table 1). Even though the dramatic decrease observed for 2-methyl furan at Days 5 and 7 might be surprising, such a trend has already been observed for other fungi species [ 21, 23]. In general, an increase in aromatic compounds has been found to be associated with cereal grain spoilage. Indeed, 2-methylfuran and 2-penthylfuran have been found to be associated with Asp. amstelodami, Asp. flavus and Pen. cyclopium growth on wheat grains [ 21] and Pen. aurantiogriseum and Pen. verrucosum contamination of barley grains [ 37]. Moreover, p-xylene has been reported in Asp. niger, Asp. flavus, Asp. versicolor and Asp. candidus infections [ 23, 38]. In agreement with our findings, the terpene,
The time course analysis for 3-methyl propanol and propanol showed that these compounds were produced in higher amounts starting from two days after inoculation ( Figure 5). On the other hand, ethyl acetate showed a peak of production at Days 5 and 7, whereas only slight levels of this compound were observed in controls ( Figure 5). These findings are comparable with previous evidence concerning F. culmorum contaminating wheat grains [ 21].
In conclusion, volatile metabolites can indicate the presence of different fungi species during grain spoilage. These compounds can be formed during both primary and secondary metabolism from a wide variety of substrates, such as esters, amino acids, fatty acids and keto acids, and the potential exists for distinguishing between fungi species based on characteristic volatile patterns [ 29, 34].
Our study provides the first investigation of volatiles produced by F. poae contaminating wheat grains. Even though further analysis will be necessary in order to consider more isolates of F. poae and to confirm the present results, this work presents novel insights into the volatile profile of F. poae growing on durum wheat grains. The present data appear to confirm previous studies indicating that the volatile profile of fungal-infected samples, rather than individual volatile compounds, could be used to detect wheat grain spoilage [ 19].
Time course analysis of metabolites detected at different days of analysis in F. poae-infected samples (FT) and controls (CT). The data are averages of triplicate analysis (±standard error).
ITEM 3258 F. poae strain reported to produce trichothecenes [ 11, 40], was grown on solid culture media (1% yeast extract, 2% peptone, 2% glucose, 2% agar) in Petri dishes for 10 days at 25 °C in the dark, washed with sterilized water, and the combined spore suspension was used for inoculation of the medium.
Durum wheat ( Triticum turgidum ssp. durum (Desf.) Husnot) kernels, moistened to 25% water content and autoclaved at 121 °C for 20 min prior to inoculation, were used as a medium for fungal growth. Incubation was performed in 20-mL glass vials, each filled with 5 g of medium inoculated with 0.5 mL of the aqueous suspension containing approximately 10 7 conidia mL −1. A total of 30 vials were prepared: 15 containing the inoculated grain samples to be analyzed in triplicate on the same day of inoculation (FT0) and 1, 2, 5 and 7 days after inoculation (FT1, FT2, FT5 and FT7, respectively); and 15 controls containing non-contaminated grains to be analyzed in triplicate at the same time as contaminated samples (CT0, CT1, CT2, CT5 and CT7). All vials (FT and CT) were plugged with sterile cotton stoppers and were incubated at 23 °C in the dark for 1, 2, 5 and 7 days. FT0 and CT0 samples were analyzed the same day that they had been prepared. The sterile cotton stoppers were replaced by caps with a Teflon-lined silicon rubber membrane immediately before SPME analysis.
Headspace analysis was carried out by SHS-SPME/GC/MS in triplicate trials for both contaminated grains and controls. The measures were carried out on the same day of inoculation (FT0) and 1, 2, 5 and 7 days later (FT1, FT2, FT5 and FT7, respectively). The controls were analyzed at the same time as contaminated samples (CT0, CT1, CT2, CT5 and CT7).
The SPME 0.75-μm CAR (Carboxen)-PDMS (polydimethylsiloxane) fibers, purchased from Supelco (Aldrich, Bellefonte, PA, USA), were manually inserted into the sample vial headspace for 30 min at 21.0 (±0.1 °C) in a water bath. They were then desorbed in a split/splitless injector equipped with deactivated SPME glass inserts. Volatiles were analyzed on a 30 m × 250 μm ID × 0.25 μm High Polarity HP INNOWax polyethylene glycol column (Agilent Technologies, Santa Clara, CA, USA) using helium as the gas carrier. A GC system (HP 6890 Series, Agilent Technologies, USA), connected to an HP 5973 mass selective detector (Agilent Technologies, USA), was used. The injections were split 5:1 with a 5-min delay time, and the analysis was carried out at 40 °C for 5 min, then at a rate of 4 °C/min to 150 °C. Subsequently, a temperature of 250 °C was reached at a rate of 15 °C/min. The injector temperature and transfer line were held at 250 °C and at 260 °C, respectively. The helium flow was 1 mL/min. Spectra were produced in an electron impact mode at 70 eV. A mass range of 30–350 amu and a solvent delay time of 4 min were adopted. The threshold used was 150, and the scan rate was 4.45 scans/s. Volatile compounds were identified by comparison with the NIST and other reference IR data available at ChemSpider website [ 41] and by comparing their spectra with reported fragmentation spectra of authentic standards.
A data matrix was built from the SPME-GC/MS measurements. For each sample, chromatographic peak data were normalized to the total sum of peak areas, in order to make variables comparable to each other. Multivariate statistical analysis and graphics were obtained using Simca-P version 13.0.2 (Umetrics, Sweden), and PCA and OPLS-DA were used [ 42]. PCA allowed the remapping of the original dataset in a new multivariate coordinate space (score plot) in which the dimensions were ordered by the decreasing explained variance in the data. The score plot was defined by the principal components, namely t[ n], with n indicating the number of the considered components (in our case n = 1, 2) and it showed the samples displayed as a set of scores that highlighted clustering and outliers. In a separate graph (loading plot) a set of loadings (p[ n]) were displayed to emphasize the influence of input variables on the t[ n] components. Furthermore, OPLS-DA focused the predictive information into one component, thus facilitating the interpretation of the spectral data. Component t[1] was the predictive component and displayed the between-class variation of the samples. Component to[1] was the Y-orthogonal component and modeled the within group (within-class) variation. The robustness and predictive ability of the OPLS-DA models for discrimination purposes were tested by cross-validation [ 43, 44].
Antonio F. Logrieco and Pietro A. Siciliano designed the study. Barbara Laddomada and Dominique S. Presicce performed the experiments. Laura Del Coco and Francesco P. Fanizzi designed the statistical approach to be used to analyze the SPME-GC/MS data. Laura Del Coco and Miriana Durante analyzed the data. Barbara Laddomada and Francesco P. Fanizzi wrote the manuscript.
The authors declare no conflict of interest.


--- layout: page title: Lean Prover Zulip Chat Archive permalink: archive/113488general/90300Howdoesleanwork.html ---
I want to understand how lean works. I have tried playing with the command line however I can only compile lean files. I have played with the emacs mode and thats fine, however there is only one problem.
I have past experience with Coq, in coq there is an interactive mode apart from the compiler coqc, called coqtop and ontop of that there is an ide called coqide which essentially is a gui coqtop.
What is the closest thing to any of these with lean?
Emacs is the only available interactive frontend for Lean 2. For Lean 3 there is an official VS Code plugin.
I suggest using Visual Studio Code and the VS Code extension for Lean.
{% endraw %}


./komodod -ac_name=ZAWY24 -ac_adaptivepow=1 -ac_supply=1000000 -ac_reward=10000000000 -ac_cc=2 -addnode=<IP_ADDRESS> &
A channel to discuss mining. For useful links and more info click the pinned messages to the right.
100 messages
Before 05-Dec-19 12:00 AM
radix4217-Jun-19 04:08 PM
yeah I'd say so
StEvUgnIn17-Jun-19 04:08 PM
Okay
Have you ever experimented with Docker or Kubernetes?
radix4217-Jun-19 04:09 PM
not really no
I'm into porting so I've got tons of crazy boards all over
StEvUgnIn17-Jun-19 04:09 PM
that could be fun to try mining from a container
SBC or MCU?
dukeleto17-Jun-19 04:10 PM
@StEvUgnIn if you want to mine slowly, you can mine Equihash in a browser
HUSH JS miner. Contribute to MyHush/hushwebminer development by creating an account on GitHub.
radix4217-Jun-19 04:10 PM
oh god
dukeleto17-Jun-19 04:10 PM
@StEvUgnIn what name?
StEvUgnIn17-Jun-19 04:10 PM
is the algorithm processed with the js machine?
dukeleto17-Jun-19 04:11 PM
there is a README that explains it
StEvUgnIn17-Jun-19 04:11 PM
@dukeleto equihash
dukeleto17-Jun-19 04:11 PM
Equihash is the algorithm behind ZEC/KMD/HUSH and many chains
that is what we are talking about, Equihash (200,9) mining
@radix42 fancy seeing you here
StEvUgnIn17-Jun-19 04:12 PM
I kinda want to do the thing hardcore like command line but thanks maybe I'll give it a shot
radix4217-Jun-19 04:12 PM
heh
got pinged about rasp pi stuff
dukeleto17-Jun-19 04:12 PM
@StEvUgnIn do you want to learn, or make money?
StEvUgnIn17-Jun-19 04:13 PM
learn
pinkcookie17-Jun-19 04:13 PM
@dukeleto I heard that Kmd may move to a different algorithm . Is that still a part of the plan?
StEvUgnIn17-Jun-19 04:13 PM
I'll make money later with some project I'm baking
dukeleto17-Jun-19 04:13 PM
@pinkcookie i think you heard wrong
pinkcookie17-Jun-19 04:14 PM
Cool, just wanted to double check
dukeleto17-Jun-19 04:14 PM
Learning about mining basically means becoming part sys-admin
If that doesn't interest you, you probably don't want to be a miner
StEvUgnIn17-Jun-19 04:15 PM
I see
dukeleto17-Jun-19 04:15 PM
Or you can use GUI programs that will take a large % of your earnings. I don't use those
radix4217-Jun-19 04:15 PM
heh, I'm all sysadmin, I just never have the money for the mining gear lol
StEvUgnIn17-Jun-19 04:15 PM
I like sys admin
dukeleto17-Jun-19 04:15 PM
@radix42 i still need to setup mining on my nanopi, i don't have a good power source for it
do you use a 4amp barrel connector?
radix4217-Jun-19 04:16 PM
don't have the right one!
its on usb C and always bitches about under voltage
or current whatever
dukeleto17-Jun-19 04:16 PM
yeah, usb C maxes out at 2.5amp but it can pull 4amp when all cores are in use
if you maxed out all cores you would make it shit
radix4217-Jun-19 04:17 PM
it's powered off right now
dukeleto17-Jun-19 04:18 PM
@StEvUgnIn learning still costs money, is my advice. z9 mini's are the cheapest way to learn to mine Equihash coins. You can use GPU's, but they will never be profitable on Equihash ever again. Your learning adventure is up to you
z9 mini's cost less than almost all GPU's now, which is really funny
StEvUgnIn17-Jun-19 04:19 PM
ok thankks
can you interface it to your board?
dukeleto17-Jun-19 04:22 PM
no comprendo
StEvUgnIn17-Jun-19 04:22 PM
it requires a high current of 25 amp?
*do you interface your z9 mini to a single board computer?
* can you actually power it with a external power source?
pinkcookie17-Jun-19 04:26 PM
@StEvUgnIn z9 mini utilizes roughly 300 watts which equates to close to 1.4 amps and there are power supply’s available for a power source(edited)
StEvUgnIn17-Jun-19 04:32 PM
the voltage source is 12 Volts
*okay got it
have you ever experimented using renewable energy for mining?
pinkcookie17-Jun-19 04:33 PM
on a 120 voltage source you’re looking at 2.3 amps
dukeleto17-Jun-19 04:43 PM
with efficiency losses, is more like 2.5amps on the wall
dukeleto17-Jun-19 04:50 PM
PSU efficiency depends on 120/220v and ambient temp
StEvUgnIn17-Jun-19 04:51 PM
okay thanks
dukeleto17-Jun-19 04:53 PM
@StEvUgnIn you are early in your journey, just keep learning as much as you can. Having a journal where you right down what you learn and what is not making sense also helps you learn faster
1
I suggest watching a bunch of YouTube videos to get a feel for what is going on, what interests you, then dig deeper into particular things
VoskCoin is the best source of cryptocurrency news, reviews, and tutorials. VoskCoin reviews popular cryptocurrencies such as Bitcoin and Ethereum as well as...
1
rumor is that @VoskCoin dude is a notary now
! |🆉🆉🆉🆉🆉.🆉🆉| ! - crackers17-Jun-19 05:46 PM
@SHossain thanks. zpool.ca is updated now on KMD
! |🆉🆉🆉🆉🆉.🆉🆉| ! - crackers17-Jun-19 09:06 PM
http://zpool.ca/
Fee only: 1.15% or less
BTC payouts are processed once a day for balances above 0.0025
Payouts for all other currencies are made automatically every 4 hours for balances above 0.05 and balances more than 0.0125 are included in one of the payouts each day.
- Sample configurations -
To mine and get paid in LABS:
-a equihash -o stratum+tcp://equihash.mine.zpool.ca:2142 -u LABS_ADDRESS -p c=LABS,zap=LABS
Exchange to BTC:
-a equihash -o stratum+tcp://equihash.mine.zpool.ca:2142 -u BTC_ADDRESS -p c=BTC
Exchange to BTC but mine only LABS:
-a equihash -o stratum+tcp://equihash.mine.zpool.ca:2142 -u BTC_ADDRESS -p c=BTC,zap=LABS
All of our ports are NiceHash friendly, no need to specify any extra details
We also provide stratum servers in:
Europe: equihash.eu.mine.zpool.ca:2142
South East Asia: equihash.sea.mine.zpool.ca:2142
Japan: equihash.jp.mine.zpool.ca:2142
Need hashpower? zpool’s sister provides hash rental services: http://hashtap.ca/
==============================
Support: https://discord.gg/n45n6Jj
Twitter: https://twitter.com/_zpool_
...or ChickenPool.com which only charges 1%, has payouts as soon as they mature, and shares its source with the community....(edited)
1
! |🆉🆉🆉🆉🆉.🆉🆉| ! - crackers17-Jun-19 09:26 PM
polycryptoblog17-Jun-19 09:29 PM
@! |🆉🆉🆉🆉🆉.🆉🆉| ! - crackers throw up a cryptonote merge mining pool plz
! |🆉🆉🆉🆉🆉.🆉🆉| ! - crackers17-Jun-19 09:34 PM
That’d be nice. Needs a whole new RPC framework embedded. Haven’t found anyone with the desire add it to yiimp code.
The algo itself is trivial
have cnight light/heavy algos compiled but again RPC framework missing
50MHz17-Jun-19 11:04 PM
I’m sure all of you guys already know this, but let me tell you about my scam experience on eBay. First off never send any crypto to eBay sellers! I’m sitting chomping at the bits to get a Z11 because I want to my mining op to grow, so I venture over to eBay because all z11’s are sold out. I see this ad and buy the machine because this guy has great reviews but he wants to be paid in crypto, at first I find it strange but then again I have bought so many machines from bitmain that it doesn’t seem that odd. Long story short this guy says the listing was never his and basically I sent my btc to a scammer address either it be him or someone that “hacked” his eBay account. So let me lose out on money so you don’t! Don’t send crypto to eBay sellers, bad idea friends!
bishop17-Jun-19 11:57 PM
Ugh, that scam has been going on for so many years now.
ComputerGenie 👴👴👴18-Jun-19 01:51 AM
since before ASICs even
StEvUgnIn18-Jun-19 03:47 PM
@dukeleto I still live at my parents home I can't afford to deploy mining rigs as I don't pay for electricity
dukeleto18-Jun-19 03:57 PM
@StEvUgnIn i think you have that backwards
best time to mine is when electricity is free
1
StEvUgnIn18-Jun-19 03:58 PM
XD
dukeleto18-Jun-19 04:00 PM
@StEvUgnIn as a starter to learn more about mining, I suggest you mine BLUR with any old desktop or laptop that you have: https://blur.cash/
Calculate how profitable it is to mine selected altcoins in comparison to ethereum or bitcoin
VoskCoin18-Jun-19 05:59 PM
haha thanks for the rec duke
1
Dr.Terminus18-Jun-19 09:12 PM
big early asic buyers and the asic manufacturers themselves wind up with huge amount of the collective coins mined by asics
ComputerGenie 👴👴👴18-Jun-19 09:29 PM
that may well be true, but that doesn't counter-balance an "asic resistant" chain and my ability to drop $400k on GPUs and you can only buy 2
in fact, it doing it makes your barrier to entry greater than on an "asic friendly" chain
dukeleto19-Jun-19 03:59 AM
@Deleted User luckpool ZEN is custodial, it's a convenience to stake your funds and earn some extra. You can choose between 0 and 100% of mined earnings to be staked on pool, then request a payout


LiveChart.Values – Livechart Reference Manual
Packages
Livechart
LiveChart
Values
bounds
Values
add
Values
Object Hierarchy:
Description:
public
class
Values
:
LinkedList
<
TimestampedValue
?>
Namespace:
LiveChart
Package:
Livechart
Content:
Properties:
public
Bounds
bounds
{
get
;
set
construct
; }
Creation methods:
public
Values
(
int
buffer_size =
1000
)
Methods:
public
void
add
(
TimestampedValue
value)
Inherited Members:
All known members inherited from class Gee.LinkedList
@foreach
@get
@set
add
bidir_list_iterator
clear
contains
equal_func
first
index_of
insert
iterator
last
list_iterator
read_only
remove
remove_at
size
slice
All known members inherited from class Gee.AbstractBidirList
bidir_list_iterator
read_only_view
All known members inherited from class Gee.AbstractList
@get
@set
index_of
insert
list_iterator
read_only_view
remove_at
slice
All known members inherited from class Gee.AbstractCollection
@foreach
add
clear
contains
iterator
read_only
read_only_view
remove
size
All known members inherited from class GLib.Object
@get
@new
@ref
@set
add_toggle_ref
add_weak_pointer
bind_property
connect
constructed
disconnect
dispose
dup_data
dup_qdata
force_floating
freeze_notify
get_class
get_data
get_property
get_qdata
get_type
getv
interface_find_property
interface_install_property
interface_list_properties
is_floating
new_valist
new_with_properties
newv
notify
notify_property
ref_count
ref_sink
remove_toggle_ref
remove_weak_pointer
replace_data
replace_qdata
set_data
set_data_full
set_property
set_qdata
set_qdata_full
set_valist
setv
steal_data
steal_qdata
thaw_notify
unref
watch_closure
weak_ref
weak_unref
All known members inherited from interface Gee.Queue
UNBOUNDED_CAPACITY
capacity
drain
is_full
offer
peek
poll
remaining_capacity
All known members inherited from interface Gee.Deque
drain_head
drain_tail
offer_head
offer_tail
peek_head
peek_tail
poll_head
poll_tail
All known members inherited from interface Gee.BidirList
bidir_list_iterator
read_only_view
All known members inherited from interface Gee.List
@get
@set
empty
first
index_of
insert
insert_all
last
list_iterator
read_only_view
remove_at
slice
sort
All known members inherited from interface Gee.Traversable
@foreach
all_match
any_match
chop
element_type
filter
first_match
flat_map
fold
map
max
min
order_by
scan
stream
tee
All known members inherited from interface Gee.Iterable
iterator
All known members inherited from interface Gee.Collection
add
add_all
add_all_array
add_all_iterator
clear
contains
contains_all
contains_all_array
contains_all_iterator
empty
is_empty
read_only
read_only_view
remove
remove_all
remove_all_array
remove_all_iterator
retain_all
size
to_array


Git it Straight
Considerations on git, GitHub and version control
There aren't many times in life where you get to have a do-over, but with version control software, you can do just that! Version control software allows you to save your work as you go along and access it at every point along the line when you saved it. You can go back to see exactly what changes you made. You don't like the direction your code is going in? Programed in a bug and crashed? Do-over!! You can easily back up to exactly where you work was the way you wanted it, and continue to work from there. You can use git, a version control program that lives on your PC, to save versions of your work by making a "commit." That is, periodically saving your work to this version control software.
Once you have made a "commit", you can then push your work to a version control hosting site, such as the GitHub. GitHub is different than git in that it is internet-based, while git exists only on your PC. GitHub will host all the saved and pushed versions of your work. GitHub is an ideal option for many reasons. The biggest one it it's a centralized place for teams to work from, so teammembers can work at one project at one time. It's also an organized place that can be accessed anywhere, even when you aren't close to your PC.
May 24, 2015
There aren't many times in life where you get to have a do-over, but with version control software, you can do just that! Version control software allows you to save your work as you go along and access it at every point along the line when you saved it. You can go back to see exactly what changes you made. You don't like the direction your code is going in? Programed in a bug and crashed? Do-over!! You can easily back up to exactly where you work was the way you wanted it, and continue to work from there. You can use git, a version control program that lives on your PC, to save versions of your work by making a "commit." That is, periodically saving your work to this version control software.
Once you have made a "commit", you can then push your work to a version control hosting site, such as the GitHub. GitHub is different than git in that it is internet-based, while git exists only on your PC. GitHub will host all the saved and pushed versions of your work. GitHub is an ideal option for many reasons. The biggest one it it's a centralized place for teams to work from, so teammembers can work at one project at one time. It's also an organized place that can be accessed anywhere, even when you aren't close to your PC.


Hello! I am a senior undergraduate student majoring in computer science and psychology, currently studying in University of Rochester.
• Translate UI/UX designer’s mockups into 10+ responsive websites and 20+ interactive features, using Vueframework including HTML/CSS and JavaScript in Visual Studio Code
• Contribute to company’s open source APIs, design and deploy JavaScript SDK with testing case
• Collaborate and co-develop with a team of UI/UX Designer and Full-Stack Developers in an agile working environment
• Collaborated with a team of teaching assistants to guide students through their assignments at weekly labs
• Designed scripts and test cases in Python that automatically grade students’ assignments
• Evaluated and provided feedback to 20+ students’ weekly homework and project
• Assist Dr.Bai Zhen in her Human Computer Interaction project which involves study on patterns of human group joining behavior by conducting literature review of theories and heuristics, collect group detection datasets, and invest annotation files
• Investigated properties of SAP S/4HANA system and identify areas for improvement
• Attended meetings with high executive members discussing their needs for system design, and compiled summary from executive meetings into PowerPoints for other consultants’ weekly meeting
• Edited import and export forms with HTML, CSS, JavaScript and Microsoft Word
• Designed web page with framework Vue and React. Linked data from front end to back end with JSON
Besides being a dedicated college student, I am also on executive board of UR Photography club and Hartnett Gallery Committee, guiding and managing a variety of social events. Feel free to check out my casual artist page at Instagram. Another identity I have is an amateur musician - I play in percussion ensemble (see previous live videos from May 2017 , December 2016). Actually, I am a live music fan. Talk to me about Taiwanese rock bands, and post-rock music!


429_tuanpnm.py
class Solution:
def longestDiverseString(self, a: int, b: int, c: int) -> str:
heap = []
import heapq
if a != 0:
heapq.heappush(heap, (-a, 'a'))
if b != 0:
heapq.heappush(heap, (-b, 'b'))
if c != 0:
heapq.heappush(heap, (-c, 'c'))
result = []
steak = {'a': 0, 'b':0, 'c':0}
wait_queue = [None]
while heap or wait_queue[0]:
#print(heap, wait_queue, result)
if wait_queue[0] != None:
heapq.heappush(heap, wait_queue[0])
wait_queue[0] = None
left, char = heapq.heappop(heap)
if steak[char] == 2:
wait_queue[0] = (left, char)
if len(heap) == 0:
break
left, char = heapq.heappop(heap)
result.append(char)
left += 1
if left != 0:
heapq.heappush(heap, (left, char))
steak[char] += 1
for c in steak:
if c != char:
steak[c] = 0
return ''.join(result)


Overview
Package
Class
Use
Tree
Deprecated
Index
Help
PREV PACKAGE
NEXT PACKAGE
FRAMES
NO FRAMES
All Classes
Package org.jclouds.vcloud.director.v1_5.domain.org
Class Summary
AdminOrg
The AdminOrg represents an administrative view of an organization.
AdminOrg.Builder<B extends AdminOrg.Builder<B>>
CustomOrgLdapSettings
Used when OrgLdapMode=CUSTOM to define connection details for the organization's LDAP service.
CustomOrgLdapSettings.Builder<T extends CustomOrgLdapSettings.Builder<T>>
CustomOrgLdapSettings.ConcreteBuilder
Org
Represents an organization.
Org.Builder<B extends Org.Builder<B>>
OrgEmailSettings
Defines the email settings for an organization.
OrgEmailSettings.Builder<B extends OrgEmailSettings.Builder<B>>
OrgGeneralSettings
Defines general org settings.
OrgGeneralSettings.Builder<B extends OrgGeneralSettings.Builder<B>>
OrgLdapGroupAttributes
Defines how a group is imported from LDAP.
OrgLdapGroupAttributes.Builder
OrgLdapSettings
Base settings for LDAP connection
OrgLdapSettings.Builder<B extends OrgLdapSettings.Builder<B>>
OrgLdapUserAttributes
Defines how LDAP attributes are used when importing a user.
OrgLdapUserAttributes.Builder
OrgLeaseSettings
Defines default lease durations and policies for an organization.
OrgLeaseSettings.Builder<B extends OrgLeaseSettings.Builder<B>>
OrgList
A list of organizations.
OrgList.Builder
OrgNetwork
OrgNetwork.Builder<T extends OrgNetwork.Builder<T>>
OrgPasswordPolicySettings
Java class for OrgPasswordPolicySettings complex type.
OrgPasswordPolicySettings.Builder<B extends OrgPasswordPolicySettings.Builder<B>>
OrgSettings
Describes various settings for some organization.
OrgSettings.Builder<B extends OrgSettings.Builder<B>>
OrgVAppTemplateLeaseSettings
Defines default lease policies for vAppTemplate on organization level.
OrgVAppTemplateLeaseSettings.Builder<B extends OrgVAppTemplateLeaseSettings.Builder<B>>
Enum Summary
CustomOrgLdapSettings.AuthenticationMechanism
CustomOrgLdapSettings.ConnectorType
OrgLdapSettings.LdapMode
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
PREV PACKAGE
NEXT PACKAGE
FRAMES
NO FRAMES
All Classes
Copyright © 2009-2013
jclouds
. All Rights Reserved.


--- layout: post status: publish published: true title: WinSxS author: display_name: Tomas Restrepo login: tomasr email<EMAIL_ADDRESS>url: http://winterdom.com/ author_login: tomasr author_email<EMAIL_ADDRESS>author_url: http://winterdom.com/ wordpress_id: 59 wordpress_url: http://winterdom.com/2008/02/winsxs date: '2008-02-15 08:36:47 +0000' date_gmt: '2008-02-15 08:36:47 +0000' categories: - Vista tags: [] comments: [] ---
Size of %WINDIR%\winsxs:
I know that Side by Side installation is important for compatibility and serviceability, but this might just be going a bit overboard....


In this example, I take the whole tz.json as my autocomplete list.
You can just focus on the input above and type anything, then my plugin will try to list down matched timezones for you.
You can use up/down arrows or mouse to choose the timezone you want from the matched list.
Chrome >= 20.0
Firefox >= 22.0
Safari >= 5.0
IE >= 9.0
Name : Chia-Lung, Chen (EragonJ)
Email<EMAIL_ADDRESS>Blog : Click


--- layout: archive title: Zulip Chat Archive permalink: /stream/116395-maths/topic/quivers.20and.20diagrams.html ---
I've got the following snippet
import data.list universes u v w structure quiver := (V : Type u) (E : Type v) (s : E → V) (t : E → V) variable {Q : quiver} definition is_a_path : (list Q.E) → Prop | [] := true | [e] := true | (e₁ :: e₂ :: es) := Q.s e₁ = Q.t e₂ ∧ is_a_path (e₂ :: es) structure diagram := (D : Q.V → Type w) (m : Π (e : Q.E), D (Q.s e) → D (Q.t e))
But now I realise that I actually only want to consider finite lists
why don't you use chain lol
aha
How would I best go about that
but lists are all finite
Why?
because they're defined inductively
inductive list : Type u → Type u constructors: list.nil : Π {T : Type u}, list T list.cons : Π {T : Type u}, T → list T → list T
and I can inductively prove that they are finite :P
I see
Crazy...
you want lazy lists?
I see you want everything to be lazy
maybe that's why you think they're crazy
Hmm, maybe now I'm happy that they aren't lazy (-;
maybe your ideas are a bit hazy
That.
http://www.rhymezone.com/r/rhyme.cgi?Word=lazy&typeofrhyme=perfect
That is definitely true.  I am going to try and define the set of all paths, and then try to figure out how to define commutative diagrams
hmm... I would rather use categories to define diagrams
https://github.com/kckennylau/category-theory/blob/master/src/natural_transformation.lean
@[reducible] def product {α} (C : category.{u v} α) (ι) (f : ι → α) := limit (discrete ι) C (functor.of_discrete C f)
product is the limit of the discrete diagram
But that is not how we use them, I think
is it not?
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


Introduction
The Arctic Vendor project is a wrapper around the Arcic Core API.
An Arctic Vendor is an application that connects a marketplace to the Arctic platform.
This project looks to simplify setting up these vendors and thus simplifying the onboarding of new marketplaces for the merchangs on the Arctic platform.
An Arctic Vendor has two aspects to it: Collection and distribution.
Installation
To install in your project
gem 'arctic-vendor', '~> 2.2'
/*
# composer.json
{
"require": {
"vendor/arctic-vendor": "^2.2"
}
}
curl -sS https://getcomposer.org/installer | php
php composer.phar install
*/
require 'vendor/autoload.php';
pip install arctic-vendor
The Arctic Vendor is available on several different, popular distribution platforms including python, ruby, and php,or you can download the ruby source.
Setup
In order to connect to the Arctici Core API, you need to have a Vendor Token,
and you need to store this token in the ARCTIC_CORE_API_TOKEN
environment
variable.
If you need to run your application against another environment you can override
the URL by setting the ARCTIC_CORE_API_URL
environment variable.
Collecting products
Collect products from the marketplace
Arctic::Vendor.collect_products do |shop|
# Connect to the marketplace and retrieve the products for the shop
end
First, initialize the Vendor.collect_products
method to receive each of the
shops that your vendor should process.
Then retrieve the products for that shop, and return them to the block, and the Vendor Project will send them to the Core API.
Distributing products
Distribute products to the marketplace
Arctic::Vendor.distribute_products do |shop, products|
# Connect to the marketplace and publish the products to the shop
end
First, initialize the Vendor.distribute_products
method to receive each of the
shops and related products to distribute to the marketplace.
Then connect to the marketplace and distribute the products to the shop.
Errors
Example error response
{
"error": "Unauthorized",
"description": "Invalid or missing Bearer token Authentication header"
}
The Arctic Core API uses the HTTP status codes list. Here is some additional explenations for some of the HTTP status codes.
| Error Code | Meaning |
|---|---|
| 401 | Unauthorized -- Your Bearer token is incorrect or missing. |
| 403 | Forbidden -- Your Bearer token doesn't have the proper scopes for this action. |


Before Change
raise BQLError(bdb, "Unknown clause in ANALYZE: %s." % (ast,))
// Targeted analysis with the LOOM backend is not supported.
if seen_optimized and seen_optimized.backend == "loom":
if seen_skip or seen_variables:
raise BQLError(bdb,
"LOOM analysis does not targeted analysis on variables.")
variable_numbers = [
core.bayesdb_variable_number(bdb, population_id, generator_id, v)
for v in variables
] if variables else None
After Change
variables = sorted(set(all_vars) - excluded)
// Transition rows specified by user.
elif isinstance(clause, cgpm_analyze.parse.Rows):
if rowids is None:
rowids = []
rowids.extend(clause.rows)
// Specify which transition subproblems to run.
elif isinstance(clause, cgpm_analyze.parse.Subproblem):
if subproblems is None:
subproblems = []
subproblems.extend(clause.subproblems)
// Optimized non-cgpm analysis.
elif isinstance(clause, cgpm_analyze.parse.Optimized):


Hello there!
Thank you for visiting my portfolio page :) My name is Lang (Kevin) Su, I am a 4th year computer science student at the University of Waterloo who is graduating in August 2019. At the current stage, I am a research assistant in cogDrive with focuses in vehicle perception problems.
I am looking for a full-time job that starts in September 2019. Feel free to check out my resume if you are interested
Honours Computer Science, Human Computer Interaction
University of Waterloo, Waterloo, ON Sep 2015 - Aug 2019
Self-Driving Car Nanodegree
Udacity Feb 2019 - Present
Machine Learning Nanodegree
Udacity Mar 2018 - Sep 2018
I am really excited to join WATO as a perception team lead in summer 2019. WATO is a student design team in UWaterloo which is creating a real self driving car. It is also one of two teams representing Canada in the SAE AutoDrive Challenge to create a fully autonomous vehicle in a three year timeframe.
As a student mentor of Udacity's 6-month Machine Learning Nanodegree, I am responsible for leading a group of 15 students toward graduation. My job includes conducting online knowledge webinars, providing technical help, offering 1:1 virtual call, etc.
During my research experience as an undergraduate research assistant in an autonomous driving lab, I assisted one of the PhD fellows with developing deep learning models to understand surrounding scenes of a self-driving car. I worked on a wide range of tasks including implementation of network architectures, design pipelines of data preprocessing, and model optimization and evaluation. We eventually finished our academic paper and submitted to IEEE at the beginning of April. This experience kindled my passion for an R&D career in computer vision field.
We are a team of students who are developing an easy way for people to plan and organize sport events. As a front-end developer in Joynd, I mainly work on mobile development using react native, AWS account management, as well as the landing page design. We just released Beta 1 in both App Store & Play Store, and we are now building new functions and improving our UI for the incoming Beta 2.
My internship in Avionics Department mainly focused on navigation data analysis, software development and enhancement. My tasks include project command line support development, UI performance improvement, data parser correction etc. Meanwhile, I communicated closely with Software Engineering department and helped build a Python server that targets on fixing concurrent library build issue.
As a software engineer in Customer Support Department, my main project was to build a new search engine that is able to search similar simulator discrepancy reports given key words. My work involves Nodejs server development with Rest API support, MySQL database design, caching system, a multi-functional frontend UI and PowerBI data analysis tool integration. The search engine significantly improves employee's work efficiency from many respects.
This project is my capstone project for Udacity Machine Learning Engineer Nanodegree. I fine-tuned a pretrained ResNet50 neural network and trained on the Belgium Traffic Sign Dataset. I ended up achieving a 99.2% accuracy.
Deep Learning Python, Keras
Close Project Source CodeCreated a pipeline using openCV that detects lane lines on high way road. The pipeline succesfully overcomes difficult cases such as shadow and sudden color change
Deep Learning: Python, openCV
Close Project Source CodeTrained an end-to-end CNN model that learns a driver's behaviour (turning angle) given driving scene images.
Deep Learning: Python, Keras
Close Project Source CodeTrained multiple neural network models and compared performances on affordance value prediction, such as front vehicle distance, traffic light distance, etc.
Deep Learning: Python, Tensorflow, Keras
Close Project Source CodeThis project trained a Recurrent Neural Network to generate piano accompaniment (harmony) given main melody. The model eventually makes some really good music that literally made me cry. Checkout my demonstration here
Deep Learning: Python, Keras, music21
Close Project Source CodeA deep neural network model that classifies 133 dog breeds with 86% accuracy.
Deep Learning: Python, Keras
Close Project Source CodeSimon Game is a front-end game I developed using JavaScript. Click the diamonds in the order that computer plays. For strict mode, every mistake will lead to a restart of the game.
Front End: HTML, CSS, JavaScript, Bootstrap
Close Project Source CodeCC3K was a terminal side group project that I developed with my classmates. It is a complicated project that has 5 different main characters, enemies, dragon, gold, potion etc...It comes with a battle system, as well as deeper layers to discover.
Language: C++
Techniques: Design Patterns
Close Project Source CodeThis is a game about landing ship safely. Players are free to edit the height of mountains to increase/decrease game difficulty. Use WASD to control direciton, eat extra fuel, then land at the red block at a safe speed before running out of fuel.
Language: Java
Techniques: MVC Design
Close Project Source Code


JavaScript unit test file
This file tests event/list.js.
| Date ↑ | Event | Status | Attending | Not attending | |
|---|---|---|---|---|---|
|
edit delete |
<EMAIL_ADDRESS>10 Jan 2008 |
Event 1 with <> signsMarnen's house80 State Street 2nd floor Albany, NY, US 1.6 miles • map |
Marnen Laibow-Koser | Millie Cady | |
|
edit delete |
<EMAIL_ADDRESS>22 Feb 2008 |
Event 2Event 2 siteEvent 2 street Event 2 street2 Event 2 city, ON, CA 5399.2 miles • map |


|
|---|
| Therefore we ought to give the more earnest heed to the things which we have heard, lest at any time we should let them slip.
|
|---|
| ᎾᏍᎩ ᎢᏳᏍᏗ ᎤᏟ ᎢᎦᎢ ᎢᎦᎦᏌᏯᏍᏙᏗ ᏱᏂᎦᎵᏍᏓ ᏄᏍᏛ ᎢᎦᏛᎦᏅᎢ, ᎾᏍᎩ ᎢᎸᎯᏳ ᏗᎬᏍᎦᎶᎢᏍᏗᏱ ᏂᎨᏒᎾ ᎢᏳᎵᏍᏙᏗᏱ.
|
|---|
Na-s-gi i-yu-s-di u-tli i-ga-i i-ga-ga-sa-ya-s-do-di yi-ni-ga-li-s-da nu-s-dv i-ga-dv-ga-nv-i, na-s-gi i-lv-hi-yu di-gv-s-ga-lo-i-s-di-yi ni-ge-sv-na i-yu-li-s-do-di-yi.
|
|---|
|
|---|
| For if the word spoken by angels was stedfast, and every transgression and disobedience received a just recompence of reward;
|
|---|
| ᎢᏳᏰᏃ ᎧᏃᎮᏛ ᏗᏂᎧᎿᎭᏩᏗᏙᎯ ᎬᏂᎨᏒ ᎢᏳᏅᏁᎸᎯ ᎨᏒ ᎤᎵᏂᎩᏗᏳ ᏱᎩ, ᎠᎴ ᏄᏓᎴᏒ ᎠᏍᎦᏅᏨᎯ ᎨᏒ ᎠᎴ ᏄᏃᎯᏳᏒᎾ ᎨᏒ ᏚᏳᎪᏛ ᎨᏥᏍᏛᏗᏔᏅᎯ ᏱᎩ;
|
|---|
I-yu-ye-no ka-no-he-dv di-ni-ka-hna-wa-di-do-hi gv-ni-ge-sv i-yu-nv-ne-lv-hi ge-sv u-li-ni-gi-di-yu yi-gi, a-le nu-da-le-sv a-s-ga-nv-tsv-hi ge-sv a-le nu-no-hi-yu-sv-na ge-sv du-yu-go-dv ge-tsi-s-dv-di-ta-nv-hi yi-gi;
|
|---|
|
|---|
| How shall we escape, if we neglect so great salvation; which at the first began to be spoken by the Lord, and was confirmed unto us by them that heard him;
|
|---|
| ᎦᏙ ᏱᎦᎵᏍᏙᏓ ᏱᏓᏚᏓᎳᎩ, ᎢᏳᏃ ᏂᎦᎦᏌᏯᏍᏔᏅᎾ ᏱᎩ ᎾᏍᎩ ᎢᎦᎸᏉᏗ ᎠᎵᏍᏕᎸᏙᏗ; ᎾᏍᎩ ᎢᎬᏱ ᏧᎴᏅᎲ ᏧᏃᎮᎴ ᎤᎬᏫᏳᎯ, ᎠᎴ ᎾᏍᎩ ᎠᏴ ᏥᎨᎩᏍᏓᏱᏕᎸᎩ ᎾᏍᎩ Ꮎ ᎬᏩᏛᎦᏁᎸᎯ;
|
|---|
Ga-do yi-ga-li-s-do-da yi-da-du-da-la-gi, i-yu-no ni-ga-ga-sa-ya-s-ta-nv-na yi-gi na-s-gi i-ga-lv-quo-di a-li-s-de-lv-do-di; na-s-gi i-gv-yi tsu-le-nv-hv tsu-no-he-le U-gv-wi-yu-hi, a-le na-s-gi a-yv tsi-ge-gi-s-da-yi-de-lv-gi na-s-gi na gv-wa-dv-ga-ne-lv-hi;
|
|---|
|
|---|
| God also bearing them witness, both with signs and wonders, and with divers miracles, and gifts of the Holy Ghost, according to his own will?
|
|---|
| ᎤᏁᎳᏅᎯ ᎾᏍᏉ ᏕᎪᎯᏳᏓᏁᎲᎩ, ᏕᎬᏗᏍᎬᎩ ᎤᏰᎸᏛ ᎠᎴ ᎤᏍᏆᏂᎪᏗ, ᎠᎴ ᎤᏍᏆᏂᎪᏗ ᏗᎦᎸᏫᏍᏓᏁᏗ ᎨᏒᎢ, ᎠᎴ ᎦᎸᏉᏗᏳ ᎠᏓᏅᏙ ᎤᏓᏁᏗ ᎨᏒ ᎾᏍᎩᏯ ᎤᏩᏒ ᎣᏏᏳ ᎤᏰᎸᏗ ᎨᏒᎢ.
|
|---|
U-ne-la-nv-hi na-s-quo de-go-hi-yu-da-ne-hv-gi, de-gv-di-s-gv-gi u-ye-lv-dv a-le u-s-qua-ni-go-di, a-le u-s-qua-ni-go-di di-ga-lv-wi-s-da-ne-di ge-sv-i, a-le Ga-lv-quo-di-yu A-da-nv-do u-da-ne-di ge-sv na-s-gi-ya u-wa-sv o-si-yu u-ye-lv-di ge-sv-i.
|
|---|
|
|---|
| For unto the angels hath he not put in subjection the world to come, whereof we speak.
|
|---|
| ᏗᏂᎧᎿᎭᏩᏗᏙᎯᏰᏃ ᎥᏝ ᏄᏂᎬᏫᏳᏌᏕᎩ ᏱᏂᏚᏩᏁᎸ ᎾᏍᎩ ᎾᎿᎭᎡᎶᎯ ᎤᎵᏰᎢᎶᎯᏍᏗ ᏥᎨᏒᎩ, ᎾᏍᎩ ᏥᏗᏁᎢᏍᏗᎭ.
|
|---|
Di-ni-ka-hna-wa-di-do-hi-ye-no v-tla nu-ni-gv-wi-yu-sa-de-gi yi-ni-du-wa-ne-lv na-s-gi na-hna e-lo-hi u-li-ye-i-lo-hi-s-di tsi-ge-sv-gi, na-s-gi tsi-di-ne-i-s-di-ha.
|
|---|
|
|---|
| But one in a certain place testified, saying, What is man, that thou art mindful of him? or the son of man, that thou visitest him?
|
|---|
| ᎠᏏᏴᏫᏍᎩᏂ ᎢᎸᎯᏢ ᎤᏁᏤ, ᎯᎠ ᏄᏪᏎᎢ, ᎦᏙ ᏴᏫ ᎾᏍᎩ ᏥᏯᏓᏅᏖᏍᎪᎢ? ᎠᎴ ᏴᏫ ᎤᏪᏥ, ᎾᏍᎩ ᏥᏯᎦᏔᏂᎯᎰᎢ?
|
|---|
A-si-yv-wi-s-gi-ni i-lv-hi-tlv u-ne-tse, hi-a nu-we-se-i, Ga-do yv-wi na-s-gi tsi-ya-da-nv-te-s-go-i? a-le yv-wi u-we-tsi, na-s-gi tsi-ya-ga-ta-ni-hi-ho-i?
|
|---|
|
|---|
| Thou madest him a little lower than the angels; thou crownedst him with glory and honour, and didst set him over the works of thy hands:
|
|---|
| ᎤᏍᏗᎩᏛᏉᏰᏃ ᎡᏍᎦ ᏂᏴᏁᎸ ᏂᎩᏴᏁᎸ ᏗᏂᎧᎿᎭᏩᏗᏙᎯ; ᏗᎬᏩᎸᏌᏓ ᎠᎴ ᎦᎸᏉᏗᏳ ᎨᏒ ᎯᏍᏚᎶᏔᏅ, ᎠᎴ ᎤᎬᏫᏳᏌᏕᎩ ᏂᏴᏁᎸ ᎪᎱᏍᏗ ᏦᏢᏅᏅᎯ ᎨᏒᎢ.
|
|---|
U-s-di-gi-dv-quo-ye-no e-s-ga ni-yv-ne-lv ni-gi-yv-ne-lv di-ni-ka-hna-wa-di-do-hi; di-gv-wa-lv-sa-da a-le ga-lv-quo-di-yu ge-sv hi-s-du-lo-ta-nv, a-le u-gv-wi-yu-sa-de-gi ni-yv-ne-lv go-hu-s-di tso-tlv-nv-nv-hi ge-sv-i.
|
|---|
|
|---|
| Thou hast put all things in subjection under his feet. For in that he put all in subjection under him, he left nothing that is not put under him. But now we see not yet all things put under him.
|
|---|
| ᏄᏓᎴᏒ ᎪᎱᏍᏗ ᏧᎳᏏᏕᏂ ᎭᏫᏂᏗᏢ ᏂᏕᏨᏁᎸ. ᎾᏍᎩᏰᏃ ᏂᎦᏛ ᎭᏫᏂᏗᏢ ᏥᏄᏩᏁᎴᎢ, ᎥᏝ ᎪᎱᏍᏗ ᏳᏃᎯᏰ ᎾᏍᎩ ᎭᏫᏂᏗᏢ ᏄᏩᏁᎸᎾ ᎨᏒᎢ. ᎠᏎᏃ ᎪᎯ ᎨᏒ ᎥᏝ ᏱᏗᎪᏩᏘᎭ ᏂᎦᏛ ᎭᏫᏂᏗᏢ ᏱᎾᎬᏁᎸ.
|
|---|
Nu-da-le-sv go-hu-s-di tsu-la-si-de-ni ha-wi-ni-di-tlv ni-de-tsv-ne-lv. Na-s-gi-ye-no ni-ga-dv ha-wi-ni-di-tlv tsi-nu-wa-ne-le-i, v-tla go-hu-s-di yu-no-hi-ye na-s-gi ha-wi-ni-di-tlv nu-wa-ne-lv-na ge-sv-i. A-se-no go-hi ge-sv v-tla yi-di-go-wa-ti-ha ni-ga-dv ha-wi-ni-di-tlv yi-na-gv-ne-lv.
|
|---|
|
|---|
| But we see Jesus, who was made a little lower than the angels for the suffering of death, crowned with glory and honour; that he by the grace of God should taste death for every man.
|
|---|
| ᏥᏌᏍᎩᏂ ᎡᏗᎪᏩᏘᎭ ᎾᏍᎩ ᎤᏍᏗᎩᏛ ᎡᏍᎦ ᎢᏯᎬᏁᎸᎯ ᏗᏂᎧᎿᎭᏩᏗᏙᎯ ᎨᏒ ᏂᎨᎬᏁᎸᎢ, ᎾᏍᎩ ᎤᏲᎱᎯᏍᏗᏱ, ᏗᎬᏩᎸᏌᏛ ᎠᎴ ᎦᎸᏉᏗᏳ ᎨᏒ ᎠᏥᏍᏕᎶᏔᏅ; ᎾᏍᎩ ᏅᏓᏳᎵᏍᏙᏗᏱ ᎬᏩᎦᏘᏯ ᎤᏁᎳᏅᎯ ᎤᏓᏙᎵᏍᏗ ᎨᏒ ᎬᏗᏍᎬ ᎾᏂᎥ ᏴᏫ ᏧᏲᎱᏎᏗᏱ.
|
|---|
Tsi-sa-s-gi-ni e-di-go-wa-ti-ha na-s-gi u-s-di-gi-dv e-s-ga i-ya-gv-ne-lv-hi di-ni-ka-hna-wa-di-do-hi ge-sv ni-ge-gv-ne-lv-i, na-s-gi u-yo-hu-hi-s-di-yi, di-gv-wa-lv-sa-dv a-le ga-lv-quo-di-yu ge-sv a-tsi-s-de-lo-ta-nv; na-s-gi nv-da-yu-li-s-do-di-yi gv-wa-ga-ti-ya U-ne-la-nv-hi u-da-do-li-s-di ge-sv gv-di-s-gv na-ni-v yv-wi tsu-yo-hu-se-di-yi.
|
|---|
|
|---|
| For it became him, for whom are all things, and by whom are all things, in bringing many sons unto glory, to make the captain of their salvation perfect through sufferings.
|
|---|
| ᎠᏎᏰᏃ ᎾᏍᎩ ᎢᏳᏛᏁᏗ ᎨᏎᎢ, ᎾᏍᎩ Ꮎ ᏄᏓᎴᏒ ᎪᎱᏍᏗ ᎠᎪᏢᎾᏁᎸᎯ, ᎠᎴ ᎾᏍᎩ ᎢᏳᏩᏂᏌᏛ ᏄᏓᎴᏒ ᎪᎱᏍᏗ ᎪᏢᏅᎯ ᏥᎩ, ᎾᏍᎩ ᏗᎬᏩᎸᏌᏛ ᏗᎨᏒ ᏫᏓᏘᏃᎯᎲ ᎤᏂᏣᏘ ᏧᏪᏥ, ᎾᏍᎩ ᎤᎾᎵᏍᏕᎸᏙᏗ ᏗᏩᏛᎡᎯ, ᏂᎦᎷᎶᎬᎾ ᎢᏯᎬᏁᏗᏱ ᎠᎩᎵᏲᎬᎢ.
|
|---|
A-se-ye-no na-s-gi i-yu-dv-ne-di ge-se-i, na-s-gi na nu-da-le-sv go-hu-s-di a-go-tlv-na-ne-lv-hi, a-le na-s-gi i-yu-wa-ni-sa-dv nu-da-le-sv go-hu-s-di go-tlv-nv-hi tsi-gi, na-s-gi di-gv-wa-lv-sa-dv di-ge-sv wi-da-ti-no-hi-hv u-ni-tsa-ti tsu-we-tsi, na-s-gi u-na-li-s-de-lv-do-di di-wa-dv-e-hi, ni-ga-lu-lo-gv-na i-ya-gv-ne-di-yi a-gi-li-yo-gv-i.
|
|---|
|
|---|
| For both he that sanctifieth and they who are sanctified are all of one: for which cause he is not ashamed to call them brethren,
|
|---|
| ᎢᏧᎳᏰᏃ ᎾᏍᎩ Ꮎ ᏗᎦᏅᎦᎵᏍᎩ ᎨᏒ ᎠᎴ ᎾᏍᎩ ᎨᏥᏅᎦᎵᏍᎩ ᎨᏒ ᎤᏂᏠᏱᏉ; ᎾᏍᎩ ᎢᏳᏍᏗ ᎥᏝ ᎤᏕᎰᎯᏍᏗ ᏳᏰᎸᎭ ᎣᏣᎵᏅᏟ ᏧᏬᏎᏗᏱ;
|
|---|
I-tsu-la-ye-no na-s-gi na di-ga-nv-ga-li-s-gi ge-sv a-le na-s-gi ge-tsi-nv-ga-li-s-gi ge-sv u-ni-tlo-yi-quo; na-s-gi i-yu-s-di v-tla u-de-ho-hi-s-di yu-ye-lv-ha o-tsa-li-nv-tli tsu-wo-se-di-yi;
|
|---|
|
|---|
| Saying, I will declare thy name unto my brethren, in the midst of the church will I sing praise unto thee.
|
|---|
| ᎯᎠ ᏥᏄᏪᏎᎢ, ᏕᏣᏙᎥ ᎬᏂᎨᏒ ᏅᏓᎦᏥᏴᏁᎵ ᎣᏣᎵᏅᏟ; ᏧᎾᏁᎶᏗ ᎤᎾᏓᏡᎬ ᎠᏰᎵ ᏙᏓᎬᏃᎩᏍᏔᏂ.
|
|---|
Hi-a tsi-nu-we-se-i, De-tsa-do-v gv-ni-ge-sv nv-da-ga-tsi-yv-ne-li o-tsa-li-nv-tli; tsu-na-ne-lo-di u-na-da-tlu-gv a-ye-li do-da-gv-no-gi-s-ta-ni.
|
|---|
|
|---|
| And again, I will put my trust in him. And again, Behold I and the children which God hath given me.
|
|---|
| ᎠᎴ ᏔᎵᏁᎢ, ᎾᏍᎩ ᏓᏥᏯᎵᏍᎦᏍᏙᏔᏂ. ᎠᎴᏬ, ᎬᏂᏳᏉ ᎠᏴ ᎠᎴ ᎾᏍᎩ Ꮎ ᏗᏂᏲᎵ ᎤᏁᎳᏅᎯ ᏗᎩᎧᏁᎸᎯ ᎨᏒᎢ.
|
|---|
A-le ta-li-ne-i, Na-s-gi da-tsi-ya-li-s-ga-s-do-ta-ni. A-le-wo, Gv-ni-yu-quo a-yv a-le na-s-gi na di-ni-yo-li U-ne-la-nv-hi di-gi-ka-ne-lv-hi ge-sv-i.
|
|---|
|
|---|
| Forasmuch then as the children are partakers of flesh and blood, he also himself likewise took part of the same; that through death he might destroy him that had the power of death, that is, the devil;
|
|---|
| ᎠᎴ ᎾᏍᎩ ᏗᏂᏲᎵ ᎤᏂᏇᏓᎵ ᎠᎴ ᎩᎬ ᎤᏂᏁᎯ ᏥᎩ, ᎤᏩᏒ ᎾᏍᏉ ᎾᏍᎩ ᎤᏠᏯᏍᏔᏁ ᎤᎩᏎᎢ; ᎾᏍᎩ ᎠᏲᎱᎯᏍᏗ ᎨᏒ ᎢᏳᏩᏂᏐᏗᏱ ᎠᏎᏉᏉ ᎢᏳᏩᏁᏗᏱ ᎾᏍᎩ Ꮎ ᎠᏲᎱᎯᏍᏗ ᎨᏒ ᎤᎵᏂᎬᎬ ᎤᎯ, ᎾᏍᎩ ᎠᏍᎩᎾ ᏥᎩ.
|
|---|
A-le na-s-gi di-ni-yo-li u-ni-que-da-li a-le gi-gv u-ni-ne-hi tsi-gi, u-wa-sv na-s-quo na-s-gi u-tlo-ya-s-ta-ne u-gi-se-i; na-s-gi a-yo-hu-hi-s-di ge-sv i-yu-wa-ni-so-di-yi a-se-quo-quo i-yu-wa-ne-di-yi na-s-gi na a-yo-hu-hi-s-di ge-sv u-li-ni-gv-gv u-hi, na-s-gi a-s-gi-na tsi-gi.
|
|---|
|
|---|
| And deliver them who through fear of death were all their lifetime subject to bondage.
|
|---|
| ᎠᎴ ᏧᏭᏓᎴᏍᏗᏱ ᎾᏍᎩ Ꮎ ᎠᏲᎱᎯᏍᏗ ᎨᏒ ᎠᏂᎾᏰᏍᎬ ᏥᏅᏗᎦᎵᏍᏗᏍᎨ ᏓᏅᏅ ᎢᎪᎯᏛ ᏧᎾᏓᏲᏒᎯ ᏥᎨᏒ ᏕᎨᏥᎾᏝᎥᎢ.
|
|---|
A-le tsu-wu-da-le-s-di-yi na-s-gi na a-yo-hu-hi-s-di ge-sv a-ni-na-ye-s-gv tsi-nv-di-ga-li-s-di-s-ge da-nv-nv i-go-hi-dv tsu-na-da-yo-sv-hi tsi-ge-sv de-ge-tsi-na-tla-v-i.
|
|---|
|
|---|
| For verily he took not on him the nature of angels; but he took on him the seed of Abraham.
|
|---|
| ᎤᏙᎯᏳᎯᏰᏃ ᎥᏝ ᏗᏂᎧᎿᎭᏩᏗᏙᎯ ᏱᏚᏬᏯᏁᏎᎢ, ᎡᏆᎭᎻᏍᎩᏂ ᎤᏁᏢᏔᏅᏛ ᎨᏒ ᏚᏬᏯᏁᏎᎢ.
|
|---|
U-do-hi-yu-hi-ye-no v-tla di-ni-ka-hna-wa-di-do-hi yi-du-wo-ya-ne-se-i, E-qua-ha-mi-s-gi-ni u-ne-tlv-ta-nv-dv ge-sv du-wo-ya-ne-se-i.
|
|---|
|
|---|
| Wherefore in all things it behoved him to be made like unto his brethren, that he might be a merciful and faithful high priest in things pertaining to God, to make reconciliation for the sins of the people.
|
|---|
| ᎾᏍᎩ ᎢᏳᏍᏗ ᏚᏳᎪᏛᎩ ᏂᎦᎥ ᏄᏛᏅᏅ ᎠᎾᎵᏅᏟ ᎾᏍᎩᏯ ᏄᎾᏍᏛ ᎢᏳᎵᏍᏙᏗᏱ, ᎾᏍᎩ ᎤᏓᏙᎵᏍᏗ ᎠᎴ ᏄᏓᎵᏍᏛᎾ ᏄᎬᏫᏳᏒ ᎠᏥᎸ-ᎨᎶᎯ ᎢᏳᎵᏍᏙᏗᏱ ᎤᏁᎳᏅᎯ ᎤᏤᎵ ᎤᎬᏩᎵ, ᎾᏍᎩ ᎠᎵᏍᎪᎸᏔᏅᎯ ᎠᎫᏴᏙᏗ ᎢᏳᎵᏍᏙᏗᏱ ᎤᏂᏍᎦᏅᏨ ᏴᏫ;
|
|---|
Na-s-gi i-yu-s-di du-yu-go-dv-gi ni-ga-v nu-dv-nv-nv a-na-li-nv-tli na-s-gi-ya nu-na-s-dv i-yu-li-s-do-di-yi, na-s-gi u-da-do-li-s-di a-le nu-da-li-s-dv-na nu-gv-wi-yu-sv A-tsi-lv--ge-lo-hi i-yu-li-s-do-di-yi U-ne-la-nv-hi u-tse-li u-gv-wa-li, na-s-gi a-li-s-go-lv-ta-nv-hi a-gu-yv-do-di i-yu-li-s-do-di-yi u-ni-s-ga-nv-tsv yv-wi;
|
|---|
|
|---|
| For in that he himself hath suffered being tempted, he is able to succour them that are tempted.
|
|---|
| ᎾᏍᎩᏰᏃ ᎤᏩᏒ ᎤᎩᎵᏲᏨᎯ ᏥᎩ, ᎾᏍᎩ ᎠᏥᎪᎵᏰᏍᎬᎢ ᏰᎵᏉ ᏗᎬᏩᏍᏕᎸᏗ ᏄᎵᏍᏔᏅ ᎾᏍᎩ Ꮎ ᎨᏥᎪᎵᏰᏍᎩ.
|
|---|
Na-s-gi-ye-no u-wa-sv u-gi-li-yo-tsv-hi tsi-gi, na-s-gi a-tsi-go-li-ye-s-gv-i ye-li-quo di-gv-wa-s-de-lv-di nu-li-s-ta-nv na-s-gi na ge-tsi-go-li-ye-s-gi.
|
|---|


Lazy man's mail voting system
It’s a new friend to include in your mailing list.
It’s a completely transparent and light system to do surveys by email between your friends or your mailing list storing the responses received.
In this first phase we will focus on questions that can be voted on a binary basis, that is -1 or +1.
It can be used both with your friends or in a maling lists.
Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth.
Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth.
Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth.


This is a simple demonstration of how you can navigate the DOM and locate an element on the page and then change the element using JavaScript.
When you look at the red title above you see that it is not the text in the h1 tag of the HTML. The original text was, "The Old H1 Heading." It has been replaced by the JavaScript.
So, what happened? The JavaScript navigates the DOM looking for the element that has an ID of "mainHeading." Once it finds its on the web page it stores it in the variable called, "headline."
It then changes the html of the variable to a string, "Wow, a New H1 Heading!"


Slouch
Lightweight open-source desktop client for Slack™.
{% block content %}{% endblock %}
{% block scripts %}{% endblock %}


{% extends "base.html" %} {% block title %}Coverage{% endblock %} {% block main %}
OpenAddresses data is constantly improving through the efforts of our volunteer community. The table on this page shows the latest coverage details on a country-by-country basis.
| Country | ISO | Coverage Group | Land Area Covered | Population Covered | Addresses per 1,000 People | |||
|---|---|---|---|---|---|---|---|---|
| {{ area.iso_a2|nice_flag|safe }} | {{ area.name }} | {{ area.iso_a2 }} |
{% if areas == best_areas %} Complete {% elif areas == okay_areas %} Substantial {% elif areas == empty_areas %} Minimal {% endif %} | {{ area.area_pct|nice_percentage }} | {{ area.area_total|nice_big_number }} km² | {{ area.pop_pct|nice_percentage }} | {{ area.pop_total|nice_big_number }} people | {% if area.pop_total > 0 %} {{ (1000 * area.addr_count / area.pop_total)|nice_coverage_integer }} {% endif %} |
The Gridded Population of the World (GPW) series, now in its fourth version (GPWv4), models the distribution of human population (counts and densities) on a continuous global surface. Since the release of the first version of this global population grid in 1995, the essential inputs have been population census tables and corresponding geographic boundaries. For GPWv4, population input data are collected at the most detailed spatial resolution available from the results of the 2010 round of censuses, which occurred between 2005 and 2014.
{% endblock main %}


Specify the name of an existing workspace in Perforce used to create or update a Jenkins build workspace. If connected to a Perforce server the auto-text fill should list suitable workspaces


--- layout: post date: 2012-05-08 time: "09:00:00" authors: ["Greg Wilson"] title: "The Architecture of Open Source Applications: Volume 2" tags: ["Noticed"] ---
We are very pleased to announce that The Architecture of Open Source Applications: Volume 2 is now available from Lulu. A PDF version will go on sale in the next few days, and e-book will become available as soon as we can produce it. Many thanks to everyone who contributed, and to the indefatigable Amy Brown for pulling it all together. As always, all royalties will go directly to Amnesty International, so if you buy a copy, you'll be helping to make the world a better place.


{{< layout}} {{$propositionHeader}}{{/propositionHeader}} {{$pageTitle}}Information about urgent passport{{/pageTitle}} {{$header}}
To get a passport urgently, you'll need to attend an appointment at a passport office in the UK.
A standard adult passport costs £128 using this service.
A standard adult passport costs £103 using this service
You'll need to be home to sign your new passport when it arrives.
In exceptional circumstances, you can upgrade an existing application without making an appointment. Call the Passport Adviceline


Page Constraint Iterator
Given a sequences, we want to find all substrings s that fulfill certain constraints. The relative probabilty to see s should be at least p_min. s should also be not longer than replen_max. The latter constraint is a anti-monotonic pattern predicate and can be used in conjunction with the first constraint to cut of the trunk of a suffix tree. Only the top of the suffix tree contains candidates that might fulfill both predicates, so we can use an Index based on a deferred suffix tree (see IndexWotd). The following example demonstrates how to iterate over all suffix tree nodes fulfilling the constraints and output them.
We start by including the necessary headers and use the namespace seqan;
#include <iostream> #include <seqan/index.h> using namespace seqan;
Afterwards we create a struct containing the constraints.
struct TMyConstraints { double p_min; unsigned int replen_max; bool _cachedPred; };
In the following we do the requiered extensions.
namespace seqan { // custom TSpec for our customized wotd-Index struct TMyIndex; template <typename TText> struct Cargo<Index<TText, IndexWotd<TMyIndex> > > { typedef TMyConstraints Type; }; // node predicate template <typename TText, typename TSpec> bool nodePredicate(Iter<Index<TText, IndexWotd<TMyIndex> >, TSpec> & it) { TMyConstraints & cons = cargo(container(it)); unsigned int delta = countSequences(container(it)) * repLength(it); unsigned int textLen = length(container(it)); if (textLen <= delta) return cons._cachedPred = true; return cons._cachedPred = ((double)countOccurrences(it) / (double)(textLen - delta)) > cons.p_min; } // monotonic hull template <typename TText, typename TSpec> bool nodeHullPredicate(Iter<Index<TText, IndexWotd<TMyIndex> >, TSpec> & it) { TMyConstraints const & cons = cargo(container(it)); unsigned int textLen = length(container(it)); if (repLength(it) > cons.replen_max) return false; unsigned int delta = countSequences(container(it)) * cons.replen_max; if (textLen <= delta) return true; return ((double)countOccurrences(it) / (double)(textLen - delta)) > cons.p_min; } }
Now we start the main program with a sequence initialization.
int main() { String<char> myString = "How many wood would a woodchuck chuck.";
Then we create our customized index which is a specialization of the deferred @Class.Index.wotd-Index@
typedef Index<String<char>, IndexWotd<TMyIndex> > TMyIndex; TMyIndex myIndex(myString); cargo(myIndex).replen_max = 10; cargo(myIndex).p_min = 0.05;
And finaly we search by traversing a string tree. To find all strings that fulfill our constraints, we simply do a dfs-traversal via @Function.goBegin@ and<EMAIL_ADDRESS>typedef Iterator<TMyIndex, TopDown<ParentLinks<> > >::Type TConstrainedIterator; TConstrainedIterator myConstrainedIterator(myIndex); goBegin(myConstrainedIterator); while (!atEnd(myConstrainedIterator)) {<EMAIL_ADDRESS>returns the number of hits of the representative. std::cout << countOccurrences(myConstrainedIterator) << "x "; //The representative string can be determined with @Function.representative@ std::cout << "\t\"" << representative(myConstrainedIterator) << '\"' << std::endl; goNext(myConstrainedIterator); } return 0; }
weese@tanne:~/seqan$ cd demos weese@tanne:~/seqan/demos$ make index_node_predicate weese@tanne:~/seqan/demos$ ./index_node_predicate 38x "" 6x " " 3x " wo" 2x " wood" 2x "a" 4x "c" 2x "chuck" 2x "ck" 3x "d" 2x "d " 2x "huck" 2x "k" 6x "o" 2x "od" 2x "ood" 3x "u" 2x "uck" 4x "w" 3x "wo" 2x "wood" weese@tanne:~/seqan/demos$


Boris back in Clwyd South where he began his bid to become MP
by Sue AustinBoris Johnson pledged to improve road and rail links on the Shropshire Welsh border when he returned to the constituency where he first made a bid to become an MP 22 years ago.
Mr Johnson launched the Welsh Conservatives manifesto at Bangor-on-Dee racecourse close to the north Shropshire border calling on the electorate of Wales to ensure there were enough Welsh Tory MPs to insist that the Welsh government spend money wisely.
"I fought for Clwys South to become is MP, I am now fighting for Clwyd South as its Prime Minister," he said.
He announced plans for major improvements to the A55 on the north Wales coast and to re-introduce M4 improvement in the south.
But he also said there would be more local road schemes and said he was look into pleas for improvements to the A5/A483 going through the constituency at Chirk.
"We can look at the big ticket improvements but people want their local bottlenecks improved to help productivity and the local economy. We will be looking at better roads and rail links in the area."
Mr Johnson delighted the Welsh audience when he put Welsh into his description of his Brexit deal as "ready just to prick the top and put in the popty-ping" - Welsh for microwave.
Earlier in the day Mr Johnson visited the Royal Welsh Show where he talked to farmers and tried his hand a sheep shearing saying he could not make a worse job than Labour had in Wales.