Hi all,
I updated my emonpi yesterday to v2.2 and when booting i get "AC Wave detected", however, the Vrms reporting is flat-lining at 230v.
If i unplug the AC transformer i lose power calculations so i assume this is working for real power calc, but i have no visibility of Vrms.
Any ideas? I've tried all reboot patterns etc.
Iain
Re: SOLVED: Vrms stuck on 230v after emonpi update
I am in the exact same situation :)
would be great if anyone can help
Cheers
Petr
Re: SOLVED: Vrms stuck on 230v after emonpi update
Oh dear, very sorry to hear. I will investigate this immediately. In the meantime you can revert back to V2.0 by running the following shell commands once logged in via SSH:
Note: If another emonPi update is triggered via local Emoncms Admin the emonPi will revert back to the latest (V2.2) firmware.
Re: SOLVED: Vrms stuck on 230v after emonpi update
Bug has been fixed, thanks a lot for posting. Please run update to pull in the latest update.
Commit with the fix:
https://github.com/openenergymonitor/emonpi/commit/db973b781c59d683cd12d...
Please confirm this fixes the issue
Re: SOLVED: Vrms stuck on 230v after emonpi update
Just been notified that the V2.3 update I pushed fixed this issue but due to an new version of Arduino compiling issue results in the LCD text on the emonPi at bootup being garbled. I have just pushed an update to fix this. Please hit update again to pull in the latest changes.
Re: SOLVED: Vrms stuck on 230v after emonpi update
Re: SOLVED: Vrms stuck on 230v after emonpi update
After running an emonPi update from Emoncms low-write-8.5 my LCD display is stuck with the message "Raspberry Pi Booting.." I gather this message was introduced in the v 2.2 firmware update. Is there a bug, or something I can do to fix it? Thanks.
Re: SOLVED: Vrms stuck on 230v after emonpi update
@ajsicek, are you running an emonPi or an RFM69Pi? It looks like the update has worked apart from uploading the new firmware to the ATmega328 microcontroller in the emonPi. If you are running an RFM69Pi then this is not needed, there is no firmware update for the RFM69Pi. However, running update is still useful for you since you have updated Emoncms to the latest version. If you are running an emonPi, then there must be a hardware fault.
@ Westerner, I have just tested updating the 17June15 image. The "Raspberry Pi Booting" popped up for a few seconds then disappeared. Can you access the emonPi via the web interface? If so, please try updating again and rebooting the unit. Please let me know if this fixes the issue.
Re: SOLVED: Vrms stuck on 230v after emonpi update
I can access the emonPi via the web interface, and the update takes place, but the LCD display then gets stuck at "Raspberry Pi Booting". My emoncms is working fine, all the feed data is coming through, and everything seems to be working ok - it is just the display that seems to be the problem. If I run emonPiLCD it tells me it is not running, and emonPiLCD start doesn't improve the situation. Until a fix is found, can I turn the display off?
Re: SOLVED: Vrms stuck on 230v after emonpi update
It seems that the emonPi LCD python service is having an issue
$ sudo service emonPiLCD restart
or if it's not running:
$ sudo service emonPiLCD start
Can you take a look at the emonPi LCD log?
$ cat /var/log/emonpilcd.log
or if it's very big
$ tail /var/log/emonpilcd.log
Re: SOLVED: Vrms stuck on 230v after emonpi update
Here is the contents of emonpilcd.log
2016-02-25 18:17:53,781 INFO emonPiLCD Start
2016-02-25 18:17:53,924 INFO I2C LCD Detected on 0x27
2016-02-26 09:47:53,121 INFO emonPiLCD Start
2016-02-26 09:47:53,228 INFO I2C LCD Detected on 0x27
2016-02-26 09:52:35,496 INFO emonPiLCD Start
2016-02-26 09:52:35,596 INFO I2C LCD Detected on 0x27
2016-02-26 12:16:26,198 INFO emonPiLCD Start
2016-02-26 12:16:26,296 INFO I2C LCD Detected on 0x27
It seems emonPiLCD.py is not running ...
pi@emonpi ~ $ sudo service emonPiLCD status
[FAIL] /usr/share/emonPiLCD/emonPiLCD.py is not running ... failed!
and trying to to start it gets no further than this ...
pi@emonpi ~ $ sudo service emonPiLCD start
[ ok ] Starting system emonPiLCD daemon:.
Re: SOLVED: Vrms stuck on 230v after emonpi update
Thanks, what errors do you see if you run the LCD script directly?:
$ emonpi/lcd/./emonPiLCD.py
Check that you have the latest version with
$ rpi-rw
$ cd emonpi
$ git pull
$ rpi-ro
Re: SOLVED: Vrms stuck on 230v after emonpi update
Running LCD script directly:
pi@emonpi ~ $ emonpi/lcd/./emonPiLCD.py
Traceback (most recent call last):
File "emonpi/lcd/./emonPiLCD.py", line 63, in <module>
loghandler = logging.handlers.RotatingFileHandler("/var/log/emonpilcd.log",'a', 1000*1024, 1)
File "/usr/lib/python2.7/logging/handlers.py", line 117, in __init__
BaseRotatingHandler.__init__(self, filename, mode, encoding, delay)
File "/usr/lib/python2.7/logging/handlers.py", line 64, in __init__
logging.FileHandler.__init__(self, filename, mode, encoding, delay)
File "/usr/lib/python2.7/logging/__init__.py", line 901, in __init__
StreamHandler.__init__(self, self._open())
File "/usr/lib/python2.7/logging/__init__.py", line 924, in _open
stream = open(self.baseFilename, self.mode)
IOError: [Errno 13] Permission denied: '/var/log/emonpilcd.log'
pi@emonpi ~/emonpi $ git pull
Already up-to-date.
Re: SOLVED: Vrms stuck on 230v after emonpi update
Ah I see the issue, /var/log is not writable from the pi user. This can be fixed with
$ sudo chown pi /var/log
Please try and manually re-run the LCD python script as you did before after making the change. Please confirm this works. This change will be lost after a reboot since /var/log is mounted as tempfs
To make this persistent on boot you need to add the line above into the rc.local file
$ sudo nano /etc/rc.local/
What SD card version are you running? This should have been set by default. What is the output of:
$ sudo ls -l | grep emonSD
Re: SOLVED: Vrms stuck on 230v after emonpi update
No luck with:
pi@emonpi ~ $ sudo chown pi /var/log
pi@emonpi ~ $ emonpi/lcd/./emonPiLCD.py
Traceback (most recent call last):
File "emonpi/lcd/./emonPiLCD.py", line 63, in <module>
loghandler = logging.handlers.RotatingFileHandler("/var/log/emonpilcd.log",'a', 1000*1024, 1)
File "/usr/lib/python2.7/logging/handlers.py", line 117, in __init__
BaseRotatingHandler.__init__(self, filename, mode, encoding, delay)
File "/usr/lib/python2.7/logging/handlers.py", line 64, in __init__
logging.FileHandler.__init__(self, filename, mode, encoding, delay)
File "/usr/lib/python2.7/logging/__init__.py", line 901, in __init__
StreamHandler.__init__(self, self._open())
File "/usr/lib/python2.7/logging/__init__.py", line 924, in _open
stream = open(self.baseFilename, self.mode)
IOError: [Errno 13] Permission denied: '/var/log/emonpilcd.log'
SD card version query produces no result:
pi@emonpi ~ $ sudo ls -l | grep emonSD
pi@emonpi ~ $
Re: SOLVED: Vrms stuck on 230v after emonpi update
@ Westerner do you have ssh access?
If so running this should fix the issue. It's due to the python LCD script hitting a permission error when trying to save a log file in /var/log. Allowing the pi user to write to /var/log should fix this
$ sudo chown pi /var/log
The the my reply above regarding how to run the python script manually to test this.
Re: SOLVED: Vrms stuck on 230v after emonpi update
Ah sorry, just realised the permission error we got was due to me forgetting that the python script needs to be ran as root. Try again with:
$ sudo emonpi/lcd/./emonPiLCD.py
I also missed out the /boot directory in the commend to return you SD card version. Try:
$ sudo ls -l /boot | grep emonSD
Re: SOLVED: Vrms stuck on 230v after emonpi update
Hello Glyn,
I am running those commands from a terminal in SSH.
pi@emonpi ~ $ sudo chown pi /var/log
then when I run the python script I get:
emonpi/lcd/./emonPiLCD.py
Traceback (most recent call last):
File "emonpi/lcd/./emonPiLCD.py", line 63, in <module>
loghandler = logging.handlers.RotatingFileHandler("/var/log/emonpilcd.log",'a', 1000*1024, 1)
File "/usr/lib/python2.7/logging/handlers.py", line 117, in __init__
BaseRotatingHandler.__init__(self, filename, mode, encoding, delay)
File "/usr/lib/python2.7/logging/handlers.py", line 64, in __init__
logging.FileHandler.__init__(self, filename, mode, encoding, delay)
File "/usr/lib/python2.7/logging/__init__.py", line 901, in __init__
StreamHandler.__init__(self, self._open())
File "/usr/lib/python2.7/logging/__init__.py", line 924, in _open
stream = open(self.baseFilename, self.mode)
IOError: [Errno 13] Permission denied: '/var/log/emonpilcd.log'
Am I doing something incorrectly?
Re: SOLVED: Vrms stuck on 230v after emonpi update
Hello Glyn,
Running that results in:
pi@emonpi ~ $ sudo emonpi/lcd/./emonPiLCD.py
Traceback (most recent call last):
File "emonpi/lcd/./emonPiLCD.py", line 91, in <module>
sd_image_version = subprocess.check_output("ls /boot | grep emonSD", shell=True)
File "/usr/lib/python2.7/subprocess.py", line 544, in check_output
raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command 'ls /boot | grep emonSD' returned non-zero exit status 1
pi@emonpi ~ $
sudo ls -l /boot | grep emonSD returns nothing, but that looks like a result of the last line of the above.
Re: SOLVED: Vrms stuck on 230v after emonpi update
Ah, I see what the error is. The emonPi LCD script is looking for a file beginning with emonSD-XX in the /boot directory. This file contains the SD card version e.g. emonSD-20Feb16. It sees you don't have this file.
Did you build the SD card setup yourself? Or are you running a very old setup?
Either way the emonPi LCD should be able to work on systems without this file. I will add some more error checking into the code.
In the meantime you can make the script work by creating the file it's looking for:
$ sudo touch /boot emonSD-XXX
Re: SOLVED: Vrms stuck on 230v after emonpi update
Python script needs to be ran as sudo:
$ sudo emonpi/lcd/./emonPiLCD.py
Re: SOLVED: Vrms stuck on 230v after emonpi update
You may also need to create a dummy image version file the script is looking for:
$ sudo touch /boot emonSD-XXX
See my post above. This will be fixed very soon. Thanks for alerting me
Re: SOLVED: Vrms stuck on 230v after emonpi update
Thanks Glyn, I will go through this and let you know the outcome. My EmonPi came ready configured - I bought it from you in May 2015. Apologies for delayed replies - we are on the Superslow Highway here.
Re: SOLVED: Vrms stuck on 230v after emonpi update
Ah, you have the very first emonPi image release, before we thought to add version control! Thanks for helping me fix this. I have just pushed a fix to the emonpi 'testing' branch. I will do some more testing then push update tomorrow morning. Thanks again for you help and patience.
Re: SOLVED: Vrms stuck on 230v after emonpi update
Glyn, I have tried what you suggest. It seems I can't create the emonSD file in the boot directory while the emonPi is stuck in "Raspberry Pi Booting.." mode. The button to shut down or reboot does not work; the only thing I can do is switch the power off, but when the power is turned back on it goes into "Raspberry Pi Booting.." mode again.
This is what I get when running emonPiLCD.py now:
pi@emonpi ~ $ sudo emonpi/lcd/./emonPiLCD.py
Traceback (most recent call last):
File "emonpi/lcd/./emonPiLCD.py", line 91, in <module>
sd_image_version = subprocess.check_output("ls /boot | grep emonSD", shell=True)
File "/usr/lib/python2.7/subprocess.py", line 544, in check_output
raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command 'ls /boot | grep emonSD' returned non-zero exit status 1
Is it the non-zero exit status that is causing the problem?
In my boot directory I already have a file called emonpi-28May2015 (rather than emonSD-28May2015).
Re: SOLVED: Vrms stuck on 230v after emonpi update
Glyn,
I am not sure whether this has any bearing on a solution, but this is a section from the beginning of my emonpiupdatelog:
Stopping system emonPiLCD daemon:start-stop-daemon: warning: failed to kill 2399: No such process
No process in pidfile '/var/run/emonPiLCD.pid' found running; none killed.
failed!
Then when the system restarts after the update it reports that (an unspecified) Job is already running:
Emoncms update finished
=================================
Job is already running!
Start emonPi LCD service
Starting system emonPiLCD daemon:.
...................
emonPi update done
Re: SOLVED: Vrms stuck on 230v after emonpi update
@Westerner
I have added support for detecting your older image ID, you should now see 'emonpi-28May2015' displayed at startup. I have pushed these changes and the other fixed I made yesterday to the master branch. Please can you update to pull in the changes and let me know if the issues has been fixed.
Thanks.
Re: SOLVED: Vrms stuck on 230v after emonpi update
Thanks Glyn, that is working fine now. Great stuff.
Re: SOLVED: Vrms stuck on 230v after emonpi update
Glyn, just to let you know that on starting emoncms, I get the following message:
Undefined variable: result in /var/www/emoncms/Modules/admin/admin_controller.php on line 82
It has no practical effect.
Re: SOLVED: Vrms stuck on 230v after emonpi update
@Glyn,
- I am running emonpi - what kind of hardware fault can that be and what can I do about it?
- I got the same msg in update log as westerner
- the display is still stuck on either booting... or updating...
- the real voltage is still stuck at 230V
- rest of the emonpi seems working fine - I can use web access or ssh no problem
Re: SOLVED: Vrms stuck on 230v after emonpi update
@Glyn,
some updates :)
- I did apt-get upgrade and emonpi update. The LCD seems to work fine now. :) Great. thanks.
- in emoncms the number of s from last update is now showing nonsense number ( like -3599s ) it is oscilating around that number as the nodes refresh and the nodes are updating fine (screenshot attached)
- voltage still stuck on 230V
Re: SOLVED: Vrms stuck on 230v after emonpi update
@ ajsicek could the date / time on your emonPi be incorrect? Try :
Also check your RasPi and Emoncms international setting
$ sudo raspi-config
Caution: don't run expand SD card partition from raspi-config!
Re: SOLVED: Vrms stuck on 230v after emonpi update
@Glyn,
thank you very much for all the help. It is amazing how helpful you guys are :)
I corrected the time as you suggested and it worked. But vrms was still stuck at 230V. So I decided to update to Jessie using apt-get dist-upgrade which broke everything :) So I downloaded release candidate emonSD-20Feb16 and vmrs is finaly working now and also avrdude error msg is gone :) there is other stuff broken, but this is for another thread :)
Cheers
ajs


