Toggle navigation
PirateCTF 2015
Produce Shell User
The team has been registered on the shell server!
There was an error registering the team: either the base64 string is not validly encrypted, or the team already has a shell account.
Encrypted Team Name
Create Shell Account


Overview
Welcome to Skyline.
What is Skyline?
Skyline is your ears and eyes, it is remarkably good at telling you when a state changes. It does not just chew bubblegum, it blows bubbles too.
But really Skyline is … For those interested in anomaly detection and deflection in streamed time series data.
Anomaly deflection. The obvious next evolution in the use of all the anomaly detection data?
Skyline is a Python based anomaly detection/deflection stack that analyses, anomaly detects, deflects, fingerprints and learns vast amounts of streamed time series data. Skyline has a number of isolated modules/apps that:
ingests streamed metric time series data - skyline/horizon
use a
`CONSENSUS`
of 3-sigma algorithms to detect anomalies on batch processed, streamed metric time series data - skyline/analyzer - anomaly detectorHandle large and small seasonality in the data - skyline/mirage - anomaly deflector and detector
You can train it on what is NOT anomalous and it learns - skyline/ionosphere - anomaly deflector
It records all your anomalies - skyline/panorama - anomaly memory
It shows you all your data - skyline/webapp - anomaly view
Seeing as we desire our metrics to be not anomalous most of the time and we want to know when they ARE anomalous and given the fact that we try and build systems that try to behave within not anomalous bounds so they perform well, due to this we have:
A lot of metric time series data that are not anomalous most of the time.
A lot of data to train a system on what is NOT anomalous given a time series data set, rather than simply focusing on what is anomalous, also focusing on what is not anomalous.
To achieve this Skyline implements a novel time series similarities comparison algorithm and a boundary layers methodology that generates fingerprints of time series data using the sum of the values of features of the time series which have been extracted using the tsfresh features extraction package - https://github.com/blue-yonder/tsfresh and evaluation against boundary layer algorithms to determine whether a 3-sigma triggered anomaly is actually a normal, known pattern in the data.
The Skyline-Ionosphere-Tsfresh Time Series Similarities Comparison Algorithm - SITTSSCA first coined here :) compares the generated fingerprints of the two time series and can determine if they closely resemble each other in terms of:
of the amount of “power/energy”, range and “movement” there is within the time series data set somewhat like RMS - Erol Kalkan from United States Geological Survey, “Another approach to compute the differences between two time series is moving window root-mean-square. RMS can be run for both series separately. This way, you can compare the similarities in energy (gain) level of time series. You may vary the window length for best resolution.” (https://www.researchgate.net/post/How_can_I_perform_time_series_data_similarity_measures_and_get_a_significance_level_p-value) http://stackoverflow.com/questions/5613244/root-mean-square-in-numpy-and-complications-of-matrix-and-arrays-of-numpy
The Skyline-Ionosphere-Tsfresh Time Series Similarities Comparison Algorithm compares how close the fingerprint values are as a percentage and varying this percentage variable will either focus the algorithm with greater precision, the closer to 0% the parameter gets, the perfect match (or possibly a mirror match too - unkonwn/untested) or it will incrementally increase the tolerance as the percentage variable increases and the matching will become less and less reliable.
However there is a sweet spot and here SITTSSCA works extremely well :)
Added to SITTSSCA is an optional layer of simple boundary algorithms that are user defined during the operator training interaction with Skyline, where the operator augments the SITTSSCA results with boundaries that describe the expected norm within the time series. Very similar to being able to describe the Active Brownian Motion of a time series - https://github.com/blue-yonder/tsfresh/pull/143#issuecomment-272314801
In addition to these two methods of similarity search Skline also uses mass_ts to find similar motifs in trained patterns.
This results in an anomaly detection/deflection system which enables the user to very simply label time series and train Skyline on the peaks and troughs and the expected Active Brownian Motion or best effort thereof.
However it takes a little effort on your part to train Skyline, however with the effort, Skyline is very good at doing anomaly detection and deflection.
With your help. There is no easy anomaly detection or deflection, but there is some reward with a bit of effort.
What you need
You must be interested in doing real time anomaly detection on vast amounts of time series data streams on a reasonable Linux VM (or in a container/s if you were really committed).
You are still here.
You use Graphite as your time series data source? No?
Currently Skyline needs Graphite, if you do not already have Graphite please consider setting Graphite up and if you like that, come back.
If you are still here and reading this, then maybe you are serious about installing and trying Skyline. In which case a word of warning, continuing from this point forward, will require a LOT of hours of your time.
Skyline is not some Python data science anomaly detection library, it is a full blown production grade anomaly detection stack. Although certain aspects of Skyline may have interest to the data science community.
Too much effort?
anomify offer a managed version of Skyline for people that do not have a vast amount of time to spare. You’ll get access to unreleased features and support from developers that have honed numerous Skyline integrations to alert on important metrics.
Anomify are looking for further test partners with various types of data and data sources, if you think you may have interesting metrics send an email to<EMAIL_ADDRESS>and get in touch.
A brief history
Skyline was originally open sourced by Etsy as a real-time anomaly detection system. It was originally built to enable passive monitoring of hundreds of thousands of metrics, without the need to configure a model/thresholds for each one, as you might do with Nagios. It was designed to be used wherever there are a large quantity of high-resolution time series which need constant monitoring. Once a metric stream was set up from Graphite, additional metrics are automatically added to Skyline for analysis, anomaly detection, alerting and briefly published in the Webapp frontend. github/etsy stopped actively maintaining Skyline in 2014.
Skyline - as a work in progress
Etsy found the “one size fits all approach” to anomaly detection wasn’t actually proving all that useful to them.
There is some truth in that in terms of the one size fits all methodology that Skyline was framed around. With hundreds of thousands of metrics this does make Skyline fairly hard to tame, in terms of how useful it is and tuning the noise is difficult. Tuning the noise to make it constantly useful and not just noisy, removes the “without the need to configure a model/thresholds” element somewhat.
It has been generally accepted now that a basic 3-sigma anomaly detection implementation is not generally useful in the operations and machine metrics space.
- David Gildeh:
“I still remember taking Skyline and applying it to one of our customer’s metrics, and turning 100,000 metrics into 10,000 anomalies. It just created more noise from the noise.” https://blog.outlyer.com/what-good-is-anomaly-detection
This is still true of Skyline today, it will still detect the 10000 anomalies and it should. Detecting anomalies and alerting are two entirely different things.
So why continue developing Skyline?
To try and make it better and more useful. 3-sigma anomaly detection works, but it works too well. Therefore there is an opportunity to see if it is possible to augment 3-sigma methods with additional analyses with new and different techniques, including the use of historic data in real time, to be more useful and provide additional insight into related time series data. One of the key paradigm shifts that is perhaps needed is to change the mindset that anomaly detection and alerting are synonymous with each other or related in any way, which seems to be general public opinion. Skyline does anomaly detection, anomaly deflection, training and learning, and alerting is simply a byproduct of this analysis pipeline, if you want to enable it.
The first way to make Skyline MUCH better than the manner it was implemented and framed by Etsy, is to NOT try and use it to alert on 1000s of metrics in the first place. Using Skyline as a scapel for alerting and a sword for anomaly detecting, rather than using it as a sword for anomaly detecting AND alerting.
Within in this paradigm, Skyline is still essentially 3-sigma based, however now being augmented with additional analysis and methods, Skyline has been much improved in many ways and is very useful at doing anomaly detection, recording anomalies, correlating and alerting and training on your KEY metrics. The ongoing development of Skyline has been focused on improving Skyline in the following ways:
Improving the anomaly detection methodologies used in the 3-sigma context.
Extending Skyline’s 3-sigma methodology to enable the operator and Skyline to handle seasonality in metrics.
The addition of an anomalies database for learning and root cause analysis.
Adding the ability for the operator to teach Skyline and have Skyline learn things that are NOT anomalous using a time series similarities comparison method based on features extraction and comparison using the tsfresh package. With Ionosphere we are training Skyline on what is NOT anomalous, rather than focusing on what is anomalous. Ionosphere allows us to train Skyline as to what is normal, even if normal includes spikes and dips and seasonality. After all we have some expectation that most of our metrics would be NOT anomalous most of the time, rather than anomalous most of the time. So training Skyline what is NOT ANOMALOUS is more efficient than trying to label anomalies.
Adding the ability to Skyline to determine what other metrics are related to an anomaly event using cross correlation analysis of all the metrics using Linkedin’s luminol library when an anomaly event is triggered and recording these in the database to assist in root cause analysis.
And…
The architecture/pipeline works very well at doing what it does. It is solid and battle tested.
Skyline is FAST!!! Faster enough to handle 10s of 1000s of time series in near real time. In the world of Python, data analysis, R and most machine learning, Skyline is FAST. Processing and analysing 1000s and 1000s of constantly changing time series, every minute of every day and it can do it in multiple resolutions, on a fairly low end commodity server.
Is Skyline better than other things at anomaly detection? Unknown. The development of Skyline is not focused on making it be better than other things or the best, it is focused on trying to make Skyline better than it was and currently is. Unfortunately Skyline no longer fits the NAB benchmark method as it’s methods operate exclusively in the real time arena on real time data, historic data and trained patterns and this could not be bolted into a NAB test and would violate the NAB benchmark requirements.
The new look of Skyline apps
Horizon - feed metrics to Redis via a pickle input from Graphite/s
Analyzer - analyses metrics with 3-sigma algorithms
Mirage - analyses specific metrics at a custom time range with 3-sigma algorithms
Boundary - analyses specific time series for specific conditions
Crucible - store anomalous time series resources and adhoc analysis of any time series
Panorama - anomalies database, historical views and root cause analysis
Webapp - frontend to view current and historical anomalies, training data, features profiles, layers, matches and can browse Redis with rebrow and you manage Skyline’s learning with it
Ionosphere - time series fingerprinting and learning
Luminosity - Cross correlation of metrics for root cause analysis
Skyline is still a near real time anomaly detection system, however it has various modes of operation that are modular and self contained, so that only the desired apps need to be enabled, although the stack is now much more useful with them all running. This modular nature also isolated the apps from one another in terms of operation, meaning an error or failure in one does not necessarily affect others.
Skyline can now be feed/query and analyse time series on an ad hoc basis, on the fly. This means Skyline can now be used to analyse and process static data too, it is no longer just a machine/app metric fed system, if anyone wanted to use it to analyse historic data.
A simplified workflow of Skyline
This is a bit out of date.
Fullsize image for a clearer picture.
What’s new
See whats-new for a comprehensive overview and description of the latest version/s of Skyline.
What’s old
It must be stated the original core of Skyline has not been altered in any way,
other than some fairly minimal Pythonic performance improvements, a bit of
optimization in terms of the logic used to reach settings.CONSENSUS
and a
package restructure. In terms of the original Skyline Analyzer, it does the
same things just a little differently, hopefully better and a bit more.
There is little point in trying to improve something as simple and elegant in methodology and design as Skyline, which has worked so outstandingly well to date. This is a testament to a number of things, in fact the sum of all it’s parts, Etsy, Abe and co. did a great job in the conceptual design, methodology and actual implementation of Skyline and they did it with very good building blocks from the scientific community.
The architecture in a nutshell
Skyline uses to following technologies and libraries at its core:
Python - the main skyline application language - Python
Redis - Redis an in-memory data structure store
numpy - NumPy is the fundamental package for scientific computing with Python
scipy - SciPy Library - Fundamental library for scientific computing
pandas - pandas - Python Data Analysis Library
rebrow - Skyline uses a modified port of Marian Steinbach’s excellent rebrow
tsfresh - tsfresh - Automatic extraction of relevant features from time series
memcached - memcached - memory object caching system
pymemcache - pymemcache - A comprehensive, fast, pure-Python memcached client
luminol - luminol - Anomaly Detection and Correlation library
falcon - falcon - bare-metal web API framework for Python
adtk - adtk - Anomaly detection toolkit
matrixprofile - matrixprofile - time series data mining tasks, utilizing matrix profile algorithms
mass-ts - mass_ts - MASS (Mueen’s Algorithm for Similarity Search) - library for searching time series sub-sequences under z-normalized Euclidean distance for similarity.


