Google - Core Eng
L3 Software Engineer, March 2020 - Present
Working on a new internal tool configs team.
Learning how to code in Go and ramping up.
To be updated
Google - Core Eng
Software Engineering Intern, May 2019 - Aug 2019
Implemented logic to supply warnings to the front-end of an internal testing tool by analyzing test data.
Developed an automated bug filing service associated with the internal testing tool that uses backend RPCs to gather the data needed to generate the inputs and file the bug.
Created design documents for 2 of my projects and contributed to the design document for the 3rd.
Google - GSuite Infra
Engineering Practicum Intern, May 2018 - Aug 2018
Implemented a Customer Support API using an internal microservices platform.
Utilized an asynchronous Java framework to populate API with information from 12 different backend services.
Provided authentication and authorization data through dynamic configuration.
Wrote validators for all inputs to new API service.
Google - Shopping
Engineering Practicum Intern, May 2017 - Aug 2017
Implemented front-end mobile UI changes including various methods of displaying data with differing priorities through HTML and JavaScript. Wrote integration tests, unit tests, and UI tests. Tracked the metrics of the UI change and wrote launch documentation.
Provided data to the front-end and integrated it to back-end.
Discovered and launched a fix for a pre-existing bug concerning logging metrics for a mobile feature.
Education
NYU, Sep 2016 - Dec 2019
B.A. in Computer Science, Minors in Mathematics and Web Programming
GPA: 3.62
Studied at NYU Shanghai during Fall 2018.
Was on e-board for Tech@NYU. Helped organize and run workshops/events.


Menu
Home
About
Contact
My
Portfolio
by, Chris Wallace
To Contact Me:
Email<EMAIL_ADDRESS>LinkedIn: Dont believe in it
Github: kawallis
Some of my interests:
Coding and Photography
Sharing what I've learned
Hanging with my family
Playing golf and all other sports


«««< HEAD
I will be posting blog articals soon. It will most probably be about one of the following topics
Access and Usage Control, Data management and security, Utility-aware Anonymization, Privacy In Big Data, Cryptography, User-Centric and Usable Privacy, Risk and Trust Management,
Hope you will enjoy it :)
«««< HEAD
=======
Best way to contact me is via Email. Drop me an email if you are interested in discussing any of my research area topics
origin/gh-pages


| Elibyy\Adapters\PharAdapter | Class PharAdapter * this class is an adapter for phar,tar,tar.gz,bz2,gz files |
| Elibyy\Adapters\TestAdapter | Class TestAdapter this file is to cover the test of working extending adapter |
| Elibyy\Adapters\ZipAdapter | Class ZipAdapter this class is an adapter for zip files |
| Elibyy\Creator | Class Creator this class is just removing the file existent check |
| Elibyy\General\Adapter | Interface Adapter the adapter interface for adapters to implement |
| Elibyy\General\File | Interface File |
| Elibyy\Phar\File | Class File |
| Elibyy\Reader |
Class Elibyy\Reader this class is abstract layer for the adapters for files |
| Elibyy\Zip\File | Class File this class is a wrapper for the file in archive |


@* * Copyright 2010-2017 Artima, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @(selectedStyle: examples.StyleTraitExamples)
import org.scalatest.Matchers._ def incr(i: Int) = i + 1 val result = incr(2) result should equal (3) // By default, calls left==
right, except for arrays result should be (3) // Calls left==
right, except for arrays result should === (3) // By default, calls left==
right, except for arrays Array(1, 2) should equal (Array(1, 2)) // Arrays are compared structurally, Array(1, 2) should be (Array(1, 2)) // by calling left.deep
==
right.deep
Array(1, 2) should === (Array(1, 2)) result shouldEqual 3 // Alternate forms for equal and be result shouldBe 3 // that don't require parentheses // The === syntax can give you a type error for suspicious equality comparisons import org.scalactic._ import TypeCheckedTripleEquals._ result should === ("three") // Fails to compile with error message: types String and Int // do not adhere to the type constraint selected for the === and // !== operators; the missing implicit parameter is of type // org.scalactic.Constraint[String,Int] // greeting should === (3) // ^ // The equal matcher and === syntax compare with an implicit Equality[L], // where L is the left hand type (i.e., the type of greeting below) val greeting = "Hi" greeting should equal ("hi") // Both fail with error message: "[H]i" did not equal "[h]i" greeting should === ("hi") import org.scalactic._ // Can provide a custom Equality[L] explicitly import Explicitly._ import StringNormalizations._ greeting should equal ("hi") (after being lowerCased) // Both succeed, because 'after being lowercased' (greeting should === ("hi")) (after being lowerCased) // defines an Equality[String] that ignores case implicit val strEq = lowerCased.toEquality // Can provide a custom Equality[L] implicitly greeting should equal ("hi") // Succeeds because equal the implicit Equality[String] greeting should === ("hi") // (defined as strEq) that ignores case greeting should not equal "bye" // equal and be are negated with not greeting should not be "such sweet sorrow" greeting should !== ("ho") // === is negated as !== val list = List(1, 2, 3) // Ensure two objects have the same identity val ref1 = list val ref2 = list ref1 should be theSameInstanceAs ref2 // Calls lefteq
right


Rabbit
Type:
Mammal.
Size:
20cm - 50cm.
Color:
Brown, Tan, Gray, Black.
Life Span:
4 - 8 years.
Main Prey:
Clover, Grass, Crunchy vegetables.
Predators:
Fox, Snakes, Large Birds.


The blueprint lets you explore and improve the tiles generated with your configuration file. In addition, it can be used to generate a mapbox stylesheet.
Select a feature on the map to display its metadata.