Source : Graphic Warning Labels on Cigarettes Are Scary,
but Do They Work?
Source : Communicating Health Information to Disadvantaged Populations
Source : How graphic photos on cigarette packs help smokers consider quitting
Source : Plain tobacco packaging- Wikipedia
Source : Warning images on cigarette packets 'raise young adults' knowledge about harms of smoking'
Source : Cigarette Package Health Warnings International Status Report


{{ message || 'It looks like something broke on our side :(' }}
We are automatically alerted in case of any problem and we'll do our best to fix it as soon as possible!


Dr D.P.S. Kharb
Director and Consultant Surgeon
MBBS, MS (General Surgery), FAIS, FIAGES
Dr Sheela Kharb
Gynaecologist and obstetrician
MBBS, Ex. HCMS
Visiting Faculty
-
Dr Vivek Mangla Gastroenterologist, Sir Ganga Ram Hospital, New Delhi
-
Dr Naveen Gupta Anaesthesiologist
-
Dr Kuldeep Rana Anaesthesiologist
Staff
Hospital staff is well qualified, warm and affectionate. Most of the staff is working since the inception of the hospital so is in complete know-how as to how to hange emergencies and to provide after general care to all patients.


{% extends "base.html" %} {% import 'query/query.js' as qjs %} {% import 'query/query_macros.html' as qmacs %} {% block title %}


--- layout: simple-page title: Past Exhibitions file_url: /past-exhibitions/ breadcrumb: Past Exhibitions --- {% assign event-details = site.data.event-list %}
work in progress


JDK 6 Security Enhancements
The Java Platform has added support for the following Security
functionality in version 6:
- Mixing Signed and Unsigned Code
As of the Java SE 6 Update 19 release (or later), a warning dialog
is raised when a Java Web Start application or applet contains both
signed and unsigned components. See Mixing Privileged Code and Sandbox Code for
more information.
- JSR 105, the XML Digital Signature API and
implementation
For details, see the XML Digital
Signature API Specification and the XML Digital Signature API
Overview and Tutorial
- JSR 268, Smart Card I/O API
Sun's Java SE 6 implementation bundles the Smart Card I/O
API defined by JSR 268 as well as a
provider called SunPCSC which uses the
platform's native PC/SC Smart Card stack, if available. Note that
neither the API nor the SunPCSC provider are part of the Java SE 6
platform specification and may not be present on other compliant
Java SE implementations.
- Elliptic Curve Cryptography (ECC) in SunPKCS11
The SunPKCS11 provider now exposes ECC algorithms if the underlying
PKCS#11 token supports them. This include ECDSA signing and
verification, ECDH key agreement, and generation of EC keypairs.
For more information about the supported mechanisms, see the
supported algorithms section in the PKCS#11 reference guide.
- Elliptic Curve CipherSuites in SunJSSE
The SunJSSE now supports the ECC ciphersuites defined in RFC 4492,
if a suitable crypto provider is available (for example, SunPKCS11
with an appropriate PKCS#11 library). For more information, see the
list of supported
ciphersuites and their requirements.
- Access Network Security Services (NSS) using
SunPKCS11
The SunPKCS11 provider supports new configuration directives which
allow it to access the NSS security library. This enables Java
applications to read keys stored in the NSS database files, use ECC
algorithms, and to use the NSS Softtoken as a FIPS 140 compliant
cryptography provider. For more information see the NSS section in the PKCS#11 guide.
- FIPS 140 compliance for SunJSSE
The SunJSSE provider now supports an experimental FIPS 140
compliant mode. When enabled and used in combination with the
SunPKCS11 provider and an appropriate FIPS 140 certified PKCS#11
token, SunJSSE is FIPS 140 compliant. For details, see the JSSE Reference Guide.
- Pluggability restrictions have been removed from
JSSE
In earlier releases, the JSSE framework did not allow 3rd party
JSSE providers that implemented non-standard ciphersuites due to
export control issues.
- Socket read timeouts are fully supported by SunJSSE
SSLSockets
In previous releases, calling setSoTimeout()
would
sometimes lead to unpredictable results. This has been
corrected.
- Cipher Text Stealing (CTS) mode added to SunJCE block
ciphers
CTS is described in Bruce Schneier's book "Applied
Cryptography-Second Edition", John Wiley & Sons, 1996 (pg.
195-196), and is used by some Kerberos implementations.
- New
PBKDF2WithHmacSHA1 Secretkeyfactory
algorithm added to SunJCE
Constructs secret keys using the Password-Based Key Derivation
Function function found in PKCS5 v2.0.
- Removed the 2048 RSA keysize limit from
local_policy.jar
Implementations were previously restricted from obtaining RSA keys
larger than 2048 bits without installing the unlimited crypto
policy files.
- New Certification Authority (CA) certificates
added
A number of new CA certificates were added to the default system
lib/security/cacerts
file. See the keytool docs for the
complete list of CA certificates.
- Added Two New Options to
jarsigner
Tool
Options -digestalg
and -sigalg
have been
added to the jarsigner tool to allow users to override the default
signature and digest algorithms when signing a jar file
- New Options for
keytool
Tool
Options -genseckey
and -importkeystore
have been added to the keytool tool to allow users to generate a
SecretKey inside a keystore and copy entries from one keystore to
another. Options -genkey
, -import
and
-export
have been renamed to -genkeypair
,
-importcert
and -exportcert
.
- User-Entered Passwords no longer echoed on the
screen
Security tools like keytool
/jarsigner
,
and the JAAS login authentication modules use the new
java.io.Console
class so that user-entered passwords
are no longer echoed on the screen.
- Support for AES Encryption Type in Java
GSS/Kerberos
Support for AES encryption type (AES128 and AES256) in Java
GSS/Kerberos is available. This improves interoperability of the
Java SE Kerberos implementation with other Kerberos
implementations, such as Solaris 10 and MIT Kerberos. For details,
see Java GSS Security
Features.
- Support for RC4-HMAC Encryption Type in Java
GSS/Kerberos
Support for RC4-HMAC encryption type in Java GSS/Kerberos is
available. This improves interoperability of the Java SE Kerberos
implementation with other Kerberos implementations, such as
Windows, Solaris 10 and MIT Kerberos. Windows Active Directory
supports RC4-HMAC as the default Kerberos encryption type. For
details, see Java GSS Security
Features.
- Support for SPNEGO in Java GSS
Support for SPNEGO mechanism in Java GSS is now available. The
Simple and Protected GSS-API Negotiation (SPNEGO) mechanism is a
pseudo security mechanism that enables GSS-API peers to securely
negotiate a common security mechanism to be used.
Support for SPNEGO authentication scheme in HTTP is also available.
For details, see Java GSS
Security Features.
- Support for new Pre-Authentication Mechanisms
Java GSS/Kerberos now includes support for the new
pre-authentication mechanisms as described in the latest Kerberos
specification. For details, see Java GSS Security Features.
- Native Platform GSS Integration
This feature allows Java GSS applications to take advantage of
features in the native GSS implementation available on the
platform. For details, see Java
GSS Security Features.
- Access to native PKI and cryptographic services on Microsoft
Windows
Added the SunMSCAPI JCE
provider which uses the Microsoft CryptoAPI (CAPI) to offer a
variety of RSA cryptographic functions. It acts as a bridge between
Java applications and the services offered by the default RSA
cryptographic service provider available via CAPI. It provides
access to X.509 certificates and RSA key pairs, it performs RSA
encryption and decryption, and it creates and validates RSA
signatures. It also supports a cryptographic random number
generator.
- Enhancements to the implementation of PKI Certificate Path
Validation
Added support for segmented and indirect CRLs, resulting in
improved performance and improved PKIX compliance (RFC 3280).
- JAAS-based authentication using LDAP
Added a JAAS login module which enables users to perform
authentication using credentials stored in an LDAP directory
service. It provides a drop-in solution for existing JAAS-enabled
applications that wish to support authentication using LDAP. See
LDAPLoginModule for more information.
- Default SSLContext
Added the static method getDefault()
and
setDefault()
to SSLContext.
getDefault()
returns the default SSLContext, which is
initialized in an implementation specific fashion, for example
using system properties. setDefault()
allows an
application to programmatically set the default context to any
initialized SSLContext object.
- SSLParameters
The new SSLParameters
class encapsulates the configuration parameters of an SSL endpoint,
in particular the ciphersuites, protocol versions, and for servers
the client authentication requirements. They can be applied with a
single call to SSLSocket.setSSLParameters()
or
SSLEngine.setSSLParameters()
.