"My default place to write: dump ideas, move to structure, flesh em out, rearrange, edit, export."
"I can recommend gingko — very cool web tool for structuring prose. Got me through the third act of the last novel..."
"It took away so much of my writing anxiety that it got me through from undergrad to a Ph.D. now."
| Gingko 1 Web App (stable) |
Gingko 2 Desktop (beta) |
Gingko 2 Web App (beta) |
|
|---|---|---|---|
| Work offline | × | ✓ | × |
| Full version history | × | ✓ | ✓ |
| Online Collaboration, LaTeX support |
✓ | × | × |
| Sync across devices | ✓ | in backlog | ✓ | Free Trial | 100 cards/month | 30 days of usage | Unlimited during beta |
| Pay What You Want Pricing | $2 → $21 monthly subscription |
$15 → $90 one-time payment |
Free during beta |
| Ongoing Development | × | ✓ (slow) | ✓ (active) | Signup or login |
Download |
Signup or login |


Trump says will probably release second Ukraine transcript on Tuesday
WASHINGTON (Reuters) - U.S. President Donald Trump said on Saturday that the White House would probably release a transcript of a second call with Ukrainian President Volodymyr Zelenskiy on Tuesday.
“We have another transcript coming out which is very important,” Trump told reporters at Joint Base Andrews before leaving for a visit to Tuscaloosa, Alabama.
Trump said the second transcript would probably be released on Tuesday.


html/css | bootstrap | javascript | angularjs | nodeJs | express | google maps api
This was my very first full stack application. I have friends in the city who own chicken coops & always have extra eggs. COOP lets people find and connect with backyard chicken coops in their area so they can get fresh, local eggs. People with coops can also list & manage their coops. I love anything that encourages people (who are already neighbors!), to connect & build a community where everyone can source + benefit.
Landing Page - where users can sign in / sign up
Sign in / Sign up page
Users can also list their coop & fill out details
Once signed in or listed, the user can see a map with all available coops in their area / the coop just listed.


About Us
We are committed to give our clients the best experience while learning web development. Here at Everest, we provide best services that help our clients grow their businesses exponentially. We are proud to announce our partnership with Lucid Web, a hosting company located in Palo Alto, which will bring hosting solutions to our clients. As a result of the joint efforts between Lucid Web and Everest Web Design, our customers are set too tremendous growth in next few quarters.
We hope you enjoy our services as much as we enjoy offering them to you. If you have any questions or comments, please don't hesitate to contact us.
Sincerely,
Ashraya Gautam,
Founder & CEO, Everest Web Design


