Matthew Rahtz
Informatics Systems Group
InfoBlox DHCP + DNS appliance
Two scriptable interfaces:
GET https://api.sandbox.paypal.com/v1/vault/credit-card/<Credit-Card-Id>
DELETE /v1/vault/credit-card/<Credit-Card-Id>
POST https://api.sandbox.paypal.com/v1/vault/credit-card
'{
"payer_id":"user12345",
"type":"visa",
"number":"4417119669820331",
"expire_month":"11",
"expire_year":"2018",
"first_name":"Betsy",
"last_name":"Buyer"
}'
*See Roy Fielding's 'REST APIs must be hypertext-driven' for an overview of REST proper
>>> import requests
>>> base_url = 'https://infoblox-gm.internal.sanger.ac.uk/wapi/v1.2.1/'
>>> lease_request = 'lease?client_hostname~=deskpro101061'
>>> request_url = base_url + lease_request
>>> response = requests.get(request_url, auth=('user', 'pass'))
>>> response_json = response.json()
>>> print(response_json)
[
{
u'_ref': u'lease/ZG5zLmxlYXNlJDAvMTcy:<IP_ADDRESS>/default',
u'network_view': u'default',
u'address': u'<IP_ADDRESS>'
}
]
>>> lease_ref = response_json[0]['_ref']
>>> request_url = base_url + lease_ref
>>> response = requests.delete(request_url, auth=('user', 'pass'))
>>> print(response.status_code)
200 # OK
Embedded HTTP server...?
def stop_reactor_right_now(reactor):
reactor.stop("RIGHT NOW")
>>> from mock import MagicMock
>>> mock_reactor = MagicMock()
>>> stop_reactor_right_now(mock_reactor)
>>> mock_reactor.mock_calls
[call.stop('RIGHT NOW')]
>>> mock_reactor.stop.assert_called_with("tomorrow")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/site-packages/mock.py",
line 835, in assert_called_with
raise AssertionError(msg)
AssertionError: Expected call: stop('tomorrow')
Actual call: stop('RIGHT NOW')
>>> from mock import patch
>>> get_patcher = patch(
... 'removelease.rest_get', self.fake_requests_get)
>>> delete_patcher = patch(
... 'removelease.rest_delete', self.fake_requests_delete)
>>> self.get_patcher.start()
>>> self.delete_patcher.start()
$ ./test_removelease.py
..Getting leases...
Mocked GET request for 'http://::1/wapi/v1.2.1/lease?client_hostname="foobar"'
Found 2 lease(s)
Getting linked addresses...
Mocked GET request for 'http:/::1/wapi/v1.2.1/ipv4address?ip_address=<IP_ADDRESS>'
Mocked GET request for 'http:/::1/wapi/v1.2.1/ipv4address?ip_address=<IP_ADDRESS>'
...


This article discusses performance and reliability best practices for Express applications deployed to production.
This topic clearly falls into the “devops” world, spanning both traditional development and operations. Accordingly, the information is divided into two parts:
Here are some things you can do in your code to improve your application’s performance:
Gzip compressing can greatly decrease the size of the response body and hence increase the speed of a web app. Use the compression middleware for gzip compression in your Express app. For example:
var compression = require('compression')
var express = require('express')
var app = express()
app.use(compression())
For a high-traffic website in production, the best way to put compression in place is to implement it at a reverse proxy level (see Use a reverse proxy). In that case, you do not need to use compression middleware. For details on enabling gzip compression in Nginx, see Module ngx_http_gzip_module in the Nginx documentation.
Synchronous functions and methods tie up the executing process until they return. A single call to a synchronous function might return in a few microseconds or milliseconds, however in high-traffic websites, these calls add up and reduce the performance of the app. Avoid their use in production.
Although Node and many modules provide synchronous and asynchronous versions of their functions, always use the asynchronous version in production. The only time when a synchronous function can be justified is upon initial startup.
If you are using Node.js 4.0+ or io.js 2.1.0+, you can use the
--trace-sync-io
command-line flag to print a warning and a
stack trace whenever your application uses a synchronous API. Of course,
you wouldn’t want to use this in production, but rather to ensure that
your code is ready for production. See the
node command-line options documentation
for more information.
In general, there are two reasons for logging from your app: For debugging
and for logging app activity (essentially, everything else). Using
console.log()
or console.error()
to print log
messages to the terminal is common practice in development. But
these functions are synchronous
when the destination is a terminal or a file, so they are not suitable for
production, unless you pipe the output to another program.
If you’re logging for purposes of debugging, then instead of using
console.log()
, use a special debugging module like
debug. This module
enables you to use the DEBUG environment variable to control what debug
messages are sent to console.error()
, if any. To keep your
app purely asynchronous, you’d still want to pipe
console.error()
to another program. But then, you’re not
really going to debug in production, are you?
If you’re logging app activity (for example, tracking traffic or API
calls), instead of using console.log()
, use a logging library
like Winston or
Bunyan. For a detailed
comparison of these two libraries, see the StrongLoop blog post
Comparing Winston and Bunyan Node.js Logging.
Node apps crash when they encounter an uncaught exception. Not handling exceptions and taking appropriate actions will make your Express app crash and go offline. If you follow the advice in Ensure your app automatically restarts below, then your app will recover from a crash. Fortunately, Express apps typically have a short startup time. Nevertheless, you want to avoid crashing in the first place, and to do that, you need to handle exceptions properly.
To ensure you handle all exceptions, use the following techniques:
Before diving into these topics, you should have a basic understanding of Node/Express error handling: using error-first callbacks, and propagating errors in middleware. Node uses an “error-first callback” convention for returning errors from asynchronous functions, where the first parameter to the callback function is the error object, followed by result data in succeeding parameters. To indicate no error, pass null as the first parameter. The callback function must correspondingly follow the error-first callback convention to meaningfully handle the error. And in Express, the best practice is to use the next() function to propagate errors through the middleware chain.
For more on the fundamentals of error handling, see:
One thing you should not do is to listen for the
uncaughtException
event, emitted when an exception bubbles
all the way back to the event loop. Adding an event listener for
uncaughtException
will change the default behavior of the
process that is encountering an exception; the process will continue to
run despite the exception. This might sound like a good way of preventing
your app from crashing, but continuing to run the app after an uncaught
exception is a dangerous practice and is not recommended, because the
state of the process becomes unreliable and unpredictable.
Additionally, using uncaughtException
is officially
recognized as
crude. So listening for uncaughtException
is just a bad idea.
This is why we recommend things like multiple processes and supervisors:
crashing and restarting is often the most reliable way to recover from an
error.
We also don’t recommend using domains. It generally doesn’t solve the problem and is a deprecated module.
Try-catch is a JavaScript language construct that you can use to catch exceptions in synchronous code. Use try-catch, for example, to handle JSON parsing errors as shown below.
Use a tool such as JSHint or JSLint to help you find implicit exceptions like reference errors on undefined variables.
Here is an example of using try-catch to handle a potential process-crashing exception. This middleware function accepts a query field parameter named “params” that is a JSON object.
app.get('/search', function (req, res) {
// Simulating async operation
setImmediate(function () {
var jsonStr = req.query.params
try {
var jsonObj = JSON.parse(jsonStr)
res.send('Success')
} catch (e) {
res.status(400).send('Invalid JSON string')
}
})
})
However, try-catch works only for synchronous code. Because the Node platform is primarily asynchronous (particularly in a production environment), try-catch won’t catch a lot of exceptions.
Promises will handle any exceptions (both explicit and implicit) in
asynchronous code blocks that use then()
. Just add
.catch(next)
to the end of promise chains. For example:
app.get('/', function (req, res, next) {
// do some sync stuff
queryDb()
.then(function (data) {
// handle data
return makeCsv(data)
})
.then(function (csv) {
// handle csv
})
.catch(next)
})
app.use(function (err, req, res, next) {
// handle error
})
Now all errors asynchronous and synchronous get propagated to the error middleware.
However, there are two caveats:
const wrap = fn => (...args) => fn(...args).catch(args[2])
app.get('/', wrap(async (req, res, next) => {
const company = await getCompanyById(req.query.id)
const stream = getLogoStreamById(company.id)
stream.on('error', next).pipe(res)
}))
The wrap()
function is a wrapper that catches rejected
promises and calls next()
with the error as the first
argument. For details, see
Asynchronous Error Handling in Express with Promises, Generators and
ES7.
For more information about error-handling by using promises, see Promises in Node.js with Q – An Alternative to Callbacks.
Here are some things you can do in your system environment to improve your app’s performance:
The NODE_ENV environment variable specifies the environment in which an application is running (usually, development or production). One of the simplest things you can do to improve performance is to set NODE_ENV to “production.”
Setting NODE_ENV to “production” makes Express:
Tests indicate that just doing this can improve app performance by a factor of three!
If you need to write environment-specific code, you can check the value of
NODE_ENV with process.env.NODE_ENV
. Be aware that checking
the value of any environment variable incurs a performance penalty, and so
should be done sparingly.
In development, you typically set environment variables in your
interactive shell, for example by using export
or your
.bash_profile
file. But in general you shouldn’t do that on a
production server; instead, use your OS’s init system (systemd or
Upstart). The next section provides more details about using your init
system in general, but setting NODE_ENV is so important for performance
(and easy to do), that it’s highlighted here.
With Upstart, use the env
keyword in your job file. For
example:
For more information, see the Upstart Intro, Cookbook and Best Practices.
With systemd, use the Environment
directive in your unit
file. For example:
For more information, see Using Environment Variables In systemd Units.
In production, you don’t want your application to be offline, ever. This means you need to make sure it restarts both if the app crashes and if the server itself crashes. Although you hope that neither of those events occurs, realistically you must account for both eventualities by:
Node applications crash if they encounter an uncaught exception. The foremost thing you need to do is to ensure your app is well-tested and handles all exceptions (see handle exceptions properly for details). But as a fail-safe, put a mechanism in place to ensure that if and when your app crashes, it will automatically restart.
In development, you started your app simply from the command line with
node server.js
or something similar. But doing this in
production is a recipe for disaster. If the app crashes, it will be
offline until you restart it. To ensure your app restarts if it crashes,
use a process manager. A process manager is a “container” for applications
that facilitates deployment, provides high availability, and enables you
to manage the application at runtime.
In addition to restarting your app when it crashes, a process manager can enable you to:
The most popular process managers for Node are as follows:
For a feature-by-feature comparison of the three process managers, see http://strong-pm.io/compare/. For a more detailed introduction to all three, see Process managers for Express apps.
Using any of these process managers will suffice to keep your application up, even if it does crash from time to time.
However, StrongLoop PM has lots of features that specifically target production deployment. You can use it and the related StrongLoop tools to:
As explained below, when you install StrongLoop PM as an operating system service using your init system, it will automatically restart when the system restarts. Thus, it will keep your application processes and clusters alive forever.
The next layer of reliability is to ensure that your app restarts when the server restarts. Systems can still go down for a variety of reasons. To ensure that your app restarts if the server crashes, use the init system built into your OS. The two main init systems in use today are systemd and Upstart.
There are two ways to use init systems with your Express app:
Systemd is a Linux system and service manager. Most major Linux distributions have adopted systemd as their default init system.
A systemd service configuration file is called a unit file, with
a filename ending in .service
. Here’s an example unit file to
manage a Node app directly. Replace the values enclosed in
<angle brackets>
for your system and app:
[Unit]
Description=<Awesome Express App>
[Service]
Type=simple
ExecStart=/usr/local/bin/node </projects/myapp/index.js>
WorkingDirectory=</projects/myapp>
User=nobody
Group=nogroup
# Environment variables:
Environment=NODE_ENV=production
# Allow many incoming connections
LimitNOFILE=infinity
# Allow core dumps for debugging
LimitCORE=infinity
StandardInput=null
StandardOutput=syslog
StandardError=syslog
Restart=always
[Install]
WantedBy=multi-user.target
For more information on systemd, see the systemd reference (man page).
You can easily install StrongLoop Process Manager as a systemd service. After you do, when the server restarts, it will automatically restart StrongLoop PM, which will then restart all the apps it is managing.
To install StrongLoop PM as a systemd service:
Then start the service with:
For more information, see Setting up a production host (StrongLoop documentation).
Upstart is a system tool available on many Linux distributions for starting tasks and services during system startup, stopping them during shutdown, and supervising them. You can configure your Express app or process manager as a service and then Upstart will automatically restart it when it crashes.
An Upstart service is defined in a job configuration file (also called a
“job”) with filename ending in .conf
. The following example
shows how to create a job called “myapp” for an app named “myapp” with the
main file located at /projects/myapp/index.js
.
Create a file named myapp.conf
at
/etc/init/
with the following content (replace the bold text
with values for your system and app):
# When to start the process
start on runlevel [2345]
# When to stop the process
stop on runlevel [016]
# Increase file descriptor limit to be able to handle more requests
limit nofile 50000 50000
# Use production mode
env NODE_ENV=production
# Run as www-data
setuid www-data
setgid www-data
# Run from inside the app dir
chdir /projects/myapp
# The process to start
exec /usr/local/bin/node /projects/myapp/index.js
# Restart the process if it is down
respawn
# Limit restart attempt to 10 times within 10 seconds
respawn limit 10 10
NOTE: This script requires Upstart 1.4 or newer, supported on Ubuntu 12.04-14.10.
Since the job is configured to run when the system starts, your app will be started along with the operating system, and automatically restarted if the app crashes or the system goes down.
Apart from automatically restarting the app, Upstart enables you to use these commands:
start myapp
– Start the apprestart myapp
– Restart the appstop myapp
– Stop the app.For more information on Upstart, see Upstart Intro, Cookbook and Best Practises.
You can easily install StrongLoop Process Manager as an Upstart service. After you do, when the server restarts, it will automatically restart StrongLoop PM, which will then restart all the apps it is managing.
To install StrongLoop PM as an Upstart 1.4 service:
Then run the service with:
NOTE: On systems that don’t support Upstart 1.4, the commands are slightly different. See Setting up a production host (StrongLoop documentation) for more information.
In a multi-core system, you can increase the performance of a Node app by many times by launching a cluster of processes. A cluster runs multiple instances of the app, ideally one instance on each CPU core, thereby distributing the load and tasks among the instances.
IMPORTANT: Since the app instances run as separate processes, they do not share the same memory space. That is, objects are local to each instance of the app. Therefore, you cannot maintain state in the application code. However, you can use an in-memory datastore like Redis to store session-related data and state. This caveat applies to essentially all forms of horizontal scaling, whether clustering with multiple processes or multiple physical servers.
In clustered apps, worker processes can crash individually without affecting the rest of the processes. Apart from performance advantages, failure isolation is another reason to run a cluster of app processes. Whenever a worker process crashes, always make sure to log the event and spawn a new process using cluster.fork().
Clustering is made possible with Node’s cluster module. This enables a master process to spawn worker processes and distribute incoming connections among the workers. However, rather than using this module directly, it’s far better to use one of the many tools out there that does it for you automatically; for example node-pm or cluster-service.
If you deploy your application to StrongLoop Process Manager (PM), then you can take advantage of clustering without modifying your application code.
When StrongLoop Process Manager (PM) runs an application, it automatically runs it in a cluster with a number of workers equal to the number of CPU cores on the system. You can manually change the number of worker processes in the cluster using the slc command line tool without stopping the app.
For example, assuming you’ve deployed your app to prod.foo.com and StrongLoop PM is listening on port 8701 (the default), then to set the cluster size to eight using slc:
For more information on clustering with StrongLoop PM, see Clustering in StrongLoop documentation.
If you deploy your application with PM2, then you can take advantage of clustering without modifying your application code. You should ensure your application is stateless first, meaning no local data is stored in the process (such as sessions, websocket connections and the like).
When running an application with PM2, you can enable
cluster mode to run it in a cluster with a number of
instances of your choosing, such as the matching the number of available
CPUs on the machine. You can manually change the number of processes in
the cluster using the pm2
command line tool without stopping
the app.
To enable cluster mode, start your application like so:
# Start 4 worker processes
$ pm2 start npm --name my-app -i 4 -- start
# Auto-detect number of available CPUs and start that many worker processes
$ pm2 start npm --name my-app -i max -- start
This can also be configured within a PM2 process file (ecosystem.config.js
or similar) by setting exec_mode
to cluster
and
instances
to the number of workers to start.
Once running, the application can be scaled like so:
# Add 3 more workers
$ pm2 scale my-app +3
# Scale to a specific number of workers
$ pm2 scale my-app 2
For more information on clustering with PM2, see Cluster Mode in the PM2 documentation.
Another strategy to improve the performance in production is to cache the result of requests, so that your app does not repeat the operation to serve the same request repeatedly.
Use a caching server like Varnish or Nginx (see also Nginx Caching) to greatly improve the speed and performance of your app.
No matter how optimized an app is, a single instance can handle only a limited amount of load and traffic. One way to scale an app is to run multiple instances of it and distribute the traffic via a load balancer. Setting up a load balancer can improve your app’s performance and speed, and enable it to scale more than is possible with a single instance.
A load balancer is usually a reverse proxy that orchestrates traffic to and from multiple application instances and servers. You can easily set up a load balancer for your app by using Nginx or HAProxy.
With load balancing, you might have to ensure that requests that are associated with a particular session ID connect to the process that originated them. This is known as session affinity, or sticky sessions, and may be addressed by the suggestion above to use a data store such as Redis for session data (depending on your application). For a discussion, see Using multiple nodes.
A reverse proxy sits in front of a web app and performs supporting operations on the requests, apart from directing requests to the app. It can handle error pages, compression, caching, serving files, and load balancing among other things.
Handing over tasks that do not require knowledge of application state to a reverse proxy frees up Express to perform specialized application tasks. For this reason, it is recommended to run Express behind a reverse proxy like Nginx or HAProxy in production.