{% load i18n %} {% load package_tags %}
{{ category.description }}
{% endfor %}{{ package_count }} {% trans "projects and counting!" %}
{#{{ py3_compat }} {% trans "packages compatible with Python 3!" %}
#}{{ open_source_count}} {% trans "projects are open source!" %}
{{ category.description }}
{% endfor %}{% trans "Know of any project not listed here? Add them now! It's quick and easy." %}
{% trans "Or add a grid comparing the features of 2 or more similar projects." %}


There are plenty of interesting symbols in the unicode specification to beef up chats or what else. But they have to be found first, and the keyboard is just too small. There are lists, of course, but they are hard to search. Deunicodeify is an attempt to simplify this search.
Just draw the symbol you are looking for into the square area above and look what happens!
The symbol may not be trained enough or it is not yet in the list of supported symbols. In the first case you can do the training yourself. In the second case just drop me a line (mail@joachim-breitner.de)!
You could spare some time training Deunicodeify. You could also look at the source on GitHub and if you want to contribute you're welcome. If you really, really like this you can also donate to the original author.
Deunicodeify relies on HTML5 features so you need a fairly recent browser. Opera 9.6 / Firefox 3.5 / Safari 4 should do the trick.
Philipp Kühl had the initial idea and Daniel Kirsch created Detexify, where you can classify LaTeX characters. Joachim Breitner modified the interface to search unicode characters, but this is just a minor modification of Daniel’s Detexify, so all the praise belongs to him.


Strictly star Michelle Visage's secret health battle 'caused by her breast implants'
The RugPaul's Drag Race judge has wowed judges and her fans on the dance floor but has battled a hidden disease for years
by Jane Lavender, Will Twigger, https://www.facebook.com/dailymirror/, https://www.mirror.co.uk/authors/will-twigger/Strictly star Michelle Visage is very much the woman of the moment with her stunning dance floor moves.
The judge on RuPaul's Drag Race was the first contestant to reach a lofty score of 39 with partner Giovanni Pernice when they performed the foxtrot on Halloween.
And in last weekend's BBC show the couple once again flew close to the top of the leaderboard when they netted 34 for their stunning Paso Doble.
But the 51-year-old has battled secret a health problem for decades, which led to her hair falling out in clumps and her suffering with crippling panic attacks.
Michelle was diagnosed with Hashimoto's disease, which is a thyroid problem that can cause serious health problems.
Symptoms can include fatigue, weight gain, depression and joint pain.
And Michelle is convinced it was caused by the breast implants she had when she was just 21.
She said: "My skin was crackly dry and my hair was falling out in clumps. I was also having hardcore panic attacks.
"My journey goes back to me getting breast implants at the age of 21. My body couldn't fight off the attacker because it was there 24 hours a day, seven days a week."
Her fears her implants had caused her disease were never confirmed by a doctor but Michelle carried out her own research.
She has now had her breast implants removed and says she feels better than ever.

"So I found a Facebook group where over 50,000 women who had the same symptoms from their breast implants and started a documentary on my journey with Breast Implant Illness, before getting them removed.
"Since having them removed, the thyroid nodule is going down, which is amazing."
Michelle has also been open about her daughter's battles with mental health.
Heartbrekingly, 19-year-old Lillie, was struggling so much she had even contemplated taking her own life in the past.
Michelle said: "She had to deal with depression for so long that she lost a lot of her teenage years.
"Lillie was suicidal for a while. But she's been three years on the other side now. "
The TV star, who also has daughter, Lola, 17, tried a hollistic approach to helping her daughter before turning to medication and therapy.

"Instagram feeds into that. Lillie was log out for a month and Lola's now come to a place where she realises her self worth. I've taught her to love herself."


This set of scales defines new fill scales for edge geoms equivalent to the
ones already defined by ggplot2. The parameters are equivalent to the ones
from ggplot2 so there is nothing new under the sun. The different geoms will
know whether to use edge scales or the standard scales so it is not necessary
to write edge_fill
in the call to the geom - just use fill
.
scale_edge_fill_hue(..., h = c(0, 360) + 15, c = 100, l = 65, h.start = 0, direction = 1, na.value = "grey50") scale_edge_fill_brewer(..., type = "seq", palette = 1, direction = 1) scale_edge_fill_distiller(..., type = "seq", palette = 1, direction = -1, values = NULL, space = "Lab", na.value = "grey50", guide = "edge_colourbar") scale_edge_fill_gradient(..., low = "#132B43", high = "#56B1F7", space = "Lab", na.value = "grey50", guide = "edge_colourbar") scale_edge_fill_gradient2(..., low = muted("red"), mid = "white", high = muted("blue"), midpoint = 0, space = "Lab", na.value = "grey50", guide = "edge_colourbar") scale_edge_fill_gradientn(..., colours, values = NULL, space = "Lab", na.value = "grey50", guide = "edge_colourbar", colors) scale_edge_fill_grey(..., start = 0.2, end = 0.8, na.value = "red") scale_edge_fill_identity(..., guide = "none") scale_edge_fill_manual(..., values) scale_edge_fill_viridis(..., alpha = 1, begin = 0, end = 1, discrete = FALSE, option = "D", direction = 1) scale_edge_fill_continuous(..., low = "#132B43", high = "#56B1F7", space = "Lab", na.value = "grey50", guide = "edge_colourbar") scale_edge_fill_discrete(..., h = c(0, 360) + 15, c = 100, l = 65, h.start = 0, direction = 1, na.value = "grey50")
| ... | Arguments passed on to
|
|---|---|
| h | range of hues to use, in [0, 360] |
| c | chroma (intensity of colour), maximum value varies depending on combination of hue and luminance. |
| l | luminance (lightness), in [0, 100] |
| h.start | hue to start at |
| direction | direction to travel around the colour wheel, 1 = clockwise, -1 = counter-clockwise |
| na.value | Colour to use for missing values |
| type | One of seq (sequential), div (diverging) or qual (qualitative) |
| palette | If a string, will use that named palette. If a number, will
index into the list of palettes of appropriate |
| values | if colours should not be evenly positioned along the gradient
this vector gives the position (between 0 and 1) for each colour in the
|
| space | colour space in which to calculate gradient. Must be "Lab" - other values are deprecated. |
| guide | Type of legend. Use |
| low, high | Colours for low and high ends of the gradient. |
| mid | colour for mid point |
| midpoint | The midpoint (in data value) of the diverging scale. Defaults to 0. |
| colours, colors | Vector of colours to use for n-colour gradient. |
| start | gray value at low end of palette |
| end | gray value at high end of palette |
| alpha | pass through parameter to |
| begin | The (corrected) hue in [0,1] at which the viridis colormap begins. |
| discrete | generate a discrete palette? (default: |
| option | A character string indicating the colormap option to use. Four options are available: "magma" (or "A"), "inferno" (or "B"), "plasma" (or "C"), "viridis" (or "D", the default option) and "cividis" (or "E"). |
A ggproto object inheriting from Scale
Other scale_edge_*: scale_edge_alpha
,
scale_edge_colour
,
scale_edge_linetype
,
scale_edge_shape
,
scale_edge_size
,
scale_edge_width
,
scale_label_size


Bookings
NO BOOKINGS FOUND
0">
Recent Bookings
{{booking?.Bike?.BIKENUMBER}}
{{booking?.SERVICESTATUS}}
{{booking?.PICKUPTIME | date:'MMM d, y, h:mm a' }}
0">
Past Bookings
{{booking?.Bike?.BIKENUMBER}}
{{booking?.SERVICESTATUS}}
{{booking?.DELIVEREDON | date}}


val application: Application
Overrides ApplicationEngineEnvironment.application
Running Application
Throws an exception if environment has not been started
Getter


---
---
---
-
✓♪
---
-
Silence for 30 minutes
Silence for 60 minutes
Silence for 90 minutes
Silence for 120 minutes


{% extends 'layouts/base.html' %} {% from 'foundation_wtf.html' import horizontal_field %} {% block title %}Sponsorship Update - {{ super() }}{% endblock %} {% block content %}
By submitting a sponsorship application you are agreeing to the terms and conditions.


{% macro component(title, image, selected, open, prefix, position='center', avatar=image, class='') %}
with Elijah Murray
50 minutes left
12 lessons
Learn the fundamentals of working with Angular and how to create basic applications.
Fundamentals of working with Angular
Create complete Angular applications
Working with the Angular CLI
Understanding Dependency Injection
Testing with Angular
6 hours
12 lessons
Beginner


Snookes1516.github.io
Top Essay: How can homework help your brain orders Since 1996, BJ Pinchbeck’s Homework Helper has been the curator of the best free education and homework resources for students, teachers and parents. The nagging, the battles, the lost papers—do you dread school work as much as the kids do? Here's how to help them hit the books and develop good study habits. The human brain is a very powerful organ. It controls the working of all parts of the body. It also controls a person’s thoughts and feelings. It allows a person. Brain Questions and Answers - Discover the eNotes.com community of teachers, mentors and students just like you that can answer any question you might. Brain - Kids Britannica Kids Homework.
100% Kid Safe Website. All videos, lessons and games for kids on NeoK12 have been reviewed screened by K-12 teachers. Rollicking homework help, teacher resources, and online test prep. Homework help lovingly written by PhD students from Stanford, Harvard, Berkeley. Developed from the original series The Brain, these flexible resources offer extensive footage and research into the inner workings of this amazing human organ.
Teaching Strategies to Help Students Complete Homework. Nursing Assignment Help, Nursing Essay Writing Service. First Grade Brain - creative resources to make teaching. Welcome to Brain-Cells. Due to the changes in the National Curriculum, the site is undergoing a major overhaul. The changes can be best seen in our new KS3 section. 100 Extra Interesting Persuasive Essay Topics That Every Teacher Would Appreciate.
100 Interesting Persuasive Essay Topics That Worked. How does homework help your brain - Order a 100% original, plagiarism-free thesis you could only imagine about in our paper writing assistance Quality essays. How can homework help your brain. How can homework help your brain and how to write most succesfull coursework Living a double consciousnessthe resultant. Homework Help Help With Homework The Brain Workshop.
Science Games and Videos Educational Games Rapid Learning Center - Anatomy and Physiology. JUNIOR HIGH - Homework Help For Grades 7-8. Infoplease Homework Central MATH. Math.com ENGLISH. BJ Pinchbeck's Homework Helper: English SOCIAL STUDIES. BrainPOP - Animated Educational Site for Kids - Science, Social Studies, English, Math, Arts Music, Health, and Technology. This is a comprehensive listing of online resources offering homework help to students of all ages. Vetted by our experts for safety and quality, and totally. Precalculus: An Investigation of Functions (2nd Ed) David Lippman and Melonie Rasmussen. IMPORTANT NOTE: This page contains details on the current, second edition. Year 9 Week 1. Most students start their year 9 maths classes learning algebra. These two sheets contain algebra and other work to help reinforce what has been learnt.
How to Help Your Kids With Homework Parenting.
Homework Help : Preschool and K-12 educational websites, videos, and powerpoints to help you with homework assignments! Make KID INFO your first stop for Homework.
Our website is No. 1 in Nursing Essay Writing and Nursing Assignment Help. Feel free to hire us for Nursing Homework Help and Assistance.
Professional Homework Help for International Students. Precalculus - OpenTextBookStore. Homework Helper, for Free Online Homework.
Here you can improve your knowledge and academic skills on any subject. Get alternative solutions and find resources to help you cope with tricky study problems. You can learn anything. Expert-created content and resources for every course and level. Always.
The end of August is here and while many teachers have already had their school years begin, I know there are still many more who will be starting within
Our Homework Help program is offered to help students grades K-12 with their daily homework assignments - Math, Reading, Writing, Science Improve your study skills with these tips for time management, organization, and research. Resources are also available for parents looking to help their child focus. The Homework Myth: Why Our Kids Get Too Much of a Bad Thing Alfie Kohn on Amazon.com. FREE shipping on qualifying offers. So why do we continue to administer.
Anne Arundel County Public Library HelpNow - Online Tutoring. Shmoop: Homework Help, Teacher Resources Use these teaching strategies to ensure that homework is completed and is of a high quality. How does homework help your brain - westyorkshireblinds.co.uk. Have you ever wanted to ask a meteorologist a question about the weather? Now is your chance. Welcome to our "Weather Homework Help" webpage. Browse the categories. WebMath is designed to help you solve your math problems. Composed of forms to fill-in and then returns analysis of a problem and, when possible, provides a step-by.
Exclusive homework help delivered by experienced professionals. Affordable and authentic custom written assignments designed for international students. With our breakthrough 24x Rapid Learning System TM of smart teaching and rich media, you can now finally gain a powerful learning edge over others who are still.
Weather Homework Help - WFMZ-TV 69News Weather Brain Rules by John J. Medina is a multimedia project explaining how the brain works. It includes a book, a feature-length documentary film, and a series. Resource: The Brain: Teaching Modules. Homework Help, Study Q A for Students - Brainbasket. This season on Homework Hotline we will be talking about some important issues that impact Brain Questions and Answers - eNotes.com. The Brain Workshop cognitive skills testing and training identifies root causes of homework and learning struggles.  Live Tutoring. Live online help from expert tutors. Writing Lab. Expert online writing assistance. SkillSurfer. Live skills building and a library of lessons, videos. Khan Academy Free Online Courses, Lessons Practice.
WebMath - Solve Your Math Problem.
BJ Pinchbeck's Homework Helper.


|
M480 BSP V3.05.005
The Board Support Package for M480 Series
|
#include <fmc_reg.h>
Data Fields | |
| __IO uint32_t | ISPCTL |
| __IO uint32_t | ISPADDR |
| __IO uint32_t | ISPDAT |
| __IO uint32_t | ISPCMD |
| __IO uint32_t | ISPTRG |
| __I uint32_t | DFBA |
| __IO uint32_t | ISPSTS |
| __IO uint32_t | CYCCTL |
| __O uint32_t | KPKEY0 |
| __O uint32_t | KPKEY1 |
| __O uint32_t | KPKEY2 |
| __IO uint32_t | KPKEYTRG |
| __IO uint32_t | KPKEYSTS |
| __I uint32_t | KPKEYCNT |
| __I uint32_t | KPCNT |
| __IO uint32_t | MPDAT0 |
| __IO uint32_t | MPDAT1 |
| __IO uint32_t | MPDAT2 |
| __IO uint32_t | MPDAT3 |
| __I uint32_t | MPSTS |
| __I uint32_t | MPADDR |
| __I uint32_t | XOMR0STS |
| __I uint32_t | XOMR1STS |
| __I uint32_t | XOMR2STS |
| __I uint32_t | XOMR3STS |
| __I uint32_t | XOMSTS |
@addtogroup FMC Flash Memory Controller(FMC) Memory Mapped Structure for FMC Controller
| FMC_T::CYCCTL |
[0x004c] Flash Access Cycle Control Register
| Bits | Field | Descriptions |
| [3:0] | CYCLE | Flash Access Cycle Control (Write Protect)
0001 = CPU access with one wait cycle if cache miss; flash access cycle is 1;. The HCLK working frequency range range is<27MHz 0010 = CPU access with two wait cycles if cache miss; flash access cycle is 2;. The optimized HCLK working frequency range is 27~54 MHz 0011 = CPU access with three wait cycles if cache miss; flash access cycle is 3;. The optimized HCLK working frequency range is 54~81MHz 0100 = CPU access with four wait cycles if cache miss; flash access cycle is 4;. The optimized HCLK working frequency range is81~108MHz 0101 = CPU access with five wait cycles if cache miss; flash access cycle is 5;. The optimized HCLK working frequency range is 108~135MHz 0110 = CPU access with six wait cycles if cache miss; flash access cycle is 6;. The optimized HCLK working frequency range is 135~162MHz 0111 = CPU access with seven wait cycles if cache miss; flash access cycle is 7;. The optimized HCLK working frequency range is 162~192MHz 1000 = CPU access with eight wait cycles if cache miss; flash access cycle is 8;. The optimized HCLK working frequency range is >192MHz Note: This bit is write protected. Refer to the SYS_REGLCTL register. |
| FMC_T::DFBA |
[0x0014] Data Flash Base Address
| Bits | Field | Descriptions |
| [31:0] | DFBA | Data Flash Base Address
This register indicates Data Flash start address. It is a read only register. The Data Flash is shared with APROM. the content of this register is loaded from CONFIG1 This register is valid when DFEN (CONFIG0[0]) =0 . |
| FMC_T::ISPADDR |
[0x0004] ISP Address Register
| Bits | Field | Descriptions |
| [31:0] | ISPADDR | ISP Address
The NuMicro M480 series is equipped with embedded flash ISPADDR[1:0] must be kept 00 for ISP 32-bit operation ISPADDR[2:0] must be kept 000 for ISP 64-bit operation. For CRC32 Checksum Calculation command, this field is the flash starting address for checksum calculation, 4 Kbytes alignment is necessary for CRC32 checksum calculation. For FLASH 32-bit Program, ISP address needs word alignment (4-byte) For FLASH 64-bit Program, ISP address needs double word alignment (8-byte). |
| FMC_T::ISPCMD |
[0x000c] ISP Command Register
| Bits | Field | Descriptions |
| [6:0] | CMD | ISP Command
ISP command table is shown below: 0x00= FLASH Read. 0x04= Read Unique ID. 0x08= Read Flash All-One Result. 0x0B= Read Company ID. 0x0C= Read Device ID. 0x0D= Read Checksum. 0x21= FLASH 32-bit Program. 0x22= FLASH Page Erase. Erase any page in two banks, except for OTP. 0x23= FLASH Bank Erase. Erase all pages of APROM in BANK0 or BANK1. 0x25= FLASH Block Erase. Erase four pages alignment of APROM in BANK0 or BANK1.. 0x27= FLASH Multi-Word Program. 0x28= Run Flash All-One Verification. 0x2D= Run Checksum Calculation. 0x2E= Vector Remap. 0x40= FLASH 64-bit Read. 0x61= FLASH 64-bit Program. The other commands are invalid. |
| FMC_T::ISPCTL |
[0x0000] ISP Control Register
| Bits | Field | Descriptions |
| [0] | ISPEN | ISP Enable Bit (Write Protect)
ISP function enable bit. Set this bit to enable ISP function. 0 = ISP function Disabled. 1 = ISP function Enabled. Note: This bit is write protected. Refer to the SYS_REGLCTL register. |
| [1] | BS | Boot Select (Write Protect)
When MBS in CONFIG0 is 1, set/clear this bit to select next booting from LDROM/APROM, respectively This bit also functions as chip booting status flag, which can be used to check where chip booted from This bit is initiated with the inversed value of CBS[1] (CONFIG0[7]) after any reset is happened except CPU reset (CPU is 1) or system reset (SYS) is happened 0 = Booting from APROM when MBS (CONFIG0[5]) is 1. 1 = Booting from LDROM when MBS (CONFIG0[5]) is 1. Note: This bit is write protected. Refer to the SYS_REGLCTL register. |
| [2] | SPUEN | SPROM Update Enable Bit (Write Protect)
0 = SPROM cannot be updated. 1 = SPROM can be updated. Note: This bit is write protected. Refer to the SYS_REGLCTL register. |
| [3] | APUEN | APROM Update Enable Bit (Write Protect)
0 = APROM cannot be updated when the chip runs in APROM. 1 = APROM can be updated when the chip runs in APROM. Note: This bit is write protected. Refer to the SYS_REGLCTL register. |
| [4] | CFGUEN | CONFIG Update Enable Bit (Write Protect)
0 = CONFIG cannot be updated. 1 = CONFIG can be updated. Note: This bit is write protected. Refer to the SYS_REGLCTL register. |
| [5] | LDUEN | LDROM Update Enable Bit (Write Protect)
LDROM update enable bit. 0 = LDROM cannot be updated. 1 = LDROM can be updated. Note: This bit is write protected. Refer to the SYS_REGLCTL register. |
| [6] | ISPFF | ISP Fail Flag (Write Protect)
This bit is set by hardware when a triggered ISP meets any of the following conditions: This bit needs to be cleared by writing 1 to it. (1) APROM writes to itself if APUEN is set to 0. (2) LDROM writes to itself if LDUEN is set to 0. (3) CONFIG is erased/programmed if CFGUEN is set to 0. (4) SPROM is erased/programmed if SPUEN is set to 0 (5) SPROM is programmed at SPROM secured mode. (6) Page Erase command at LOCK mode with ICE connection (7) Erase or Program command at brown-out detected (8) Destination address is illegal, such as over an available range. (9) Invalid ISP commands (10) Vector address is mapping to SPROM region (11) KPROM is erased/programmed if KEYLOCK is set to 1 (12) APROM(except for Data Flash) is erased/programmed if KEYLOCK is set to 1 (13) LDROM is erased/programmed if KEYLOCK is set to 1 (14) SPROM is erased/programmed if KEYLOCK is set to 1 and KEYENROM[1:0] are 1. (15) CONFIG is erased/programmed if KEYLOCK is set to 1 and KEYENROM[1:0] are 1 (16) Invalid operations (except for chip erase) with ICE connection if SBLOCK is not 0x5A (17) Read any content of boot loader with ICE connection Note: This bit is write protected. Refer to the SYS_REGLCTL register. |
| [16] | BL | Boot Loader Booting (Write Protect)
This bit is initiated with the inversed value of MBS (CONFIG0[5]) Any reset, except CPU reset (CPU is 1) or system reset (SYS), BL will be reloaded This bit is used to check chip boot from Boot Loader or not User should keep original value of this bit when updating FMC_ISPCTL register. 0 = Booting from APROM or LDROM. 1 = Booting from Boot Loader. Note: This bit is write protected. Refer to the SYS_REGLCTL register. |
| FMC_T::ISPDAT |
[0x0008] ISP Data Register
| Bits | Field | Descriptions |
| [31:0] | ISPDAT | ISP Data
Write data to this register before ISP program operation. Read data from this register after ISP read operation. When ISPFF (FMC_ISPCTL[6]) is 1, ISPDAT = 0xffff_ffff For Run CRC32 Checksum Calculation command, ISPDAT is the memory size (byte) and 4 Kbytes alignment For ISP Read CRC32 Checksum command, ISPDAT is the checksum result If ISPDAT = 0x0000_0000, it means that (1) the checksum calculation is in progress, or (2) the memory range for checksum calculation is incorrect |
| FMC_T::ISPSTS |
[0x0040] ISP Status Register
| Bits | Field | Descriptions |
| [0] | ISPBUSY | ISP Busy Flag (Read Only)
Write 1 to start ISP operation and this bit will be cleared to 0 by hardware automatically when ISP operation is finished. This bit is the mirror of ISPGO(FMC_ISPTRG[0]). 0 = ISP operation is finished. 1 = ISP is progressed. |
| [2:1] | CBS | Boot Selection of CONFIG (Read Only)
This bit is initiated with the CBS (CONFIG0[7:6]) after any reset is happened except CPU reset (CPU is 1) or system reset (SYS) is happened. The following function is valid when MBS (FMC_ISPSTS[3])= 1. 00 = LDROM with IAP mode. 01 = LDROM without IAP mode. 10 = APROM with IAP mode. 11 = APROM without IAP mode. |
| [3] | MBS | Boot From Boot Loader Selection Flag (Read Only)
This bit is initiated with the MBS (CONFIG0[5]) after any reset is happened except CPU reset (CPU is 1) or system reset (SYS) is happened 0 = Booting from Boot Loader. 1 = Booting from LDROM/APROM.(.see CBS bit setting) |
| [4] | FCYCDIS | Flash Access Cycle Auto-tuning Disabled Flag (Read Only)
This bit is set if flash access cycle auto-tuning function is disabled The auto-tunning function is disabled by FADIS(FMC_CYCCTL[8]) or HIRC clock is not ready. 0 = Flash access cycle auto-tuning is enabled. 1 = Flash access cycle auto-tuning is disabled. |
| [5] | PGFF | Flash Program with Fast Verification Flag (Read Only)
This bit is set if data is mismatched at ISP programming verification This bit is clear by performing ISP flash erase or ISP read CID operation 0 = Flash Program is success. 1 = Flash Program is fail. Program data is different with data in the flash memory |
| [6] | ISPFF | ISP Fail Flag (Write Protect)
This bit is the mirror of ISPFF (FMC_ISPCTL[6]), it needs to be cleared by writing 1 to FMC_ISPCTL[6] or FMC_ISPSTS[6] This bit is set by hardware when a triggered ISP meets any of the following conditions: (1) APROM writes to itself if APUEN is set to 0. (2) LDROM writes to itself if LDUEN is set to 0. (3) CONFIG is erased/programmed if CFGUEN is set to 0. (4) SPROM is erased/programmed if SPUEN is set to 0 (5) SPROM is programmed at SPROM secured mode. (6) Page Erase command at LOCK mode with ICE connection (7) Erase or Program command at brown-out detected (8) Destination address is illegal, such as over an available range. (9) Invalid ISP commands (10) Vector address is mapping to SPROM region. (11) KPROM is erased/programmed if KEYLOCK is set to 1 (12) APROM(except for Data Flash) is erased/programmed if KEYLOCK is set to 1 (13) LDROM is erased/programmed if KEYLOCK is set to 1 (14) SPROM is erased/programmed if KEYLOCK is set to 1 and KEYENROM[1:0] are 1. (15) CONFIG is erased/programmed if KEYLOCK is set to 1 and KEYENROM[1:0] are 1. (16) Invalid operations (except for chip erase) with ICE connection if SBLOCK is not 0x5A (17) Read any content of boot loader with ICE connection Note: This bit is write protected. Refer to the SYS_REGLCTL register. |
| [7] | ALLONE | Flash All-one Verification Flag
This bit is set by hardware if all of flash bits are 1, and clear if flash bits are not all 1 after "Run Flash All-One Verification" complete; this bit also can be clear by writing 1 0 = All of flash bits are 1 after "Run Flash All-One Verification" complete. 1 = Flash bits are not all 1 after "Run Flash All-One Verification" complete. |
| [23:9] | VECMAP | Vector Page Mapping Address (Read Only)
All access to 0x0000_0000~0x0000_01FF is remapped to the flash memory address {VECMAP[14:0], 9u2019h000} ~ {VECMAP[14:0], 9u2019h1FF} |
| [31] | SCODE | Security Code Active Flag
This bit is set by hardware when detecting SPROM secured code is active at flash initiation, or software writes 1 to this bit to make secured code active; this bit is clear by SPROM page erase operation. 0 = Secured code is inactive. 1 = Secured code is active. |
| FMC_T::ISPTRG |
[0x0010] ISP Trigger Control Register
| Bits | Field | Descriptions |
| [0] | ISPGO | ISP Start Trigger (Write Protect)
Write 1 to start ISP operation and this bit will be cleared to 0 by hardware automatically when ISP operation is finished. 0 = ISP operation is finished. 1 = ISP is progressed. Note: This bit is write protected. Refer to the SYS_REGLCTL register. |
| FMC_T::KPCNT |
[0x0068] KPROM KEY-Unmatched Power-On Counting Register
| Bits | Field | Descriptions |
| [3:0] | KPCNT | Power-on Counter for Error Key Entry(Read Only)
KPCNT is the power-on counting for error key entry in Security Key protection KPCNT is cleared to 0 if key comparison is matched. |
| [11:8] | KPMAX | Power-on Maximum Number for Error Key Entry (Read Only)
KPMAX is the power-on maximum number for error key entry When KPMAXROM of KPROM is erased or programmed, KPMAX will also be updated KPMAX is used to limit KPCNT (FMC_KPCNT [3:0]) maximum counting The FORBID(FMC_KPKEYSTS[3]) will be set to 1 when KPCNT is more than KPMAX |
| FMC_T::KPKEY0 |
| FMC_T::KPKEY1 |
| FMC_T::KPKEY2 |
| FMC_T::KPKEYCNT |
[0x0064] KPROM KEY-Unmatched Counting Register
| Bits | Field | Descriptions |
| [5:0] | KPKECNT | Error Key Entry Counter at Each Power-on (Read Only)
KPKECNT is increased when entry keys is wrong in Security Key protection KPKECNT is cleared to 0 if key comparison is matched or system power-on. |
| [13:8] | KPKEMAX | Maximum Number for Error Key Entry at Each Power-on (Read Only)
KPKEMAX is the maximum error key entry number at each power-on When KPKEMAXROM of KPROM is erased or programmed, KPKEMAX will also be updated KPKEMAX is used to limit KPKECNT(FMC_KPKEY0[5:0]) maximum counting The FORBID (FMC_KPKEYSTS [3]) will be set to 1 when KPKECNT is more than KPKEMAX. |
| FMC_T::KPKEYSTS |
[0x0060] KPROM KEY Comparison Status Register
| Bits | Field | Descriptions |
| [0] | KEYBUSY | KEY Comparison Busy (Read Only)
0 = KEY comparison is finished. 1 = KEY comparison is busy. |
| [1] | KEYLOCK | KEY LOCK Flag
This bit is set to 1 if KEYMATCH (FMC_KPKEYSTS [2]) is 0 and cleared to 0 if KEYMATCH is 1 in Security Key protection After Mass Erase operation, users must reset or power on /off to clear this bit to 0 This bit also can be set to 1 while - CPU write 1 to KEYLOCK(FMC_KPKEYSTS[1]) or - KEYFLAG(FMC_KPKEYSTS[4]) is 1 at power-on or reset or - KEYENROM is programmed a non-0xFF value or - Timeout event or - FORBID(FMC_KPKEYSTS[3]) is 1 0 = KPROM, LDROM and APROM (not include Data Flash) is not in write protection. 1 = KPROM, LDROM and APROM (not include Data Flash) is in write protection. SPROM write protect is depended on SPFLAG. CONFIG write protect is depended on CFGFLAG |
| [2] | KEYMATCH | KEY Match Flag (Read Only)
This bit is set to 1 after KEY comparison complete if the KEY0, KEY1 and KEY2 are matched with the 96-bit security keys in KPROM; and cleared to 0 if KEYs are unmatched This bit is also cleared to 0 while - CPU writing 1 to KEYLOCK(FMC_KPKEYSTS[1]) or - Timeout event or - KPROM is erased or - KEYENROM is programmed to a non-0xFF value. - Chip is in power down mode. 0 = KEY0, KEY1, and KEY2 are unmatched with the KPROM setting. 1 = KEY0, KEY1, and KEY2 are matched with the KPROM setting. |
| [3] | FORBID | KEY Comparison Forbidden Flag (Read Only)
This bit is set to 1 when KPKECNT(FMC_KPKEY0[4:0]) is more than KPKEMAX (FMC_KPKEY0[12:8]) or KPCNT (FMC_KPCNT [2:0]) is more than KPMAX (FMC_KPCNT [10:8]). 0 = KEY comparison is not forbidden. 1 = KEY comparison is forbidden, KEYGO (FMC_KEYTRG [0]) cannot trigger. |
| [4] | KEYFLAG | KEY Protection Enabled Flag (Read Only)
This bit is set while the KEYENROM [7:0] is not 0xFF at power-on or reset This bit is cleared to 0 by hardware while KPROM is erased This bit is set to 1 by hardware while KEYENROM is programmed to a non-0xFF value. 0 = Security Key protection is disabled. 1 = Security Key protection is enabled. |
| [5] | CFGFLAG | CONFIG Write-protection Enabled Flag (Read Only)
This bit is set while the KEYENROM [0] is 0 at power-on or reset This bit is cleared to 0 by hardware while KPROM is erased This bit is set to 1 by hardware while KEYENROM[0] is programmed to 0. 0 = CONFIG write-protection is disabled. 1 = CONFIG write-protection is enabled. |
| [6] | SPFLAG | SPROM Write-protection Enabled Flag (Read Only)
This bit is set while the KEYENROM [1] is 0 at power-on or reset This bit is cleared to 0 by hardware while KPROM is erased This bit is set to 1 by hardware while KEYENROM[1] is programmed to 0. 0 = SPROM write-protection is disabled. 1 = SPROM write-protection is enabled. |
| FMC_T::KPKEYTRG |
[0x005c] KPROM KEY Comparison Trigger Control Register
| Bits | Field | Descriptions |
| [0] | KPKEYGO | KPROM KEY Comparison Start Trigger (Write Protection)
Write 1 to start KEY comparison operation and this bit will be cleared to 0 by hardware automatically when KEY comparison operation is finished This trigger operation is valid while FORBID (FMC_KPKEYSTS [3]) is 0. 0 = KEY comparison operation is finished. 1 = KEY comparison is progressed. Note: This bit is write-protected. Refer to the SYS_REGLCTL register. |
| [1] | TCEN | Timeout Counting Enable (Write Protection)
0 = Timeout counting is disabled. 1 = Timeout counting is enabled if input key is matched after key comparison finish. 10 minutes is at least for timeout, and average is about 20 minutes. Note: This bit is write-protected. Refer to the SYS_REGLCTL register. |
| FMC_T::MPADDR |
[0x00c4] ISP Multi-Program Address Register
| Bits | Field | Descriptions |
| [31:0] | MPADDR | ISP Multi-word Program Address
MPADDR is the address of ISP multi-word program operation when ISPGO flag is 1. MPADDR will keep the final ISP address when ISP multi-word program is complete. |
| FMC_T::MPDAT0 |
[0x0080] ISP Data0 Register
| Bits | Field | Descriptions |
| [31:0] | ISPDAT0 | ISP Data 0
This register is the first 32-bit data for 32-bit/64-bit/multi-word programming, and it is also the mirror of FMC_ISPDAT, both registers keep the same data |
| FMC_T::MPDAT1 |
| FMC_T::MPDAT2 |
| FMC_T::MPDAT3 |
| FMC_T::MPSTS |
[0x00c0] ISP Multi-Program Status Register
| Bits | Field | Descriptions |
| [0] | MPBUSY | ISP Multi-word Program Busy Flag (Read Only)
Write 1 to start ISP Multi-Word program operation and this bit will be cleared to 0 by hardware automatically when ISP Multi-Word program operation is finished. This bit is the mirror of ISPGO(FMC_ISPTRG[0]). 0 = ISP Multi-Word program operation is finished. 1 = ISP Multi-Word program operation is progressed. |
| [1] | PPGO | ISP Multi-program Status (Read Only)
0 = ISP multi-word program operation is not active. 1 = ISP multi-word program operation is in progress. |
| [2] | ISPFF | ISP Fail Flag (Read Only)
This bit is the mirror of ISPFF (FMC_ISPCTL[6]), it needs to be cleared by writing 1 to FMC_ISPCTL[6] or FMC_ISPSTS[6] This bit is set by hardware when a triggered ISP meets any of the following conditions: (1) APROM writes to itself if APUEN is set to 0. (2) LDROM writes to itself if LDUEN is set to 0. (3) CONFIG is erased/programmed if CFGUEN is set to 0. (4) SPROM is erased/programmed if SPUEN is set to 0 (5) SPROM is programmed at SPROM secured mode. (6) Page Erase command at LOCK mode with ICE connection (7) Erase or Program command at brown-out detected (8) Destination address is illegal, such as over an available range. (9) Invalid ISP commands (10) Vector address is mapping to SPROM region. |
| [4] | D0 | ISP DATA 0 Flag (Read Only)
This bit is set when FMC_MPDAT0 is written and auto-clear to 0 when the FMC_MPDAT0 data is programmed to flash complete. 0 = FMC_MPDAT0 register is empty, or program to flash complete. 1 = FMC_MPDAT0 register has been written, and not program to flash complete. |
| [5] | D1 | ISP DATA 1 Flag (Read Only)
This bit is set when FMC_MPDAT1 is written and auto-clear to 0 when the FMC_MPDAT1 data is programmed to flash complete. 0 = FMC_MPDAT1 register is empty, or program to flash complete. 1 = FMC_MPDAT1 register has been written, and not program to flash complete. |
| [6] | D2 | ISP DATA 2 Flag (Read Only)
This bit is set when FMC_MPDAT2 is written and auto-clear to 0 when the FMC_MPDAT2 data is programmed to flash complete. 0 = FMC_MPDAT2 register is empty, or program to flash complete. 1 = FMC_MPDAT2 register has been written, and not program to flash complete. |
| [7] | D3 | ISP DATA 3 Flag (Read Only)
This bit is set when FMC_MPDAT3 is written and auto-clear to 0 when the FMC_MPDAT3 data is programmed to flash complete. 0 = FMC_MPDAT3 register is empty, or program to flash complete. 1 = FMC_MPDAT3 register has been written, and not program to flash complete. |
| __I uint32_t FMC_T::XOMR0STS |
| __I uint32_t FMC_T::XOMR1STS |
| __I uint32_t FMC_T::XOMR2STS |
| __I uint32_t FMC_T::XOMR3STS |


I implement and use AI algorithms to detect a wide variety of defects (>50) on
lumber boards like knots, shakes, stains, wormholes, etc. For this, I use Convolutional
Neural Network (CNN) . The CNN first transforms the input image into a pixel-wise prediction
image thanks to a semantic segmentation. The segmented regions are then classified into specific classes.
Along with this, I also develop solutions for evaluating CNN models and then visualize the
metrics generated from this evaluation.
The study of wood using machine vision is a challenge for many reasons, but all these
reasons start with the fact that wood is a natural and biological material.
Wood is not a homogeneous material. Each board is different. Between and within species,
there are many different characteristics and rules to follow for grading.
In addition to the inherent variability of wood, there is also the coarseness of the rough
lumber. Indeed, trees can be subjected to many different climatic conditions that lead to a
wide range of defects.


LocalDosToGeos(), LocalGeosToDos(), LocalDosToGeosChar(), LocalGeosToDosChar(), LocalCmpStringsDosToGeos(), LocalIsDosChar(), LocalCodePageToGeos(), LocalGeosToCodePage(), LocalCodePageToGeosChar(), LocalGeosToCodePageChar(), LocalGetCodePage(), LocalIsCodePageSupported()
There are several functions which work with DOS-format text, converting it to and from GEOS format. Normally, converting DOS text files to GeoWrite documents is handled by Import/Export routines; for those occasions where your code needs to convert DOS text to GEOS format or vice versa, however, these functions should be sufficient. They are localized because DOS has its own version of localization which it implements as "code pages." Each code page is a table of characters. Countries or regions with unusual characters have different code pages. If you haven't worked with code pages up to this point, you probably won't have to start now but can just rely on GEOS to use the native code page correctly. If your geode is going to allow computers from one country to communicate with those of another, you might need to use specialized functions.
Assuming you want to use the code page native to the user's machine, you can use
LocalDosToGeos()
and
LocalGeosToDos()
to convert strings from one text format to the other.
LocalDosToGeosChar()
and
LocalGeosToDosChar()
work similarly, converting a single character.
LocalCmpStringsDosToGeos()
takes two strings, converts one or both of them to GEOS format, then compares them, returning the same values as the regular string comparing functions. Pass a
LocalCmpStringsDosToGeosFlags
to specify which strings to convert before comparing.
Each of these functions also takes a character as an argument. When a character in one format has no corresponding character in the format it's being converted to, the character argument will be substituted. At the same time a flag will be set to let your geode know that there were some characters that couldn't be converted nicely.
LocalIsDosChar()
checks a GEOS character to see if it maps into a DOS character. The
MIN_MAP_CHAR constant is the smallest value which may need to be mapped. If a character's value is below this constant, then it will be the same under any code page.
If your geode is interested in which code page it's using, the
LocalGetCodePage()
instruction will tell you what the default code page is. If you want to use a code page other than the native one, the
LocalCodePageToGeos()
,
LocalGeosToCodePage()
,
LocalCodePageToGeosChar()
, and
LocalGeosToCodePageChar()
behave as their default code page equivalents, except that each takes a code page as an argument to be used in conversion. A number of support code page values are enumerated in the
DosCodePage
type. To find out whether the user's environment supports a specific code page, call
LocalIsCodePageSupported()
.


Joan Xie
Web designer & developer, for hire
- Knows about web standards
- Writes accessible, browser-compatible & SEO-friendly code
- Has customized themes for Bootstrap
- Converts design to responsive, standard-compliant & browser-compatible code
- Focuses on maintainable & modular CSS
- Author of ZoaUI, a UI/CSS library with better multilingual typography support
- Writes in plain JavaScript & TypeScript
- Uses vanilla JavaScript & jQuery
- Knows about & has implemented MVC/MVVM in JavaScript
- Designs webpages & apps, for mobile & desktop
- Knows about typography & focuses on readability of text


--- layout: project title: Magic Blox date: September 27, 2017 excerpt: AR block-building game for iOS, developed by Superstar Games. categories: gamedev c# ---
I worked on design and development of Magic Blox, a block-building game, while working at Superstar Games. The game features 3 different modes: free-play, puzzle mode and hide n' seek mode. In free-play mode, players can build anything they like with the blocks and are able to destroy their creations. Puzzle mode gives players a challenge by showing a structure template that they need to figure out how to fill in. In Hide n' Seek mode, there is a special block hidden within many structures that the player needs to find before the time runs out.
I led a small team in the design and development of this game. Some of my contributions include:
- Created flexible grid system to be able to adapt to the changing play area as a result of AR plane finding
- Wrote the majority of the game code for UI handling, block placement/deletion, play area finding/generation, and structure destruction mechanics.
- Implemented procedural puzzle generation algorithms to improve game replay-ability
- As project lead, I assigned tasks and oversaw the development, leading to a successful product release.
Here is the game in the iOS App Store: link


Donald Trump and Melania Trump register to vote in Florida
by CNN(CNN) — President Donald Trump is officially a Florida man.
Trump and First Lady Melania Trump registered to vote in Florida, making Mar-a-Lago their new primary residence on October 30, according to Florida’s voter registration file. The Trumps’ registration update was first reported by FloridaPolitics.com.
Trump could well use his newly minted voter registration status as motivation for other Floridians to get out and vote, too: He’s holding a campaign rally in south Florida that will double as a voter registration drive on November 26.
Trump announced this fall he would make Florida his primary residence — instead of New York’s Trump Tower — ahead of the 2020 election.
“I will be making Palm Beach, Florida, our Permanent Residence,” Trump tweeted on October 31. “I have been treated very badly by the political leaders of both the city and state. Few have been treated worse.”
The-CNN-Wire™ & © 2019 Cable News Network, Inc., a Time Warner Company. All rights reserved.


The primary service rendered by FOSTER Firm is to advise clients (individuals or corporations) about their legal rights and responsibilities, and to represent clients in civil or criminal cases, business transactions, and other matters in which legal advice and other assistance
DISCOVER SOME MORE AREAS
One some ouch winked far sed playfully that showed yellow reciprocating laorem ipsum dolor sit amet consectetur.
One some ouch winked far sed playfully that showed yellow reciprocating laorem ipsum dolor sit amet consectetur.
One some ouch winked far sed playfully that showed yellow reciprocating laorem ipsum dolor sit amet consectetur.
One some ouch winked far sed playfully that showed yellow reciprocating laorem ipsum dolor sit amet consectetur.
One some ouch winked far sed playfully that showed yellow reciprocating laorem ipsum dolor sit amet consectetur.
One some ouch winked far sed playfully that showed yellow reciprocating laorem ipsum dolor sit amet consectetur.
Lorem Ipsum is simply dummy text of the printing and typesetting industry.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
DISCOVER OUR BEST WORKS


♦ STEP 1Please select the day(s) you want to attend.
♦ STEP 2Please select your lunch for registered day(s). Meal comes at no further cost.


DigitalGLU
Filter
Record Type:
Foreman Group:
Resource Group:
Job Type:
Date:
Status:
Found jobs matching current filter


Your domain control panel is designed for ease-of-use and
allows for all aspects of your domains.
Your domain control panel is designed for ease-of-use and
allows for all aspects of your domains.
Your domain control panel
is designed for ease-of-use
and
allows for all aspects of
Your domain control panel
is designed for ease-of-use
and
allows for all aspects of
Your domain control panel
is designed for ease-of-use
and
allows for all aspects of
Your domain control panel
is designed for ease-of-use
and
allows for all aspects of
Your domain control panel is designed for ease-of-use and allows for all aspects of
your
12 Jun, 2019 in Design tips
Firmament morning sixth subdue darkness
creeping gathered divide.


You can use either webmail, IMAP/SMTP, or Exchange/ActiveSync to access your mail.
Your username and password are the same no matter how you check your mail:
| Username: | Your whole email address. |
|---|---|
| Password: | Your mail password. |
Your webmail site is https://{{hostname}}/mail.
This method is preferred on Android devices and is not available on iOS devices.
| Server: | {{hostname}} | |
|---|---|---|
| Protocol | Port | Options |
| IMAP | 993 | SSL |
| SMTP | 587 | STARTTLS |
In addition to setting up your email, you’ll also need to set up contacts and calendar synchronization.
On iOS devices and devices on this compatibility list, set up your mail as an Exchange or ActiveSync server:
| Server | {{hostname}} |
|---|---|
| Options | Secure Connection |
Your device should also provide a contacts list and calendar that syncs to this box when you use this method.


Ocean [ad20], ocean, in Crystal Sea
Last updated Turn #126
Ocean [ad20], ocean, in Crystal Sea
------------------------------------------------------------------------
23: Sirocco Traveller [ja8y], ship, 10 hulls, 1 rowing port, 30 sails,
23: 4% damaged, arrived from Ocean [ad21], owner:
23: Toulouse [h1q], Pen, with one worker, 32 sailors
24: Sirocco Traveller [ja8y], ship, 10 hulls, 1 rowing port, 30 sails,
24: 4% damaged, departed for Ocean [ad19].
Routes leaving Ocean:
North, to Ocean [ac20], 6 days
East, to Ocean [ad21], 6 days
South, to Ocean [ae20], 6 days
West, to Ocean [ad19], 6 days
Inner locations:
Island [aa4d], island, 1 day, owner:
Giant spider [hl9r], giant spiders, number: 11


Since Trinity University of Asia’s inception in 1963, it continues to expand its horizon by offering various courses to keep up with the rapid developments in the academe. In its tradition of excellence, service and quality Christian education, it is one of the pioneer schools which offered Bachelor of Science in Computer Science in 1988.
Cognizant of the fact that the field of Computer Science is highly related to Mathematics, it was first offered in the Department of Mathematics and Physics under the leadership of Dr. Socorro M. Rodriguez. For almost a decade after its launch, it had become the flagship course in the College of Arts & Sciences reaching its peak in the year 1998 with a total population of almost 1200.
When the College of Computing and Information Sciences (CCIS) was formally inaugurated in 2009, with Professor Rosauro E. Manuel as its first Dean, the Bachelor of Science in Information Technology discipline was offered along with its existing BSCS course. From the Lyman Ogilby Building, the College was transferred to a four-storey building, the Student Services Center, which now houses its five (5) computer laboratory rooms and engineering facilities.
Realizing the unabated demand for specialized Information Technology professionals worldwide, the college expanded its BSIT program by having three (3) areas of specializations such as Software Engineering, Mobile and Web Applications, and Multimedia Arts and Animation.
The unwavering efforts of Dean Manuel paved the way for the CHED’s approval of another discipline within the same realm of study which is Bachelor of Science in Computer Engineering. Hence, the inception of Department of Computer Engineering in the year 2014.
From 2015-2016, Prof. Henry L. De Guzman became the OIC-Dean of the College. Subsequently, Prof. Randy D. Lagdaan and Prof. Laurie Lee R. Bathan became the OIC-Deans of the College for first semester and second semester of school year 2016-2017 respectively.
In anticipation of new engineering program offerings and inevitable updates in existing programs, the college name was changed to College of Engineering and Information Sciences (CEIS) in 2017. From 2017 to the present, the College is under the stewardship of Dr. Ferdinand R. Bunag. Among the recent developments in the College are state-of-the-art engineering equipment and facilities, a Multimedia Arts Laboratory housing 38 units of the latest Mac computers, integration of Microsoft and CISCO certifications in the BSIT curriculum, and creation of new IT specialization, the Data Science and Analytics.
Throughout its ten (10) years of existence, the College has become the alma mater of successful IT professionals who are working in top IT companies, both here and abroad, like Microsoft Corporation, IBM Philippines, Accenture, Oracle Suite, among others. They have become successful in their chosen careers in Information Technology, excelling in diverse fields such as application programming, systems administration, web development, graphics design, networking, and multimedia content development.
To live up to its vision-mission, the College is faithfully continuing its noble thrust of maintaining outstanding academic standards in its programs and empowering students for professional careers that will entail diverse skills to meet complex and unanticipated challenges in the fields of engineering and information sciences.


Created by Shawn Campbell / @jaegerpicker
I'm Shawn Campbell, I've been a software engineer for the last 15 years. I've mostly worked on web applications but mobile and desktop applications also. I work at CashStar here in Portland, ME. I'm new to Maine since September 2013 and loving it so far. I love working with python but have used Objective-C, Java, C#, ruby, GoLang, C/C++, and Groovy professionally in the past but more than any language I've always worked with JavaScript.
Packaging has two important use cases, first dependency managment(think pip, ruby gems, or in this case npm and bower) and second building your app. There are two important types of libraries to worry about managing in web applications. Server side or development time libraries and client side or web app dependencies. Development libraries are typically used for unit testing, JS minification, JS cancatenation, or css(less/sass) complilation. Client side libs are things like backbone.js, ember.js, or underscore.js.
Building your app is concatenating your js/css, minifying your code, and updating your templates to use the new libs. This is also the step that will compile CoffeeScript, ClojureScript, or TypeScript along with Less, SCSS, or Sass. The packaging tool can then package your web app up and make it much easier to deploy.
Our client side javascript apps are becoming more and more complicated. Server-side developers have long placed a huge importance on automated unit testing. Often going as far as to break builds if the tests do not all pass, yet client side unit testing remains much less common. Testing our code should be required not optional, even the client side code.
JavaScript task runners are useful JS files that help to automate common development and server side tasks. We'll cover two options here, Grunt and Gulp.
Grunt is the most popular and most used task runner around today. Lots of plugins and a ton of examples on the internet. It's based on defining tasks and and using various node libraries to automate tasks.
Gulp is a new and popular task runner. It's a based on node.js streams and code-over-configuration and aims to be simpliarer and quicker to use than Grunt. It's still very new and there are vastly fewer examples and plugins available however.
I usually define 5 different tasks:
This task typically will minify and concatenate javascript into one file. It will also compile css via less or whatever css preprocessor you have used in the project. This is also the step that you would compile CoffeeScript if you are using it.
This task will start a simple html serving web server, that will autoreload any html/js/css upon change. Grunt-livereload is a great plugin to help with this.
This task will remove the compiled JS and css files form the project. It's sometimes nice to reset our app in order to avoid any wierd caching issues.
This task will start a test runner in an interactive mode. Running the unit tests in chrome. I use testem but karma is also very popular. The test runner will monitor for changes in the tests and new tests being added. I try to use a practical version of TDD* and having a continual running test enviroment really helps me have a solid work flow.
*By practical I mean I tend to layout and develop the base outline and structure of the code base prior to starting basic testing. This tends to remove most of the tedium of having tests fail because I haven't written any code for them yet.This task runs tests in a headless manner that is useful for continous integration. This will use PhantomJS which is a headless webkit browser to run tests with out interaction. This is an important step to help with a build server integration.
I don't think a script TDD or BDD approach is completely neccessary to produce quality code, however I do belive that unit tests and integration tests are strictly neccessary for a quality code base. Here is my working definitation of Unit tests and integration tests:
Mocha is a Unit testing library. It uses a BDD style syntax for it's testing descrtiptions. Here is the offical tag line: Mocha is a feature-rich JavaScript test framework running on node.js and the browser, making asynchronous testing simple and fun. Mocha tests run serially, allowing for flexible and accurate reporting, while mapping uncaught exceptions to the correct test cases. Chai is a testing syntax helper library used to specify a declaritive/promise based assertion syntax. Offical tag line: Chai is a BDD / TDD assertion library for node and the browser that can be delightfully paired with any javascript testing framework.
BDD - stands for Behavior driven development. Tests are written in a manner that reads like a sentence. In other words a test should read in this way
test("the function getting data from the api", function(fixture_data) {
//....do test stuff
});
Assertions look like this normally:
a = 1;
b = 2;
assert(a == b, "This should have failed");
// this print out the test in the second parameter
Chai make it nicer but giving us this syntax:
a = 1;
b = 1;
a.should.equal.b("This should not fail");
//or
expect(a).to.equal(b, 'This should not fail');
So assertions are the indivual tests clauses of our greater tests suite.
I setup a sample project using backbone.js app with mocha, chai, sinon, testem, grunt, npm, and bower.
Example Code: http://github.com/jaegerpicker/JSUnitTestBackBone Slides code:http://github.com/jaegerpicker/reveal.js based upon the really cool project Reveal.js Slides on the web:http://jaegerpicker.github.io/JSUnitTestingSlides/index.html


| English : | Little Millet |
| Scientific Name: | Panicum Miliare |
| Bengali : | Sama |
| Gujarati : | Gajro; Kuri |
| Hindi : | Kutki, Shavan |
| Kannada : | Same, Save |
| Marathi : | Sava, Halvi, vari |
| Oriya : | Suan |
| Punjabi : | Swank |
| Tamil : | Samai |
| Telugu : | Samalu |
- Little millet contains about 7% protein, like other millets it is also a good source of slow digesting carbohydrates, dietary fibre and micro nutrients.
- The phenolic compounds in little millet are responsible for the prevention and reduction of oxidative stress, exhibits anti-cancer, anti-diabetic and anti-hypertensive properties.
- The flavonoids are present in small quantities which act as antioxidant and play many roles in disease prevention.


{{ post.title }}
{{ post.summary(2)|markdown }}
{% extends "base.html" %}
{% from "helpers.html" import render_text, render_textbox, render_submit %}
{% block title %}Welcome!{% endblock %}
{% block banner %}
My name is Sotiris Lamprinidis and I'm a developer
interested in machine learning, data analysis,
natural language processing and a lot of other
stuff. I am exited about learning interesting things
and developing new skills.
I currentry reside in Athens, Greece. I have developed software for the sake of exploring,
for things I find interesting and for my own use (eat
your own dogfood!). I write about my adventures in programming and
share things I find useful or interesting. {{ post.summary(2)|markdown }}About
Projects
Blog
Latest posts
{{ post.title }}


react-native dev
Excels at building functional performant mobile apps. Enjoys building projects that clients will love. Brings a wide insight to the project, which these days are usually based in React Native and Redux.
UI/UX Designer with a passion for designing beautiful and functional user experiences.Also Front End Developer who focuses on writing clean, elegant and efficient code in React.JS.
Mobile app developer based out of BD
I'm a Mobile app developer for Monico Technologies Ltd. based in Dhaka, Bangladesh. I have serious passion for UI effects, animations and creating intuitive, dynamic user experiences. I enjoy turning complex problems into simple, beautiful and intuitive designs.
I'm a learner and JavaScript enthusiast who loves to learn new tips and tricks. Very conscious about clean code & design pattern to write polished & responsive websites and mobile apps.
A selection of my range of work


To develop my career as a web developer, I intend to work in a challenging atmosphere where I will be a valuable team member, contributing towards quality work and ideas for an organization.
Web application developer in PHP, Front-end and back-end websites as per current market trend and efficient technologies and programming techniques to build stable feature-rich web applications.
Awarded Master of Information technology from University of South Australia.
Technicall Skills
Word Press
SQL, MYSQL
PHP, C++, C, Java
Angular Js
JavaScript, jQuery
CSS3, HTML, Bootstrap, Sass
Windows, Linux, MAC OSX
Employability Skills
Hardworking, Self-starter and a good team player.
Excellent Communication and comprehension skills.
Always keen to learn new technologies and adaptable.
Have a positive attitude.
Excellent trouble shooting and problem solving skills.


Age:
Select a game or sport Cricket Badminton Football Snooker Boxing Swimming Chess Hockey Do u want to play a quiz in this sport :
The company name,
Lorem ipsum dolor,
Glasglow Dr 40 Fe 72.
Tel:1115550001
Fax:190-4509-494
Email: contact@example.com


--- title: LUA Macros for BLI Manual layout: pagetoc description: An introduction to LUA macros, with definitions, practical examples and useful links. toc: true ---
Lua Macros is a great tool to get the most out of your BeoLiving Intelligence and take your home automation installation to the next level.
The simplicity of programming in lua, a fast-to-learn and high level programming language, combined with specifically designed functions thought out especially for the BLI, give the installer/advanced-user freedom to get creative and design automation procedures that stand out.
The Macro configuration page of the BeoLiving Intelligence has a simple user interface that displays available resources and commands on these resources, but aside from selecting the command to execute and setting a time delay between commands, the possibilities are limited.
A user may desire to use their system variable’s values to act in different ways.
E.g.: Respond to the livingroom's light switch being pressed by turning the light on to full power during the day and 25% in the evening.
{% highlight ruby %} function(event, engine) -- trigger event recieved from livingroom main light switch (BUTTON) time = engine.query("*/*/SYSTEM/Clock/") if tonumber(time[1].get_number("hour")) < 18 then -- this could also be done with sunrise/sunset relative times in the BLI engine.fire("Main/livingroom/DIMMER/main_light/SET?LEVEL=99") else engine.fire("Main/livingroom/DIMMER/main_light/SET?LEVEL=25") end end {% endhighlight %}
Much is possible with lua Macros. The following is an introduction to the main tools used in lua Macros programming for the BeoLiving Intelligence, including code snippets and practical examples.
When a macro is executed, either manually, by another Macro or because any of the defined events has matched, the function defined in the “Lua code” text area will be executed.
The function should have the following signature: function(event, engine)
Every lua Macro should start by stating the signature and end with end
, e.g.:
function(event, engine)
-- all your code
end
The event that originated the call will have many parameters with information related to this event and this information can be useful for setting conditions or values of variables.
E.g. Get the level of a dimmer who’s change has triggered the event, and set half the value to all the other lights.
The get functions are some of the most important when programming lua Macros, as they are used to obtain the values of other parameters of an event. There are five different functions, according to the type (string, boolean, or number) you know the parameter should return.
If you use the incorrect function (eg: get_boolean for a parameter that will return a string) the BLI will attempt to interpret a coherent value (eg: if the string is "false" it will return the boolean false) and if it's not possible, it will send a warning and allow the Macro to continue excecution.
if event.get_boolean("mute") then
).
event.get_boolean(“nowPlaying”) = true
if event.get_number("volume") > 20 then
).
event.get_number(“LEVEL”) = 55
event.get_string(“sourceName”) = “RADIO”
event.get_celsius(“TEMPERATURE”) = 25
event.get_fahrenheit(“TEMPERATURE”) = 77
event.tostring() = “Main/global/DIMMER/MyLamp/STATE_UPDATE?LEVEL=55!”
event.area() = “Main”
event.zone() = “global”
event.type() = “DIMMER”
event.name() = “MyLamp”
event.parameters() = {“LEVEL” = “55!”}
event.updated(“LEVEL”) = true
event.group() = “indoors”
event.group_zones(“indoors”) = {“Main/global”, “Downstairs/Kitchen”, “Upstairs/Main room”, “other/room”}
The BeoLiving Intelligence’s execution engine. The engine allows you te set values or query states of all your BLI’s devices.
engine.fire(“other/room/DIMMER/*/SET?LEVEL = 75”)
engine.fire_on_group(“indoors”, “DIMMER/*/SET?LEVEL = 75”)
tab = engine.query(“other/room/DIMMER/*”)
tab[1].get_boolean(“mute”) = false
tab[1].get_number(“LEVEL”) = 62
tab[1].get_string(“sourceName”) = “RADIO”
tab[1].get_celsius(“TEMPERATURE”) = 25
tab[1].get_fahrenheit(“TEMPERATURE”) = 77
In this case the type is readily available, so if you use the incorrect get function, an error will be sent with information about the script and the macro will stop (eg:
Error: Main/global/MACRO/dummy execution error: Line 2: Cannot convert VALUE to integer since it has type boolean
).
tab[1].tostring() = “other/room/DIMMER/OtherLamp/STATE_UPDATE?LEVEL=62”
tab[1].area() = “other”
tab[1].zone() = “room”
tab[1].type() = “DIMMER”
tab[1].name() = “OtherLamp”
tab[1].group() = “indoors”
tab[1].group_zones(“indoors”) = {“Main/global”, “Downstairs/Kitchen”, “Upstairs/Main room”, “other/room”}
success, address = engine.wait_until(“other/room/AV renderer/TV/STATE_UPDATE?state=Play”, 120, 0)
No return value is expected or should be set from the lua function.
The tonumber()
and tostring()
functions are available to tranform values when programming lua Macros.
tostring(tonumber(event.get_string("_stringWithNumber"))==90)
is equal to the stringfalse
if the _stringWithNumber parameter of the trigger event is not 90.
Common errors in lua Macros programming include the comparison of variables with different types of data (e.g. numbers and strings) and the specification of a Resource whose name has later been changed.
E.g.: The comparison
event.get_boolean("mute") == "false"
when checking in the event sent by a BeoLink product is muted is incorrect and will always return false. The correct comparison isevent.get_boolean("mute") == false
.
Any runtime error will be sent to the system log (Tools–>Log).
Example of what could be seen in log:
Execution error on Main/global/MACRO/sample: Line 6: attempt to call field ‘wrong_delay’ (a nil value)
.
For debugging purposes, the macro code can call the Debug function, which receives a string that is sent to the system log. This can be used to print a variable’s value or to see if your macro is arriving to the end of the code or “crashing” before hand.
Example of what you can write in your Macro’s code:
Debug(“Will debug: “ .. tostring(123)).
Two special commands, which cannot be added via normal macro edition, are available for group creation and group clear. These commands are provided by the system driver, which is located on the global zone.
Set the kitchen on the “indoors” group:
Main/global/SYSTEM/BeoLiving Intelligence/SET GROUP?zone=Downstairs/Kitchen&group=indoors
Clear the kitchen group:
Main/global/SYSTEM/BeoLiving Intelligence/CLEAR GROUP?zone=Downstairs/Kitchen
Only one execution of a macro is allowed to wait_until or delay at a time. If the macro is fired while the same macro is waiting or delaying, then the previous wait is canceled.
Canceling a macro immediately cancels any wait_until or delay.
Please take into account that lua Macros programming should prioritize using values from the parameters of the event and not from an independently queried resource.
All lua native functions are available for use in the lua Macros configuration.
A good place to start learning Lua is Tyler Neylon’s “Learn Lua in 15 Minutes”. This is a short and simple introduction
A more complete reference guide is the book Programming in Lua. The first edition is freely available online. And includes all available functiones.
Feel free to browse our examples, many are short and ilustrate use cases very well.
{% for snippet in site.lua-macro-snippets %} {% endfor %}


Scrollbench.js benchmarks the browsers ability to scroll contents. This helps web designers optimizing HTML & CSS, journalists comparing browser engines, enthusiasts feeding their benchmark thirst.
There are many browser benchmarks out there, Scrollbench.js tells you how good your browser is at scrolling. This might seem trivial but it's actually a good way to measure a website weight.
Complex DOM structure and sophisticated styling require more resources and the simple scroll action forces the browser to re-render the page contents. Hence a benchmark that checks the browser ability to scroll is actually a benchmark that tests the browser ability to draw elements in their respective styling.
Scrollbench is a good way to compare browser engines. Testing the same page on different browsers gives you an idea of how good each engine is. Digging a bit deeper you should be able to identify which element or which style property is more difficult for your browser.
This might be a good starting point for browser vendors to identify their product deficencies and a quick way for designers to check their work weight.
It is important to note that you shouldn't compare browsers that support different set of technologies. The benchmark is performed using the best API we can find on the platform, but a browser that supports requestAnimationFrame
will have very different results compared to one that only has setTimeout
.
For this reason at the end of the test you'll get an index which defines the browser "resolution".
Presently we have 3 resolutions: High, Medium and Low. You should be comparing browsers at the same resolution index only. Clicking on the Resolution value in the report you'll also get a detailed list of the technologies used to perform the benchmark.
Don't mix apples and oranges!
The more sophisticated your browser the more reliable the benchmark. On de/r-ecent browsers we can rely on requestAnimationFrame which grants the test a good resolution but that's only a part of the equation. We also need a high definition timer. A good candidate in this case would be performance.now
.
So if you have both, the test result is considered reliable.
If one feature is missing we fall back to the closest alternative, which in case of requestAnimationFrame
is setTimeout
(notoriously a low definition timer).
For the test to be 100% reliable we would need support for asyncronous scrolling. Unfortunately that's an unofficial API with very little browser support (even though something is moving in that direction). Async scrolling is a way for the browser to simulate the page scrolling like it was performed by a real person.
As of this writing the only browser to support async scrolling is Chrome... With a caveat. You have to enable gpu benchmarking first. To do so, execute chrome from the command line with the --enable-gpu-benchmarking
option.
The easiest way to use Scrollbench.js is through the bookmarklet.
Scrollbench loves mobile, too. (Unfortunately mobile doesn't love him back, in fact... ) The procedure to install the bookmarklet on mobile is a bit convulsed. Follow me closely.
Copy the bookmarklet code to the clipboard.
Now add this site to the bookmarks.  You can alter the URL field right away. Replace the site address with the content of the clipboard and save. If you are on iPhone, read on.
On iPhone save the bookmark, then open the bookmarks panel and edit the bookmark you just added. You are now able to modify the site address. Replace the address with the bookmarklet code and voilà!
You can now call the Scrollbench on any site by simply selecting the bookmark.
For a deeper integration you should include the script into your projects like so:
HTML<head>
...
<script src="scrollbench.js" type="text/javascript"></script>
</head>
You can then invoke the scrollbench from inside your code or the debug console with the following:
javascriptvar sb = new ScrollBench();
sb.start();
For advanced usage see the documentation.
Scrollbench.js can be an invaluable tool for web designers, too. You can benchmark your layout performance and spot its weaknesses. If you notice too many dropped frames and low frame rate, it might be time to rethink your design. Try to temporarly hide some elements and run the test again until you find the culprit. It can be tedious but there's no price for a well optimized web site (especially on mobile).
The shortest way to run a test is:
javascriptnew ScrollBench().start();
To reuse the instance assign it to a variable:
javascriptvar sb = new ScrollBench();
sb.start();
Scrollbench.js (SBJS) is a class, to use it you have to create an instace with new
. The script initiates itself but does not perform any actual benchmark until you call the start
method.
SBJS accepts one paramenter for special configuration. The parameter must be an object and the accepted values are:
document.documentElement
.true
the viewport is set to initial scale 1.0. Default: false
.2
.2
.null
null
100
null
SBJS scrolls the DOM element with id="scrollme"
:
javascriptnew ScrollBench({
element: document.getElementById('scrollme')
}).start();
By default SBJS scrolls the whole page (namely: document.documentElement
). There are special cases where the content is contained inside an element and scrolling the document wouldn't have any effect. In those cases you can specify the element that needs to be scrolled.
Sets the viewport to scale factor 1.0:
javascriptnew ScrollBench({
initViewport: true
}).start();
This may be useful on mobile devices. If the website doesn't define the viewport size, the mobile browser tries to fit the page on the screen, but each screen/device will have a different scale factor. To get consistent benchmark results you can force the viewport scale factor to 1.0.
Performs the test 5 times instead of the default 2:
javascriptnew ScrollBench({
iterations: 5
}).start();
For better reliability the test is performed 2 times by default, but this value can be raised for higher resolution. The browser often needs a "warm up" period to reach the highest performance level, so the first pass has sometimes a lower performance rate.
Loads the default per site config file
javascriptnew ScrollBench({
loadConfig: true
}).start();
Any of the SBJS options can be passed on a per site basis from an user defined configuration file. By default no file is loaded, passing true
SBJS loads the default config. You may alternatively pass an URL the configuration file is loaded from.
The configuration is a javascript file that sets the scrollbench_config
variable. See the default config for reference.
Note that the bookmarklet loads the default config file but this is not the default SBJS behavior.
Bypasses the default report and simply shows an alert box with the results:
javascriptnew ScrollBench({
onCompletion: function (result) {
alert(JSON.stringify(result, null, ' '))
}
}).start();
The parameter returned by the function has the following keys:
numAnimationFrames
: total number of frames of the animation
droppedFrameCount
: number of frames dropped (ie: performed with low frame rate)
totalTimeInSeconds
: runtime
resolution
: test reliability based on browser specs
timer
: timer used for the test
animation
: technology used to perform the animation
avgTimePerPass
: average time needed for each pass
framesPerSecond
: frames per second the animation is performed at (estimated)
travel
: pixels travelled by the animation
A value can be followed by a !
, -
or +
meaning respectively: bad, average, good result.
The results are shown by default in an overlaying iFrame, you may want to pass them to a custom function for further inspection. The results will be passed as first parameter to the specified fuction. The default internal report is not executed.
Tricky code to get the scrollable element on Gmail:
javascriptnew ScrollBench({
scrollableElementFn: function (callback) {
gmonkey.load('2.0',
function (api) {
callback(api.getScrollableElement());
}
);
}
}).start();
In some circumstances it's not possible to foresee the element that should be scrolled. In those cases we can rely on a custom function. The element must be sent as first parameter of a callback function.
Increase the number of frames by reducing the scrolling step from the default 100 to 50:
javascriptnew ScrollBench({
scrollStep: 50
}).start();
The scrolling is normally performed with a 100 pixels step. Each step is a frame. You may want to increase of decrease the number of frames by altering the scrollStep.
Note: this value is ignored in case of asyncronous scroll.
Wait for the element waitForMe
to be loaded before starting the benchmark.
javascriptnew ScrollBench({
waitForFn: function () {
return document.getElementById('waitForMe');
}
}).start();
The passed function is executed repeatedely until it doesn't returs true
. When it is finally true
, the benchmark begins.


CV
My curriculum
Short version
Current situation:
- Full professor (professeur des Universités), Université Paris-Saclay, since 2022
- Member of LISN-CNRS, joint INRIA team AO/TAU
- Teching at the Computer Science departement of IUT d’Orsay
- PEDR holder since 2016
Past positions:
- Associate professor (Maître de conférences), IUT de Vélizy, Université de Versailles St Quentin, 2011-2022
- Member of LISV lab, team Assistance and Interfaces, 2011-2022
- Elected member of the 61th section of CNU, 2019-2022
- Academic leave for 1 year in 2019 (CRCT 2 semesters), granted by CNU
- Post-doc fellow in LTCI (Signal processing department, Télécom ParisTech) on Brain-Computer Interfaces in EEG
- Post-doc fellow in TAU team (INRIA Saclay - LRI funded by the ASAP ANR project on deep learning and swarm intelligence.
- ATER (french assistant professor) in ETIS lab in neurocybernetic team on neural models of visual preattention and in Computer Science Department of Université de Cergy Pontoise
- PhD thesis on the implementation of a preattentional system with spiking neurons, in LIMSI-CNRS, under the supervision of Philippe Tarroux and Hélène Paugam-Moisy in 2009.
- Moniteur (french TA) in Computer Science Department of IUT Orsay.
PhD supervision:
- Romain Lloria, DATAIA grant at Université Paris-Saclay, “Geometrical Robust Blind Source Separation: Application to EEG classification”, 30% supervision with Frederic Pascal (PU, CentralSupelec-UPSaclay) and Florent Bouchard (CR CNRS, L2S), started in November 2022
- Maria Sayu Yamamoto, ANR UDOPIA-DATAIA grant at Université Paris-Saclay, “Similarity-based Classification with Riemannian methods for high dimensional EEG”, 50% supervision with Florian Yger, started in March 2021
- Isabelle Hoxa, ministerial grant (MESRI) in Université Paris-Saclay,“Study of EEG anticipatory signals linked to perceptual decision making”, co-supervision with Michel-Ange Amorim and Arnaud Delorme, started in October 2020
- Amina Alaoui-Belghiti, industrial grant (CIFRE) between UVSQ and Nexeya-Hensoldt, “Analysis and fault prediction: toward an automatic and predictive maintenance”, 100% supervision, defended in November 2021 (3 years)
- Jinan Charafeddine, joint supervision UVSQ and Université Libanaise (Liban), “Caractérisation et Intégration des signaux musculaires pour le pilotage d’un exosquelette des membres inférieurs lors d’activités locomotrices”, 30% supervision, defense defended in January 2021 (3,8 years, with covid suspension)
- Emmanuel Kalunga, joint supervision between UVSQ and Tshwane University of Technology (South Africa), “Toward User-adapted Brain-Computer Interfaces : Robust Interactions and Machine Learning based on Riemannian Geometry”, 50% supervision, defended in August 2017 (3,5 years)
- Hugo Martin, industrial grant (CIFRE) between UVSQ and Bouygues Construction International, “Building Information Modeling: manipulate and visualize professional knowledge”, 70% supervision, defended in December 2016 (3,5 years)
Academic curriculum vitae
You can find my full CV here (in French)