>>> import pywt
>>> def format_array(a):
... """Consistent array representation across different systems"""
... import numpy
... a = numpy.where(numpy.abs(a) < 1e-5, 0, a)
... return numpy.array2string(a, precision=5, separator=' ', suppress_small=True)
Ok, let’s create a sample WaveletPacket:
>>> x = [1, 2, 3, 4, 5, 6, 7, 8]
>>> wp = pywt.WaveletPacket(data=x, wavelet='db1', mode='sym')
The input data and decomposition coefficients are stored in the WaveletPacket.data attribute:
>>> print wp.data
[1, 2, 3, 4, 5, 6, 7, 8]
Nodes are identified by paths. For the root node the path is '' and the decomposition level is 0.
>>> print repr(wp.path)
''
>>> print wp.level
0
The maxlevel, if not given as param in the constructor, is automatically computed:
>>> print wp['ad'].maxlevel
3
>>> x = [1, 2, 3, 4, 5, 6, 7, 8]
>>> wp = pywt.WaveletPacket(data=x, wavelet='db1', mode='sym')
First check what is the maximum level of decomposition:
>>> print wp.maxlevel
3
and try accessing subnodes of the WP tree:
1st level:
>>> print wp['a'].data [ 2.12132034 4.94974747 7.77817459 10.60660172] >>> print wp['a'].path a2nd level:
>>> print wp['aa'].data [ 5. 13.] >>> print wp['aa'].path aa3rd level:
>>> print wp['aaa'].data [ 12.72792206] >>> print wp['aaa'].path aaaUps, we have reached the maximum level of decomposition and got an IndexError:
>>> print wp['aaaa'].data Traceback (most recent call last): ... IndexError: Path length is out of range.
Now try some invalid path:
>>> print wp['ac']
Traceback (most recent call last):
...
ValueError: Subnode name must be in ['a', 'd'], not 'c'.
which just yielded a ValueError.
WaveletPacket object is a tree data structure, which evaluates to a set of Node objects. WaveletPacket is just a special subclass of the Node class (which in turn inherits from the BaseNode).
Tree nodes can be accessed using the obj[x] (Node.__getitem__()) operator. Each tree node has a set of attributes: data, path, node_name, parent, level, maxlevel and mode.
>>> x = [1, 2, 3, 4, 5, 6, 7, 8]
>>> wp = pywt.WaveletPacket(data=x, wavelet='db1', mode='sym')
>>> print wp['ad'].data
[-2. -2.]
>>> print wp['ad'].path
ad
>>> print wp['ad'].node_name
d
>>> print wp['ad'].parent.path
a
>>> print wp['ad'].level
2
>>> print wp['ad'].maxlevel
3
>>> print wp['ad'].mode
sym
>>> x = [1, 2, 3, 4, 5, 6, 7, 8]
>>> wp = pywt.WaveletPacket(data=x, wavelet='db1', mode='sym')
We can get all nodes on the particular level either in natural order:
>>> print [node.path for node in wp.get_level(3, 'natural')]
['aaa', 'aad', 'ada', 'add', 'daa', 'dad', 'dda', 'ddd']
or sorted based on the band frequency (freq):
>>> print [node.path for node in wp.get_level(3, 'freq')]
['aaa', 'aad', 'add', 'ada', 'dda', 'ddd', 'dad', 'daa']
Note that WaveletPacket.get_level() also performs automatic decomposition until it reaches the specified level.
>>> x = [1, 2, 3, 4, 5, 6, 7, 8]
>>> wp = pywt.WaveletPacket(data=x, wavelet='db1', mode='sym')
Now create a new Wavelet Packet and set it’s nodes with some data.
>>> new_wp = pywt.WaveletPacket(data=None, wavelet='db1', mode='sym')
>>> new_wp['aa'] = wp['aa'].data
>>> new_wp['ad'] = [-2., -2.]
For convenience, Node.data gets automatically extracted from the Node object:
>>> new_wp['d'] = wp['d']
And reconstruct the data from the aa, ad and d packets.
>>> print new_wp.reconstruct(update=False)
[ 1. 2. 3. 4. 5. 6. 7. 8.]
If the update param in the reconstruct method is set to False, the node’s data will not be updated.
>>> print new_wp.data
None
Otherwise, the data attribute will be set to the reconstructed value.
>>> print new_wp.reconstruct(update=True)
[ 1. 2. 3. 4. 5. 6. 7. 8.]
>>> print new_wp.data
[ 1. 2. 3. 4. 5. 6. 7. 8.]
>>> print [n.path for n in new_wp.get_leaf_nodes(False)]
['aa', 'ad', 'd']
>>> print [n.path for n in new_wp.get_leaf_nodes(True)]
['aaa', 'aad', 'ada', 'add', 'daa', 'dad', 'dda', 'ddd']
Let’s create a sample data:
>>> x = [1, 2, 3, 4, 5, 6, 7, 8]
>>> wp = pywt.WaveletPacket(data=x, wavelet='db1', mode='sym')
First, start with a tree decomposition at level 2. Leaf nodes in the tree are:
>>> dummy = wp.get_level(2)
>>> for n in wp.get_leaf_nodes(False):
... print n.path, format_array(n.data)
aa [ 5. 13.]
ad [-2. -2.]
da [-1. -1.]
dd [ 0. 0.]
>>> node = wp['ad']
>>> print node
ad: [-2. -2.]
To remove a node from the WP tree, use Python’s del obj[x] (Node.__delitem__):
>>> del wp['ad']
The leaf nodes that left in the tree are:
>>> for n in wp.get_leaf_nodes():
... print n.path, format_array(n.data)
aa [ 5. 13.]
da [-1. -1.]
dd [ 0. 0.]
And the reconstruction is:
>>> print wp.reconstruct()
[ 2. 3. 2. 3. 6. 7. 6. 7.]
Now restore the deleted node value.
>>> wp['ad'].data = node.data
Printing leaf nodes and tree reconstruction confirms the original state of the tree:
>>> for n in wp.get_leaf_nodes(False):
... print n.path, format_array(n.data)
aa [ 5. 13.]
ad [-2. -2.]
da [-1. -1.]
dd [ 0. 0.]
>>> print wp.reconstruct()
[ 1. 2. 3. 4. 5. 6. 7. 8.]
Note
This section is for demonstration of pywt internals purposes only. Do not rely on the attribute access to nodes as presented in this example.
>>> x = [1, 2, 3, 4, 5, 6, 7, 8]
>>> wp = pywt.WaveletPacket(data=x, wavelet='db1', mode='sym')
At first the wp’s attribute a is None
>>> print wp.a
None
Remember that you should not rely on the attribute access.
At first attempt to access the node it is computed via decomposition of it’s parent node (the wp object itself).
>>> print wp['a']
a: [ 2.12132034 4.94974747 7.77817459 10.60660172]
Now the wp.a is set to the newly created node:
>>> print wp.a
a: [ 2.12132034 4.94974747 7.77817459 10.60660172]
And so is wp.d:
>>> print wp.d
d: [-0.70710678 -0.70710678 -0.70710678 -0.70710678]


From the Depths/Next Victim Split LP
From the Depths have just released a split LP with Next Victim, the most haunting band in Poland. These new From the Depths songs are darker and fiercer than their debut album; the Next Victim tracks are at once hypnotic and heart-rending. Both bands&srquo; recordings are available for free downloading in their entirety on this website.
The LP has been released in Europe by the famous Polish punk label Nikt Nic Nie Wie along with Zaraza Productions and Scream Records; it will be available in the US shortly through Stickfigure distribution.
In addition, in February, From the Depths will tour the West Coast of the US with the amazing Austrian hardcore band Plague Mass, whose new LP CrimethInc. just helped release. Hurry out to see these bands—this is probably your last chance.


Our Inspirations
Padmashree Dr. D. Y. Patil, Governor of Bihar State, Chancellor, Dr. D.Y. Patil University , Founder President, Dr. D.Y. Patil Pratishthan, Mumbai, Pune, Kolhapur
I believe in developing responsible citizenship and social responsibility by perception and example. We provide a friendly and supportive environment that not only enhance the self esteem of individual but also challenges each to develop understanding skills, abilities and talents to the full. We expect and demand high standards from all our students and staff and we celebrate the achievements of all Dr. D.Y. Patil Junior College values. Its past builds upon its strengths, approaching new heights as it continuously looks to the future.
Shri B.D. Kotkar, Founder President, Shikshan Maharshi Dr. D.Y. Patil Shikshan Sanstha
Dr. D.Y. Patil Junior College values the right of every individual to realize his or her potential through the aquisition of knowledge, skills and values caring supportive environment. I believe in upholding the freedom of each student to think, create and discover based on true understandings of their cultures and traditions, whilst respecting the cultures and spiritual insights of others. We promote equal opportunities for all our students irrespective of gender and of religious, social or ethnic background.
Mrs. Kusum B. Kotkar, Chairman, Shikshan Maharshi Dr. D.Y. Patil Shikshan Sanstha
Dr. D.Y. Patil Junior College has been modeled on the best practices of the modern schools in and around the country. The curriculum helps the students to have intellectual as well as rounded personality development of the child. Dr. D. Y. Patil Junior College attracts students from various places and train them to aspire to become the future leaders realizing their responsibilities towards others. Students here get exposed to a broad range of culture, beliefs which help them to show tolerance at adulthood. Dr. D. Y. Patil Junior College is an international ambitious, outward looking modern school which also emphasis on discipline, courtesy, honesty as their virtues to make these the strength of it's students.
Wishing you all the best!
Shri. Abhay B. Kotkar, Vice President, Shikshan Maharshi Dr. D.Y. Patil Shikshan Sanstha
Dr. D. Y. Patil Junior College aims in imparting Quality education to children as we believe that school is a foundation where moral and ethical standards should be inculcated among children. We at Dr. D. Y. Patil Junior College School strive to practice it by providing them state of the art facilities & opportunities and develop children into socially responsible citizens. Other courses run by Shikshan Maharshi Dr. D. Y. Patil Shikshan Sanstha are Dr. D. Y. Patil College of Arts, Science & Commerce (Affiliated to University of Pune) & Dr. D. Y. Patil Centre For Management and Research (MBA)(Approved by AICTE, Affiliated to University of Pune and Recognized by Government of Maharashtra). The Sanstha provides education from KG to PG


--- layout: page title: Hi, I am Preyansh subtitle: use-site-title: true ---
I am a Software Engineer at Google, working in the Payments Platform team. I graduated with Honors from the Department of Computer Science and Applied Mathematics at Indraprastha Institute of Information Technology Delhi (IIITD). My bachelor thesis was on graph neural networks for subgraph isomorphism detection, supervised by Dr. Vikram Goyal .
My research interests lie in the application of graph representation learning and its cross-section with natural language processing tasks. I am always open to collaboration. Please email me at preyansh17176[at]iiitd[dot]ac[dot]in. I love to read about any bright ideas the CS community is coming up with every day.
Apart from my academic interests, I am interested in competitve programming . Hoping to reach the Master title one day 😇. I also like to play chess .


MMA SQUARED: Bringing back the caption contest, because it’s Greg Hardy fight week
by Chris RiniIn the early days of MMA Squared we ran a Friday Caption Contest (the FCC), and some of your submissions were legit hilarious. Ply your trade in the comments section.
A tip of the pen to BE commenter Fedor’s Sweater who won the first ever caption contest back in December 2018. Maybe I’ll just run this same image every Greg Hardy fight week.
A commenter yesterday asked if I’d do a shirt of print of one of these cartoons. I’ll talk to cottonbureau about doing something later this month. I’ve selected two drawings to choose from, one of Israel Adesanya’s comments that ‘Jon Jones looks like a Dorito on chopsticks’ or Jorge Masvidal baptizing Ben Askren. Let me know which you like and I’ll get on it. Thanks for all your support, this is a blast.
Take care of yourself and I’ll talk to you next week.
Chris


