Business
3 Ways To Increase Your Income
John Doe
February 28, 2018
Tech
How To Become a Better JavaScript Developer
John Doe
February 28, 2018
Lifestyle
Winter is Coming! Get Ready For It
John Doe
February 28, 2018
Travel
Traveling abroad: a beginner's guide
Clara Doe
February 28, 2018
Lifestyle
30 Delicious Salads in 5 Minutes
Clara Doe
February 28, 2018
Business
Ideas for Your Next Startup
John Doe
February 28, 2018
Lifestyle
Men Clothes Trends in 2018
John Doe
February 28, 2018


About
Hello! My name is Abbey Schueller.
I am currently based in Seattle, Washington where I work to make the world more energy efficient. I am just at the beginning of my career in web design and can't wait to learn more! Check back to watch my portfolio of work grow and improve.
Work
Recipe Finder
Food recipe search engine with sign-up and login capabilities
Weather Dashboard
Search for a city to return current and forecasted weather data
Work Day Scheduler
Enter items in time blocks and save to local storage
Placeholder project
Placeholder Project
Recipe Finder
Weather Dashboard
Work Day Scheduler
Contact Me
-<PHONE_NUMBER>
-<EMAIL_ADDRESS>- GitHub


|
Perl Weekly
Issue #119 - 2013-11-04 - No Unicode in the subject line
latest | archive | by Gabor Szabo
|
|
Hi,
Last week I had this little experience with various interesting Unicode characters in the Perl Weekly. On the web site it worked out well, but in the e-mail there were a few glitches. Most likely due to Mailman that I still use to handle the newsletter. (And it is a rather old version of Mailman, so I can't really blame it.) The subject line was missing the [Perlweekly] tag that Mailman should have included (and I hope it does this time again) and several people mentioned that they have not seen the heart in the subject line. I think the body of the message went through just fine.
|
|
|
|
Sponsors
|
We're Hiring Perl Software Developers - Grant Street Group
We're a growing software company using open source software/modern Perl practices to build innovative e-payment, auction, and tax collection web applications. We're looking for talented, motivated professionals committed to flawless work and customer service. Email resume<EMAIL_ADDRESS>|
|
Back-End Blacksmith
Do you take pride in your craft and want to have fun() at the same time? Are you a geek? Join the team of iwantmyname from anywhere.
|
|
Articles
|
Would You Miss Autoderef in 5.20?
Autoderef was added to perl in version 5.14 and now it seems to be on the way out. chromatic asked your opinion if you will miss it. I think very few people have really used it. Have you?
|
|
Discussion
|
|
|
Things we don't have #1
While CPAN has lots of modules solving many problems (multiple times), there are many problems that are not, or not well solved. Steven Haryanto started to put together a list of tools (libraries) available in other languages but not in Perl. In case you are looking for an problem to work on.
|
|
Code
|
Acme-oop-ism Part Three: techniques
Toby Inkster continues his quest to unify the way we can use Moose, Moo and Mouse. One of his suggestion is to write for Moo. Code written using Moo works well with Moose as well, and the syntactic sugar alll three provide is quite similar. So if you use that, your code will likely work with all 3.
|
|
Planet Moose - October 2013
This is the regular write-up of Toby Inkster on the world of Moose and friends. This episode includes an interview with Upasana Shukla who implemented the Moose exception objects as part of her OPW internship.
|
|
Test repository for Git wrappers
Do you have a Gti wrapper? Does it work? Philippe Bruhat (BooK) has created a GtiHub repository with lots of weird commits to test against.
|
|
Grants
|
|
|
|
|
Databases
|
|
|
Videos
|
Perl Meets Modern Web UI
This is the presentation of Bill Humphries at YAPC::NA about web frameworks for the client such as Backbone, Knockout, and Angular and how they work together with a Perl-based back-end.
|
|
|
|
Web
|
|
|
About LWP::UserAgent, https and proxy setup
Apparently LWP::UserAgent (and thus most Perl web clients that rely on it) cannot handle https requests via proxy. This bug was reported 10 years ago. Patches were submitted but the problem has not been fixed. Now Dominique Dumont explains the background of https and show how he proposed to fix the problem.
|
|
|
|
Perl 6
|
|
|
Past events
|
|
|
Weekly collections
|
|
|
|
|
|
|
Events
I usually list the next 3-4 events here. The list of all the events can be found on the web site. If your Perl event is not listed there, please let me know.
|
|
|
|
|
|
|
|
|
You know, you could get the Perl Weekly right in your mailbox. Every Week. Free of charge!
|


Well, the pressure's down, the boss ain't here –
He gone north for a while.
They say that vanity got the best of him,
But he sure left here in style.
By the way, that's a cute hat
And that smile's so hard to resist.
But, what's a sweetheart like you doing in a dump like this?

You kind of remind me of her when you laugh.
In order to deal in this game, got to make the queen disappear.
It's done with a flick of the wrist.
What's a sweetheart like you doing in a dump like this?

Just how much abuse will you be able to take?
Well, there's no way to tell by that first kiss.
What's a sweetheart like you doing in a dump like this?
You know, you can make a name for yourself,
You can hear them tires squeal,
You could be known as the most beautiful woman
Who ever crawled across cut glass to make a deal.

They say, in your father's house there's many mansions,
Each one of 'em got a fireproof floor.
Snap out of it, baby. People are jealous of you.
They smile to your face, but behind your back they hiss.
What's a sweetheart like you doing in a dump like this?
Got to be an important person to be in here, honey,
Got to have done some evil deed.

They say that patriotism is the last refuge
To which a scoundrel clings.
Steal a little and they throw you in jail,
Steal a lot and they make you king.
There's only one step down from here, baby,
It's called the land of permanent bliss.
What's a sweetheart like you doing in a dump like this?


Brief description. More...
#include <stdint.h>
#include <stdbool.h>
Go to the source code of this file.
Classes | |
| struct | xt_test_result_t |
| Struct with results specific for a test. More... | |
| struct | xt_radar_t |
| Struct with radar configuration. More... | |
Macros | |
| #define | XT_SELFTEST_DATA_LENGTH 256 |
| #define | XTIO_GPIO_MODE 0x0001 |
| Normal GPIO mode - this is default mode. More... | |
| #define | XTIO_PULL_UP 0x0010 |
| Pull up enabled. More... | |
| #define | XTIO_PULL_DOWN 0x0020 |
| Pull down enabled. More... | |
| #define | XTIO_FLOATING 0x0030 |
| No pull ups enabled. More... | |
| #define | XTIO_OPEN_DRAIN 0x0040 |
| #define | XTIO_INTERRUPT_MODE 0x0002 |
| Enable interrupt for IO pin. More... | |
Typedefs | |
| typedef struct xtProtocol | xtProtocol |
| typedef float | float32_t |
| 32-bit floating-point type definition. More... | |
| typedef void(* | xtio_host_send_completed_t) (void *arg) |
| Typedef of callback function for notifying of completed transfer. More... | |
| typedef int(* | xtio_host_send_t) (uint8_t *, uint32_t, xtio_host_send_completed_t, void *) |
| typedef int(* | xtio_serial_init_t) (xtProtocol *) |
Functions | |
| int | xt_run_selftest (uint8_t testcode, xt_test_result_t *test_result) |
| Performs the specified selftest. More... | |
| int | xt_selftest_x4_connectivity_mark_faulty_pin (int pin) |
| Access function for X4Driver to mark a faulty pin. More... | |
| int | xt_selftest_x4_connectivity_get_pin_table (int *count, const int **x4_pins, const int **mcu_pins) |
| Access function for X4Driver to get the pin combinations to test. More... | |
| int | xt_wait (uint32_t ms_to_wait) |
| Causes the calling task to wait and yields to another task. More... | |
| int | xt_delay_us (uint32_t us_to_wait) |
| Delays the execution for the specified number of microseconds. More... | |
| int | xt_software_reset (xt_swreset_reason_t reason) |
| Triggers a software reset of MCU. More... | |
| int | xt_use_external_memory (bool use) |
| Controls whether or not to use external memory. More... | |
| bool | xt_external_memory_enabled (void) |
| Checks if external memory is enabled. More... | |
| bool | xt_fast_memory_enabled (void) |
| Checks if fast memory is enabled. More... | |
| int | xt_get_reset_count (void) |
| Get reset count. More... | |
| int | xt_get_reset_reason (xt_swreset_reason_t *reason) |
| Gets the cause of the previous software reset. More... | |
| int | xt_get_crash_count (void) |
| Get crash count. More... | |
| int | xt_reset_crash_count (void) |
| Resets crash count. More... | |
| int | xt_set_reset_reason (xt_swreset_reason_t reason) |
| Sets the cause of the coming software reset. More... | |
| int | xt_get_default_radar_config (xt_radar_t *config) |
| Gets default radar configuration. More... | |
| int | xt_use_external_clock (bool use) |
| Instructs the firmware whether to use either a crystal oscillator or external clock. More... | |
| bool | xt_using_external_clock (void) |
| Checks whether the crystal oscillator or external clock should be used. More... | |
| int | xt_feed_watchdog (void) |
| Reset the watchdog timer. More... | |
| int | xt_trigger_crash (xt_swreset_reason_t crash_reason, const char *crash_info, bool full_dump) |
| Triggers a crashdump and reset of module. More... | |
| xt_opmode_t | xt_get_operation_mode (void) |
| Gets the operation mode of the module. More... | |
| int | xt_get_certification_submode (void) |
| Gets the submode of the module for certification. More... | |
| uint64_t | xt_get_system_timer_us (void) |
| Gets the system timer in microseconds. More... | |
| void * | xt_get_program_counter_from_task_handle (void *handle) |
| Gets the program counter of the specified task. More... | |
| int | xt_get_stack_area_from_task_handle (void *handle, uint32_t stack_size, void **stack_pointer, uint32_t *depth) |
| Gets the stack start pointer and depth for specified task. More... | |
| uint32_t | xt_get_cpu_load (void) |
| Gets the current average CPU load. More... | |
| uint32_t | xtio_flash_erase (uint32_t address, uint32_t size) |
| Erases specified flash area. More... | |
| uint32_t | xtio_flash_write (uint32_t address, uint8_t *data, uint32_t size) |
| Writes data to flash. More... | |
| uint32_t | xtio_flash_store (uint32_t destination_address, uint8_t *buffer, uint32_t size) |
| Stores data in flash. More... | |
| uint32_t | xtio_get_page_size (void) |
| Gets the flash page size. More... | |
| uint32_t | xtio_get_block_size (void) |
| Gets the flash block size. More... | |
| uint32_t | xtio_get_flash_size (void) |
| Gets the size of the entire flash. More... | |
| uint32_t | xtio_flash_get_unique_id (uint8_t *buffer, uint32_t max_size, uint32_t *size) |
| Returns an ascii string of a cpu unique identifyer. More... | |
| int | xtio_set_direction (xtio_pin_id_t pin_id, int direction, int level) |
| Set direction of specified IO pin. More... | |
| int | xtio_set_level (xtio_pin_id_t pin_id, int level) |
| Set the level of specified IO pin. More... | |
| int | xtio_toggle_level (xtio_pin_id_t pin_id) |
| Toggle the level of specified IO pin. More... | |
| int | xtio_get_level (xtio_pin_id_t pin_id, xtio_pin_level_t *level) |
| Get level of specified IO pin. More... | |
| int | xtio_set_pin_mode (xtio_pin_id_t pin_id, uint32_t mode) |
| Set mode for specified IO pin. More... | |
| int | xtio_irq_register_callback (xtio_pin_id_t pin_id, void(*irq_callback)(void), xtio_interrupt_modes mode) |
| Register interrupt callback function. More... | |
| int | xtio_irq_unregister_callback (xtio_pin_id_t pin_id) |
| Unregister interrupt handler. More... | |
| int | xtio_led_init (xtio_led_id_t led_id, int mode, float led_state) |
| Initiate LED. More... | |
| int | xtio_led_set_state (xtio_pin_id_t led_id, float led_state) |
| Set LED state. More... | |
| int | xtio_led_toggle_state (xtio_pin_id_t led_id) |
| Toggle LED state. More... | |
| int | xtio_extram_init (void) |
| Initialize external RAM if available. More... | |
| int | xtio_uart_set_baudrate (int baudrate) |
| Configures UART module with the specified baudrate. More... | |
| int | xtio_host_send (uint8_t *buffer, uint32_t length, xtio_host_send_completed_t callback, void *callback_arg) |
| Send a data buffer to host through a serial port - USB or UART. More... | |
| int | xtio_host_send_debug (uint8_t *buffer, uint32_t length, xtio_host_send_completed_t callback, void *callback_arg) |
| Send a data buffer to host through debug interface. More... | |
| int | xtio_serial_com_init (xtProtocol *xt_protocol) |
| Initiate serial communication - USB if available, otherwise UART. More... | |
| int | xtio_serial_com_debug_init (xtProtocol *xt_protocol) |
| Initiate debug serial communication. More... | |
| bool | xt_has_bootloader (void) |
| Check if we have a bootloader available. More... | |
| const char * | xt_bootloader_string (void) |
| Return a string identifying what type of bootloader we have, or "" if we don't. More... | |
Brief description.
Longer description
| #define XT_SELFTEST_DATA_LENGTH 256 |
| #define XTIO_FLOATING 0x0030 |
No pull ups enabled.
| #define XTIO_GPIO_MODE 0x0001 |
Normal GPIO mode - this is default mode.
| #define XTIO_INTERRUPT_MODE 0x0002 |
Enable interrupt for IO pin.
| #define XTIO_OPEN_DRAIN 0x0040 |
| #define XTIO_PULL_DOWN 0x0020 |
Pull down enabled.
| #define XTIO_PULL_UP 0x0010 |
Pull up enabled.
| typedef float float32_t |
32-bit floating-point type definition.
| typedef void(* xtio_host_send_completed_t) (void *arg) |
Typedef of callback function for notifying of completed transfer.
| typedef int(* xtio_host_send_t) (uint8_t *, uint32_t, xtio_host_send_completed_t, void *) |
| typedef int(* xtio_serial_init_t) (xtProtocol *) |
| typedef struct xtProtocol xtProtocol |
| enum xt_error_codes_t |
| enum xt_opmode_t |
| enum xt_swreset_reason_t |
Cause of a software-triggered reset.
| enum xtio_error_codes_t |
Error codes for Xethru IO driver.
| enum xtio_interrupt_modes |
| enum xtio_led_id_t |
ID of all LEDs that may be available.
Some board implementations may not implement all LEDs. If a LED is not implemented, an error code shall be returned.
| Enumerator | |
|---|---|
| XTIO_LED_RED | ID for red LED. |
| XTIO_LED_GREEN | ID for green LED. |
| XTIO_LED_BLUE | ID for blue LED. |
| XTIO_LED_YELLOW | ID for yellow LED. |
| XTIO_LED_WHITE | ID for white LED. |
| enum xtio_led_mode_t |
| enum xtio_led_state_t |
States for LEDs that may be available.
Some board implementations may not implement all LED states. If a LED state is not implemented, an error code shall be returned.
In addition, PWM controlled LEDs may also be available. Brightness of light is then controlled by a value between 0.0 and 1.0.
| Enumerator | |
|---|---|
| XTIO_LED_OFF | LED is OFF. |
| XTIO_LED_ON | LED is OFF. |
| enum xtio_pin_direction_t |
| enum xtio_pin_id_t |
ID of all IO pins that may be available.
Some board implementations may not implement all IO pins. If an IO pin is not implemented, an error code shall be returned.
| enum xtio_pin_level_t |
| const char* xt_bootloader_string | ( | void | ) |
Return a string identifying what type of bootloader we have, or "" if we don't.
| int xt_delay_us | ( | uint32_t | us_to_wait | ) |
Delays the execution for the specified number of microseconds.
| us_to_wait | Microseconds to delay |
| bool xt_external_memory_enabled | ( | void | ) |
Checks if external memory is enabled.
| bool xt_fast_memory_enabled | ( | void | ) |
Checks if fast memory is enabled.
| int xt_feed_watchdog | ( | void | ) |
Reset the watchdog timer.
| int xt_get_certification_submode | ( | void | ) |
Gets the submode of the module for certification.
| uint32_t xt_get_cpu_load | ( | void | ) |
Gets the current average CPU load.
| int xt_get_crash_count | ( | void | ) |
Get crash count.
| int xt_get_default_radar_config | ( | xt_radar_t * | config | ) |
Gets default radar configuration.
| config | Default radar configuration |
| xt_opmode_t xt_get_operation_mode | ( | void | ) |
Gets the operation mode of the module.
| void* xt_get_program_counter_from_task_handle | ( | void * | handle | ) |
Gets the program counter of the specified task.
| int xt_get_reset_count | ( | void | ) |
Get reset count.
Must be called at least once every reset to update counter.
| int xt_get_reset_reason | ( | xt_swreset_reason_t * | reason | ) |
Gets the cause of the previous software reset.
| reason | Reset reason as defined in xt_swreset_reason_t |
| int xt_get_stack_area_from_task_handle | ( | void * | handle, |
| uint32_t | stack_size, | ||
| void ** | stack_pointer, | ||
| uint32_t * | depth | ||
| ) |
Gets the stack start pointer and depth for specified task.
| uint64_t xt_get_system_timer_us | ( | void | ) |
Gets the system timer in microseconds.
| bool xt_has_bootloader | ( | void | ) |
Check if we have a bootloader available.
| int xt_reset_crash_count | ( | void | ) |
Resets crash count.
| int xt_run_selftest | ( | uint8_t | testcode, |
| xt_test_result_t * | test_result | ||
| ) |
Performs the specified selftest.
| testcode | Test to run as defined in xt_selftest_code_t |
| test_result | Pointer to struct that will hold result of test |
| int xt_selftest_x4_connectivity_get_pin_table | ( | int * | count, |
| const int ** | x4_pins, | ||
| const int ** | mcu_pins | ||
| ) |
Access function for X4Driver to get the pin combinations to test.
| count | Pointer to holder for the number of pins |
| x4_pins | Pointer to holder for the X4 pin array |
| mcu_pins | Pointer to holder for the MCU pin array |
| int xt_selftest_x4_connectivity_mark_faulty_pin | ( | int | pin | ) |
Access function for X4Driver to mark a faulty pin.
| pin | Index of faulty pin |
| int xt_set_reset_reason | ( | xt_swreset_reason_t | reason | ) |
Sets the cause of the coming software reset.
| reason | Reset reason as defined in xt_swreset_reason_t |
| int xt_software_reset | ( | xt_swreset_reason_t | reason | ) |
Triggers a software reset of MCU.
| reason | Reset reason as defined in xt_swreset_reason_t |
| int xt_trigger_crash | ( | xt_swreset_reason_t | crash_reason, |
| const char * | crash_info, | ||
| bool | full_dump | ||
| ) |
Triggers a crashdump and reset of module.
| int xt_use_external_clock | ( | bool | use | ) |
Instructs the firmware whether to use either a crystal oscillator or external clock.
| int xt_use_external_memory | ( | bool | use | ) |
Controls whether or not to use external memory.
Requires a system reset to take effect.
| bool xt_using_external_clock | ( | void | ) |
Checks whether the crystal oscillator or external clock should be used.
| int xt_wait | ( | uint32_t | ms_to_wait | ) |
Causes the calling task to wait and yields to another task.
| ms_to_wait | Milliseconds to wait |
| int xtio_extram_init | ( | void | ) |
Initialize external RAM if available.
| uint32_t xtio_flash_erase | ( | uint32_t | address, |
| uint32_t | size | ||
| ) |
Erases specified flash area.
Must be aligned to erase size.
| uint32_t xtio_flash_get_unique_id | ( | uint8_t * | buffer, |
| uint32_t | max_size, | ||
| uint32_t * | size | ||
| ) |
Returns an ascii string of a cpu unique identifyer.
| uint32_t xtio_flash_store | ( | uint32_t | destination_address, |
| uint8_t * | buffer, | ||
| uint32_t | size | ||
| ) |
Stores data in flash.
Stores data in flash.
| uint32_t xtio_flash_write | ( | uint32_t | address, |
| uint8_t * | data, | ||
| uint32_t | size | ||
| ) |
Writes data to flash.
User must make sure to call erase prior to writing.
| uint32_t xtio_get_block_size | ( | void | ) |
Gets the flash block size.
This is the erase size.
| uint32_t xtio_get_flash_size | ( | void | ) |
Gets the size of the entire flash.
| int xtio_get_level | ( | xtio_pin_id_t | pin_id, |
| xtio_pin_level_t * | level | ||
| ) |
Get level of specified IO pin.
| pin_id | IO Pin ID as defined in xtio_pin_id_t |
| level | Input pin level as defined in xtio_pin_level_t |
| uint32_t xtio_get_page_size | ( | void | ) |
Gets the flash page size.
This is the programming size.
| int xtio_host_send | ( | uint8_t * | buffer, |
| uint32_t | length, | ||
| xtio_host_send_completed_t | callback, | ||
| void * | callback_arg | ||
| ) |
Send a data buffer to host through a serial port - USB or UART.
| buffer | Pointer to buffer with data to send |
| length | Length of data to send |
| callback | Callback when completed |
| callback_arg | Argument for callback |
| int xtio_host_send_debug | ( | uint8_t * | buffer, |
| uint32_t | length, | ||
| xtio_host_send_completed_t | callback, | ||
| void * | callback_arg | ||
| ) |
Send a data buffer to host through debug interface.
| buffer | Pointer to buffer with data to send |
| length | Length of data to send |
| callback | Callback when completed |
| callback_arg | Argument for callback |
| int xtio_irq_register_callback | ( | xtio_pin_id_t | pin_id, |
| void(*)(void) | irq_callback, | ||
| xtio_interrupt_modes | mode | ||
| ) |
Register interrupt callback function.
| pin_id | IO Pin ID as defined in xtio_pin_id_t |
| irq_callback | Interrupt callback function |
| mode | Tripper mode for IRQ |
| int xtio_irq_unregister_callback | ( | xtio_pin_id_t | pin_id | ) |
Unregister interrupt handler.
| pin_id | IO Pin ID as defined in xtio_pin_id_t |
| int xtio_led_init | ( | xtio_led_id_t | led_id, |
| int | mode, | ||
| float | led_state | ||
| ) |
Initiate LED.
Set MCU pin as output and set initial LED state.
| led_id | LED ID as defined in xtio_led_id_t |
| mode | LED mode as defined in xtio_led_mode_t |
| led_state | LED state as defined in xtio_led_state_t |
| int xtio_led_set_state | ( | xtio_pin_id_t | led_id, |
| float | led_state | ||
| ) |
Set LED state.
If LED is set to ON/OFF mode, a value of 0 is OFF and 1 is ON. If PWM mode is implemented, the brightness is controlled by a value between 0.0 and 1.0 - 0.0 is OFF.
| led_id | LED ID as defined in xtio_led_id_t |
| led_state | LED state as defined in xtio_led_state_t |
| int xtio_led_toggle_state | ( | xtio_pin_id_t | led_id | ) |
Toggle LED state.
If LED is set to ON/OFF mode, a value of 0 is OFF and 1 is ON. If LED is in PWM mode, this function will set LED state to either ON or OFF depending on current state.
| led_id | LED ID as defined in xtio_led_id_t |
| int xtio_serial_com_debug_init | ( | xtProtocol * | xt_protocol | ) |
Initiate debug serial communication.
| xt_protocol | Pointer to an xtProtocol object used for parsing communication |
| int xtio_serial_com_init | ( | xtProtocol * | xt_protocol | ) |
Initiate serial communication - USB if available, otherwise UART.
| xt_protocol | Pointer to an xtProtocol object used for parsing communication |
| int xtio_set_direction | ( | xtio_pin_id_t | pin_id, |
| int | direction, | ||
| int | level | ||
| ) |
Set direction of specified IO pin.
| pin_id | IO Pin ID as defined in xtio_pin_id_t |
| direction | Input or output direction as defined in xtio_pin_direction_t |
| level | Output pin level as defined in xtio_pin_level_t |
| int xtio_set_level | ( | xtio_pin_id_t | pin_id, |
| int | level | ||
| ) |
Set the level of specified IO pin.
| pin_id | IO Pin ID as defined in xtio_pin_id_t |
| level | Output pin level as defined in xtio_pin_level_t |
| int xtio_set_pin_mode | ( | xtio_pin_id_t | pin_id, |
| uint32_t | mode | ||
| ) |
Set mode for specified IO pin.
| pin_id | IO Pin ID as defined in xtio_pin_id_t |
| mode | IO mode as defined by macroes |
| int xtio_toggle_level | ( | xtio_pin_id_t | pin_id | ) |
Toggle the level of specified IO pin.
| pin_id | IO Pin ID as defined in xtio_pin_id_t |
| int xtio_uart_set_baudrate | ( | int | baudrate | ) |
Configures UART module with the specified baudrate.
| baudrate | Baudrate for UART communication |


404! Page not found!
Oh no! This page does not exist. Please check your URL or return to the
Home Page
.


Cannot wait to get Canape'd? We are proud to be UBEREATS Partners so you can order your food now
Drool over us on Instagram
Or email us for questions and events
<EMAIL_ADDRESS>Like us on Facebook


{{ticket.lottery.name}}
Draw Date: |
{{ticket.draw.drawTime | date:'d MMM ,y'}} |
Jackpot: |
{{ticket.draw.jackpotPrize | number:0}} {{ticket.lottery.currency}} |
Package |
{{ticket.product.productType}} |
My Numbers
{{letters[$index]}}
{{num}}
{{num}}
Win:{{line.prizeCategory.winningAmount}}€
Results
{{num}}
{{num}}
| Ticket Win: | EUR {{ticket.totalWinningAmount}} |
| My part of ticket: | 1/100 |
| My part of win: | ERU {{ticket.totalWinningAmount}} |


ANALYZE THIS A film review by David N. Butterworth Copyright 1999 David N. Butterworth
*** (out of ****)
With its fondness for slick Armani wardrobes, Caddies with ample trunk space, and Italian family restaurants, the Mob is a prime target for parody. Filmmakers willing to make a mockery of organized crime have a relatively easy task, but it takes a certain skill to rise above the ordinary.
Recently, "Jane Austen's Mafia!" used the gag-a-minute technique (first unleashed on the unsuspecting public in "Airplane!" by the team of Zucker, Abrahams, and Zucker) to lampoon "The Godfather" and its many cinematic wannabes. In "Analyze This," director Harold Ramis ("Groundhog Day") and his screenwriters have found their own secret weapon to ridicule the Mafiosi in Robert De Niro.
De Niro, himself an alumnus of the influential "Godfather" series, has played a mobster on innumerable occasions. Yet with "Analyze This," Hollywood's most prolific of actors proves that, even after all these years, he's still capable of something a little different.
De Niro plays mob boss Paul Vitti and at times in the film you'd swear you were watching a sequel to "Goodfellas": De Niro is unsparing in his portrayal of a ruthless, tough-as-nails gangster, from his dress sense, to his Brooklyn patois, to his everyday behavior (not all of it good). But Vitti has a problem. He's starting to go soft. He worries a lot, and is experiencing these so-called panic attacks. Oh, and he bursts into tears at the slightest provocation. Not something someone in his profession would be wise to admit.
 Earlier that evening psychiatrist Ben Sobol (Billy Crystal) rear-ended Jelly's limo and was quick to provide insurance information.
Vitti meets "da shrink" and realizes, much to Sobol's chagrin, that he's the man to solve all his problems. Soon to be married (to "Friends"' Lisa Kudrow, who fails to add much to the proceedings), Sobol tries valiantly to sever his blossoming relationship with Vitti, but instead succeeds in winning the confidence of the uncompromising mobster. Winning in the sense of:
Vitti: "Do you know who I am?" Sobol: "Yes." Vitti: "No you don't." Sobol: "No I don't." Vitti, sporting De Niro's knowing wink and pointing an appreciative finger at his analyst: "You... You... You're good." Sobol: "Well, I wouldn't..." Vitti (voice raised threateningly): "You're good!"
Crystal *is* good, but he's a comedian first and an actor second, which causes him to exhibit some annoying smirkiness in "serious" scenes. De Niro, on the other hand, is an extraordinarily versatile actor who can nail comedic roles, and that's the significant difference between the two performers. The script does require Crystal's character to stand in for De Niro's during the big meeting of the mobs, thus allowing Crystal to deliver his virtuoso gangsta shtick in the face of Vitti's rival, played with well-dressed menace to society by Chazz Palminteri.
Unfortunately, the film's subject matter necessitates some large doses of violence in and amongst the couch trips, but De Niro and Crystal work so well together that the inevitable whackings seem almost forgivable in context.
A slightly bent cross between "Midnight Run" and "What About Bob?," "Analyze This" is a successful product of casting. The movie overreaches its conventional "*You* try telling him his 50 minutes are up" promotional campaign by delivering two deft, on-the-money performances that bring down the house. Crystal is good, and De Niro is even better.
-- David N. Butterworth<EMAIL_ADDRESS>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


Hiking and Mountain Climbing
Hiking is a long distance walk along a specific trail, most commonly across country. Some hikes can be challenging and last for days including camping, but others can be a long day walk at a steady pace. However, mountain climbing is a challenging sport in which people climb steep rocky slopes to reach the top. Specific equipment is needed in order to mountain climb such as an ice axe and rope depending on the terrain. You physically climb using both your hands and feet onto the rocks or ice and snow to get to the top.


{% extends "base.html" %} {% load blog_categories %} {% block page_content %}
Bootstrap's default wells work great for side widgets! What is a widget anyways...?


Trinity River 2017
The 3rd annual FPGA Fly Fishing Workshop (FFF’17) was down on attendance, only Ken and myself participating from the 19-20th Feb, 2017. This year, it was on the Trinity River, California, fishing for steelhead (sea run rainbow trout). These are a reasonably hard fish to catch, one fish being a good result. Arrived at about 10am at SFO and was met by Ken at the airport.
The FFF’17 conference gift.
After renting a car, we had to plan where to go fishing. We had initially wanted to try the Yuba River and Feather River, but the Yuba got blown out because of 9 inches of rain in a week and also the Oroville Dam was about to explode and had to let water out. There was talk of evacuating some towns.
We decided on the Trinity River if a hotel could be found. Rang the Old Lewiston Inn but there was no answer. Started the drive anyway and went to get fishing licenses at the only place that sold them, a Walmart just outside of Sacramento. By the time we got there, a complete plan had emerged. The Inn called and confirmed a vacancy. This allowed a call to The Fly Shop to arrange a guide (this was all done inside Walmart). Purchased our fishing license and then celebrated with lunch at In and Out.
On the 4 hour drive to Lewiston, the road was flooded to a degree that traffic was backed up for several miles. Fortunately we were using Google Maps, which took us on a detour, saving at least an hour. We did drive through pretty deep water though.
Got to The Fly Shop at 1720, not long before its closing at 1800. Seeing the logo there, Ken realised he knew about it through their catalog that he had at home. The guys there were very helpful and even gave us each a nice poster sized map of the region.
Had dinner at the Lewiston Hotel where they had country AND western music. The ribs were great.
The next morning at 8am, met our guide, Mike Parker and after launching the boat under the bridge new the Old Lewiston and doing a shuttle to the pull out point, we were fishing at 9am. It was cold and raining. At the launch place, a group of local pot growers (really) put in just ahead of us.
Mike mentioned that he went to Rush Creek the previous day and saw about 20 something fish rise to mayflies before the sun came out and killed it.
Our rig was as follows. Amnesia line loop 3 ft to tippet material to a 3ft bobber to split shot then swivel, 18 inches to a pegged pink bead then hook 2 inches behind, to the shank of the hook is 1 ft to a big bead head rubber legged stonefly, 18 inches to 3-4 inches of globug yarn clinch knotted to tippet, then a bare hook, 3 or 4 inches behind.
At 10:30am I hooked a nice brown trout and landed it without too much drama.
At 11am Ken caught his first steelhead on fly and the first fish using a strike indicator.
At lunch, it was cold and raining. We saw another boat and notice a fish rising in front of their boat. Then we noticed a lot of mayflies on the water. We went back up and Ken, after a number of casts, managed to hook the fish on an #18 Adams. Unfortunately, it came off a few seconds later because it swam towards him.
Nothing happened for a few more hours, until 3:30pm when I hooked a fish and lost it a second later. We drifted the same spot about 8 times, Mike calls it “Commitment” and I noticed my split shot had fallen off. The next after after putting a new one on, we hooked a steelhead in the same spot as the previous fish. This one was wrapped tightly with three hooks set in its body and couldn’t swim. We netted the fish but unfortunately I dropped it in the water before we got a good photo. We estimated it at about 28” and 9lb. This is the best photograph.
We retrieved the boat at Steel Bridge.
I went on about the solunar tables but neither of my uneducated boat mates believed me. Following the trip, we found the minor time to be 1040-1240, which was the period when we caught 2 of our 3 fish. Coincidence? I think not.
Throughout the day, we missed plenty of fish, maybe a dozen good strikes, felt the fish on about half a dozen occasions and boated 3. This was actually a good outcome because often, either no touches or a couple of possible hits are all your get when steelhead fishing.
Mike was a great guide, with lots of entertaining stories and we learned a lot from him. He is highly recommended and we hope to have the privilege of fishing with him again in the future. It was a magnificent and memorable day.
The next day, we fished on foot. Had a tough day including Ken turning a 4 piece rod into a 5 piece and some people in a raft stopping and moving right in on our spot. As we were about to give up, we decided to change tactics from nymphs to dry flies. There was a mayfly hatch going on at the time with swallows swooping around to feed on them. Ken saved the day by catching his first fish, a small hatchery steelhead, on a self-tied dry fly (sorry for the fuzzy photo, he dropped it in the water before I could get a better one).
The day after the workshop, in San Jose, Ken literally hit a fork on the road, resulting in a flat tyre. Although a large amount of time was wasted, it is funny that he was disabled by cutlery.


There is a problem
Define the competition milestones. Make sure that dates are in order of milestones, for example the briefing date cannot come after the submission date.
Assessment dates are set after the competition has opened.
Do not complete the 'Submission date' milestone when creating open-ended competitions.


| goog.Disposable | |
| goog.events.EventTarget | goog.Disposable |
| goog.editor.Plugin | goog.events.EventTarget |
| goog.editor.plugins.BasicTextFormatter | goog.editor.Plugin |
|
applyBgColorManually_(bgColor)
Applies a background color to a selection when the browser can't do the job.
NOTE: If you think this is hacky, you should try applying
background color in Opera. It made me cry.
Arguments:
|
code » | |||||
|
applyExecCommandGeckoFixes_(command)
Apply pre-execCommand fixes for Gecko.
Arguments:
|
code » | |||||
|
Apply pre-execCommand fixes for IE.
|
code » | |||||
|
applyExecCommandSafariFixes_(command)
⇒
Apply pre-execCommand fixes for Safari.
|
code » | |||||
|
applySubscriptSuperscriptWorkarounds_(command)
Makes sure that superscript is removed before applying subscript, and vice
versa. Fixes {@link http://buganizer/issue?id=1173491} .
Arguments:
|
code » | |||||
|
beforeInsertListGecko_()
⇒
Work around a Gecko bug that causes inserted lists to forget the current
font. This affects WebKit in the same way and Opera in a slightly different
way, but this workaround only works in Gecko.
WebKit bug: https://bugs.webkit.org/show_bug.cgi?id=19653
Mozilla bug: https://bugzilla.mozilla.org/show_bug.cgi?id=439966
Opera bug: https://bugs.opera.com/show_bug.cgi?id=340392
TODO: work around this issue in WebKit and Opera as well.
Returns:
Whether the workaround was applied.
|
code » | |||||
|
cleanContentsDom(fieldCopy)
No description.
Arguments:
|
code » | |||||
|
cleanContentsHtml(html)
No description.
Arguments:
|
code » | |||||
|
cleanUpSafariHeadings_()
Fix a ridiculous Safari bug: the first letters of new headings
somehow retain their original font size and weight if multiple lines are
selected during the execCommand that turns them into headings.
The solution is to strip these styles which are normally stripped when
making things headings anyway.
|
code » | |||||
|
convertBreaksToDivs_()
⇒
Convert BRs in the selection to divs.
This is only intended to be used in IE and Opera.
Returns:
Whether any BR's were converted.
|
code » | |||||
|
execCommandHelper_(command, opt_value, opt_preserveDir, opt_styleWithCss)
Perform an execCommand on the active document.
Arguments:
|
code » | |||||
|
execCommandInternal(command, var_args)
⇒
Execute a user-initiated command.
|
code » | |||||
|
fixIELists_()
Changing an OL to a UL (or the other way around) will fail if the list
has a type attribute (such as "UL type=disc" becoming "OL type=disc", which
is visually identical). Most browsers will remove the type attribute
automatically, but IE doesn't. This does it manually.
|
code » | |||||
|
fixSafariLists_()
Prevent Safari from making each list item be "1" when converting from
unordered to ordered lists.
(see https://bugs.webkit.org/show_bug.cgi?id=19539 )
|
code » | |||||
|
getDocument_()
⇒
No description.
Returns:
The document object associated with the currently active field.
|
code » | |||||
|
getRange_()
⇒
No description.
Returns:
The closure range object that wraps the current user selection.
|
code » | |||||
|
getTrogClassId()
No description.
|
code » | |||||
|
handleKeyboardShortcut(e, key, isModifierPressed)
No description.
Arguments:
|
code » | |||||
|
invalidateInlineCss_()
Workaround for Opera bug CORE-23903. Opera sometimes fails to invalidate
serialized CSS or innerHTML for the DOM after certain execCommands when
styleWithCSS is on. Toggling an inline style on the elements fixes it.
TODO: Opera says they're going to prioritize a fix for this. Remove
this code once that fix is released.
|
code » | |||||
|
isJustification_(command)
⇒
Returns true if the current justification matches the justification
command for the entire selection.
|
code » | |||||
|
isNodeInState_(nodeName)
⇒
Returns true if a selection contained in the node should set the appropriate
toolbar state for the given nodeName, e.g. if the node is contained in a
strong element and nodeName is "strong", then it will return true.
|
code » | |||||
|
isSupportedCommand(command)
⇒
Whether the string corresponds to a command this plugin handles.
|
code » | |||||
|
justify_(command)
Justify the text in the selection.
Arguments:
|
code » | |||||
|
prepareContentsHtml(html)
No description.
Arguments:
|
code » | |||||
|
queryCommandHelper_(isGetQueryCommandState, queryObject, command, opt_styleWithCss)
⇒
Helper function to perform queryCommand(Value|State).
Arguments:
|
code » | |||||
|
queryCommandStateInternal_(queryObject, command, opt_styleWithCss)
⇒
Wrapper for browser's queryCommandState.
|
code » | |||||
|
Gets the command value.
|
code » | |||||
|
Wrapper for browser's queryCommandValue.
|
code » | |||||
|
removeFontSizeFromStyleAttrs_()
Removes inline font-size styles from elements fully contained in the
selection, so the font tags produced by execCommand work properly.
See 1286408.
|
code » |
|
activeOnUneditableFields()
⇒
No description.
Returns:
If true, field will not disable the command when the field becomes uneditable.
|
code » | ||
|
disable(fieldObject)
Disables this plugin for the specified, registered field object.
Arguments:
|
code » | ||
|
disposeInternal()
No description.
|
code » | ||
|
enable(fieldObject)
Enables this plugin for the specified, registered field object. A field
object should only be enabled when it is loaded.
Arguments:
|
code » | ||
|
execCommand(command, var_args)
⇒
Handles execCommand. This default implementation handles dispatching
BEFORECHANGE, CHANGE, and SELECTIONCHANGE events, and calls
execCommandInternal to perform the actual command. Plugins that want to
do their own event dispatching should override execCommand, otherwise
it is preferred to only override execCommandInternal.
This version of execCommand will only work for single field plugins.
Multi-field plugins must override execCommand.
|
code » | ||
|
getFieldDomHelper()
⇒
No description.
Returns:
The dom helper object associated with the currently active field.
|
code » | ||
|
isAutoDispose()
⇒
No description.
Returns:
Whether or not this plugin should automatically be disposed when it's registered field is disposed.
|
code » | ||
|
isEnabled(fieldObject)
⇒
Returns whether this plugin is enabled for the field object.
Arguments:
Returns:
Whether this plugin is enabled for the field object.
|
code » | ||
|
isSilentCommand()
⇒
No description.
Returns:
If true, field will not dispatch change events for commands of this type. This is useful for "seamless" plugins like dialogs and lorem ipsum.
|
code » | ||
|
isSupportedCommand(command)
⇒
Whether the string corresponds to a command this plugin handles.
|
code » | ||
|
registerFieldObject(fieldObject)
Registers the field object for use with this plugin.
Arguments:
|
code » | ||
|
setAutoDispose(autoDispose)
Set if this plugin should automatically be disposed when the registered
field is disposed.
Arguments:
|
code » | ||
|
unregisterFieldObject(fieldObj)
Unregisters and disables this plugin for the current field object.
Arguments:
|
code » |
|
addEventListener(type, handler, opt_capture, opt_handlerScope)
Adds an event listener to the event target. The same handler can only be
added once per the type. Even if you add the same handler multiple times
using the same type then it will only be called once when the event is
dispatched.
Supported for legacy but use goog.events.listen(src, type, handler) instead.
Arguments:
|
code » | |||||
|
dispatchEvent(e)
⇒
Dispatches an event (or event like object) and calls all listeners
listening for events of this type. The type of the event is decided by the
type property on the event object.
If any of the listeners returns false OR calls preventDefault then this
function will return false. If one of the capture listeners calls
stopPropagation, then the bubble listeners won't fire.
Arguments:
Returns:
If anyone called preventDefault on the event object (or if any of the handlers returns false this will also return false.
|
code » | |||||
|
disposeInternal()
Unattach listeners from this object. Classes that extend EventTarget may
need to override this method in order to remove references to DOM Elements
and additional listeners, it should be something like this:
MyClass.prototype.disposeInternal = function() { MyClass.superClass_.disposeInternal.call(this); // Dispose logic for MyClass }; |
code » | |||||
|
getParentEventTarget()
⇒
Returns the parent of this event target to use for bubbling.
Returns:
The parent EventTarget or null if there is no parent.
|
code » | |||||
|
removeEventListener(type, handler, opt_capture, opt_handlerScope)
Removes an event listener from the event target. The handler must be the
same object as the one added. If the handler has not been added then
nothing is done.
Arguments:
|
code » | |||||
|
setParentEventTarget(parent)
Sets the parent of this event target to use for bubbling.
Arguments:
|
code » |
|
dispose()
No description.
|
code » | |
|
disposeInternal()
Deletes or nulls out any references to COM objects, DOM nodes, or other
disposable objects. Classes that extend
goog.Disposable should
override this method. For example:
mypackage.MyClass = function() { goog.Disposable.call(this); // Constructor logic specific to MyClass. ... }; goog.inherits(mypackage.MyClass, goog.Disposable); mypackage.MyClass.prototype.disposeInternal = function() { mypackage.MyClass.superClass_.disposeInternal.call(this); // Dispose logic specific to MyClass. ... }; |
code » | |
|
getDisposed()
⇒
No description.
Returns:
Whether the object has been disposed of.
|
code » | |
|
isDisposed()
⇒
No description.
Returns:
Whether the object has been disposed of.
|
code » |
|
logger
:
Logging object.
|
Code » |
|
autoDispose_
:
Indicates if this plugin should be automatically disposed when the
registered field is disposed. This should be changed to false for
plugins used as multi-field plugins.
|
Code » | |
|
fieldObject
:
The field object this plugin is attached to.
|
Code » | |
|
logger
:
The logger for this plugin.
|
Code » |
|
goog.editor.plugins.BasicTextFormatter.BR_REGEXP_()
Regular expression to match BRs in HTML. Saves the BRs' attributes in $1 for
use with replace(). In non-IE browsers, does not match BRs adjacent to an
opening or closing DIV or P tag, since nonrendered BR elements can occur at
the end of block level containers in those browsers' editors.
|
code » | |||
|
goog.editor.plugins.BasicTextFormatter.convertContainerToTextAlign_(node)
Converts the block element containing the given node to use CSS text-align
instead of the align property.
Arguments:
|
code » | |||
|
goog.editor.plugins.BasicTextFormatter.convertParagraphToDiv_(paragraph, opt_convertBrs)
Convert the given paragraph to being a div. This clobbers the
passed-in node!
This is only intended to be used in IE and Opera.
Arguments:
|
code » | |||
|
If this is a goog.editor.plugins.BasicTextFormatter.COMMAND,
convert it to something that we can pass into execCommand,
queryCommandState, etc.
TODO: Consider doing away with the + and converter completely.
|
code » | |||
|
Determines the justification for a given block-level element.
|
code » |


Harriers Beaver/Elk Ultramarathons
Victoria BC/CAN
Website: pih.bc.ca
Race Winners- 50
mile
(28 runnings)
12
May 2012 8:50:08 6:46:10 07 May
2011 5:44:00 8:24:19 01 May
2010 7:10:34 7:39:13 02 May
2009
7:03:13 6:41:15 03 May
2008
8:24:19
8:09:31 05 May
2007
7:23:53
8:58:46
06 May
2006
7:49:13
8:20:51
07 May
2005
6:50:42
8:27:08
01 May
2004
7:22:07
9:42:15
03 May
2003
7:19:10
7:13:09
04 May
2002
6:58:36
05 May
2001
7:40:23
8:46:29
06 May
2000
7:41:26
8:04:44
01 May
1999
8:36:24
02 May
1998
8:06:31
10:10:24
03 May 1997
6:42:03
8:07:55
1996
6:43:38
7:34:04
06 May
1995
6:08:50
8:36:20
1994
---
---
01 May
1993
6:36:22
7:15:57
02 May
1992
6:22:17
6:48:36
1991
6:36:55
8:52:19
1990
6:16:23
8:27:42
1989
6:35:18
8:37:50
1988
6:35:14
8:43:30
1987
---
1986
6:09:30
Notes: 1986 was the inaugural year.
09 May
2015
6:20:04
Darren Seaman (BC/CAN)
9:48:32
Melanie Williams (BC/CAN)
10
May 2014
7:44:33
Steven Johns-3 (34)
6:58:28
Alicia Woodside (25,BC/CAN)
11
May 2013
8:19:46
Steven Johns-2 (33)
9:24:12
Laura Heaney (50,BC/CAN)
Dave Small (42,BC)+Steven Johns
(32,BC/CAN)
Stacey Cleveland (33,BC/CAN)
Adam Campbell (32,BC/CAN)
Audrey Stibbe (48,BC/CAN)
Simon Wedel (32,BC/CAN)
Jude Ultra (26,BC/CAN)
Joe Huising (36,AB/CAN)
Denise McHale (35,YK/CAN)
Glenn Pace (43,BC/CAN)
Carolyn Hutniak-2 (43)
Randy Rankin (41,BC/CAN)
Lori Herron (47,BC/CAN)
Tim Wiens (45,BC/CAN)
Carolyn Hutniak (41,AB/CAN)
Bob Wall (38,BC/CAN) (nc)
Doris Dubicki (44,BC/CAN) (nc)
David Walker (37,NY/USA)
Sandy Thompson (38,BC/CAN)
Logan Beaulieu (32,BC/CAN) (nc)
Alana Prociuk (36,BC/CAN) (nc)
Carlos Castillo-3 (50) (nc)
.
Carlos Castillo-2 (49)
Gwen Munday (41,BC/CAN)
Carlos Castillo (48,BC/CAN)
Janet Green-3 (46)
Rob Smith (40,BC/CAN)
.
Al Howie (52,BC/CAN)
Janice Leroy (44,BC/CAN)
Jack Miller (52,BC/CAN)
Janet Green-2 (43)
Ferg Hawke
Janet Green (42,BC/CAN)
Peter Holubar
Heather Wilson
not held
not held
Peter Wells
Nola Patterson
Bob Reid-3
Lorraine Lees-McGeough
John Coffey (OR/USA)
Margaret Smith
Bob Reid-2
Edith Bogenhuber-2
Kevin Pazaski
Edith Bogenhuber
Bob Reid
Marion Kirby
not held
Steve Barr
(nc) => national championship
Most Wins (1986-date)
Men
3
Carlos Castillo (BC/CAN)
2000-02
.
Bob Reid
1988,1990,1992
Steven
Johns (BC/CAN)
2012-14
Women
3
Janet Green (BC/CAN)
1996-97,2000
Prize Money
No information on prize money has been received for this race.
Race Time Bias
The race time bias is not calculated for distances beyond 45 km.
Competitive Level
Insufficient data to calculate the competitive level.
Quality Performances
Men No men under 5:06
Women No women under 6:10
Finishers
Year Men Women M+F 2015 7 1 8 2014 3 4 7 2013 6 2 8 2012 2 3 5 2011 5 4 9 2010 4 3 7 2009 5 2 7 2008 3 2 5 2007 5 1 6 2006 5 2 7 2005 7 3 10 2004 4 1 5 2003 5 4 9 2002 5 0 5 2001 8 1 9 2000 3 2 5 1999 3 0 3 1998 4 2 6 1997 5 6 11 Sums 89 43 132 M/F 2.07
Race Winners- 100
km
(22 runnings)
12
May 2012 9:51:24 11:13:38 07 May
2011 7:28:25 10:38:40 01 May
2010 7:43:04 7:36:40 02 May
2009
7:50:47 03 May
2008
7:43:03
05 May
2007
8:22:36
12:14:41
06 May
2006
8:14:34
07 May
2005
8:17:02
8:37:51
01 May
2004
8:06:17
8:56:40
03 May
2003
8:00:45
9:45:59
04 May
2002
7:12:10
8:46:52
05 May
2001
7:48:28
12:32:13
06 May
2000
7:19:51
9:32:37
01 May
1999
10:27:43
02 May
1998
6:46:09
10:55:32
03 May 1997
7:16:43
11:27:48
1996
7:57:34
9:33:02
06 May
1995
7:55:24
11:04:12
1994
---
---
01 May
1993
8:55:37
10:26:02
Notes: 1993 was the inaugural year.
09 May
2015
8:08:55
Adam Kahtava (AB/CAN)
8:29:32
Arielle Fitzgerald (ON/CAN)
10
May 2014
8:01:50
Oleg Tabelev (AB/CAN)
8:50:34
Alissa St Laurent (AB/CAN)
11
May 2013
7:51:12
Dave Proctor (32,AB/CAN)
10:59:05
Bonnie Reszel-2 (45)
Logan Beaulieu (40,AB/CAN)
Bonnie Reszel (44,BC/CAN)
Jason Loutitt (37,AB/CAN)
Suzanne Johnson (33,BC/CAN)
Hassan
Lotfi-Pour-2 (41)
Ellie Greenwood (31,SCO)
Hassan Lotfi-Pour (40,BC/CAN)
Jack Cook (41,AB/CAN)
Darren Froese-3 (47)
Barb Owen (49,BC/CAN)
Darren Froese-2 (46) (nc)
.
Darren Froese (45,BC/CAN)
Wendy Montgomery-2 (38)
Andy Nicol-2 (44)
Wendy Montgomery (37,BC/CAN)
Andy Nicol (43,BC/CAN) (nc)
Paula Burchat (32,ON/CAN) (nc)
Victor Hickey-3 (44) (nc)
Alexandra Watson (39,BC/CAN) (nc)
Victor Hickey-2 (43)
Suzanne Farla (47,ON/CAN)
Victor Hickey (42,NB/CAN)
Kirsten Bjornson (36,AB/CAN)
Gal Truong (41,AB/CAN)
.
Andrew Jones (36,CAN) (nc)
Caroline Nestor (29,ON/CAN) (nc)
Stefan Fekner (44,AB/CAN) (nc)
Carol Peters (47,BC/CAN) (nc)
Steve Royer-2
Tara Tykalovich
Steve Royer
Susan Sommerfield
not held
not held
Ean Jackson
Lorraine Lees-McGeough
Most Wins
(1993-date)
Men
3
Victor Hickey (NB/CAN)
2000-02
.
Darren Froese (BC/CAN)
2005-07
Women
2
Wendy Montgomery (BC/CAN)
2004-05
Bonnie Reszel (BC/CAN)
2012-13
Prize Money
No information on prize money has been received for this race.
Race Time Bias
The race time bias is not calculated for distances beyond 45 km.
Competitive Level
Insufficient data to calculate the competitive level.
Quality Performances
Men No men under 6:38
Women No women under 8:05
Finishers
Year Men Women M+F 2015 9 1 10 2014 5 3 8 2013 10 2 12 2012 2 2 4 2011 6 1 7 2010 3 4 7 2009 4 4 2008 7 7 2007 4 2 6 2006 9 9 2005 2 2 4 2004 1 1 2 2003 6 2 8 2002 9 6 15 2001 6 1 7 2000 17 6 23 1999 3 3 1998 5 2 7 1997 8 1 9 Sums 116 36 152 M/F 3.22
Race Winners- 50 kms
(23 runnings)
12
May 2012 3:25:59 4:17:07 07 May
2011 3:51:37 4:13:12 01 May
2010 3:37:39 4:35:58 02 May
2009
3:38:03 4:56:51 03 May
2008
3:46:47
4:29:37
05 May
2007
3:15:44
4:34:09
06 May
2006
3:33:27
5:18:10
07 May
2005
3:27:38
4:08:28
01 May
2004
3:22:06
4:45:40
03 May
2003
3:19:18
4:36:30
04 May
2002
3:25:18
4:10:27
05 May
2001
3:59:56
4:05:57
06 May
2000
3:26:10
3:34:18
01 May
1999
3:13:21
4:50:31
02 May
1998
3:19:02
5:13:31
03 May 1997
3:28:32
4:19:23
1996
3:41:27
4:08:29
06 May 1995
3:36:17
4:21:22
1994
---
---
01 May
1993
3:41:11
4:19:10
02 May
1992
3:28:15
Notes: 1992 was the inaugural year.
09 May
2015
3:57:37
Rafael Albert (BC/CAN)
3:53:18
Alicia Woodside (BC/CAN)
10
May 2014
3:41:41
Adrian Walton (43,BC/CAN)
4:20:57
Danielle Mennie (29,BC/CAN)
11
May 2013
4:04:57
David Cull (50,WA/USA)
3:55:41
Lise Wessels (39,BC/CAN)
Shane Ruljancich (35,BC/CAN) (nc)
Robyn Standring (28,BC/CAN) (nc)
Darren Froese-2
(51)
Suzy VanDyck (33,BC/CAN)
Darren Froese (50,BC/CAN)
Audrey Stibbe (47,BC/CAN)
Walter Cantwell (41,BC/CAN)
Rainy Kent-3 (51)
Rob Mackay (38,BC/CAN)
Rainy Kent-2 (50)
Nik Southwell (32,BC/CAN) (nc)
Sylvia Corbett (37,AB/CAN)
(nc)
Bob Fontaine (37,BC/CAN)
Ann Taylor (46,BC/CAN)
Keith Wakelin (46,BC/CAN)
Sandra Jensen (31,BC/CAN)
Brendan Brazier-2 (29)
Shelley Hanson (45,BC/CAN)
Brendan Brazier (28,BC/CAN) (nc)
Janet Green (49,BC/CAN) (nc)
Brian Bjornson (46,BC/CAN) (nc)
Rainy Kent (44,BC/CAN) (nc)
John Edwards (53,BC/CAN)
Diane Cizek (41,ON/CAN)
Jim Swadling (53,BC/CAN)
Lori Bowden (31,BC/CAN)
Niels Maden (43,BC/CAN)
Jane Toyne (52,BC/CAN)
Andy Mehl-4 (45)
Narindar Gill (38,BC/CAN)
Andy Mehl-3 (44)
Shelagh Germyn-2 (39)
Peter Holubar
Shelagh Germyn (38,BC/CAN)
Frank Falvo
Rhonda Callender
not held
not held
Andy Mehl-2 (40)
Felicidy Wells
Andy Mehl (39,BC/CAN)
.
Most Wins
(1992-date)
Men
4
Andy Mehl (BC/CAN)
1992-93,1997-98
Women
2
Shelagh Germyn (BC/CAN)
1996-97
Rainy Kent (BC/CAN)
2002,2008
Prize Money
No information on prize money has been received for this race.
Race Time Bias
The race time bias is not calculated for distances beyond 45 km.
Competitive Level
Insufficient data to calculate the competitive level.
Quality Performances
Men No men under 2:20 Women No women under 2:50
Finishers
Year Men Women M+F 2015 11 10 21 2014 18 16 34 2013 12 11 23 2012 27 10 37 2011 15 15 30 2010 13 5 18 2009 13 6 19 2008 16 9 25 2007 14 17 31 2006 11 4 15 2005 11 6 17 2004 18 12 30 2003 14 5 19 2002 11 7 18 2001 11 5 16 2000 9 8 17 1999 11 3 14 1998 7 6 13 1997 10 5 15 Sums 252 160 412 M/F 1.58
Last Updated on 21 Jan 2016
Contributors: Juraj Gasparovic (50), Maurice Wilson (8), Klaas Loonstra (10)


towards a more elegant fizzbuzz
This morning I saw this tweet:
blogged: Clojure Kata #1 � Fizz Buzz https://t.co/kdZvqjzkRa
— JanVanRyswyck (@JanVanRyswyck) 19 december 2013
As Jan is learning Clojure, he was exploring the fizzbuzz code kata.
I have seen this kata being performed in a lot of languages, and the functional solutions I have seen always feel a bit imperative, so I tried to make a more elegant - functional - version in a language I am currently learning: Haskell; this is the result:
I like it; but what do you think? Please comment.
Update
So, after tweeting about this post, I received this reply:
@ToJans @JanVanRyswyck FIzzBuzz in a Tweet #kotlin https://t.co/pvFFrXD6TD :)
— Hadi Hariri (@hhariri) 20 december 2013
Which is apparently about this:
(1..100).forEach{println(when{it%15<1->"FizzBuzz";it%3<1->"Fizz";it%5<1->"Buzz";else->it})}?#Kotlin
— Ziphil :: Antithesis (@Ziphil_) 17 december 2013
So I decided to sacrifice readability, and see how far I could get:
zipWith max(map show[1..100])(zipWith(++)(cycle["","","fizz"])(cycle["","","","","buzz"]))
#FizzBuzz91CharsHaskell
@hhariri @JanVanRyswyck
— Tom Janssens (@ToJans) 20 december 2013
91 Characters! Not bad, but utterly unreadable… So, while it is a good exercise to try to reduce the code to an absolute minimum, this should only be for learning purposes…


The Forget task will execute a set of tasks sequentially as a background
thread. Once the thread is started, control is returned to the calling
target. This is useful in being able to kick off a background server process,
such as a webserver. This allows you to not have to use the parallel
task to start server processes.
| Attribute | Description | Required |
|---|---|---|
| daemon | Should the created thread be a daemon thread. That is, should the ANT program be allowed to exit if the thread is still running. | No. Defaults to true. |
<forget>
<exec executeable="${env.CATALINA_HOME}/bin/catalina.bat}">
<arg line="start -security" />
</exec>
</forget>
<waitfor maxwait="1" maxwaitunit="minute"
checkevery="100" checkeveryunit="millisecond">
<http url="http://localhost:8080" />
</waitfor>
Would start the Tomcat webserver as a background process, then waiting
for the server to become available.
Copyright © 2002-2003 Ant-Contrib Project. All rights Reserved.


One of the great modern marvels of technology is the ability to connect with large numbers of people across the globe – instantly. With one click, you can post pictures, updates, your location…just about anything.
Other tips for using Twitter and avoiding the pitfalls of a scam are:
- Use a strong password
- Always make sure you're on Twitter.com before giving login information
How can Twitter users avoid falling for a scam?
Twitter users should ignore any direct messages or tweets that promise that by simply clicking on a
link they will receive thousands of followers. Any "get followers quick" links could be a way to steal
money or private information by installing malicious software onto your device or redirecting you to an
illegitimate website that may ask you for your personal or payment information.
Social networking can keep us connected to family and friends and help us stay in touch with news in real time. However, today’s cyber criminals can view social networking sites as rich and valuable sources of personal data. Using crafty schemes, they can loot your private information piece by piece and gather enough data to raid your identity and online accounts.
uismod purus vel nisi facilisis eu semper tellus varius uismod purus vel nisi facilisis eu semper tellus varius?
Online Shopping
- Always Keep an Eye on Your Money -
The holiday season and the New Year are a magical time—a time for thinking of others, a time for gathering with friends, and a time for taking stock of all the good things in life. In other words, it’s a perfect time for a fraudster to pounce while our guard is down, especially when shopping online.
- Secure is the cure.
Learn how to tell if the site you are shopping is secure. Only shop sites that start with “https”. That “s” stands for “secure.” It means your personal data is protected. There are other security clues, too, like a padlock icon next to the address. - Keep it personal.
Never send personal or financial information by email or to sites you don’t know and trust.
Other tips for using Twitter and avoiding the pitfalls of a scam are:
- Inoculate to insulate.Keep anti-virus and anti-spyware software up to date. Never click a pop-up window or follow links in questionable emails. Create strong passwords.
- Free, but at a price. Free trials are rarely free. Understand all terms and conditions. Note and understand suspicious pre-checked boxes before you order online.
When Ben Franklin famously wrote, "An ounce of prevention is worth a pound of cure," I'm pretty sure he wasn't warning his readers about the perils of cyber crime. But in today's world of phishing, shoulder-surfing and computer spyware, his advice hits home.
These alerts are triggered when the transaction meets certain criteria you select; for example, purchases over a certain dollar amount. In addition, banks generally will contact you if they spot unusual activity, such as multiple large purchases made within a short time frame or from different geographic areas.
uismod purus vel nisi facilisis eu semper tellus varius uismod purus vel nisi facilisis eu semper tellus varius?
Phishing
- Track Your Account Activity -
Their names may sound funny but their financial consequences are not: "Phishing," "smishing" and "vishing" are just a few of the ways criminals can gain access to your financial or personal information via your computer or smartphone.
Email phishing:
This is where you receive an email, purportedly from a trusted source, that asks you to supply or confirm account information, log-in IDs or passwords. These imposters are attempting to trick you into divulging your information, often by trying to create a sense of urgency and panic; for example, saying your account will be frozen if you don't respond.
SMiShing (for "Short Message Service" phishing):
Like phishing, only it uses text messages sent to your cell phone. Even if you don't click on any links or share information, just by responding you're verifying that your phone number is valid, which means it could be sold to others who will try to trick you into their own scams.
Don’t make a scammer’s vish come true. Learn how vishing works and what to do any time a caller asks you for personal data such as social security numbers, dates of birth, credit card numbers, and more. Never give personal information to someone who calls you. company will never ask for your personal information, though we may call you to report suspicious activity on your account. Get an incident number, and then call back the number on your credit card, not the number the caller gives you. A few simple rules are all you need to beat vishing.
uismod purus vel nisi facilisis eu semper tellus varius uismod purus vel nisi facilisis eu semper tellus varius?
ID Theft
- Call Someone, I've Lost Something -
If thieves obtain your driver’s license or Social Security number, they can pretend to be you and potentially open bank accounts, order credit cards, write bad checks and obtain loans. They can also ruin your credit score and make it hard to obtain credit in the future. Identity thieves use a variety of tactics, even “dumpster diving” through your trash for personal information.
Be safe online.
Use anti-virus and anti-spyware software and a firewall on your computer and
keep them updated. When you provide financial or other sensitive information online, the address
should change from “http” to “https” or “shttp.” A symbol such as a lock that closes may also
indicate that the transmission is secure.
To help stop identity theft:
- Monitor card and account statements frequently
- Report missing cards immediately
- Cancel all inactive accounts
If you receive such a notice, don't ignore it. Complete an IRS Identity Theft Affidavit and return it with a copy of the notice to the address provided on the notice. If you did not receive a notice but believe you may be at risk, the form contains separate submission instructions. You can also contact the IRS Identity Protection Specialized Unit at<PHONE_NUMBER>.
uismod purus vel nisi facilisis eu semper tellus varius uismod purus vel nisi facilisis eu semper tellus varius?
Zero Liability
- I Can What ?-
Your peace of mind and protection are paramount to company. company's Zero Liability policy is our guarantee that you won’t be held responsible for fraudulent charges made with your card or account information.1
Shop worry-free at millions of merchants.
You can use your card to shop with confidence. That's because company protects your card information 24/7 and you won’t be held liable for unauthorized purchases made with your card or account information.
Review your monthly account statement and report fraudulent charges.
Take the time to look at your monthly company statement, and let your financial institution know if anything appears incorrect so swift action to regain control of your account and to resolve the situation for you can occur.
How can Twitter users avoid falling for a scam?
Twitter users should ignore any direct messages or tweets that promise that by simply clicking on a
link they will receive thousands of followers. Any "get followers quick" links could be a way to steal
money or private information by installing malicious software onto your device or redirecting you to an
illegitimate website that may ask you for your personal or payment information.
Take the time to look at your monthly company statement, and let your financial institution know if anything appears incorrect so swift action to regain control of your account and to resolve the situation for you can occur.
uismod purus vel nisi facilisis eu semper tellus varius uismod purus vel nisi facilisis eu semper tellus varius?


@Deprecated
public class BioFingerprintResultCode
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
static int |
API_LEVEL_23
Deprecated.
This result code is used when API level is less than 23
|
static int |
BIOFINGERPRINTAUTHENTICATIONCALLBACK_NULL_REFERENCE
Deprecated.
This result code is used when callbacks object is not instantiated
|
static int |
BIOFINGERPRINTAUTHMODE_NOT_ACTIVATED
Deprecated.
This result code is used when biofingerprint authentication mode is not activated
|
static int |
BIOFP_NATIVE_FAILURE
Deprecated.
|
static int |
DEACTIVATE_ALL_TOKENS_ERROR
Deprecated.
This result code is used in case silent tokens deactivation failed.
|
static int |
FAILED_INIT_ASYM_CIPHER
Deprecated.
This result code is used in case of an attempt using incorrect crypto algorithm
|
static int |
ILLEGALBLOCKSIZE_EXCEPTION
Deprecated.
This result code is used when the length of data provided to a block cipher is incorrect, i.e., does not match the block size of the cipher.
|
static int |
INVALID_ALGORITHM_PARAMETER_EXCEPTION
Deprecated.
This result code is used in case of an attempt using incorrect crypto algorithm
|
static int |
INVALID_KEY_EXCEPTION
Deprecated.
This result code is used for invalid keys (invalid encoding, wrong length, uninitialized, etc).
|
static int |
INVALID_KEY_SPEC_EXCEPTION
Deprecated.
This result code is used when key specifications are invalid.
|
static int |
NO_CACHE
Deprecated.
This result code is used in case cache was not found or was not created yet.
|
static int |
NO_FINGERPRINT_SENSOR
Deprecated.
This result code is used when device doesn't has a fingerprint sensor
|
static int |
NO_FINGERPRINTS_REGISTERED
Deprecated.
This result code is used when no fingerprints are enrolled
|
static int |
NO_KEY_EXCEPTION
Deprecated.
This result code is used when the key does not exist
|
static int |
NO_TOKEN
Deprecated.
This result code is used when no token exists
|
static int |
NO_UUID
Deprecated.
This result code is used when no UUID was supplied.
|
static int |
NO_UUID_IN_DB
Deprecated.
This result code is used when data for specific token was not found in database.
|
static int |
NOT_IMPLEMENTED
Deprecated.
This result code is used when the object or method is not implemented
|
static int |
PERMANENTLY_KEY_INVALIDATED_EXCEPTION
Deprecated.
This result code is used to indicate that the key can no longer be used because it has been permanently invalidated.
|
static int |
SUCCESS
Deprecated.
This result code is used in case of success code
|
static int |
UNEXPECTED_NULL_REFERENCE
Deprecated.
This result code is used in case of null reference to object
|
public static final int SUCCESS
public static final int API_LEVEL_23
public static final int NO_FINGERPRINT_SENSOR
public static final int NO_FINGERPRINTS_REGISTERED
public static final int UNEXPECTED_NULL_REFERENCE
public static final int INVALID_KEY_EXCEPTION
public static final int INVALID_KEY_SPEC_EXCEPTION
public static final int INVALID_ALGORITHM_PARAMETER_EXCEPTION
public static final int NOT_IMPLEMENTED
public static final int NO_KEY_EXCEPTION
public static final int BIOFINGERPRINTAUTHENTICATIONCALLBACK_NULL_REFERENCE
public static final int BIOFINGERPRINTAUTHMODE_NOT_ACTIVATED
public static final int NO_TOKEN
public static final int ILLEGALBLOCKSIZE_EXCEPTION
public static final int NO_UUID
public static final int NO_UUID_IN_DB
public static final int NO_CACHE
public static final int PERMANENTLY_KEY_INVALIDATED_EXCEPTION
public static final int DEACTIVATE_ALL_TOKENS_ERROR
public static final int BIOFP_NATIVE_FAILURE
public static final int FAILED_INIT_ASYM_CIPHER


Test
ify
COVID-19 Test Scheduler
Patients
Times
Appointment Info
SELECT DATE:
Create New Appointment
Assign Patient
Create a New Appointment
Date
Start
End
TPA (Test Per Appointment)
Save


Getting your location...
Warning! Accuracy is meters.Try refresh button and wait until device can get a better fix.


A good web page starts with a valid code base telling the browser what syntax the site is coded, in and what character set the content is written in.
The page title
is a required tag. It's importance should not be over looked as it tells the user where they are. It should be different from where they have been and where they might go next.
The content in the title tag is also the most heavily waited content tag when it comes to search engine results. A well-written concise title tag can bring your page rankings up.


Hi! I'm Spencer Schneidenbach, and I'm running for the .NET Foundation Board of Directors.
I'm a community leader with proven experience advocating for both developers and community leaders in the .NET ecosystem. It's our .NET, so let me represent you.
Questions? My door is always open:
- Hit me up on Twitter @schneidenbach!
- Wanna talk? Schedule some time to chat!
- Email me at<EMAIL_ADDRESS>Why I'm Running
My name is Spencer Schneidenbach and my interest in the .NET Foundation Board of Directors is centered around advocacy and outreach. As a community leader, my goal is to represent the interests of community leaders around the globe, including but not limited to: user group leaders, conference organizers, other Microsoft MVPs, bloggers, and conferences speakers.
I have proven experience in building relationships with the .NET community, as well as communities outside of our own. I want to leverage those relationships to advance the cause of the .NET ecosystem. Further, I want to expand that by representing .NET in communities where it may not normally be first-choice and/or still has a bad rap from the "old" Microsoft days 🙂 By nurturing adoption of .NET, we can ensure a healthy, vibrant, and resilient community.
I also have an interest in representing corporate and/or so-called "dark matter " developers. Because I frequently attend and speak at conferences around the world, I get the pleasure of interacting with folks who normally do not get a voice at the table. I've traded tweets and emails with many of these folks, with the goal of making .NET more accessible for developers worldwide.
By earning a seat on the .NET Foundation board of directors, I want to be a clear and focused voice to and for the .NET community, while continuing to teach the larger developer community all of the benefits of using .NET.
I'm also a big believer in brevity, which is why I tried to keep my campaign statement short. 😃
A little more about me
I'm a two-time Microsoft MVP in Developer Technologies from the United States and currently the Chief Architect at Ryvit, a startup centered around integration technologies for the construction industry. I'm also a member of the ASPInsiders and a frequent speaker at international events, which has given me the opportunity to interact with developers and community leaders the world over.
My Relevant Experience (and contributions to .NET!)
- Two-time Microsoft MVP in Developer Technologies, specializing in ASP.NET and C#. Member of the ASPInsiders.
- Content and Community Outreach Chair for the dev up conference in 2017 and 2018. Responsible for interacting with the speakers, user groups, and advocating for the event. Created and managed a budget, participated in regular meetings, and helped steer the attendee experience.
- Teacher and speaker at events worldwide, with several videos on YouTube of my conference talks about .NET. Participated heavily in the "hallway track", helping attendees of the event with their .NET-related questions and issues.
- Content advisor for conferences around the United States, including Kansas City Developer Conference and Music City Code.
- Maintainer of several small .NET projects on GitHub, including Automapper.Attributes and Recess, an example project for CQRS in ASP.NET Core.
- Architect and consultant for firms looking to expand their use of .NET.
Links/Contact Information
- Twitter: @schneidenbach
- GitHub: @schneidenbach
- Blog: https://schneids.net
- Email: sas.projects@me.com


Join the experiment.
Text 'Hello' to
678-403-0580
You'll receive a variation of a Full Stack experiment
SMS Experiment using Twilio
Variation #1
Variation #2
Variation #3
Let's get started. Where will you experiment with Optimizely X Full Stack?
View the code
Learn more
Try it free


-eraseftrgrp template: commu?clnt=<name|pass>&com=eraseftrgrp descript: Deletes every user community that exists example : commu?clnt=name|pass&com=eraseftrgrp returns : 200 OK, 401 (fail, request error), 501 (fail, server error) 200 OK : no response body exists.


Reminder: For MathML, please use Firefox for browsing!
Your reply:
Click ``Send'' to send your answer back to the assigner.
The assigner will evaluate your answer very soon.


In this section we can see the google data from the publications sheet. For right now this is only a viewable document because this data should be preserved.


Class rex_extension_point
Extension Point Class.
Methods summary
public
|
#
__construct( string $name, mixed $subject = null, array $params = [], boolean $readonly = false )
Constructor. |
|
public
string
|
||
public
|
||
public
mixed
|
||
public
|
||
public
|
||
public
boolean
|
||
public
mixed
|
||
public
array
|
||
public
boolean
|


Electric cars, building retrofits in Yukon plan to fight climate change
by The Canadian Press, StaffWHITEHORSE -- Yukon says it could turn to electric vehicles and building retrofits to help fight climate change.
The northern territory says in a draft document that it needs to cut 264,000 tonnes of carbon dioxide emissions to reach its target of a 30 per cent reduction by 2030.
Transportation and heating account for three-quarters of the territory's emissions and that's where Yukon's biggest initiatives are aimed.
They include a plan to have one in six vehicles powered by electricity by the end of the decade.
The territory also plans to encourage the use of clean diesel and biodiesel for medium- and heavy-duty trucks.
Other proposals include spending $30 million a year on retrofits to make buildings more energy efficient and having 40 per cent of its heating powered by renewable resources by 2030.
The government says its plans will take the territory about three-quarters of the way to its target. It hopes the rest can be achieved through innovation and new technology.
The mining sector is to have separate targets based on emissions intensity, or how much carbon dioxide is released for every tonne of ore.
About 90 per cent of Yukon's electricity is already produced by hydro development.
This report by The Canadian Press was first published Nov. 14, 2019.


Project 990
Search
Downloads
More
Contact Us
Welcome! {{username}}
Downloader
Title:
Priority:
Low
High
Reset
Submit
Download Log
{% block content %} {% endblock %}


View This Page's Source Code
View this page's source code to see how it was created.
A Quick Tip
You may want to create a separate SASS stylesheet and include Satori's classes to simplify your code. The following code is recommended:
section { @extend bg-white; footer { @extend bg-grey; } }
This allows you to avoid having to include bg-white and bg-grey in each section. It leads to slightly more maintainable code.


A project can be anything that is fun, interesting, educational, useful or profitable.
These are project ideas. Project goals and preliminary thoughts on implementation are available. Details are apt to be sketchy, but more should come once a project moves to active development.
When clicker training, particularly when the dog is at a distance, it would be helpful to deliver that click near the dog rather than at your hand.
These are projects that are currently under development. As such, the pages for these projects are liable to change frequently as the projects progress.
Secure and configure a Raspberry Pi as a Web and Collaboration Server.
These projects have been completed or have reached a mature stage of development. These pages should be rather static and may serve as good guides for your own implementation.
These are projects that either have been abandoned or have been sidelined. The state of development of these projects varies. Some of these projects may be reactivated or incorporated into other projects as conditions warrant.


This is a self-contained tutorial for people learning PostgreSQL for the first time.
psql -U postgres -d codeface -a -f schema.sql


| State of Utah | ) |
| ss. | |
| County of (County Name) | ) |
(Petitioner’s name) and (Petitioner’s name), the Petitioners, having been duly sworn on oath, depose and say that they are the persons who executed the foregoing Petition for Appointment of Limited Guardians of a Protected Person, and Acceptance of Appointment, that they have read the same and know the contents thereof, and that the facts set forth are accurate and complete to the best of the undersigneds’ knowledge and belief.
Dated this day of , 20
to before me this day of , 20
| My commision expires: | Residing at: |


*************************************************
** 0) Introduction **
*************************************************
This article is meant to address a common newbie problem regarding failure to understand #include, headers, and source file interaction.  Later sections get into more advanced topics (inlining and templates), so even C++ coders with some experience under their belt might benefit from a read!
If you are already familiar with the basics, feel free to skip ahead to section 4. That is where practices and design strategies are discussed.
*************************************************
** 1) Why we need header files. **
*************************************************
If you're just starting out in C++, you might be wondering why you need to #include files and why you would want to have multiple .cpp files for a program. The reasons for this are simple:
(1) It speeds up compile time. As your program grows, so does your code, and if everything is in a single file, then everything must be fully recompiled every time you make any little change. This might not seem like a big deal for small programs (and it isn't), but when you have a reasonable size project, compile times can take
several minutes to compile the entire program. Can you imagine having to wait that long between every minor change?
Compile / wait 8 minutes / "oh crap, forgot a semicolon" / compile / wait 8 minutes / debug / compile / wait 8 minutes / etc
(2) It keeps your code more organized. If you seperate concepts into specific files, it's easier to find the code you are looking for when you want to make modifications (or just look at it to remember how to use it and/or how it works).
(3) It allows you to separate
interface from
implementation. If you don't understand what that means, don't worry, we'll see it in action throughout this article.
Those are the upsides, but the big, obvious downside is that is makes things a little more complicated if you don't understand how it all works (in reality, though, it's simpler than the alternatives as the project gets larger)
C++ programs are built in a two stage process. First, each source file is
compiled on its own. The compiler generates intermediate files for each compiled source file. These intermediate files are often called
object files -- but they are not to be confused with objects in your code. Once all the files have been individually compiled, it then
links all the object files together, which generates the final binary (the program).
This means that
each source file is compiled separately from other source files. As a result of this, in terms of compiling, "a.cpp" is clueless as to what's going on inside of "b.cpp". Here's a quick example to illustrate:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
// in myclass.cpp
class MyClass
{
public:
void foo();
int bar;
};
void MyClass::foo()
{
// do stuff
}
| |
1 2 3 4 5 6 7
|
// in main.cpp
int main()
{
MyClass a; // Compiler error: 'MyClass' is unidentified
return 0;
}
| |
Even though MyClass is declared
in your program, it is not declared
in main.cpp, and therefore when you compile main.cpp you get that error.
This is where header files come in. Header files allow you to make the
interface (in this case, the class MyClass) visible to other .cpp files, while keeping the
implementation (in this case, MyClass's member function bodies) in its own .cpp file. That same example again, but tweaked slightly:
1 2 3 4 5 6 7 8
|
// in myclass.h
class MyClass
{
public:
void foo();
int bar;
};
| |
1 2 3 4 5 6
|
// in myclass.cpp
#include "myclass.h"
void MyClass::foo()
{
}
| |
1 2 3 4 5 6 7 8
|
//in main.cpp
#include "myclass.h" // defines MyClass
int main()
{
MyClass a; // no longer produces an error, because MyClass is defined
return 0;
}
| |
The #include statement is basically like a copy/paste operation. The compiler will "replace" the #include line with the actual contents of the file you're including when it compiles the file.
***************************************************************
** 2) What is the difference between .h/.cpp/.hpp/.cc/etc **
***************************************************************
All files are fundamentally the same in that they're all text files, however different kinds of files should have different extensions:
-
Header files should use a .h__ extension (.h / .hpp / .hxx). Which of those you use doesn't matter.
-
C++ Source files should use a .c__ extention (.cpp / .cxx / .cc). Which of those you use doesn't matter.
-
C Source files should use .c (.c only).
The reason C and C++ source files are seperated here is because it makes a difference in some compilers. In all likelyhood (since you're reading this on a C++ site), you'll be using C++ code, so refrain from using the .c extension. Also, files with header extensions might be ignored by the compiler if you try to compile them.
So what's the difference between Header files and Source files? Basically, header files are #included and not compiled, whereas source files are compiled and not #included. You can try to side-step these conventions and make a file with a source extension behave like a header or vice-versa, but you shouldn't. I won't list the many reasons why you shouldn't (other than the few I already have) -- just don't.
The one exception is that it is sometimes (although
very rarely) useful to include a source file. This scenario has to do with instantiating templates and is outside the scope of this article. For now... just put it in your brain:
"do not #include source files"
*****************************************************
** 3) Include guards **
*****************************************************
C++ compilers do not have brains of their own, and so they will do exactly what you tell them to. If you tell them to include the same file more than once, then that is exactly what they will do. And if you don't handle it properly, you'll get some crazy errors as a result:
1 2 3 4 5 6
|
// myclass.h
class MyClass
{
void DoSomething() { }
};
| |
1 2 3
|
// main.cpp
#include "myclass.h" // define MyClass
#include "myclass.h" // Compiler error - MyClass already defined
| |
Now you might be saying to yourself "well that's stupid, why would I include the same file twice?" Believe it or not, it will happen a lot. Not quite as illustrated above, though. Usually it happens when you include two files that each include the same file. Example:
1 2 3 4
|
// a.h
#include "x.h"
class A { X x; };
| |
1 2 3 4
|
// b.h
#include "x.h"
class B { X x; };
| |
1 2 3 4
|
// main.cpp
#include "a.h" // also includes "x.h"
#include "b.h" // includes x.h again! ERROR
| |
Because of this scenario, many people are told not to put #include in header files. However
this is bad advice and you should not listen to it. Sadly, some people are actually
taught this in C++ courses that they are
paying money for. If your C++ instructor tells you not to #include in header files, then [grudgingly] follow his instructions in order to pass the course, but once you're out of his/her class, shake that habit.
The truth is there is nothing wrong with putting #include in header files -- and in fact it is very benefitial.
Provided you take two precautions:
1) Only #include things you
need to include (covered next section)
2) Guard against incidental multiple includes with include guards.
An Include Guard is a technique which uses a unique identifier that you #define at the top of the file. Here's an example:
1 2 3 4 5 6 7 8
|
//x.h
#ifndef __X_H_INCLUDED__ // if x.h hasn't been included yet...
#define __X_H_INCLUDED__ // #define this so the compiler knows it has been included
class X { };
#endif
| |
This works by skipping over the entire header if it was already included. __X_H_INCLUDED__ is #defined the first time x.h is included -- and if x.h is included a second time, the compiler will skip over the header because the #ifndef check will fail.
Always guard your headers. Always always always.  For the rest of this article, it is assumed all header files are include guarded (even if I don't explicitly put it in the example).
You do not need to guard your .cpp files, because they are not #included (Or at least they shouldn't be... right?
RIGHT?)
*****************************************************
** 4) The "right way" to include **
*****************************************************
Classes you create will often have dependencies on other classes. A derived class, for example, will always be dependent on its parent, because in order to be derived from the parent, it must be aware of its parent at compile time.
There are two basic kinds of dependencies you need to be aware of:
1) stuff that can be forward declared
2) stuff that needs to be #included
If, for example, class A uses class B, then class B is one of class A's dependencies. Whether it can be forward declared or needs to be included depends on how B is used within A:
- do nothing if: A makes no references at all to B
- do nothing if: The only reference to B is in a friend declaration
- forward declare B if: A contains a B pointer or reference: B* myb;
- forward declare B if: one or more functions has a B object/pointer/reference
as a parementer, or as a return type: B MyFunction(B myb);
- #include "b.h" if: B is a parent class of A
- #include "b.h" if: A contains a B object: B myb;
You want to do the least drastic option possible. Do nothing if you can, but if you can't, forward declare if you can. But if it's necessary, then #include the other header.
Ideally, the dependencies for the class should be layed out in the header. Here is a typical outline of how a "right way" header might look:
myclass.h
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
//=================================
// include guard
#ifndef __MYCLASS_H_INCLUDED__
#define __MYCLASS_H_INCLUDED__
//=================================
// forward declared dependencies
class Foo;
class Bar;
//=================================
// included dependencies
#include <vector>
#include "parent.h"
//=================================
// the actual class
class MyClass : public Parent // Parent object, so #include "parent.h"
{
public:
std::vector<int> avector; // vector object, so #include <vector>
Foo* foo; // Foo pointer, so forward declare Foo
void Func(Bar& bar); // Bar reference, so forward declare Bar
friend class MyFriend; // friend declaration is not a dependency
// don't do anything about MyFriend
};
#endif // __MYCLASS_H_INCLUDED__
| |
This shows the two different kinds of dependencies and how to handle them. Because MyClass only uses a pointer to Foo and not a full Foo object, we can forward declare Foo, and don't need to #include "foo.h".
You should always forward declare what you can -- don't #include unless it's necessary. Unnecessary #includes can lead to trouble.
If you stick to this system, you will bulletproof yourself, and will minimize #include related hazards.
*****************************************************
** 5) Why that is the "right way" to include **
*****************************************************
Note: in this section I refer to the "right way" method outlined above as "mine". While I did come up with it on my own (after struggling through the mucky muck for a while) -- I can't say I was the first person who ever thought of it, so it isn't really "mine". But for purposes of this article, I call it "mine" for simplicity.
You: "So-and-so says that #including in a header is dangerous, but you say it's not! Why is your way so much better than what so-and-so says?"
So-and-so is partially right, but is explaining it wrong. Frivilous and careless #includes
can lead to trouble. And one way to avoid those troubles
is to never #include inside a header file. So yeah, so-and-so's heart is in the right place. But ultimately, using so-and-so's approach is going to give yourself TONS of additional work and headaches.
The concept I'm illustrating is very OO, and enhances encapsulation. The general idea is that it makes "myclass.h" fully self-contained and doesn't require any other area of the program (other than MyClass's implementation/source file) to know how MyClass works internally. If some other class needs to use MyClass, it can just #include "myclass.h" and be done with it!
The alternative (so-and-so's method), would require you to #include all of MyClass's dependencies
before #including "myclass.h", since myclass.h can't include its dependencies itself. This is headache city, because now using a class isn't so straightforward.
Here is an example of why my method is good:
1 2 3 4 5 6 7
|
//example.cpp
// I want to use MyClass
#include "myclass.h" // will always work, no matter what MyClass looks like.
// You're done
// (provided myclass.h follows my outline above and does
// not make unnecessary #includes)
| |
Here is an example of why so-and-so's method is bad:
1 2 3 4 5
|
//example.cpp
// I want to use MyClass
#include "myclass.h"
// ERROR 'Parent' undefined
| |
so-and-so: "Hrm... okay...."
1 2 3
|
#include "parent.h"
#include "myclass.h"
// ERROR 'std::vector' undefined
| |
1 2 3 4
|
#include "parent.h"
#include <vector>
#include "myclass.h"
// ERROR 'Support' undefined
| |
so-and-so: "WTF? MyClass doesn't even
use Support! But alright..."
1 2 3 4 5
|
#include "parent.h"
#include <vector>
#include "support.h"
#include "myclass.h"
// ERROR 'Support' undefined
| |
so-and-so: "Give me a break! I'm including it! What else do you want!"
Believe it or not, the above
does happen. Little did poor so-and-so know, but "parent.h" uses Support, and therefore you must #include "support.h"
before "parent.h".
And what happens if support.h needs something else? What if
that something else needs something else? We're already up to 4 #includes just to use a single class! With so-and-so's method, not only do you have to remember which includes are needed for each class, but also
the order in which you need to #include them. This becomes a
huge nightmare
very quickly.
And what happens if you want to tweak MyClass? Let's say you decide that it would be better to use std::list instead of std::vector. With so-and-so's method, you now have to go back and change
every single file that #includes "myclass.h" and change it to include <list> instead of <vector> (which might be dozens of files depending on the size of the project and how often MyClass is used), whereas with my method you only have to change "myclass.h", and maybe "myclass.cpp".
The "right way" I illustrated above is all about encapsulation. Files that want to use MyClass don't need to be aware of what MyClass uses in order for it to work, and don't need to #include any MyClass dependencies. All you need to do to get MyClass to work is #include "myclass.h". Period. The header file is set up to be completely self contained. It's all very OO friendly, very easy to use, and very easy to maintain.
*****************************************************
** 6) Circular Dependencies **
*****************************************************
A circular dependency is when two (or more) classes depend on each other. For example, class A depends on class B, and class B depends on class A.
If you stick to "the right way" and forward declare when you can instead of #including needlessly, this usually isn't a problem. As long as the circle is broken with a forward declaration at some point, you're fine.
Here's the perfect example of why you should only #include what is necessary:
1 2 3 4
|
// a.h -- assume it's guarded
#include "b.h"
class A { B* b; };
| |
1 2 3 4
|
// b.h -- assume it's guarded
#include "a.h"
class B { A* a };
| |
An initial glance might see nothing wrong with this. B is a dependency of A, so you include it, and A is a dependency of B, so you include it. So what's wrong with this?
This is a circular inclusion (also called an infinite inclusion) and is the result of one or more includes that shouldn't be there. Say for example you compile "a.cpp":
1 2
|
// a.cpp
#include "a.h"
| |
The compiler will do the following:
1 2 3 4 5 6 7 8 9 10 11 12
|
#include "a.h"
// start compiling a.h
#include "b.h"
// start compiling b.h
#include "a.h"
// compilation of a.h skipped because it's guarded
// resume compiling b.h
class B { A* a }; // <--- ERROR, A is undeclared
| |
Even though you're #including "a.h", the compiler is not seeing the A class until after the B class gets compiled. This is because of the circular inclusion problem. This is why you should
always forward declare when you're only using a pointer or reference. Here, "a.h" should not be #including b.h, but instead should just be forward declaring B. Likwise, b.h should be forward declaring A. If you make those changes, the problem is solved.
The circular inclusion problem may persist if both dependencies are #include dependencies (ie: they can't be forward declared). Here's an example:
1 2 3 4 5 6 7 8
|
// a.h (guarded)
#include "b.h"
class A
{
B b; // B is an object, can't be forward declared
};
| |
1 2 3 4 5 6 7 8
|
// b.h (guarded)
#include "a.h"
class B
{
A a; // A is an object, can't be forward declared
};
| |
You may note, however, that this situation is
conceptually impossible. There is a fundamental design flaw. If A has a B object, and B has an A object, then A contains a B, which contains another A, which contains another B, which contains another A, which contains another B, etc, etc. You have an infinite recursion problem, and either class is simply impossible to instantiate. The solution is to have one or both classes contain a
pointer or reference to the other, rather than a full object. Then you can forward declare, and then you can get around the circular inclusion problem.
*****************************************************
** 7) Function inlining **
*****************************************************
The catch-22 with inline functions is that their function body needs to exist in every cpp file which calls them, otherwise you get linker errors (since they can't be linked during the linker process -- they need to be compiled into the code during the compiler process).
This might open circular reference holes or other scenarios that might complicate the "right way" outline.
1 2 3 4 5 6 7 8 9 10
|
class B
{
public:
void Func(const A& a) // parameter, so forward declare is okay
{
a.DoSomething(); // but now that we've dereferenced it, it
// becomes an #include dependency
// = we now have a potential circular inclusion
}
};
| |
The key is that while inline function need to exist in the header, they
do not need to exist in the class definition itself. This lets us exploit a loophole:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
// b.h (assume its guarded)
//------------------
class A; // forward declared dependency
//------------------
class B
{
public:
void Func(const A& a); // okay, A is forward declared
};
//------------------
#include "a.h" // A is now an include dependency
inline void B::Func(const A& a)
{
a.DoSomething(); // okay! a.h has been included
}
| |
While you might not think so at first glance... this is
perfectly safe. The circular inclusion problem is avoided completely, even if a.h includes b.h. This is because the additional #includes don't come up until AFTER class B is fully defined, and they are therefore harmless.
You: "But putting function bodies at the end of my header is ugly. Isn't there a way to avoid that?"
Me: Yep! Just move the function bodies to another header:
1 2 3 4 5 6 7
|
// b.h
// blah blah
class B { /* blah blah */ };
#include "b_inline.h" // or I sometimes use "b.hpp"
| |
1 2 3 4 5 6 7 8 9 10 11
|
// b_inline.h (or b.hpp -- whatever)
#include "a.h"
#include "b.h" // not necessary, but harmless
// you can do this to make this "feel" like a source
// file, even though it isn't
inline void B::Func(const A& a)
{
a.DoSomething();
}
| |
This seperates the interface from the implementation, while still allowing the implementation to be inlined. You can also have a normal "b.cpp" file for the implementation that isn't inlined.
*****************************************************
** 8) Forward declaring templates **
*****************************************************
Forward declaring is pretty straight-forward when it comes to simple classes, but when dealing with template classes, things aren't so simple. Consider the following scenario:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
// a.h
// included dependencies
#include "b.h"
// the class template
template <typename T>
class Tem
{
/*...*/
B b;
};
// class most commonly used with 'int'
typedef Tem<int> A; // typedef'd as 'A'
| |
1 2 3 4 5 6 7 8 9 10 11
|
// b.h
// forward declared dependencies
class A; // error!
// the class
class B
{
/* ... */
A* ptr;
};
| |
While this seems perfectly logical, it doesn't work! (Although, logically you really think it should. This is an irritation of the language). Because 'A' isn't really a class, but rather a typedef, the compiler will bark at you. Also notice that we can't just #include "a.h" here because of a circular dependency problem.
In order to forward declare 'A', we need to typedef it. Which means we need to forward declare what it's typedef'd as. The way to forward declare it is like so:
1 2
|
template <typename T> class Tem; // forward declare our template
typedef Tem<int> A; // then typedef 'A'
| |
This is quite a bit uglier than
class A;
, but nonetheless is a necessary evil. This, however, makes templated classes hard to encapsulate, because it requires every class which forward declares them to know exactly how the template is layed out. If that ever changes you have a big mess to clean up.
A practical solution to this problem is to create an alternative header which has the forward declarations of your templated classes and their typedefs. Here's a more elegant way to approach the above example:
1 2 3 4 5 6 7 8 9 10
|
//a.h
#include "b.h"
template <typename T>
class Tem
{
/*...*/
B b;
};
| |
1 2 3 4
|
//a_fwd.h
template <typename T> class Tem;
typedef Tem<int> A;
| |
1 2 3 4 5 6 7 8 9
|
//b.h
#include "a_fwd.h"
class B
{
/*...*/
A* ptr;
};
| |
This allows B to include a header which forward declares A without including the entire class definition.