quotek::datasource::
yahoofinance
¶yahoofinance is a class which allows to query the Yahoo! Finance API service to fetch historical data on stocks and indices.
Inherits from quotek::datasource::datasource
Public Functions
yahoofinance
()¶yahoofinance class constructor
~yahoofinance
()¶yahoofinance class destructor
history
(std::string symbol, std::string from, std::string to)¶returns an asset history under the form of a quotek history vector (open,close,high,low).
symbol
- yahoo! symbol for the asset.
from
- string-formated date with the format “YYYY-MM-DD”.
to
- string-formated date with the format “YYYY-MM-DD”.
close_history
(std::string symbol, std::string from, std::string to)¶returns the closing history of an asset defined by symbol. Compared to history, it is a very convenient function to perform moving average, VAR, etc.. computations.
symbol
- yahoo! symbol for the asset.
from
- string-formated date with the format “YYYY-MM-DD”.
to
- string-formated date with the format “YYYY-MM-DD”.
#include <quotek/quotek.hpp>
#include <quotek/datasources/yahoofinance.hpp>
using namespace quotek::datasource;
using namespace quotek::data;
int main(int argc, char** argv) {
//We declare a new yahoofinance object.
yahoofinance yf1;
//now we will import the DAX EOD data for the first week of July, 2016.
records r1_dax = yf1.close_history("^GDAXI","2016-07-01","2016-07-9");
//We check that we got some data in r1_dax.
assert( r1_dax.size() > 0 );
}


Jena is able to persist RDF data into stores using a number of different mechanisms. These mechanisms include storing the data in an existing relational database (the so-called RDB and SDB stores) and in an optimized on-disk form (TDB). It is also possible to create entirely in-memory stores that have no persistence, but the focus of this topic is on managing the connections to persistent stores. Stores are important as you can create different stores to contain different test data, importing RDF content into the stores and persisting them and even sharing them among a team. Queries, likewise, can be developed and shared and then run against a store to test both function and performance.
To start with then you familiarize yourself with the Jena Explorer View (shown below) which lists all the known connections. The view provides actions for creating a new connection, setting the default connection and for closing and deleting connections. Connections are opened automatically by the tool whenever needed and are held open until either manually closed or until Eclipse is terminated.
Creating a new connection is performed by clicking on the New Connection
action on either the toolbar or from the context menu associated with the
connection folder in the view. The following shows the New Connection
wizard for a Jena TDB connection, basically all you need to do is provide
a directory location and hit Finish
.
If you enter the path of an existing file the wizard will respond with an error message, a TDB location must identify a directory and not a file. If you enter a path that does not exist the wizard will prompt you to create a new TDB store at the given location.