{% extends "layout.html" %} {% block content %}
While teaching ECS as an introductory course I focused on increasing access to students from underrepresented groups and saw a more than 100% growth in the number of women chosing to take computer science courses. In the course we cover topics ranging from discussing "what isa computer?" to designing simple websites, creating games in Scratch and building android apps using AppInventor.
After learning to teach ECS myself, I was asked to help teachin all of the other new teachers in the Chicago Public Schools how to teach the curriculum as well. We use a method designed by the creators of the curriculum that bucks the trend of most teacher professional development opportunities. Instead of simply standing in front of a room of teachers and telling them how to use some tool, we actually collaboratively plan out the lessons in groups and practice teaching them to the rest of the group.
You can find more information about my teaching at my classroom website mrbaskin.com
{% endblock %}


P5Design
Web Design
R1500
Beautiful Designed
100% Responsive
Smooth Interactions
Great Support!
Development
R2500
Customization
R+2500


--- layout: page permalink: /software/passwords/ title: "Password Managers" description: "Stay safe and secure online with an encrypted and open-source password manager." --- {% include legacy/sections/password-managers.html %}


I have always been very numerate and good with logic puzzles, and in school my friends and I discovered very basic programming in Xcode on the library computers, where we tried to make an RSS app. It was this and an interest in circuitry and electronics which led me to choose a degree in electrical & electronic engineering, where I would be able to satisfy my desire to learn how to successfully code an app while still being able to do something tactile.
Throughout my degree, I excelled in the coding modules, and for my final year project I combined my interest in coding with my love for music to make a digital multi-effects guitar pedal with an Arduino Due as the microcontroller. While I was researching the literature review for my FYP, I stumbled across OOP and a tutorial on designing a chess game entirely from scratch in Java. This excited me and research into the world of Java and IT led me to decide that I wanted to pursue a career in IT where I could use my logical reasoning skills and experience in coding, and really delve further into the world of programming.
Here are some of the skills I have gained since starting at QA and working on-site at Capgemini:
At university, I co-hosted a programme on RamAir, the university radio, and was an active member of the Strategy Gaming Society and the Skiing Society.
At school, I completed Grade 7 in Electric Guitar, gained the Duke of Edinburgh Gold Award, and took part in the Young Enterprise scheme as ICT and Co-Ordinations Director. I was also involved in the Investment Society, Big Band and Chamber Choir.
I am currently teaching myself Grade 8 guitar, and recently picked up learning the piano. Also, I like standing on active volcanoes.


A class representing a paginator for an Active Record collection.
- []
- current
- current_page
- current_page=
- each
- first
- first_page
- has_page_number?
- last
- last_page
- length
- new
- page_count
- Enumerable
Class ActionController::Pagination::Paginator::Window
| [R] | controller | |
| [R] | item_count | |
| [R] | items_per_page |
Creates a new Paginator on the given controller for a set of items of size item_count and having items_per_page items per page. Raises ArgumentError if items_per_page is out of bounds (i.e., less than or equal to zero). The page CGI parameter for links defaults to "page" and can be overridden with page_parameter.
[ show source ]
# File vendor/rails/actionpack/lib/action_controller/pagination.rb, line 214 214: def initialize(controller, item_count, items_per_page, current_page=1) 215: raise ArgumentError, 'must have at least one item per page' if 216: items_per_page <= 0 217: 218: @controller = controller 219: @item_count = item_count || 0 220: @items_per_page = items_per_page 221: @pages = {} 222: 223: self.current_page = current_page 224: end
Returns a new Page representing the page with the given index number.
[ show source ]
# File vendor/rails/actionpack/lib/action_controller/pagination.rb, line 272 272: def [](number) 273: @pages[number] ||= Page.new(self, number) 274: end
Alias for current_page
Returns a Page object representing this paginator’s current page.
[ show source ]
# File vendor/rails/actionpack/lib/action_controller/pagination.rb, line 240 240: def current_page 241: @current_page ||= self[@current_page_number] 242: end
Sets the current page number of this paginator. If page is a Page object, its number attribute is used as the value; if the page does not belong to this Paginator, an ArgumentError is raised.
[ show source ]
# File vendor/rails/actionpack/lib/action_controller/pagination.rb, line 230 230: def current_page=(page) 231: if page.is_a? Page 232: raise ArgumentError, 'Page/Paginator mismatch' unless 233: page.paginator == self 234: end 235: page = page.to_i 236: @current_page_number = has_page_number?(page) ? page : 1 237: end
Successively yields all the paginator’s pages to the given block.
[ show source ]
# File vendor/rails/actionpack/lib/action_controller/pagination.rb, line 277 277: def each(&block) 278: page_count.times do |n| 279: yield self[n+1] 280: end 281: end
Alias for first_page
Returns a new Page representing the first page in this paginator.
[ show source ]
# File vendor/rails/actionpack/lib/action_controller/pagination.rb, line 246 246: def first_page 247: @first_page ||= self[1] 248: end
Returns true if this paginator contains the page of index number.
[ show source ]
# File vendor/rails/actionpack/lib/action_controller/pagination.rb, line 266 266: def has_page_number?(number) 267: number >= 1 and number <= page_count 268: end
Alias for last_page
Returns a new Page representing the last page in this paginator.
[ show source ]
# File vendor/rails/actionpack/lib/action_controller/pagination.rb, line 252 252: def last_page 253: @last_page ||= self[page_count] 254: end
Alias for page_count
Returns the number of pages in this paginator.
[ show source ]
# File vendor/rails/actionpack/lib/action_controller/pagination.rb, line 258 258: def page_count 259: @page_count ||= @item_count.zero? ? 1 : 260: (q,r=@item_count.divmod(@items_per_page); r==0? q : q+1) 261: end


| Class | Description |
|---|---|
| BaseAutonomous |
An abstract class used to more easily create opmodes.
|
| BaseTeleop |
An abstract class used to more easily create teleop programs
|
| CameraManager |
A static class used for managing internal and external cameras.
|
| HALPipeline |
An abstract class used to store HAL computer vision pipelines.
|
| HALProgram |
The base class for all HAL programs.
|
| HALTrackerAPI |
A modified version of EasyOpenCV's TrackerAPI used to manage HALPipelines.
|
| Robot |
An abstract class representing the physical robot.
|
| SubSystem |
An abstract class representing a subsystem on the robot.
|
| VisionSubSystem |
An interface for writing vision-based subsystems.
|
| Enum | Description |
|---|---|
| CameraType |
An enum representing the two types of cameras that HAL can manage (INTERNAL and EXTERNAL).
|
| Annotation Type | Description |
|---|---|
| Camera |
An annotation used to specify which camera or cameras a HALPipeline should be passed to.
|
| Camera.CameraCollector |
An internal collector class used to allow the @Camera annotation to be repeated.
|
| ExternalCamera |
An annotation meant to be used on OpenCVCamera objects or their subclasses in order to specify
that they are external cameras and to provide information about how to create them.
|
| ExternalCamera.CameraContainer |
A container annotation used to contain all uses of @ExternalCamera so that the annotation can be repeated.
|
| InternalCamera |
An annotation meant to be used on OpenCVCamera objects or their subclasses in order to specify
that they are external cameras and to provide information about how to create them.
|
| LinkTo |
An annotation that links two HAL programs together, both in the config and via an auto-transitioner.
|
| MainRobot |
An annotation that allows for the easy creation of robots in HAL Programs.
|


20 years old, born and raised in Beaverton, OR. Currently residing in Eugene, Oregon where I am pursuing a Business Marketing degree at the University of Oregon.
I am also earning minors in Spanish and Computer Information Technology. I progress with my graphic design skills through my marketing internship with the U of O Athletic Department,
where I assist in creating graphic advertisements for sporting events. I also give a helping hand with running promotions, social media, and customer service. In between work and class,
I love to stay active by dancing, going on hikes, and am constantly trying new ways to keep my body in motion.
Why Web + Graphic Design?
The beauty of creating and the limitless boundaries of technology – the main reasons I have been captivated by web and graphic design.
Our lives are digitally integrated in nearly every moment of our day, whether we're banking, shopping, texting, or listening to music – we're starring at a screen with a designed
interface, some simple ... some completely spectacular. The interfaces with seamlessly combined aesthetics and functionality are the ones that excite and inspire the public. I hope to
be apart of this inspiration one day.


