John Doe
Calendar
Inbox
0
Settings
Lock Screen
Log Out
Inline Charts
Graphs
Inline Charts
Draggable Events
Default
Info
Warning
Danger
remove after drop
NOTE: Click a calendar day to create an event!
MY EVENTS
Month
Month
Agenda
Today
Week


fastimage
FastImage finds the size or type of an image given its URL by fetching as little as needed.
http://sw.cowtech.it/fastimage
The supported image type are (thanks to the image-size module):
- BMP
- GIF
- JPEG
- PNG
- PSD
- TIFF
- WebP
- SVG
Supported implementations.
FastImage supports and has been tested on NodeJS 5.0+.
Usage
For more details usage examples, see the examples
folder.
Callback style
To get the image informations, call fastimage.info
passing the URL (can be also a local file path or a Buffer) and a callback.
var fastimage = require("fastimage");
fastimage.info("http://placehold.it/100x100", function(error, information){
if(error){
// ...
else{
// ...
}
});
For the details about the second parameter of the callback, see fastimage.info, fastimage.size and fastimage.type.
Promise style
All the fastime image methods info
, filteredInfo
, size
and type
return a Promise. Once resolved, the promises have the same payload of the callbacks.
var fastimage = require("fastimage");
fastimage.info("http://placehold.it/100x100")
.then(function(info){
// ...
})
.catch(function(error){
// ...
});
Stream style
If you want to go The Node.js Way, you can use the streaming API.
Calling fastimage.stream
it will return a Duplex stream object. Called without arguments, it's ideal for piping. Otherwise, you can use only it's readable side.
// Duplex
request("http://placehold.it/100x100.png").pipe(fastimage.stream()).pipe(/*...*/);
// Readable
fastimage.stream("http://placehold.it/100x100.png").pipe(/*...*/);
Streams will emit the size
and type
if you only need those informations.
API Documentation
The API documentation can be found here.
Contributing to fastimage
- Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
- Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
- Fork the project.
- Start a feature/bugfix branch.
- Commit and push until you are happy with your contribution.
- Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
Copyright
Copyright (C) 2015 and above Shogun (shogun@cowtech.it).
Licensed under the MIT license, which can be found at http://opensource.org/licenses/MIT.


---
layout: post
title: PlasmoDB 45 Released
category: [PlasmoDB]
---
We are pleased to announce the release of PlasmoDB 45
Release 45 Webinar
Join us on September 11, 2019 at 10:00 am (EST) for our Release 45 Highlights webinar where we will discuss and
demonstrate new features and data available in release 45 of EuPathDB sites.
Register here
All EuPathDB sites now offer the JBrowse Genome Browser. GBrowse will be phased out in coming releases. Please
Contact Us with comments and suggestions for the genome browser.
The new RNASeq Transcript Summary tool on gene pages helps reveal experiments in which the gene is highly
regulated. The tool displays the gene's FPKM values for all experiments in PlasmoDB and offers features such as
log/linear scaling, zoom and pan to explore the gene's expression in each experiment.


The sun brightens in the east, reddening the blue-grey haze that marks the distant ocean. The vultures roosting on the hydro poles fan out their wings to dry them. the air smells faintly of burning. The waterless flood - a manmade plague - has ended the world.
But two young women have survived: Ren, a young dancer trapped where she worked, in an upmarket sex club (the cleanest dirty girls in town); and Toby, who watches and waits from her rooftop garden. Is anyone else out there?
In the early morning Toby climbs up to the rooftop to watch the sunrise. She uses a mop handle for balance: the elevator stopped working some time ago and the back stairs are slick with damp, and if she slids and topples there won't be anyone to pick her up.


Floating Pins
IoT
“Reading input from mechanical devices is easy.
Reading input resiliently from mechanical devices is not."
Problem: Determine the value read by the pin when the mechanical device (such as push button/sensor) is not pressed. How to remove “false-positives” (reading button press when it wasn’t in reality) from the input space?
Causes (potential):
- Mechanical fault in the device.
- Problem with the circuit.
Concept: The idea of floating pins - an input pin on a microcontroller that does not have a specified state (either High voltage, or Low voltage).
Solution: Use a “pull up” resistor to tie the floating pin to a specific state.
- Default state of the input pin is set to HIGH.
- On activation (button press), the input read is LOW.
Implementation:
- Connect a resistor to 5V (HIGH) to the push button.
- Set the pin mode to
INPUT_PULLUP
instead ofINPUT
; taking advantage of the hardware features. 🤷♂
References:
TIL
What brought me joy today?
- Watching Hikaru win on demand with Black pieces in 2nd Blitz against El Magneto (going on to win the today’s set 🥳)!


A grid is a series of intersecting horizontal and vertical lines that serve as guides to place elements in a design.In short, grids are a system for creating order among elements in a website.Web developer uses grid based design in order to takes advantage of the patterns our eyes follow on the website.
Adjusting the design layout and images for different devices and screen resolutions.
Altering images so that they use low bandwidth on cell phones.
The web page elements are simplified by using large buttons for easy selection and eliminating unnecessary elements for small screens.
A way of writing and structuring your HTML (Hypertext Markup Language) so that it reinforces the semantics, or meaning, of the content rather than its appearance.
I was impressed by Google Font. It is amazing that people design so many different types of writing and they are so beautiful. It seems not Chinese Traditonal Writing included? Maybe I can do some contribution to it one day!


| First Name: | {{user?.first_name}} |
| Last Name: | {{user?.last_name}} |
| Email: | {{user?.email}} |
| Phone: | {{user?.phone}} |
| Name: | {{user?.address1.name}} |
| C/O: | {{user?.address1.co}} |
| House, Flat, Building Name /No: | {{user?.address1.house_no}} |
| Address Line 2: | {{user?.address1.line2}} |
| Locality / Village: | {{user?.address1.locality}} |
| City/Town/ Village: | {{user?.address1.city}} |
| District: | {{user?.address1.district}} |
| State: | {{user?.address1.state}} |
| Landmark: | {{user?.address1.landmark}} |
| Pin Code: | {{user?.address1.pin}} |
| Nearest Post Office: | {{user?.address1.post_office}} |
| Contact No. : | {{user?.address1.contact_no}} |
| Alternative No. : | {{user?.address1.alternate_no}} |
| Name: | {{user?.address2.name}} |
| C/O: | {{user?.address2.co}} |
| House, Flat, Building Name /No: | {{user?.address2.house_no}} |
| Address Line 2: | {{user?.address2.line2}} |
| Locality / Village: | {{user?.address2.locality}} |
| City/Town/ Village: | {{user?.address2.city}} |
| District: | {{user?.address2.district}} |
| State: | {{user?.address2.state}} |
| Landmark: | {{user?.address2.landmark}} |
| Pin Code: | {{user?.address2.pin}} |
| Nearest Post Office: | {{user?.address2.post_office}} |
| Contact No. : | {{user?.address2.contact_no}} |
| Alternative No. : | {{user?.address2.alternate_no}} |
| Name: | {{user?.address3.name}} |
| C/O: | {{user?.address3.co}} |
| House, Flat, Building Name /No: | {{user?.address3.house_no}} |
| Address Line 2: | {{user?.address3.line2}} |
| Locality / Village: | {{user?.address3.locality}} |
| City/Town/ Village: | {{user?.address3.city}} |
| District: | {{user?.address3.district}} |
| State: | {{user?.address3.state}} |
| Landmark: | {{user?.address3.landmark}} |
| Pin Code: | {{user?.address3.pin}} |
| Nearest Post Office: | {{user?.address3.post_office}} |
| Contact No. : | {{user?.address3.contact_no}} |
| Alternative No. : | {{user?.address3.alternate_no}} |


The modules in which we will split our scripts. A module libs is defined
for our JavaScript libraries and amodule scripts for custom scripts.
Feel free to tailor it according to your needs. Each module will be loaded as a different
request when deployed.


Skin Tests are used to confirm clinical sensitivity induced by aeroallergens, foods, some drugs, a few chemicals, and hymenoptera venom.
Indicated in following diseases:
Factors affecting skin test:
Method Skin prick testing is done demonstrates an allergic response to a specific allergen. SPT can help to confirm the presence of an allergy to pollen, food, dust, mites, moulds and animal dander’s. SPT is a simple, safe and quick test, providing results within 15-20 minutes. This will enable you to receive a diagnosis and management plan at your appointment.
The skin prick test introduces a tiny amount of allergen into the skin, eliciting a small, localized allergic response, in the form of a wheal (bump) and flare (redness) at the site of testing. These tests can be carried out on all age groups, including babies. The test allergens are selected following a discussion with your clinician and based on your history.
Prerequisites The patient needs to avoid taking anti-histamines and certain other medications before the test. Antihistamine for example cetrizine,loratidine,fexofenadine should stop at least 5 to 7 days before the testing Tricyclic anti depressant( doxepine)and atypical antipsychotic drugs (ex.risperidone,olanzapine,ziprasidone) should be taper down if required a wk before the testing.
Beta blockers should be stopped in all instances 24 hour before the testing
Potential Risks of Non-Specialist Care
The tests determine how much air your lungs can hold, how quickly you can move air in and out of your lungs.
The tests can diagnose lung diseases, measure the severity of lung problems, and check to see how well treatment for a lung disease is working.
Lung function tests are done to:
The testing may take from 5 to 30 minutes, depending upon how many tests are done.
How the Test is performed?
Spirometry measures airflow. By measuring how much air you exhale, and how quickly, spirometry can evaluate a broad range of lung diseases. In a spirometry test, while you are sitting, you breathe into a mouthpiece that is connected to an instrument called a spirometer. The spirometer records the amount and the rate of air that you breathe in and out over a period of time.
How to Prepare for the Test?
Do not eat a heavy meal before the test
Do not smoke for 4 – 6 hours before the test
you need to stop using bronchodilators or inhaler medications
You may have to breathe in medication before or during the test.
How the Test Will Feel?
Since the test involves some forced breathing and rapid breathing, you may have some temporary shortness of breath or lightheadedness. You breathe through a tight-fitting mouthpiece, and you’ll have nose clips.
Why the Test is performed?
 Normal results are expressed as a percentage. A value is usually considered abnormal if it is less than 80% of your predicted value. Normal value ranges may vary slightly among different laboratories. Talk to your doctor about the meaning of your specific test results.
Different measurements that may be found on your report after spirometry include:
What Abnormal Results Mean?
Abnormal results usually mean that you may have some chest or lung disease.
Some lung diseases (such as emphysema, asthma, chronic bronchitis, and infections) can make the lungs contain too much air and take longer to empty. These lung diseases are called obstructive lung disorders.
Other lung diseases make the lungs scarred and smaller so that they contain too little air and are poor at transferring oxygen into the blood. Examples of these types of illnesses include:
Risks
The risk is minimal for most people. There is a small risk of collapsed lung in people with a certain type of lung disease. The test should not be given to a person who has experienced a recent heart attack, or who has certain other types of heart disease.
Considerations
Your cooperation while performing the test is crucial in order to get accurate results. A poor seal around the mouthpiece of the spirometer can give poor results that can’t be interpreted. Do not smoke before the test.
Absolute contraindication
Activities that should be avoided before Pulmonary function testing
Medication Wash out Restrictions:
If above mentioned restrictions are not observed, then the spirometry readings may not be accurate and show false high levels. Moreover, bronchodilator reversibility will be unreliable.
A patch test is used to find allergic causes of eczema/dermatitis and some other types of skin reactions such as reactions to drugs.
You may advise a patch test:
ASST test is performed by your doctor in the clinic; patient’s venous blood was placed in sterile plastic tubes and allowed to clot at room temperature for 30 minutes. Then the serum was separated by centrifugation at 500 x g for 15 minutes and kept in aliquots for use in the ASST. Sample (50 µl) of autologous serum and 0.9% sterile saline (for negative control) were separately injected intradermally into the volar aspect of the patient’s forearm skin with 27G needle, leaving gaps of at least three centimetres. A skin prick test with histamine (10 µg/µl) was used as a positive control. Areas known to have been involved in spontaneous wheals in the last 24 hours were avoided. Skin prick tests with histamine were interpreted after 15 minutes. Wheals and flare responses were measured after 30 minutes. A positive ASST was defined as a serum-induced wheal which was both red and had a diameter of 1.5 mm or more than the saline-induced response at 30 minutes.
A peak flow meter is a device that measures how well air moves out of the lungs. A peak flow meter is used to manage exacerbations. A peak flow meter is used for daily long-term monitoring. A peak flow meter guides therapeutic decisions in the home, school, clinician’s office, or ED
Use of Peak flow meter-
Peak flow meter is used to monitor your asthma control, as BP instrument is used to monitor hypertension and Glucometer is used to monitor diabetes control.
The peak flows are put into zones that are set up like a traffic light. Each zone determines what medications to use and what to do when the peak flow number changes.
Green zone
Doing well no cough, wheeze, chest tightness or shortness of breath during the day or night.
Yellow zone
Asthma is getting worse
Cough, wheeze, chest tightness or shortness of breath during the day or night.
Waking at night due to asthma
Can do some, but not all, usual activities
Red zone
Medical alert
Shortness of breath
Medicines not working
Cannot do usual activity
It is an emergency. Call your Doctor.


Workout
|
Dashboard
Workout Tracker
Last Workout
Continue Workout
New Workout
Create Your First Workout
Workout Added Successfully!


Local Dogs is an Android app designed to let pet owners match their pet with another user's pet, based on certain criteria.
We stand out apart from the competition by dedicating the app to exclusively setting up dog playdates or get-togethers. You can swipe through a queue of other pets, so you can find the perfect match!
You can filter dogs by:
Breed
Age
Weight
Activity Level
Once you find your perfect match, use the integrated Google Maps to create custom map markers and then filter your markers by searching for keywords!
With Local Dogs being a social app, we want to ensure that our users maintain safe practices when talking to strangers.
Our Terms of Use is a binding agreement where a user understands that any interactions outside of the app is beyond the control of Local Dogs, LLC.
Any actions deemed inappropriate by the standards of the Terms of Use and Local Dogs team will result in pressing actions that may resolve in an account ban.
We take the safety of our users seriously, and we expect that users make the smart decisions necessary to ensure their safety!
Goal Functionality
Create a profile for your dog, specifying name, age, breed, weight, activity level, etc.
Swipe through our Cardstack to match with other dogs based on custom dog filtering preferences!
Contact the owner of the dog you matched with to set up a playdate between your dog and the matched dog.
Find a suitable area for the playdate with the integration of Google Maps in our app!


--- layout: example categories: example/v1.0.0 version: v1.0.0 title: Searching for markers description: Use setFilter as a fast search to filter out markers based on a user query. tags: - ui - markers - omnivore ---


Frequently Asked Questions
What is TrendyMan?
TrendyMan is a personalized styling service for men: we propose a new solution to men who want to be well dressed without having to do shopping.Frankly, for most of us, shopping is often a chore, either online or in stores. It's thinking about the uses and the specific needs of men than we imagined TrendyMan.At your request, your stylist composes a personalized selection of clothing from the brands you love and makes it delivered to your door. You have 7 days to try the clothes, without any obligation to purchase.You pay only the clothes you keep, we get the rest. Shipping and returns are free.
How to use the TrendyMan service?
To start using ChicTypes, simply send us a mail or call us directly. Once this step done, you tell to your stylist your tastes, your desires and your budget to determine what you expect from your first trunk. Please visit the "How it works" for details.
What kind of clothes do you suggest?
We focus on premium brands and offer only casual clothes: a careful selection of jackets, pants, tops, knits and shoes of the best brands. No costumes at the moment, but you will find shirts and street shoes. Imagine the best of the brands you like, specifically selected for you. Visit the page "portofolio" for more details.
About Us
What is TrendyMan?
TrendyMan is a personalized styling service for men: we propose a new solution to men who want to be well dressed without having to do shopping.Frankly, for most of us, shopping is often a chore, either online or in stores. It's thinking about the uses and the specific needs of men than we imagined TrendyMan.At your request, your stylist composes a personalized selection of clothing from the brands you love and makes it delivered to your door. You have 7 days to try the clothes, without any obligation to purchase.You pay only the clothes you keep, we get the rest. Shipping and returns are free.
Who are the users of TrendyMan?
TrendyMan is for men who want to wear quality clothes of the best brands, but do not have time or do not like shopping, online or in stores. The service is particularly relevant for those of us who do not have an urgent need to buy clothes or who are not looking for a specific piece for personalized composition.
And for women?
Sorry, we do not offer clothing for women. But we are convinced that we can reconciling men with their shopping. You will have more time for them, and you will appreciate their elegance.
Deliveries and Returns
How to use the TrendyMan service?
To start using ChicTypes, simply send us a mail or call us directly. Once this step done, you tell to your stylist your tastes, your desires and your budget to determine what you expect from your first trunk. Please visit the "How it works" for details.
How to use the TrendyMan service?
To start using ChicTypes, simply send us a mail or call us directly. Once this step done, you tell to your stylist your tastes, your desires and your budget to determine what you expect from your first trunk. Please visit the "How it works" for details.
How to use the TrendyMan service?
To start using ChicTypes, simply send us a mail or call us directly. Once this step done, you tell to your stylist your tastes, your desires and your budget to determine what you expect from your first trunk. Please visit the "How it works" for details.


Esther 1:20
And when the king's decree which he shall make shall be published throughout all his empire, (for it is great,) all the wives shall give to their husbands honour, both to great and small.


| plot_iso {isoband} | R Documentation |
This function visualizes a single isoband calculated from a matrix. It is mainly useful
for debugging and visualizing the isobanding algorithm. See isobands()
for more
examples.
plot_iso( m, vlo, vhi, fill_lo = "gray95", fill_mid = "gray50", fill_hi = "black", fill_band = "cornsilk", col_lo = "black", col_hi = "black", newpage = TRUE )
m |
input matrix |
vlo |
lower cutoff for isobanding |
vhi |
higher cutoff for isobanding |
fill_lo |
fill color for points below the lower cutoff |
fill_mid |
fill color for points between the two cutoffs |
fill_hi |
fill color for points above the higher cutoff |
fill_band |
fill color for the isoband |
col_lo |
line color for lower cutoff |
col_hi |
line color for higher cutoff |
newpage |
boolean, indicating whether |
m <- matrix(c(0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 2, 0, 0, 2, 0, 0, 2, 0, 0, 2, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0), 6, 6, byrow = TRUE) plot_iso(m, 0.5, 1.5)


Click Start Game button to set tiles on the board
Click Reset Game button to clear the board
Here is your counter It counts your matched tiles. After you matched all of them, you won!


CodeBlocks is an open-source, cross-platform (Windows, Linux, MacOS), and free C/C++ IDE. It supports many compilers, such as GNU GCC (MinGW and Cygwin) and MS Visual C++. It supports interactive debugging (via GNU GDB or MS CDB). CodeBlocks is surprisingly versatile, and in my opinion, much better than the Visual Studio suite. The mother site of CodeBlocks is www.codeblocks.org.
How to Install CodeBlocks 13.12
Step 1: Download
Goto http://www.codeblocks.org/downloads. Click "Download the binary release". Select your operating platform (e.g., Windows 2000/XP/Vista/7). Download the installer with GCC Compiler, e.g., codeblocks-13.12mingw-setup.exe
(98 MB) (which includes MinGW's GNU GCC compiler and GNU GDB debugger).
Step 2: Install
Run the downloaded installer. Accept the default options.
Verify the Compiler's and Debugger's Path: (For CodeBlocks 13.12 For Windows) Goto "Settings" menu ⇒ "Compiler..." ⇒ In "Selected Compiler", choose "GNU GCC Compiler" ⇒ Select tab "Toolchain Executables" ⇒ Check the "Compiler's Installation Directory". It shall be set to the "MinGW" sub-directory of the CodeBlocks installation directory, for example, suppose that CodeBlocks is installed in "c:\Program Files\codeblocks
", set it to "c:\Program Files\codeblocks\MinGW
".
Similarly, check the debugger's path. Goto "Settings" menu ⇒ "Debugger..." ⇒ Expand "GDB/CDB debugger" ⇒ Select "Default" ⇒ In "Executable path", provide the full-path name of "gdb.exe
", for example, "c:\Program Files\codeblocks\MinGW\bin\gdb.exe
".
Notes For CodeBlocks 13.12 For Windows (Jan 2014)
I encountered problem running debugger with CodeBlocks 13.12 bundled with MinGW (gcc v4.7.1 and gdb 7.5).
I resolved by installing the latast MinGW (gcc 4.8.1, gdb 7.6.1) separately (See "How to install MinGW"), and configured the compiler's and debugger's path to the installed MinGW as in the above step.
Alternatively, consider using Eclipse or Netbeans with Cygwin or MinGW GNU GCC compiler.
Writing C/C++ Programs in CodeBlocks
Read:
- CodeBlocks' Wiki @ http://wiki.codeblocks.org/index.php?title=Main_Page, in particular, "Creating a new project" and "Debug my Program".
Writing Toy Programs (without Creating a Project)
To write toy programs (such as few-line simple programming exercises):
- File ⇒ New ⇒ Empty File.
- Enter (copy and paste) the following codes:
// First C++ program to say Hello #include <iostream> using namespace std; int main() { cout << "Hello, world!" << endl; return 0; }
Save the file as "Hello.cpp
" in your project directory (e.g., "d:\project
"). - Build (Compile and Link): Select "Build" menu ⇒ Build (Ctrl-F9).
- Run: Select "Build" menu ⇒ Run (Ctrl-F10).
The drawback is you cannot debug program without creating a project.
Read "CodeBlocks' Common Errors" if ....
Writing Programs (under Project)
Other than the few-line toy programs, you shall create a project for each of your application. A project contains related files such as source codes, header files, and relevant resources. Also, under CodeBlocks, you can only debug your program under a project - single-file program (in previous section) debugging is not supported.
- File ⇒ New ⇒ Project... ⇒ Console Application ⇒ Go.
- The "Console Application" wizard appears:
- Next
- Select "C++" ⇒ Next.
- In "Project Title", enter "
HelloProject
". In "Folder to create project in", set to your working directory, e.g., "d:\project
". Accept the default for the rest ⇒ Next.
A project directory "HelloProject
" will be created under "d:\project
", with a project configuration filename of "HelloProject.cbp
". You could later create more projects under this working directory "d:\project
". - In "Compiler" field, accept the defaults of "GNU GCC Compiler" ⇒ Finish.
- Under the "Management" pane ⇒ Choose "Projects" tab ⇒ Expand the project node "
HelloProject
" ⇒ Expand "Source" node ⇒ Double-click "main.cpp
", which is a template program to say "Hello, world!". - To build the program, select "Build" menu ⇒ Build.
- To run the program, select "Build" menu ⇒ Run.
- To create more source file or header file under the project:
- File ⇒ New File... ⇒ Select C/C++ source or C/C++ header.
- C++ ⇒ Next.
- In "Filename with full path" ⇒ Click the "Navigate" (...) button to navigate to the project directory and enter the new file name. Check both the "Debug" and "Release" boxes (or "All") ⇒ Finish.
Set Active Project
You can create more projects. However, the "Build" and "Run" commands are always apply to the active project, which is shown in bold. To activate a project: right-click on the project name ⇒ "Activate Project".
Open an Existing Project
To open an existing project, either:
- From "File" menu ⇒ "Recent Projects" ⇒ Choose the desired project; or
- From "File" menu ⇒ "Open..." ⇒ Navigate to your project directory ⇒ Choose "
ProjectName
.cbp
", where ".cbp" stands for CodeBlocks-Project.
Read "CodeBlocks' Common Errors" if ....
Writing Many Toy Programs under ONE Project
Although a project may contain many source files, there can only be one main()
function among all the source files. That is, you cannot keep two toy programs (each having a main()
function) in one project (you will get the error "multiple definition of 'main'" when you try to build the project).
You need to create one project for each toy program. This is clumsy!
Codeblock, nonetheless, allow you to add files or remove files from a project. The removed files are not deleted and remain in the folder. We could use this feature to write many toy programs under one project. The procedures are as follows:
- Create a C/C++ project called "ToyProgramProject" (read previous section on how to create a project). You shall get a "
main.cpp
" automatically. - Write your toy program on "
main.cpp
". Build and run the program. - To write another program: select "File" ⇒ "Save File as" ⇒ enter a program name such as "
myfirst.cpp
". Remove it from the project (because each project can only have one file withmain()
), by right-click on "myfirst
.cpp
" ⇒ "remove file from project". - Continue to write your second toy program on "
main.cpp
". Build and run. - Repeat Step 3 and 4 for another toy program.
- Suppose that you wish to run "
myfirst.cpp
" again: First remove "main.cpp
" from the project. Right-click on the project ⇒ Add File... ⇒ Choose "myfirst.cpp
" ⇒ Open ⇒ Check both the "Debug" and "Release" box ⇒ OK. You can now build and run the "myfirst.cpp
".
In brief, use the "Add File" and "Remove File" to place your desired toy program file (with the main()
function) under the active project. You can then "Build" the project and "Run" your toy program.
CodeBlocks' Common Errors
Cannot Compile any C/C++ Program after Installing CodeBlocks
Check:
- You downloaded the CodeBlocks with "MinGW GNU C/C++ Compiler" (e.g., "
codeblocks-10.05mingw-setup.exe
"). - Goto "Settings" menu ⇒ "Compiler..." ⇒ Select tab "Toolchain Executables" ⇒ Check the "Compiler's Installation Directory". It shall be set to the "MinGW" sub-directory of the CodeBlocks installation directory, e.g., "
c:\Program Files\codeblocks\MinGW
" suppose that CodeBlocks is installed in "c:\Program Files\codeblocks
".
Cannot Build or Run Program - Build/Run Buttons and Menu-Items are Grey and Not Selectable
A previous program is still running. You need to terminate the program by closing the output console window.
Error: undefined reference to `WinMain@16'
Check that you have a main()
function in your function. Check your spelling of main
!
(For C Programs) System Error: "xxx.exe has stopped working"
Check your scanf()
function. You probably omitted the '&'
before the variable name.
Debugging C/C++ Program in CodeBlocks
Able to use a graphics debugger to debug program is crucial in programming. It could save you countless of hours guessing on what went wrong.
Step 0: Write a C++ Program
Follow the steps in "Writing C++ Program (with Project)" to write the following C++ program, to be used for the debugging practice. This program computes and prints the factorial of n
(=1*2*3*...*n
). The program, however, has a logical error and produce a wrong answer for n=20
. (It outputs "The Factorial of 20 is -2102132736" - a negative number?!).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
/* * Compute the factorial of n, with n=20. * n! = 1*2*3*...*n */ #include <iostream> using namespace std; int main() { int n = 20; // To compute factorial of n int factorial = 1; // Initialize the product to 1 int i = 1; while (i <= n) { factorial = factorial * i; i++; } cout << "The Factorial of " << n << " is " << factorial << endl; return 0; } |
Run the program and observe the output produced:
The Factorial of 20 is -2102132736
Let's use the graphic debugger to debug the program.
Step 1: Set an Initial Breakpoint
Set an initial breakpoint at main()
function by clicking on the "left-margin" (right-side of the line number) of the line containing main()
. A red circle appears indicating a breakpoint has been set at that line. A breakpoint suspends program execution for you to examine the internal states.
Step 2: Start Debugging
From "Debug" menu, select "Start (F8)". The program begins execution but suspends its execution at the breakpoint, i.e., main()
. An yellow arrow (as shown in the diagram) appears and points at the main()
, indicating this is the next statement to be executed.
Step 3: Single-Step and Watch the Variables and Outputs
Click the "Debugging Windows" button on the "Debug" toolbar and select "Watches" to enable the "Watch" pane. (You could also do it from the "Debug" menu.)
Click the "Next line" button on the "Debug" toolbar to single-step thru your program. At each of the step, you could examine the internal state of your program, such as the value of the variables (in the "Watches" pane), the outputs produced by your program (in the console), etc.
Single-stepping thru the program and watching the values of the variables and the outputs produced is the ultimate mean in debugging programs - because it is exactly how the computer runs your program!
Step 4: Breakpoint, Run-To-Cursor, Continue and Stop
As mentioned, a breakpoint suspends program execution and let you examine the internal states of the program. To set a breakpoint on a particular line, click the left-margin of that line (or select "Toggle Breakpoint (F5)" from "Debug" menu).
The "Continue" resumes the program execution, up to the next breakpoint, or till the end of the program.
Single-stepping thru a loop with a large count is time-consuming. You could set a breakpoint at the statement immediately outside the loop (e.g., Line 12 of the above program), and issue "Continue" to complete the loop.
Alternatively, you can place the cursor on a particular line, right-click and select "Run-To-Cursor" to resume execution up to this line.
The "Stop" ends the debugging session. Always terminate your current debugging session using "Stop" or "Continue" till the end of the program.
Important: I can's stress more that mastering the use of debugger is crucial in programming. Explore the features provided by the debuggers.
Other Debugging Features
Step-Into and Step-Out: To debug a function, you need to use "Step-Into" to step into the first statement of the function. ("Step-Over" runs the function in a single step without stepping through the statements inside the function.) You could use "Step-Out" to return to the caller, anywhere within the function. Alternatively, you can set a breakpoint inside a function.
Watching a Variable: To add a variable into the "Watches" panel, goto "Debug" ⇒ "Edit Watch..." ⇒ "Add" ⇒ Enter the variable name ⇒ You can select the format, or "watch as array".
Tips and Tweaks
- Re-format Source Code: Right-click on the source file ⇒ Format this file (AStyle). [Source formatting feature is provided by a plugin called AStyle, which can be accessed via menu "Plugins" ⇒ "Source Code Formatter (AStyle)". To configure the formatting styles, goto "Settings" ⇒ "Editor..." ⇒ "Source Formatter".]
- Auto-Complete: type the initial letters of a keyword/identifier and press Ctrl-space to list the available options.
- Abbreviation: e.g., type "for" and press control-J to get the skeleton of for-loop. The abbreviation list can be configured in "Settings" menu ⇒ "Editor..." ⇒ "Abbreviations".
- Zoom in/out on Editor Panel: Either:
- From "Edit" menu ⇒ "Special Commands" ⇒ "Zoom" ⇒ "In", "Out", or "Reset", or
- Hold the control key and zoom in/out via the mouse scroll wheel, or
- Use keyboard shortcut: control number-pad + (zoom in), control number-pad / (zoom out).
- Configure Editor: Right-click on the editor panel ⇒ "Configure editor...".
- Source Formatter: You can choose the "Java" style.
- [TODO] more
- [How to link to API documentation?]
REFERENCES & RESOURCES
- CodeBlocks Mother Site @ http://www.codeblocks.org/.
- CodeBlocks' Wiki @ http://wiki.codeblocks.org/index.php?title=Main_Page.
- CodeBlocks' User Manual @ http://www.codeblocks.org/user-manual.


The wait is over.
Available on the
App Store
Get it on the
Google Play
Available on the
App Store
Get it on the
Google Play
RESERVE A PROFILE


| Coupon |
* Sponsored Results
Las Vegas Shows | Buy Popular Show Tickets Online | LasVegas.com
Whether it's the latest Cirque show, an established star or the next big thing, Las Vegas shows are always exciting. Reserve your tickets at LasVegas.com.
http://www.lasvegas.com/shows-and-events/shows/
insignia lcd 37 inch problems sharon baptist church chickasha
Las Vegas Shows | VEGAS.com
Las Vegas shows guide featuring Cirque du Soleil, top Las Vegas headliners, Las Vegas adult shows, Las Vegas magic shows, Las Vegas dinner show .
http://www.vegas.com/shows/
required documentation to visit germany chris cagle id be lyen
400 Elm Ave
Yukon,
OK 73099
oregonlive com family friendly
Family Night Dinner Group Studies Ministries for all ages
apprendre l'anglais a malte walt disney rug collection car seat covers padded
900 S Littler Ave
Edmond,
OK 73034
purchase used wood stove
Las Vegas - Entertainment Schedule - Event Calendar - Show ...
KÀ. KÀ, the unprecedented show from Cirque du Soleil at MGM Grand, combines acrobatic performances, martial arts, puppetry, multimedia, and pyrotechnics to .
http://www.mgmgrand.com/entertainment/entertainment-schedule.aspx
used cars kurt russell nutritional value of chocolate chips wood router photo software
500 S Country Club Rd
Hot Las Vegas Entertainment at Luxor Hotel and Casino!
If you're craving magnificent Vegas entertainment, the Luxor Hotel and Casino shows will blow you away! Choose Carrot Top, FANTASY, or various Headliners .
http://www.luxor.com/entertainment/
Shows in Las Vegas from Tix4Tonight
Shows in Las Vegas are easier to navigate with this complete list of shows playing Las Vegas from discount ticket mega-source, Tix4Tonight...
http://www.tix4tonight.com/shows-in-las-vegas.html
trust corporation of america stefan working ddr and czech shepherds agent orange and siamese twins
Basic Listings
226 S 29th St
Las Vegas Entertainment Insider
mamaposterfinal.jpg, TBA | MAMA - Coming Soon! Add to Favorites Info. Guillermo del Toro presents Mama, a supernatural thriller that tells the haunting tale of .
http://www.lasvegasentertainmentinsider.com/
upcoming singing competitions in central pennsylvania new pokemon series for new pokemon new york palace hotel new york
1202 W Grand Ave
Las Vegas Shows - Online Guide to Las Vegas ... - Best of Vegas
BestofVegas.com is your #1 source for Las Vegas Shows. Search for Las Vegas Show tickets and ticket deals on the Best Las Vegas Shows & Vegas .
http://www.bestofvegas.com/Shows-Tickets/
game genie rom torrent easel business card holder study exams for police test
116 E Georgia Ave
Las Vegas Theater Ticket Deals, Show & Concert Tickets | Travelzoo
Specials and discount tickets for Las Vegas shows, entertainment, events, tours, concerts, attractions and more at Travelzoo.
http://www.travelzoo.com/entertainment/las-vegas/
nikon camera gadget bag jesus feeds the five thousand modernized lonesome road blues bill monroe
301 S 2nd St
Paris Las Vegas - Entertainment in Las Vegas
Paris Las Vegas Hotel and Casino offers the best entertainment in Las Vegas. From shows and concerts to the most exclusive Las Vegas Events, Paris has it .
http://www.parislasvegas.com/casinos/paris-las-vegas/casino-entertainment/index.html
plantronics 220 vs 222 safety precaution safety rules people v wagman 99 ad2d 519
1910 S 20th St
Las Vegas Shows | Las Vegas Concerts & Events | Calendar of Events
From arenas to cabarets, the venues are as varied as the lineups. Stand-up comics, impressionists, ventriloquists and magicians share the spotlight with movie .
http://www.lasvegas.com/shows-and-events/
where do leopards thrive troy built lawnmower sudbury ontario lawyer civil rights teacher
728 W Michigan Ave
Las Vegas Online Entertainment Guide - Complete information ...
Las Vegas Online Entertainment Guide contains over 5000 pages of Las Vegas information including ratings and comments about all Las Vegas Hotel/Casinos.
http://www.lvol.com/
bed bath and beyond frederick ballet dancer music boxes texas tech versus smu
3340 S 16th St
Las Vegas Shows | Las Vegas Tickets | Cirque du Soleil Las Vegas
Discover all Las Vegas Shows from Cirque du Soleil and Buy tickets for one of our 7 show in Las Vegas (O, KÀ, Mystère, Zumanity, Love, Believe, Viva Elvis)
http://www.cirquedusoleil.com/en/destinations/las-vegas/home.aspx
agent orange and siamese twins escort girls stevenage herts safe driver classes birmingham al
828 S 9th St
Entertainment - Las Vegas Weekly
Las Vegas Weekly's latest entertainment news, photos and videos.
http://www.lasvegasweekly.com/entertainment/
pet grooming winn st woburn ma bvrp wireless connection manager acceleration circular track a b relative
1300 S 29th St
Las Vegas tickets, show dates, travel, map. Official Ticketmaster site
Recommended Vegas Shows. Carrot Top Terry Fator Garth Brooks · Blue Man Group Las Vegas Peepshow Cirque Du Soleil: O .
http://www.ticketmaster.com/lasvegas
cascade employers association salem or bvrp wireless connection manager silver surfer on marvel ultimate alliance
102 E Almar Dr
Las Vegas Shows - Las Vegas Leisure Guide
5 days ago . The absolute most complete & current guide to ALL Las Vegas shows and FREE tickets! Includes prices, dates, times, schedules and DIRECT .
http://www.lasvegas-nv.com/shows.htm
first frost porcelain dinnerware insurance program business rate monitoring paint natural steel restoration
320 S 4th St
Las Vegas | VEGAS.com - Las Vegas Hotels, Las Vegas Shows ...
Going to Las Vegas? Welcome to the Official Vegas Travel Site. Find deals on Las Vegas hotels, book tickets to Las Vegas shows and more at VEGAS.com.
http://www.vegas.com/
lori grenier earring sliding hp photosmart p1000 can't install disc cleanup translate in german
901 W Grand Ave
Las Vegas Shows and Attractions at The Mirage Hotel and Casino
The Mirage brings you the finest of all Las Vegas show entertainment, including LOVE by Cirque du Soleil, ventriloquist Terry Fator, and Ace's of Comedy.
http://www.mirage.com/entertainment/
sweet child o mine daycare beatles songs on mothers joint commission medications qid
2414 State Highway 92
First-Class Las Vegas Shows & Unique Entertainment
Our Las Vegas shows offer extraordinary and unique entertainment for everyone. See our Vegas shows, musical acts, and comedy schedule now.
http://www.troplv.com/entertainment
upcoming singing competitions in central pennsylvania monster golf rancho cordova ca
124 S 6th St
Arts & Entertainment - Las Vegas Sun News
Celebrities, music, theater, & shows on the Strip and beyond.
http://www.lasvegassun.com/ae/
problems ripping the disney dvd up can clerks work with specimens
3320 S 16th St
Arts and entertainment coverage - Las Vegas Sun News
Celebrities, music, theater, & shows on the Strip and beyond.
http://www.lasvegassun.com/news/ae/
crowne plaza hotel worchester ma george soros and oil speculation dr clark mount royal chiropractor
802 Frisco Ave
Las Vegas Entertainment, Shows & Nightlife - Mandalay Bay
Whatever your mood, you'll find a stellar array of worldwide entertainment from your favorite artists to Ultimate Fighting Championships. See the latest Vegas .
http://www.mandalaybay.com/entertainment/
cardio dr richard nelson orlando fl people v wagman 99 ad2d 519 santa elena spain property
609 W Highway 277
Entertainment, Live Shows, DJs and Nightlife at Monte Carlo Resort ...
Monte Carlo features the best entertainment Las Vegas has to offer, including world famous Blue Man Group, the hottest musical acts and poolside DJs.
http://www.montecarlo.com/entertainment/
www las vegas entertainment samuel adams beer fezzy wig history of mass media in america
2828 S 9th St
Las Vegas Hotel - Excalibur Hotel Reservations- Hotel rooms & suites
There's never been a better time to explore the excitement awaiting you at Excalibur. Treat yourself to some quality Excalibur time, at one of the finest resort hotel .
http://www.excalibur.com/entertainment/
housecleaning jobs melbourne australia university of alabama foster auditorium historical food vendor applications indiana
202 S 6th St
Las Vegas Shows & Entertainment on the Strip | Riviera Hotel ...
The Riviera Hotel is a source for the best Las Vegas Strip Entertainment & Shows , including Crazy Girls Sexiest Topless Revue & the best Comedy Shows.
http://www.rivierahotel.com/las-vegas-entertainment/
unit plans for teaching math lessons professional truck driver association courses
428 E Almar Dr
Las Vegas » Nightlife » Adult Entertainment - Yelp
The Best Adult Entertainment in Las Vegas on Yelp. Read about places like: Cirque du Soleil Zumanity, Chippendales, American Storm, Spearmint Rhino Adult .
http://www.yelp.com/c/las-vegas/adultentertainment
silver surfer on marvel ultimate alliance keep internet logged on the battle of yorktown summary
Total Vegas Entertainment
LAS VEGAS ATLANTIC CITY LAKE TAHOE NEW ORLEANS/BILOXI TUNICA. Username/TR #: Password/PIN*: JOIN NOW | Can't sign in? PrevNext. November .
http://www.totalrewards.com/total/las-vegas/entertainment/
Entertainment - Golden Nugget Las Vegas | Shows
Shows. World class entertainment. Headliners. Up-and-comers. And classic Las Vegas production shows. Performing live in our newly renovated 600-seat .
http://www.goldennugget.com/lasvegas/show.asp
Las Vegas Events and Entertainment at Planet Hollywood Resort ...
Planet Hollywood Resort and Casino is the most exciting Las Vegas events destination on the strip. See a show at the Planet Hollywood Theater or spend an .
http://www.planethollywoodresort.com/casinos/planet-hollywood/casino-entertainment/index.html
* Sponsored Results
| Select from the listings below | (direct mailing lists free) | |
|
joint commission medications qid 226 S 29th St Las Vegas Hotels, Shows, Casinos, Restaurants, Maps and Things ... |
||
|
what a sports chairman do 1202 W Grand Ave Las Vegas Entertainment, Events & Shows at Rio All-Suites Hotel |
||
|
systems in science activities 116 E Georgia Ave Las Vegas Entertainment of Boston |
||
|
seashell address book sets 301 S 2nd St Las Vegas News, Entertainment Listings, Weather, & Services | My ... |
||
|
wii fit new release 1910 S 20th St Las Vegas Shows on the Las Vegas Online Entertainment Guide ... |
||
|
apprendre l'anglais a malte 728 W Michigan Ave Las Vegas Shows, Tickets & Events | Critically-Acclaimed - Venetian |
||
|
copper sun's most importent quote 3340 S 16th St Las Vegas Top 10 Best Shows |
||
|
marriage to an australian citizen 828 S 9th St Las Vegas Shows & Entertainment Events |
||
|
www las vegas entertainment 1300 S 29th St Best Las Vegas Shows & Concerts | Events in Las Vegas | Treasure ... |
||
|
education theory and practice 102 E Almar Dr Las Vegas Shows and Entertainment | South Point Hotel Casino |
||
|
piercing laws texas ears 320 S 4th St Entertainment, Events & Shows at Flamingo Las Vegas |
||
|
garmin street pilot rebate 901 W Grand Ave Las Vegas Shows, Tickets & Events | Critically-Acclaimed ... |
||
|
world cup 2006 projected lineups 2414 State Highway 92 Production Shows - Las Vegas Advisor |
||
|
mercyful fate curse of the pharaohs 124 S 6th St Entertainment - Circus Circus Las Vegas Hotel & Casino |
||
|
kwc kg 53 ahb 3320 S 16th St Las Vegas Shows & Entertainment |
||
|
kansas city universe movie 802 Frisco Ave Las Vegas Showgirls and Entertainment - YouTube |
||
|
fix a bad credit report texas 609 W Highway 277 Caesars Palace Las Vegas Shows, Entertainment & Events |
||
|
basic genres of music 2828 S 9th St Concerts & Shows - Flamingo Las Vegas |
||
|
illegal drugs by paul gahlinger 202 S 6th St Las Vegas: Entertainment | Rock 'n' Roll Marathon Series |
||
|
wow rogue axe trainer 428 E Almar Dr Las Vegas Nightlife - Lounges, Bars & Nightclubs - Red Rock Resort |
||
| Select from the listings above | (john ragsdale cherokee county texas) | |


some inputs (without any listeners)
Listen on events (input and change)
Some textwith some words!
These inputs are added in JS and not in HTML. Only their group elements are parsed.


Panipat song launch: Kriti Sanon’s anarkali looks dated
Sticking to the period film theme, Kriti Sanon was spotted in a Rohit Bal outfit. The black anarkali, clinched at the waist, had elaborate flower motifs at the edges.
by Lifestyle DeskArjun Kapoor and Kriti Sanon-starrer Panipat is about to release and recently Mann Mein Shiva was launched. The event was attended by the actors as well as the director Ashutosh Gowariker. Sticking to the period film theme, Sanon was spotted in a Rohit Bal outfit.
The black anarkali, clinched at the waist, had elaborate flower motifs at the edges. Styled by Sukriti Grover, the look did not work for it seemed too dated. Although floral prints are in, this seemed a bit off. The sleeves and the sweetheart neckline further made things worse. The look was rounded out with statement earrings, hair tied in a bun adorned with red roses.
The actor generally aces traditional look. At the trailer launch, she looked lovely in a Raw Mango ensemble. Styled by Grover, gorgeous pink lehenga with brocade work was teamed with a black blouse and the combination really worked well. This was paired with a black dupatta and was accessorised with a gorgeous choker, earrings from Amrapali Jewels. It was completed with hair parted at the centre and smokey eyes.


Congress seeks action against those distributing gifts to voters
by Special CorrespondentAccusing the BJP of poll code violations, the Congress has urged the Election Commission to initiate action against those offering inducements to voters.
“The EC should initiate action against those from whom saris have been seized in Hunsur. The covers that were used to pack the saris had the photograph of C.P. Yogeshwar and were meant to be given as gifts to voters,” former MP V.S. Ugrappa told presspersons here on Sunday. Incidentally, before the BJP named A.H. Vishwanath, disqualified MLA who earlier represented Hunsur, as its candidate, the party had toyed with the idea of fielding BJP leader from Channapatna Mr. Yogeshwar. Further, he said that Chief Minister B.S. Yediyurappa urging voters to back disqualified legislators to enable him to make them Ministers also amounted to inducing voters.
Responding to the allegations, Mr. Yediyurappa said it had become a norm for former Chief Minister Siddaramaiah and company to complain.


{% extends "blog/base_header.html" %} {% load static %} {% block title %}BradyOnTech{% endblock %} {% block content %} {% include "blog/includes/detail_header.html" %}
I've developed and curated some code snippets for everyone's use! The aim for these is to be short, sweet, and simple. I want anyone to be able to grab these and be able to use them and build on top of them in their own sites without having to labor through a bunch of code. I try to comment as much as I can to describe how each part works, so try them out!
Each post below is a mini-blog post which (over)explains one specific topic until full understanding. This allows for the larger blog posts and tutorials to keep from getting side-tracked on something specific, as well as allowing readers a quick and easy access to specific topics explained at depth.
{% if explained %} {% for e in explained %}{{ e.title }}{{ e.created }}
{% endfor %} {% else %}Coming Soon!
{% endif %}


Welcome to South Slave Shore National Park. In this park, our goal is to preserve the nature around us, so you as tourists can explore and discover the magnificence of our park on your own. You are guaranteed to enjoy thousands of lakes of all shapes and sizes at our park, from ones that are less them 100 meters across to the massive Great Slave Lake. Our rolling hills are not too high, only reaching elevations of about 200 meters which is an ideal place to go hiking across. Ascend the hills and see the surrounding landscape, and descend down the hills to enjoy the forest around you. With a big lake nearby, walk along the shores of Great Slave Lake, or even take a ferry to some of the northern islands and have the experience of a lifetime.
You can explore our park in the following ways:
In addition, our park offers many different activities. You can click on any one of the activities to go to the different activity section that describes each of the following activities:
Here is a brief overview of our park:
| Area | 4 000 km² |
|---|---|
| Perimeter | 444 km |
| Biomes | Boreal and Taiga Forest |
| Landform Regions | On the border between the Canadian Shield and the Interior Plains |
| Soil Type | Wet-climate soil |
| Average Temperature | 0.2°C |
To book campsites, click here
To explore more about our park, click the tabs above or check out our top 3 attractions below:
Our national park offers a total of 9 places to stay. Click on the image to jump to the corresponding section:
We have a total of 6 campsites. Five of them are located near the entrance of the park while the other one is located near the northeastern edge of the park.
For novice campers, campsites 1-5 are perfect. Equipped with flowing water and electricity, including the scenery around with the optimal placements to other services makes these campsites a nice package for one who just wants a day or two off work to relax.
The following campsites are for campers that just want a casual camping experience. The data below describes each of the campsites and its accessibility features, booking times as well as its opening time.
| Campsite | Brief Description |
|---|---|
|
Campsite 1: 12.5 km² 150 Campsites Available Max 6 people per site Currently rated 9/10 based on recent reviews Utilities: Sanitary Disposal Station First Aid Parking Restrooms Drinking Water Emergency Telephone Recycling |
|
|
Campsite 2: 9.38 km² 75 Campsites Available Max 5 people per site Currently rated 8.7/10 based on recent reviews Utilities: Sanitary Disposal Station First Aid Parking Restrooms Drinking Water Emergency Telephone Recycling Wheelchair Accessible |
|
|
Campsite 3: 11.1 km² 90 Campsites Available Max 6 people per site Currently rated 4.5/10 based on recent reviews Utilities: Sanitary Disposal Station First Aid Parking Restrooms Drinking Water Emergency Telephone Recycling Wheelchair Accessible |
|
|
Campsite 4: 13.9 km² 150 Campsites Available Max 4 people per site Currently rated 9.8/10 based on recent reviews Utilities: Sanitary Disposal Station First Aid Parking Restrooms Drinking Water Emergency Telephone Recycling Showers Wifi Electrical Service |
|
|
Campsite 5: 22.7 km² 200 Campsites Available Max 8 people per site Currently rated 5.4/10 based on recent reviews Good for those who want to try 'no waste' camping Utilities: First Aid Parking Restrooms Drinking Water Emergency Telephone |
| Site | Cost per Night (As of 04/03/19) | Opening and Closing Dates | Availability (As of 04/03/19) |
|---|---|---|---|
| Campsite 1 | $87 | April 16, 2019 to October 24, 2019 | 56% Booked |
| Campsite 2 | $84 | Mar 23, 2019 to November 7, 2019 | 88% Booked |
| Campsite 3 | $73 | April 1, 2019 to October 4, 2019 | 36% Booked |
| Campsite 4 | $93 | April 6, 2019 to October 28, 2019 | 93% Booked |
| Campsite 5 | $68 | Mar 23, 2019 to September 13, 2019 | 14% Booked |
Calling all adventurers! If you qualify as one, campsite 6 is for you. Its rugged terrain makes camping on the slant of a hill or even dangling from treetops possible! This campsite provides even campers with the highest level of experience a challenge.
Campsite 6 is a special campsite. Nestled in rugged terrain, it is for campers who have a high level of experience with camping. Those who are inexperienced are recommended to bring someone experienced, but all are welcome. The table below (May need to scroll down a bit) shows the information for this campsite, the RV park, the Park Lodge and the Boathouse Site.
The RV park is great if you just want to relax, but don't want to spend too much time cooking outside, setting up a tent, and having a hard time when there is rain. Our RV park offers enjoyment for those who are craving an escape but not too full of exploration.
For people who want to take relaxation to a whole new level, the Park Lodge is a good option for you. Each lodge is equipped with a working fireplace and washroom, to ensure you can stay warm and clean. Enjoy the bonfire at the center of the Park Lodge area at night, participate in activities that run all day, or just take a nap in your lodge.
The Boathouse Site is one of our most popular attractions. Spend a day camping, on water! Our boathouses are fully equipped with a washroom system, beds, and basically anything you would find in a simple house. Remember you have to canoe there. Enjoy your time out at the lake, and even try to catch some fish, but just remember to not get seasick!
| Area | Brief Description |
|---|---|
|
Campsite 6: 9.6 km² 45 Campsites Available Max 2 people per site Currently rated 6.8/10 based on recent reviews Utilities First Aid Parking Restrooms Drinking Water Emergency Telephone Recycling |
|
|
RV Park: 32.3 km² 75 Campsites Available Max people per site based on RV size. (RV must fit in the site) Currently rated 7.9/10 based on recent reviews Utilities First Aid Parking Restrooms Drinking Water Emergency Telephone Electrical Service Litter Receptacle |
|
|
Park Lodge: 36.9 km² 50 Campsites Available Max 5 people per site Currently rated 8.2/10 based on recent reviews Utilities First Aid Parking Restrooms Drinking Water Emergency Telephone Electrical Service Litter Receptacle Campfire |
|
|
Boathouse Site: 17.4 km² 25 Boathouses Available Max 4 people per site Currently rated 9.3/10 based on recent reviews Utilities Marina First Aid Parking Restrooms Drinking Water Emergency Telephone Showers |
| Site | Cost per Night (As of 04/03/19) | Opening and Closing Dates | Availability (As of 04/03/19) |
|---|---|---|---|
| Campsite 6 | $89 | April 10, 2019 to September 31, 2019 | 4% Booked |
| Park Lodge | $125 | All Year | 80% Booked |
| RV Park | $99 | February 3 to September 9, 2019 | 50% Booked |
| Boathouse Site | $130 | May 4, 2019 to August 31, 2019 | 100% Booked |
To book campsites, click here
Experience treetop trekking at our park for those who want a thriller, but also want to stay safe. A perfect way to step outside of your comfort zone.
More information located at the visitor’s center, information centers and the location of this activity.
Our roads are extremely long, covering a distance of about 510 kilometers. The roads are for you to enjoy driving through, day and night.
More information located at the visitor’s center and information centers.
The normal campsites for those who want a safe and fun experience. Perfect for family fun or individual recreation.
For those who want a challenge from traditional camping, Camping on the edge of slanted rocks would be perfect for and adventurer of any type.
Perfect for those who love a luxury lifestyle but want a chance to get our into the open. The park lodge promises a warm place to stay and enjoy.

 If you want to satisfy both of these experiences, you should come out in the waters and feel what it's like to live on a movable house.
More information located at the visitor’s center, information centers, the location of this activity and the Campgrounds tab.
Fun for all ages, just the water can sometimes be a bit cold. Otherwise, you can enjoy the scenery around you as you row and observe clear waters.
Go alone or go as a group, and explore the northwest waters for yourself.
Exclusive for travellers only in the summer, Try this combination of canoeing and surfing, while you look at the fish swimming below your board.
Our tours to the Northern Islands of our park can be reached by taking a 10-minute boat ride. Enjoy the breeze while it lasts.
With the abundance of fish, you could come to our park and try to catch some yourself. The spring is the best season if you want to catch some trout, and the summer is great if you want to catch some smallmouth bass. Have freshly caught dinner at your campsite. Just remember fishing regulations, and how much to catch.
More information located at the visitor’s center, information centers, and the location of this activity.
Take a day’s time to explore each of the 16 trails of various difficulty (5 easy, 5 medium, and 6 difficult), and even encounter some animals there, but remember, safety is the first priority.
More information located at the visitor’s center, information centers, the location of this activity, and the map.
Learn about the remains of a once thriving village and visit this well preserved archeological site. The area is yours to explore, with a video that plays repeatedly every 30 minutes in one of our buildings.
More information located at the visitor’s center, information centers, the location of this activity, and the History tab.
We have a lot of cool facts and awesome features. Continue below to learn more about us.
Our land is composed of two very distinct parts. The western half is part of the Interior Plains and have rolling hills and rich soil. They were formed around 1.9 billion years ago and are made of sediments worn down from the Canadian Shield. The eastern half is part of the Canadian Shield which has rugged terrain and little soil.
The Canadian Shield is one of the oldest regions of the world, being formed nearly 4 billion years ago. This region used to have high mountains but millions of years of erosion have worn them down to the rolling hills they have now. The last ice age had glaciers that, when the planet began to warm up again, retreated and scraped the soil off, leaving the rocky look today.
The Interior Plains used to be shallow seas with aquatic life. The seas housed many marine animals and coral reefs. When the ground under the sea rose, the coral reefs died and left behind fossil fuels and fertile soil from the dead marine animals. The land is now used for farming and extraction.
Our land is on the Canadian boreal and taiga forest, with its coniferous trees and cold weather. The treeline is
still further north than us meaning that our trees can still survive, though with some special
adaptations.
In the western part of Great Slave Lake, lake whitefish are abundant as they avoid the deeper areas of the eastern part. In the eastern part, lake trout and grayling can be seen. Near the southern shore, you can find goldeye, white suckers, and walleye.
The Great Slave Lake is part of the Canadian boreal and taiga forest. This means that there are many birds and mammals adapted to the cold. The boreal forest contains moose, caribou, grizzly and black bears, wolves, kingfishers, bobcats, owls, and chickadees. Many of these animals have adapted to the climate of the boreal forest such as gaining white fur, thicker feathers, or better senses to find and catch its prey.
You can hover over the pictures with your mouse to determine the animal or plant
Our land lies south of the treeline, meaning that you can find coniferous forests in us. We are however between
the woodland and tundra climate regions. We have jack pine and spruce near the lake in thick forests.
 The Rocher River community, probably one of the first European settlements, had over 200 people, but they have been forced away by the school's destruction by fire in 1960, the closing of the Hudson's Bay Company's post, and the burning down of the Ed and Rose Demelt's store. The construction of the Taltson River dam upstream from the community further increased the need to leave, as the community was dependent on hunting and trapping to live. After the dam was built, the community which once thrived at Rocher River all left, leaving an abandoned village.
The former residents of the Rocher River found themselves in a new place. Some got a job, some joined other first nations tribes, and some even found a good home. However, there were those who were not so lucky. The unfortunate individuals found themselves turning to alcoholism and ending up dying on the streets of Yellowknife.
Some of the once inhabitants of Rocher River still return to their seasonal cabins where the former town was.
The Great Slave Lake is one of the several large lakes in northern Canada, and they were made from retreating
glaciers that scraped soil away and melted to create the lake we know today. The deepest point of the lake,
Christie Bay (which is not in our park), is 614 meters, carved from the glaciers that one existed. This lake, like
the other large northern lakes, lays on the boundary between the Interior Plains and the Canadian
Shield.
Evidence of civilization living near Great Slave Lake can be traced back to over 5000 BCE, belonging to the people of the Dene, otherwise known as 'Slaveys' who lived on the eastern shore of the lake.
However, in the 18th to the 19th century, as the exploration of Canada started, non-indigenous people (Europeans) Started to visit, and even settle near Great Slave Lake. Trade was developed between the indigenous and the non-indigenous, as the Dene people began to establish their own trading post. As time passes, more trading posts became apparent, including Fort Resolution, after the Hudson Bay Company and the North West Company combined.
You can hover over the image with your mouse for a short caption:
In the late 19th century, social changes to the indigenous people living around Great Slave Lake started. The arrival of Christian missionaries set down the establishment of 3 residential schools near Great Slave Lake. The first one in Fort Providence, The Second one in Hay River and The final one in Fort Resolution.
You can hover over the image with your mouse for a short caption:
The First Nations near the trading posts started to complain, and there were disputes between them and other tribes and also with the Europeans, and some First Nations made complaints about their rights to fishing taken away. The Europeans decided that it was best to just offer them a one time payment to settle their legal claims with the government.
The discovery of gold in 1934 set off a chain of events in the North side of the lake, causing a gold rush. A company, Consolidated Mining and Smelting opened Con Mine in 1938, and was joined with another one, Great Mine in 1948 after World War II. Later, a zinc mine was opened on the south shore of Great Slave Lake, and a town was built and later abandoned after the closure of the zinc mine in 1988, Con Mine in 2003 and Great Mine the year following.
Additionally, the post war period brought many fishers to Great Slave Lake, and with an analysis done by biologists, the lake was found to be blooming with fish, and this would be a great opportunity for the harvesting of fish. As a result, the government established fisheries near the shores of Great Slave Lake, where both indigenous and non-indigenous people would often come and fish.
We are cleaning up the arsenic in and around the park and lake. The arsenic trioxide was produced in the Giant Mine that produced gold. The mine has since closed but the arsenic is still floating around. An enormous 237 000 tons of arsenic dust was stored underground just hundreds of meters from the lake, threatening further contamination. We will collaborate with the ongoing cleanup from the government.
You can help us by not throwing trash into the lake and not drinking the lake water. Please do not feed wild animals as they may eat something different. Feeding them unknown foods may shock their systems and could cause injury or death to the animal.
Failure to follow basic park rules will result in warnings, fines and permanent bans from our park. Several basic ones are listed below:
Q: How can I get here?
A: You can get here by taking the Fort Resolution highway and continuing on the extension to the park.
Q: Can I cancel my campsite reservation once I confirmed it?
A: Absolutely. You can cancel anytime. Just go to the booking spreadsheet, go to my campsites, and then click
on the cancel button.
Q: How do I change a campsite?
A: Just go to the booking spreadsheet, go to my campsites, and then click on change. Then choose a new campsite.
Be warned that others may have picked the campsite that you want.
Q: Why doesn't campsite 6 fall under the 'campsites' category?
A: Campsite 6 is a special campsite. Its difficulty level is much higher than the conventional ones (Campsites
1-5). It is because of its difficulty which makes it stand out from the rest so we include it with the others.
Q: Is the drinking water safe, or should I still boil my water?
A: The tap water has been filtered and safe. However, we strongly recommend that you still boil your drinking
water as other bacteria may have found their way into the water after our filtration but before usage.
Q: Do I have to purchase firewood?
A: Yes, you are not allowed to use wood from our park or bring your own firewood, mainly because the preservation
of our park is very important to us and you are not allowed to bring your own for the risk of invasive species.
Q: If I booked a spot in the lodge or the boathouses, what should I bring?
 Washrooms and empty bunks at the lodge and the boathouses are supplied.
Q: Is it safe to swim in the lake?
A: If you want to, you can. However, keep in mind that some areas of the lake has moderate levels of arsenic, so exercise
caution when there are toddlers playing around. Do not encourage them to drink the lake water or eat the dirt or mud.
Eleni Stanton
"This park was amazing. Wonderful scenery, beautiful blue lakes. I booked campsite 4. electricity, clean water,
clean showers, pretty much anyone could ask for. Maybe it's too luxurious. A place like this to have wifi, but
overall this park is amazing."
★★★★★★★★☆☆
Reon Wagstaff
"Consider myself lucky. I was fortunate enough to get a spot at the boathouses. Wow, I was amazed. The waters
were so clear the time I stayed there. It was incredible yet scary. Now here is a bit of advice. Don't I mean
DON'T TRY TO SWIM. It freezing in the middle of August.  That what the railings are for."
★★★★★★★☆☆☆
Dione Monagham
"This park is amazing. I booked campsite one, and I was able to enjoy every single one of the trails, did
encounter a friendly bear."
★★★★★★★★★★
Stephan Hanton
"I booked 5 cuz it wuz cheap af, y'know but once i got there. Yoo lowkey this campsite is so sketch man. Can't
get a spot.
★★☆☆☆☆☆☆☆☆
Oscar Tim
"The park was good, not as bad as the other one's I've been to before. Like the place has good stuff such as the
trails, good showers, and yeah. Something I'd've wanted to know beforehand that the campsites were full of
people, but other than that the place is great."
★★★★★★★★☆☆
Mopa Doblons
"I booked campsite 6. I thought I was good with all my skills, but don't underestimate this campsite. While I as
camping slanted, a jagged rock ripped my tent and I rolled down like maybe 10 meters. To whoever is reading
this, be careful and be prepared. Get good gear. The campsite shops got it all. Otherwise, a great place to
spend if you don't break your arm."
★★★★★★☆☆☆☆
Linas Heamtoaster
"Very fun. Created a dope website about it using campsite 4's wifi."
★★★★★★★★★☆
Yowitza Altoberet
"Went for an 8 day medley. Each day I would cycle to each of the different campsites. They were all good, and
being sort of a litterer, I did get shouted ad by some old guy from camp 5, but that's fine. This park is
sick!"
★★★★★★★★★★
Alberto Hsing
"The whole park thing was pretty good. I went on their website and it looked pretty professional, especially for
a new one. The fact that the webpage actually resembles and feels like the actual park is something I wouldn't
have expected. Pretty happy that I booked early to check it out. The staff there were really nice and were
extremely helpful. I nearly walked off into the outhouse thinking it was a smaller cabin and a passing worker
called out to me to stop. Would come here next year for sure."
★★★★★★★★★☆


AWS development works in geodetic area
Jeffery Liang, 2017-2018
Location Information group, LINZ
Enterprise central DB
Bulk data extraction toolkits
LINZ data Service
Landonline system
Sub-systems (such as Geodetic system)
OpenSource Project of Geoscience Australia
Production deployment of Sitelog Manager
VPC, Network, Asg/ELB, CodeDeploy Setup
Lambda, SNS, S3, CloudFront, Cognito, Role-Policy Setup
# Terraform is soooo Cool!!
Especially `Terraform state / plan` command
"Terraform state surgery" to Cloud deployment
is similar to
"Git interactive rebashing" to Git repository manipulation
#CloudwatchLogs is sooo hard to understand...
awslogs get [cloudwatchlogs] -S -G --start [start_time] --end [end_time] \
| egrep --color 'ERROR|WARNING|RequestId' \
| pv --quiet --line-mode --rate-limit 1
What does it mean to our customer? check
this outQ: Run out of disk space
Sol: Upload into Amazon
Anyting else?
The authoritative GNSS data management system for storing searching sharing
Backend: S3 file index, S3 files' tagging/meta-attributes
Frontend: API Gateway, Cloudfront with Custom Policy, A static website
GNS Science - PositioNZ station data (per contract)
Pull data and monitor/verify their quality.
Volunteerily provided by private/public vendors UNAVCO
Pull data and try improving data quality.
FTP=>S3; S3=>S3
Parse header or query sitelog
Compression or decimation of RINEX files
FAN-OUT: use SNS ; So SQS Queue, Kinesis, Lambda could all get triggered by the same message/event
Decouple and FAN-IN: use SQS (for decoupling domain-level lambda and utility-level lambda)
FAN-IN: use utility-level lambda Lamda invocations
>> Lambda's Throttling/Concurrency
>> Lambda's termination
>> Lamda failures (Timeout, Deadletter failure, DB credit Drain out )
>> On-demand services(in terms of billing): Lambda, RDS => DynamoDB/ Aurora Serverless
>> Lambda retry (explicitly invoke, or invoked by other services)
1. Build custom Lambda container image;
2. Automatically handle "system library/dependency packaging" ;
3. Partially update lambda deployment package; (probably this improvement should happen to CodeDeploy)
==> PLEASE, Because I just need to update user-level source code? Not those dependent packages JARS or LIBS
Interfacing end-user
Standalone EXE (un)authenticated - On hold
Cognito Identity Provider (STS + IAM Role)
Public content passthrough by Cloudfront
Protected content via Cloudfront
==> custom policy + Lambda + API GW
Q and A
Separate account but only one for each BU
Stages (Dev/Uat/Prod) under one account
- Separate VPC for each stage/project
- AWS Config; Basic account support (vendor)
- Most resources are separated between projects
Since Nov 2017
- Sitelog Manager
- Experiment of BDE Uploader in AWS
- GNSS data archive
- Geodetic System Migration(Lift-And-Left)


I've been taking paroxetine for about 2 months now. I was diagnosed a few months ago with moderate depression and bipolar type 2. At first, it was great. I felt invincible, manic, energetic. The feeling was awesome. But, like any drug, my body became tolerant, and I went back to being my old self again. The difference this time was, I noticed that I felt continuasly stoned, and lost a part of me, the part that actually enjoyed the few things in life that I once enjoyed. It was like I had lost feeling to my soul. So, I started drinking more, and smoking more marijuana, and would notice myself fall deeper in the whole. My relationship with my girlfriend started to deteriorate. I stopped seeing my friends. I lost the ambition and drive at work. I lost the desire for intamcy, and any activities I once enjoyed.
But I think the worst thing that happened was this recent weekend.  I was extremely rude and mean to her (something that I never was to anyone, especially her). So, I went to a party, had a few beers and came home. I had taken my dose later in the day (I usually take it in the morning) and felt a little out of it. So, it was around 10:00 pm. and we got into a fight. All of a sudden, I'm on the floor, in my bedroom, on my knees, crying uncontrollably. She was comforting me. Apparently, what had happened was, I was sitting on my stairs, and started to bang my head real hard on the wall. At this point I started to walk upstairs, mumbling incoherent words, and when my girl tried to walk in the bedroom where I was, I was slamming the door trying to keep her out.  I've had a headache for a few days now, and a huge bump on the side of my head.
Well, I'm continuing to take the paroxetine, and I feel okay now... I've been having re-occurring thoughts of suicide, followed by major depression in the past few weeks. I don't know what's wrong with me, but I'm beginning to think it's the paroxetine.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Overflow
a place to inspire builders of the next generation
iOS & Android Development
Ever though about building your own mobile app?
HTML & CSS
A course on the foundations of building a simple website.
LEGO Mindstorms EV3
Workshop on building programs to run on the LEGO EV3 kit.
Git Version Control
Starting your very first Git repository.


Moodologist
During Florida State Universities 30 hour hackathon, students from all around the east coast went from concept to prototype in one short weekend.
My team decided to work on a web app that we named "Moodologist" which would be your new personal bartender. Moodologist is an interactive webpage that generates an alcoholic beverage for you based on your mood. So instead of sitting at the bar not knowing what to order, Moodologist will give you the perfect drink you never knew you wanted in just a few clicks. The user is given the option to pick from 4 categories on the home page menu: emoji, landscape, words or colors. From the option chosen, the webpage will generate a drink that best fits your mood.
Each drink has been given a mood property based on the color of the drink, flavor (mixed with fruits, soda, etc.) and taste (sweet, sour, bitter) of the drink. The site utilizes HTML, CSS, Javascript, JQuery, and is built from scratch on the Bootstrap framework. The site was built within the 30 hour time limit of the competition.
At the end of the competition, our group was chosen as one of the final six to present our project in front of the entire hack fsu participants. We are happy to have gotten as far as we have!
Some Links
Checkout our article in the local newspaperWorking Moodologist Design


---
layout: post
title: aerial is a design practice specialising in the
date: '2008-05-25T10:09:48+01:00'
tags: []
tumblr_url: http://backlog.robbevan.com/post/35977195/aerial-is-a-design-practice-specialising-in-the
---
Aerial is a design practice specialising in the creation of tailored emotional experience.


| 1 | /* Woodstox Lite ("wool") XML processor | |
| 2 | * | |
| 3 | * Copyright (c) 2006- Tatu Saloranta<EMAIL_ADDRESS>| |
| 4 | * | |
| 5 | * Licensed under the License specified in the file LICENSE which is | |
| 6 | * included with the source code. | |
| 7 | * You may not use this file except in compliance with the License. | |
| 8 | * | |
| 9 | * Unless required by applicable law or agreed to in writing, software | |
| 10 | * distributed under the License is distributed on an "AS IS" BASIS, | |
| 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| 12 | * See the License for the specific language governing permissions and | |
| 13 | * limitations under the License. | |
| 14 | */ | |
| 15 | ||
| 16 | package com.fasterxml.aalto.in; | |
| 17 | ||
| 18 | import com.fasterxml.aalto.util.NameTable; | |
| 19 | ||
| 20 | /** | |
| 21 | * This is a symbol table implementation used for storing byte-based | |
| 22 | * PNames, specifically, instances of | |
| 23 | * ({@link PNameC}). | |
| 24 | */ | |
| 25 | public class CharBasedPNameTable | |
| 26 | extends NameTable | |
| 27 | { | |
| 28 | final static int MIN_HASH_SIZE = 16; | |
| 29 | ||
| 30 | protected static final float DEFAULT_FILL_FACTOR = 0.75f; | |
| 31 | ||
| 32 | /* | |
| 33 | /********************************************************************** | |
| 34 | /* Actual symbol table data | |
| 35 | /********************************************************************** | |
| 36 | */ | |
| 37 | ||
| 38 | /** | |
| 39 | * Primary matching symbols; it's expected most match occur from | |
| 40 | * here. | |
| 41 | */ | |
| 42 | protected PNameC[] _symbols; | |
| 43 | ||
| 44 | /** | |
| 45 | * Overflow buckets; if primary doesn't match, lookup is done | |
| 46 | * from here. | |
| 47 | *
 | |
| 48 | * Note: Number of buckets is half of number of symbol entries, on | |
| 49 | * assumption there's less need for buckets. | |
| 50 | */ | |
| 51 | protected Bucket[] _buckets; | |
| 52 | ||
| 53 | /** | |
| 54 | * Current size (number of entries); needed to know if and when | |
| 55 | * rehash. | |
| 56 | */ | |
| 57 | protected int _size; | |
| 58 | ||
| 59 | /** | |
| 60 | * Limit that indicates maximum size this instance can hold before | |
| 61 | * it needs to be expanded and rehashed. Calculated using fill | |
| 62 | * factor passed in to constructor. | |
| 63 | */ | |
| 64 | protected int _sizeThreshold; | |
| 65 | ||
| 66 | /** | |
| 67 | * Mask used to get index from hash values; equal to | |
| 68 | * mBuckets.length - 1, when mBuckets.length is | |
| 69 | * a power of two. | |
| 70 | */ | |
| 71 | protected int _indexMask; | |
| 72 | ||
| 73 | /* | |
| 74 | /********************************************************************** | |
| 75 | /* Information about concurrency | |
| 76 | /********************************************************************** | |
| 77 | */ | |
| 78 | ||
| 79 | /** | |
| 80 | * Flag that indicates if any changes have been made to the data; | |
| 81 | * used to both determine if bucket array needs to be copied when | |
| 82 | * (first) change is made, and potentially if updated bucket list | |
| 83 | * is to be resync'ed back to master instance. | |
| 84 | */ | |
| 85 | protected boolean _dirty; | |
| 86 | ||
| 87 | /* | |
| 88 | /********************************************************************** | |
| 89 | /* Life-cycle | |
| 90 | /********************************************************************** | |
| 91 | */ | |
| 92 | ||
| 93 | /** | |
| 94 | * Main method for constructing a master symbol table instance; will | |
| 95 | * be called by other public constructors. | |
| 96 | * | |
| 97 | * @param initialSize Minimum initial size for bucket array; internally | |
| 98 | * will always use a power of two equal to or bigger than this value. | |
| 99 | */ | |
| 100 | public CharBasedPNameTable(int initialSize) | |
| 101 | { | |
| 102 | // Let's set flags so no copying of buckets is needed: | |
| 103 | _dirty = true; | |
| 104 | ||
| 105 | // No point in requesting funny initial sizes... | |
| 106 |
2
1. 2. |
if (initialSize < 1) { |
| 107 | throw new IllegalArgumentException("Can not use negative/zero initial size: "+initialSize); | |
| 108 | } | |
| 109 | { | |
| 110 | int currSize = MIN_HASH_SIZE; | |
| 111 |
2
1. 2. |
while (currSize < initialSize) { |
| 112 |
1
1. |
currSize += currSize; |
| 113 | } | |
| 114 | initialSize = currSize; | |
| 115 | } | |
| 116 | ||
| 117 | _symbols = new PNameC[initialSize]; | |
| 118 |
1
1. |
_buckets = new Bucket[initialSize >> 1]; |
| 119 | // Mask is easy to calc for powers of two. | |
| 120 |
1
1. |
_indexMask = initialSize - 1; |
| 121 | _size = 0; | |
| 122 | ||
| 123 | /* Let's use 3/4 fill factor... | |
| 124 | */ | |
| 125 |
3
1. 2. 3. |
_sizeThreshold = (initialSize * 3 + 3) >> 2; |
| 126 | } | |
| 127 | ||
| 128 | CharBasedPNameTable(CharBasedPNameTable parent) | |
| 129 | { | |
| 130 | _symbols = parent._symbols; | |
| 131 | _buckets = parent._buckets; | |
| 132 | _size = parent._size; | |
| 133 | _sizeThreshold = parent._sizeThreshold; | |
| 134 | _indexMask = parent._indexMask; | |
| 135 | ||
| 136 | // Need to make copies of arrays, if/when adding new entries | |
| 137 | _dirty = false; | |
| 138 | } | |
| 139 | ||
| 140 | /** | |
| 141 | * Method that allows contents of child table to potentially be | |
| 142 | * "merged in" with contents of this symbol table. | |
| 143 | *
 | |
| 144 | * Note that caller has to make sure symbol table passed in is | |
| 145 | * really a child or sibling of this symbol table. | |
| 146 | */ | |
| 147 | public synchronized void mergeFromChild(CharBasedPNameTable child) | |
| 148 | { | |
| 149 | // Let's do a basic sanity check first: | |
| 150 |
2
1. mergeFromChild : changed conditional boundary → SURVIVED 2. mergeFromChild : negated conditional → SURVIVED |
if (child.size() <= size()) { // nothing to add |
| 151 | return; | |
| 152 | } | |
| 153 | ||
| 154 | // Okie dokie, let's get the data in! | |
| 155 | _symbols = child._symbols; | |
| 156 | _buckets = child._buckets; | |
| 157 | _size = child._size; | |
| 158 | _sizeThreshold = child._sizeThreshold; | |
| 159 | _indexMask = child._indexMask; | |
| 160 | ||
| 161 | // Dirty flag... well, let's just clear it, to force copying just | |
| 162 | // in case. Shouldn't really matter, for master tables. | |
| 163 | _dirty = false; | |
| 164 | ||
| 165 | /* However, we have to mark child as dirty, so that it will not | |
| 166 | * be modifying arrays we "took over" (since child may have | |
| 167 | * returned an updated table before it stopped fully using | |
| 168 | * the SymbolTable: for example, it may still use it for | |
| 169 | * parsing PI targets in epilog) | |
| 170 | */ | |
| 171 | child._dirty = false; | |
| 172 | } | |
| 173 | ||
| 174 | /* | |
| 175 | /********************************************************************** | |
| 176 | // Public API, generic accessors: | |
| 177 | /********************************************************************** | |
| 178 | */ | |
| 179 | ||
| 180 | @Override | |
| 181 |
1
1. size : replaced return of integer sized value with (x == 0 ? 1 : 0) → SURVIVED |
public int size() { return _size; } |
| 182 | ||
| 183 | @Override | |
| 184 |
1
1. maybeDirty : replaced return of integer sized value with (x == 0 ? 1 : 0) → SURVIVED |
public boolean maybeDirty() { return _dirty; } |
| 185 | ||
| 186 | /* | |
| 187 | /********************************************************************** | |
| 188 | /* Public API, accessing symbols | |
| 189 | /********************************************************************** | |
| 190 | */ | |
| 191 | ||
| 192 | public PNameC findSymbol(char[] buffer, int start, int len, int hash) | |
| 193 | { | |
| 194 |
1
1. findSymbol : Replaced bitwise AND with OR → KILLED |
int index = hash & _indexMask; |
| 195 | PNameC sym = _symbols[index]; | |
| 196 | ||
| 197 | // Optimal case; checking existing primary symbol for hash index: | |
| 198 |
1
1. findSymbol : negated conditional → KILLED |
if (sym != null) { |
| 199 |
1
1. findSymbol : negated conditional → SURVIVED |
if (sym.equalsPName(buffer, start, len, hash)) { |
| 200 |
1
1. findSymbol : mutated return of Object value for com/fasterxml/aalto/in/CharBasedPNameTable::findSymbol to ( if (x != null) null else throw new RuntimeException ) → SURVIVED |
return sym; |
| 201 | } | |
| 202 | // How about collision bucket? | |
| 203 |
1
1. findSymbol : Replaced Shift Right with Shift Left → NO_COVERAGE |
Bucket b = _buckets[index >> 1]; |
| 204 |
1
1. findSymbol : negated conditional → NO_COVERAGE |
if (b != null) { |
| 205 | sym = b.find(buffer, start, len, hash); | |
| 206 |
1
1. findSymbol : negated conditional → NO_COVERAGE |
if (sym != null) { |
| 207 |
1
1. findSymbol : mutated return of Object value for com/fasterxml/aalto/in/CharBasedPNameTable::findSymbol to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE |
return sym; |
| 208 | } | |
| 209 | } | |
| 210 | } | |
| 211 |
1
1. findSymbol : mutated return of Object value for com/fasterxml/aalto/in/CharBasedPNameTable::findSymbol to ( if (x != null) null else throw new RuntimeException ) → KILLED |
return null; |
| 212 | } | |
| 213 | ||
| 214 | public PNameC addSymbol(char[] buffer, int start, int len, int hash) | |
| 215 | { | |
| 216 | String newStr = new String(buffer, start, len).intern(); | |
| 217 | PNameC pname = PNameC.construct(newStr, hash); | |
| 218 |
1
1. addSymbol : Replaced bitwise AND with OR → KILLED |
int index = hash & _indexMask; |
| 219 | boolean primary; | |
| 220 | ||
| 221 | // First... let's see if we can add it without a collision. | |
| 222 |
1
1. addSymbol : negated conditional → SURVIVED |
if (null == _symbols[index]) { |
| 223 | primary = true; // yup, we are good then | |
| 224 | } else { | |
| 225 | /* Otherwise, better check if we need to expand; after | |
| 226 | * which there may be a slot in primary hash? | |
| 227 | */ | |
| 228 |
2
1. addSymbol : changed conditional boundary → NO_COVERAGE 2. addSymbol : negated conditional → NO_COVERAGE |
if (_size >= _sizeThreshold) { |
| 229 |
1
1. addSymbol : removed call to com/fasterxml/aalto/in/CharBasedPNameTable::rehash → NO_COVERAGE |
rehash(); |
| 230 | // Need to recalc hash index | |
| 231 |
1
1. addSymbol : Replaced bitwise AND with OR → NO_COVERAGE |
index = hash & _indexMask; |
| 232 |
1
1. addSymbol : negated conditional → NO_COVERAGE |
primary = (null == _symbols[index]); |
| 233 | } else { // nope: need a bucket | |
| 234 | primary = false; | |
| 235 | } | |
| 236 | } | |
| 237 | ||
| 238 | // good, can just update primary hash table | |
| 239 |
1
1. addSymbol : negated conditional → SURVIVED |
if (!_dirty) { // need to do copy-on-write? |
| 240 |
1
1. addSymbol : removed call to com/fasterxml/aalto/in/CharBasedPNameTable::copyArrays → SURVIVED |
copyArrays(); |
| 241 | } | |
| 242 | ||
| 243 |
1
1. addSymbol : Replaced integer addition with subtraction → SURVIVED |
++_size; |
| 244 |
1
1. addSymbol : negated conditional → SURVIVED |
if (primary) { |
| 245 | _symbols[index] = pname; | |
| 246 | } else { | |
| 247 | // Ok, all right: need to add to a bucket | |
| 248 |
1
1. addSymbol : Replaced Shift Right with Shift Left → NO_COVERAGE |
int bix = (index >> 1); |
| 249 | _buckets[bix] = new Bucket(pname, _buckets[bix]); | |
| 250 | } | |
| 251 |
1
1. addSymbol : mutated return of Object value for com/fasterxml/aalto/in/CharBasedPNameTable::addSymbol to ( if (x != null) null else throw new RuntimeException ) → KILLED |
return pname; |
| 252 | } | |
| 253 | ||
| 254 | /* | |
| 255 | /********************************************************************** | |
| 256 | /* Internal methods | |
| 257 | /********************************************************************** | |
| 258 | */ | |
| 259 | ||
| 260 | /** | |
| 261 | * Method called when copy-on-write is needed; generally when first | |
| 262 | * change is made to a derived symbol table. | |
| 263 | */ | |
| 264 | private void copyArrays() | |
| 265 | { | |
| 266 | PNameC[] oldSyms = _symbols; | |
| 267 | int size = oldSyms.length; | |
| 268 | _symbols = new PNameC[size]; | |
| 269 |
1
1. copyArrays : removed call to java/lang/System::arraycopy → SURVIVED |
System.arraycopy(oldSyms, 0, _symbols, 0, size); |
| 270 | Bucket[] oldBuckets = _buckets; | |
| 271 | size = oldBuckets.length; | |
| 272 | _buckets = new Bucket[size]; | |
| 273 |
1
1. copyArrays : removed call to java/lang/System::arraycopy → SURVIVED |
System.arraycopy(oldBuckets, 0, _buckets, 0, size); |
| 274 | ||
| 275 | _dirty = true; | |
| 276 | } | |
| 277 | ||
| 278 | /** | |
| 279 | * Method called when size (number of entries) of symbol table grows | |
| 280 | * so big that load factor is exceeded. Since size has to remain | |
| 281 | * power of two, arrays will then always be doubled. Main work | |
| 282 | * is really redistributing old entries into new String/Bucket | |
| 283 | * entries. | |
| 284 | */ | |
| 285 | private void rehash() | |
| 286 | { | |
| 287 | int size = _symbols.length; | |
| 288 |
1
1. rehash : Replaced integer addition with subtraction → NO_COVERAGE |
int newSize = size + size; |
| 289 | PNameC[] oldSyms = _symbols; | |
| 290 | Bucket[] oldBuckets = _buckets; | |
| 291 | _symbols = new PNameC[newSize]; | |
| 292 |
1
1. rehash : Replaced Shift Right with Shift Left → NO_COVERAGE |
_buckets = new Bucket[newSize >> 1]; |
| 293 | // Let's update index mask, threshold, now (needed for rehashing) | |
| 294 |
1
1. rehash : Replaced integer subtraction with addition → NO_COVERAGE |
_indexMask = newSize - 1; |
| 295 |
1
1. rehash : Replaced integer addition with subtraction → NO_COVERAGE |
_sizeThreshold += _sizeThreshold; |
| 296 | | |
| 297 | int count = 0; // let's do sanity check | |
| 298 | ||
| 299 | /* Need to do two loops, unfortunately, since spillover area is | |
| 300 | * only half the size: | |
| 301 | */ | |
| 302 |
3
1. rehash : changed conditional boundary → NO_COVERAGE 2. rehash : Changed increment from 1 to -1 → NO_COVERAGE 3. rehash : negated conditional → NO_COVERAGE |
for (int i = 0; i < size; ++i) { |
| 303 | PNameC symbol = oldSyms[i]; | |
| 304 |
1
1. rehash : negated conditional → NO_COVERAGE |
if (symbol != null) { |
| 305 |
1
1. rehash : Changed increment from 1 to -1 → NO_COVERAGE |
++count; |
| 306 |
1
1. rehash : Replaced bitwise AND with OR → NO_COVERAGE |
int index = symbol.getCustomHash() & _indexMask; |
| 307 |
1
1. rehash : negated conditional → NO_COVERAGE |
if (_symbols[index] == null) { |
| 308 | _symbols[index] = symbol; | |
| 309 | } else { | |
| 310 |
1
1. rehash : Replaced Shift Right with Shift Left → NO_COVERAGE |
int bix = index >> 1; |
| 311 | _buckets[bix] = new Bucket(symbol, _buckets[bix]); | |
| 312 | } | |
| 313 | } | |
| 314 | } | |
| 315 | ||
| 316 |
1
1. rehash : Replaced Shift Right with Shift Left → NO_COVERAGE |
size >>= 1; |
| 317 |
3
1. rehash : changed conditional boundary → NO_COVERAGE 2. rehash : Changed increment from 1 to -1 → NO_COVERAGE 3. rehash : negated conditional → NO_COVERAGE |
for (int i = 0; i < size; ++i) { |
| 318 | Bucket b = oldBuckets[i]; | |
| 319 |
1
1. rehash : negated conditional → NO_COVERAGE |
while (b != null) { |
| 320 |
1
1. rehash : Changed increment from 1 to -1 → NO_COVERAGE |
++count; |
| 321 | PNameC symbol = b.getSymbol(); | |
| 322 |
1
1. rehash : Replaced bitwise AND with OR → NO_COVERAGE |
int index = symbol.getCustomHash() & _indexMask; |
| 323 |
1
1. rehash : negated conditional → NO_COVERAGE |
if (_symbols[index] == null) { |
| 324 | _symbols[index] = symbol; | |
| 325 | } else { | |
| 326 |
1
1. rehash : Replaced Shift Right with Shift Left → NO_COVERAGE |
int bix = index >> 1; |
| 327 | _buckets[bix] = new Bucket(symbol, _buckets[bix]); | |
| 328 | } | |
| 329 | b = b.getNext(); | |
| 330 | } | |
| 331 | } | |
| 332 | ||
| 333 |
1
1. rehash : negated conditional → NO_COVERAGE |
if (count != _size) { |
| 334 | throw new Error("Internal error on SymbolTable.rehash(): had "+_size+" entries; now have "+count+"."); | |
| 335 | } | |
| 336 | } | |
| 337 | ||
| 338 | /* | |
| 339 | /********************************************************************** | |
| 340 | /* Bucket class | |
| 341 | /********************************************************************** | |
| 342 | */ | |
| 343 | ||
| 344 | /** | |
| 345 | * This class is a symbol table entry. Each entry acts as a node | |
| 346 | * in a linked list. | |
| 347 | */ | |
| 348 | final static class Bucket | |
| 349 | { | |
| 350 | private final PNameC mSymbol; | |
| 351 | private final Bucket mNext; | |
| 352 | ||
| 353 | public Bucket(PNameC symbol, Bucket next) | |
| 354 | { | |
| 355 | mSymbol = symbol; | |
| 356 | mNext = next; | |
| 357 | } | |
| 358 | ||
| 359 |
1
1. getSymbol : mutated return of Object value for com/fasterxml/aalto/in/CharBasedPNameTable$Bucket::getSymbol to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE |
public PNameC getSymbol() { return mSymbol; } |
| 360 |
1
1. getNext : mutated return of Object value for com/fasterxml/aalto/in/CharBasedPNameTable$Bucket::getNext to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE |
public Bucket getNext() { return mNext; } |
| 361 | ||
| 362 | public PNameC find(char[] buf, int start, int len, int hash) | |
| 363 | { | |
| 364 | Bucket b = this; | |
| 365 | do { | |
| 366 | PNameC sym = b.mSymbol; | |
| 367 |
1
1. find : negated conditional → NO_COVERAGE |
if (sym.equalsPName(buf, start, len, hash)) { |
| 368 |
1
1. find : mutated return of Object value for com/fasterxml/aalto/in/CharBasedPNameTable$Bucket::find to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE |
return sym; |
| 369 | } | |
| 370 | b = b.getNext(); | |
| 371 |
1
1. find : negated conditional → NO_COVERAGE |
} while (b != null); |
| 372 |
1
1. find : mutated return of Object value for com/fasterxml/aalto/in/CharBasedPNameTable$Bucket::find to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE |
return null; |
| 373 | } | |
| 374 | } | |
| 375 | } | |
Mutations | ||
| 106 |
1.1 2.2 |
|
| 111 |
1.1 2.2 |
|
| 112 |
1.1 |
|
| 118 |
1.1 |
|
| 120 |
1.1 |
|
| 125 |
1.1 2.2 3.3 |
|
| 150 |
1.1 2.2 |
|
| 181 |
1.1 |
|
| 184 |
1.1 |
|
| 194 |
1.1 |
|
| 198 |
1.1 |
|
| 199 |
1.1 |
|
| 200 |
1.1 |
|
| 203 |
1.1 |
|
| 204 |
1.1 |
|
| 206 |
1.1 |
|
| 207 |
1.1 |
|
| 211 |
1.1 |
|
| 218 |
1.1 |
|
| 222 |
1.1 |
|
| 228 |
1.1 2.2 |
|
| 229 |
1.1 |
|
| 231 |
1.1 |
|
| 232 |
1.1 |
|
| 239 |
1.1 |
|
| 240 |
1.1 |
|
| 243 |
1.1 |
|
| 244 |
1.1 |
|
| 248 |
1.1 |
|
| 251 |
1.1 |
|
| 269 |
1.1 |
|
| 273 |
1.1 |
|
| 288 |
1.1 |
|
| 292 |
1.1 |
|
| 294 |
1.1 |
|
| 295 |
1.1 |
|
| 302 |
1.1 2.2 3.3 |
|
| 304 |
1.1 |
|
| 305 |
1.1 |
|
| 306 |
1.1 |
|
| 307 |
1.1 |
|
| 310 |
1.1 |
|
| 316 |
1.1 |
|
| 317 |
1.1 2.2 3.3 |
|
| 319 |
1.1 |
|
| 320 |
1.1 |
|
| 322 |
1.1 |
|
| 323 |
1.1 |
|
| 326 |
1.1 |
|
| 333 |
1.1 |
|
| 359 |
1.1 |
|
| 360 |
1.1 |
|
| 367 |
1.1 |
|
| 368 |
1.1 |
|
| 371 |
1.1 |
|
| 372 |
1.1 |


C.A
About Me
(current)
Portfolio
Contact
Carlos Alcazar
Trying to remain teachable
Scrape the NY Times
Crystal Collector
Clicky-Game
|
GitHub Repo
Liri Node Application