Running Umbraco from a USB drive
With the release of Umbraco 4.6 (Juno), users now have the option of using Microsoft’s new embedded database engine, SQL CE 4. This means that you don’t need to depend on using a database server (such as SQL Server [Express] or MySQL), you can run Umbraco exclusively from the file-system!
Also recently released is IIS Express 7.5, (another Microsoft web technology, as part of their WebMatrix framework), which offers a lightweight version of IIS – aimed at developers as a replacement for the Cassini web-server. One of the major features of IIS Express are that it can be launched straight from disk – it does not need to be registered/configured on the operating-system/machine.
Now, this got me thinking… Would it be possible to run Umbraco from a USB drive? Well, guess what?
#umbraco 4.6.1 + IIS Express 7.5 + SQL CE 4 + USB key = Success!
— Lee Kelleher (@leekelleher) January 14, 2011
Best of all its very very easy to do… here’s how:
- Download and install IIS Express 7.5 and SQL CE 4 – the quickest and easiest way is to install WebMatrix.
- Download Umbraco 4.6.1 (latest version at the time of writing) and also the “SQLCE4Umbraco.dll” assembly.
- Copy the following to your USB drive:
- Extract the Umbraco zip file, rename the “build” folder to something else – like “wwwroot”, then copy that to the USB.
- Copy over the “SQLCE4Umbraco.dll” into the “wwwroot\bin” directory.
- Copy the “IIS Express” directory (typically found at “C:\Program Files (x86)\IIS Express”) to the USB.
- Copy the SQL CE 4 binaries (typically found at “C:\Program Files (x86)\Microsoft SQL Server Compact Edition\v4.0\Private”) – also copy the “amd64” and “x86” sub-directories – to the “wwwroot\bin” on the USB drive.
- Once everything is in place, you should have 2 root directories, “IIS Express” and “wwwroot”.
- Open up a command prompt, run the following command:
"E:\IIS Express\iisexpress.exe" /path:E:\wwwroot /port:8080
- Open a new web-browser window, go to “http://localhost:8080”.
- If everything went to plan, the command prompt will display an output of all incoming requests.
- Back in the web-browser window, you should be prompted with the Umbraco installer wizard. If not, something went wrong! :-(
- Remember to used the SQL CE 4 database engine!!! (otherwise it wont be portable)
Once I had successfully installed Umbraco, I tried out a few packages; e.g. uComponents, set up an MNTP data-type, which worked as expected! Great!
After that I removed the USB drive; booted up my old laptop (Windows XP SP3) to see if it would still work. First try it failed! I didn’t have .NET 4.0 framework installed. Once I installed it, re-ran the command prompt – portable Umbraco worked as expected!
One point to raise is that I did notice slower performance of the Umbraco back-office – which doesn’t surprise me – since I was using a fairly old USB drive, but still the lag wasn’t enough to be overly concerned about.
Personally I see the portability of Umbraco to be very useful for client/customer demos/meetings… for any Umbraco developers who want to showcase their favourite CMS, now there is no excuse not to have a working copy in your pocket!


Writing your own translator
A translator is the piece of code responsible for translating a
list of pipelines steps into anything you see fit. For intsance,
this packages comes with a mongo36
translator that translates a list
of pipeline steps into the list of corresponding mongo instructions.
You could imagine writing your own translator to output SQL
code or
pandas code or just a plain human-readable text,
etc. We call each of this output type a “backend”, that is a symbolic name for
the kind of output your translator produce. It has no specific meaning but we
would advise to keep it lowercase, short, readable and self-explanatory.
To define your own translator, you need to:
-
create a translator class extending the default
lib/translators/base:BaseTranslator
class -
implement a transformation method for each pipeline step your backend supports
-
write tests for your backend
-
register your backend so that is it available
Creating a transatlor class
All pipeline steps are defined in the lib/steps
using typescript interfaces.
Each step type defines at least a name
property which is required to be unique
among all possible step types. A generic PipelineStep
type is defined as being
the union type of all available step types.
Your translator class will have to extend the lib/translators/base:BaseTranslator
class and provide a transformation method for each supported step type. The method
name has to match exactly the name of step type. It should accept a step
parameter with the correspding type and return whatever you need.
For intance, suppose that you want to support the rename
and filter
step
only, your translator module might look like:
import { BaseTranslator } from '@/lib/translators/base';
import { RenameStep, FilterStep } from '@/lib/steps';
class MyTranslator extends BaseTranslator {
rename(step: RenameStep) {
return 'rename!';
}
filter(step: FilterStep) {
return 'filter!';
}
}
…and that’s it. The BaseTranslator
class will provide additional facilities:
-
a
supportedSteps
property that will return the list of steps supported by your backend. In our example case, it will return['filter', 'rename']
-
an
unsupportedSteps
property which is the dual operation and will return the list of all unsupported steps -
a
translate
method which accepts an array of pipeline steps and return an array of whatever your transformation methods return. The default implementation is to iterate over all steps in the pipeline, call the corresponding transformation method and append the result to an output list. Of course, if you want something more clever, you can override the default implementation.
Registering your translator
Use the registerTranslator
helper:
import { registerTranslator } from '@/lib/translators';
class MyTranslator extends BaseTranslator {
// implementation…
}
registerTranslator('my-backend', MyTranslator);
and make sure your module is imported somewhere so that registerTranslator
gets called.
Getting a translator
Most of the time, you’ll know which backend you want to get a translator for. In this case, you’ll just have to use the getTranslator
method:
import { getTranslator } from '@/lib/translators';
const myTranslator = getTranslator('my-backend');
const outputSteps = myTranslator.translate(
{ name: 'domain', domain: 'my-domain' },
{ name: 'rename', oldname: 'old', newname: 'new' },
{ name: 'rename', oldname: 'old2', newname: 'new2' },
);
Querying the registry
Sometimes, you’ll just want to get some information on available backends or all backends supporting a specific operation:
import { availableTranslators, backendsSupporting } from '@/lib/translators';
for (const [backend, translator] of Object.entries(availableTranslators)) {
console.log(`backend ${backend} supports t${translator.supportedSteps}`);
}
Or, to get the list of backends supporting the ‘rename’ operation:
const backends = backendsSupporting('rename');
console.log(`${backends} supports the "rename" operation`);
- Previous
- Next


PO Belur Math, Dist Howrah 711202
West Bengal, India
Phone: (033) 2654-9999
Mobile:<PHONE_NUMBER>
rkmveri@gmail.com


We're sorry but vue-argon-dashboard doesn't work properly without JavaScript enabled. Please enable it to continue.


admins-MacBook-Pro-3:hygull.github.io admin$ python ~/projects/Python/PythonFiles/python_for_loops.py
1
2
3
4
5
6
7
8
9
10
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
4
6
8
10
12
14
16
18
20
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
10 20 30 40 50 60 70 80 90 100
R i s h i k e s h
1
3
7
9
11
admins-MacBook-Pro-3:hygull.github.io admin$
Output
"""
date of creation : 04 Feb 2017.
aim of script : To understand the concept of for loops in python.
coded by : Rishikesh Agrawani.
"""
for i in range(1,11): #Printing natural numbers from 1 to 10
print i #Newline will be automatically appended
for j in range(5,21): #Printing numbers from 5 to 20
print j
for k in range(2,21,2): #Printing even numbers between 1 and 21, here 2 denotes the increment
print k #in each iteration
for i in range(1,11): #Printing tables for numbers in range [1,10]
for j in range(1,11): #Nested loop
print i*j,"\t",
print "\n"
for c in "Rishikesh": #Printing all characters of string 'Rishikesh' in a line separated
print c,"\t", #by tab
print ""
for num in [1,3,7,9,11]: #Printing all the numbers of list one by one in new lines
print num


{% include google-analytics.html %} {% include structured-data.html %}
Working Groups Two's blog is open-source and hosted on GitHub. Anyone is free to suggest changes through GitHub.
Cancel Suggest a change


Samsung shares tidbits on how it went about designing the Galaxy Fold
by Abhijeet M.Samsung’s first foldable device may only have arrived in retail shelves this year, but it has been cooking in the oven for quite a few years. The Galaxy Fold is one complex and beautiful piece of machinery that makes foldable displays a reality, and Samsung has now published a post titled ‘From Concept to Creation: Designing the Galaxy Fold’ that takes us through some of the design choices and the thought process behind the Fold.
Nearly 1000 prototypes were tested before Galaxy Fold design was finalized
Samsung says that it studied how people fold and unfold various things, such as books and wallets, in their day-to-day life to finalize the form factor of the Galaxy Fold. Its design team also “constructed over 1,000 prototypes using a wide array of materials, including foam board and various fabrics” before settling for the in-folding design, which is, in our opinion, a lot more sensible than a foldable display that folds outwards. The main display was chosen to be 7.3 inches in size so it could offer sufficiently large screen real estate and still be easy to carry around.
Samsung also made sure the two halves of the device are equally heavy for a balanced feel, while the fingerprint sensor is located where a user’s thumb naturally falls. Of course, an in-display fingerprint reader would be comfortable for both right and left-handed users, but that was clearly not an option considering the foldable display is made of plastic and wouldn’t handle the pressure needed to operate in-display fingerprint readers. And physical fingerprint readers are superior when it comes to speed and accuracy, so we’re not exactly complaining that the $2000 Fold doesn’t have the newer fingerprint tech from the Galaxy S10 and Galaxy Note 10.
Galaxy Fold
- Model: SM-F900F
- Dimensions: Unfolded: 160.9 x 117.9 x 6.9 mm Folded: 160.9 x 62.9 x 15.5 mm
- Display: 7,3" (185.4mm) Super AMOLED
- CPU: Qualcomm Snapdragon 855
- Camera: 16 MP, CMOS F2.2 & 12MP, CMOS F1.5/F2.4Wide & 12MP, CMOS F2.4 Telephoto


ASRS
Connect to ASRS web-hardware API
Offline
Online
ASRS
Status: IDLE
Location: HOME
Commands
Move to
Pick from
Place to
Current task:
Empty
Queue:
Empty


{% extends "layout.html" %} {% block page_title %} Registered Traveller {% endblock %} {% block content %} Back What is your child's date of birth as written in their passport? For example, 11 06 2005 Day Month Year What is your child's gender as written in their passport? Select which of these applies to you Male Female Unspecified {% endblock %}
For example, 11 06 2005


Alien Adventures
Ever wanted to be abducted by aliens? Sign up for an out-of-this-world kidnapping, taylored to your personal preferences!


This app checks a Stardew Valley save file for various achievements and milestones and lets you know what is missing. Currently it checks for progress on 38 achievements (everything but the 2 Praire King minigame achieves) and Grandpa's evaluation. It also summarizes relationship progress, including cutscenes.
Support for changed & added content from the ongoing version 1.3 open beta is in progress; 1.3-specific features should only appear in the results if the save is detected to be from that version. Multiplayer saves (i.e. those with cabins, even if nobody has used them) are particularly troublesome at the moment. Please report any bugs, suggestions, or other feedback to the topic in the official forums.
The app is written in Javascript and uses jQuery; it is hosted on GitHub Pages at https://mouseypounds.github.io/stardew-checkup/ and the source code repository is https://github.com/MouseyPounds/stardew-checkup.
Select a save file to check:
Please use the full save file named with your farmer's name and a 9-digit ID number (e.g. Fred_148093307); do not use the SaveGameInfo file as it does not contain all the necessary information.
Default save file locations are:


Search Page
{% if non_filled %}
Error: at least one field must be entered
{% elif no_match %}
No movies match your search
{% endif %}
{% if movies %}
| Title |
Director |
Actor 1 |
Actor 2 |
Year |
Duration |
Rent |
Purchase |
{% for item in movies %}
| {{item.title}} |
{{item.director}} |
{{item.actor1}} |
{{item.actor2}} |
{{item.year}} |
{{item.duration}} mins |
|
|
{% endfor %}
{% endif %}
Return to Main Page


LPRatingViewCompletionStatus
public enum LPRatingViewCompletionStatus
LPRatingViewCompletionStatus
The completion status is sent once the last possible state for a LPRatingView
has happened.
-
The user has approved twice, and the view may now be removed and any other neccessary code may be run
Declaration
Swift
case ratingApproved
-
The user has approved once but rejected the final approval, and the view may now be removed
Declaration
Swift
case ratingDenied
-
The user has rejected once, but approved the final time, the view may now be removed and handling code may be run
Declaration
Swift
case feedbackApproved
-
The user has rejected twice, and the view may now be removed
Declaration
Swift
case feedbackDenied


public interface MessagerConnector
Interface for integrating several instant messagers.
| Modifier and Type | Method and Description |
|---|---|
void |
disableUser(String username)
This method is called if a user disables this connector.
|
void |
enableUser(String username)
This method is called if a user enables this connector.
|
String |
getBlogMessagerId(long blogId)
returns the blog in the messages format.
|
String |
getClientId(String client) |
String |
getClientMessagerId(String clientId)
Returns the client in the messagers format.
|
String |
getDescription()
Returns a description for this messager.
|
String |
getId()
Returns a unique messager id.
|
String |
getName()
Returns the connectors name.
|
String |
getUserAlias(String username)
This method extracts the correct user alias for this connector.
|
String |
getUserMessagerId(long userId)
Returns the user in the messagers format.
|
boolean |
isAvailable(String username)
This method checks if the user is available or not.
|
boolean |
isConnected() |
void |
sendMessage(Message message)
New messages are send to the connector via this method.
|
void |
start()
Call this to start the connector.
|
void |
stop()
Should be called before the connector is removed.
|
void disableUser(String username)
This method is called if a user disables this connector.
void enableUser(String username)
This method is called if a user enables this connector.
String getBlogMessagerId(long blogId) throws BlogNotFoundException, BlogAccessException
returns the blog in the messages format.
String getClientMessagerId(String clientId)
Returns the client in the messagers format.
String getDescription()
Returns a description for this messager.
String getId()
Returns a unique messager id.
String getName()
Returns the connectors name.
String getUserAlias(String username)
This method extracts the correct user alias for this connector.
String getUserMessagerId(long userId)
Returns the user in the messagers format.
boolean isAvailable(String username)
This method checks if the user is available or not.
boolean isConnected()
void sendMessage(Message message) throws MessagerException
New messages are send to the connector via this method.
MessagerException
void start()
Call this to start the connector.
void stop()
Should be called before the connector is removed.
Copyright © 2019 Communote team. All rights reserved.


|
Quick Links: |
#include <bmqa_messageevent.h>
Public Member Functions | |
| MessageEvent () | |
| MessageEvent (const MessageEvent &other) | |
| MessageEvent & | operator= (const MessageEvent &rhs) |
| MessageIterator | messageIterator () const |
| bmqt::MessageEventType::Enum | type () const |
| bsl::ostream & | print (bsl::ostream &stream, int level=0, int spacesPerLevel=4) const |
An event containing messages received from a queue. The application can consume messages using the message iterator.
See Component bmqa_messageevent
| bmqa::MessageEvent::MessageEvent | ( | ) | [explicit] |
Create an unset instance. Note that type()
will return bmqt::MessageEventType::UNDEFINED
.
| bmqa::MessageEvent::MessageEvent | ( | const MessageEvent & | other | ) |
| MessageEvent& bmqa::MessageEvent::operator= | ( | const MessageEvent & | rhs | ) |
| MessageIterator bmqa::MessageEvent::messageIterator | ( | ) | const |
Return a MessageIterator
object usable for iterating over the Message
objects contained in this MessageEvent
. Note that obtaining an iterator invalidates (resets) any previously obtained iterator. The behavior is undefined if type()
returns bmqt::MessageEventType::UNDEFINED
.
| bmqt::MessageEventType::Enum bmqa::MessageEvent::type | ( | ) | const |
Return the type of messages contained in this MessageEvent.
| bsl::ostream& bmqa::MessageEvent::print | ( | bsl::ostream & | stream, | |
| int | level = 0 , |
|||
| int | spacesPerLevel = 4 | |||
| ) | const |
Format this object to the specified output stream
at the (absolute value of) the optionally specified indentation level
and return a reference to stream
. If level
is specified, optionally specify spacesPerLevel
, the number of spaces per indentation level for this and all of its nested objects. If level
is negative, suppress indentation of the first line. If spacesPerLevel
is negative format the entire output on one line, suppressing all but the initial indentation (as governed by level
). If stream
is not valid on entry, this operation has no effect.


Download and Load Local Images
This assignment describes how to work with images that you have stored directly on your website.
We have been linking to images stored on remote sites such as the Wikimedia Commons. Quite often, however, the files you want to display will not be remote, but instead will be stored directly on your website.
Local Files
Most of the files we use are stored directly on our website. For instance, our index.html and styles.css are local files stored directly on our website. Example of remote files would be the images on the Wikimedia Commons that we link to in our img elements
Let's take a moment to review how we get local files to our website. When working with GitHub pages, we place files on our local website by following these steps:
- We copy the file to our local repository or we create the file directly inside our repository.
- We push the repository to the cloud. That is, we push it to GitHub.
- GitHub then makes the file part of our GitHub pages website.
Why we Store Files Locally
Here are a few examples of times when you might want to store images locally on your own site:
- If you took the picture yourself, and copied it directly from your camera or hard drive to your repository.
- If you are concerned that a remote picture might take a long time to load.
- If you find an image on the web that you cannot link to directly for one reason or another. For instance, some sites ask you to download their pictures rather than having you link to them directly. This saves the site money, as they don't have to pay for hosting your image.
- If you find an image on the web that you can modify. In that case, you need to download it first, modify it, and then store the modified file locally.
Download an Image
Let's step through an example case where you would store a file locally. The site called pixabay has at times asked that you not link directly to their images. Instead, they want you to first download the image, then store them locally on your website. See the Pixabay FAQ, focusing on the Hotlinking section.
NOTE: Despite the FAQ, I'm not sure that Pixabay still has this policy. Regardless of whether or not they ask that you download the image, that is what I want you to do. It is always better to err on the side of caution when it comes to copyright issues and related policies. The point of this exercise is not to track Pixabay's rules, but to get practice downloading images.
Using a picture that you took yourself, or that you downloaded from Wikimedia are also valid options when you are building up your site. Howeverl I want you to start by getting a particular image.
To get started, go to this page and download the 640X426 version of this file:
https://pixabay.com/en/utah-mountain-sky-nature-440520/Download the image into a subdirectory of your repository called images.
Load the Image
Create a file called download-image.html in the assignments directory of your repository. (If that directory does not exist, please create it. Prep the new HTML file as you usually would, and link in our styles/styles.css file. This CSS file must must be one that you created by hand. Finally, link to download-image.html from your GitHub pages home page. Your home page is usually called index.html and is located in the root of your repository.
In your new HTML document, load the image you downloaded using code identical or similar to this:

In the src attribute, we don't just write the name of the jpg file. Instead, we write both the directory where the file is stored and the name of the image file:
src="/images/utah-440520_640.jpg"
We do this because download-images.html is in the assignments directory of you site, but the jpg file is in the images directory. Note that this particular image does not require attribution. This fact is spelled out on the pixabay site.
Relative Paths
One of the most important subjects in web development involves composing relative paths. This is an absolute path:

Paths like this can be linked from anywhere in the web. But suppose you are trying to link to a document on your own web site. In those cases, you don't need to include the name of your website because you are already on your website. Instead, you can just enter the name of the file you want to link to. Sometimes you need to include directory information, as we did in the previous section where our file was stored in the images directory. That was an example of a relative path, but it was a simple example.
The trouble comes when you are in a subdirectory of your website and want to link to a document that is closer to the root of your site, or that is in a directory that is closer to the root. Consider the case where you want to add a link from a file in your theme directory to an image in your images directory.
theme/index.html
images/foo.png
In that case, the load statement to the a file in the images directory would involve a relative path:

The funky looking ../images syntax means that you are navigating back one directory closer to the root and then navigating into the images directory.
Suppose you were in a directory called theme/mountains.
theme/mountains/index.html
images/foo.png
Then you would do this:

In this case you move back two directories before navigating into the images directory.
Turn it in
Check that you do the following:
- Store two images in the images directory. One is the mountain image referenced above, the second is a file that fits in with your theme site.
- Put an h1 element in the header section at the top of the document. Put the images in main. Include two P elements that describe your pictures.
- Display both images in download-images.html. This HTML file should be in the assignments directory of your repository.
- Provide a link to your download-image.html file from the home page on your GitHub pages site.
NOTE: In the midterm, I'm going to ask that you link to files that are stored on remote sites, and stored locally. So this will be a chance to ensure that the home page of your theme directory links to files of both types. In other words, this is both a stand alone assignment and a step toward your midterm.
In declaring an image, it is sometimes a good idea to specify the width and height in a CSS file or sometimes in the tag itself. Note that if you define the width and height in the tag, and then want to define it in the CSS, I would carefully check how it turns out, and if you need to remove the tags from the img attribute or override both in the CSS.
Also consider this doing this if you are so inclined and understand what I want:
- Display one of the local images in the index.html file from your theme directory.
See the example at the top of the MDN page on the img element to see how to use CSS to define the width of an image.


blue is a Systems Research Group
We design, build, and evaluate novel computer systems. We are currently working on smartphones, today's most pervasive mobile technology. Our research aims to make smartphones more useful, safer, and more sustainable. But at blue we put people first. Our primary mission is to train computer scientists and our primary product is people. We try to align everything else in service of that goal, which results in putting people before projects before papers.
People
Putting people first reflects the fact that as an academic research group blue's primary purpose is to train future researchers and developers. Lab members are in school and are here to learn. When conducting research, our objective is to allow students the chance to come up with new ideas, develop them into prototype systems, evaluate them objectively, and then communicate their results effectively to the broader scientific community. Along the way they are developing analytical skills and leadership abilities they benefiting the majority of their career in technology that occurs after they leave blue.
Projects
Putting people before projects means allowing blue group members to choose and lead projects that excite them and letting projects proceed at a pace that benefits members' personal development. We utilize our freedom as an academic research lab to identify novel directions that we are excited about pursuing without the constraints of a company or industrial research lab. But along the way we are careful not to miss opportunities to allow blue group members to learn and grow as they develop their projects—even if this means development doesn't always happen as fast as possible.
Papers
Putting projects before papers allows us to work on projects that interest us—not just ones that might quickly lead to a publication—and to publish when ready. While acceptance rates at many systems conferences are low enough to be discouraging, we believe that publishing should be a fundamentally happy undertaking. It's our chance to share what we've found with the world outside our group, and to celebrate the hard work and growth of blue members. We also don't work on projects because we need to publish papers—we work on projects because we love building things and we're curious about what will happen when we try something new.
Together In the Lab
blue is fortunate to have a single lab large enough to house all current group members—currently Davis Hall Room 301B, also know as the PhoneLab. Inspired by the organization of groups like the Berkeley AMP Lab, as well as the organization of typical startups and technology companies, all group members—faculty, administrators, graduate students and undergraduates—work side-by-side in our lab. This arrangement allows for spontaneous real-time collaboration and problem solving while also building a sense of camaraderie. Group members are asked to be present in the lab during certain hours to facilitate interaction. New blue members find it easy to get started since there are always more experienced developers nearby, and many discussions that take place in the lab have benefited from being overheard by group members that were not directly engaged in the project. It also just ends up being a lot of fun!


--- layout: post podcast_file_name: 'episode5.mp3' duration: '04:41' data_length: '5634639' published: true title: Episode 5 --- {% include post_start.html %} {% include note.html project='BitlyForiOS' version='0.0.1' author='Brennan Stehling' twitter='smallsharptools' description='Bitly link shortener.' homepage='https://github.com/brennanMKE/BitlyForiOS' source='https://github.com/brennanMKE/BitlyForiOS' %} {% include note.html project='CompactConstraint' version='0.1.0' author='Marco Arment' twitter='marcoarment' description='Simple NSLayoutConstraint expression parser for more readable autolayout code.' homepage='https://github.com/marcoarment/CompactConstraint' source='https://github.com/marcoarment/CompactConstraint' %} {% include note.html project='OptionalBlockAnimation' version='1.0.0' author='Adam Iredale' twitter='iosengineer' description='A convenient extension to block animation.' homepage='https://github.com/iosengineer/OptionalBlockAnimation' source='https://github.com/iosengineer/OptionalBlockAnimation' %} {% include note.html project='NavigationControllerWithBlocks' version='0.0.1' author='Morissard Jérome' twitter='leverdeterre' description='The UINavigationController missing methods, push/pop with completionBlocks.' homepage='https://github.com/leverdeterre/NavigationControllerWithBlocks' source='https://github.com/leverdeterre/NavigationControllerWithBlocks' %} {% include note.html project='TDBWalkthrough' version='1.0.1' author='Titouan Van Belle' twitter='TDeBailleul' description='An easy way to add a walkthrough at launch.' homepage='https://github.com/TitouanVanBelle/TDBWalkthrough' source='https://github.com/TitouanVanBelle/TDBWalkthrough' %} {% include note.html project='Flow' version='1.0.1' author='Oliver Letterer' twitter='oletterer' description='Tutorial framework for gesture driven UIs, Facebook Paper style.' homepage='https://github.com/OliverLetterer/Flow' source='https://github.com/OliverLetterer/Flow' %} {% include note.html project='Maris' version='1.0.0' author='Scott Petit' twitter='ScottPetit' description='AFNetworking 2.0 and Mantle made easy.' homepage='https://github.com/ScottPetit/Maris' source='https://github.com/ScottPetit/Maris' %} {% include note.html project='AKANetworkLogging' version='0.1.0' author='Arlo Armstrong' twitter='' description='Network request logging of customizable verbosity.' homepage='https://github.com/arlophoenix/AKANetworkLogging' source='https://github.com/arlophoenix/AKANetworkLogging' %}
Soundtrack: Kitchen Suite by Spiedkiks, "Take Off Your Make Up".
{% include post_end.html %}


# Pub-Sub and Security in Meteor
.title-logo[![Red logo](/public/img/red-logo-white.svg)]
# Agenda
1. Create Meteor Methods & DDP
2. Set up Pub/Sub
.large[
Think of Meteor Methods as an **API for your server**.
]
???
- Methods are Meteor’s remote procedure call (RPC) system, used to save user input events and data that come from the client
- You can think of them like POST requests to your server, but with many nice features optimized for building a modern web application
- At its core, a Method is an API endpoint for your server
- Methods is usually capitalized to distinguish from JS methods
# Typical Client/Server Relationship
- Server implements a REST API in language X
- Someone has to write a library for accessing that API in the client's language
- The client uses the library to interact with the server
# Meteor Client/Server Relationship
- Methods are written on the server
- Client uses the Meteor interface to call the Method
# DDP
- Stands for **D**istributed **D**ata **P**rotocol
- **Server:** define a realtime queries using `Meteor.publish`
- **Client:** you call `Meteor.subscribe` to connect to a publication endpoint
- DDP then intelligently polls your database to pick up changes and push them down to the client
???
- DDP is a standard way to solve the biggest problem facing client-side JavaScript developers: querying a server-side database, sending the results down to the client, and then pushing changes to the client whenever anything changes in the database
- Uses websockets
- DDP messages are JSON objects
.inline-images[
![Meteor pub/sub diagram](/public/img/slide-assets/meteor-pub-sub.png)
]
.footnote.right[
Source: [GeekyAnts](https://blog.geekyants.com/meteor-react-native-simplicity-productivity-a62559a1a570)
]
.large[
Our app is insecure right now. Why?
]
# Getting Started
The first step toward securing our app is to remove the default `insecure` package from the Meteor app:
```bash
meteor remove insecure
```
Congrats! You have now revoked the client-side permissions from your app, and will no longer be able to update your to-dos, or add new ones...let's fix that.
# Where to Put Methods
In our `imports/api/todos.js` we'll make a call to `Meteor.methods()`. Add a Method for `toggleComplete`:
```js
// in todos.js...
Meteor.methods({
'todos.toggleComplete' (todo) {
if (todo.owner !== this.userId) {
throw new Meteor.Error('todos.toggleComplete.not-authorized',
'You are not allowed to update to-dos for other users.');
}
ToDos.update(todo._id, {
$set: { complete: !todo.complete },
});
},
});
```
# Use the Method
To use the new toggling Method, we'll use `Meteor.call()` in our component:
```js
// in App.js...
toggleComplete(todo) {
// REMOVE THIS!
// ToDos.update(todo._id, {
// $set: { complete: !todo.complete },
// });
Meteor.call('todos.toggleComplete', todo); // NEW!
}
```
# Exercise 1
Your turn! Add Meteor Methods for `addToDo`, `removeToDo`, and `removeCompleted` now.
Call these new Methods in your `App` component where appropriate. When you're done, all of your `App` component's methods should work again as they did before.
# Publications and Subscriptions in Meteor
.large[
“Database everywhere” probably isn't a hot idea in a production app either...
]
# Data on the Client
We will want to a little more explicit about what data the server sends to the client in our app. To begin, start by removing this default Meteor package:
```bash
meteor remove autopublish
```
Congrats again! You can no longer view your to-dos, even when logged into your account. Let's also fix this...
# Simple Fix: Part 1
On the server side, we'll need to create a publication for our to-dos in `imports/api/todos.js`
```js
// in todos.js again...
if (Meteor.isServer) {
Meteor.publish('todos', function todosPublication() {
return ToDos.find({ owner: this.userId });
});
}
```
# Simple Fix: Part 2
One last step...we must subscribe to our publication within our the HOC wrapping the `App` component:
```js
export default createContainer(() => {
Meteor.subscribe('todos'); // NEW!
return {
currentUser: Meteor.user(),
currentUserId: Meteor.userId(),
todos: ToDos.find({}).fetch()
};
}, App);
```
**Note:** We can now remove the call to `filter()` in our `App` component's render method as the server will only provide us with the to-do documents for the currently logged-in user now.
# What We've Learned
- How Methods allow us to securely create endpoints on our server to complete various actions in our app
- How to use publications and subscriptions in Meteor to selectively choose what data is made available to the the client, and then import that data into a React component as props


This is a color guessing game .you will be given a set of rgb values and its your job to guess , and guess the right color if you wanna win!!
LinkThis will be a startup page based on one of my ideas which will be used for social cause . currently it is private will post it soon :)
LinkIn this to-do list you can add the events you want to keep track of, you can delete and strike through events of your choice.
LinkLearnt some ways to protect our systems from threats , and practice of protecting systems from digital attacks.
See CredentialsLearnt all the necessary requirements of making a website and finally learnt backend with node.js
See CredentialsI learnt basics of python and did some cool projects!! including tkinter library, Stay tune for the projects update.
See Credentials


A sample application demonstrating unit testing with various frameworks: ScalaTest, Specs2, ScalaCheck, JUnit, and TestNG.
This template is a companion to the Scala Testing video on the Typesafe YouTube channel. You can find the slides from the video in the "presentation" directory of the project.
For each framework, unit testing is demonstrated with tests written against scala's List class and a simple domain and service model located in the src/main/scala/models directory.
You can run the tests with sbt or your favorite IDE. Here are some helpful links:
ScalaTest is a popular testing framework for Scala applications and supports a variety of testing styles by mixing in traits.
To use ScalaTest with sbt you need to add it as a managed dependency in build.sbt:
libraryDependencies += "org.scalatest" %% "scalatest" % "2.1.6" % "test"
Scala IDE includes a ScalaTest plugin for running tests.
Sample test classes are located in the src/test/scala/scalatest directory and include the following:
Specs2 is a popular testing framework for Scala applications that uses a BDD style for test specifications.
To use Specs2 with sbt you need to add it as a managed dependency in build.sbt:
libraryDependencies += "org.specs2" %% "specs2" % "2.3.12" % "test"
You can run Specs2 tests in Scala IDE by adding a JUnitRunner annotation in your test classes:
import org.junit.runner.RunWith
import org.specs2.mutable.Specification
import org.specs2.runner.JUnitRunner
@RunWith(classOf[JUnitRunner])
class ListSpec extends Specification {
...
}
Sample test classes are located in the src/test/scala/specs2 directory and include the following:
ScalaCheck is a library for automated property-based testing. Property checks are run multiple times with randomly generated inputs. You can use ScalaCheck directly or ScalaTest and Specs2 provide ScalaCheck integrations.
To use ScalaCheck with sbt you need to add it as a managed dependency in build.sbt:
libraryDependencies += "org.scalacheck" %% "scalacheck" % "1.11.4" % "test"
A ScalaCheck Properties object can be run as a Scala application in Scala IDE.
Sample test classes:
JUnit is a widely used framework for unit testing Java. Because Java is interoperable with Scala, you can use JUnit for testing Scala as well.
To use JUnit with sbt you need to add the library and a test interface as managed dependencies in build.sbt:
libraryDependencies ++= Seq(
"junit" % "junit" % "4.11" % "test",
"com.novocode" % "junit-interface" % "0.9" % "test"
)
If you want to use add-on libraries such as Hamcrest or
Mockito, you will need to add those dependencies as well:
libraryDependencies ++= Seq(
"org.hamcrest" % "hamcrest-core" % "1.3" % "test",
"org.mockito" % "mockito-core" % "1.9.5" % "test"
)
Scala IDE includes a JUnit plugin for running tests.
Sample test classes are located in the src/test/scala/junit directory and include the following:
TestNG is a popular alternative to JUnit for testing Java. It can also be used for testing Scala.
To use TestNG with sbt you need to add the library as a managed dependency in build.sbt:
libraryDependencies += "org.testng" % "testng" % "6.8.8" % "test"
and add a plugin to project/plugins.sbt:
addSbtPlugin("de.johoop" % "sbt-testng-plugin" % "3.0.0")
Scala IDE requires installation of a TestNG plugin for running tests.
Sample test classes are located in the src/test/scala/testng directory and include the following:


Twitter Wall
Welcome to the home page of the simple Twitter Wall application.
You can use following form for searching tweets on
Twitter or you can pass your query directly by using HTTP GET method on /search?q=<query>
where <query>
is your specified url escaped search query.


For this project, we used the framework Vue to dynamically update our table as well as
make our map and input box be two-way binded so that when you change the value in an input box, then it will also change the map and vice versa.
Addtionally, we used the Leaflet API to display the two maps as well as the Open AQ Platform API to read in air quality data.
We also used the Nominatim API to search via place name in addition to latitude or longitue coordinates to update the map accordingly.
Interesting Facts We Learned
India and China seem to have the worst pollution worldwide.
Most of the United States has pretty good air quality, with even the most populated cities falling in the safe zone.
Despite how polluted the major cities in China are, the rural areas are very clean in comparison.
Japan's air quality is comparable to the United States, which is surprising considering how high the population density in Japan is.
European cities such as Paris and London are much more polluted than expected, with many parts falling in at least the Yellow zone on the EPA scale.
With the wildfires over, almost all of California falls in the 'Moderate' category at worst, with only select areas being Unhealthy for Sensitive Groups.
Brian Cao
I am currently a student at the University of St. Thomas and am studying
Computer Science. I work at the tech desk and am part of the Computer Science club. I am also part of ASIA Club and Chess Club.
I was born and raised in Minnesota and live in Burnsville. In my free time, I enjoy watching sports, spending time with family and friends,
and reading books.
Mike Hawkins
I am currently a student at the University of St. Thomas, and will graduate this semester with a BS in Computer Science. I am from St. Paul Minnesota, and interned at OATI as a Junior Software Developer in the Summer of 2018. In my free time, I like to play video games, write and play music, and do watersports in the summer.


About ArrayExpress
What is ArrayExpress?
ArrayExpress is one of the repositories recommended by major scientific journals to archive functional genomics data from microarray and sequencing platforms to support reproducible research. To serve this mission we facilitate submissions in compliance with Minimum Information About A Microarray Experiment (MIAME) and Minimum Information About a Sequencing Experiment (MINSEQE) guidelines. Experiments are submitted directly to ArrayExpress or are imported from the NCBI Gene Expression Omnibus database. For high-throughput sequencing based experiments the raw data is brokered to the European Nucleotide Archive, while the experiment descriptions and processed data are archived in ArrayExpress.
Publications / how to cite
- Citing ArrayExpress database: please use the following publication: Athar A. et al., 2019. ArrayExpress update - from bulk to single-cell expression data. Nucleic Acids Res, doi: 10.1093/nar/gky964. Pubmed ID 30357387.
- Citing ArrayExpress submission in your manuscript: please include your experiment accession number and the URL to ArrayExpress home page, http://www.ebi.ac.uk/arrayexpress. e.g. "Microarray data are available in the ArrayExpress database (http://www.ebi.ac.uk/arrayexpress) under accession number E-MEXP-12345."
- Citing ArrayExpress BioConductor package: please refer to this BioConductor page for more information about the authors and maintainer of the package.
The team behind ArrayExpress
The ArrayExpress team is part of the Functional Genomics group at EMBL-EBI, led by Alvis Brazma. The team consists of about fifteen bioinformaticians, ontologists, software engineers and web developers, split between the production team led by Irene Papatheodorou and development team led by Ugis Sarkans. The production team manages, curates and models all incoming data to ArrayExpress, while the development team looks after all the back-end database infrastructure and the public-facing website.
Acknowledgements
ArrayExpress and related activities are supported by member states of the European Molecular Biology Laboratory; European Commission: ENGAGE [201413], EurocanPlatform [260791], GEUVADIS [261123], SLING [226073], SYBARIS [242220], EUROCANPLATFORM [260791], CAGEKID [241669], BioMedBridges [284209] and Gen2Phen [200754]; US National Institutes of Health (the National Human Genome Research Institute, National Institute of Biomedical Imaging and Bioengineering and the National Cancer Institute) [P41 HG003619]; National Center for Biomedical Ontology (one of the National Centers for Biomedical Computing supported by the National Human Genome Research Institute, the National Heart, Lung, and Blood Institute, and National Institutes of Health Common Fund [U54-HG004028]); National Science Foundation Award Number [1127112].
The ArrayExpress team would like to thank the following companies for their support through the offering of free software licenses:
- JetBrains for the most intelligent Java IDE - IntelliJ IDEA.
- Atlassian for the Bamboo - Continuous Integration and Release Management tool.
- YourKit for their support of open source projects with its full-featured Java Profiler. Please take a look at YourKit's leading software products: YourKit Java Profiler and YourKit .NET Profiler.


Yet Another Timepicker - based on jQuery and MomentJS.
yaTimepicker is simple timepicker based on jQuery and MomentJS. Feel free to use it however you like. Please report any bugs or feature requests to the GitHub issue tracker.
Copyright © 2015 Mads Jakobsen | MIT license


Hello !
Welcome to
Our App
Num1:
Num2:
Calculate
Result:
Some useless button here for fun!
Log In console


Home
Movies
Web Series
Kids
TV
Premium
Login
Search
Welcome To
ApnaTheatre
.com
®
Stream Latest Movies Now!
Click Here
×
This Site Is Under Construction


|
|
#define | INTERRUPTSTATUS_CEC (1 << 0) |
| |
|
#define | INTERRUPTSTATUS_HDMI (1 << 1) |
| |
|
#define | RXSHPDINTENA_ENA_RXS_INT (1 << 0) |
| |
|
#define | RXSHPDINTENA_ENA_HPD_INT (1 << 1) |
| |
|
#define | RXSHPDINT_RXS_INT (1 << 0) |
| |
|
#define | RXSHPDINT_HPD_INT (1 << 1) |
| |
|
#define | RXSHPDLEV_RXS_LEVEL (1 << 0) |
| |
|
#define | RXSHPDLEV_HPD_LEVEL (1 << 1) |
| |
|
#define | ENAMODS_ENA_CEC (1 << 0) |
| |
|
#define | ENAMODS_ENA_HDMI (1 << 1) |
| |
|
#define | ENAMODS_ENA_RXS (1 << 2) |
| |
|
#define | ENAMODS_DIS_CCLK (1 << 5) |
| |
|
#define | ENAMODS_DIS_FRO (1 << 6) |
| |
|
#define | FRO_IM_CLK_CTRL_FRO_DIV (1 << 0) |
| |
|
#define | FRO_IM_CLK_CTRL_IMCLK_SEL (1 << 1) |
| |
|
#define | FRO_IM_CLK_CTRL_ENA_OTP (1 << 6) |
| |
|
#define | FRO_IM_CLK_CTRL_GHOST_DIS (1 << 7) |
| |


Unicycle Image provided by tetragrammatron.com
Unicycle
Unicycle is a simple node.js static server for trying out wheel.js. But you already knew that, right?
What next?
Make some javascript in /site/app.js. Add some styling. Watch it go.
Applications can be deployed to heroku! They just work.
You say you want more?
This is just a tryout space. Time to move to a real server.


I'm a pragmatic programmer and a performance optimization enthusiast. I challenge myself to write clean and pixel-perfect code. I have thorough hands-on experience in various layers of web technology. I'm currently working at buildnext, a young vibrant startup. In my spare time, I try to figure out how to exit from Vim and whether to use Tabs over Spaces.
At buildnext, I'm holding responsibilities of a Software Development Engineer(SDE) and a DevOps Engineer. Developed Magento based E-commerce web applications. Elastic(ELK) stack integration. Optimized website performance using Redis and Varnish. Carried out Performance and Load testing using various tools. Optimized logistics module and reduced TTFB. Developed a WordPress website.
Front-end and back-end web development. Front-end was developed in Zurb Foundation framework. Back-end was in LAMP stack.
IoT based predictive analytics system using NodeJs with mustache templating engine and Express framework. Visualized data using graph database (Neo4J) and D3.js.
Front-end development using Bootstrap.
A website created using the concept of page-as-a-component with Django in the backend and react in the frontend. Webpack module bundler was used to build assets. Gunicorn as WSGI server and nginx for serving static content
A scholarship portal where users can log in and see their eligible scholarships. Designed using Java and MySQL.
Home automation system using Raspberry Pi. Programmed using Python and PHP.
An online coding platform for competitive exams. Used Node.js with Express framework for server side programming and MongoDB for creating the database. Docker was used for creating isolated environments for users.
A website for booking tutors online.
Website of a college fest called pantheon.


Save $50 On Fitbit Versa 2 Ahead Of Black Friday
All of the Black Friday ad scans we've seen so far, don't show the Fitbit Versa 2 being discounted at all. So today might be your best shot at getting a discounted Fitbit Versa 2. As it is $50 off of its regular price today, coming in at just $149.99.
Normally, Fitbit doesn't discount its newest products when it comes to Black Friday. Especially if they just came out a month or two before Black Friday. So if you are looking to get a Versa 2 this year, now is the time to do it.
The Fitbit Versa 2 is the company's newest smartwatch. It does all of the fitness tracking that you'd expect.  But it's also a smartwatch.
Advertisement
Now it's not as feature packed as something from Samsung or something running on Wear OS. But that's probably a good thing. Since the battery does last considerably longer. We're talking four or five days, if not longer.
On the smartwatch side of things, you are able to get notifications on your wrist for things like text messages and phone calls. But you won't get them for other apps like Twitter and Facebook. You also have apps like weather, Starbucks, Spotify and more available. As well as support for Fitbit Pay.  As you can pay with your Versa 2.
The Fitbit Versa 2 is a really great fitness tracker and smartwatch actually. It does just about everything that you'd expect one to do. And lasts for many days on a single charge.
Advertisement
You can pick up the Fitbit Versa 2 from Amazon in this Black Friday discount by clicking here.


{% extends "base.html" %} {% import "macros.html" as macros %} {% block htmltitle %} 404 - Not found {% endblock htmltitle %} {% block title %} ERROR #404 {% endblock title %} {% block content %}
Oops, looks like this content is not available.
Here's a song to make up for it


We're sorry but obyte-paperwallet doesn't work properly without JavaScript enabled. Please enable it to continue.


Authorization Server
Abstract
The Authorization Server is an OAUTH compliant server that is part of the MSO infrastructure. It is used for authentication and authorization functions, the latter implemented as an OAUTH API for granting access tokens.
Origins
The Authorization Server was initially part of IdOra, a project that was originally developed by Bob Lund (CableLabs). This implementation is a derivation of the original codebase, with minor changes required to integrate it into the Micronets ecosystem.
Developers
The repository for the Authorization Server is micronets-auth-server
Overview
The Authorization Server provides authentication for subscriber logins and for the generation of OAUTH access tokens to be used at a later time for remote logins (by scanning a QRCode instead of providing username/password)
Messaging
The Authorization Server communicates with the following Micronets components:
* Registration Server
+ IN
Accepts redirects to allow subscriber to authorize the onboarding of devices.
* Idora Server
+ IN
OAUTH API for creating/revoking access tokens
+ IN
Remote login requests sent on behalf of the subscriber via a QRCode Scan
+ IN
Login screen to authorize remote login service
* MSO Portal
+ OUT
Request a registration token to begin the device onboard sequence
+ OUT
Request subscriber metadata
+ OUT
(TBD) Subscriber authorization endpoint
Detailed descriptions of the APIs for this server can be found here
Storage
The following data is stored locally by the Authorization Server. Currently the storage mechanism is NEDB. * authorization records (user meta + access tokens) * subscriber records (username/password). NOTE: This is temporary and will be replaced with a login endpoint on MSO Portal
Operation
Website (service) Setup
The subscriber navigates to the IdOra portal at https://mycable.co/idora
. The subscriber logs in and then clicks the Websites tab to set up an authorized service. The subscriber will be redirected (OAUTH2) to this server’s login screen. If the subscriber accepts the described action, an access token will be generated and returned to the Idora portal. More information here-(credential-server)
Remote Login
The subscriber navigates (or is redirected) to the login screen for a service that has been previously authorized (see above). When the QRCode appears, the subscriber scans it with the MSO provided mobile app. (The subscriber has already logged in to the IdOra account from the mobile app). The metadata (serviceID, sessionID) from the QRCode is sent to the IdOra Server along with the subscriber’s ID. If IdOra has an access token for that subscriber/service, a remote login request is sent to this server and the subscriber is automatically logged in.
Installation
Detailed instructions for building and installing the Authorization Server can be found here


Before Change
num_airfoils = len(airfoil)
xfoil_polars = Data()
xfoil_polars.aoa= np.zeros((num_airfoils,220))
xfoil_polars.cl = np.zeros((num_airfoils,220))
xfoil_polars.cd = np.zeros((num_airfoils,220))
xfoil_aoa = xfoil_polars.aoa
xfoil_cl = xfoil_polars.cl
xfoil_cd = xfoil_polars.cd
for i in range(num_airfoils):
After Change
xfoil_cl[line_count] = float(data_block[line_count][10:17].strip())
xfoil_cd[line_count] = float(data_block[line_count][20:27].strip())
return xfoil_cl , xfoil_cd , xfoil_aoa


[Erowid Warning: The “water extraction” method is ineffective in separating diethyl ether from the volatile hydrocarbon liquids/gases in “starter fluid”. Our understanding of the literature is that there is no such thing as safe use of volatile hydrocarbon gases: their psychoactive effects are inseparable from nerve and organ damage.]
This is not necessarily a retrospective on my experience with this powerful and numbing, but ultimately mind-numbing drug, as the few times I tried it the experience was similar.
Fear and Loathing was my inspiration, as was the need for something harder hitting and easier to get than Cannabis (the king of all psychoactives in my opinion). I researched it along with asking friends about it. Only a handful of people I know, many of whom had done much harder drugs than I have. One (an avid Hunter Thompsan fan) recalled huffing it, along with formaldehyde and who-knows-what, from a preserved shark specimen. I was not about to go that far, though what I did was probably just as dangerous.
I could not fathom where to get the pure stuff, so I purchased a bottle of starter fluid from my local department store, feeling quite stupid. I sprayed it out and distilled it in a plastic bag using water. By adding water and shaking, the fluid splits into two layers, with most of the heptanes etc. on the bottom, and the ether on the top..
I drained the heptane out and put the remaining ether-solution into a cup. I was ignorant so I did not really prepare correctly for what I was about to do. I lay on my bed and huffed a bit of the ether I splashed on a few sheets of paper-towel (this is the best way, I can tell) and got nothing but some light-headedness. I read a bit, somewhat disappointed, even though I knew I just hadnt taken enough.
About half an hour later, I inhaled more and more ether through my nose. I didn’t notice the fact that I was high immediately because you are too busy huffing. When I finally looked up, it was like I was in a dream. Even more, it was like I didn’t exist, I could not imagine I was the person I was a minute ago. Then, it hit me that I was in the same room, with the same posters on my wall as it was before. This led way to a strange euphoria, and objects appearing as they are zooming in on me.
The whole experience flowed with a strange sort of rhythm. It was a fast-tempo pulse that seemed to be the noise from outside my window, and inside my head blurring together. It changed with the progression, and I noticed different rhythms and sounds I hadnt before. These were synchronized with what I was seeing all around me as well. Pulses of light were in the form of constantly but orderly changing geometric shapes (mainly squares), were all over the walls and the ceiling. I can best describe it as being inside a futuristic machine or retro video game.
Along with the pulses, visions, and euphoria, there was such a strong sense of deja vu. I honest to god felt (and still do feel) that when I was a child I experienced the same trance during a dream. It seemed so familiar and I hold that to this day.
 Ether has a pleasure very reminiscent of sex. I feel a lot of the same feelings, and I always want more because I don’t want those feelings to stop, and I want them to grow to a peak. This is what is very dangerous. It is extremely addictive In the short and long term. Thank god I was able to come to terms with myself and say 'enough is enough'.
There is not physical withdrawal, only mentally that lasts for about an hour. It isn't bad. The hard part is stopping, and not doing it again.
This is the summery of the three times I used ether. I then got rid of all I had left because I was scared with so much I would become addicted and lose even more brain cells. It is quite and amazing and life changing experience, though it has its consequences.
It did change my brain. I can tell, because now when I am tired and lie down, it is easy for my to get a pulsed/euphoric feeling that is sort of like being on a rocking boat, but very relaxing and trippy. This is not really a bad thing, but I really hate to think what else it has done.
 It was a very unique and pleasant experience, but it is not in my taste to do it again.
Ether is an enticing devil.
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.


--- layout: default ---
The rank is not based on any concrete data, metric, or assessment. It is a purely subjective categorization.


Toggle navigation
Bicycles
Fixed/Single speed
City bikes
Premium series
Parts
Chains
Tubes
Tires
Disc breaks
Accessories
Locks
Helmets
Arm covers
Jerseys
Extras
Classic bell
Bottle cage
Tires
Truck grip
Contact
SPEED BICYCLE
MOUNTAIN BICYCLE
HANDMADE BICYCLE
You
create
the
journey
, we supply the
parts
SHOP BIKES
Previous
Next
CATEGORIES
FIXED / SINGLE SPEED
Are you ready for the 27.5 Revloution ?
GO TO STORE
FIXED / SINGLE SPEED
Are you ready for the 27.5 Revloution ?
GO TO STORE
FIXED / SINGLE SPEED
Are you ready for the 27.5 Revloution ?


Menu
Transport mode
Bus
Ferry
Subway
Train
Tram
Bicycle
Car
Running
Walking
Reset
Mass transit line name


Jeremy Corbyn's general election journey to Brexit clarity - up to a point
The Labour leader will outline the party's approach in a Leave-supporting Essex town
by Ben Glaze, https://www.facebook.com/MirrorPoliticsMorning,
Jeremy Corbyn has been repeatedly criticised for his lack of clarity on Brexit.
For a long time, that criticism was completely justified – the only thing that was clear about his position was that he was going out of his way not to adopt one.
But gradually he has been guided towards a stance that at least goes some way towards giving clarity.
Labour's current offer is to renegotiate a Withdrawal Agreement – that'll be the third deal with Brussels – within three months of getting elected.
That new pact will then be put to a referendum.
This is where it becomes tricky for Corbyn; he has steadfastly refused to say if in that referendum campaign he would urge voters to back Leave with his deal or if he would fight for Remain.
Many Shadow Cabinet big-hitters – including key allies of the leadership – have said they will battle for Remain come what may.
(Also, as one Labour MP pointed out to me recently, it's totally fair to say that in 2016 voters did not know what sort of Brexit they were voting for – but now they know what the options are, any second referendum should be on a deal or no-deal departure, given the decision to Leave has already been taken. But that's not going to happen.)
Today, Corbyn will come under huge pressure to say what he will do in that campaign .
Do not expect him to yield.
The Labour leader is giving a speech in Harlow, Essex – a town that voted Leave by 68% to 32%, and where the Conservatives enjoy a 7,000 majority.
Expect the speech to focus on Labour's attack line – repeatedly denied by the the Tories – that Boris Johnson wants to “hijack” Brexit to allow US drugs firms into the NHS.
Corbyn will also accuse the Prime Minister of wanting to “unleash Thatcherism on steroids”.
On today:
9.30am – Boris Johnson hosts Cabinet in No10
10am – Civil servants are kicked out so the Prime Minister can host a Political Cabinet
10am – Jeremy Corbyn delivers Brexit speech in Harlow, Essex
10am – Jo Swinson launches the Lib Dem campaign in Westminster
11am – Brexit Party leader Nigel Farage hits the campaign trail in Bolsover, Notts
Midnight – Parliament is dissolved so the election campaign can officially get underway
What I am reading:
Stephen Bush on what the election of Sir Lindsay Hoyle as Speaker means for Parliament
* If you would like the newsletter sent to your inbox sign up here : http://www.mirror.co.uk/newsletters/politics-newsletter/


Scroll to see various contents loading virtually
Founded by industry experts in 2001, Syncfusion, Inc. provides the broadest range of enterprise-class software components and tools for the Microsoft .NET platform.
With Syncfusion, developers can move beyond simply coding applications to delivering real business innovation—the elegant user interfaces, business intelligence dashboards, and sophisticated reporting that today's business users need, in the formats they demand. Our award-winning components and controls are designed to meet your evolving development needs, whether you're working in ASP.NET, ASP.NET MVC, Windows Forms, WPF, Windows Phone, WinRT, JavaScript, Silverlight, or Xamarin.
More than 650 stunning controls and frameworks
The most comprehensive suite of components available for .NET and JavaScript, including charts, grids, diagrams, schedulers, Gantt controls, maps, gauges, docking, ribbons and much more. The Syncfusion Big Data Platform is the first and the only complete Hadoop distribution designed for Windows. Develop on Windows using tools that you are familiar with. Deploy on Windows.


Module ringo/httpclient
A module for sending HTTP requests and receiving HTTP responses.
Example
var {request} = require('ringo/httpclient'); var exchange = request({ method: 'GET', url: 'http://ringojs.org/', headers: { 'x-custom-header': 'foobar' } }); if(exchange.status == 200) { console.log(exchange.content); }
Functions
- del(url, data, success, error)
- get(url, data, success, error)
- post(url, data, success, error)
- put(url, data, success, error)
- request(options)
Class BinaryPart
Class Exchange
Instance Properties
- connection
- content
- contentBytes
- contentLength
- contentType
- cookies
- done
- encoding
- headers
- message
- status
- url
Class TextPart
BinaryPart (data, charset, filename)
Parameters
| String | data | The data |
| String | charset | The charset |
| String | filename | An optional file name |
Returns
| BinaryPart | A newly constructed BinaryPart instance |
Exchange (url, options, callbacks)
Parameters
| String | url | The URL |
| Object | options | The options |
| Object | callbacks | An object containing success, error and complete callback methods |
Returns
| Exchange | A newly constructed Exchange instance |
Exchange.prototype.connection
The connection used by this Exchange instance
Exchange.prototype.content
The response body as String
Exchange.prototype.contentBytes
The response body as ByteArray
Exchange.prototype.contentLength
The response content length
Exchange.prototype.contentType
The response content type
Exchange.prototype.cookies
The cookies set by the server
Exchange.prototype.done
True if the request has completed, false otherwise
Exchange.prototype.encoding
The response encoding
Exchange.prototype.headers
The response headers
Exchange.prototype.message
The response status message
Exchange.prototype.status
The response status code
Exchange.prototype.url
The URL wrapped by this Exchange instance
TextPart (data, charset, filename)
Parameters
| String|TextStream | data | The data |
| String | charset | The charset |
| String | filename | An optional file name |
Returns
| TextPart | A newly constructed TextPart instance |
del (url, data, success, error)
Executes a DELETE request
Parameters
| String | url | The URL |
| Object|String | data | The data to append as GET parameters to the URL |
| Function | success | Optional success callback |
| Function | error | Optional error callback |
Returns
| Exchange | The Exchange instance representing the request and response |
get (url, data, success, error)
Executes a GET request
Parameters
| String | url | The URL |
| Object|String | data | The data to append as GET parameters to the URL |
| Function | success | Optional success callback |
| Function | error | Optional error callback |
Returns
| Exchange | The Exchange instance representing the request and response |
post (url, data, success, error)
Executes a POST request
Parameters
| String | url | The URL |
| Object|String|Stream|Binary | data | The data to send to the server |
| Function | success | Optional success callback |
| Function | error | Optional error callback |
Returns
| Exchange | The Exchange instance representing the request and response |
put (url, data, success, error)
Executes a PUT request
Parameters
| String | url | The URL |
| Object|String|Stream|Binary | data | The data send to the server |
| Function | success | Optional success callback |
| Function | error | Optional error callback |
Returns
| Exchange | The Exchange instance representing the request and response |
request (options)
Make a generic request.
Generic request options
The options
object may contain the following properties:
url
: the request URLmethod
: request method such as GET or POSTdata
: request data as string, object, or, for POST or PUT requests, Stream or Binary.headers
: request headersusername
: username for HTTP authenticationpassword
: password for HTTP authenticationproxy
: proxy-settings as string ("proxy.host:port") or object {host: "hostname.org", port: 3128}contentType
: the contentTypebinary
: if true if content should be delivered as binary, else it will be decoded to stringfollowRedirects
: whether HTTP redirects (response code 3xx) should be automatically followed; default: truereadTimeout
: setting for read timeout in millis. 0 return implies that the option is disabled (i.e., timeout of infinity); default: 0 (or until impl decides its time)connectTimeout
: Sets a specified timeout value, in milliseconds, to be used when opening a communications link to the resource referenced by this URLConnection. A timeout of zero is interpreted as an infinite timeout.; default: 0 (or until impl decides its time)
Callbacks
The options
object may also contain the following callback functions:
complete
: called when the request is completedsuccess
: called when the request is completed successfullyerror
: called when the request is completed with an errorbeforeSend
: called with the Exchange object as argument before the request is sent
complete
, success
and part
callbacks:
content
: the content as String or ByteStringstatus
: the HTTP status codecontentType
: the content typeexchange
: the exchange object
error
callback:
message
: the error message. This is either the message from an exception thrown during request processing or an HTTP error messagestatus
: the HTTP status code. This is0
if no response was receivedexchange
: the exchange object
Parameters
| Object | options |
Returns
| Exchange | exchange object |


SF ???
PF ???
PT 00:00
SD 0.00 h
0.00 h
LHt 0.00
0.00 h
ASDt 0.00
0.00 h
LSn 0.00
0.00 h
LSx 0.00
0.00%
LPt 0.00
0.00 h
LHh
0.00 h
LShn
0.00 h
LShx
0.00%
LPh
0.00 h
ASD
The Log is designed for single-tasking. When you start a log, focus on your activity; when you feel like stopping, simply end the log.
Use the console to enter commands. The console is summoned when you start typing. Here are a list of available commands:
To start a log. Mind the quotes, please:
set background #aabbcc
start "Sector or Category" "Title" "A description"
To end a log:
end
To change the interface's background colour, set a hexadecimal colour of your choice. HTML-friendly colour names are also accepted:
set background #aabbcc
set background aquamarine
To change the interface's text colour, set a hexadecimal colour of your choice. HTML-friendly colour names are also accepted:
set color #112233
set color black
Perhaps you don't find my arbitrary choice of icons to be useful. You may enable/disable them:
set icons true/false
To change the number of log days displayed in the overview chart, the visualisation section, and the log table:
set view 30 // shows only the last 30 days
set view 7 // shows only the last 7 days
To change the calendar system used, choose between the Gregorian, MONOCAL, or Aequirys calendars. This does not affect your logs. It simply shows dates differently:
set calendar gregorian
set calendar monocal
set calendar aequirys
To change the time format, choose between 12-hours or 24-hours:
set time 12
set time 24
And lastly, if you have an existing log and/or config file, you may want to import them. You simply need to supply the location of the folder where your log.js and config.js is stored. You will also have to restart the Log.
This will be the case for now but rest assured I will find a way to remedy this so you wouldn't have to import your data with every update.
import /home/folder/location
The Log is a log and time-tracking system created by Josh Avanier. Its primary purpose is to provide insight to how one's time is spent — insight that may then be used to optimise personal productivity and better manage time.
This project is open-source and the source code is available on GitHub under the MIT License. If you found any bugs or would like to contribute to the development of this project, be my guest:
https://github.com/joshavanier/log/
If you have any thoughts, comments, suggestions, questions, or if you simply want to say hello:
Twitter: @joshavanier
Thank you for taking the time to try this out.