| Package | org.flixel.data |
| Class | public class FlxFade |
| Inheritance | FlxFade FlxSprite FlxCore |
| Property | Defined by | ||
|---|---|---|---|
| _alpha : Number | FlxSprite | ||
| _animations : Array | FlxSprite | ||
| _bh : uint | FlxSprite | ||
| _bw : uint | FlxSprite | ||
| _caf : uint | FlxSprite | ||
| _callback : Function | FlxSprite | ||
| _color : uint | FlxSprite | ||
| _complete : Function
Callback for when the effect is finished.
| FlxFade | ||
| _ct : ColorTransform | FlxSprite | ||
| _curAnim : FlxAnim | FlxSprite | ||
| _curFrame : uint | FlxSprite | ||
| _delay : Number
How long the effect should last.
| FlxFade | ||
| _facing : uint | FlxSprite | ||
| _flicker : Boolean
Internal helper used for retro-style flickering.
| FlxCore | ||
| _flickerTimer : Number
Internal helper used for retro-style flickering.
| FlxCore | ||
| _flipped : uint | FlxSprite | ||
| _framePixels : BitmapData | FlxSprite | ||
| _frameTimer : Number | FlxSprite | ||
| _mtx : Matrix | FlxSprite | ||
| _p : Point | FlxSprite | ||
| _pixels : BitmapData | FlxSprite | ||
| _r : Rectangle | FlxSprite | ||
| _r2 : Rectangle | FlxSprite |
| Method | Defined by | ||
|---|---|---|---|
|
FlxFade()
Constructor initializes the fade object
| FlxFade | ||
|
addAnimation(Name:String, Frames:Array, FrameRate:Number = 0, Looped:Boolean = true):void
Adds a new animation to the sprite.
| FlxSprite | ||
|
addAnimationCallback(AnimationCallback:Function):void
Pass in a function to be called whenever this sprite's animation changes.
| FlxSprite | ||
|
Collides a
FlxCore against this object. | FlxCore | ||
|
collideArray(Cores:Array):void
Collides an array of
FlxCore objects against the tilemap. | FlxCore | ||
|
collideArrayX(Cores:Array):void
Collides an array of
FlxCore objects against the tilemap against the X axis only. | FlxCore | ||
|
collideArrayY(Cores:Array):void
Collides an array of
FlxCore objects against the tilemap against the Y axis only. | FlxCore | ||
|
Collides a
FlxCore against this object on the X axis ONLY. | FlxCore | ||
|
Collides a
FlxCore against this object on the Y axis ONLY. | FlxCore | ||
|
createGraphic(Width:uint, Height:uint, Color:uint = 0xffffffff, Unique:Boolean = false):FlxSprite
This function creates a flat colored square image dynamically.
| FlxSprite | ||
|
destroy():void
Called by
FlxLayer when states are changed (if it belongs to a layer)
| FlxCore | ||
|
This function draws or stamps one
FlxSprite onto another. | FlxSprite | ||
|
fill(Color:uint):void
Fills this sprite's graphic with a specific color.
| FlxSprite | ||
|
flicker(Duration:Number = 1):void
Tells this object to flicker, retro-style.
| FlxCore | ||
|
flickering():Boolean
Check to see if the object is still flickering.
| FlxCore | ||
|
getScreenXY(P:Point = null):Point
Call this function to figure out the on-screen position of the object.
| FlxSprite | ||
|
hitCeiling(Contact:FlxCore = null):Boolean
Called when this object collides with the bottom of another
FlxCore . | FlxSprite | ||
|
Called when this object collides with the top of another
FlxCore . | FlxSprite | ||
|
Called when this object collides with another
FlxCore on one of its sides. | FlxSprite | ||
|
hurt(Damage:Number):void
Call this function to "damage" (or give health bonus) to this sprite.
| FlxSprite | ||
|
kill():void
Call this function to "kill" a sprite so that it no longer 'exists'.
| FlxCore | ||
|
loadGraphic(Graphic:Class, Animated:Boolean = false, Reverse:Boolean = false, Width:uint = 0, Height:uint = 0, Unique:Boolean = false):FlxSprite
Load an image from an embedded graphic file.
| FlxSprite | ||
|
onEmit():void
Triggered whenever this sprite is launched by a
FlxEmitter . | FlxSprite | ||
|
onScreen():Boolean
Check and see if this object is currently on screen.
| FlxCore | ||
|
Checks to see if some
FlxCore object overlaps this FlxCore object. | FlxCore | ||
|
overlapsPoint(X:Number, Y:Number, PerPixel:Boolean = false):Boolean
Checks to see if a point in 2D space overlaps this FlxCore object.
| FlxSprite | ||
|
play(AnimName:String, Force:Boolean = false):void
Plays an existing animation (e.g.
| FlxSprite | ||
|
randomFrame():void
Tell the sprite to change to a random frame of animation
Useful for instantiating particles or other weird things.
| FlxSprite | ||
|
render():void
Called by game loop, blits or renders current frame of animation to the screen
| FlxSprite | ||
|
reset(X:Number, Y:Number):void
Handy function for reviving game objects.
| FlxCore | ||
|
restart(Color:uint = 0, Duration:Number = 1, FadeComplete:Function = null, Force:Boolean = false):void
Reset and trigger this special effect
| FlxFade | ||
|
specificFrame(Frame:uint):void
Tell the sprite to change to a specific frame of animation.
| FlxSprite | ||
|
unsafeBind(Pixels:BitmapData):void
Internal function, currently only used to quickly update FlxState.screen for post-processing.
| FlxSprite | ||
|
update():void
Updates and/or animates this special effect
| FlxFade |
| _complete | property |
protected var _complete:Function
Callback for when the effect is finished.
| _delay | property |
protected var _delay:Number
How long the effect should last.
| FlxFade | () | constructor |
public function FlxFade()
Constructor initializes the fade object
| restart | () | method |
public function restart(Color:uint = 0, Duration:Number = 1, FadeComplete:Function = null, Force:Boolean = false):void
Reset and trigger this special effect
ParametersColor:uint (default = 0 ) — The color you want to use
|
|
Duration:Number (default = 1 ) — How long it should take to fade the screen out
|
|
FadeComplete:Function (default = null ) — A function you want to run when the fade finishes
|
|
Force:Boolean (default = false ) — Force the effect to reset
|
| update | () | method |
public override function update():void
Updates and/or animates this special effect


How interactors work
Interactors package common patterns of user interaction into reusable objects. They are a mechanism originally developed in Brad Meyer's Garnet system. The Slate's interactors are much smaller, lighter, and more numerous than the interactors in Garnet. They are also known as "manipulators" in other systems (and this would perhaps be a better name, since the Slate's interactors are much less general than Garnet's and apply only to graphical items on the Slate). The Slate's interactors are designed to be easy to combine to create complex patterns of interaction from simpler ones. Interactors are built on top of Tk's event-handling mechanism.
Each sub-class of Interactor implements a particular kind of user interaction. Most interactors are based on the observation that user interactions can be broken into a sequence: a click, some number of drags, and a release. (These are abstract operations, and do not necessarily correspond to physical mouse clicks, drags, and releases.)
When an interactor is first created, it can do absolutely nothing. To enable it to do something, the creator "binds" the interactor to an object or tag on the Slate. Usually (depending on the interactor class), this creates a single event binding on the slate that calls the interactor's activate method when the mouse button is pressed on the item.
When invoked by a mouse click (or some other such action), the activate method adds some more bindings to the Slate, for mouse motion and mouse release. It then calls its own click method: in this method, the interactor takes whatever action it thinks is appropriate -- this usually involves at least remembering the starting coordinates of the interaction sequence, and forwarding those coordinates onto the interactors target (more about targets below).
When the mouse is moved, the interactor's drag method is called (by the binding set up by activate). drag computes new coordinates, and then forwards them onto the target. At the termination of the interaction sequence, the user releases the mouse, which causes the release and deactivate methods to be called. The first performs any actions needed (usually, not much), while the second restores the Slate bindings to how they were before the interaction started.
When interaction with an item or set of items is no longer needed, the interaction bindings can be removed with the unbind method. There are many more complex variations on this basic sequence of events, and we are still discovering ways in which interaction can be characterized and re-used.
An interactor has a "target," which is a Slate item ID, and may have a "proxy," which is another interactor. If an interactor has a proxy, then it forwards each interaction event (click, drag, or release) to its proxy (after calculating and modifying coordinates.) If not, then it forwards the coordinates to the Slate's interact method, with a flag indicating which phase of the interaction it is in. Proxies are set with the cascade and uncascade methods.
The behavior of interactors can be parameterized in three ways: The first way is by supplying options to its bind method. Currently, bind accepts these options:
The second is with configuration options that are executed at certain times in an interaction sequence:
- -button button: The mouse button to react to. By default, this is button 1 (the left one).
- -modifiers modifiers: A list of modifiers needed to make the interactor respond. The list can include any of the following: shift, alt, meta, and control. The default is an empty list.
- -ghost: If present, this flag indicates that moving or resizing is to be performed with a "ghost" of the item.
The third is with configuration options that are override the default forwarding of interaction events (click, drag, release). These are typically used to implement more sophisticated model-view-controller interfaces, in which the interaction events (from the controller) are forward to the slate (the view) only after interception and processing by some other object (the model). These options are
- -activatecommand: If not null, this is a function-script (see the documentation for the apply procedure) which is applied to four arguments when the interactor is activated: the interactor, the target, and the current x and y coordinates. This is used to customize the behavior of the interactor depending on information that is not known until activation.
- -deactivatecommand: If not null, this is a function-script which is applied to the same four arguments when the interactor is de-activated.
- -dragcommand: If not null, this is a function-script which is applied to the same four arguments at the completion of the interactor's drag method.
- -clickprefix: If not null, this is a script which has the target and coordinates appended and evaluated in the click method. This is typically used if the mouse interaction is not going directly to a Slate.
- -dragprefix: If not null, this is a script which has the target and coordinates appended and evaluated in the drag method. This is typically used if the mouse interaction is not going directly to a Slate.
- -releaseprefix: If not null, this is a script which has the target and coordinates appended and evaluated in the release method. This is typically used if the mouse interaction is not going directly to a Slate.


DataModel is an abstract base class for data model objects.
Default constructor
protected Void DataModel()
| Type | Name | Summary |
|---|---|---|
| AfterEraseEventHandler | AfterErase | AfterErase event is fired after that the Erase method is executed. |
| AfterSaveEventHandler | AfterSave | AfterSave event is fired after that the Save method is executed. |
| BeforeEraseEventHandler | BeforeErase | BeforeErase event is fired before that the Erase method is executed. |
| BeforeSaveEventHandler | BeforeSave | BeforeSave event is fired before that the Save method is executed. |
| PropertyChangedEventHandler | PropertyChanged | PropertyChanged event fires when a property has change its value. |
Get or set the data column mapping collection.
public ColumnPropertyMappings ColumnPropertyMappings { get; set; }
Gets the DataAction that is currently performed on this object.
public DataAction CurrentAction { get; }
Get the collection of data properties definitions.
public IDictionary<String, IDataProperty> DataProperties { get; }
Get or set the data services object.
public IDataServices DataServices { get; set; }
Get whether the validation of the object must be enforced through a IDataModelValidator.
public Boolean EnforceModelValidation { get; }
Get or set an object that manages the generation of identity fields values.
public IIdentity Identity { get; set; }
Get or set data properties.
public Object Item { get; set; }
Gets whether the object has been modified.
public Boolean Modified { get; }
Get or set an object that manages the generation of numerator fields values.
public INumerator Numerator { get; set; }
Get or set an object that manages the generation of sequence fields values.
public ISequencer Sequencer { get; set; }
Get or set the data validator object.
public IDataModelValidator Validator { get; set; }
Clears the contents of the object.
public Void Clear()
| Type | Summary |
|---|---|
| PropertyNotSupportedException | Thrown when a data property is not supported. |
Copies the data properties from the source model to this object. It is a helper method to create copy constructors.
protected Void CopyDataProperties(source)
| Name | Type | Summary |
|---|---|---|
| source | IDataModel | The source object with the data. |
| Type | Summary |
|---|---|
| InvalidCastException | Thrown when the Type of source is different of the Type of this object. |
| PropertyNotSupportedException | Thrown when a data property is not supported. |
Check if the domain object has its required properties initialized.
protected Void EnsureObjectState()
| Type | Summary |
|---|---|
| MissingRequiredPropertyException | Thrown when a required property is not initialized. |
Erases an object by issuing a delete command to the underlaying data source.
public Void Erase()
| Type | Summary |
|---|---|
| AuditingException | Thrown when an auditing process fails or cannot be completed successfully. |
| ValidationException | Thrown when the domain object is not valid. |
| ConcurrectActionMissedException | Thrown when concurrency is applied and no record was affected. |
| MissingRequiredPropertyException | Thrown wher the Validator property is not initialized. |
Erases an object by issuing a delete command to the underlaying data source.
public Void Erase(concurrency)
| Name | Type | Summary |
|---|---|---|
| concurrency | ConcurrencyMode | Concurrency mode to apply. |
| Type | Summary |
|---|---|
| AuditingException | Thrown when an auditing process fails or cannot be completed successfully. |
| ValidationException | Thrown when the domain object is not valid. |
| ConcurrectActionMissedException | Thrown when concurrency is applied and no record was affected. |
| MissingRequiredPropertyException | Thrown wher the Validator property is not initialized. |
Erases an object by issuing a delete command to the underlaying data source.
public Task EraseAsync()
| Type | Summary |
|---|---|
| AuditingException | Thrown when an auditing process fails or cannot be completed successfully. |
| ValidationException | Thrown when the domain object is not valid. |
| ConcurrectActionMissedException | Thrown when concurrency is applied and no record was affected. |
| MissingRequiredPropertyException | Thrown wher the Validator property is not initialized. |
Erases an object by issuing a delete command to the underlaying data source.
public Task EraseAsync(concurrency)
| Name | Type | Summary |
|---|---|---|
| concurrency | ConcurrencyMode | Concurrency mode to apply. |
| Type | Summary |
|---|---|
| AuditingException | Thrown when an auditing process fails or cannot be completed successfully. |
| ValidationException | Thrown when the domain object is not valid. |
| ConcurrectActionMissedException | Thrown when concurrency is applied and no record was affected. |
| MissingRequiredPropertyException | Thrown wher the Validator property is not initialized. |
Fill this object with the contents of the specified DataRow object.
public Void Fill(row)
| Name | Type | Summary |
|---|---|---|
| row | DataRow | The DataRow object. |
| Type | Summary |
|---|---|
| ArgumentNullException | Thrown when the argument row is null. |
| PropertyNotSupportedException | Thrown when the property to assign is not supported. |
Returns the value of the internal property field.
public Object GetDataPropertyValue(property)
The value of the property field.
| Name | Type | Summary |
|---|---|---|
| property | String | The property to get it internal value. |
| Type | Summary |
|---|---|
| ArgumentNullException | Thrown when the argument property is null. |
| PropertyNotSupportedException | Thrown wher the specified property is not supported. |
Test if a data property has data.
public Boolean HasData(property)
true if the property contains data.
| Name | Type | Summary |
|---|---|---|
| property | String | The name of the property to test. |
| Type | Summary |
|---|---|
| ArgumentNullException | Thrown when the argument property is null. |
| PropertyNotSupportedException | Thrown wher the specified property is not supported. |
Test if a data property has been modified.
public Boolean IsModified(property)
true if the property has been modified.
| Name | Type | Summary |
|---|---|---|
| property | String | The name of the property. |
| Type | Summary |
|---|---|
| ArgumentNullException | Thrown when the argument property is null. |
| PropertyNotSupportedException | Thrown when the specified data property is not supported. |
Set property information and lauches the PropertyChanged event if assigned.
protected Void NotifyPropertyChanged(value, propertyName)
| Name | Type | Summary |
|---|---|---|
| value | Object | The current value assigned to the property. |
| propertyName | String | The name of the property. |
Saves the object by issuing an insert or update command based on the specified action.
public Void Save(action)
| Name | Type | Summary |
|---|---|---|
| action | DataAction | The action to execute. |
| Type | Summary |
|---|---|
| AuditingException | Thrown when an auditing process fails or cannot be completed successfully. |
| ValidationException | Thrown when the domain object is not valid. |
| ConcurrectActionMissedException | Thrown when concurrency is applied and no record was affected. |
| InvalidDataActionException | Thrown when action is not a valid DataAction. |
Saves the object by issuing an insert or update command based on the specified action.
public Void Save(action, concurrency)
| Name | Type | Summary |
|---|---|---|
| action | DataAction | The action to execute. |
| concurrency | ConcurrencyMode | Concurrency mode to apply. |
| Type | Summary |
|---|---|
| AuditingException | Thrown when an auditing process fails or cannot be completed successfully. |
| ValidationException | Thrown when the domain object is not valid. |
| ConcurrectActionMissedException | Thrown when concurrency is applied and no record was affected. |
| InvalidDataActionException | Thrown when action is not a valid DataAction. |
Saves the object by issuing an insert or update command based on the specified action.
public Task SaveAsync(action)
| Name | Type | Summary |
|---|---|---|
| action | DataAction | The action to execute. |
| Type | Summary |
|---|---|
| AuditingException | Thrown when an auditing process fails or cannot be completed successfully. |
| ValidationException | Thrown when the domain object is not valid. |
| ConcurrectActionMissedException | Thrown when concurrency is applied and no record was affected. |
| InvalidDataActionException | Thrown when action is not a valid DataAction. |
Saves the object by issuing an insert or update command based on the specified action.
public Task SaveAsync(action, concurrency)
| Name | Type | Summary |
|---|---|---|
| action | DataAction | The action to execute. |
| concurrency | ConcurrencyMode | Concurrency mode to apply. |
| Type | Summary |
|---|---|
| AuditingException | Thrown when an auditing process fails or cannot be completed successfully. |
| ValidationException | Thrown when the domain object is not valid. |
| ConcurrectActionMissedException | Thrown when concurrency is applied and no record was affected. |
| InvalidDataActionException | Thrown when action is not a valid DataAction. |
Sets the value od the internal property field.
public Void SetDataPropertyValue(property, value)
| Name | Type | Summary |
|---|---|---|
| property | String | The property to set it's internal value. |
| value | Object | The new value for the property. |
| Type | Summary |
|---|---|
| ArgumentNullException | Thrown when the argument property is null. |
| PropertyNotSupportedException | Thrown when the specified property is not supported. |
| PropertyFieldNotFoundException | Thrown when the backing field is not found. |
| UnableToSetDataPropertyValueException | Thrown when the value cannot be setted. |
Sets properties default values if required.
protected Void SetDefaultsIfRequired()
Validates this object.
public Void Validate()
| Type | Summary |
|---|---|
| ValidationException | Thrown when the domain object is not valid. |
| MissingRequiredPropertyException | Thrown wher the Validator property is not initialized. |
| PropertyNotSupportedException | Thrown when a data property is not supported. |
In this document


bartificer.Worldclock
Test PageanimationTime
(Local time):
Europe/Dublin
):
America/Los_Angeles
):
Below is a clock showing the local time using a div
tag.
Below is a clock showing the local time with seconds using a div
tag.
Below is a clock showing the local time in 12 hour format using a p
tag.
Below is a clock showing the local time in 12 hour format with seconds using a p
tag.
Below is a clock showing the time in New York with a h1
tag.
Below is a clock showing the time in Sydney with a h2
tag.
Below is a clock showing the time in Hong Kong with a h3
tag.
Below is a clock showing the time in Johannesburg with a h4
tag.