--- layout: page title: Resources description: Useful resources for this workshop background: '/img/bg-resources.jpg' ---
This workshop will feature three synchronous sessions that you are required to attend. In each of these sessions, you are expected to share assignments and deliverables that will help you progress through the podcast production cycle. Assignments are due every Friday before the live session on Sunday.
Each session contains Three Tiers of Success. Tier 1 is the minimum amount of work that is required for each session, but be forewarned that only meeting minimum requirements could cause you to fall behind. Tier 2 requirements indicate that you are progressing at sustainable pace. Tier 3 requirements means that you're progressing at an excellent pace and will most likely finish your production on time.
Podcasting production uses some very specific jargon which may be confusing at first. Take a look at the list below to see some terminology often repeated in the industry and this workshop.
How to build a podcast: From the makers of Criminal, Phoebe Judge and Lauren Spohrer.
NPR Storytelling Project Blueprint 2.0: A how-to document from the folks at NPR.
Imagining the Story: How to tell a story with Rob Rosenthal.
Podcasting Basics: A multi-part series covering the basics of podcasting.
Self-owned devices: Use your own devices such as smartphones, microphones, and audio recorders.
Student Tech Loan Program: This program at the UW Seattle campus allows students to rent audio equipment.
Odegaard Library Sound Studio: The Sound Studio is a space to conduct audio recordings.
Media Arcade: The Media Arcade is an audio and video viewing and makerspace open to UW students, staff and faculty.
Audacity: Audacity is a free and open platform for editing audio files.
Reaper: Reaper is a digital audio workstation and editing platform.


{% set title='Home' %} {% extends "main_template.html" %} {% block content %}
This Web Application is a demo of Artificial Intelligence's Multilayer Perceptron Neural Networks project, Spring 2020.
Ahmad Salimi
Computer Engineering Department
Sharif University of Technology