Profiling in Sage#
This page lists several methods available in Sage to measure and analyze the performances of a piece of code. For more general information on profiling, see Wikipedia article Profiling_(computer_programming).
How long does it take? %time and %timeit#
The two IPython magics %time
and %timeit
measure the time it takes to
run a command:
sage: %time p=random_prime(2**300)
CPU times: user 152 ms, sys: 0 ns, total: 152 ms
Wall time: 150 ms
sage: %timeit p=random_prime(2**300)
10 loops, best of 3: 62.2 ms per loop
Note that while %time
only runs the command once, %timeit
tries to
return a more meaningful value over several runs.
For more information see %timeit?
or this page.
Note that Sage provides a timeit
function which also runs in the Sage
notebook.
Python-level function calls: %prun#
With %prun
, you can obtain the list of all Python functions involved in a
computation, as well as the time spent on each of them:
sage: %prun _=random_prime(2**500)
468 function calls in 0.439 seconds
Ordered by: internal time
ncalls tottime percall cumtime percall filename:lineno(function)
32 0.438 0.014 0.438 0.014 {method 'is_prime' of 'sage.rings.integer.Integer' objects}
32 0.001 0.000 0.439 0.014 arith.py:407(is_prime)
32 0.000 0.000 0.001 0.000 random.py:175(randrange)
32 0.000 0.000 0.000 0.000 random.py:244(_randbelow)
...
The most time-consuming functions should appear on the top. A description of the different columns is available here.
Note
You may want to sort this list differently, e.g: use %prun -s cumulative
for decreasing cumulative time.
Alternatively, you can “save” this data to a Stats
object for
further inspection:
sage: %prun -r random_prime(2**500)
sage: stats_object = _
sage: stats_object.total_calls
2547
For more information see %prun?
or this page.
Visualize the statistics: you can obtain a more graphical output with
RunSnake and Sage’s
function runsnake()
:
sage: runsnake('random_prime(2**500)')
Python-level line-by-line profiling: %lprun#
With line_profiler and its
%lprun
magic, you can find out which lines of one (or many) functions are
the most time-consuming. The syntax is the following:
%lprun -f function1 -f function2 code_to_run
This will display the line-by-line analysis of function1
and function2
when code_to_run
is executed:
sage: %lprun -f random_prime random_prime(2**500)
Line # Hits Time Per Hit % Time Line Contents
==============================================================
1193 def random_prime(n, proof=None, lbound=2):
... ...
1251 # since we don't want current_randstate to get
1252 # pulled when you say "from sage.arith.all import *".
1253 1 11 11.0 0.0 from sage.misc.randstate import current_randstate
1254 1 7 7.0 0.0 from sage.structure.proof.proof import get_flag
1255 1 6 6.0 0.0 proof = get_flag(proof, "arithmetic")
1256 1 17 17.0 0.0 n = ZZ(n)
...
In order to install line_profiler
you must first run the following command:
[user@localhost ~] sage -pip install "line_profiler"
C-level function calls: %crun#
With %crun
, you can obtain the list of all C functions involved in a
computation, as well as the time spent on each of them. You will need to have
the Google performance analysis tools
installed on your system:
sage: %crun p=random_prime(2**500)
PROFILE: interrupts/evictions/bytes = 45/0/18344
Total: 45 samples
0 0.0% 0.0% 35 77.8% PyEval_EvalCode
0 0.0% 0.0% 35 77.8% PyEval_EvalCodeEx
0 0.0% 0.0% 35 77.8% PyEval_EvalFrameEx
0 0.0% 0.0% 35 77.8% PyObject_Call
0 0.0% 0.0% 35 77.8% PyRun_StringFlags
0 0.0% 0.0% 35 77.8% __Pyx_PyObject_Call.constprop.73
...
For more information on %crun
, see sage.misc.gperftools
.
C-level line-by-line profiling: perf (Linux only)#
If your code is written in C or in Cython, you can find out line-by-line which
are the most costly using perf
(included in the Ubuntu package linux-tools
).
The easiest way to use it is to run some (very long) computation in Sage, and to type in a console
[user@localhost ~] sudo perf top
Select the entry that interests you, and press Enter
. The annotate
command will show you:
the CPU instructions
the source code
the associated time
│ * cdef unsigned long word = (<unsigned long>1) << (v & self.radix_mod_mask)
│ * return (self.edges[place] & word) >> (v & self.radix_mod_mask) # <<<<<<<<<<<<<<
│ *
│ * cpdef bint has_arc(self, int u, int v) except -1:
│ */
│ __pyx_r = (((__pyx_v_self->edges[__pyx_v_place]) & __pyx_v_word) >> (__pyx_v_v & __pyx_v_self->radix_mod_mask));
10.88 │ movslq %esi,%rsi
6.52 │ and (%rdi,%rsi,8),%rax
12.84 │ shr %cl,%rax
Note
press
s
to toggle source code viewpress
H
to cycle through hottest instructionspress
h
for help
Alternatively, or if you have no sudo
privileges, you can record the statistics
of a specific process into a file perf.data
from its PID. Then, visualize
the result using perf report
:
[user@localhost ~] perf record -p PID
[user@localhost ~] perf report --vmlinux vmlinux


The New Motive Power was constructed of copper, zinc and magnets, all carefully machined, as well as a dining room table. At the end of nine months, Spear and an unnamed woman, also referred to as “Mary of the New Dispensation” ritualistically birthed the contraption in an attempt to give it life. Unfortunately for Spear, this failed to have the desired effect, and the machine was later dismantled.
The sort of paragraph that compels me to do further research. From John Murray Spear & The Electric Messiah in today's Dabbler.