|
SGCoreCs
v1.3.1
SenseGlove C# API
|
An algorithm that checks whether or not our current user is running in the same calibration range as last time. More...
Public Member Functions | |
| HG_CalCheck (SGCore.Calibration.SensorRange lastCalibrationRange) | |
| The last calibration range can be null, at which point you defnitely need calibration. More... | |
| void | Reset () |
| Reset the calibrationCheck. so it may be used again. This does not reset the LastRange. More... | |
| void | CheckRange (Vect3D[] currentValues, float deltaTime_s, DeviceType deviceType) |
| Using the currently received Sensor Values, check if calibration is required. This function will have to be called until a conclusion can be reached. More... | |
Static Public Member Functions | |
| static bool | NeedsCheck (SGCore.DeviceType device) |
| Returns true if this DeviceType requires a calibration check. More... | |
| static int | OutOfBounds (SensorRange previousRange, Vect3D[] currentValues, SGCore.DeviceType type) |
| Checks if current values are operating out of the previous range. Returns -1 if all is fine. 0...4 to indicate which finger is out of bounds. More... | |
| static bool | MovedMinimum (Vect3D[] currentRange, SGCore.DeviceType type) |
| Returns true if the user has moved enough in both flexion and thumb abduction movement to be considered 'active' More... | |
| static bool | MatchesLast (Vect3D[] currentRange, Vect3D[] lastRange, SGCore.DeviceType type) |
| Returns true if the current sensor values have moved roughly as much as last time. More... | |
| static string | GetDebugString (Vect3D[] currentRange, SGCore.DeviceType type) |
| Returns a string value informing me which fingers still need to move. Move Thumb, Index, Middle, Ring, Pinky etc. More... | |
Public Attributes | |
| SGCore.Calibration.SensorRange | lastRange |
| The calibration range from last time, that we are checking against. More... | |
| SGCore.Calibration.SensorRange | currentRange |
| The calibration range measured as of right now. More... | |
| float | perfectThresholdTime = 0.5f |
| If we're 'around' the lastRange for this amount of time, we're calling it 'done'. More... | |
| float | timer_atThreshold = 0 |
| Time that we've been around the last range for. More... | |
| bool | movedMinimum = false |
| Whether or not we've moved a minimum amount. Something that even someone with the smallest hands can do. More... | |
| float | minMoveTime = 3.0f |
| After moving the minimum amount of time but not reaching the perivous range, we'll say the hand is too small. More... | |
| float | timer_MinMove = 0.0f |
| Time since we made the minumum amount of movement More... | |
| float | outOfBoundsTime = 0.1f |
| The amount of time the current values can be out of range for. Catches a minor case where sensor jitter causes us to be outside of the range. More... | |
| float | timer_outOfBounds = 0 |
| Time we've been out of bounds for. More... | |
Static Public Attributes | |
| const float | sgThreshold = SGCore.Kinematics.Values.Deg2Rad * 15 |
| SenseGlove: How far from the threshold one can be where we would still call it 'the same as before' More... | |
| const float | novaThreshold = 350 |
| Nova: How far from the threshold one can be where we would still call it 'the same as before' More... | |
| const float | sgMinFlex = SGCore.Kinematics.Values.Deg2Rad * 90 |
| SenseGlove: The minumum amount of sensor flexion movement before we start testing for a smaller hand. More... | |
| const float | novaMinFlex = 1500 |
| Nova: The minumum amount of sensor flexion movement before we start testing for a smaller hand. More... | |
| const float | sgMinAbd = SGCore.Kinematics.Values.Deg2Rad * 10 |
| SenseGlove: The minumum amount of sensor movement on the thumb abduction before we start testing for a smaller hand. More... | |
| const float | novaMinAbd = 250 |
| Nova: The minumum amount of sensor movement on the thumb abduction before we start testing for a smaller hand. More... | |
Properties | |
| CalibrationStage | CalibrationStage [get] |
| The current stage of this algorithm More... | |
| bool | ReachedConclusion [get] |
| Whether or not his algorithm has determined if calibration is required. More... | |
An algorithm that checks whether or not our current user is running in the same calibration range as last time.
| SGCore.Calibration.HG_CalCheck.HG_CalCheck | ( | SGCore.Calibration.SensorRange | lastCalibrationRange | ) |
The last calibration range can be null, at which point you defnitely need calibration.
| lastCalibrationRange |
| void SGCore.Calibration.HG_CalCheck.CheckRange | ( | Vect3D[] | currentValues, |
| float | deltaTime_s, | ||
| DeviceType | deviceType | ||
| ) |
Using the currently received Sensor Values, check if calibration is required. This function will have to be called until a conclusion can be reached.
| currentValues | |
| deltaTime_s | |
| deviceType |
|
static |
Returns a string value informing me which fingers still need to move. Move Thumb, Index, Middle, Ring, Pinky etc.
| currentRange | |
| type |
|
static |
Returns true if the current sensor values have moved roughly as much as last time.
| currentRange | |
| lastRange | |
| type |
|
static |
Returns true if the user has moved enough in both flexion and thumb abduction movement to be considered 'active'
| currentRange | |
| type |
|
static |
Returns true if this DeviceType requires a calibration check.
| device |
|
static |
Checks if current values are operating out of the previous range. Returns -1 if all is fine. 0...4 to indicate which finger is out of bounds.
| previousRange | |
| currentValues | |
| type |
| void SGCore.Calibration.HG_CalCheck.Reset | ( | ) |
Reset the calibrationCheck. so it may be used again. This does not reset the LastRange.
| SGCore.Calibration.SensorRange SGCore.Calibration.HG_CalCheck.currentRange |
The calibration range measured as of right now.
| SGCore.Calibration.SensorRange SGCore.Calibration.HG_CalCheck.lastRange |
The calibration range from last time, that we are checking against.
| float SGCore.Calibration.HG_CalCheck.minMoveTime = 3.0f |
After moving the minimum amount of time but not reaching the perivous range, we'll say the hand is too small.
| bool SGCore.Calibration.HG_CalCheck.movedMinimum = false |
Whether or not we've moved a minimum amount. Something that even someone with the smallest hands can do.
|
static |
Nova: The minumum amount of sensor movement on the thumb abduction before we start testing for a smaller hand.
|
static |
Nova: The minumum amount of sensor flexion movement before we start testing for a smaller hand.
|
static |
Nova: How far from the threshold one can be where we would still call it 'the same as before'
| float SGCore.Calibration.HG_CalCheck.outOfBoundsTime = 0.1f |
The amount of time the current values can be out of range for. Catches a minor case where sensor jitter causes us to be outside of the range.
| float SGCore.Calibration.HG_CalCheck.perfectThresholdTime = 0.5f |
If we're 'around' the lastRange for this amount of time, we're calling it 'done'.
|
static |
SenseGlove: The minumum amount of sensor movement on the thumb abduction before we start testing for a smaller hand.
|
static |
SenseGlove: The minumum amount of sensor flexion movement before we start testing for a smaller hand.
|
static |
SenseGlove: How far from the threshold one can be where we would still call it 'the same as before'
| float SGCore.Calibration.HG_CalCheck.timer_atThreshold = 0 |
Time that we've been around the last range for.
| float SGCore.Calibration.HG_CalCheck.timer_MinMove = 0.0f |
Time since we made the minumum amount of movement
| float SGCore.Calibration.HG_CalCheck.timer_outOfBounds = 0 |
Time we've been out of bounds for.
|
get |
The current stage of this algorithm
|
get |
Whether or not his algorithm has determined if calibration is required.