Django The Hard Way
Posted: | More posts about django python tutorial
There are a lot of tutorials out there on Django and the official documentation also has one. For this post, I decided not to go through the typical route on how to get started with django. Let's 'ignore' the best practices and focus on what actually work and hopefully we can learn something along the way. So let's get started by downloading Django itself from the website.
$ wget -o django.tar.gz https://www.djangoproject.com/download/1.5.1/tarball/ $ tar xzf django.tar.gz $ ls Django-1.5.1 django.tar.gz $ ls Django-1.5.1/ AUTHORS docs INSTALL MANIFEST.in README.rst setup.cfg tests django extras LICENSE PKG-INFO scripts setup.py
What we're getting is called a Python package that supposed to be installed. But we're not going to install it, instead let just take what we really need. Take out the django
directory and move to our current directory.
$ mv Django-1.5.1/django .
One thing we should understand when get started with Django is that it's just Python. In Python the most important thing is to make sure we can import the module we want to use. Let's try to import django
.
$ python Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56) [GCC 4.4.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import django >>> django <module 'django' from 'django/__init__.py'>
This is great, we 'have' django now so let's build some application with it. In any computer program, it's important to know what is the entry point to that program. In C program we have the main()
function for example, in Java you specify a class for the JVM to load and that class must have the static main()
method. So what is the entry point to django application ? There will be at least 2 entry points to django application. First let's called command line entry point (CLI) and second the WSGI entry point. Let's ignore what is WSGI and focus on executing django application from command line. This is the minimal python script that you can use to invoke django application:-
$ cat main.py from django.core.management import execute_from_command_line execute_from_command_line()
The filename can be anything but let's call it main.py
. If you run that script with python, it will display a list of available sub-commands, along with some help message.
$ python main.py Usage: main.py subcommand [options] [args] ... [django] cleanup compilemessages createcachetable dbshell ... runserver
The sub-command we're interested with is the runserver
. That will start a process that listen at port 8000 and ready to serve HTTP request. People call it web server, quite similar to that well known Apache. Of course this web server that come with Django is not meant to replace Apache and far from usable outside of this local machine but that will be in another post. Let's try to run the runserver
command:-
$ python main.py runserver
You'll get a message like this:-
ImproperlyConfigured: Requested setting USE_I18N, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
So something not right, in order for Django to start up, you have to tell it how to configure itself. You have to provide some settings. The settings itself just another python module (there's another way to provide settings) which mean the module must be able to be imported from the python script that we use to run django. Let's create the settings module, name it settings.py
(it can be anything):-
$ touch settings.py $ python >>> import settings >>> settings <module 'settings' from 'settings.py'>
Now that we have settings module in place, let's modify our main.py
:-
$ cat main.py import os from django.core.management import execute_from_command_line os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' execute_from_command_line()
Above, we hardcode the value of DJANGO_SETTINGS_MODULE
environment variables to our settings module. Just like any environment variables, we can also specify it when we run our script:-
$ DJANGO_SETTINGS_MODULE=settings python main.py
The result would be the same. Specifying the environment variables value on the command line without hardcoding allow us to specify different settings to our app with having to modify the code. That's one of the reason why django choose to use environment variables to store pointer to the settings. One typical usecase when you want to have different settings for development and production. Let's continue with our app:-
$ python main.py runserver ImproperlyConfigured: The SECRET_KEY setting must not be empty.
Django already come with list of default settings but apparently for this one, you have to specify it yourself. Let's ignore first what the purpose of this SECRET_KEY
. So fix our settings module to have that:-
$ cat settings.py SECRET_KEY = "1+)O49,>}5!$+ 43*PN+2+=(2S'W*0^1_|76n{_"
Run runserver
again:-
$ python main.py runserver Validating models... 0 errors found April 11, 2013 - 16:34:29 Django version 1.5.1, using settings 'settings' Development server is running at http://<IP_ADDRESS>:8000/ Quit the server with CONTROL-C.
Now django happily start the server. Let's try to access it:-
$ curl http://localhost:8000/ Traceback (most recent call last): File "/usr/lib/python2.6/wsgiref/handlers.py", line 93, in run self.result = application(self.environ, self.start_response) File "/home/kamal/python/dthw/django/core/handlers/wsgi.py", line 255, in __call__ response = self.get_response(request) File "/home/kamal/python/dthw/django/core/handlers/base.py", line 85, in get_response urlconf = settings.ROOT_URLCONF File "/home/kamal/python/dthw/django/conf/__init__.py", line 54, in __getattr__ return getattr(self._wrapped, name) AttributeError: 'Settings' object has no attribute 'ROOT_URLCONF' [11/Apr/2013 16:37:55] "GET / HTTP/1.1" 500 59
The reason django gave you an error because you haven't tell yet django what to serve from your application. You can do this by providing a mapping between a set of url pattern to python function that will be called when the pattern match. Create a new python module, name it urls.py
(once again, the name can be anything).
$ cat urls.py from django.http import HttpResponse from django.conf.urls import patterns, url def hello_world(request): return HttpResponse('Hello world') urlpatterns = patterns('', url(r'^$', hello_world), )
The module must have a name called urlpatterns
that having a reference to the return value of function django.conf.urls.patterns
. You call the function by passing 2 or more parameters, the first parameter can just be an empty string (explanation should be in another post), the rest of the parameters should be a tuple of 2 items - (pattern, function). It's recommended however to wrap the tuple through django provided function url()
as it will provide you with more features that you will need as your application grow. The function can be a direct reference to function object (like above) or just a string of valid import path to the function. In the later case, django will try to import the function and then call it.
Once above is done, you can hook it into settings.py
which now should look like:-
$ cat settings.py SECRET_KEY = "1+)O49,>}5!$+ 43*PN+2+=(2S'W*0^1_|76n{_" ROOT_URLCONF = 'urls'
`ROOT_URLCONF` should contain valid import path to our module that define the url mapping. Try to `runserver` and access our app again:- $ python manage.py runserver
On another console:-
$ curl http://localhost:8000/
Unfortunately django still come up with 500 error. This is because django refuse to run our function through the development server with DEBUG settings set to False. This is to avoid you from running this crippled web server for production application. You should use Apache with mod_wsgi
or any other production ready wsgi server out there. So let's fix the settings:-
$ cat settings.py SECRET_KEY = "1+)O49,>}5!$+ 43*PN+2+=(2S'W*0^1_|76n{_" ROOT_URLCONF = 'urls' DEBUG = True
Now running the runserver
and try accessing http://localhost:8000/ through browser or using curl will give the "Hello world" string. The takeout from this is that all the django need is just a function that it can call given a particular url. From that function you can do whatever you want as long as you return a valid value that is an instance of django.http.HttpResponse
or it's subclass. Another important thing to know is that most of the settings require you to provide a valid python import path that django can use to import the required module. The module itself can be anywhere and django does not restrict you to any particular structure. As long as you can do import somestuff
, that would be fine. How to make sure you module can be imported will be a point of another post though.
Namespace
So far what we have been doing is defining python module in the same directory as the script that executing our application (main.py
). The is the easiest to get started because nothing we have to do in order for python to be able to import our module. Most of the time python can import module or package defined in the same directory of the executing script. In our case we defined settings.py
and in main.py
it's importable as settings
. Similar goes to urls.py
. These (settings, urls) however are too generic name that can potentially conflict with other python modules once our app grow and we need to use more python libraries than just django. Python has [namespace] to solve this so why not we start using it before getting too deep with our app.
Create a new directory called myapp
(or anything you wish) in the same directory containing main.py
, settings.py
and urls.py
.
$ mkdir myapp $ ls django main.py myapp settings.py urls.py
Then move settings.py
and urls.py
into the new directory.
$ ls django main.py myapp $ ls myapp settings.py urls.py
main.py
should remain outside as it is the entry point to our app and it will be much easier if it is not in the containing app. This way we can phrase it as main.py
will call myapp
, otherwise if we put main.py
in myapp
, then myapp
has to call itself. While technically possible it will be much harder to explain. Django has done this in the beginning and has since corrected it in last few latest versions. In order for a directory to be recognised as valid python package (namespace), you have to provide a file named __init__.py
. Most of the time it can be empty.
$ touch myapp/__init__.py
Now we have to fix our settings a bit to reflect the new location of our modules. It should look like this:-
$ cat myapp/settings.py SECRET_KEY = "1+)O49,>}5!$+ 43*PN+2+=(2S'W*0^1_|76n{_" ROOT_URLCONF = 'myapp.urls' DEBUG = True
main.py
also need fixing:-
$ cat main.py import os from django.core.management import execute_from_command_line os.environ['DJANGO_SETTINGS_MODULE'] = 'myapp.settings' execute_from_command_line()
Views
So we know that django only need to call our function for any matched url and we defined that function in the same module we defined the url mapping - urls.py
. This is fine for small app but splitting it into separate module is a good practice. So urls.py
can just contain url mapping instead of mixing it with our application logic. Let's create new module to store our app function. We call it views.py
but you can choose any name you like.
$ cat myapp/views.py from django.http import HttpResponse def hello_world(request): return HttpResponse('Hello world')
Inside urls.py
we import the views module and hook it into our url pattern:-
from django.conf.urls import patterns, url from myapp.views import hello_world urlpatterns = patterns('', url(r'^$', hello_world), )
Models
Now come the hardest part to explain because of some 'hardcoding' django did to implement the functionality. Unlike views, url config or settings, the name for the module that contain models definition was hardcoded in django - it want you to name it as models.py
. Django also use models.py
to imply some other parts of the framework. Let's define our models:-
$ cat myapp/models.py from django.db import models class Customer(models.Models): name = models.CharField(max_length=255)
After defining models, you have to tell django the package that contain this models.py
module. Our settings should look like:-
$ cat myapp/settings.py $ cat myapp/settings.py SECRET_KEY = "1+)O49,>}5!$+ 43*PN+2+=(2S'W*0^1_|76n{_" ROOT_URLCONF = 'myapp.urls' DEBUG = True INSTALLED_APPS = ('myapp',)
In short, what you define in INSTALLED_APPS
basically just an import path to python package that contain models.py
file. You can put all your models definition for your application in a single models.py
but you maybe want to split it into multiple apps for better design. A common use case is when the apps
can actually being reused in other project as well. It also not necessarily must be in the same directory as your current application. What important is it can be import by the python interpreter running your application. This will always true to third party libraries that you install such as from PyPI since that libraries will be installed in some other place on your system, not in your current project directory.
Since we started to use db, we must define our database credentials settings:-
$ cat myapp/settings.py SECRET_KEY = "1+)O49,>}5!$+ 43*PN+2+=(2S'W*0^1_|76n{_" ROOT_URLCONF = 'myapp.urls' DEBUG = True INSTALLED_APPS = ('myapp',) DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': 'myapp.db', } }
Once we configured settings.INSTALLED_APPS
to have our app defined, we can run syncdb
to let django create necessary database tables to store our models data:-
$ python main.py syncdb Creating tables ... Creating table myapp_customer Installing custom SQL ... Installing indexes ... Installed 0 object(s) from 0 fixture(s)


Scales per-example losses with sample_weights and computes their average.
tf.compat.v1.nn.compute_average_loss
tf.compat.v2.nn.compute_average_loss
tf.nn.compute_average_loss( per_example_loss, sample_weight=None, global_batch_size=None )
Usage with distribution strategy and custom training loop:
with strategy.scope(): def compute_loss(labels, predictions, sample_weight=None): # If you are using a `Loss` class instead, set reduction to `NONE` so that # we can do the reduction afterwards and divide by global batch size. per_example_loss = tf.keras.losses.sparse_categorical_crossentropy( labels, predictions) # Compute loss that is scaled by sample_weight and by global batch size. return tf.compute_average_loss( per_example_loss, sample_weight=sample_weight, global_batch_size=GLOBAL_BATCH_SIZE)
per_example_loss
: Per-example loss.sample_weight
: Optional weighting for each example.global_batch_size
: Optional global batch size value. Defaults to (size of
first dimension of losses
) * (number of replicas).Scalar loss value.


def __init__(self, **params):
from catalyst.contrib.registry import Registry
config_ = params.copy()
self.strategies: List[ExplorationStrategy] = []
self.probs = []
for key, expl in config_.items():
for params_ in params:
exploration_name = params_.pop("exploration")
probability = params_.pop("probability")
strategy_fn = EXPLORATION.get(exploration_name)
if issubclass(strategy_fn, EpsilonGreedy):
assert isinstance(env.action_space, Discrete)


$CMS_TRIM(level:4)$
$CMS_IF(isSet(schedule))$
$-- make "schedule" (ScheduleEntryControl) printable as "scheduleTaskResults" --$
$CMS_SET(RunState, class("de.espirit.firstspirit.access.schedule.RunState"))$
$CMS_SET(LOG_LEVELS, { "FATAL": "Consolidated Fatal Errors", "ERROR": "Consolidated Errors", "WARN": "Consolidated Warnings" })$
$CMS_SET(LOG_PATTERN, class("java.util.regex.Pattern").compile("^(" + LOG_LEVELS.keySet.toString("|") + ")\\s+[^(]+(.*)$"))$
$CMS_SET(downloadUrlPrefix, #global
.requireSpecialist(class("de.espirit.firstspirit.agency.LegacyModuleAgent").TYPE)
.getGlobalWebAppUrl(class("de.espirit.firstspirit.agency.GlobalWebAppId").WEBMON.globalId)
+ "/Monitoring/do.TailScheduleLogServlet?download=true"
+ "&project=" + schedule.scheduleEntry.project.id
+ "&schedule=" + schedule.scheduleEntry.id
+ "&control=" + schedule.id
+ "&task="
)$
$CMS_SET(scheduleTaskResults, schedule.state.taskResults
.filter(r -> r.state != RunState.RUNNING)
.map(result -> {
"state": result.state.name(),
"color": {
RunState.SUCCESS: "green",
RunState.NOT_STARTED: "gray",
RunState.ERROR: "red",
RunState.FINISHED_WITH_ERRORS: "orange"
}.get(result.state),
"name": result.task.name.convert2,
"download": if(result.state != RunState.NOT_STARTED, downloadUrlPrefix + schedule.state.taskResults.indexOf(result)),
"taskResults": result,
"problems": []
+ if(result.warningCount == 0, [], if(result.warningCount == 1, "1 warning", result.warningCount + " warnings"))
+ if(result.errorCount == 0, [], if(result.errorCount == 1, "1 error", result.errorCount + " errors"))
+ if(result.fatalErrorCount == 0, [], if(result.fatalErrorCount == 1, "1 fatal error", result.fatalErrorCount + " fatal errors"))
}
)
)$
$CMS_END_IF$
$CMS_SET(elementDisplayName)$
$CMS_IF(isSet(element))$
$CMS_IF(element.isDeleted())$
$CMS_VALUE(element.displayName)$
$CMS_ELSE$
$CMS_VALUE(element.displayName)$
$CMS_END_IF$
$CMS_END_IF$
$CMS_END_SET$
$CMS_IF("SCHEDULE_ERROR" == mailType)$
$-- a schedule ran into an error --$
$CMS_SET(headline)$
Execution of task $CMS_VALUE(schedule.scheduleEntry.name.convert2)$ failed
$CMS_END_SET$
$CMS_SET(intro)$
The execution of the task $CMS_VALUE(schedule.scheduleEntry.name.convert2)$ was unsuccessful.
This means, one or more actions returned errors.
Please find below the status of the individual actions of the task along with their results.
If you click on the action titles you can download the whole logfile for the action (you might have
to log in to FirstSpirit in order to complete the download).
If you are unable to resolve the issue with the information provided in this mail please contact the
e-Spirit Technical Support for further assistance.
$CMS_END_SET$
$CMS_ELSIF("RELEASED_NO_DEPLOYMENT" == mailType)$
$CMS_SET(headline)$
FirstSpirit Release successfully completed
$CMS_END_SET$
$CMS_SET(intro)$
The execution of the release for page $CMS_VALUE(elementDisplayName)$ was successful.
If you want to publish the content into Spryker, you have to start the release workflow with the action "Page Publication"
or start the full publication via the actions menu in the ContentCreator.
$CMS_END_SET$
$CMS_ELSIF("RELEASED_DEPLOYED_SUCCESS" == mailType)$
$CMS_SET(headline)$
FirstSpirit Release and Publication successfully completed
$CMS_END_SET$
$CMS_SET(intro)$
The release for page $CMS_VALUE(elementDisplayName)$ and execution of the publication
task $CMS_VALUE(schedule.scheduleEntry.name.convert2)$ was successful.
This means, all actions finished and your content has been published to Spryker.
Please find below the status of the individual actions of the publication task along with their results.
$CMS_END_SET$
$CMS_ELSIF("RELEASED_DEPLOYED_ERROR" == mailType)$
$CMS_SET(headline)$
FirstSpirit Publication failed
$CMS_END_SET$
$CMS_IF(!isSet(schedule))$
$CMS_SET(intro)$
Your page $CMS_VALUE(elementDisplayName)$ was successful released, however the execution of the publication
task could not be completed.
Please specify the Publication task in the project component configuration.
$CMS_END_SET$
$CMS_ELSE$
$CMS_SET(intro)$
Your page $CMS_VALUE(elementDisplayName)$ was successful released, however the execution of the publication
task $CMS_VALUE(schedule.scheduleEntry.name.convert2)$ could not be completed.
This means, one or more of the actions returned errors and your content has not been published to Spryker.
A copy of the information below was sent to $CMS_VALUE(schedule.scheduleEntry.email)$.
$CMS_END_SET$
$CMS_END_IF$
$CMS_ELSIF("DELETED_NO_DEPLOYMENT" == mailType)$
$CMS_SET(headline)$
FirstSpirit Page Deletion was successful
$CMS_END_SET$
$CMS_SET(intro)$
The page $CMS_VALUE(elementDisplayName)$ was successfully deleted. If you want to delete the content from Spryker,
you have to start the full publication via the actions menu in the ContentCreator.
$CMS_END_SET$
$CMS_ELSIF("DELETED_DEPLOYED_SUCCESS" == mailType)$
$CMS_SET(headline)$
FirstSpirit Page Deletion and Publication were successfully completed
$CMS_END_SET$
$CMS_SET(intro)$
The execution of the deletion with publication task $CMS_VALUE(schedule.scheduleEntry.name.convert2)$ for
page "$CMS_VALUE(element.displayName)$" was successful.
This means, all actions have been finished and your content has been deleted from Spryker.
Please find below the status of the individual actions of the task along with their results.
If you click on the action titles you can download the whole logfile for the action (you might have to
log in to FirstSpirit in order to complete the download).
$CMS_END_SET$
$CMS_ELSIF("DELETED_DEPLOYED_ERROR" == mailType)$
$CMS_SET(headline)$
FirstSpirit Page Deletion was successful, but the Publication failed
$CMS_END_SET$
$CMS_SET(intro)$
The page $CMS_VALUE(elementDisplayName)$ was successfully deleted, however the execution of the publication
task could not be completed.
$CMS_IF(!isSet(schedule))$
Please specify the Publication task in the project component configuration.
$CMS_ELSE$
The execution of the publication task $CMS_VALUE(schedule.scheduleEntry.name.convert2)$ was unsuccessful.
This means, one or more of the actions returned errors and your content has not been published to Spryker.
A detailed information email was sent to $CMS_VALUE(schedule.scheduleEntry.email)$.
$CMS_END_IF$
$CMS_END_SET$
$CMS_END_IF$
$CMS_IF(isSet(Mailer))$
$CMS_SET(void, Mailer.subject(#global.project.name + " - " + headline.toString.trim))$
$CMS_END_IF$
$CMS_SET(styles, {
"background": "#F0F0F0",
"baseSize": 24,
"font": "font-family: Helvetica, Arial, sans-serif"
})$
$CMS_SET(cssContent)$$CMS_TRIM(level:4)$
background-color: #ffffff;
padding: $CMS_VALUE(styles.baseSize)$px;
$CMS_END_TRIM$$CMS_END_SET$
$CMS_SET(cssCopyTitle)$$CMS_TRIM(level:4)$
$CMS_VALUE(styles.font)$;
color: #605D7C;
font-size: $CMS_VALUE(styles.baseSize * 0.75)$px;
$CMS_END_TRIM$$CMS_END_SET$
$CMS_SET(cssCopy)$$CMS_TRIM(level:4)$
$CMS_VALUE(styles.font)$;
font-size: 14px;
line-height: 20px;
color: #333333;
$CMS_END_TRIM$$CMS_END_SET$
$CMS_SET(cssFooter)$$CMS_TRIM(level:4)$
$CMS_VALUE(styles.font)$;
color: #AAAAAA;
padding-left: $CMS_VALUE(styles.baseSize)$px;
padding-right: $CMS_VALUE(styles.baseSize)$px;
font-size: $CMS_VALUE(styles.baseSize/2)$px;
line-height: $CMS_VALUE(styles.baseSize * 0.75)$px;
text-align:center;
height: 35px;
$CMS_END_TRIM$$CMS_END_SET$
$CMS_SET(cssLog)$$CMS_TRIM(level:4)$
background-color: #EEEEEE;
padding: 2px 4px;
font-family: monospace;
white-space: pre;
font-size: 12px;
line-height: 16px;
$CMS_END_TRIM$$CMS_END_SET$
$CMS_END_TRIM$
|
$CMS_VALUE(headline)$
$CMS_VALUE(intro)$
|
$CMS_IF(isSet(schedule))$
|
Project: $CMS_VALUE(#global.project.name)$
Task: $CMS_VALUE(schedule.scheduleEntry.name.convert2)$
Started $CMS_VALUE(schedule.startTime.format("yyyy-MM-dd HH:mm:ss"))$, by $CMS_VALUE(schedule.user.loginName)$.
$CMS_FOR(result, scheduleTaskResults)$
Action '$CMS_IF(!result.download.empty)$ $CMS_VALUE(result.name)$$CMS_ELSE$$CMS_VALUE(result.name)$$CMS_END_IF$': $CMS_VALUE(result.state)$
$CMS_IF(!result.problems.empty)$
($CMS_VALUE(result.problems.toString(", "))$)
$CMS_SET(consolidated, LOG_LEVELS.keySet.fold(map:{:},type->map.set(type,{:})))$
$CMS_SET(void, class("de.espirit.common.tools.Streams")
.toString(result.taskResults.logfile, "utf8")
.split("\n")
.map(line -> LOG_PATTERN.matcher(line))
.filter(matcher -> matcher.find())
.map(matcher -> { "type": matcher.group(1), "text": matcher.group(2) })
.filter(msg -> consolidated[msg.type].set(msg.text, if(consolidated[msg.type][msg.text].empty, 1, consolidated[msg.type][msg.text] + 1)))
)$
$CMS_FOR(logType, LOG_LEVELS.keySet.filter(type -> !consolidated[type].empty))$
$CMS_VALUE(LOG_LEVELS[logType])$
$CMS_VALUE(
([] + consolidated[logType].entrySet)
.sort(entry -> -entry.value)
.map(entry -> entry.value + "x " + entry.key)
.toString("\n")
)$
$CMS_END_FOR$
$CMS_ELSE$
$CMS_END_IF$
$CMS_END_FOR$
|
$CMS_END_IF$
|


SPHERE Review by David Wilcock (C)1998
(WARNER BROTHERS) RUNNING TIME: 134 MINUTES (2 HOURS 14 MINUTES) STARRING DUSTIN HOFFMAN, SHARON STONE, SAMUEL L. JACKSON DIRECTED BY BARRY LEVINSON
With his successful books and movies, Michael Crichton is doing well. With early successes with Westworld (1973) and Coma (1978), and recent films such as Jurassic Park (1993), his films have been entertaining. However, he seems to taken a wrong turn somewhere with Sphere. This $100 million mess by good director Barry Levison (Disclosure) is dull, long winded, and a huge disappointment. Considering the huge budget, the all star cast, and a story by Crichton, Sphere is majorly disappointing.
The film opens with Norman Goodman (Hoffman), a psychologist who thinks he is visiting an airplane crash to console the survivors. However, when he arrives, he his told by supervisor Barnes (Peter Coyote) that he is actually investigating an spacecraft. Along with Goodman is mathematician Harry Adams (Jackson), biologist Beth Halperin (Stone) and Ted Fielding (Liev Schrieber.)
Unfortunately, something went wrong along the way with Sphere. The film starts off entertaining enough, but throughout this very long movie, it just gets sillier and sillier. The film jaunts along from scene to scene, never fully explaining what is going on. The actors and directing don't help, either. Hoffman is on autopilot (and almost seems embarrassed) throughout the movie, churning out dull lines, and probably wondering what the hell he is doing in this movie. Stone is useless, displaying no emotion, and fails to convince the audience that she has any feelings for Hoffman.  But he's hardly in it, and by the end of the film he is just as dull as Hoffman and Stone. The same goes for Peter Coyote, who hams it up as the officer, but is then killed off halfway through. The director, Barry Levinson, who directed the better Crichton adaptation Disclosure (1994) messes up with the drama and the action. The drama scenes are, quite frankly, boring, and the action scenes suffer from overkill, with Levison throwing the camera all over the place (much like the godawful Speed 2, 1997)
The writing doesn't help much, either. Although Crichton is great with plots, he's terrible with dialogue, and practically every line in Sphere is a dud. The speech is too simple, I was hoping it would be a bit more intelligent. Practically every line is just stating the obvious. None of it is smart.  The sphere itself is impressive, and there's a few nice special effect shots, but where the $100 million went is anyone's guess. There's a giant squid attack in the picture, but not once does the audience see the squid, even though the film has a massive budget. I assume the picture was trying to build up tension by not showing the squid, and if handled correctly it probably would.
Finally, the film has no idea what genre to be. Levison can't handle his own plot. It leaps from hokey sci-fi, to horror, and finally The Shining/Event Horizon psychological thriller. And, of course, the film is very much like The Abyss (1988), although in it's defense, Crichton did write Sphere before The Abyss was released (and is far superior to this rubbish.) It's not all that bad though. The plot is all right, there's a few jump scenes (although nothing very scary) and there's the occasionally interesting bit. But overall, Sphere is a big waste of some fine talent, a lot of money, and a potentially good movie. Not really worth seeing. OVERALL RATING= ** OUT OF ***** REVIEW BY DAVID WILCOCK
DAVID WILCOCK<EMAIL_ADDRESS>Visit the Wilcock Movie Page! http://wilcockmovie.home.ml.org -OR- http://www.geocities.com/Hollywood/9061
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


Toggle navigation
Frank A. Capraro
About
Portfolio
Contact
Contact Form
Name
Email
Message
Submit
Connect With Me


People found a high concentration of plastic debris in the middle of Pacific.
Although those plastic debris are small enough not to be visible with naked eyes, the size of this ‘patch’ can be as big as 700,000 km2, a size of Texas, USA.
Why is there a garbage patch in the middle of Pacific ocean where no human habitats are nearby?
Under the changing climate, Arctic sea-ice and Antarctic sea-ice show very different trend.
While Arctic sea-ice extent has been shrinking over the past few decades, Antarctic sea-ice extend shows the increasing trend.
How can we explain this?
In the 2017, Atlantic hurricane season was one of the most destructive hurricane seasons on record.
Lots of people suffered from floods and wind damages caused by hurricane, and we even saw a high number of death toll.
Is this something to do with global warming?
Tide gauges and satellite observations revealed the global rising sea level trend, and the recent study finds that it has been accelerating in the last decade. (Link)
The sea level trend is quite variable in space with a striking positive trend in the western Pacific. What drives this spatial pattern of the sea level trend?
(Mean sea level (MSL) trend estimated from the satellite observations.)
The use of chlorofluorocarbons (CFCs) caused to ozone loss that impacts back to human by allowing more ultraviolet (UV) light.
Another important impact from the ozone hole is the ability to alter the atmospheric circulation.
The stratosphere becomes cooler when UV light is not absorbed as much as it was with more ozone. This results in larger temperature difference between equator and south pole. How does this change the climate in the Southern Hemisphere?
Approximately 25% of anthropogenic CO2 has been taken up by the ocean. However, this does not mean that the ocean always takes up CO2 from the atmosphere.
For example, the mean air-sea CO2 map reveals that the ocean emits CO2 in the eastern Pacific as well as in the region south of 60 degree S in the Southern Ocean.
What determines this spatial patterns?
It became normal to monitor the air quality before starting the day.
The particulate matter (PM) data in the Seoul Metropolitan Area shows an interesting temporal evolution.
The PM level has been continuously decreased since 2000 before it starts to go up after 2012.
How could we understand and interpret this trend?
(Fig. 1 in Kim et al. (2017), Scientific Reports)
You can choose the subject of the project. Possible subjects are
Please get together with your team members and discuss what topic your group want to explore. You can pick any topics above or find your own topic. The assignment of the topic is first-come, first-served bases. If the topic your team want to do is picked up by another team, then your team have to pick something else. Please let me know the topic of your team before the midterm week.


Bangladesh pacer Shahadat Hossain banned for five years by BCB
by bdnews24.comBangladesh seamer Shahadat Hossain has been banned from all forms of cricket for five years for physically assaulting teammate Sunny Arafat during a domestic league match
The Bangladesh Cricket Board took the decision on Tuesday citing a breach of its code of conduct.
The board also fined Shahadat Tk 300,000.
However, the cricketer can open an appeal to challenge the BCB’s decision by Nov 26.
On Sunday, Shahadat assaulted Arafat during a match between Dhaka Division and Khulna Division. He was reportedly angered by Arafat’s remarks to the effect that he was not competent enough to shine the ball.
His actions amount to a level 4 offence in the BCB’s code of conduct.


{%- include script.html -%} {%- feed_meta -%} {%- if jekyll.environment == 'production' and site.google_analytics -%} {%- include google-analytics.html -%} {%- endif -%}


When Seattleites say "Let's do something sometime" what they really mean is "Let's never do anything ever". Liza May
Let's try this with some funky chars: @, """", !'''\\\```


{% if message %} {{message}} {% else %} Confirm your GDS service assessment request {% endif %}
Please confirm your details and assessment date is correct. GDS will use this information to contact you about your upcoming assessment.
Please confirm your details and assessment date is correct. GDS will use this information to contact you about your upcoming assessment.


Making Http Requests
Click a country to display that country's capitol. Observables in flight will be cancelled prior to loading new data.
| USA |
| Denmark |
| Germany |
| Argentina |
The capitol is {{capitol}}
List of friends using Observables
{{friend}}
List of friends loaded using Promises
{{friend}}
List of friends and customer loaded successfully in parallel
Friends:
{{friend}}
Customer:
{{combined.customer.name}}
Loaded a contract after first loading a customer
Customer: {{customer?.name}}
Product: {{contract?.product}}
There was an error loading the list of friends (Intentional error testing)
Making a post request
Posted the following values:
{{postResponse.firstName}}
{{postResponse.lastName}}


| DOSE: |
|
oral |
Melatonin |
(pill / tablet) |
| |
|
oral |
Vitamin B-6 |
(pill / tablet) |
| |
|
oral |
Valerian |
(pill / tablet) |
Preamble:
We were real bored. Real bored. My friend and I were talking about doing some type of opiate. I wanted oxy, and so did he. But we were real short on money. We decided to steal. I know, I know, it's horrible but we did it any way. We went to a nearby grocer (corporate one at least) and my friend unscrewed the top to a B-6 container. I was nervous. I had never stolen before, even at 19. I thought what the hell, first time for everything. So I put two 240 count bottles under my arm pits (ackward place) and we bought something cheap and left. Now for the experiance.
The Beef:
We ate them at about 8:00, then waited. I played pool for a bit then suddenly I felt some tingling. First behind my head (brainstem), kinda like serotonin region. It felt good. I told my friend about it. We went up stairs to make noodles, and we were both getting extremely sleepy. I body buzz slowly built up to the point of a good near-opiate like feeling. Felt a kinda like a sleepy-roll too. Real nice.
We both deciding that laying down and closing our eyes despite the 9:00 time would be a good idea. I laid on his very comfortable couch and closed my eyes. It didn't feel like sleep but all of a sudden it was 11:00. I 'woke' up and my friend was died asleep. Nearly unawakable. His father came downstairs and tried to wake him, but he didn't wake up. Out cold. His father asked me what we did. I just said we were tired so we fell asleep. His father kinda rolled his eyes. My other friend and I left. I was still tired, and the body buzz was gone, but I still felt good. We found a party with a hookha and a just jumped for joy. It had been 2 weeks since I had had nicotine in my body. It was sheer pleasure.
By about 1:00 I got home, and I went online for a bit By 2:00 I was out cold. My sleep was ok but not that great, probably the wake up in the middle was why. I also had to wake up at 7:00 to work (WHICH WAS HORRIBLE). My sleep the next night was actually better. Intense dreams. My friend slept for 17 hours the night before, and said his dreams were intense too.
Overall, a real good experience.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


LIGHTS SEEN BY THE CONVERTED.
THERE is, in many parts of the county, a belief, derived no doubt from the recollection of St Paul's conversion, that, when sinners are converted, they see shining lights about themselves. I have many times heard this, but every one seems to have his own particular mode of describing the phenomenon,--where they can be prevailed on to describe it at all,--and usually that is derived from some picture which has made an impression on their minds such as, "exactly like the light shining round the angel appearing to St Peter, in fayther's Bible."


Here's a simple trick to significantly reduce the length of your mortgage and save you thousands of dollars. The trick is to make one extra mortgage payment a year and apply that payment toward your loan's principal.
This is the method being used by "Bi-Weekly Mortgage Reduction Services" and "Bi-Weekly Mortgage Savings Programs". Only, when you do it yourself, you don't pay a third party unnecessary set-up costs and fees!
Example: $100,000 loan, 30-year mortgage, 6.5% fixed interest rate
|
It may not be possible for you to increase your monthly mortgage payment. Keep in mind that most mortgages will permit you to make additional payments to your principal at anytime. Perhaps, five-years after moving into your home you receive a larger than expected tax return, or an inheritance or a non-taxable cash gift. You could apply this money toward your loan's principal, resulting in significant savings and a shorter loan period. Learn more
Example:With a $100,000, 30-year, 6.5% fixed interest rate mortgage loan, the borrower will pay a total of $227,542.98 to pay back the loan in 30 years. That equals $127,542.98 in interest payments. If the same borrower makes a one-time $5,000 payment the first day of year 6, he/she will pay a total of $204,710.75 and pay off the loan in 27 years (324 months). That's a savings of $22,832.23 in interest.


Register Here Enter a valid email address! Must be at least 8 characters! Must contain atleast 1 number! Must contain atleast 1 Capital Case! Must contain atleast 1 small case! Must contain atleast one SpecialCharacter !@#$%&* Password do not match Register


|
1.
|
Title of the Programme (FDP)
|
|
|
2.
|
Name and Address of the College/Institute
|
|
|
a)
|
College/Institute Email Id:
|
|
|
b)
|
Website
|
|
|
c)
|
College/Institute Landline Number
|
|
|
3.
|
Name of the Principal Programme Coordinator
|
|
|
a)
|
Qualification
|
|
|
b)
|
Gender
|
|
|
c)
|
Designation & Department
|
|
|
d)
|
Years of Teaching/Research/Industry Experience
|
|
|
e)
|
Email ID
|
|
|
f)
|
Cell Number
|
|
|
g)
|
Residential Address
|
|
|
4.
|
Name of the Co-Principal Programme Coordinator
|
|
|
a)
|
Qualification
|
|
|
b)
|
Gender
|
male
female
|
|
c)
|
Designation & Department
|
|
|
d)
|
Years of Teaching/Research/Industry Experience
|
|
|
e)
|
Email ID
|
|
|
f)
|
Cell Number
|
|
|
g)
|
Residential Address
|
|
|
5.
|
Designation of the Head of the Institution
|
|
|
6.
|
If Your Proposal is selected, the Cheque/DD to be written in favour of
|
|
|
7.
|
Please provide the bank account details for which the amount to be credited
|
|
a)
|
Name of the Account holder
|
|
|
b)
|
Name of the Bank
|
|
|
c)
|
The Branch Address
|
|
|
d)
|
IFS code
|
|
|
e)
|
SB A/c Number
|
|


Bizsense is an open source CRM and ERP web application. The software is released under the new BSD license. The software is built using PHP and MySQL. Like a typical web application, HTML, CSS and JavaScript are also used.
There are a number of ways to obtain support and participate in the project.


import 'colors';
import fs from 'fs-promise';
import path from 'path';
import asyncOra from '../util/ora-handler';
import electronHostArch from '../util/electron-host-arch';
import getForgeConfig from '../util/forge-config';
import readPackageJSON from '../util/read-package-json';
import requireSearch from '../util/require-search';
import resolveDir from '../util/resolve-dir';
import packager from './package';
/**
* @typedef {Object} MakeOptions
* @property {string} [dir=process.cwd()] The path to the app from which distributables are generated
* @property {boolean} [interactive=false] Whether to use sensible defaults or prompt the user visually
* @property {boolean} [skipPackage=false] Whether to skip the pre-make packaging step
* @property {Array<string>} [overrideTargets] An array of make targets to override your forge config
* @property {string} [arch=host architecture] The target architecture
* @property {string} [platform=process.platform] The target platform. NOTE: This is limited to be the current platform at the moment
*/
/**
* Make distributables for an Electron application.
*
* @param {MakeOptions} providedOptions - Options for the make method
* @return {Promise} Will resolve when the make process is complete
*/
export default async (providedOptions = {}) => {
// eslint-disable-next-line prefer-const, no-unused-vars
let { dir, interactive, skipPackage, overrideTargets, arch, platform } = Object.assign({
dir: process.cwd(),
interactive: false,
skipPackage: false,
arch: electronHostArch(),
platform: process.platform,
}, providedOptions);
asyncOra.interactive = interactive;
let forgeConfig;
await asyncOra('Resolving Forge Config', async () => {
dir = await resolveDir(dir);
Iif (!dir) {
throw 'Failed to locate makeable Electron application';
}
forgeConfig = await getForgeConfig(dir);
});
Iif (platform && platform !== process.platform && !(process.platform === 'darwin' && platform === 'mas')) {
console.error('You can not "make" for a platform other than your systems platform'.red);
process.exit(1);
}
Iif (!skipPackage) {
console.info('We need to package your application before we can make it'.green);
await packager({
dir,
interactive,
arch,
platform,
});
} else {
console.warn('WARNING: Skipping the packaging step, this could result in an out of date build'.red);
}
const declaredArch = arch;
const declaredPlatform = platform;
let targets = forgeConfig.make_targets[declaredPlatform];
Iif (overrideTargets) {
targets = overrideTargets;
}
console.info('Making for the following targets:', `${targets.join(', ')}`.cyan);
let targetArchs = [declaredArch];
Iif (declaredArch === 'all') {
switch (process.platform) {
case 'darwin':
targetArchs = ['x64'];
break;
case 'linux':
targetArchs = ['ia32', 'x64', 'armv7l'];
break;
case 'win32':
default:
targetArchs = ['ia32', 'x64'];
break;
}
}
const packageJSON = await readPackageJSON(dir);
const appName = forgeConfig.electronPackagerConfig.name || packageJSON.productName || packageJSON.name;
const outputs = [];
for (const targetArch of targetArchs) {
const packageDir = path.resolve(dir, `out/${appName}-${declaredPlatform}-${targetArch}`);
Iif (!(await fs.exists(packageDir))) {
throw new Error(`Couldn't find packaged app at: ${packageDir}`);
}
for (const target of targets) {
// eslint-disable-next-line no-loop-func
await asyncOra(`Making for target: ${target.cyan} - On platform: ${declaredPlatform.cyan} - For arch: ${targetArch.cyan}`, async () => {
const maker = requireSearch(__dirname, [
`../makers/${process.platform}/${target}.js`,
`../makers/generic/${target}.js`,
`electron-forge-maker-${target}`,
]);
Iif (!maker) {
throw `Could not find a build target with the name: ${target} for the platform: ${declaredPlatform}`;
}
try {
outputs.push(await (maker.default || maker)(packageDir, appName, targetArch, forgeConfig, packageJSON));
} catch (err) {
if (err) {
throw {
message: `An error occured while making for target: ${target}`,
stack: `${err.message}\n${err.stack}`,
};
} else {
throw new Error(`An unknown error occured while making for target: ${target}`);
}
}
});
}
}
return outputs;
};
|


Thanks for using our products and services (“Services”). The Services are provided by loklak Inc. (“loklak”), located at 93 Mau Than, Can Tho City, Viet Nam.
By using our Services, you are agreeing to the Privacy Policy.. Please read them carefully.
FOSSASIA built the Loklak Search app as an Open Source app. This SERVICE is provided by FOSSASIA at no cost and is intended for use as is.
This page is used to inform website visitors regarding our policies with the collection, use, and disclosure of Personal Information if anyone decided to use our Service.
If you choose to use our Service, then you agree to the collection and use of information in relation to this policy. The Personal Information that we collect is used for providing and improving the Service. We will not use or share your information with anyone except as described in this Privacy Policy.
The terms used in this Privacy Policy have the same meanings as in our Terms and Conditions, which is accessible at Loklak Search unless otherwise defined in this Privacy Policy.
For a better experience, while using our Service, we may require you to provide us with certain personally identifiable information. The information that we request is will be retained by us and used as described in this privacy policy.
The app does use third party services that may collect information used to identify you.
Link to privacy policy of third party service providers used by the app
We want to inform you that whenever you use our Service, in a case of an error in the app we collect data and information (through third party products) on your phone called Log Data. This Log Data may include information such as your device Internet Protocol (“IP”) address,device name, operating system version, the configuration of the app when utilizing our Service,the time and date of your use of the Service and other statistics.
Cookies are files with small amount of data that is commonly used an anonymous unique identifier. These are sent to your browser from the website that you visit and are stored on your device internal memory.
This Service does not use these “cookies” explicitly. However, the app may use third party code and libraries that use “cookies” to collection information and to improve their services. You have the option to either accept or refuse these cookies and know when a cookie is being sent to your device. If you choose to refuse our cookies, you may not be able to use some portions of this Service.
We may employ third-party companies and individuals due to the following reasons:
We want to inform users of this Service that these third parties have access to your Personal Information. The reason is to perform the tasks assigned to them on our behalf. However, they are obligated not to disclose or use the information for any other purpose.
We value your trust in providing us your Personal Information, thus we are striving to use commercially acceptable means of protecting it. But remember that no method of transmission over the internet, or method of electronic storage is 100% secure and reliable, and we cannot guarantee its absolute security.
This Service may contain links to other sites. If you click on a third-party link, you will be directed to that site. Note that these external sites are not operated by us. Therefore, we strongly advise you to review the Privacy Policy of these websites. We have no control over and assume no responsibility for the content, privacy policies, or practices of any third-party sites or services.
These Services do not address anyone under the age of 13. We do not knowingly collect personally identifiable information from children under 13. In the case we discover that a child under 13 has provided us with personal information, we immediately delete this from our servers. If you are a parent or guardian and you are aware that your child has provided us with personal information, please contact us so that we will be able to do necessary actions.
We may update our Privacy Policy from time to time. Thus, you are advised to review this page periodically for any changes. We will notify you of any changes by posting the new Privacy Policy on this page. These changes are effective immediately after they are posted on this page.
For information about how to contact loklak, please visit our contact page.


Eco Lab now uses C++ standard exceptions to report errors -- the
old longjmp
mechanism has now gone. When you want to report an
error from within your user written commands and methods, throw an
object of type error
, which is defined in
that works a bit like printf, eg
throw error("%d arguments is too many!",nargs);
Eco Lab will trap all exceptions in user written routines and
methods, and return a TCL_ERROR
result. If its an exception derived
from the standard exception
class (which error
is), then
it will place the value returned by its what()
method as the
result field of the TCL command. Any other caught exception will
report ``Unknown exception caught''.
What happens when Eco Lab traps an exception depends on exactly where it occurs -- if it occurs as a result of executing a script, the error is reported on standard output, and Eco Lab exits with a non-zero return value (useful for writing test scripts, for example). If it occurs while the GUI environment is in operation, then a dialog box pops up, offering information to debug what went wrong. If it occurs as part of the command line interpreter (ie when Eco Lab is reading its commands from standard input) then the error result is reported on standard output, and execution continues.
When the DEBUGGING flag set at make time, the error constructor will
call abort()
, which can be caught by a debugger.


|
ECEP590 Final Project: Elma-Instant-Messenger
A simple instant messenger using Elma (C++). Elmaisaneventloopmanagerforembeddedsystems
|
An HTTP client for connecting to json services. More...
#include <messenger-client.h>
Public Member Functions | |
| MessengerClient () | |
| MessengerClient & | get (std::string url, std::function< void(json &)> handler) |
| MessengerClient & | post (std::string url, json data, std::function< void(json &)> handler) |
| MessengerClient & | process_responses () |
| std::pair< std::string, std::string > | url_parts (std::string url) |
| int | num_responses () const |
An HTTP client for connecting to json services.
An example usage in a process
Definition at line 34 of file messenger-client.h.
|
inline |
Construct a new client. Only the Manager would normall do this, although a client can work as a standalone object.
Definition at line 40 of file messenger-client.h.
| MessengerClient & messenger::MessengerClient::get | ( | std::string | url, |
| std::function< void(json &)> | handler | ||
| ) |
Send an HTTP GET request to a specific URL and register a handler to deal with the response. This method assumes the server will respond with a JSON string. This method is asynchronous and returns immediately.
| url | The url, preceded by http:// or https:// |
| handler | The handler, whose argument will be the json received from the request |
Definition at line 34 of file messenger-client.cc.
|
inline |
Definition at line 63 of file messenger-client.h.
| MessengerClient & messenger::MessengerClient::process_responses | ( | ) |
Process all responses received so far
Definition at line 47 of file messenger-client.cc.
| std::pair< std::string, std::string > messenger::MessengerClient::url_parts | ( | std::string | url | ) |
Parse a URL into its address and path
| url | The url |
Definition at line 13 of file messenger-client.cc.


assigned
by None at 2023-08-15 15:19:30.unassigned
by None at 2023-08-15 15:19:35.assigned
by None at 2023-08-15 15:19:42.referenced
by Kevin Reiss at 2023-08-15 16:08:14.merged
by Kevin Reiss at 2023-08-15 16:08:14.closed
by Kevin Reiss at 2023-08-15 16:08:14.head_ref_deleted
by Kevin Reiss at 2023-08-15 16:08:15.closed
by Kevin Reiss at 2023-08-15 16:08:15.unassigned
by Christina Chortaria at 2023-08-15 15:19:41.assigned
by Christina Chortaria at 2023-08-15 21:24:02.transferred
by Kevin Reiss at 2023-08-15 20:33:17.referenced
by Christina Chortaria at 2023-08-15 16:30:38.merged
by Christina Chortaria at 2023-08-15 16:30:38.closed
by Christina Chortaria at 2023-08-15 16:30:38.head_ref_deleted
by Christina Chortaria at 2023-08-15 16:30:39.closed
by Christina Chortaria at 2023-08-15 16:30:40.referenced
by Liz Garcia at 2023-08-15 17:20:40.merged
by Liz Garcia at 2023-08-15 17:20:40.closed
by Liz Garcia at 2023-08-15 17:20:40.head_ref_deleted
by Liz Garcia at 2023-08-15 17:20:41.@lizgarciao You dont have access in https://github.com/PrincetonUniversityLibrary/ this is why it doesn't load for you. I will close this issue .
But will update the docs link to say that is a private repo and you may have no access. Thanks for finding it.
closed
by Christina Chortaria at 2023-08-15 16:40:48.mentioned
by Liz Garcia at 2023-08-15 16:40:48.subscribed
by Liz Garcia at 2023-08-15 16:40:48.reopened
by Christina Chortaria at 2023-08-15 16:51:15.closed
by Liz Garcia at 2023-08-15 17:20:41.I think this is a definite improvement. But I think it would be better to stick with displaying the Catalogo entry text at the top of the item pages. And once we're otherwise happy, we should fully update the static site (generate the HTML pages, and run Jekyll to update the _site
directory).
@sandbergja and I created this WIP audit report https://docs.google.com/spreadsheets/d/1YArv0Bcs2thFJINIO_T_s8LLyxVHT8Ent2t3CU7YxxY/edit#gid=0
mentioned
by Jane Sandberg at 2023-08-15 20:57:49.subscribed
by Jane Sandberg at 2023-08-15 20:57:49.Sent to Lynn and Christa via Slack (recording here for paper trail): @Lynn D. and @Christa : I’ve added certificate programs to almost all of the items on this spreadsheet: https://docs.google.com/spreadsheets/d/1bUa16cSRb_Y-kfvbBgKW2-N5PR4wI1eYXihPNobBKvs/edit?skip_itp2_check=true#gid=1671611225 If I’ve updated a record, I have changed its color to green. There is one record I could not update. I cannot find a thesis for Juhyun Park (netid: juhyunp). I searched through all of the theses I imported, and there is no one with that name or ID. However, an internet search reveals someone with that name and netid who is a graduate student in the CS department: https://www.cs.princeton.edu/people/grad Is it possible they submitted this form by mistake? Can you shed any light? (edited)
closed
by Bess Sadler at 2023-08-15 20:05:07.referenced
by Bess Sadler at 2023-08-15 20:03:26.merged
by Bess Sadler at 2023-08-15 20:03:26.closed
by Bess Sadler at 2023-08-15 20:03:26.head_ref_deleted
by Bess Sadler at 2023-08-15 20:03:26.referenced
by Beck Davis at 2023-08-15 16:03:26.merged
by Beck Davis at 2023-08-15 16:03:26.closed
by Beck Davis at 2023-08-15 16:03:26.head_ref_deleted
by Beck Davis at 2023-08-15 16:03:34.unassigned
by Eliot Jordan at 2023-08-15 19:16:10.Reran the failed PDFs with the new processing and it's all done!
assigned
by Trey Pendragon at 2023-08-15 18:51:05.closed
by Trey Pendragon at 2023-08-15 20:51:20.labeled
by None at 2023-08-16 00:13:08.labeled
by None at 2023-08-16 00:13:08.assigned
by Robert-Anthony Lee-Faison at 2023-08-15 14:50:51.referenced
by Jane Sandberg at 2023-08-14 22:05:25.merged
by Jane Sandberg at 2023-08-14 22:05:25.closed
by Jane Sandberg at 2023-08-14 22:05:26.head_ref_deleted
by Jane Sandberg at 2023-08-14 22:05:26.closed
by Jane Sandberg at 2023-08-14 22:05:27.assigned
by None at 2023-08-15 11:51:25.referenced
by Max Kadel at 2023-08-15 13:57:38.merged
by Max Kadel at 2023-08-15 13:57:39.closed
by Max Kadel at 2023-08-15 13:57:39.head_ref_deleted
by Max Kadel at 2023-08-15 13:57:39.Yes, Alma keeps track of which files have been loaded.
closed
by Max Kadel at 2023-08-15 13:57:40.closed
by Kevin Reiss at 2023-08-15 14:19:45.Closing per @mzelesky
mentioned
by None at 2023-08-15 14:31:33.subscribed
by None at 2023-08-15 14:31:34.closed
by Kevin Reiss at 2023-08-15 14:31:34.Closing as all sub-issues have been completed.
closed
by Kevin Reiss at 2023-08-15 14:32:01.labeled
by Kevin Reiss at 2023-08-15 14:35:39.referenced
by Max Kadel at 2023-08-15 18:34:05.In addition, log the error message and the collection ID causing the error.
@regineheberlein - can you put the specific error that is being raised by Nokogiri in the ticket? And / or a copy of the invalid xml?
Nokogiri::XML::SyntaxError: 33:657: FATAL: attributes construct error
was raised by the missing space in
https://library.princeton.edu/special-collections/ask-us'xlink:type='simple'
mentioned
by None at 2023-08-15 15:34:45.subscribed
by None at 2023-08-15 15:34:45.head_ref_force_pushed
by Max Kadel at 2023-08-15 18:34:07.convert_to_draft
by Max Kadel at 2023-08-15 14:00:38.review_request_removed
by Max Kadel at 2023-08-15 14:00:45.head_ref_force_pushed
by Max Kadel at 2023-08-15 18:29:19.renamed
by Max Kadel at 2023-08-15 18:31:32.assigned
by Max Kadel at 2023-08-15 18:31:47.ready_for_review
by Max Kadel at 2023-08-15 18:38:48.referenced
by Jane Sandberg at 2023-08-15 21:03:57.merged
by Jane Sandberg at 2023-08-15 21:03:57.closed
by Jane Sandberg at 2023-08-15 21:03:58.head_ref_deleted
by Jane Sandberg at 2023-08-15 21:03:58.head_ref_force_pushed
by Jane Sandberg at 2023-08-15 21:08:12.head_ref_force_pushed
by Christina Chortaria at 2023-08-15 21:09:20.referenced
by Jane Sandberg at 2023-08-15 21:14:17.merged
by Jane Sandberg at 2023-08-15 21:14:17.closed
by Jane Sandberg at 2023-08-15 21:14:17.head_ref_deleted
by Jane Sandberg at 2023-08-15 21:14:18.labeled
by Max Kadel at 2023-08-15 15:52:12.labeled
by Jane Sandberg at 2023-08-15 15:59:19.labeled
by Jane Sandberg at 2023-08-15 16:01:13.renamed
by Jane Sandberg at 2023-08-15 16:01:25.labeled
by Jane Sandberg at 2023-08-15 16:02:04.Genre parameters are not being respected. Atlas restored the templates for serial, thesis, and manuscript.
closed
by Kevin Reiss at 2023-08-15 21:38:34.referenced
by None at 2023-08-15 13:05:59.merged
by None at 2023-08-15 13:05:59.closed
by None at 2023-08-15 13:06:00.head_ref_deleted
by None at 2023-08-15 13:06:00.closed
by None at 2023-08-15 13:06:01.head_ref_force_pushed
by None at 2023-08-15 13:06:22.referenced
by Hector Correa at 2023-08-15 13:16:27.merged
by Hector Correa at 2023-08-15 13:16:27.closed
by Hector Correa at 2023-08-15 13:16:27.head_ref_deleted
by Hector Correa at 2023-08-15 13:16:29.closed
by Hector Correa at 2023-08-15 13:16:29.closed
by None at 2023-08-15 14:04:17.The folders are back. Now we need to figure out why they are being created... 10-34770 is a dspace folder, so maybe something with the migration is creating the folder....
reopened
by None at 2023-08-15 14:24:58.head_ref_force_pushed
by None at 2023-08-15 16:11:52.head_ref_force_pushed
by None at 2023-08-15 16:22:12.deployed
by None at 2023-08-15 16:28:03.head_ref_force_pushed
by None at 2023-08-15 17:21:41.deployed
by None at 2023-08-15 17:22:34.head_ref_force_pushed
by None at 2023-08-15 17:35:21.deployed
by None at 2023-08-15 17:39:20.head_ref_force_pushed
by None at 2023-08-15 18:54:13.deployed
by None at 2023-08-15 18:55:08.head_ref_force_pushed
by None at 2023-08-15 20:08:41.deployed
by None at 2023-08-15 20:09:35.head_ref_deleted
by Bess Sadler at 2023-08-15 20:52:21.head_ref_deleted
by Bess Sadler at 2023-08-15 20:52:45.head_ref_deleted
by Bess Sadler at 2023-08-15 20:52:48.head_ref_deleted
by Bess Sadler at 2023-08-15 20:53:01.head_ref_deleted
by Bess Sadler at 2023-08-15 20:53:04.head_ref_deleted
by Bess Sadler at 2023-08-15 20:53:06.head_ref_deleted
by Bess Sadler at 2023-08-15 20:53:42.referenced
by None at 2023-08-15 15:00:37.merged
by None at 2023-08-15 15:00:37.closed
by None at 2023-08-15 15:00:37.head_ref_deleted
by None at 2023-08-15 15:00:38.assigned
by Hector Correa at 2023-08-15 15:14:52.referenced
by Francis Kayiwa at 2023-08-14 22:58:51.merged
by Francis Kayiwa at 2023-08-14 22:58:51.closed
by Francis Kayiwa at 2023-08-14 22:58:51.head_ref_deleted
by Francis Kayiwa at 2023-08-14 22:58:52.review_requested
by Christina Chortaria at 2023-08-15 12:35:48.referenced
by Christina Chortaria at 2023-08-15 12:44:14.merged
by Christina Chortaria at 2023-08-15 12:44:14.closed
by Christina Chortaria at 2023-08-15 12:44:14.head_ref_deleted
by Christina Chortaria at 2023-08-15 12:44:15.closed
by Francis Kayiwa at 2023-08-15 13:07:14.Get alerts for any hardware failure instead of looking for orange lights in the racks (fan, electric supply, temperature, etc.) Can also monitor memory and CPU - where is it best to do this?
Possible tools and protocols: Currently use Dell Tools or HP via SNMP - but this approach means server needs to be up Could also use IPMI (iDrac interface) Prometheus / Zabbix / Centreon - this is what TigerData is planning to use Anything that uses IPMI will need to sit on the out-of-band / private/ protected network We currently use Nagios on this private network (using SNMP) for monitoring rack temp and humidity
renamed
by Alicia Cozine at 2023-08-15 13:20:10.renamed
by Alicia Cozine at 2023-08-15 13:31:02.renamed
by Alicia Cozine at 2023-08-15 14:39:21.renamed
by Alicia Cozine at 2023-08-15 14:39:43.referenced
by Alicia Cozine at 2023-08-15 16:14:21.merged
by Alicia Cozine at 2023-08-15 16:14:21.closed
by Alicia Cozine at 2023-08-15 16:14:21.head_ref_deleted
by Alicia Cozine at 2023-08-15 16:14:23.convert_to_draft
by Alicia Cozine at 2023-08-15 16:15:32.The old bionic VM (abid-staging1) still exists, but the load balancer is only routing traffic to the new jammy VM (abid-staging2).
Going forward our plan is to having one Staging VM running at all times for all projects, and to have a second Staging VM built for each project, but to power it down except while devs are actively working on the project.
referenced
by Alicia Cozine at 2023-08-15 16:21:49.merged
by Alicia Cozine at 2023-08-15 16:21:49.closed
by Alicia Cozine at 2023-08-15 16:21:49.head_ref_deleted
by Alicia Cozine at 2023-08-15 16:21:50.The PPA seems to be active - see https://maxmind.github.io/geoipupdate/.
head_ref_force_pushed
by Max Kadel at 2023-08-15 16:11:31.referenced
by Alicia Cozine at 2023-08-15 16:41:20.merged
by Alicia Cozine at 2023-08-15 16:41:20.closed
by Alicia Cozine at 2023-08-15 16:41:20.head_ref_deleted
by Alicia Cozine at 2023-08-15 16:41:21.Regine and I had created this when pulfalight was first being developed: https://docs.google.com/spreadsheets/d/1fKd5t9Xk_Ph1MD5zt2O2LwSWfLeNQjBYtDM6fk8qH9k/edit#gid=0 I think some folks had referred to it during development? @hackartisan
labeled
by None at 2023-08-15 21:01:26.mentioned
by None at 2023-08-15 21:02:56.subscribed
by None at 2023-08-15 21:02:56.@LynnDurgin ?
mentioned
by None at 2023-08-15 18:47:07.subscribed
by None at 2023-08-15 18:47:07.mentioned
by None at 2023-08-15 18:47:07.subscribed
by None at 2023-08-15 18:47:07.mentioned
by Christa Cleeton at 2023-08-15 18:47:07.subscribed
by Christa Cleeton at 2023-08-15 18:47:07.mentioned
by None at 2023-08-15 21:04:20.subscribed
by None at 2023-08-15 21:04:20.assigned
by Eliot Jordan at 2023-08-15 19:15:54.For existing entries we need to change the data. It imported incorrectly. We have now active events in the feed to try and debug the import at the moment https://libcal.princeton.edu/rss.php?m=cat&iid=771&cid=12260&cat=49413.
I can see nothing in the config or display values about why it should have been stored incorrectly, I'd like to add a test event to libcal and see if it still imports correctly.


User Manual¶
Setting Up the Project¶
Software requirement:
Either install all python dependencies using requirment.txt :-
pip3 install -r requirements.txt
OR, Install the all python dependencies one by one :-
sudo apt-get install python3-tk
python3 main.py
pip3 install xlwt
pip3 install xlsxwriter
pip3 install xlrd
pip3 install openpyxl
pip3 install ezodf
pip3 install python-docx
pip3 install tkscrolledframe
Following document are required for a smooth functioning of the applicaion.
Elective docs files (need to be save in src/data/basket_elective_docs. Any other location wont be considered.)
A file for the courselist i.e all the courses with their respective course code and faculty list being offered in a given semester for the various batches need to be stored (the file has to save in “src/data” in ods format having the name as Courselist.ods, failing to do so will lead to unpredictable malfuntions.)
In case of any change in the classroom they need to be saved in the prog3.py file at the location progs/prog3.py. To get detailed steps refer to FAQ in the end of the this page.
Follow the step of working with Landing GUI to initialise the required state for working of the application.
Working in GUI #1¶
Steps¶
To open the window run the following code in cmd (Windows) or terminal (Linux)
python main.py
and then click on the Time Table Button.
Select the slots from drop down
The window opens up as a seperate pop up
Mouse over the desired block and click on it to view the slots
Working in GUI #2¶
Steps¶
To open the window run the following code in cmd (Windows) or terminal (Linux)
python main.py
and then click on the Slot Selection Button.
Select the slots from drop down
The window opens up as a seperate pop up. Click on the Start button
The application will automatically upload all the concerned
Select the basket you want to work upon
The window will get the informations about the basket including the baskets
Click on the slot selection dropdown corresponding to the course.
Select any one of the slots as per the constraint.
Working in GUI #3¶
Steps¶
To open the window run the following code in cmd (Windows) or terminal (Linux)
python main.py
and then click on the Class Selection Button.
Select the Classrooms
The window opens up as a seperate pop up. Click on the Start button.
The data would be loaded in the background and select Slot button would appear.
Select one of the slot to work upon by selecting from the dropdown.
All the courses with that slot assigned will appear.
Click on the dropdown button wo select any one one of the class
Selected Classroom will we registered. Save on all the courses being assigned a classroom.
FAQs¶
1. How to include new classroom into the application?
Follow the following steps to include new classrooms into the application:
Open the file prog3.py from the location progs/prog3.py.
Find a list of classes defined by the variable “classes”.
Modify the classlist with the new entries while removing the ones not required(if any).
Save the changes.
2. What is the flow of work in the application?
Any client is expected to follow the following workflow while operatiing this application.
After following the steps defined in the Getting Started section, Move to the main GUI.
Folow the steps in main GUI opeations.
Operation in the applicaion should be done in the way that all the courses should be allocated slots, before the classrom are given.


On my first day, I took one 800mg tablet before breakfast, then proceeded to work as usual. Breakfast consisted of mostly eggs and milk as they are good sources of choline. I have read reports from other people who took piracetam with hydergine as a choline supplement and had positive effects.
The first thing that I noticed is a sense of 'clarity'. It is very hard to explain, so please bear with me. As I was driving to work, about an hour after taking the pills, I started to see the beauty of spring. I drive this same route to work almost every day, but somehow it seemed more beautiful, as did the sunrise. It was very peaceful, I began to smile at the realization of something that had been ignored for quite some time. The entire day was very calm and seemed to pass quickly. On the way home, I saw the same beauty in a sunset. There were no noted memory effects this day but definitely a positive mood change.
The second day I opted to take two 800mg tablets. I followed this with the same breakfast and drive to work. The drive to work seemed less magical than the day before. I was in a positive frame of mind all day but the day seemed to pass more slowly. I did notice a marked difference in my memory recall however. I found myself remembering not only pertinent information, but seemingly useless information. Things like named of teachers in high school. Addresses and phone numbers of friends that I have not seen in years. I managed a very short meditation this day and was very pleased with the results.
For comparison, on the third day I took nothing. The results were the same as the second day: increased calm and increased memory. On the fourth day I also took nothing, but this time with dramatic results. There was a sharp cutoff in cognition and calmness. I found myself smoking more cigarettes and taking more breaks. I had to look up information that I remembered two days ago, this was very confusing to me. I could remember recalling this information two days ago, but could not recall the information itself.
Overall this was an excellent experience. As for the stop-smoking effects that I have heard others talk of, they were quite subtle. I noticed that I smoked less cigarettes in the days I took piracetam, but only in hindsight. In playing around with the dosage from 400mg to 2000mg the effects were the same. I am currently on 3200 mg and am drinking an energy drink called 'Bawls'. The clarity effects set in within about 15 mins. I do not feel relaxed, but that is more than likely the effects of the energy drink. However, I do feel inspired to read, write, and listen to music. There were no negative side effects from any of this.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


OSAPI Plus
0.3
The Open System API for C++
Class Hierarchy
Go to the textual class hierarchy
Generated by
1.8.13


Plato on Github
Report Home
src\ng\directive\ngPluralize.js
Maintainability
67.08
Lines of code
240
Difficulty
23.75
Estimated Errors
0.58
Function weight
By Complexity
By SLOC
'use strict'; /** * @ngdoc directive * @name ngPluralize * @restrict EA * * @description * `ngPluralize` is a directive that displays messages according to en-US localization rules. * These rules are bundled with angular.js, but can be overridden * (see {@link guide/i18n Angular i18n} dev guide). You configure ngPluralize directive * by specifying the mappings between * [plural categories](http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html) * and the strings to be displayed. * * # Plural categories and explicit number rules * There are two * [plural categories](http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html) * in Angular's default en-US locale: "one" and "other". * * While a plural category may match many numbers (for example, in en-US locale, "other" can match * any number that is not 1), an explicit number rule can only match one number. For example, the * explicit number rule for "3" matches the number 3. There are examples of plural categories * and explicit number rules throughout the rest of this documentation. * * # Configuring ngPluralize * You configure ngPluralize by providing 2 attributes: `count` and `when`. * You can also provide an optional attribute, `offset`. * * The value of the `count` attribute can be either a string or an {@link guide/expression * Angular expression}; these are evaluated on the current scope for its bound value. * * The `when` attribute specifies the mappings between plural categories and the actual * string to be displayed. The value of the attribute should be a JSON object. * * The following example shows how to configure ngPluralize: * * ```html * <ng-pluralize count="personCount" when="{'0': 'Nobody is viewing.', * 'one': '1 person is viewing.', * 'other': '{} people are viewing.'}"> * </ng-pluralize> *``` * * In the example, `"0: Nobody is viewing."` is an explicit number rule. If you did not * specify this rule, 0 would be matched to the "other" category and "0 people are viewing" * would be shown instead of "Nobody is viewing". You can specify an explicit number rule for * other numbers, for example 12, so that instead of showing "12 people are viewing", you can * show "a dozen people are viewing". * * You can use a set of closed braces (`{}`) as a placeholder for the number that you want substituted * into pluralized strings. In the previous example, Angular will replace `{}` with * `{{personCount}}`. The closed braces `{}` is a placeholder * for {{numberExpression}}. * * If no rule is defined for a category, then an empty string is displayed and a warning is generated. * Note that some locales define more categories than `one` and `other`. For example, fr-fr defines `few` and `many`. * * # Configuring ngPluralize with offset * The `offset` attribute allows further customization of pluralized text, which can result in * a better user experience. For example, instead of the message "4 people are viewing this document", * you might display "John, Kate and 2 others are viewing this document". * The offset attribute allows you to offset a number by any desired value. * Let's take a look at an example: * * ```html * <ng-pluralize count="personCount" offset=2 * when="{'0': 'Nobody is viewing.', * '1': '{{person1}} is viewing.', * '2': '{{person1}} and {{person2}} are viewing.', * 'one': '{{person1}}, {{person2}} and one other person are viewing.', * 'other': '{{person1}}, {{person2}} and {} other people are viewing.'}"> * </ng-pluralize> * ``` * * Notice that we are still using two plural categories(one, other), but we added * three explicit number rules 0, 1 and 2. * When one person, perhaps John, views the document, "John is viewing" will be shown. * When three people view the document, no explicit number rule is found, so * an offset of 2 is taken off 3, and Angular uses 1 to decide the plural category. * In this case, plural category 'one' is matched and "John, Mary and one other person are viewing" * is shown. * * Note that when you specify offsets, you must provide explicit number rules for * numbers from 0 up to and including the offset. If you use an offset of 3, for example, * you must provide explicit number rules for 0, 1, 2 and 3. You must also provide plural strings for * plural categories "one" and "other". * * @param {string|expression} count The variable to be bound to. * @param {string} when The mapping between plural category to its corresponding strings. * @param {number=} offset Offset to deduct from the total number. * * @example <example module="pluralizeExample"> <file name="index.html">
 Person 1:<input type="text" ng-model="person1" value="Igor" />
 Person 2:<input type="text" ng-model="person2" value="Misko" />
 Number of People:<input type="text" ng-model="personCount" value="1" />
  Without Offset: <ng-pluralize count="personCount" when="{'0': 'Nobody is viewing.', 'one': '1 person is viewing.', 'other': '{} people are viewing.'}"> </ng-pluralize>
  With Offset(2): <ng-pluralize count="personCount" offset=2 when="{'0': 'Nobody is viewing.', '1': '{{person1}} is viewing.', '2': '{{person1}} and {{person2}} are viewing.', 'one': '{{person1}}, {{person2}} and one other person are viewing.', 'other': '{{person1}}, {{person2}} and {} other people are viewing.'}"> </ng-pluralize>
 </file> <file name="protractor.js" type="protractor"> it('should show correct pluralized string', function() { var withoutOffset = element.all(by.css('ng-pluralize')).get(0); var withOffset = element.all(by.css('ng-pluralize')).get(1); var countInput = element(by.model('personCount')); expect(withoutOffset.getText()).toEqual('1 person is viewing.'); expect(withOffset.getText()).toEqual('Igor is viewing.'); countInput.clear(); countInput.sendKeys('0'); expect(withoutOffset.getText()).toEqual('Nobody is viewing.'); expect(withOffset.getText()).toEqual('Nobody is viewing.'); countInput.clear(); countInput.sendKeys('2'); expect(withoutOffset.getText()).toEqual('2 people are viewing.'); expect(withOffset.getText()).toEqual('Igor and Misko are viewing.'); countInput.clear(); countInput.sendKeys('3'); expect(withoutOffset.getText()).toEqual('3 people are viewing.'); expect(withOffset.getText()).toEqual('Igor, Misko and one other person are viewing.'); countInput.clear(); countInput.sendKeys('4'); expect(withoutOffset.getText()).toEqual('4 people are viewing.'); expect(withOffset.getText()).toEqual('Igor, Misko and 2 other people are viewing.'); }); it('should show data-bound names', function() { var withOffset = element.all(by.css('ng-pluralize')).get(1); var personCount = element(by.model('personCount')); var person1 = element(by.model('person1')); var person2 = element(by.model('person2')); personCount.clear(); personCount.sendKeys('4'); person1.clear(); person1.sendKeys('Di'); person2.clear(); person2.sendKeys('Vojta'); expect(withOffset.getText()).toEqual('Di, Vojta and 2 other people are viewing.'); }); </file> </example> */ var ngPluralizeDirective = ['$locale', '$interpolate', '$log', function($locale, $interpolate, $log) { var BRACE = /{}/g, IS_WHEN = /^when(Minus)?(.+)$/; return { link: function(scope, element, attr) { var numberExp = attr.count, whenExp = attr.$attr.when && element.attr(attr.$attr.when), // we have {{}} in attrs offset = attr.offset || 0, whens = scope.$eval(whenExp) || {}, whensExpFns = {}, startSymbol = $interpolate.startSymbol(), endSymbol = $interpolate.endSymbol(), braceReplacement = startSymbol + numberExp + '-' + offset + endSymbol, watchRemover = angular.noop, lastCount; forEach(attr, function(expression, attributeName) { var tmpMatch = IS_WHEN.exec(attributeName); if (tmpMatch) { var whenKey = (tmpMatch[1] ? '-' : '') + lowercase(tmpMatch[2]); whens[whenKey] = element.attr(attr.$attr[attributeName]); } }); forEach(whens, function(expression, key) { whensExpFns[key] = $interpolate(expression.replace(BRACE, braceReplacement)); }); scope.$watch(numberExp, function ngPluralizeWatchAction(newVal) { var count = parseFloat(newVal); var countIsNaN = isNaN(count); if (!countIsNaN && !(count in whens)) { // If an explicit number rule such as 1, 2, 3... is defined, just use it. // Otherwise, check it against pluralization rules in $locale service. count = $locale.pluralCat(count - offset); } // If both `count` and `lastCount` are NaN, we don't need to re-register a watch. // In JS `NaN !== NaN`, so we have to exlicitly check. if ((count !== lastCount) && !(countIsNaN && isNumber(lastCount) && isNaN(lastCount))) { watchRemover(); var whenExpFn = whensExpFns[count]; if (isUndefined(whenExpFn)) { if (newVal != null) { $log.debug("ngPluralize: no rule defined for '" + count + "' in " + whenExp); } watchRemover = noop; updateElementText(); } else { watchRemover = scope.$watch(whenExpFn, updateElementText); } lastCount = count; } }); function updateElementText(newText) { element.text(newText || ''); } } }; }];


---
title:
format: markdown
---
{% if pagination.has_posts %}
{% for post in pagination.posts %}
{% include 'partial_post.html' %}
{% endfor %}
{% if pagination.prev_page %}{% endif %}
{% if pagination.next_page %}{% endif %}
{% endif %}
{% if not pagination.has_posts and not site.hide_quickstart %}
## Quick Start
Welcome to your new [PieCrust][] website!
Since you don't seem to have any blog post or home page created yet, here's a
quick reference of things you probably want to do next. All `chef` commands need
to be run from inside your website's directory.
For more information, refer to the [documentation][doc]. This message will go
away as soon as you've written your first blog post, or after you set the
`hide_quickstart` setting to `true` in the site configuration (_i.e._ in
`config.yml` under the `site` section).
### Create a new page
Run `chef prepare page my-new-page`, where `my-new-page` is the [URL
slug][slug] you want for your new page. This can contain sub-directories, like
so: `about/my-new-page`.
### Create a new blog post
Run `chef prepare post my-new-post-slug`, where `my-new-post-slug` is the [URL
slug][slug] you want for your new post. Unlike pages, this shouldn't contain
any sub-directories.
### Bake your site
Run `chef bake`.
### Preview your site
Run `chef serve`, and point your browser to `http://localhost:8080`.
[piecrust]: {{ piecrust.url }}
[doc]: http://bolt80.com/piecrust/
[slug]: http://en.wikipedia.org/wiki/Clean_URL#Slug
{% endif %}


Color, Saving Output, and Geospatial Data
Read
Visualizing Geospatial Data
Extra Software and R Packages for Geospatial Data
To use the powerful spatial functions in R, some extra software will be required. R doesn’t do all the geographic calculations by itself. It relies on some other software that runs behind the scenes. Depending on your computer and how it’s configured, some of you may able to get this working right away, whereas others may need some additional steps as detailed below.
Windows users
With R/RStudio closed, download and install Rtools (currently Rtools40.exe), which is software that enables your computer to compile R packages from their source code.
Start up R Studio, and then install these packages:
sf
,stars
,rgeos
, andrnaturalearth
.
install.packages("sf")
install.packages("stars")
install.packages("rgeos")
install.packages("rnaturalearth")
- Load these packages in your R session. If all is working as it should, you may get a message similar to
Linking to GEOS 3.8.1, GDAL 3.1.4, PROJ 6.3.1
when loading thesf
package (version numbers may differ).
Mac users
Worth a try
- Let’s try the easy way first. In RStudio, try installing these R packages:
sf
,stars
,rgeos
, andrnaturalearth
. If prompted about installing from binary or from source, choose binary or answer “N” to installing from source.
install.packages("sf")
install.packages("stars")
install.packages("rgeos")
install.packages("rnaturalearth")
- If there were no errors in step 1, try loading the packages in your R session. If all is working as it should, you may get a message similar to
Linking to GEOS 3.8.1, GDAL 3.1.4, PROJ 6.3.1
when loading thesf
package (version numbers may differ). But it’s likely that you may encounter an error, in which case…
What you’ll probably have to do
Close R/Rstudio
Install software that enables your computer to compile R packages from their source code.
- Open terminal
- Type
xcode-select --install
and let it run.
Install homebrew (if you haven’t already).
- Open Terminal
- Go to brew.sh, copy the big long command under “Install Homebrew” (currently,
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
but go ahead and copy from the webpage to be sure). - Paste the command into Terminal, and press enter. This installs Homebrew, which is special software that lets you install Unix-y programs from the Terminal. This will take a while.
In Terminal, type this line to install the geographic software:
brew install gdal geos proj
. This will also take a while.Open up R Studio, install these packages:
sf
,stars
,rgeos
, andrnaturalearth
.
install.packages("sf")
install.packages("stars")
install.packages("rgeos")
install.packages("rnaturalearth")
- Load these packages in your R session. If all is working as it should, you may get a message similar to
Linking to GEOS 3.8.1, GDAL 3.1.4, PROJ 6.3.1
when loading thesf
package (version numbers may differ).
If you’re unable to get this working, let me know.


Difficulty：
Start Game
Game Settings
Help
Game Settings
Keyboard configurations
Up Key:
Down Key:
Left Key:
Right Key:
Low Speed Key:
Back to Default
Adjust difficulty
MonkeyHumanLunaticReturn
Help
1. Have fun！
2. Blockchain integration (global leaderboard!) coming soon.
3. More advanced game features coming...
Return
Current balance: SPcoin
Default
ID: 0
Create by: admin
Price (in SP coin): 0
Address: 0x0000000000000000000000000000000000000000
Choose your fighter from below!
Upload your own fighter below.


Opinion: Zambezi’s Developmental Ills 22 Nov 2019, 08:27 by Staff Reporter Home \ Thought Leaders \ Opinion: Zambezi’s Developmental Ills - New Era Live


Preparation time
less than 30 mins
Cooking time
10 to 30 mins
Serves
Serves 2
Dietary
Preheat the oven to 220C/425F/Gas 7.
Heat the butter, sugar and rosemary in a saucepan until the sugar has melted and it is a golden brown colour. Add the apple slices, stir well and cook for five minutes, or until the apple is softened.
Remove the apple mixture from the heat and mash to a purée.
Line a baking sheet with parchment paper and lay out the puff pastry. Spread the pastry with the mashed apple mixture. Drizzle with honey and place in the oven to bake for 8-10 minutes, or until risen and golden.
For the sauce, melt the sugar and butter together in a clean saucepan. Once melted, turn up the heat and add the cream. Bring to the boil and cook until thickened.
To serve, pour the sauce over the tart and garnish with a mint sprig.


Utility methods for reflection. Use these methods if you are interested in the result of reflection, and not in a particular reason why some reflective inspection might have failed. The ppwcode exception vernacular is applied.