{% extends 'aristotle_mdr/base.html' %} {% load i18n %} {% load humanize %} {% load bootstrap3 %} {% load staticfiles %} {% load aristotle_tags %} {% load compile_static %} {% block extra_head_scripts %} {% endblock %} {% block search %}{% endblock %} {% block title %}{% trans "Search" %}{% if query %} {% trans "results" context 'Search results' %}{% endif %}{% endblock %} {% block content %}
No results for: {{ form.original_query }}
Searching instead for: {% for word,suggestion in form.spelling_suggestions %} {% if suggestion %} {{ suggestion }} {% else %} {{ word }} {% endif %} {% endfor %} {% endif %} {% elif form.has_spelling_suggestions %} Did you mean: {% for word,suggestion in form.spelling_suggestions %} {% if suggestion %} {{ suggestion }} {% else %} {{ word }} {% endif %} {% endfor %} {% endif %} {# ----- MAIN RESULTS PAGE STARTS HERE ----- #} {% if query or form.filter_search %} {% if page.object_list %} {% if form.auto_broaden_search %}There were no results for "{{ form.q.value }}" with your requested filters.
We've automatically removed the filters and re-run your search.
{% if page.has_other_pages %} Showing {{ page.start_index }} - {{ page.end_index }} of {{ page.paginator.count }} results. {% else %} Showing {{ page.paginator.count }} results. {% endif %}
{% if user.is_active %} {% endif %} {% include "aristotle_mdr/helpers/paginator.html" with page=page %} {% else %}{% if form.auto_broaden_search %}
There were no results for "{{ form.q.value }}" with your requested filters.
We removed the filters and re-ran your search, but there were still zero results.
There were no results for your requested filters.
Please change your search parameters and try again.
Enter a query above to search the registry.
{% endif %}


Hi! My name is Khalil Horton!
I'm a Sophmore studying Computer Engineering and Computer Science!
I enjoy playing card games as well as enjoy being with other people!
Visit my GitHub~! Visit my LinkedIn!I'm a Sophmore studying Computer Engineering and Computer Science!
I enjoy playing card games as well as enjoy being with other people!
Visit my GitHub~! Visit my LinkedIn!


Before Change
raise Exception("An artifact must have exactly 1 repo, given: %s" % repos)
repo = repos[0]
if not isinstance(repo, (Pants, Repository)):
raise ValueError("repo must be %s or %s but was %s" % (
Repository.__name__, Pants.__name__, repo))
if description is not None and not isinstance(description, Compatibility.string):
raise ValueError(
After Change
raise ValueError("repo must be supplied")
repos = []
for tgt in maybe_list(resolve(repo), expected_type=(Pants, Repository)):
repos.append(tgt.resolve())
if len(repos) != 1:
raise ValueError("An artifact must have exactly 1 repo, given: %s" % repos)
repo = repos[0]


DEEP BLUE SEA
Review by John Beachem
* 1/2
Directed by: Renny Harlin Written by: Duncan Kennedy, Donna Powers
Contrary to what the previews might have you believe, "Deep Blue Sea" is not a film about smart sharks. I don't personally believe the sharks involved were particularly intelligent.  For example, in one scene, our supposedly brilliant scientists are trapped in their cozy little underwater lab while a shark smashes the large window they're all staring through. The window cracks all over the place, water starts leaking through, and still the group continues to stare. Finally, it shatters completely, and only Samuel L. Jackson's character has the brains to tell everyone to run. I truly believe that if he hadn't said anything, they all would have been washed out into the sea, still staring blankly ahead.
Dr.  The problem is, she's not showing any results, and her funding is about to be cut. So she drags her benefactor, Russell Franklin (Samuel L. Jackson), out to her little floating laboratory to show him all that she has accomplished. Her crew consists of a shark expert (Thomas Jane), a cook (L. L. Cool J), two scientists (Jacqueline McKenzie, Stellan Skarsgard), and the brainy, though irritating, computer expert (Michael Rapaport). I think there were a few others, but it's obvious from the start that they're going to be shark food. The sharks at this lab are apparently smarter than the average bear, and as a result they are able to break free of their cages and wreak havoc. True to disaster movie formula, there is a massive hurricane at this time (darn the luck). The valiant (though still incredibly stupid) crew tries to make it to the surface before the sharks make meals of them.
Before I go any further, I must confess to being afflicted by a massive fear of sharks. I remember reading about carpet sharks when I was a little kid, and how they hid in the sand, just waiting for some unsuspecting sap to swim nearby so they could have a snack. Anyway, that fear has haunted me to this day, and "Deep Blue Sea" still didn't scare me in the slightest. In this modern age, with its huge advances in computer technology, you'd think they could have made these sharks look mildly realistic. I'm afraid not folks.
How this pitiful excuse for a script managed to attract an actor of Samuel Jackson's caliber will forever be a mystery to me.  With the exception of LL Cool J, the remaining actors are unimpressive, even in roles which require them to do nothing more than run around screaming. As for poor LL Cool J, he somehow manages to spark some life into his role as the hassled and underappreciated cook. The truth is, I really feel sorry for LL Cool J. The man is not an untalented actor, yet he is handed nothing but rotten scripts ("Toys", "Any Given Sunday"). I believe he could do something with a good, comic script.
I don't know if I can even recommend this film to fans of cheesy "b" horror movies, because it's not at all scary. However, I would recommend it to those of you who want to see how not to use digital technology. I suppose there are a few humorous scenes (though I can't seem to remember what they were), and several unintentionally hilarious ones (the massive sharks fitting through tiny little doors is a good example). "Deep Blue Sea" runs an excruciatingly long 104 minutes, during which you'll either fall asleep, or be too awe struck at the stupidity of this film to do so. Stay far, far away from this one or studios might think there is money to be made in creating more films like it. I grant it a sadly generous one and a half out of five stars.
Comments? Feel free to e-mail to<EMAIL_ADDRESS>For past reviews, movie news, and other fun stuff, visit: www.dependentfilms.net
* * * * * - One of the greatest movies ever made, see it now. * * * * - Great flick. Try and catch this one. * * * - Okay movie, hits and misses. * * - Pretty bad. See it if you've got nothing better to do. * - One of the worst movies ever. See it only if you enjoy pain.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Shoe Carnival, Inc. (SCVL) CEO Cliff Sifford on Q3 2019 Results - Earnings Call Transcript
by SA Transcripts, https://seekingalpha.com/author/sa-transcriptsShoe Carnival, Inc. (NASDAQ:SCVL) Q3 2019 Earnings Conference Call November 21, 2019 4:30 PM ET
Company Participants
Cliff Sifford - Vice Chairman & Chief Executive Officer
Mark Worden - President & Chief Customer Officer
Kerry Jackson - Senior Executive Vice President & Chief Financial and Administrative Officer
Conference Call Participants
Mitch Kummetz - Pivotal Research
Greg Pendy - Sidoti
Chris Svezia - Wedbush Securities
Sam Poser - Susquehanna
Operator
Good afternoon and welcome to Shoe Carnival's Third Quarter Fiscal 2019 Earnings Conference Call. Today's conference is being recorded. It's also being broadcast via webcast. Any reproduction or rebroadcast of any portion of this call is expressly prohibited. Management's remarks may contain forward-looking statements that involve a number of risk factors. These risk factors could cause the company's actual results to be materially different from those projected in such statements.
Forward-looking statements should also be considered in conjunction with the discussion of risk factors included in the company's SEC filings in today's earnings press release.
Investors are cautioned not to place undue reliance on these forward-looking statements which speak only as of today's date. The company disclaims any obligation to update any of the risk factors or to publicly announce any revisions to the forward-looking statements discussed on today's conference call or contained in today's press release to reflect future events or developments.
I would now like to turn the conference over to Mr. Clifford -- or excuse me Mr. Cliff Sifford, Vice Chairman and Chief Executive Officer of Shoe Carnival for opening comments. Mr. Sifford you may begin.
Cliff Sifford
Thank you and welcome to Shoe Carnival's third quarter 2019 earnings conference call. Joining me on the call today is Mark Worden, President and Chief Customer Officer; and Kerry Jackson, Senior Executive Vice President Chief Financial and Administrative Officer.
On today's call, I'll provide a brief overview of our third quarter operating highlights, and sales results, as well as review our fiscal 2019 outlook. Mark will update you on the progress around our customer-centric initiative, and Kerry will discuss the financial results in more detail. Then we'll open up the call to take your questions.
I'm pleased to report comparable store sales for the quarter increased 3.5% on top of the 4.5% increase for the third quarter last year. This increase was driven across all merchandise departments in both the athletic and non-athletic categories and across all sales channels. Each month of the quarter delivered positive comparable results.
We generated our 17th consecutive year of positive comps for the month of August demonstrating that Shoe Carnival remains the store of choice for shoes during the back-to-school season. This year's August comp increase of 3.3% was on top of the 6.5% increase in August last year.
Our customers trust us to have the latest trends from the best brands in-depth throughout the year. Our commitment to merchandising our stores based on the unique and differentiated customer demographics of each store has always been our focus.
Now, with the initial implementation of our CRM program, we can customize our communication to each customer based on their individual shopping preferences. Mark will provide greater detail on this initiative in just a moment.
We ended the quarter with inventory up 1.4% per store on a per-store basis as our team continued to shift receipts earlier to avoid any possible future increase in tariffs. Our merchandise margin was up 50 basis points to last year. BD&O expenses decreased 20 basis points as a percentage of sales and SG&A was flat as a percentage of sales compared to the third quarter last year.
As a result operating income increased by 70 basis points as a percentage of sales and EPS for the quarter increased 23.7% to $0.94 per diluted share, the highest quarterly diluted EPS in the company's history. These positive results give us confidence to increase our fiscal year outlook.
Focusing on third quarter comparable store sales by department, women's nonathletic was up mid-single-digits on a comparable basis. We were pleased with the positive comp performance of women's dress shoes which produced mid-single-digit sales gain and sport casuals which produced a high single-digit increase. And once the weather turned more seasonal later in the quarter our fashion boots generated positive results.
The men's non-athletic department continued to generate strong results posting a mid-single-digit comparable store sales increase. Our merchants have done an outstanding job of building our surplus for both everyday wear and work furthering our goal of making Shoe Carnival the destination for men's footwear.
Shoe Car remains a go-to store for children's shoes. The children's footwear department posted a mid-single-digit increase for the quarter on a comparable basis. The sales increase was broad-based including both boy's and girl's product categories and both athletic and non-athletic departments.
The adult athletics continues to be -- there continues to be a shift from performance categories to more casual categories. Our merchant team has done a great job of recognizing this shift in preferences resulting in slightly positive comparable store sales.
I would now like to give an update on our financial expectations for fiscal 2019. As I mentioned earlier, once the weather became more seasonal, we saw an acceleration in our seasonal boot categories across all departments and sales channels. Seasonal boots account for approximately 25% of our total footwear sales for the fourth quarter and we expect the positive trends that we have experienced since the arrival of cooler seasonal weather to continue through the balance of the fiscal year.
Based on our year-to-date results we are raising and tightening our EPS guidance from a high of $2.83 to a range of $2.85 to $2.89. This updated guidance represents an increase of 16% to 18% compared to our actual EPS of $2.45 for fiscal year 2018.
In addition we now expect total net sales for the full fiscal year to be in the range of $1.033 billion to $1.036 billion which is at the high end of our previously stated guidance. Further, we continue to expect a low single-digit comparable store sales increase for the year.
With that overview, I'd now like to turn the call over to Mark Worden. Mark?
Mark Worden
Thank you, Cliff. It's a pleasure to be speaking with you on my first earnings call with Cliff and Kerry. I've enjoyed getting to meet many of you from the investment community since joining the company in 2018.
Shoe Carnival has generated consistent results over several years. As Cliff mentioned, we deliver on everyday family footwear needs. And when consumers count on us most for seasonal or special occasions, we have what they're looking for. We believe the strong foundation with consumers as just the beginning.
Over the past year, our team has made significant progress on our long-term strategies. Our customer-centric organization is focused on delighting the family channel shopper and creating sustainable, long-term growth for our shareholders. Today, I'd like to share an update on four of our core strategic imperatives fueling our growth: first CRM; second brands; third e-commerce; and fourth on real estate.
Over the past 15 months we shared our enthusiasm about the world-class CRM platform we are building and I'm excited to share that the CRM implementation phase has been completed ahead of schedule. Our team has already begun to capture actionable insights and enhanced value for our consumers. The new platform provides our marketing, merchandising, analytics and real estate teams with a holistic view of our customer shopping behaviors.
This in turn helps us identify tomorrow's most valuable customers and deploy resources toward building long-lasting loyalty with them. A few early CRM wins include with new customer insights, we were able to build customer engagement plans that has grown our loyalty program membership 11% this year to over 23 million loyal members.
Our most valuable lifetime customers are Shoe Perks gold member generating on average over $15 more per transaction than our basic loyalty member transaction value. With focused marketing activities, gold membership is up over 50% year-to-date. And in Q3, we grew sales with this group by over 20%. Our teams are capturing new shopper insights, giving us confidence that our CRM capability is fueling profitable growth for multiple years ahead.
A second core strategy is to build Shoe Carnival brand awareness and preference within the family footwear channel. During Q3, we launched our first fully integrated campaign with our agency of record McCann Detroit. This new marketing campaign in combination with our strong merchandising resulted in our 17th consecutive year of comparable store growth during back-to-school.
Growth was driven by increased traffic in both our bricks-and-mortar stores and e-commerce platform, resulting in a high single-digit growth rate of customers shopping at Shoe Carnival during Q3. Store conversion continues to be a long-term success driver growing low single-digits for the year with growth every quarter, demonstrating the excellence of our store operators and our buying organizations.
The third strategic imperative I would like to provide an update on today is e-commerce. Our short-term objective is to grow our online business to over 10% of our total net sales from approximately 7% today. We launched our online business in 2012 and since then have been rapidly building capabilities that are driving customer traffic growth and conversion growth online. I'm proud of the acceleration we have achieved with our online growth plan for in 2019.
Fourth, opening and repositioning stores to capture customer shopping preferences is a core strategic growth opportunity. During Q3, we opened a new store in Jeffersonville Indiana; we rebuilt a store in Panama City Florida that was destroyed by a hurricane in 2018; and we repositioned the store in Peoria Illinois.
Customer responses and early sales performance at all three stores are very encouraging. With our CRM implementation phase now completed, we're able to mine for and leverage new insights to resume profitable new store growth. As part of our strategic initiatives, we are pleased to confirm our plan to open six to eight new stores in 2020 and eight to 12 new stores in 2021. The strategic plans are focused on growth within our existing 35-state geographic footprint.
Finally, our customer-centric focus and strategic progress during 2019 reinforces our confidence in delivering the increased annual earnings per share outlook, Cliff shared with you.
I will now turn it over to Kerry Jackson to provide more insight into our financial performance.
Kerry Jackson
Thank you, Mark. Our net sales for the third quarter ended November 2, 2019 decreased $5.5 million to $274.6 million compared to the third quarter of last year. Of this increase in net sales $9.2 million was attributable to the 3.5% increase in comparable store sales and $1.2 million was attributable to the four new stores opened since the beginning of the third quarter of fiscal 2018.
This was partially offset by a loss in sales of $4.9 million from the 13 stores closed and other non-comp stores over the same period. Our gross profit margin for the quarter was 30.9% compared to 30.2% in the third quarter last year. Our merchandise margin increased 50 basis points during the quarter while buying distribution and occupancy expense, decreased 20 basis points as a percentage of sales.
The increase in the merchandising margin was primarily the result of an increase in sales of non-athletic products, especially women's non-athletic which carry a higher margin than our athletic category. The decrease in buying distribution and occupancy expenses as a percentage of sales was the result of lower distribution costs and the leveraging of expenses against a higher sales base.
SG&A expenses increased $1.4 million in the third quarter of fiscal 2019 to $66.6 million. As a percentage of net sales, these expenses were flat compared to the third quarter of fiscal 2018. Significant changes in SG&A in Q3 included increases in payroll, incentive compensation, employee benefits and store closing and impairment charges which were partially offset by decreases in equity compensation, depreciation, advertising and operating fewer stores during the quarter.
The effective income tax rate for the third quarter of fiscal 2019 was 24.9% compared to 25.9% for the same period last year, primarily related to the reversal of valuation allowances on certain NOLs that we now expect to utilize.
For the full year of fiscal 2019, we expect our tax rate to be approximately 21.3% compared to 24.3% last year. The reduction in the annual tax rate this year was a result of a Q3 reversal of valuation allowances and a $1.9 million tax benefit related to the vesting of equity based compensation in the first quarter of this year.
Net income for the third quarter was $13.7 million, compared to net income of $12.0 million last year. Earnings per diluted share for the third quarter increased $0.18 to $0.94 per diluted share. Weighted average diluted shares outstanding for the third quarter of this year decreased 8%.
Now turning to our cash position and information affecting cash flow. Depreciation expense was $4.3 million in the third quarter. Depreciation expense is expected to be approximately $17 million for the full fiscal year. Capital expenditures for fiscal 2019, including actual expenditures during the first nine months of the year are expected between $18 million and $19 million with approximately $11 million to be used for new stores, relocations, remodels and the purchase of our corporate headquarters.
In the third quarter of this year, we repurchased under our share repurchase program 521,800 shares of our common stock at a total cost of $16.9 million. For the first three quarters of this year, we have repurchased approximately 933,000 shares at a total cost of $30.9 million. We currently have $19.1 million sales remaining available under our $50 million share repurchase authorization. We continue to expect diluted weighted average shares outstanding for the full year fiscal year to be approximately 14.7 million shares.
My final comment today will be adding a little color on our financial expectations for the fourth quarter. Implicit in our annual sales guidance is the expectation of our Q4 sales to range from $236 million to $239 million. This compares with Q4 sales last year of $234.7 million. In addition, at the high end of our earnings guidance, our expectations for Q4, include a low single-digit comparable store sales increase, a flattish gross profit margin and a healthy leveraging of our SG&A. Diluted earnings per share are expected to range from $0.18 to $0.22 in Q4 compared to earning $0.09 in Q4 last year. This concludes our financial review.
Now, I'd like to open up the call for questions.
Question-and-Answer Session
Operator
[Operator Instructions] Our first question comes from Mitch Kummetz with Pivotal Research. Please go ahead.
Mitch Kummetz
Yeah. Thanks for taking my questions, and also congrats on the quarter. Kerry, let me start where you ended on the guide. I just want to be clear. So you're saying that the high-end of your Q4 range is a low single-digit comp flat gross margin and substantial SG&A leverage. If that's correct, is there – are there assumptions embedded on the low-end? And, if there are, do you care to share those with us?
Kerry Jackson
Well, you could take a little bit of – a few things. So we end up on the low end of the sales, you could end up with a flattish to slightly down gross profit margin, and we'll probably would not have quite as high a leverage. We'd still be leveraging our SG&A because of the comparisons, but they won't be as quite as high as we're expecting.
Mitch Kummetz
Okay. And then you guys raised, so you raised the sales outlook for the year but you're still seeing kind of a low single-digit comp on the full year, right? So are you – is the – do you now expect – so I'm not sure what your definition of a low single-digit comp is. I'm going to say like maybe 1% to 3%. Are you now expecting something more towards the higher end of the range of low single digits? Is that the reason why you raised the sales guide by a few million for the year?
Kerry Jackson
Look keep in mind that's a flow through primarily of what we saw come through in the third quarter. We exceeded what our expectations have been on the third quarter and we're flowing it through the year.
Mitch Kummetz
Okay. And then, could you make any comments on Q4 to date? We're two-plus weeks, I guess into the quarter. You talked about improving trends on the boot side. Is there – can you give us any numbers around kind of how you're trending?
Cliff Sifford
We're just not going to give fourth quarter to date. And let me tell you the number one, reason was that Thanksgiving moves out of the third week of November into the fourth week of November. And that changes a lot of metrics. So we're going to stay silent and tell you that we expect low single-digit increase for the fourth quarter.
Mitch Kummetz
Cliff, can you talk a little bit about that calendar shift? If I'm not mistaken, I think the last time we saw Thanksgiving on the 28th was in 2013. I don't know, if you have any recollection as to how that impacted your fourth quarter results that year?
Cliff Sifford
I don't – no I'd have to go back and specifically look at that. Kerry is looking at that right now. It creates one week less between Thanksgiving and Christmas, which doesn't affect the shoe business there as much as it does the department store business. It has a pretty good effect on the department store business, but not so much in shoes.
Mitch Kummetz
Okay.
Cliff Sifford
We're more concerned in the fourth quarter about weather trends than we are about calendar shift.
Mitch Kummetz
Sure. And then speaking to weather on boots. So, I just want to be clear as to what you said about the third quarter and then I want to ask you a little bit about your Q4 outlook there. But in third quarter, I think you said that women's fashion boots were positive. I wasn't sure, if that would comment on the quarter itself or if that was more…
Cliff Sifford
I think what I said was that as we – as the weather got cooler throughout the quarter. Women's boots turned positive.
Mitch Kummetz
Okay.
Cliff Sifford
Or I might have said less positive once it turned cooler. We were not positive early in the quarter in boots. We needed the weather to change. And once it did change the customer did show up and started buying boots.
Mitch Kummetz
Can you say what boots were for the quarter? Were they down for the quarter? Were they -- is there just sort of an overall boot number that you could give us?
Cliff Sifford
Well, if you look at our overall boot business it was flattish. But that would include men's. Our women's fashion boots were slightly down.
Mitch Kummetz
Okay. And then I guess just lastly on your outlook for boots in Q4. I think you said that seasonal boots were -- are 25% of the total. Is that just the weather dependent? I mean, I guess all boots are weather-dependent to some degree, but is that like more like insulated boots? Is your overall boot business bigger than 25% of that?
Cliff Sifford
What I'm trying to say in that and maybe I need to figure out a way to clean it up is that excluding work.
Mitch Kummetz
Okay.
Cliff Sifford
So if you look at boots for everyday wear fashion that's approximately 25% of our total fourth quarter of footwear sales.
Mitch Kummetz
Got it. All right. Thanks, guys. I get back in the queue.
Operator
And our next question comes from Greg Pendy with Sidoti.
Greg Pendy
The new store guidance that you gave was that a net, or is that just the new stores and we can expect some -- that was going to be offset…
Cliff Sifford
Greg, I'm afraid that the first part of your question was muted. So if I can get you to ask it out more time.
Greg Pendy
Sure. Can you hear me now?
Cliff Sifford
I can hear you fine now.
Greg Pendy
Okay. Sorry about that. I just wanted to understand on the new stores was that just new stores, or is that the net of stores and store closings. I think you were targeting six to eight new stores in 2020, but can we expect that to be offset by some closings?
Mark Worden
Hi, Greg. You're right. Those are new stores we're talking about there. Six to eight is the range of new stores, and then eight to 12 for 2021. And if we look into that -- if you look further into that trend we are forecasting climbing to net store growth towards the end of 2021 or into early 2022 depending on the success of finding a highly productive highly, profitable sites and markets we know we can win with.
Greg Pendy
Okay. And then can you just talk a little bit about as you're evaluating these new stores what you're seeing in the real estate environment for these new stores and how you're thinking about that?
Mark Worden
Yeah. We're focusing on our 35 core states first of all where we know our shoppers very well and where we have a strong propensity to succeed with growth. We're finding in our core markets it is a challenging marketplace to find robust opportunities, because we're being incredibly selective to find ones where we know our shoppers are.
And so from our perspective here, we're going to stay really focused on finding stores we believe can be accretive to our revenue per door averages and accretive to our profit for the corporation long-term.
Cliff Sifford
If I can -- and Greg if I can add to that it's -- there are sites out there, but we're being very, very selective. And that's one of the things that CRM has brought to us is that we know exactly -- we have a very real idea as to who our customer is and who's shopping in our stores. And so we're making sure that the sites that have been brought to us our real estate team as we go out to visit those stores we make sure that the demographics and the customer profile in and around those stores match exactly who we are.
Greg Pendy
Okay. That's helpful. Thanks a lot.
Operator
Our next question in the queue comes from Chris Svezia with Wedbush Securities. Please go ahead.
Chris Svezia
Good afternoon everyone. And congratulations on the quarter and welcome Mark to the conference call.
Mark Worden
Thank you, Chris. Thank you.
Chris Svezia
I guess, first Kerry for you. Just what's the -- when we think about Q4 remind me again what the comp by month what you're up against? Just walk through that if you could?
Kerry Jackson
So last year our November was up high singles. Our December was up -- and December and January were up low singles and we ended the quarter at 4 7.
Chris Svezia
Okay. Okay. Thank you. And then Mark for you just on the CRM. I'm just -- I know you went live during the quarter. And I know you've been getting incremental wins throughout the year. But I guess was there anything material that developed during the quarter that drove comp acceleration to the loyalty program when you talked about your gold membership and the growth there? Just anything you did maybe that you suddenly -- was incremental in terms of turning on that CRM or no?
Mark Worden
Absolutely Chris. We were able to capture multiple quick wins. And one I'd say is, we're able to utilize the data to understand shoppers who used to shop at corporations that no longer exist in our competitive space and try to communicate to those folks to help them understand we're a new alternative for family footwear when they used to shop at a place that no longer is there. That was really very profitable use of our early analytical data this quarter.
Cliff Sifford
I'll also add to that that we saw an increase in traffic from our gold members so not only did we -- were we able to attract new members, but our most loyal customers, which are our gold members shopped us. We saw an increase in basket size from them as well.
Chris Svezia
Okay. That's great. Good to hear. I want to go just from a product perspective just on the athletic seeing a slight increase. I know you're talking about there's some shift to casual from technical athletic. What's sort of your thoughts about the outlook as you go into Q4 and maybe early next year? Any color about Q4 as sort of availability of certain product becomes more heightened or whatever the case? Are you talking about trying to continue or do you expect something to change a bit in Q4?
Cliff Sifford
I definitely expect the casual trend that we've seen over the past couple of quarters to continue and maybe even accelerate a little bit. However, I also think that as we head into 2020 and the product that we've seen and as you know, like the bulk categories and our brands, but the product we've seen is very encouraging.
And, I believe, we're going to see continued growth out of the athletic maybe not -- I think, we'll see growth out of the casual categories, but I think you're going to see, even the technical or, what we would consider to be technical, accelerate as well.
Chris Svezia
Okay. Got it. And then, just on -- another just category question. Just on the dress category performing well. Any -- I know, it's been spotty there, but I think you have some recent success. Just kind of what's driving that? Any color you want to add about that?
Cliff Sifford
Well, six months ago, I would not have told you that in the third quarter our dress shoe business would be good. Okay? That was a -- I'm not going to tell you, it caught us by surprise. I'm just going to tell you, our merchants did an incredible job of going after the right item. And I don't want to get specific on the categories that are selling, because I got competition, as you know, listening to this call. But I was very pleasantly surprised to see our women's dress shoe business accelerate the way it did.
Chris Svezia
Okay. Final thing for me. Just on a margin question and just on the boot. Just curious, how do you think about demonstrating fashion boots and cold weather boots and what you saw in the quarter and your expectation in Q4? And, Kerry, why flat gross margin if you comp up low single? Are you assuming the merchandise margin is down and that's just because of difficult comp, or is that predicated on how well the boot business performs?
Cliff Sifford
Chris, I'm going to take the easy question, which is, what's the difference between fashion boots and all other. When I say fashion or seasonal boots, what I'm doing is excluding work that you guys don't really want to know about work, because that's an ongoing business for us. You want to know how the fashion business, which is where all the risk is. So when I talked about fashion boots or seasonal boots, it really is just excluding work.
Chris Svezia
Okay. But is there any difference between the two of them, between a fashion, which is like a boot or something like that?
Cliff Sifford
No, I probably just simply get work – I just probably -- no, I include cold weather into that, because that’s crossing the line. I mean, what you could include fur boots as cold weather, would you say cold leather is strictly cold -- leather that keeps dampness away from your foot? That I don't know. So what we do is anything that's not work, that's our fashion boot category.
Chris Svezia
Got it. Okay. And on margin?
Kerry Jackson
So, Chris, we are expecting to be able to leverage our -- as I said, our flattish gross profit margin. We expect to see some leveraging out of our buyer's fees and occupancy costs on that on a little more cost base than the year before, plus having the comp store sales increase.
We also expect though there's two parts of our merchandise margin; the actual sale and cost of the shoe. But then we have some accounting adjustments we have to add into it. And one of them is you have to put capitalized costs into the cost of the shoe.
As your inventories are increasing those reserves increase along with it. We are expecting due to offering fewer stores and putting -- lowering our per store inventory, to have actual total dollar inventories down at the end of this year versus last year.
That's reversing out some of those capitalized costs that we had accrued in prior periods into Q4 and causing that to be -- so the overall merchandise margin will be down because of those accounting adjustments, even though we expect a pure profit on the sale of the shoe to be up on a year-over-year basis.
Chris Svezia
Okay. I think I got it. Okay. I got it. Thank you. All the best guys. It's great to hear.
Cliff Sifford
Thank you, Chris.
Operator
[Operator Instructions] And we'll take our next question. This one comes from Mitch Kummetz with Pivotal Research. Please go ahead.
Mitch Kummetz
Yes. I've got some follow-ups. So, first of all, I did -- because I didn't hear what you said about adult athletic. I think maybe you just said it was up slightly in the quarter. What was it up -- was it up in the quarter?
Cliff Sifford
Adult athletic was basic -- was dead on flat.
Mitch Kummetz
It was -- I'm sorry, it was flat?
Cliff Sifford
It was flat. That's correct.
Mitch Kummetz
Okay, okay. So, I think, that's a slight improvement from last quarter, right? I think last quarter was down slightly.
Cliff Sifford
What?
Mitch Kummetz
I guess, this isn't my really -- my question. I find it interesting that you're talking about 2020 and you like what you're seeing on the product side for 2020. Correct me if I'm wrong, but I kind of feel like going into this year you guys were pretty bullish on what you were seeing product-wise as well on the athletic side.
And it seems like two of your more important athletic quarters Q2 and Q3 didn't really play out as well as maybe you would have anticipated going into this year. I'm just wondering, if you could do like a postmortem on that. I don't want to say what went wrong, but did that not live up to your expectations? And if so, why?
Cliff Sifford
No, that's a great question. We were excited coming into the year unscathed and we expected, as we entered into the second half of the year, for certain brands to strengthen. We knew that we have brands that were not going to be strong for the first half of the year, but we expected the other brands to strengthen, as we headed into the second half of the year.
And I really don't want to get specific on whether that brand disappointed us or came along. But I am -- to be honest with you, I think what happened to the fact that athletic was flat and we showed a 3.5% comp store increase for the quarter shows the strength of our concept that as customers shift from one category to the other we can take advantage of that and I believe we did.
Mitch Kummetz
Okay.  I'm wondering if you could maybe talk about the impact of Payless. Is there any way to kind of break out your comp versus stores that overlap
Cliff Sifford
I can tell you that our comps within a -- I'm not going to break out the comps between overall Payless and non-Payless. But I will tell you that the stores that were closest to where a Payless store was within a mile or 2-mile radius those stores had better sales results than the stores that were more than 5 miles away from a Payless store. But you got to remember, Payless has got a lot of stores so I think -- were near a lot of our stores. I'm sure a lot.
Mitch Kummetz
So in those stores do you -- yes in those stores that you overlapped did you see any real difference in terms of how you comped by category? I think when you were talking about -- I know that from a price point standpoint there was only so much overlap. But I think you'd said that you thought you could that could benefit you on the athletic side a little bit, maybe some other sides? Maybe work? I'm not sure. Did you see it help you?
Cliff Sifford
I think that benefited us in dress shoes. We were asked earlier why our dress shoes business was up. We think it's the Payless effect. They sold a lot of dress shoes.
Mitch Kummetz
Yes. Okay that's helpful. And then on boots, I'm just curious in terms of -- it sounds like goods are probably a little worse than what you thought in the quarter. I know you had a tough comp last year. I know what the weather was doing. How do you feel about your boot inventory? Do you feel like there's any risk, or can you just sort of shut off the spigot if need be? Could you probably push things back to your vendors? And then how do you think about just sort of channel inventory for boots more broadly outside of kind of what you guys are carrying?
Cliff Sifford
Well I think maybe you're asking me if it's gotten more promotional. That's a way of asking me if it's more promotional. We haven't seen that yet. Our boot inventory is in great shape. The reason for that right is the way we run our business is that, we buy what we need upfront and then we place backups. And if the boots don't take off the way we originally thought they were going to sell then those backups are cancelable.
And we're aggressive on that as we go through. So I -- my inventory is in great shape and I give the merchants all the credit in the world. If you -- because I -- we had a decent third quarter in boots. And actually we had a flat third quarter in boots, we're having a pretty decent fourth quarter in boots and I think we're going to be in good shape.
Mitch Kummetz
Okay. And then last question maybe for Kerry. I know that you guys said that you were a 3.3% comp in August. I don't know if you can tell us October -- or I'm sorry September and October. I'm guessing October was stronger than September just from a weather standpoint. But...
Kerry Jackson
No. What we saw was September was low single-digit comp increase. And in October we accelerated to a mid single digit comp increase.
Mitch Kummetz
Okay. Great. All right, thanks again guys.
Cliff Sifford
Thank you.
Operator
Our next question in the queue comes from Sam Poser with Susquehanna.
Sam Poser
I just went to work for a new bank apparently. Congratulations guys. Phenomenal quarter. Best quarter I've ever seen from you guys. But anyway let's keep moving. Yes. Can you -- I want to follow up. How many stores are you planning on closing next year and the following year? Could you just give us an idea? You said you were going to be net opening -- you're probably going to be net opening maybe in 2021. But next year I mean can we expect you're going to net flat or net close? Could you give us some idea?
Cliff Sifford
It's going to be a net flat is where our thoughts are now because we haven't talked about that as much to date Sam because we're working really hard to actually show store growth for next year. And we've been...
Sam Poser
But I mean if we were going to model it we're not -- if we're going to model it it's better modeling it in for close to flat than flat and then it will get an improvement. And then the following year, I mean what like net 5 open would probably be a good starting point, or you think….
Cliff Sifford
Right now I tell you the following year it would be a little lower than that, somewhere net flat to 5.
Sam Poser
Okay. And then can you talk about the -- like you're -- given the and I'm going to get to CRM in a second, but can you given the CRM and given what you're learning from it with the new stores, can you talk about what that productivity expectation will be for those new stores that you open with the new information that you're garnering?
Cliff Sifford
We would fully expect that a new store within a reasonable point in time. And let's say between the year 3 -- around year 3 to be at the company average.
Sam Poser
So you don't expect those to outperform given the new information and open faster and like open stronger because of the new manner by which you're taking the patience and the manner...
Cliff Sifford
Sam it's a difficult question because it depends upon where you open the store. What we found this year is and we haven't opened many stores, but where we open up stores where they already know us they're outpacing -- they outpaced our current comp…..
Sam Poser
Got you. If they know you are, the work shows itself more quickly. Fair?
Cliff Sifford
That's right. That's fair.
Sam Poser
Okay. How much help -- I know you just kicked off the CRM sort of in earnest this quarter. But if you could -- I know -- and I know this isn't going to be scientific, but how much do you think this improved communication with the customers vis-à-vis the CRM helped your comp in the quarter?
Mark Worden
Hi Sam, it's a material contributor and a diagnosis I could give you is, if you look at our Shoe Perks gold members as I shared earlier, that membership grew 50% plus for the year. And if we look at the comp with that growth, they're growing at a rate more than two times faster than our total company comp rate we just did. So, said differently, the insights are allowing us to bring consumers into our loyalty program rapidly trade them up to our highest tier our most valuable location and their comps are growing at a pace we're extremely excited with.
Sam Poser
Cool. And I have a few more. One, did you buy back any stock after -- since quarter end that would be reported in the Q?
Kerry Jackson
No, because we've been in -- we're locked up until after we released earnings. So, we weren't -- we're in a blackout period until after the release of earnings. So we're not allowed to buy back.
Sam Poser
Okay. The athletic business, Cliff. Do you when do you foresee that on a year-over-year basis sort of gaining momentum turning around given as Mitch brought up the expectations coming into the year and sort of what you've learned in the meantime?
Cliff Sifford
Yes, I think -- let me say this. We're -- as we looked at new product for spring of 2020, we're excited about the things that we're seeing from some of our top vendors.
Sam Poser
Is one of those vendors from the Northwest by chance?
Cliff Sifford
To Mitch's point, we were not unexcited about entering into 2019. But -- and as you know we've been flattish all year with athletic. So, I feel good about it. I can tell you that I feel really good about where Shoe Carnival is right now with their customer and the fact that not many people are reporting increases in traffic and increases in sales the way we have. And based on whatever happens in the spring of 2020, we'll be prepared and we'll move with the customer as quickly as possible.
Sam Poser
And you just mentioned your traffic in the stores for the quarter were up or not?
Mark Worden
Traffic was up, Sam in both bricks-and-mortar and are our online. We were successful both on the traffic and conversion.
Sam Poser
Okay, cool. Congratulations on that. Two more questions. Furry boots. How are you doing with them? How does it look? I know that had some fashion some weather. So any initial read on furry boots?
Cliff Sifford
So far we're not unhappy with furry boots and in fact that's probably as close as I'm going to get to talking about product categories.
Sam Poser
Okay. And then -- all right. So you brought in some product earlier in the quarter partially to offset tariffs. But it's going to be hard to offset tariffs and we're still waiting to find out if the December 15 ones happen. But assuming they don't, when you're looking at tariff impact into next year or prices that you're seeing if those -- the additional 25% happens, can you give us an idea of the magnitude of the increases and the progress you're making with factories and vendors and so on and so forth?
Cliff Sifford
So far and we've talked about this quite a bit internally. So far, we haven't seen a lot of price increases. We did have a major vendor that you're familiar with that did institute across the board price increase and we were able to mitigate that somewhat by the product we bought. Some product is worth more than others. And so, we were able I think in my mind able to mitigate that price increase, but we haven't seen a lot of price increases.
I think the majority of the vendor community is waiting to see exactly what happens. The good news within athletic is that the majority of the athletic goods are made in Vietnam not in China. So that's 52% of our total volume, so not seeing a lot there. Not seeing a lot other than the out brand I talked about. I'm not seeing a lot of increases.
Sam Poser
And I mean on your dress -- women's dress product I mean most of that is non-weather and most of that would be impacted by the by 4B tariffs. And so everybody is sort of holding their breath on that is sort of how to think about it?
Cliff Sifford
They're holding their breath on it at this point. And orders have been placed with cost given. So, no Sam, I don't expect that we're going to -- in fact Carl nor myself think we're going to be affected at least in the spring time period with tariffs.
Sam Poser
All right. Well, thank you very much and continued success.
Cliff Sifford
All right. Thank you.
Operator
There are no further questions in queue. At this time, I would like to turn the call back over to speakers for closing remarks.
Cliff Sifford
I'd like to thank you all for your participation on today's earnings call. We look forward to announcing our fourth quarter and full year results in March. I also want to wish each of you a great Thanksgiving and a very happy holiday season a great evening. And thanks again for tuning in.
Operator
Thank you, ladies and gentlemen. This concludes today's presentation. You may now disconnect.


TABLE TITLE
REFERENCE
DATE ISSUED
COMPANY
AMOUNT
STATUS
#2331212
Feb 21,2013
White Out
$2,000
Paid
#2331212
Feb 21,2013
White Out
$2,000
Paid
#2331212
Feb 21,2013
White Out
$2,000
Paid


Govt seeks answers as maize prices shoot up
by By Guardian ReporterTHE government has raised concern as maize prices have shot up once again with 100-kilo bag now going for 107,000/- up from 65,000/- last year.
Officiating at the launch of two surveys on food security, Deputy Permanent Secretary in the Ministry of Agriculture Prof Siza Tumbo challenged researchers to find out why the prices have been skyrocketing at a time when Tanzania has enough food reserves.
“One of the issues you should deliberate on is why maize prices have kept on going up because people living in urban areas have started complaining about this. The sack now sells at 107,000/- which is a substantial increase from 65,000/- last year.
The deputy PS raised concern that the price might reach unaffordable levels come February next year because prices of maize normally go up that month every year.
In its Quarterly Economic Review published in April last year, the Bank of Tanzania (BoT) said that the wholesale price for maize in different regions increased in February despite good harvests in the 2017/18 season.
The average wholesale price for a 100-kilo bag was up by 3.7 per cent to 50,811.6/- in February 2019 from 49,011.1/- recorded in January.
But Prof Tumbo insisted that the government is not considering closing borders to control the sale of Tanzanian maize outside the country as a means of controlling price hikes in the country.
“The country cannot keep closing and opening the borders every now and then. Because the issue is not export but rather how to control the prices,” he said.
He was addressing researchers from the Economic and Social Research Foundation (ESRF) and Alliance for a Green Revolution in Africa (AGRA) who conducted the two studies necessitated by opposition to export of maize last year.
Ministerial data shows that maize production in the country was 6.2 million tonnes during fiscal 2017/18 from 6.6 million tonnes the previous financial year.
Tanzania’s demand for maize currently stands at 5,462,390 tonnes, hence resulting into a surplus of 810,760 tonnes.


Black
Rainbow
Transparent
Light Gradient
Dark Gradient
Clear
New Grid?
Propagate
" Please enable JavaScript to use Etch-a-Sketch "


--- layout: post status: publish published: true title: Instagallery - New feature author: display_name: hojunbaek login: hojunbaek email<EMAIL_ADDRESS>url: '' author_login: hojunbaek author_email<EMAIL_ADDRESS>excerpt: History wordpress_id: 1503 wordpress_url: http://ezcocoa.com/?p=1503 date: '2012-03-31 05:53:41 +0900' date_gmt: '2012-03-31 05:53:41 +0900' categories: - Instagallery tags: - app - android - instagram - instagallery comments: - id: 40 author: yayee author_email<EMAIL_ADDRESS>author_url: '' date: '2012-04-08 15:07:29 +0900' date_gmt: '2012-04-08 15:07:29 +0900' content: good - id: 41 author: salina author_email<EMAIL_ADDRESS>author_url: '' date: '2012-04-10 17:46:37 +0900' date_gmt: '2012-04-10 17:46:37 +0900' content: Hi, I just installed instagallery. After I log in, a page pop up to ask for authorization, but there is no option for allow or deny. - id: 42 author: ezcocoa author_email<EMAIL_ADDRESS>author_url: http://ezcocoa.com date: '2012-04-26 08:59:47 +0900' date_gmt: '2012-04-26 08:59:47 +0900' content: |- hi. salina, i saw your message, i didn't fix it yet. sorry i will fix it as quickly as possible. thanks you. - id: 43 author: julie author_email<EMAIL_ADDRESS>author_url: '' date: '2012-04-27 00:48:28 +0900' date_gmt: '2012-04-27 00:48:28 +0900' content: I have the same problem as Salina - id: 44 author: ezcocoa author_email<EMAIL_ADDRESS>author_url: http://ezcocoa.com date: '2012-04-27 02:01:41 +0900' date_gmt: '2012-04-27 02:01:41 +0900' content: |- hi, julie ok. i will fix it. thanks. - id: 45 author<EMAIL_ADDRESS>author_email<EMAIL_ADDRESS>author_url: http://Facebook date: '2012-09-24 05:24:54 +0900' date_gmt: '2012-09-24 05:24:54 +0900' content: Hi - id: 46 author: ezcocoa author_email<EMAIL_ADDRESS>author_url: http://ezcocoa.com date: '2012-12-12 01:52:31 +0900' date_gmt: '2012-12-12 01:52:31 +0900' content: Hi. - id: 47 author: Marcel author_email<EMAIL_ADDRESS>author_url: '' date: '2013-06-01 01:57:46 +0900' date_gmt: '2013-06-01 01:57:46 +0900' content: 'Hi! Loving the app but just one problem: how can I see all the comments on someone''s photo? It just opens the latest comments. I''m using a Motorola Atrix with Gingerbread 2.3.7.' - id: 48 author: ezcocoa author_email<EMAIL_ADDRESS>author_url: http://ezcocoa.com date: '2013-09-16 01:25:24 +0900' date_gmt: '2013-09-16 01:25:24 +0900' content: |- Hi. I'm late to reply. Um.... I don't think so. you can see whole things. If you can't.. It's a bug that i've to fix it. Thank you. I'll confirm this problem. ---
- View User Information
- bug fix (it force closes before it even opens)
- Improve search view
- bug fix
- login bug fix
- you can search tag what you want to.
- Improve performance and UI
- bug fix
- improve login-display-resolution.
- improve performance & UI.
coming soon.
- you can search other user.
- Support all of resolution.
thanks for your interesting.


Join the numbers and get to the 2048 tile!
How to play: Use your arrow keys to move the tiles. When two tiles with the same number touch, they merge into one!
Note: This site is not the official version of 2048 and should be used with caution. You can play official version on your phone via http://git.io/2048.


Since my very early childhood I always enjoyed tinkering with electronics. I used to disassemble toy trains, cars and motorcycles. After I had received my first PC, this habit escalated and items such as joysticks and gaming pads fell victim to my tinkering urges. As time went by, my targets increased in size and I began fiddling with desktop PCs. I truly enjoyed altering and improving everything around me. This included software. Sadly, Windows as a tinkering platform isn't particularly malleable.
First off, software for Windows is usually available only in binary form and protected by numerous copyright laws. Therefore, even if you somehow manage to decompile it or understand the configuration files well enough to hack it, the capacity to publish your findings is very limited. When you acquire a piece of software, you actually own only the license to use it. Same as with books - you are entitled only to the single paper or electronic copy you purchased.
Sadly, this copyright-entrenched distribution model is extremely restrictive and doesn't allow the vast community of developers to profit from the software's inception. Also, this distribution model stands in stark contrast to open-source and free software, which usually can be freely distributed, modified and further redistributed. In my opinion, the freedom to tinker with any piece of software is extremely beneficial to its longevity, but also augments the overall quality of software with a similar purpose. Study of software freedom eventually led me to the work of Richard Matthew Stallman.
Richard Matthew Stallman (nicknamed RMS on Internet forums) is a freedom activist, Linux developer and programmer. The list of his achievements is so long that one could easily write a book (or two!) to try to cover his life. I personally hold RMS in very high regard and consider his Four Freedoms to be of equal importance to Isaac Asimov’s Three Laws of Robotics. However, when discussing software freedom, one should consider the possible extremes – lack of freedom (tyranny) and overabundance of freedom (anarchy). Neither extreme is particularly favorable, of course.
To briefly recapitulate Stallman’s Four Freedoms:
Points 2. 3. and 4. assume access to the program's source code. However, a piece of software has to fulfill all points to be considered truly free. While I agree with points 1. and 2., I'm somewhat on the fence with points 3. and 4.
Points 1. and 2. make sense to me, because the usual involvement of money in software distribution according to the commercial model taints the relationship between users and developers. The user suddenly becomes a regular customer, with expectations proportional to the money spent on the product. The relationship is made even more unhealthy by the fact that often the user has access to the software only after concluding the purchase. Therefore, he or she actually pays for the promise, rather than for the product. Back in the day we used to have demos, trial versions and shareware editions of software. While one could assume these were used to entice the prospective customer, at least he or she was allowed to sample the product before committing.
Now, this view of mine contradicts with my opinion on points 3. and 4. At least partially. It would of course be great if all software out there was free to use and modify, but that leaves a lot less room for business success stories. More so, it would force companies to always develop software from scratch, each their own. This is often the case in the games industry, though it makes little sense in many other fields. That is why software of potential commercial importance is typically released under a more permissive license, such as MIT, Apache2 or BSD.
To conclude, I believe Stallman’s Four Freedoms are of great import and should be applied to software when possible. However, it is also acceptable for companies to run businesses on open-source software, because it showcases the usefulness of certain programs and indirectly incentivizes companies to contribute back.


class WLAN – control built-in WiFi interfaces¶
This class provides a driver for WiFi network processors. Example usage:
import network
# enable station interface and connect to WiFi access point
nic = network.WLAN(network.STA_IF)
nic.active(True)
nic.connect('your-ssid', 'your-password')
# now use sockets as usual
Constructors¶
-
class
network.
WLAN
(interface_id)¶
Create a WLAN network interface object. Supported interfaces are
network.STA_IF
(station aka client, connects to upstream WiFi access
points) and network.AP_IF
(access point, allows other WiFi clients to
connect). Availability of the methods below depends on interface type.
For example, only STA interface may WLAN.connect() to an access point.
Methods¶
-
WLAN.
active
([is_active])¶ Activate (“up”) or deactivate (“down”) network interface, if boolean argument is passed. Otherwise, query current state if no argument is provided. Most other methods require active interface.
-
WLAN.
connect
(ssid=None, password=None, *, bssid=None)¶ Connect to the specified wireless network, using the specified password. If bssid is given then the connection will be restricted to the access-point with that MAC address (the ssid must also be specified in this case).
-
WLAN.
disconnect
()¶ Disconnect from the currently connected wireless network.
-
WLAN.
scan
()¶ Scan for the available wireless networks.
Scanning is only possible on STA interface. Returns list of tuples with the information about WiFi access points:
(ssid, bssid, channel, RSSI, authmode, hidden)
bssid is hardware address of an access point, in binary form, returned as bytes object. You can use ubinascii.hexlify() to convert it to ASCII form.
There are five values for authmode:
0 – open
1 – WEP
2 – WPA-PSK
3 – WPA2-PSK
4 – WPA/WPA2-PSK
and two for hidden:
0 – visible
1 – hidden
-
WLAN.
status
([param])¶ Return the current status of the wireless connection.
When called with no argument the return value describes the network link status. The possible statuses are defined as constants:
STAT_IDLE
– no connection and no activity,STAT_CONNECTING
– connecting in progress,STAT_WRONG_PASSWORD
– failed due to incorrect password,STAT_NO_AP_FOUND
– failed because no access point replied,STAT_CONNECT_FAIL
– failed due to other problems,STAT_GOT_IP
– connection successful.
When called with one argument param should be a string naming the status parameter to retrieve. Supported parameters in WiFI STA mode are:
'rssi'
.
-
WLAN.
isconnected
()¶ In case of STA mode, returns
True
if connected to a WiFi access point and has a valid IP address. In AP mode returnsTrue
when a station is connected. ReturnsFalse
otherwise.
-
WLAN.
ifconfig
([(ip, subnet, gateway, dns)])¶ Get/set IP-level network interface parameters: IP address, subnet mask, gateway and DNS server. When called with no arguments, this method returns a 4-tuple with the above information. To set the above values, pass a 4-tuple with the required information. For example:
nic.ifconfig(('<IP_ADDRESS>', '<IP_ADDRESS>', '<IP_ADDRESS>', '<IP_ADDRESS>'))
-
WLAN.
config
('param')¶
-
WLAN.
config
(param=value, ...) Get or set general network interface parameters. These methods allow to work with additional parameters beyond standard IP configuration (as dealt with by WLAN.ifconfig()). These include network-specific and hardware-specific parameters. For setting parameters, keyword argument syntax should be used, multiple parameters can be set at once. For querying, parameters name should be quoted as a string, and only one parameter can be queries at time:
# Set WiFi access point name (formally known as ESSID) and WiFi channel ap.config(essid='My AP', channel=11) # Query params one by one print(ap.config('essid')) print(ap.config('channel'))
Following are commonly supported parameters (availability of a specific parameter depends on network technology type, driver, and MicroPython port).
Parameter
Description
mac
MAC address (bytes)
essid
WiFi access point name (string)
channel
WiFi channel (integer)
hidden
Whether ESSID is hidden (boolean)
authmode
Authentication mode supported (enumeration, see module constants)
password
Access password (string)
dhcp_hostname
The DHCP hostname to use


Anantapur district to have 16 market yard chairpersons
Quota for women, BC, ST, SC and minorities finalised: Botcha
by Special CorrespondentThe State government has finalised the reservations for the nominated posts of market yard chairpersons in Anantapur district with district in-charge Minister Botcha Satyanarayana holding a prolonged session of discussions with MLAs and MLCs on Monday.
Meeting attended by BC Welfare Minister Malagundla Sanakara Narayana and other MLAs considered several names for the appointment of market yard chairpersons at the existing 13 yards and for the three more, that would be added soon.
“We are trying to have one chairperson for every Assembly constituency and there will be two additional ones at Kadiri and Guntakal,” said Mr. Botcha Satyanarayana.
‘Promise fulfilled’
The names of the constituencies and exact reservations decided for them, through draw of lots, will be announced by the District Collector later.
However, it was announced that the district would have 4 Other-Caste(OC) women, one each from BC, ST, SC and minorities, and similarly, 4 OC men, one each from BC, SC, ST and minorities for the post.
This, they said, was as per the pre-poll promise made by the YSR Congress Party with regard to nominated posts - 50% for women, BC, SC, ST, minorities, Mr. Satyanarayana added.
Market intervention
The purchase price of groundnut has fallen much below the Minimum Support Price of ₹5,090 a quintal and it was trading at ₹3,700 to ₹4,200 a quintal and similar was the case with maize. When asked about what the government was doing to protect the farmers,
Mr. Botcha Satyanarayana said he had spoken to Chief Minister and market intervention was being planned.
The State has set up a Market Intervention Fund of ₹3,000 and the Markfed would be asked to open purchase centres in the district, he added.


Mother Teresa
Here is a time line of Mother Teresa
- Mother Teresa grew famous for humbly ministering to lepers, the homeless and the poorest of the poor in the slums of Calcutta, India. She was procalimed a saint by the Catholic Church in 2016.
- She changed her name to Mother Teresa. Mother Teresa was dedicated to taking care of the poor and helping the needy and She devoted her life to taking care of the sick and anyone who needed love. ... Mother Teresa made a huge impact on the world we live in. In the 1950s, she began helping those with leprosy
- Saint Teresa of Calcutta (aka Mother Teresa) was a Catholic Sister. When she was a young woman she made lifelong promises of poverty, chastity, and obedience. She was never married, and could never marry due to her religious promises.
- She begged for food and supplies to help the poor. She also began teaching children how to care for themselves. Sister Teresa saw a need for children to be educated so she taught them lessons by writing in the dirt because they had no books and nothing to write with.
- The process of canonisation requires the documentation of a miracle resulting from the intercession of the prospective saint. In 2002 the Vatican recognised as a miracle the healing of a tumour in the abdomen of Monica Besra, an Indian woman, after the application of a locket containing Teresa's picture.
"Peace begins with a smile.. Kind words can be short and easy to speak, but their echoes are truly endless. Spread love everywhere you go. Let no one ever come to you without leaving happier.""
If you want to know more about Mother Teresa Click here


John Legend was just named Sexiest Man Alive for 2019 – and we concur!
by Bashiera Parker (@bparks_)Cape Town – John Legend was just named People's Sexist Man Alive, and we couldn't think of a better recipient to take over the title from Idris Elba.
"I was excited, but I was a little scared at the same time because it's a lot of pressure," John told PEOPLE. "Everyone's going to be picking me apart to see if I'm sexy enough to hold this title. I'm [also] following Idris Elba, which is not fair and is not nice to me!"
SEE JOHN SIZZLE ON THE COVER HERE:
In his cover story, John spoke about his career, the lessons he learned from his parents and his family with Chrissy Teigen. "I'm so proud that I have a wife and two kids I'm so in love with," he said.
Chrissy, of course, tweeted just before the news broke. "I have big news and it's killing me I can't say it and it's not a baby," she wrote. With 'in love' emojis, she later shared the news. "#EGOTPSMA," she wrote, which of course is a nod to John being an Emmy, Grammy, Oscar, Tony and now, People's Sexiest Man Alive recipient.
"Updated bio," she later tweeted. It now reads, "De-motivational speaker" and "currently sleeping with people's sexiest man alive".
The All of Me singer was also congratulated by his fellow coaches on The Voice. "Ladies and gentlemen, the man, the myth, the legend!" Blake Shelton said, announcing John's latest accomplishment before giving his a pair of shorts with the words VEGOTSMA on it. We're guessing the 'v' stands for the Voice.
With a sneak peek of what's to come in their latest issue, People also shared a clip of John' Sexiest Man Alive' Legend reading tweets about him in his sultriest voice.
We concur, People, we concur.
We're just going to leave this here...