---
layout: game-page
redirect_from: /game/nibbles-extreme
title: Nibbles Extreme
year: 2005
semester: Spring
description: "Snaaake! Snaaakee! Oooh its a snake!
QBasic aficionados look no further, it's a new Nibbles for a new generation. During this transition to the third dimension, our snakey hero gains new powers of jump and tunnel to defend himself against all sorts of z-axial dangers."
tags: Windows Singleplayer
# tag options: "Windows", "Mac", "Linux",
# "Singleplayer", "Multiplayer",
# "Controller-Compatible", "VR",
# "Game-Jam"
project_members: {
Bei Yang: "Project Lead, Art, Level Design",
Chris DeLeon: Sound Effects,
Jaijun Lim: Art,
Ted Hung: "Former Project Lead, Programming Lead",
Tom Cauchois: "Programming, Engine Upgrades/Additions"
}
stage_game_path: nibbles/
builds: {
Windows: nibbles.win32.zip
}
thumbnail: nibbles-1.jpg
top-img: nibbles-1.jpg
screenshots: [
nibbles-1.jpg,
nibbles-2.jpg
]
# Optional
top-img-fit: cover
# top-img-fit options:
# "cover" - Cover the entire top area with the image, without squashing/stretching
# "fill" - Fit the FULL image into the top area, squashing/stretching as necessary
---


I was always going to be an artist. In school I avoided maths or anything related to computers. I cut classes to hang out with the arts faculty staff, just shooting the breeze
Albert Tucker told me "I'd get on in life" when I bumped into him at the NGV, he put his arm around me as he gave me his blessing. I got my degree in Computer Mediated Art at University and eventually decided computers weren't so bad afterall - though my exposure was to Flash and Director. After spending the next few years working in a record store and travelling the world I did an apprencticeship and worked as a tattoo artist.
An old art lecturer visited one day and told me I'd get bored, ofcourse I disagreed! In the end, she was right. I walked away after a few years, saying it was like retail, only with more blood and fainting.
The truth is, I'm never really happy unless I feel utterly out of my depth. If I'm coasting, I'm bored - I need to be challenged in everything I do. I think I've finally found it.  I'm drowning here and that feels good :)
I'm a Project Manager at Icelab Melbourne. It's great to be a part of a workplace and community that's so happy to help and share knowledge! I hope one day, to be able to pass on this goodwill.
Follow me on Twitter @MelissaKaulfuss
My "code" is on Github


SOUR GRAPES
Reviewed by Harvey Karten, Ph.D. Columbia Pictures/ Castle Rock Entertainment Director: Larry David Writer: Larry David Cast: Steven Weber, Craig Bierko, Karen Sillas, Robyn Peterman, Matt Keeslar, Viola Harris, Orland Jones
It's a good thing that film critics have widely different opinions on what they see. Otherwise you'd have a severe downsizing in the industry--perhaps one national critic for the 275+ studios films introduced each year--and we wouldn't want to eliminate the enterprise, would we? Sometimes, though, it seems that reviewers see different works altogether. Time Out New York magazine critic Andrew Johnston calls "Sour Grapes" "very very funny," while Roger Ebert of the Chicago Sun-Times says that it's "a comedy about things that aren't funny." Whom to trust?
In this case the Johnston-Ebert schism can be resolved by splitting the difference. The movie is neither very very funny nor humorless. In a way, it's like "The Odd Couple II" in that you might find yourself rolling with laughter, then wondering how you could do that for such cornball material. Each movie has something the other lacks, however. "The Odd Couple II" has crackerjack actors as the two leads; their gags are timed perfectly. But the material is older than they are. "Sour Grapes" is deficient in pacing--sometimes the performers seem to stop to wait for a laugh or perhaps even to contemplate whether what they say really is as ludicrous as it's supposed to be. But the material is freshly crass.  The gags come at you thick and fast, delivered by two guys who are cousins, who are friends, but whose temperaments are far enough apart to create the central tension of the story.
Evan (Steve Weber) is a successful New York brain surgeon, considered one of the top men in the field. His cousin Richie (Craig Bierko) is a designer of sneakers. Evan is handsome and dates a WASP girl, Joan (Karen Sillas) while Richie's flamboyant and goes with a gum-chewing little bombshell, Millie (Jennifer Leigh Warren). When the two couples go to Atlantic City for a weekend of gambling, both lose heavily until Richie, down to his last quarter, bums Evan's last two coins to play the 75-cent slot machine. When Richie hits the jackpot (three grapes in a row), he wins the grand price of $436,000. Offering Evan a $1000 check he is astounded when Evan counters with a demand for half the money--"technically two-thirds"--because the winning grapes came through on Evan's money.  Though a little time is spent splitting hairs--for example, were the two quarters a loan or an stake--"Sour Grapes" is not concerned with matters technical or with proceeding on unflawed logic. The movie is a burlesque on the nature of greed, a favorite topic of writers at least since Ben Jonson penned the classic tale of acquisitiveness, "Volpone," and how such cupidity can undo the best of friendships and lead to a loss of close relationships.
Some of the humor is on a level of vulgarity that might make Howard Stern wince. Because Evan and Richie have staked out rival claims to the money, both advance through the movie with anxiety leading to embarrassing circumstances. To relax, the double-jointed Richie is more than ever devoted to his hobby of performing oral sex on himself. For his part, Evan performs surgery on an infected testicle of a TV entertainer, Danny Pepper (Matt Keeslar), cuts out the wrong one, and leaves the poor man fully castrated with disastrous effects on his voice and thereby his successful career. (This running gag is perhaps the only one that doesn't work, not so much because it's crude, but because Keeslar is too outrageous to be believed or sympathized with and because it is overly extended.)
Viola Harris does a comic turn as Richie's Jewish mother, who dotes on this son who takes such good care of her--until, that is, the overindulged lad decides to have her killed for reasons which are clear as you watch the movie. The story finds use for a Runyonesque group of homeless people, one who acts in an embarrassing Stepin Fetchit mode, and in yet another putdown of political correctness hones in on an elderly couple who hesitate long and hard before telling a black cop that the criminal being sought is also African- American.
We can't fail to mention that Larry David, the writer-director, is co-creator of the fabulously successful Seinfeld series, a rich man indeed who left TV to make movies like this one. His straight-man, Steven Weber, looks strikingly like that TV series' title character. "Sour Grapes" may be strictly a strictly debut accomplishment, though a solid one at that, but wait until David really hits his stride and knocks out a series of triumphs in the years to come. Rated R. Running Time: 92 minutes. (C) 1998 Harvey Karten
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


bon forage
Home
About
Product
Web Design
Graphic Design
Business Card
Database Service
Software\
Wordpress
Coordinator
Laravel
ASP Net
Core PHP
Support Service
Team
Portfolio
ELECTRONICS
Smart Phone
Laptop
LCD/LED TV
Mac Computer
MEN WEAR
Formal Shirt
Denim Jeans
Sport Shoes
Duke Tshirt
WOMEN WEAR
Fancy Tops
Western Wear
Beauty
Personal Care
BABY & KIDS
Toy Game
Kids Cloth
School Supplie
Fancy Jeans
Careers
Sign in
MAP
LIST
CATEGORIES


Preparation time
less than 30 mins
Cooking time
10 to 30 mins
Serves
Serves 1
Preheat the oven to 180C/350F/Gas 4.
Season the duck well with salt and freshly ground black pepper and place skin-side down in a small ovenproof frying pan. Place over a medium heat and fry on both sides until browned.
Transfer to the oven and roast for 8-10 minutes, or until cooked to your liking. Remove the duck from the pan and transfer to a board to rest.
Return the pan to the heat and pour in the wine. Bring to a simmer, scraping up the bits from the bottom of the pan with a wooden spoon. Simmer until reduced by half, then stir in the cream and black pepper. Simmer gently until needed.
For the herb rice, place the basmati rice into a small saucepan and cover with cold water. Bring to the boil and simmer for 8-10 minutes, or until tender. Drain off any excess liquid.
Brush the inside of a deep ramekin dish with the melted butter. Place the chopped parsley into the ramekin and tip it around to coat the buttered sides with the parsley.
Tip the excess herbs and butter into the drained rice and mix well, then pack the rice into the ramekin.
To serve, slice the duck into four and arrange on a serving plate. Turn out the ramekin of herb rice onto the plate. Serve with broccoli and pour the sauce over the duck.


Named Selections are collections of graph elements that have been saved for later use. Named Selections can be used analytically through their use in union (binary OR) and intersection (binary AND) operations.
The following image shows the basic components of the Named Selection Window
There are two main ways to create and use Named Selections: Through the Named Selection Window, and through the use of shortcut keys.
To create a Named Selection with a shortcut key, hold Control-Shift and press one of the numbers from 1-9. To recall a Named Selection with a shortcut key, Control- and press the corresponding number from 1-9 that was used when creating the Named Selection. The combination to recall a Named Selection is shown next to the selection in the Named Selection Window as per the image above.
To perform a union (binary OR) operation, select two or more selections from the Named Selections Window, and press the 'Union' button (as per the image above). This will result in all elements from each Named Selection (and the graph if Current Selection has been selected) being selected on the graph.
To perform an intersection (binary AND) operation, select two or more selections from the Named Selections Window, and press the 'Intersection' button (as per the image above). This will result in all common elements from each Named Selection (and the graph if Current Selection has been selected) being selected on the graph, and all other elements being unselected.
To ensure a selection is not inadvertently deleted, it can be protected. This can be achieved by right clicking the relevant Named Selection, and selecting the 'Protect Selection' menu item. A small padlock appears next to protected Named Selections to indicate this mode. (See the image above).
To create a duplicate of a Named Selection, right click it and select 'Clone Selection' from the menu. This will create a new named selection that contains all of the elements that the original Named Selection contained.
Named Selections can be given meaningful names by highlighting the selection in the Named Selection Window and pressing 'F2', or right-clicking and selecting 'Rename Selection'. A prompt is shown where a new name can be entered.
Descriptions for Named Selections can be set by right-clicking a Named Selection, and selecting 'Set Selection Description' from the menu. A prompt is shown where a description can be entered. If a Named Selection has had a description appended, it will be placed in a tooltip if the mouse is hovered over the Named Selection for a short period of time.


HOME - LIVING ROOM
PM2.5 MEASURE
PM2.5 Measure
INDOOR
50
ug/m
3
PM2.5 Measure
good
normal
poor
very poor
Air Purifier
Sleep
Low
Medium
High
AUTO OFF
FanSpeedControl
AutoControl
AUTO
| Auto Run under air condition


4. Disputes and appeals
How to appeal a decision we have made about your Council Tax Support claim.
If you disagree with a decision we have made you must write to us within one month of the decision. You will need to explain the reasons why and provide any documents to support this.
This time limit may be extended in special circumstances, but there is a risk of your appeal not being accepted if you leave it too late.


About
Nov. 12th 2014
In this tutorial, we will learn how to use the TuriCreate API offered by Apple to differentiate between cats and dogs by creating an image recognition app of our own using a custom dataset.
We will be training our own machine learning model using images of cats and dogs, and exporting it for use in IOS devices.
This tutorial is designed with begginers in mind, who are interested in learning how to use the API for image recognition purposes.
Why turicreate?
Turicreate, now owned by Apple, makes the machine learning process extremely simple. It does a lot of laborous work for us, such as resizing images, and training/testing the model. This is perfect for beginners and app developers who do not want to spend time learning the implementation details of machine learning and convolution networks.


{% extends 'base.html' %} {% import 'macros.html' as macro %} {%block styles%} {{ super() }} {%endblock%} {%block content%}
Seize your minute and make it count
Ideas to help you with your job interviews.
Pitch ideas for upcoming projects.
Pitch catchy, memorable adverts.
Pitches to help ace your school interview.
Promote your new products.
Make inspiring quotes.


We've seen it all — foe scaling MVPs to well-rounded web application.
Ambitious and driven by huge amounts of commercial experience.
gained by working for succeccful startups and world-class companies.
Following the hottest trends, we’ve got the best frameworks on board
We love our job, therefore we treat every project like it was our last
As the startup veterans, we’ve seen it all the helped tons of companies grow
Always happy to share any kind of business or real life advice
Deadline is our religion, Let’s ship your MVP before that damn competition!
Seasohed developers, individuals that stick out.dank edgy boys — call us what you want.We are a blend of cultures.backgrounds and skills.We founded Youngbloods to provide a newquality in the soiled market.To reset the industry with honesty and curisity.No cutting corners here.
READ MORE


REPORTS
MEMBERS
CERTIFICATIONS
ABOUT US
Add Certification
Certification Name:
Certification Agency:
Expiration Period:
Add


Filter
- Push
- Triggered on a push to a repository branch.
- Create
- Represents a created repository, branch, or tag.
- Issues
- Triggered when an issue is assigned, unassigned, labeled, unlabeled, opened, edited, milestoned, demilestoned, closed, or reopened.
- Issue Comment
- Triggered when an issue comment is created, edited, or deleted.
- Pull Request
- Triggered when a pull request is assigned, unassigned, labeled, unlabeled, opened, edited, closed, reopened, or synchronized.
- Pull Request Review Comment
- Triggered when a comment on a pull request's unified diff is created, edited, or deleted (in the Files Changed tab).
- Watch
- The WatchEvent is related to starring a repository, not watching.
- Delete
- Represents a deleted branch or tag.
- Fork
- Triggered when a user forks a repository.


We create what people will love, not what they will like.
We don’t settle for mediocrity.
We’re full service which means we’ve got you covered on design and content right through to digital.
SPEED
We work on our toes to deliver results beyond our client’s expectations. Our clients are our top-most priority, we never keep them waiting.
TRANSPARENCY.
We are 100% transparent with our internal and external stakeholders, and we’ve found that our clients absolutely love it. We have nothing to hide. We have no secrets.
COMMITMENT
We are loyal to our clients and will always honor their marketing goals while treating them with utmost respect. We have a deep, genuine commitment to our clients and vow to never let them down.
INNOVATION
We’re not concerned with the other guys. We’re setting the bar for digital marketing and standing out from the crowd! We want to cut through the over-saturation of the same old strategies and campaigns and show people what innovative marketing can do.
HARD WORK
We’re not a huge, well-known company yet. Therefore, we have to work that much harder to build our brand. We have to work that much harder to establish recognition and reputation. But we love what we do and enjoy all aspects of it!
FUN
People who use humor at work are more productive, less stressed, and happier so we make sure that everyone from the boss to the client is using humor and having fun as a part of out company culture.
About Us
You Matter to us
Our Founder while failing at his earlier startup, came across a question – What can he do to solve problems for small businesses using his experience, ideas, creativity, and passion?
After a lot of brainstorming, meditating, and coffee-overdosing, he chalked out the plan for Social 101. And hence, we came into existence on 4th June 2018 to solve all your small and big marketing problems.
Social 101 is a full-service interactive media agency. We are a team of content creators, graphic designers, web developers, SEO experts and digital media strategists who serve brands beyond their imaginations. We at Social 101 aim to help your business grow substantially and organically with the latest technologies & minds at work.

We believe that strong customer relationships drive sales, sustainability, and growth. Our team put in their best efforts to build sustainable relationship between your company and its customers.
Our Plan
From the very beginning, we have always aligned our goals to our clients’ and the results have been great, actually fantastic!
Here we are, to strategize your marketing activities, plan your social media, write copies for you, make your websites beautiful, and make your video meaningful with lots of coffee, passion, and compassion.
Our Vision
We Strive to Create India’s Leading Brand Stories by Aligning Our Client’s Goals with Overall with Ours.
We were waiting for you, are you ready to take make your idea the next big thing?
Inquire Now
We believe in the values of humanity & ethics above everything else. We understand that the growth of your business will help us grow as well and this makes us do result oriented work for you.
Call To ActionServices
THINGS WE DO TO MAKE YOU GREAT
BRANDING
If you need branding, we will create a consistent visual identification of your service or product. Since we believe branding is an essential part of your communication strategy, we work closely with you to ensure a solid foundation for your brand. If you already have it, we will work on designs following your brand guidelines.
SOCIAL MEDIA MARKETING
At Social 101, we develop a consistent messaging & visual strategy for your brand to foster deeper connections with your audience. Not only will we help develop a foundation for your social media accounts, but we’ll develop designs for everyday engagement on your digital platforms.
WEBSITE DESIGN & DEVELOPMENT
We aim to convert potentials to actual customers by developing a visually appealing website for your brand that strengthens your credibility & exaggerates your capabilities. Trust us to deliver the best and workable website design possible for you just so you give off enough information to attract the right people to your brand. Not too much, not too less.
CONTENT MARKETING
We create content which is valuable, relevant and consistent to attract, acquire and retain your target audience. The content which will drive profitable customer reactions. We develop infographics, webpages, videos, podcasts, blogs, and everything else your business need to build a huge fan base for itself.
STRATEGIC CONSULTING
Building a company starts with the strategy, being a very integral part. Strategy defines the ‘who’. ‘what’, ‘where’, ‘why’ and ‘how’ of the brand. We at Social 101 focus on sleek and smart strategy to help the brands not only enter but maintain the spot in the consumer space.
VIDEO MARKETING
We offer assistance in video production to clients from startups to enterprises, with a focus on advertising and marketing. We create videos to help your brand tell its story in an interactive manner. We develop corporate intros, campaign videos, ad films, and product demos. We try to be inventive in every video we create for our clients.
Portfolio
We have punched in a lot of days and nights so that we can help brands and their businesses grow. We love what we do by creating designs and content that you cannot resist.
- All
- App
- Card
- Web
Contact Us
Our Address
607, Titanium Business Hub, Althan, Surat


Skin
A lightweight, responsive, mobile-first framework to build beautiful websites quickly. Skin is built to be as lightweight as possible while not compromising beauty or functionality.
Lightweight
Only 41kB CSS and 4kB of optional JavaScript
Mobile-first design
Works beautifully on all mobile devices
W3C valid
Proper, valid code from start to finish


The assigned IP for {{.DesiredHostname}} you entered is already taken.
Troubleshooting
The asssigned IP is {{.AssignedIP}}
Please verify that the hostname was input correctly
Start Over
{{ template "footer.html" . }}


Welcome, humble visitor!
Send us your email address.
Submit
A message from our humble server!
Hmm... there is no message.


---
layout: page
weight: 0
title: Billing and Account Changes
navigation:
show: true
---
To view your account and billing information, first sign in to your account at SendGrid.com. If you run into any billing issues, please contact our Support department.
{% anchor h2 %}
View Invoices / Billing History
{% endanchor %}
Go directly to Billing History or follow the steps below:
- From the Dashboard tab, click Billing History on the right.
- Use the search box or select any invoice from the list.
- Click on the invoice to view further details and to obtain a printer friendly version.
{% anchor h2 %}
Cancel Account
{% endanchor %}
We're sorry to see you go. Go to the account cancellation page or follow the steps below:
- From the Dashboard tab, click Account Settings on the right.
- Under the Account Settings header which now appears on the lower right click Cancel your account.
- From here you may enter a reason if you wish and will be required to enter your account password before clicking the Submit Request button which will set a cancel order on your account for the start of the next billing cycle.
{% info %}
Canceled accounts are not deleted. Accounts are changed to our free plan.
{% endinfo %}
{% anchor h2 %}
Downgrade Account
{% endanchor %}
Go directly to the account downgrade page or follow the steps below:
- From the Dashboard tab, click Account Settings on the right.
- Under the Account Settings header which now appears on the lower right click Cancel your account.
- On the second line down from the top of the account cancelation page you will see the following message "If you want to downgrade your account click here".
- After clicking the link you will be asked to select which package you wish to downgrade to. The system will only display packages beneath your current subscription level. Select the package you wish and click Downgrade Account.
- Now your account is set to downgrade at the start of the next billing cycle. Your current account's features will stay active until that time.


Make Your Plants Thrive
Are you tired of seeing your plants barely survive? Don't you want them to thrive?! We can help!
If you are one of the many people that need help taking care of your plants, let us help you!
Are you tired of seeing your plants barely survive? Don't you want them to thrive?! We can help!
If you are one of the many people that need help taking care of your plants, let us help you!
Your plants need water to survive, just like you do! Let us help you get them the h2o that they need!
Sign up below and find out the water requirements for your plants! Set text reminders for all your plants, so they can thrive!


Welcome to Daniel Magee's picture changer
Mouse over and back off of the image to change the dog's emotion!


{% extends 'enrolment/wizard.html' %} {% load static from static %} {% block above_form %} {% include 'enrolment/information_box_companies_type.html' with is_in_companies_house=True %}
Double check your business type and company name above. If you still need help, contact us.


Tarte’s Custom Kit Sale Is Here, So Grab Your Shape Tape For Only $20
The season of holiday deals is coming in hot and makeup fans are living for it all, especially this one. On Wednesday, Nov. 6, Tarte’s Custom Kit sale is offering up six full-size products and a makeup bag for only $63. And what’s even better is the brand's popular concealer, Shape Tape, is also on sale too for just $20.
Tarte had its last Custom Kit sale earlier in June, so if you missed out, you're in luck. The big sale allows you to pick any makeup bag of your choice and “fill it” at checkout with six products. You can choose one product from each category — foundation, face, eye, mascara, lip, and body or brush categories. According to Tarte, the regular price (on a non-Tarte sale day) for everything in the kit would be $200 — so you’re saving mad coin.
The sale is happening today only, and it’s all while supplies last. Ready to shop? Here are some of the best picks to consider for your Custom Kit.
Tarte Amazonian Clay 12-hour blush
Amazonian clay 12-hour blush$29|TarteSee now at Tarte
This tree-imprinted blush is one of Tarte's best sellers. The Amazonian Clay 12-hour blush doesn't need reapplying since it looks the very same at the end of the day as when you first dusted it on.
Tarte Busy Gal Brows Tinted Brow Gel
Busy Gal Brows Tinted Brow Gel $18|TarteSee now at Tarte
Tarte's Busy Gal Brow Gel makes for a great addition to your custom kit if you're in need of a product that holds your brows put. The ultra thin spoolie allows for more control and getting more precise strokes.
Tarte Amazonian Clay Full Coverage Foundation SPF 15
Amazonian Clay Full Coverage Foundation SPF 15$39|TarteSee now at Tarte
If you're someone who wants to cut down time on your skin care and makeup routine, Tarte's Amazonian Clay Full Coverage foundation includes SPF 15. However, even with its sun care properties, it leaves you with a matte finish while controlling oil.
Tarte Clean Queen Vegan Deodorant
Clean Queen Vegan Deodorant$14|Tartesee now at Tarte
If you don't need another brush in your collection, you can opt out of adding it to your kit. Instead, you can choose any of the brand's vegan deodorant, SPF, or dry shampoo choices.
Tarte Tartelette Flirt Eyeshadow Palette
Tartelette Flirt Eyeshadow Palette $19|Tarte see now at Tarte
The Tartelette Flirt Eyeshadow Palette offers six shades of jewel-toned neutrals that make it perfect for everyday wear. As one of Tarte's best-selling items, this is one staple you won't get on sale any other day.
Tarte Maneater Voluptuous Mascara
Maneater Voluptuous Mascara$23|Tarte See now at Tarte
The sale lets you choose from five of the brand's mascaras. Plus, if you're not for this Maneater Voluptuous Mascara, there is a vegan option that comes with an eyelash curler. You can also cop the Vegan Amazonian Clay Smart Mascara.
This may be the easiest and most affordable way to get your makeup-obsessed friends a super thoughtful gift this season. Let the holiday shopping begin.


Atlanta Improv League
The Atlanta Improv League begins June 29th!
Announcement
Registration now open!
- Deadline June 23, 2017
Official Rules


Phase 4: During Deployment
Phase 4.1: Application Penetration Testing
Having tested the requirements, analyzed the design, and per-formed code review, it might be assumed that all issues have been caught. Hopefully this is the case, but penetration testing the ap-plication after it has been deployed provides a last check to ensure that nothing has been missed.
Phase 4.2: Configuration Management Testing
The application penetration test should include the checking of how the infrastructure was deployed and secured. While the application may be secure, a small aspect of the configuration could still be at a default install stage and vulnerable to exploitation.


Chapter 6 Lab Responsibilities
Experimental-related: (Alissa, Rony, Rotem, Debdatta) 1. Warehouse orders – Alissa & Rony 2. Equipment/reagents maintenance: +Autoclave - preparation of materials (eppendorfs, Pasteur pipettes, H20) and transporting to/from autoclave on 3rd floor - Rotem +Waste disposal - bringing chemical and biological waste to the waste disposal closet (and replacing with new bags/containers), emptying vacuum traps in tissue culture and main lab and refilling with bleach - Debdatta +Tissue culture maintenance - replacing water pans in the incubators and treating with Aquaguard (biweekly to monthly), replacing water in the water bath and treating with Aquaguard (monthly), autoclaving incubator racks (bi-annually), disinfection in case of a contamination, keeping the tissue culture room stocked with supplies – Rony +Aliquoting of common reagents - aliquoting FBS, pen-strep, glutamine, Aquaguard 1&2 on a regular basis for the whole lab and keeping these reagents in stock – Debdatta +Keeping common consumables and reagents in stock - Rotem 3. Lab organization/setup (esp. including when moving to the new building) - Alissa 4. Lab safety - Alissa
Non-experimental: (Julie, Avishay, Mike, Michael, Noam H, Noam G) 5. Ordering office supplies - Noam H/Noam G/Michael 6. Milk & machonkolet – Avishay & Noam H/Noam G/Michael 7. Coffee machine supplies and maintenance - Noam H/Noam G/Michael 8. Group meetings - Julie 9. journal club organization – Mike 10. Lab trip organization: Noam H & Michael 11. Lab code – Julie & Avishay 12. Lab data – Mike & Noam G


Failed loading required Files!
Sorry, something went wrong loading the required JS file.
Please check your internet connection and the console for further investigation.
If you're feeling lucky, just try again


Connecting multiple sortable lists
The source code
This shows how the sortable lists can be connected together. Pay attention to the sortable CSS class
(gives a min-height) that does not allow lists to become invisible when all items are gone
Transfer between lists
These lists are connected together. You can drag / drop elements across the lists.
and the actual state is
> {{ normalList1 | json }}
> {{ normalList2 | json }}
Clone items
The list 1 is a clone factory and list 2 can be its target.
and the actual state is
> {{ cloneList1 | json }}
> {{ cloneList2 | json }}
Super complicated example
These lists are connected together.
You can drag / drop elements across the lists. Pay attention to the sortable CSS class
(gives a min-height) that does not allow list to become invisible when all items are gone
1. This list cannot accept items
3. This list clones its children
and the actual state is


- Local authority reference: 0930/09139385080004
- Property: OLD MILL CAFE, COAST ROAD, BARDSEA, ULVERSTON, CUMBRIA, LA12 9RB
{{title}}
You can make a challenge if you disagree with the effective date of a change that the VOA has made to your property's valuation. You can't make a challenge on these grounds if the change made by the VOA was aresult of a previous challenge you made.
Youll need to provide:
- an alternative ratable value (if you disagree with the ratable)
- the date that the ratable value should start (must be on or after 1st April 2017)
- rent details for the property (if it is rented)
- evidence that suports your challenge
- a statement that explains how your evidence supports your challenge and why your suggested rateable value is correct
If you don't include everything you need, we'll contact you to tell you that your challenge is incomplete. If it's not corrected within the time limit given, your challenge will be invalid.


Participating in academic competitions show colleges that you are willing to continue learning outside of school and genuinely desire to continue growing as a student. They help showcase your knowledge and passion for a specific subject, and will bring this energy to the colleges you apply to. Below are links to competitions you may be interested in.
There are multiple writing competitions aspiring writers can enter. Link to writing competitions for students can be found [here]
The American Mathematics Competition is one of the most pretigious of their kind, and some colleges even accept AMC scores alongside SAT and ACT scores. Link to their website can be found [here]
The Art of Problem Solving have also compiled a great list of major math competitions in the US as well as competitions held in each state. Link to their list can be found [here]
For those who want to develop a peak in science, competitions may help them showcase their skills beyond what they learn in school. Link to 12 of America’s most prestigious science competitions can be found [here]


Samuel Orpilla III
About
Portfolio
Contact
Portfolio
Hangman
RPG Game
Trivia Game
Rutgers Info Widget
Rock Paper Scissors