--- layout: page title: "About" description: "This is what I do." header-img: "img/about-bg.jpg" ---
Just brain dump...


I sincerely love to travel. I love the notion of expanding my view on the world, seeing amazing and mundane things, and getting a chance to leave where I live to "just see what is out there". In my travels I have spent time in Paris, Orleans, Versailles, and Angers in France. The history of France was amazing, deep, and the food there was just fantastic to experience and enjoy.
Some of my most recent times travelling have been to Spain. My first visit was southern Spain to Sevilla, Granada, Cordoba, Ronda, and to Gibraltar. This was my first time to Spain and there was something about Southern Spain with the white hill villages, the rolling countryside filled with olive tree orchards for as far as the eye can see, and something very Mediterranian that set it aside from any of my previous experiences.
Barcelona was my last large vacation and trip out of the country. We visited the Sagrada Familia , Park Guell, stayed at an Air BnB on La Rambla, explored the Casa Mila, and had visited the Chocolate Museum, as well as visiting Girona (where Game of Thrones was partially filmed) and Sitges on the coast.
“Travel isn’t always pretty. It isn’t always comfortable. Sometimes it hurts, it even breaks your heart. But that’s okay. The journey changes you; it should change you. It leaves marks on your memory, on your consciousness, on your heart, and on your body. You take something with you. Hopefully, you leave something good behind.”


These config files contain personality traits and professions. Each NPC has one of each randomly chosen from these lists.
Unlike all other files, these ones are simple lists of strings. The list is comma-separated, with each item in double quotes. The whole list is enclosed in square brackets.


Injector instance used within current Context
Whether context is destroyed and thus unusable
Whether Context is initialized. Extension mappings and modules should be added only whilst Context is not initialized.
Number of active listeners on this dispatcher instance.
Add event listener.
Event name for which to listen to
Listener function that will be invoked as event with specified name is dispatched.
Listener scope which will be applied as listener is invoked. (You can leave it undefined, if you don't care about scope that much).
Null in case if event name is already mapped to same function. Or EventMapping object
which is to be used in order to set some of mapping properties like once()
which will make listener
to be executed upon first event dispatch and then be gone.
Configure application with application modules.
A single entry or list of modules demarcated by @Module decorator.
Current context operation is performed on
Destroy context, its Injector, modules and extensions
Dispatch event object to all subscribed listeners.
Event object that defines event type and data
True if any event mappings to event name have been found; false otherwise.
Dispatch event notification by separate type and data arguments.
Event type to be dispatched.
Arbitrary data to ship along with event dispatch.
True if any event mappings to event name have been found; false otherwise.
Implement actual event dispatching
Event to dispatch
True if some event clients where found and event is delivered or false otherwise.
Check if event dispatcher has mapping of certain event to listener.
Target event name.
Listener function.
Listener scope which will be applied as listener is invoked.
true if event mapping is found and false otherwise
Check if some module is mapped with Context via direct mapping via configure() call or as required module of any directly mapped modules. This method will return any valid data only after Context is initialized
Module to check mapping of
Initialize context - install extensions, map modules and move through init lifecycle phases
Install Context extensions or
A single entry or list of Type
Current context operation is performed on
Add event listener that will be executed only once.
Event name for which to listen to
Listener function that will be invoked as event with specified name is dispatched.
Listener scope which will be applied as listener is invoked. (You can leave it undefined, if you don't care about scope that much).
Null in case if event name is already mapped to same function. Or EventMapping object
which is to be used in order to set some of mapping properties like once()
which will make listener
to be executed upon first event dispatch and then be gone.
Remove all listeners registered with specified scope or with the whole dispatcher instance.
Scope from which all listeners mapped listeners will be removed. If not specified, all listeners will be removed from whole dispatcher instance.
True if any listeners to remove where found; false otherwise.
Remove event listener.
Target event name.
Listener function.
Listener scope which will be applied as listener is invoked.
True if event name binding to listener function was found or false if it was found not.
Remove all listeners of a particular event from all scopes or the specified scope.
Event name to be unmapped from all listeners.
Listener scope from which all listeners mapped to eventType will be removed.
True if any of mappings have been found; false otherwise.
Application context representation class - a hosting environment for application or its sub context TODO: Add handling of child and parent contexts in this class
Jānis Radiņš


Rs.
.00
Version :
Airbags :
Body-Color :
Body-type :
Fuel type :
Location Details
Pickup Location
Dropoff Location
Provider Address
Location
Email


Configuration Parameters¶
Config parameters are grouped into sections and needed by the framework to function properly. In the following, we provide brief explanations for the existing parameters and their values
General¶
- name - framework name, mainly used for logging
- numCores (int) - number of available cores that can be used for parallel running of gene selectors
- homePath - contains the path to the framework
- inputDir - the path to the directory where all input data is located
- intermediateDir - where to put intermediate results (recommended not to changed)
- externalKbDir - where to put intermediate query results from knowledge bases (recommended not to changed)
- resultsDir - where to put the final results (recommended not to changed)
- preprocessing - where to put preprocessed data sets (recommended not to changed)
- crossVal_preprocessing - where to put preprocessed data sets for cross-validation (recommended not to changed)
- outputDir_name - name of the overall output directory. If that directory already exists, Comprior adds numbering.
- log_filename - name of the log file to which processing information, warnings, etc. are written
R¶
- code - path to R source files (recommended not to changed)
- RscriptLocation - path to Rscript
Java¶
- code - path to Java jar files (recommended not to changed)
- JavaLocation - path to Java
Dataset¶
- input - path to expression dataset
- metadata - path to metadata file for expression dataset
- classLabelName - specify the metadata column name of the label to use for classification (=keywords that will also be used for search in knowledge bases)
- alternativeSearchTerms - specify alternative search terms that will be used by knowledge bases. Separate search terms by spaces and replace spaces within a search term with _, e.g. “Breast Cancer Kidney_Cancer” will be parsed to the following search terms:”Breast”, “Cancer”, “Kidney Cancer”
- genesInColumns (true/false) - specify if genes are in the columns so that the data can be transformed automatically
- metadataIDsInColumns (true/false) - specify if sample IDs in the metadata file are in the columns
- dataSeparator (sep) - specify file separator (must be the same for metadata and gene expression), e.g. ,, t
- currentGeneIDFormat - specify the current gene ID format with g:Convert IDs, e.g. ENTREZGENE, ENSG, AFFY_HG_U133_PLUS_2, HGNC (see https://biit.cs.ut.ee/gprofiler/convert)
- finalGeneIDFormat - specify the gene ID format with g:Convert IDs you want to have in your gene rankings, e.g. HGNC (see https://biit.cs.ut.ee/gprofiler/convert)
Preprocessing¶
- filterMissingsInGenes (true/false) - filter genes that have a higher percentage of missing fields than specified in treshold parameter
- filterMissingsInSamples (true/false) - filter samples that have a higher percentage of missing fields than specified in the treshold parameter
- threshold ([0..100]) - percentage used for filtering
Gene Selection - General¶
- outputDirectory - where the final gene rankings are stored (recommended not to changed)
- selectKgenes (int) - maximum number of genes to select (to reduce runtimes). Must be >= topKmax param in Evaluation.
Gene Selection - Methods¶
traditional_methods - select multiple traditional gene selection methods (separated by spaces):
- filter: Random, InfoGain, ReliefF, VB-FS (R-based variance selection), ANOVA, mRMR, Variance (Python-based variance selection)
- wrapper: SVMpRFE (SVM-RFE with polykernel), x-SFS, x-RFE (x = add the desired classifier: K-nearest Neighbor (KNN3, KNN5), Naive Bayes (NB), Linear Regression (LR), Support Vector Machines with linear kernel (SVMl))
- embedded: RandomForest, Lasso
modifying_methods - combine knowledge base with traditional approach from above. Currently implemented:
- Postfilter_trad_kb: Filter the features selected by traditional approach (trad) by the features/genes retrieved from knowledge base (kb)
- Prefilter_trad_kb: Filter the input features by the genes retrieved from the knowledge base (kb) first and forward this reduced input set to the traditional approach (trad) for feature selection
- Extension_trad_kb: Extends features selected by traditional approach (trad) by features/genes retrieved from knowledge base (kb). Traditionally selected features and external features/genes make up 50% of top k features, respectively (so if topKmax param is 2, 1 feature from traditional approach, 1 feature from external will be selected)
- KBonly_kb: Only use the scores from the knowledge base to rank features, setting a default score of 0.000001.
combining_methods - select combining methods to apply. Combining methods should combine a traditional approach (trad) with a knowledge base (kb), the prefix indicates the actual combining strategy. Currently implemented:
- Weighted_trad_kb: weights the score from traditional approach trad by the score retrieved from knowledge base kb)
- LassoPenalty_kb: includes external knowledge via Lasso penalty as described by Zeng et al.: “Incorporating prior knowledge into regularized regression”
network_methods - select network approaches to apply. Currently implemented:
- NetworkActivity_kb: retrieves pathway from knowledge base kb, ranks them via average of (ANOVA of gene expression value/sample class) for every gene in pathway, and creates an activity score as new feature value for the pathway for every sample (= average of (gene expression value x variance x average of (Pearson correlation with network neighbors))) for all genes in the pathway)
- CorgsNetworkActivity_kb: retrieves pathway from knowledge base kb, ranks them via average of (ANOVA of gene expression value/sample class) for every gene in pathway, and creates an activity score as new feature value for the pathway for every sample as described by Lee et al.: “Inferring Pathway Activity toward Precise Disease Classification”
Evaluation¶
topKmin (int) - minimum number of features to select
topKmax (int) - maximum number of features to select
kfold (int) - k parameter for k-fold cross-validation during classification
results - where to put the results (recommended not to changed)
reducedDataset - where to put the reduced data sets (with k features) (recommended not to changed)
preanalysis - where to put plots created during preanalysis
preanalysis_plots - create plots on input data before any analysis. Currently implemented:
- density: density plot showing the average density distribution of expression values (per class)
- box: box plot showing the average gene expression (per class)
- mds: multidimensional scaling plot showing dis-/similarities between samples
evaluateKBcoverage (true/false) - create diagrams showing coverage of search terms in the used knowledge bases
robustnessResults - where to put the cross-validation results (recommended not to changed)
enableCrossEvaluation (true/false) - whether to use a second data set for cross-validation
crossEvaluationData - path to second data set for cross-validation (must have genes in columns and be already labeled)
crossEvaluationClassLabel - column name of second data set for cross-validation containing the class label
crossEvaluationGeneIDFormat - current g:Convert gene ID format of the second data set for cross-validation (see https://biit.cs.ut.ee/gprofiler/convert)
enableClassification (true/false) - use classification algorithms for evaluation
enablePrediction (true/false) - use predictive algorithms for evaluation (functionality not implemented yet)
Rankings¶
results - where to put the actual rankings (recommended not to change)
metricsDir - where to put the metric results (recommended not to change)
annotationsDir - where to put the annotation information(recommended not to change)
metrics - specify which evaluation metrics to apply/compare on feature rankings. Currently provided:
- top_k_overlap: overlap of top k features of rankings
- kendall_w: Kendall’s W ranking comparison
- fleiss_kappa: Fleiss’ Kappa ranking comparison
- annotation_overlap: shows gene annotation overlap in rankings (e.g. which annotated genes where found jointly by all rankings)
- enrichment_overlap: shows enrichment term overlap of rankings (e.g. which enrichment terms where found jointly by all rankings)
- annotation_percentage: compares average p
- average_foldchange: compares average fold change of genes in rankings
Classification¶
classifiers - specify classifiers to use for classsification task. Currently provided:
- KNN(int): K-nearest Neighbor, e.g. KNN3
- NB: Naive Bayes
- LR: Linear Regression
- SMO: Support Vector Machines
- RF: Random Forest
metrics - specify which evaluation metrics to apply on classification results. Currently provided:
- accuracy
- sensitivity
- specificity
- F1
- kappa
- AUROC
- precision
- matthewcoef: Matthews Correlation Coefficient
results - where to put the classification results (recommended not to change)
crossEvaluationDir - where to put classification results from cross-validation (recommended not to change)
metricsDir - where to put the evaluation results (recommended not to change)
Prediction (not implemented yet)¶
- predictors - specify predictors to use for prediction task (still under construction)
- metrics - specify which evaluation metrics to apply on prediction results (still under construction)
- results - where to put the classification results (recommended not to change)
- crossEvaluationDir - where to put classification results from cross-validation (recommended not to change)
- metricsDir - where to put the evaluation results (recommended not to change)
Enrichr¶
- webservice_uri - URL of Enrichr web service (recommended not to change)
- outputDir - output directory for intermediate results from web service (recommended not to change)
- geneSetLibrary - gene set library to use for annotation/enrichment. Choose any available at https://maayanlab.cloud/Enrichr/#stats
OpenTargets¶
- outputDir - output directory for intermediate results from web service (recommended not to change)
KEGG¶
- outputDir - output directory for intermediate results from web service (recommended not to change)
- maxNumPathways (int) - specify the maximum number of pathways to retrieve per search term (for performance reasons)
UMLS (needed to transform search terms into CUIs for using DisGeNET)¶
- login_uri - URL of login web service (recommended not to change)
- loginservice_uri - URL of login web service (recommended not to change)
- auth_endpoint - authentication endpoint for API (recommended not to change)
- apikey - API key for accessing UMLS (recommended not to change unless own API key available, register for free at UMLS to create an own key)
- webservice_uri - URL of UMLS web service (recommended not to change)
DisGeNET¶
- associationScore (score/gene_dsi/gene_dpi) - which association score to use for knowledge retrieval: score (overall score), gene_dsi (disease specificity), gene_dpi (disease pleiotropy)
- webservice_url - URL of DisGeNET web service (recommended not to change)
- outputDir - output directory for intermediate results from web service (recommended not to change)
- apikey - API key for accessing DisGeNET (recommended not to change unless own API key is available, register at DisGeNET to create your own key)
PathwayCommons¶
- webservice_url - URL of PathwayCommons web service (recommended not to change)
- outputDir - output directory for intermediate results from web service (recommended not to change)
- maxNumPathways (int) - specify the maximum number of pathways to retrieve per search term (for performance reasons)
BiomaRt¶
- outputDir - output directory for intermediate results from web service (recommended not to change)
gConvert¶
- webservice_url - URL of g:Convert web service (recommended not to change)
- outputDir - output directory for intermediate results from web service (recommended not to change)


--- layout: default title: "404" ---
This is probably not the page you were looking for. Come back home!


|
The Red Matrix
|
Functions | |
| admin_post (&$a) | |
| admin_content (&$a) | |
| admin_page_summary (&$a) | |
| admin_page_site_post (&$a) | |
| admin_page_site (&$a) | |
| admin_page_dbsync (&$a) | |
| admin_page_users_post (&$a) | |
| admin_page_users (&$a) | |
| admin_page_plugins (&$a) | |
| toggle_theme (&$themes, $th, &$result) | |
| theme_status ($themes, $th) | |
| rebuild_theme_table ($themes) | |
| admin_page_themes (&$a) | |
| admin_page_logs_post (&$a) | |
| admin_page_logs (&$a) | |
| admin_content | ( | & | $a | ) |
| admin_page_dbsync | ( | & | $a | ) |
Referenced by admin_content().
| admin_page_logs | ( | & | $a | ) |
| admin_page_logs_post | ( | & | $a | ) |
| admin_page_plugins | ( | & | $a | ) |
Plugins admin page
| App | $a |
Single plugin
List plugins
Referenced by admin_content().
| admin_page_site | ( | & | $a | ) |
| admin_page_site_post | ( | & | $a | ) |
| admin_page_summary | ( | & | $a | ) |
| admin_page_themes | ( | & | $a | ) |
Themes admin page
| App | $a |
Single theme
List themes
Referenced by admin_content().
| admin_page_users | ( | & | $a | ) |
| admin_page_users_post | ( | & | $a | ) |
| admin_post | ( | & | $a | ) |
Red admin
| App | $a |
| rebuild_theme_table | ( | $themes | ) |
| theme_status | ( | $themes, | |
| $th | |||
| ) |
| toggle_theme | ( | & | $themes, |
| $th, | |||
| & | $result | ||
| ) |
| array | $themes | |
| string | $th | |
| int | $result |
Referenced by admin_page_themes().


Tesla, Inc. is an American electric vehicle and clean energy company based in Palo Alto, California. Tesla's current products include electric cars, battery energy storage from home to grid scale, solar panels and solar roof tiles, as well as other related products and services. Tesla is ranked as the world's best-selling plug-in and battery electric passenger car manufacturer, with a market share of 16% of the plug-in segment (which includes hybrids) and 23% of the battery electric (purely electric) segment 2020 sales. Through its subsidiary SolarCity, Tesla develops and is a major installer of solar photovoltaic systems in the United States. Tesla is also one of the largest global suppliers of battery energy storage systems, with 3 GWh of battery storage supplied in 2020. Tesla subsidiary Tesla Energy develops, builds, installs and sells solar energy generation systems, battery energy storage products, as well as other related products and services to residential, commercial and industrial customers. The company was founded after the merger of Tesla's existing battery energy storage products division with SolarCity, a solar energy company that Tesla acquired in 2016 at a cost of approximately $2.6 billion.[134] Tesla Energy's generation products include solar panels (built by other companies for Tesla), Solar Roof, a solar shingle system, and the Tesla Solar Inverter. The company also builds the Tesla Powerwall, a home energy storage device and the Powerpack and Megapack, large-scale energy storage systems.[135][136][137] In 2020, the company deployed solar energy systems capable of generating 205 megawatts (ranked third in U.S. residential solar installations) and deployed 3 gigawatt-hours of battery energy storage products.[138]


Thousands of students at risk in flat blocks loaded with Grenfell-style cladding
EXCLUSIVE: A total of 62 university and college blocks were identified as being coated in the same material that helped spread the 2017 Grenfell Tower blaze
by Phil Cardy, https://www.mirror.co.uk/authors/phil-cardy/Thousands of students are still living in accommodation with the same flammable cladding as tragic Grenfell Tower.
A total of 62 university and college blocks were identified as being coated in the material that helped spread the 2017 inferno.
But only nine have had it stripped off, leaving 53 where it is still in place.
According to a report a ten-storey, 75-bedroom tower at Highbury College in Portsmouth has failed a safety test, although officials say there are “no immediate concerns”.
Portsmouth City Council said it was liaising with the building’s owners and Hampshire fire chiefs to ensure the cladding was removed.
The revelation comes a week after 100 people were evacuated amid a fire at a student flat block in Bolton.
A blaze which destroyed a block of cladding-covered flats in Brighton in 30 minutes is being probed.


|
From Text to Concepts
|
#include <UnitTest.hpp>
Public Member Functions | |
| Test () | |
| virtual const char * | name () const =0 |
| virtual void | operator() ()=0 |
| bool | status () const |
Protected Member Functions | |
| template<typename T1 , typename T2 > | |
| bool | ASSERT_EQUAL (const T1 &expected, const T2 &actual) |
| template<typename T1 , typename T2 > | |
| bool | ASSERT_NOT_EQUAL (const T1 &expected, const T2 &actual) |
| bool | assertTrue (bool condition, const char *text) |
| virtual const char * | statusString (bool status) |
Protected Attributes | |
| bool | _status |
| The test status. | |
Abstract class defining the test interface
|
inline |
Default constructor
|
inlineprotected |
Check equality
|
inlineprotected |
Check inequality
|
pure virtual |
The test name
Implemented in Concept::TestConceptExtractor, Concept::TestHash, Concept::TestHashTable, Concept::TestString, Concept::TestVector, and Concept::TestWords.
|
pure virtual |
The test body
Implemented in Concept::TestConceptExtractor, Concept::TestHash, Concept::TestHashTable, Concept::TestString, Concept::TestVector, and Concept::TestWords.
|
inlineprotectedvirtual |
Text representation of the status


Fortran Calling Interface The PAPI library comes with a specific Fortran library interface. The
Fortran interface covers the complete library with a few minor
exceptions. Functions returning C pointers to structures, such as
PAPI_get_opt (3)
and
PAPI_get_executable_info (3)
, are either not implemented in the Fortran interface, or implemented with
different calling semantics.
Semantics for specific functions in the Fortran interface are
documented on the equivalent C man page. For example, the semantics
and functionality of
PAPIF_accum are covered in the
PAPI_accum (3)
man page.
For most architectures the following relation holds between the pseudo-types
listed and Fortran variable types.
| Pseuodo-type | Fortran type | Description |
| C_INT | INTEGER | Default Integer type |
| C_FLOAT | REAL | Default Real type |
| C_LONG_LONG | INTEGER*8 | Extended size integer |
| C_STRING | CHARACTER*(PAPI_MAX_STR_LEN) | Fortran string |
| C_INT FUNCTION | EXTERNAL INTEGER FUNCTION | Fortran function returning integer result
|
| C_INT(*) | Array of corresponding type
| C_TYPE(*) refers to an array of the corresponding Fortan type.
The length of the array needed is context dependent. It may be
e.g. PAPI_MAX_HWCTRS or PAPIF_num_counters.
|
| C_FLOAT(*) |
| C_LONG_LONG(*) |
Array arguments must be of sufficent size to hold the input/output
from/to the subroutine for predictable behavior. The array length is
indicated either by the accompanying argument or by internal PAPI
definitions. For details on this see the corresponding C routine.
Subroutines accepting
C_STRING as an argument are on most implementations capable of reading the
character string length as provided by Fortran. In these implementations
the string is truncated or space padded as necessary. For other
implementations the length of the character array is assumed to be
of sufficient size. No character string longer than
PAPI_MAX_STR_LEN is returned by the PAPIF interface.


June 25th, 2015 marked five years since the day we started dating. I took Grace to Cuyahoga Valley National Park. We walked a wooden boardwalk down to a beautiful view of the Brandywine Falls. I popped the question as she watched the waterfall and of course, she said YES! We celebrated with our families back in Toledo over the weekend.
Please refer to the invitation for more information on the ceremony and reception venue and times.
Help us coordinate food and festivities by using the link here to RSVP to our wedding:
http://jruiz.me/wedding/rsvp/


My hostname is: {{ local_hostname }}
My IP is: {{ local_ip }}
Vault is enabled! Check your pod logs for the secret!


Court to rule Maina son’s bail application Nov. 29
by John AbayomiAde Adesomoju, Abuja
The Federal High Court, in Abuja, will on November 29, rule on the bail application filed by Faisal Maina, son of the then former Chairman, Pension Reform Task Team, Abdulrasheed Maina.
Justice Okon Abang fixed the date for hearing after entertaining arguments on the bail application on Friday.
Faisal, represented by his lawyer, Francis Oronsaye, on Friday, is being prosecuted on three counts bordering on money laundering, to which the defendant had pleaded not guilty.
The counsel prosecuting him on behalf of the Economic and Financial Crimes Commission, Mohammed Abubakar, opposed the bail application on Friday.
Justice Abang had remanded Faisal’s father, Maina, who is also being prosecuted before the same court, in Kuje Correctional Service centre.
The judge had, however, ordered the EFCC to keep Faisal in police custody at Police Tactical Squad, Asokoro, for investigation on allegation of possession of firearms and resistance to arrest.


The Dumb Bitch Test
Answer the questions below to get a score.

- Hooked up with your ex again?
- Got left on read for 5 hours or more?
- Kissed someone named Chad or Brad?
- Had a pregnancy scare?
- Simped over a boy with a J name?
- Overdrafted your bank account?
- Thought about being a sugar baby?
- Became a sugar baby?
- Gotten a fake ID taken?
- Came home past 4am and slept in your makeup?
- Drove over a curb multiple times?
- Went on a date just for free dinner?
- Made a private story just for him to watch?
- Locked yourself out of the house?
- Said you weren’t gonna drink then blacked out?
- Answered a “you up?” text?
- Sent a “you up?” text?
- Fully shaved when you said you were just “hanging out”?
- Had more than 10 whiteclaws in a night?
- Owned anything cheetah print?
- Kept track of his snap score when he wasn't replying?
- Tried to manifest your ex back?
- Turned down a boy who actually cared about you?
- Mentally committed to a boy who will never love you?
The Dumb Bitch Test
sorry to hear about ur diagnosis for further help pls dial 1-219-DUM-BTCH (srsly it works)
Use this sound on Tik Tok here.
Stream 'dumb bitchitis' here.

Back to the quiz


Counting is underway in close Georgia races that will determine control of the Senate. The night started out with Democrats at a 10 point advantage but numbers are tightening with strong GOP vote coming in. | Just The News
Thank you all for the continued support 💙🇺🇸 Lets make 2021 even better!
Let me introduce myself. Im a 21 year old Republican. I've had a huge interest in politics for as long as I can remember. I've always been outspoken. Which, clearly to some, I was rude, uneducated, misinformed, etc. Growing up in a left leaning town I had to go through SCHOOL hearing Democratic agendas. Democratic side of everything (Which shouldn't be happening in schools). I had class mates who called my clique racists because we drove trucks and flew American flags while blaring country music. Being out of school I can FINALLY make my voice heard. This is why I started JP Don't Play. My goal is to become a political voice for the younger generation of Republicans and Republicans in general. All of your support means the world and will push me to get the job done🙏 Lets make our voices heard together💪 #BleedRed #YoungRepublican
Very proud to hear about your goals and would vote for you.  Keep us posted as to your voyage. We look forward to hearing great things.
I love hearing young people talk this way. Whenever I do it gives me hope that all is not lost. It gives me hope that my children and grandchildren will not have to live their lives under socialism. I do hope to see your name on a ballot one day. Carry on our fight for America to preserve all that we hold dear. If you ever do make it to Washington, always remember your roots and don't let the swamp swallow you in it's filth. God Bless you JP Stallman.
That depends. If they keep finding random ballots .... still months after the night is over. If they suddenly find reasons in the biggest counties to shut down counting kick out Dem oversight then magically have just enough votes to catch up. If 1000 people come forward with proof of fraud. But I guess in today’s world none of that would matter... the media should say “NOTHING TO SEE HERE” and no one should hear or see any of the evidence or proof of fraud and the cheating team should automatically win. And anyone that dares to ask questions should be CANCELED for wanting truth.
Only if they geta a data dump where 100% of the votes went to them. I'm not sayingit can'thappen, we saw the Dems do it in Wisconsin, Michigan, Pennsylvania and Georgia just 5 weeks ago.
I'vebeen saying this too. I would have monitored the entire thing. If they loose itll be because they thought he was watching and didnt wanna try their luck. I doubt they loose though. I doubt they loose again ever. This whole governmentsystem is crooked as hell and I really wonder how long its been going on that our votes haven't mattered. I wonder if somehow Trump got through this last time by somehow breaking their scheme inturn passing them off.
The Executive Order should be used in Georgia today to seize voting machines and ballots to restore integrity in this election. Use the National Guard to secure and monitor the process, use video to keep process transparent, and have forensic monitors audit the machines and ballots.
@Oceanbreeze101 We've already lost if Biden's elected. This will be last election, period, because they will have already stepped on the Contitution, disregarded the voice of the People, and said, "Okay, we're in control now."
STOP THE STEAL! STOP THE STEAL! STOP THE STEAL! STOP THE STEAL! STOP THE STEAL! STOP THE STEAL! STOP THE STEAL! STOP THE STEAL! STOP THE STEAL! STOP THE STEAL! STOP THE STEAL! STOP THE STEAL! STOP THE STEAL!
Thank you all for the continued support 💙🇺🇸 Lets make 2021 even better!
Let me introduce myself. Im a 21 year old Republican. I've had a huge interest in politics for as long as I can remember. I've always been outspoken. Which, clearly to some, I was rude, uneducated, misinformed, etc. Growing up in a left leaning town I had to go through SCHOOL hearing Democratic agendas. Democratic side of everything (Which shouldn't be happening in schools). I had class mates who called my clique racists because we drove trucks and flew American flags while blaring country music. Being out of school I can FINALLY make my voice heard. This is why I started JP Don't Play. My goal is to become a political voice for the younger generation of Republicans and Republicans in general. All of your support means the world and will push me to get the job done🙏 Lets make our voices heard together💪 #BleedRed #YoungRepublican
Dems cheat
So if Republicans take the lead over night would be considered cheating?
Tonight’s run-off Selection is pure theatre.
Do you think team Trump had enough sense to monitor the tabulators wirelessly?
🍿
Wait till the Dem dump at 2:00a
They’ll rig it, I’d bet it isn’t even really that close.
No one’s watching the election coverage on Fox, right???
Praying for the great state of GA.
I pray the republicans will prevail but doesn’t look good right now. 🙏💔🇺🇸
I am very worried yet still a little bit hopeful.
Anyone else?
Now we pray 🙏
😔🛐🕎🕊🇺🇸
Dubious. Trust gone.
The Executive Order should be used in Georgia today to seize voting machines and ballots to restore integrity in this election. Use the National Guard to secure and monitor the process, use video to keep process transparent, and have forensic monitors audit the machines and ballots.
Let me be shocked for a second that Dems were in the lead. 🙄. Just wait til 2am!!

 STOP THE STEAL! STOP THE STEAL! STOP THE STEAL! STOP THE STEAL! STOP THE STEAL! STOP THE STEAL! STOP THE STEAL! STOP THE STEAL! STOP THE STEAL! STOP THE STEAL! STOP THE STEAL! STOP THE STEAL!


This command seeds the PRNGs (pseudo random number generators) using a value that should be somewhat random since it is based on milliseconds of the current time. There are two PRNG algorithms available in HexEdit and both are seeded by this command as well as the random numbers created in New File command and Insert Block command.
This command is provided as a convenience. The randomness of the seed value is not guaranteed and maybe somewhat predictable. For best results place a truly random number in the calculator and use the Seed Random Number Generator from Calculator command.
Note that this command should only be called once before generating a sequence of random numbers. Reseeding before generating each number will produce numbers that are not very good random numbers, since they will be related to the current time and probably not very good statistically either.
To obtain the same sequence of random numbers load the same specific value into the calculator and use the Seed Random Number Generator from Calculator command.


Spoilers: Liam is arrested as he punches Jacob in Emmerdale
Jacob Gallagher’s (Joe-Warren Plant) behaviour has been getting out of hand in Emmerdale since he learned that sex abuser Maya Stepney (Louisa Clein) had been released from prison, but he reached a new low last night when he slept with Leanna (Mimi Slinger) and then proceeded to walk out on her. Tonight, Dr Liam Cavanagh (Jonny McPherson) discovered the truth — and he was less than pleased.
Leanna was devastated when Jacob walked out on her after they’d slept together. Afterwards, the young man texted her asking if she was on the pill — and she was hurt once more by his blunt question.
Feeling rejected, she opened up to Bernice (Samantha Giles) about what happened, confirming that she’d slept with Jacob. However, she asked Bernice to keep it a secret.
Bernice was conflicted over what to do for the best, but when Leanna threw up in front of Liam after she took the morning after pill, she was left with no choice but to reveal everything.
Advertisement Advertisement
Liam was fuming, and — after berating Bernice for keeping this from him — he wasted little time in storming round to the shop to have it out with Jacob. He accused Jacob of forcing his daughter into sleeping with him, before punching him.
Upon learning of the reason why Liam attacked Jacob, David (Matthew Wolfenden) and Leyla (Roxy Shahidi) were disgusted with the young boy — and proceeded to tell him as much.
However, it appeared as if Jacob was determined to get his own back, as Liam found himself being arrested on suspicion of assault as the episode came to a close.
What does this mean for Liam?
Will Jacob carry through with his accusation?
Emmerdale continues Friday 22ndNovember at 7pm on ITV.


The Black Hole
The Black Hole is a movie starring Maximilian Schell, Anthony Perkins, and Robert Forster. A research vessel finds a missing ship, commanded by a mysterious scientist, on the edge of a black hole.


--- layout: page title: "Schedule" description: "Updated regularly with important dates." header-img: "/img/bg-crpd-floor.jpg" ---
Future drop-in sessions and training sessions are coming soon!


Logo
Github
Register
Login
1
2
3
4
HOME
PROFILE
ABOUT
This Is Content 1
MaybeContent 2
Content 3
Content 4
Content 5
Content 6
Content 7
Content 8
Content 9
Content 10


--- layout: tweet ---
What even is a rubycorn? #rubycornsrule #eurucamp
8/2/2015, 3:37:34 AM
Favs: 10
Retweets: 5


12 MONKEYS And Now For Something Completely Different A film review by John Paul Powell Copyright 1996 John Paul Powell
Published In The Outreach Connection Newspaper (Jan. 5, 1996)
Starring: Bruce Willis, Madeleine Stowe, Brad Pitt and Christopher Plummer. Directed by: Terry Gilliam. Screenplay by: David Peoples and Janet Peoples. Produced by: Charles Roven. A Universal Pictures release.
I can hear the faint moaning and groaning. A time travel picture? Have to
think...Brain hurts...Smell smoke...Is something burning?...System overload...
Migraine coming on...Fading to black...Nighty-night...<
What a revolting development! Filmmakers encouraging you to exercise your grey matter? Where do they get off? They deserve forty lashes! Step By Step and Baywatch. That's quality. Television mind candy that doesn't require brain cells to produce or to watch.
Mongoloid tube-heads bearing the attention spans of a box of stale donuts and whose usual reading material is...
Beverly Hills, 90210 (cc) 1:00 Brandon flosses his teeth while David smokes crack. Donna, the retard, attends a self-help seminar and figures out how to operate a door knob. Valerie beds Steve, David and the California Angels starting lineup.  Nat joins a Columbian drug cartel.
...shouldn't be mentally taxed by 12 Monkeys if they cling to my handy TV references.
Bruce Willis (David on Moonlighting) is a prison inmate in the year 2035 (before Star Trek but beyond Melrose Place). The screws buzzed Bruce's cranium (Kojack, Capt. Picard), tattooed his prisoner number on it and deposited him in a cage. That's right, a CAGE not a cell.  Everyone's cranky since the holocaust.
In 1996, a mutant virus devoured 99 per cent of Earth's population. The toxic surface atmosphere drove mankind underground. Immune to the contagion, animals (Flipper, Lassie) rule the planet.
Scavenging Beta vcrs, gum wrappers, paper clips and duct tape from above ground, the surviving scientists built a time machine (as in Dr. Who's Tardis) to send someone back to prevent the apocalypse. That "someone" is Willis. He's got a photographic memory. He ain't too sharp and he's haunted by a childhood memory that could unlock the secret of the 12 Monkeys (the Egghead's solitary clue to who or what ignited the plague). He's got the job. At least they didn't choose Pauly Shore or Jim Varney. Thank God for small miracles.
The Eggheads botch the first expedition. Willis beams in too early and the local fuzz arrest him.  Incarcerated, he meets Jeffrey Goines (Brad Pitt), the unstable son of a famous scientist and Dr. Kathryn Railly (Madeleine Stowe), a shrink and writer. Being tugged in and out of the present (therefore existing in two time frames) erodes Willis' sanity. The doomsday clock takes a lickin' but keeps on tickin' as Willis screws his head on straight.
The universes director Terry Gilliam conceives routinely bend and contort as if projected through fun house mirrors. People, places and things don't have rhyme, reason or a determined purpose (The Adventures Of Baron Munchausen, Brazil, The Fisher King). His experience as a cartoonist (Help! Magazine) and animator (Monty Python's Flying Circus) help and hinder Gilliam in the filmmaking process. His boundless imagination give genesis to eye-catching visuals. By the same token, the incessant flights of fancy stretch and snap continuity.
Finally with 12 Monkeys, Gilliam has cleared his personal hurdle. Production designer Jeffrey Beecroft (Dances With Wolves) and cinematographer Roger Pratt (Mary Shelley's Frankenstein, Batman) maintain the fabulous optics but the script is tight. There's structure. There's direction. We don't get lost in the shuffle. That is unless your idea of a weekly mental workout is whether Fraiser or Home Improvement wins out on Tuesday night.
12 Monkeys is rated U for Unusual.
Outreach Rating: 8 dead parrots / 10
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


"Animal Husbandry" Someone Like You
By Ross Anthony
Ashley Judd, dejected, rejected, and neglected by men in general, seeks some commiseratory theory with which to explain away the enigmatic query, "Why can't men commit?" She finds her comforting hypothesis in cows ... bulls, more accurately. Bulls, tired of old cows, scan greener pastures for greener heifers - so she discovers. "Monogamy isn't in their genes!"
Greg Kinnear is the gentle, expressive, touchy-feely love-interest, while the actor (Jackman) who played Wolverine from the X-Men movie appropriately personifies the animal-man theory. He's absolutely shameless about his sexuality, yet subtly sweet; a well-drawn character brought to life by a strong actor.
Speaking of acting and writing, "Someone Like You" employs professionals. The dialogue and relationships move the production warmly, confidently, and entertainingly from beginning to end, where, surprisingly the picture's prowess wanes.
Though definitely predictable, this climax still could have soared. There would have been no avoiding the schmaltz - so splashing around in it a while ought to have been the prescription. Instead, the peak feels truncated with an unnecessarily cliche appendage. A respectable resolution follows, however.
Instead of just dabbling in obsessive psycho behavior, a more acutely de-stabilized Judd would have backed the fluff with muscle (perhaps exhibiting job-threatening surreal delusional episodes).
And those kisses! As a romantic-comedy, audiences expect kisses. Disappointingly, these tight-lipped pecks belie the chemistry built up between our big-screen lovers.
Ah, but high quality scenes populate most of the film, like the one in which an obsessive forlorn Judd petitions a surgeon to remove nasal glands that link her sense of smell with memories. She begins the consultation calm collected and civilized, but in just one short minute and what seems like one breath, explains her plight to tears. Finely directed.
The star power and direction iron out the wrinkles. If you're up for a light romantic-comedy, you'll have a fine time.
Someone Like You. Copyright © 2001. Rated PG-13. * Starring Ashley Judd, Greg Kinnear, Hugh Jackman, Marisa Tomei, Ellen Barkin. * Directed by Tony Goldwyn. * Screenplay by Elizabeth Chandler. Based on the novel "Animal Husbandry" by Laura Zigman. * Produced by Lynda Obst at 20th Century Fox.
Grade..........................A-
-- Copyright © 2000. Ross Anthony, currently based in Los Angeles, has scripted and shot documentaries, music videos, and shorts in 35 countries across North America, Europe, Africa and Asia.
For more reviews visit: http://www.RossAnthony.com
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


You are standing on 12th Street Beach, part of one of the most striking gems of the Chicago lakefront: Northerly Island. Like much of the downtown lakefront, the 91-acre peninsula was created from landfill, ash, and dirt in the early decades of the 1900s. It has played an important role in Chicago history, particularly for being the site of the Century of Progress, the 1933-34 World’s Fair (pictured here).
The designers of Northerly Island planned for it to be open parkland. But, due to the city’s growing need for a lakefront airfield that could handle larger planes, the area was converted to an airport roughly 20 years after it was completed. In 2003, the Merrill C. Meigs Field Airport was demolished. Since then, the Chicago Park District has launched a series of renovation projects to return Northerly Island to the parkland it was intended to be. And they are just some of many on-going efforts to restore and preserve Chicago-area ecosystems.


|
libSMCE 0.0
SmartCar Platform Emulator library
|
#include <cstdint>
#include <span>
#include <string_view>
#include "SMCE/SMCE_iface.h"
#include "SMCE/fwd.hpp"
Go to the source code of this file.
Classes | |
| class | smce::VirtualAnalogDriver |
| class | smce::VirtualDigitalDriver |
| class | smce::VirtualPin |
| class | smce::VirtualPins |
| class | smce::VirtualUartBuffer |
| class | smce::VirtualUart |
| class | smce::VirtualUarts |
| class | smce::FrameBuffer |
| class | smce::FrameBuffers |
| class | smce::BoardView |
Namespaces | |
| namespace | smce |


| Interface | Description |
|---|---|
| Listener |
This interface represents a listener with the functionality of updating other class attributes
|
| Class | Description |
|---|---|
| AboutActivityTest |
Instrumented test, which will execute on an Android device.
|
| BitmapHolder |
This class is for holding all the images required for the various functionality
|
| BodyLocationPopup |
This class displays a pop up window for the patient to add a body location
|
| CommentPopup |
This class displays a pop up window for the doctor to add a comment
|
| DataControllerUnitTest | |
| DoctorActivityTest | |
| DoctorUnitTest | |
| DoctorViewTest |
Instrumented test, which will execute on an Android device.
|
| LoginActivityTest |
Instrumented test, which will execute on an Android device.
|
| PatientActivityTest |
Instrumented test, which will execute on an Android device.
|
| PatientTest |
Instrumented test, which will execute on an Android device.
|
| Photo |
This class is for getter and setters for photos uploaded
|
| ProblemListTest |
Instrumented test, which will execute on an Android device.
|
| ProblemTest |
Instrumented test, which will execute on an Android device.
|
| QRCodePopup |
This class displays a pop up window for showing the QRcode of the user logged in
|
| RecordListTest |
Instrumented test, which will execute on an Android device.
|
| RecordUnitTest |
Example local unit test, which will execute on the development machine (host).
|
| RegisterActivityTest |
Instrumented test, which will execute on an Android device.
|
| SettingActivityTest |
Instrumented test, which will execute on an Android device.
|
| UserUnitTest |
Example local unit test, which will execute on the development machine (host).
|
| Enum | Description |
|---|---|
| BodyLocation |
This class is for holding all the names of all the body location
required for the various functionality
|
| SearchType |
Store all the searchable types in the application
|


MellonFS - Login
Usage
MellonFS is a filesystem implemented in libfuse with enhanced authentication mechanisms.
Each time an open system call is invoked, a temporary code will be sent to your designated
email which you should insert in the Authentication Code menu.
Existing Users
To start the daemon insert your Username and press "Login".
New Users
To register as a new user fill in the Username and Email fields and insert the Master Key.
By pressing the "Login" button the daemon will be started automatically.


celestial: Collection of Common Astronomical Conversion Routines and
Functions
Contains a number of common astronomy conversion routines, particularly the HMS and degrees schemes, which can be fiddly to convert between on mass due to the textural nature of the former. It allows users to coordinate match datasets quickly. It also contains functions for various cosmological calculations.
Downloads:
Reverse dependencies:
Linking:
Please use the canonical form
https://CRAN.R-project.org/package=celestial
to link to this page.


Aurora software: bitmap conversion tool
bmp2c.exe
bmp2c.exe is a command line application to format and convert bitmaps into resource (*.c & *.h) files.Overall features:
bmp2c transforms bitmaps for aurora programs. It can:- cut large images in small tiles / sprites
- convert or adapt pixel format
- apply a color key for mask transparency
- extract individual tiles in multiple pixels arrays (for sprites)
- compact tiles in a single pixels array (for tilesets)
- allocate the flash pages for storing pixels array
- exporting bitmaps to preview the processing results
Call syntax:
bmp2c.exe can be called without arguments to get infomation about the calling syntax.The bmp2c call syntax is the following:
> bmp2c [in.bmp] [out.c] [-g 16] [-p PAGEA] [-r tile] [-t 0xFF00FF] [-d] [-x] [-c] [-b]
- in.bmp
- is the bitmap input file. It must be the first argument.
- out.c
- is the source output file. It must be the second argument.
Default is out.c. - -g 16
- is the single tile / sprite size in pixels. Default is 16 pixels.
- -p PAGEA
- is the 32k flash page where pixels data will be allocated.
Default is PAGEA. - -r tile
- is the name radical for pixel data arrays.
Default is tile. - -t 0xFF00FF
- is the color key used to mask pixels.
Default is pink or 0xFF00FF. - -d
- disable transparency. Must be used for totally opaque image (no color key, no alpha channel).
- -x
- extract tiles. Create separate pixels arrays for every sprite / tile.
- -c
- compact tiles. Arrange tiles in a single column and create a unique pixel array.
- -b
- export results in bitmap. Export the resulting tiles / sprites in bitmap(s).
Use cases:
Convert a backgound image: > bmp2c background-sky.bmp sky.c -r sky This command will generate two files: sky.c and sky.h containing the background-sky.bmp pixels in one single array. The array will be allocated in PAGEA and named sky.
Convert a tileset: > bmp2c tileset-forest.bmp forest.c -g 8 -r forest -c This command will generate two files: forest.c and forest.h all tiles from tileset-forest.bmp tileset. The source tileset will be first cut in 8 x 8 square tiles. Then, all the tiles will be arranged in a single column and exported as a unique array called forest and allocated in PAGEA.
Make sprites of a spriteset: > bmp2c spriteset-robot.bmp robot.c -g 16 -r robot -x -t 0xFF0000 This command will generate two files: robot.c and robot.h containing all sprites from spriteset-robot.bmp spriteset. The source spriteset will be first cut in 16 x 16 square sprites. A color key of 0xFF0000 (pure red) will be used to mark out areas which should be transparent at drawing. Then, all the sprites will exported as separate arrays named robot followed by an indice and allocated in PAGEA.
Supported bitmap formats:
bmp2c.exe only supports 24 and 32 bits windows uncompressed bitmap formats.Please convert other formats bitmaps before processing them with bmp2c.exe.
For this purpose, you can use any capable software such as:
Note on color keying & alpha channel:
Aurora video system expects pixels to be encoded in a 16 bits ABGR(4444) format.bmp2c.exe always discretizes and formats pixels data to this format.
| Bits | Name | Description |
|---|---|---|
| 15..12 | Alpha | From 0 to 15. 0 is transparent, 15 is opaque. |
| 11..8 | Blue | From 0 to 15. |
| 7..4 | Green | From 0 to 15. |
| 3..0 | Red | From 0 to 15. |
Alpha channel is encoded by bmp2c.exe for further developments and video modes.
Color 0 (transparent black color) means the pixel will not be drawn. It is the only transparent color currently available.
bmp2c.exe can substitute any color by color 0 setting a color key with -t color parameter.


Mercenary Captain Sophya:
This Cargo Box bears the seal of the Aden Traders Guild. If you wish to return it to them, take it to Morgan at the magic grocery store. He works for that guild.
Tell me about Redfoot."
Continue with the mission
Discontinue the mission


This repo shows you how to set up authentication in your Angular 2 apps with Auth0. Get started by providing your Auth0 client ID and domain for the Auth0Lock widget in environment/environment.ts.
environment/environment.ts


model_name="simple_model")
model.close()
logging_level=logging.INFO)
// initiate model training
(
train_stats, // dictionary containing training statistics
preprocessed_data, // tuple Ludwig Dataset objects of pre-processed training data
output_directory // location of training results stored on disk
) = model.train(
dataset="./data/train.csv",
experiment_name="simple_experiment",
model_name="simple_model"


Legal Officer Vacancy At National Institute Of Technology Warangal
by Manav MalhotraNational Institute of Technology Warangal invites application for the post of Legal Officer on contractual basis for the period of 1 year extendable by one more year.
Name of the Post: Legal Officer
No. of Post: 01 (One)
Consolidate Pay: Rs. 40,000/- per month
Age Limit: 45 years
Essential Qualification and Experience
- Candidates with LLB qualification from a recognized University with minimum 3 years of experience, as Law practitioner/Legal Adviser or Legal Associate in any organization preferably Government/Semi-Government/Autonomous organization.
- Preference will be given to the candidates with experience in service matters, contract matters and arbitration matters.
How to apply?
- Candidates should fill the application form and send the scanned copy of the application along with all certificates/self-attested documents with Photograph to the email<EMAIL_ADDRESS>- The last date given in the newspaper advertisement is 20th November 2019.
To Access Official Notification click here
To Access Application form click here


Bootstrap Version. Woop woop
Back Home
Type keyword search terms
{{post.title}}
by {{post.author}}
{{post.body}}


Address is required
City is required
Zip Code is required
Number of spaces is required
Special instruction is required


| 439 | (A) | Camels closede in stele come owt than |
| 441 | (C) | ¶ Chamelles closed in steele . komen out þanne |
| 438 | (D) | Camelis closyd in stele comyn out þen |
| 437 | (E) | ¶ Camayles y-cloþed in steel . comyn out þanne |
| (Ex) | ---- no text ---- | |
| 454 | (L) | Cameles closed in stele comen out þanne |
| (P) | ---- no text ---- | |
| 435 | (U) | Camels closed in stele / comen out then |
| (V) | ---- no text ---- |


--- layout: post title: 2022-07-23-Maternity-shoot-at-El-Dorado.jpg date: 2022-07-23 16:04:53 permalink: /assets/html/gallery/2022-07-23-Maternity-shoot-at-El-Dorado.jpg.html exclude: true ---


# Using Built-in Node inspector You can run node's built in v8 inspector! The node-inspector plug-in is not needed anymore. Simply pass the inspector flag and you'll be provided with a URL to the inspector ```shell node --inspect server.js ``` --- ## Using Node inspector Install the node inspector: ```shell npm install -g node-inspector ``` Run your app with the node-debug command: ```shell node-debug filename.js ``` --- ### Using any Browser After that, hit in Browser: ``` http://localhost:8080/debug?port=5858 ``` -- Sometimes port 8080 might not be available on your computer. You may get the following error: ```shell Cannot start the server at <IP_ADDRESS>:8080. Error: listen EACCES. ``` -- In this case, start the node inspector on a different port using the following command. ```shell $node-inspector --web-port=6500 ``` --- ### You will see something like this ![](https://i.stack.imgur.com/JpaL6.png) --- # The End


A little info about me and my background!
Demos of my work along with GitHub links
Tech knowledge and traits I've picked up
How to reach me on LinkedIn, GitHub, etc


Account
Profile
Update Entry
View Entry
Add Entry
Logout
Title
Date
User
Code java
09/03/2018
Refuge
Meeting
08/29/2018
Wise
Zoom Call
08/20/2018
refuge
Code Django
08/23/2018
Homie
Presentation
08/13/2018
Niggah
Create Diary
Title
Time
Date
Content Diary
Create Diary


| Handicaps | ||||||
| 2007 | ||||||
| One Players | ||||||
| 1st Quarter | 2nd Quarter | 3rd Quarter | 4th Quarter | EOY | 18 Hole | |
| R. Ours | 1 | 5 | 2 | 1 | 1 | 2 |
| D. Smith | 3 | 5 | 5 | 4 | 4 | 6 |
| R. Keeney | 3 | 6 | 4 | 3 | 3 | 5 |
| M. Rutherford | 3 | 4 | 4 | 4 | 4 | 6 |
| G. White | 4 | 4 | 4 | 2 | 3 | 5 |
| V. Bunn | 3 | 4 | 5 | 3 | 3 | 5 |
| Two Players | ||||||
| 1st Quarter | 2nd Quarter | 3rd Quarter | 4th Quarter | EOY | 18 Hole | |
| T. Proctor | 6 | 4 | 3 | 3 | 4 | 6 |
| M. McComas | 6 | 4 | 4 | 4 | 4 | 6 |
| A. Wilks | 7 | 13 | 12 | 10 | 9 | 14 |
| J. Smith | 5 | 2 | 2 | 1 | 1 | 2 |
| R. Crowder | 5 | 4 | 4 | 4 | 4 | 6 |
| T. Way | 6 | 7 | 7 | 6 | 6 | 9 |
| Three Players | ||||||
| 1st Quarter | 2nd Quarter | 3rd Quarter | 4th Quarter | EOY | 18 Hole | |
| G. Taylor | 9 | 9 | 8 | 8 | 8 | 12 |
| S. Jones | 8 | 7 | 6 | 7 | 6 | 9 |
| B. Hall | 10 | 10 | 9 | 8 | 8 | 12 |
| M. Kyle | 8 | 7 | 4 | 4 | 4 | 6 |
| B. Meadows | 12 | - | - | - | 14 | 21 |
| L. Baumgarner | 11 | 13 | 11 | 11 | 10 | 15 |
| Four Players | ||||||
| 1st Quarter | 2nd Quarter | 3rd Quarter | 4th Quarter | EOY | 18 Hole | |
| J. Landers | 13 | 12 | 12 | 13 | 13 | 20 |
| B. Kyle | 13 | 17 | 15 | 15 | 15 | 23 |
| T. Baumgarner | 12 | 15 | 14 | 14 | 14 | 21 |
| B. Harbour | 15 | 16 | 14 | 15 | 14 | 21 |
| J. Dodrill | 15 | 16 | 14 | 15 | 14 | 21 |
| R. Adkins | 12 | 10 | 11 | 10 | 11 | 17 |


There are Far Worse Terms Than Cinematic
What is a cinematic experience? For one, it’s a marketing term used on game boxes all the time. It conjures all sorts of images regarding action, intensity, and drama. That’s why they keep using it. A high rate of positive connotation is as good a reason as any for a marketer to repeatedly use a word or phrase. They want you to feel good about the purchase you’re about to make, and what better way than convincing the buyer that they will have a cinematic experience while playing the game?
Over at Rock, Paper, Shotgun, Adam Smith has a piece decrying the use of the term cinematic. In it, he mostly rests the argument upon one negative connotation of word:
The cinema is cinematic but games are not, or at least they shouldn’t be, not in their entirety. An action film can contain thousands of moving parts in a scene, a drama could contain a sequence communicated through the lack of motion, but in most instances the effectiveness of both will be achieved through blocking, through choreography and rehearsal, through placement and post-production. A game allows these elements to be broken and rearranged, and for each sequence to become something new.
At first, I was nodding my head in agreement. Of course we should avoid the term cinematic, games aren’t movies! Games are made up of systems and decisions and play styles. Watching a movie has none of these (though making one does). Then, I considered Smith’s chief example, the Max Payne 3 marketing. I don’t think that the dev team for Max Payne had in mind that the experience would be the same every time—which is the definition for cinematic that Smith seems to prefer. The marketing is talking, as they so often are, about feel.
If the marketers and designers are doing their jobs, Max Payne should feel like a movie. Every time.  It may be different, but it should feel like a director spent hours crafting it even though you were making it up as you went along. Most games like Max Payne are power fantasies, and what could make the power fantasy better than a flawless performance, nail biting victory, or sloppy close-call? Making it look as though that was the way the scene was intended to be played all along.
So what then do we mean by cinematic? If we look at the root of gaming history we find a simple truth. Early games worked almost exclusively with fixed camera perspectives, and thus, fixed player perspectives. Sure, levels would scroll along with Mario or Link, but essentially the camera—and the player—stayed in the same place. Not so in 2012 (and maybe more importantly for this argument, not so for films in 1985).
In film, the viewer’s perspective can be almost anywhere.  And it changes constantly. So, in a game that claims to be cinematic, the perspective should mimic some of the camerawork in film. Open up the landscape and maybe drop the UI as the first person protagonist looks over the smoking battlefield. Pull the camera out of first person as the player’s character is shot and wounded, waiting for assistance from a teammate. Show the opposing player’s view for the killcam. The list goes on. And without adding to the list, sound and music work the same way.
Many years ago, certainly long before Mario et al, cinema did the hard work of creating a visual language for the screen. Like it or not, games happen on the same conceptual screen, especially games like Max Payne. Are there aspects of gaming that designers should be focusing on instead, sure, but saying that cinematic is a dirty word seems a bit like the proverbial nose cutting to spite one’s face.
Gaming needs the mature visual language of cinema in all of its strength as well as equally strong systems with which the player can interact. Interaction is what sets games apart, and on that, Smith and I can agree.


After accessing the scott account with SQL*PLUS, use the following script to create the table and sequence for the bulletin board.
create table board( no number primary key, title varchar2(200) not null, content varchar2(4000), wdate date ) / create sequence board_no_seq start with 1 increment by 1 /
To use the board-schema.sql file, access SQL*PLUS with the scott account, type @ followed by the full path to the board-schema.sql file. If there is a board-schema.sql file in C:\, execute it as follows.
C:\ Command PromptSQL>@C:\board-schema.sql
Run the following insert statement while logged in to SQL * PLUS with the scott account.
DECLARE counter INTEGER; BEGIN counter := 1; FOR counter IN 1..100 LOOP insert into board values (board_no_seq.nextval, LPAD(board_no_seq.currval, 6, 0),'',sysdate); END LOOP; END; /
The table below shows the list of files to be created to implement the bulletin board.
| list.jsp | Shows list of posts (Step-by-step page break, search function will added) |
| write_form.jsp | Post Writing Form |
| BoardWriter.java | Servlet to insert a post into the database table |
| view.jsp | Show the details of the post |
| modify_form.jsp | Modify Form |
| BoardModifier.java | Servlet modifying the post |
| BoardDeleter.java | Servlet to delete the post |
To review JSPs and servlets, JSP is used to show the screen, and Servlet that does not need a screen is adopted. The flow of the bulletin board program is as follows.
list.jsp → write_form.jsp → BoardWriter.java (Run insert) → list.jsp └── view.jsp └── modify_form.jsp → BoardModifier.java (Rnu update) → view.jsp └── BoardDeleter.java (Run delete) → list.jsp
I will create a JSP file in the board subdirectory under the root directory of the ROOT application. If you've been practicing Using the databases in JSP, then custom connection pooling bytecode is created in WEB-INF/classes. (If you do not have custom connection pooling bytecode, you can not test the board below)
The first step of the list page (list.jsp) shows all the records.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.sql.*" %> <%@ page import="net.java_school.util.*" %> <%@ page import="net.java_school.db.dbpool.*" %> <jsp:useBean id="dbmgr" scope="application" class="net.java_school.db.dbpool.OracleConnectionManager" /> <!DOCTYPE html>   <meta charset="UTF-8" /> <title>List</title>
List
 <% Log log = new Log(); Connection con = null; PreparedStatement stmt = null; ResultSet rs = null; String sql = "SELECT no, title, wdate FROM board ORDER BY no DESC"; try { con = dbmgr.getConnection(); stmt = con.prepareStatement(sql); rs = stmt.executeQuery(); while (rs.next()) { int no = rs.getInt("no"); String title = rs.getString("title"); Date wdate = rs.getDate("wdate"); %> <%=no %> <a href="view.jsp?no=<%=no %>"><%=title %> <%= wdate.toString() %>

 <% } } catch(SQLException e) { log.debug("Error Source: board/list.jsp : SQLException"); log.debug("SQLState: " + e.getSQLState()); log.debug("Message: " + e.getMessage()); log.debug("Oracle Error Code: " + e.getErrorCode()); log.debug("sql: " + sql); } finally { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (con != null) { dbmgr.freeConnection(con); } log.close(); } %>
 Add New Post

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html>   <meta charset="UTF-8" /> <title>Add New Post</title>
Add New Post
 <form action="../servlet/BoardWriter" method="post">

 Title	 <input type="text" name="title" size="50">

  <textarea name="content" rows="20" cols="100"></textarea>

  <input type="submit" value="Submit"> <input type="reset" value="Reset"> List

 </form>
package net.java_school.board; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.sql.*; import net.java_school.db.dbpool.*; import net.java_school.util.*; public class BoardWriter extends HttpServlet { private static final long serialVersionUID =<PHONE_NUMBER>510824246L; OracleConnectionManager dbmgr = null; @Override public void init() throws ServletException { ServletContext sc = getServletContext(); dbmgr = (OracleConnectionManager)sc.getAttribute("dbmgr"); } @Override public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("UTF-8"); Log log = new Log(); String title = req.getParameter("title"); String content = req.getParameter("content"); Connection con = dbmgr.getConnection(); PreparedStatement stmt = null; String sql = "INSERT INTO board VALUES (board_no_seq.nextval, ?, ?, sysdate)"; try { stmt = con.prepareStatement(sql); stmt.setString(1, title); stmt.setString(2, content); stmt.executeUpdate(); } catch (SQLException e) { log.debug("Error Source: BoardWriter.java: SQLException"); log.debug("SQLState: " + e.getSQLState()); log.debug("Message: " + e.getMessage()); log.debug("Oracle Error Code: " + e.getErrorCode()); log.debug("sql: " + sql); } finally { if (stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (con != null) { dbmgr.freeConnection(con); } log.close(); String path = req.getContextPath(); resp.sendRedirect(path + "/board/list.jsp"); } } }
Register this servlet in web.xml and set the URI mapping to /servlet/BoardWriter.
Test in the following order.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.sql.*" %> <%@ page import="net.java_school.util.*" %> <%@ page import="net.java_school.db.dbpool.*" %> <jsp:useBean id="dbmgr" scope="application" class="net.java_school.db.dbpool.OracleConnectionManager" /> <!DOCTYPE html>   <meta charset="UTF-8" /> <title>View Post</title>
View Post
 <% int no = Integer.parseInt(request.getParameter("no")); Log log = new Log(); Connection con = null; PreparedStatement stmt = null; ResultSet rs = null; String sql = "SELECT no, title, content, wdate FROM board WHERE no = ?"; try { con = dbmgr.getConnection(); stmt = con.prepareStatement(sql); stmt.setInt(1, no); rs = stmt.executeQuery(); while (rs.next()) { String title = rs.getString("title"); String content = rs.getString("content"); Date wdate = rs.getDate("wdate"); if (content == null) content = ""; %>
Title: <%=title %>, Date Created: <%=wdate.toString() %>

 <%=content = content.replaceAll(System.getProperty("line.separator"), "
") %>
 <% } } catch (SQLException e) { log.debug("Error Source : board/view.jsp: SQLException"); log.debug("SQLState: " + e.getSQLState()); log.debug("Message: " + e.getMessage()); log.debug("Oracle Error Code: " + e.getErrorCode()); log.debug("sql: " + sql); } finally { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (con != null) { dbmgr.freeConnection(con); } log.close(); } %> List <input type="button" value="Edit Post" onclick="javascript:goModify('<%=no %>')"> <input type="button" value="Delete" onclick="javascript:goDelete('<%=no %>')">
Test in the following order.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.sql.*" %> <%@ page import="net.java_school.util.*" %> <%@ page import="net.java_school.db.dbpool.*" %> <jsp:useBean id="dbmgr" scope="application" class="net.java_school.db.dbpool.OracleConnectionManager" /> <% int no = Integer.parseInt(request.getParameter("no")); Log log = new Log(); Connection con = null; PreparedStatement stmt = null; ResultSet rs = null; String title = null; String content = null; String sql = "SELECT title, content FROM board WHERE no = ?"; try { con = dbmgr.getConnection(); stmt = con.prepareStatement(sql); stmt.setInt(1, no); rs = stmt.executeQuery(); if (rs.next()) { title = rs.getString("title"); content = rs.getString("content"); if (content == null) content = ""; } } catch (SQLException e) { log.debug("Error Source: board/modify_form.jsp: SQLException"); log.debug("SQLState: " + e.getSQLState()); log.debug("Message: " + e.getMessage()); log.debug("Oracle Error Code: " + e.getErrorCode()); log.debug("sql: " + sql); } finally { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (con != null) { dbmgr.freeConnection(con); } log.close(); } %> <!DOCTYPE html>   <meta charset="UTF-8" /> <title>Edit Post</title>
Edit Post
 <form action="../servlet/BoardModifier" method="post"> <input type="hidden" name="no" value="<%=no %>">

 Title	 <input type="text" name="title" size="50" value="<%=title %>" />

  <textarea name="content" rows="30" cols="100"><%=content %></textarea>

  <input type="submit" value="Submit"> <input type="reset" value="Reset"> <a href="view.jsp?no=<%=no %>">View Post

 </form>
package net.java_school.board; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.sql.*; import net.java_school.db.dbpool.*; import net.java_school.util.*; public class BoardModifier extends HttpServlet { private static final long serialVersionUID = -971206071575571573L; OracleConnectionManager dbmgr = null; @Override public void init() throws ServletException { ServletContext sc = getServletContext(); dbmgr = (OracleConnectionManager)sc.getAttribute("dbmgr"); } @Override public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("UTF-8"); Log log = new Log(); int no = Integer.parseInt(req.getParameter("no")); String title = req.getParameter("title"); String content = req.getParameter("content"); Connection con = dbmgr.getConnection(); PreparedStatement stmt = null; String sql = "UPDATE board SET title = ?, content = ? WHERE no = ?"; try { stmt = con.prepareStatement(sql); stmt.setString(1, title); stmt.setString(2, content); stmt.setInt(3, no); stmt.executeUpdate(); } catch (SQLException e) { log.debug("Error Source: BoardModifier.java: SQLException"); log.debug("SQLState: " + e.getSQLState()); log.debug("Message: " + e.getMessage()); log.debug("Oracle Error Code: " + e.getErrorCode()); log.debug("sql: " + sql); } finally { if (stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (con != null) { dbmgr.freeConnection(con); } log.close(); String path = req.getContextPath(); resp.sendRedirect( path + "/board/view.jsp?no=" + no); } } }
Register this servlet in web.xml and set the URI mapping to /servlet/BoardModifier.
Test in the following order.
package net.java_school.board; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.sql.*; import net.java_school.db.dbpool.*; import net.java_school.util.*; public class BoardDeleter extends HttpServlet { private static final long serialVersionUID =<PHONE_NUMBER>08983868L; OracleConnectionManager dbmgr = null; @Override public void init() throws ServletException { ServletContext sc = getServletContext(); dbmgr = (OracleConnectionManager)sc.getAttribute("dbmgr"); } @Override public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } @Override public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("UTF-8"); Log log = new Log(); int no = Integer.parseInt(req.getParameter("no")); Connection con = dbmgr.getConnection(); PreparedStatement stmt = null; String sql = "delete board where no = ?"; try { stmt = con.prepareStatement(sql); stmt.setInt(1, no); stmt.executeUpdate(); } catch (SQLException e) { log.debug("Error Source: BoardDeleter.java: SQLException"); log.debug("SQLState: " + e.getSQLState()); log.debug("Message: " + e.getMessage()); log.debug("Oracle Error Code: " + e.getErrorCode()); log.debug("sql: " + sql); } finally { if (stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (con != null) { dbmgr.freeConnection(con); } log.close(); String path = req.getContextPath(); resp.sendRedirect(path + "/board/list.jsp"); } } }
Register this servlet in web.xml and set the URI mapping to /servlet/BoardDeleter.
Test in the following order.
If you have a lot of data, you need to show the records in groups without showing all the records in the list.
If you are grouping records by 10, the Oracle query statement that fetches the records for each group is as follows:
SELECT no,title,wdate FROM ( SELECT ROWNUM R, A.* FROM (select no, title, wdate FROM board ORDER BY no DESC) A) WHERE R BETWEEN 1 and 10;
SELECT no,title,wdate FROM ( SELECT ROWNUM R, A.* FROM (select no, title, wdate FROM board ORDER BY no DESC) A) WHERE R BETWEEN 11 and 20;
SELECT no,title,wdate FROM ( SELECT ROWNUM R, A.* FROM (select no, title, wdate FROM board ORDER BY no DESC) A) WHERE R BETWEEN 21 and 30;
The ROWNUM is a Pseudocolumn. In the query result, the ROWNUM returns a number indicating the order in which Oracle selects the row from a table. If you use ROWNUM in the condition of the WHERE clause, you can extract records corresponding to the group. When requesting list.jsp, if you pass the record group number as a parameter, you can get the starting record number and the last record number of ROWNUM corresponding to the group. Set the parameter corresponding to the record group number to be passed to list.jsp to curPage and modify list.jsp with reference to the following code.
<% // .. Omit .. int curPage = (request.getParameter("curPage") == null) ? 1 : Integer.parseInt(request.getParameter("curPage")); // Start ROWNUM int start = (curPage - 1) * 10 + 1; // End ROWNUM int end = start + 10 - 1; // .. Omit .. String sql = "SELECT no,title,wdate FROM (" + "SELECT ROWNUM R, A.* FROM (SELECT no, title, wdate " + "FROM board ORDER BY no DESC) A) " + "WHERE R BETWEEN ? AND ?"; stmt = con.prepareStatement(sql); stmt.setInt(1, start); stmt.setInt(2, end); rs = pstmt.executeQuery(); // .. Omit .. %>
If you request http://localhost:8080/board/list.jsp?curPage=1, you can see the records of group 1, If you request http://localhost:8080/board/list.jsp?curPage=2, you can see the records of group 2. However, it is inconvenient to change the curPage parameter in the address bar of a web browser and move the page. A typical bulletin board we know of provides a link to move the page as shown below.
[1]
If you know the last page number, you can make the link like this from 1 to the last page number using the for statement. How do I know the last page? Since the page number starts at 1, the "last page number" is equal to the "total number of pages". The total number of pages is calculated by dividing the total number of records by 10, which is the number of records per page. Add the following code to the appropriate location in list.jsp.
int totalRecord = 0; String sql = "SELECT count(*) FROM board"; stmt = con.prepareStatement(sql); rs = pstmt.executeQuery(); rs.next(); totalRecord = rs.getInt(1);
Add the following to the appropriate location under the code to get the total number of records in list.jsp.
int totalPage = 0; if (totalRecord != 0) { if (totalRecord % 10 == 0) { totalPage = totalRecord / 10; } else { totalPage = totalRecord / 10 + 1; } }
Now we get the total number of pages, the last page number. At this point, I will refine the code to get the ROWNUM start and end records more elegantly. Declare the variable numPerPage to store the number of records per page, and modify the code in list.jsp referring to the code below.
int numPerPage = 10; //the number of records per page int start = (curPage - 1) * numPerPage + 1; //the ROWNUM start record int end = start + numPerPage - 1; //the ROWNUM end record
You also need to change the code to get the total number of pages.
int totalPage = 0; if (totalRecord != 0) { if (totalRecord % numPerPage == 0) { totalPage = totalRecord / numPerPage; } else { totalPage = totalRecord / numPerPage + 1; } }
Add the following code that creates the page move link to the bottom of list.jsp.
<% for (int i = 1; i <= totalPage; i++) { %> <a href="list.jsp?curPage=<%=i%>">[<%=i%>] <% } %>
The page partitioning algorithm is summarized as follows.
The following is a list.jsp with page partitioning function.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.sql.*" %> <%@ page import="net.java_school.util.*" %> <%@ page import="net.java_school.db.dbpool.*" %> <jsp:useBean id="dbmgr" scope="application" class="net.java_school.db.dbpool.OracleConnectionManager" /> <!DOCTYPE html>   <meta charset="UTF-8" /> <title>List <%=curPage %> page</title>
List <%=curPage %> page
 <% Log log = new Log(); Connection con = null; PreparedStatement stmt = null; ResultSet rs = null; String sql = null; //1. Get the total number of records. int totalRecord = 0; try { con = dbmgr.getConnection(); sql = "SELECT count(*) FROM board"; stmt = con.prepareStatement(sql); rs = stmt.executeQuery(); rs.next(); totalRecord = rs.getInt(1); } catch (SQLException e) { } finally { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (con != null) { dbmgr.freeConnection(con); } } //2. Set the number of records per page and obtain the total number of pages. int numPerPage = 10; //Set the number of records per page int totalPage = 0; if (totalRecord != 0) { if (totalRecord % numPerPage == 0) { totalPage = totalRecord / numPerPage; } else { totalPage = totalRecord / numPerPage + 1; } } //3. Find the first ROWNUM number and the last ROWNUM number of the group. int curPage = request.getParameter("curPage") == null ? 1 : Integer.parseInt(request.getParameter("curPage")); //first ROWNUM int start = (curPage - 1) * numPerPage + 1; //last ROWNUM int end = start + numPerPage - 1; try { con = dbmgr.getConnection(); sql="SELECT no,title,wdate FROM (" + "SELECT ROWNUM R, A.* FROM (" + "SELECT no, title, wdate FROM board ORDER BY no DESC) A) " + "WHERE R BETWEEN ? AND ?"; stmt = con.prepareStatement(sql); stmt.setInt(1, start); stmt.setInt(2, end); rs = stmt.executeQuery(); while (rs.next()) { int no = rs.getInt("no"); String title = rs.getString("title"); Date wdate = rs.getDate("wdate"); %> <%=no %> <a href="view.jsp?no=<%=no %>"><%=title %> <%= wdate.toString() %>

 <% } } catch(SQLException e) { log.debug("Error Source: board/list.jsp's SQLException"); log.debug("SQLState: " + e.getSQLState()); log.debug("Message: " + e.getMessage()); log.debug("Oracle Error Code: " + e.getErrorCode()); log.debug("sql: " + sql); } finally { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (con != null) { dbmgr.freeConnection(con); } log.close(); } //4. Create page links. for (int i = 1; i <= totalPage; i++) { %> <a href="list.jsp?curPage=<%=i %>">[<%=i %>] <% } %>
 <a href="write_form.jsp?curPage=<%=curPage %>">Add New Post

Visit the list page and click the page link to test it.
Object page = this;In conclusion, you can not use a variable named page in JSP scripting.
You can use the rank() function from Oracle 11g. The following is a query statement that sorts the employee data in salary order in the emp table of the scott account.
SELECT empno,ename,sal,rank() over (order by sal desc) as rank FROM emp;
With this function, you can change the query statement corresponding to the bulletin board list as follows.
SELECT no,title,wdate FROM ( SELECT rank() over (order by no desc) R,no,title,wdate FROM board ) WHERE R BETWEEN 1 and 10;
There is also a problem with the page partitioning function. If there are 10000 records and numPerPage is 10, 1000 page links are generated as [1] [2] [3] ...... [999] [1000]. A 1000 page link will ruin the web design. The solution is to divide the page links into groups as well. I'll call this feature "Limit the number of page links".
Pages must be grouped to limit the number of links. If you restrict the number of links to 5 pages to be visible, then links [1] [2] [3] [4] [5] will belong to group 1, and links [6] [7] [8] [9] [10] will belong to group 2. If the page group unit is called pagePerBlock and the number of the page group to which curPage belongs is stored in a variable called block, the block can be obtained by the following code.
//Declaring and initializing variables to store the number of the group to which curPage belongs. int block = 1; //Declaring and initializing variables to store the number of page links per page link group. int pagePerBlock = 5; if (curPage % pagePerBlock == 0) { block = curPage / pagePerBlock; } else { block = curPage / pagePerBlock + 1; }
The first page and last page number belonging to block can be obtained by the following code.
//The first page belonging to block int firstPage = (block - 1) * pagePerBlock + 1; //The last page belonging to block int lastPage = block * pagePerBlock;
Use the loop statement to create a link from the first page to the last page.
<% for (int i = firstPage; i <= lastPage; i++) { %> <a href="list.jsp?curPage=<%=i%>">[<%=i%>] <% } %>
If you modify list.jsp as described above, you get the following results. Obtaining the page group to which the current page belongs and showing only pages belonging to that page group succeeded. But there is no way to move to another page group. The most common solution is to create a link so that you can move to an adjacent page group. If the block is greater than 1, Creates a [<] link and link "list.jsp?curPage=<%=firstPage-1 %>" to that. If the block is smaller than the total number of blocks (the total number of blocks is equal to the last block number), Create a [>] link and link "list.jsp?curPage=<%=lastPage+1 %>"to that. This allows you to navigate to adjacent page groups using the [<] [>] link. To create a [>] link, you need additional code to get the total number of blocks, or the last block number.
int totalBlock = 0; if (totalPage > 0) { if (totalPage % pagePerBlock == 0) { totalBlock = totalPage / pagePerBlock; } else { totalBlock = totalPage / pagePerBlock + 1; } }
You can generate the [<] and [>] links with the following code.
<% int prevPage = 0; if(block > 1) { prevPage = firstPage - 1; %> <a href="list.jsp?curPage=<%=prevPage %>">[<] <% } %>
<% if(block < totalBlock) { int nextPage = lastPage + 1; %> <a href="list.jsp?curPage=<%=nextPage %>">[>] <% } %>
Modify the list.jsp as described above.
The following is a list after modification. You can see the links [<] and [>] to move to adjacent page groups.
There seems to be no problem, but there are still bugs. After adding the records so that the total number of records is 101, move to the last block using the [>] link. It can be confirmed that unnecessary page links ([12] [13] [14] [15]) are generated in the last block. If numPerPage is 10 when the record is 101, totalPage is 11. And if pagePerBlock is 5, then totalBlock is 3. The last page number in the block 3 is calculated as 15, so that unnecessary links [12] [13] [14] [15] are created. To prevent unnecessary page links from being created, the last page number in the last block should be set to the total number of pages (this is the same as the last page number). Add the following code before the for statement that prints the pagination link:
if (block >= totalBlock) { lastPage = totalPage; }
After visiting view.jsp from list.jsp?curPage=5 and clicking the "List" link in view.jsp, you will be visiting list.jsp. In other words, I saw the View Post on page 5 and came back to page 1. It is common sense to see the View Post on page 5 and go back to page 5 when you click the "List" link. To do so, you must pass the curPage parameter to all the components associated with the bulletin board, except for the "servlet that handles new writing", and the component that passed the curPage must add this parameter to the query string of the link to move to the other component. Open the /board/list.jsp file and modify the query string of the link as shown below.
<a href="view.jsp?no=<%=no %>&curPage=<%=curPage %>"><%=title %> <%= wdate.toString() %>
<a href="write_form.jsp?curPage=<%=curPage %>">Add New Post
Open the /board/view.jsp file and modify the query string for the move link to other components.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.sql.*" %> <%@ page import="net.java_school.util.*" %> <%@ page import="net.java_school.db.dbpool.*" %> <% int no = Integer.parseInt(request.getParameter("no")); String curPage = request.getParameter("curPage"); %> <jsp:useBean id="dbmgr" scope="application" class="net.java_school.db.dbpool.OracleConnectionManager" /> <!DOCTYPE html>   <meta charset="UTF-8" /> <title>View Post</title>
View Post
 .. Omit .. <a href="list.jsp?curPage=<%=curPage %>">List <input type="button" value="Edit Post" onclick="javascript:goModify('<%=no %>','<%=curPage %>')"> <input type="button" value="Delete Post" onclick="javascript:goDelete('<%=no %>','<%=curPage %>')">
Open the /board/write_form.jsp file and modify the code to return to the list. However, you should not change the form action property to ../servlet/BoardWriter?curPage=<%=curPage%>. Why? New articles are always visible on the first page of the list. I registered a new article on page 5, but if I go back to page 5, I can not see the new article I wrote. Therefore, if you register a new article, it is correct to go to the first page of the list.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% String curPage = request.getParameter("curPage"); %> <!DOCTYPE html>   <meta charset="UTF-8" /> <title>Add New Post</title>
Add New Post
 <form action="../servlet/BoardWriter" method="post">

 Title	 <input type="text" name="title" size="50">

  <textarea name="content" rows="20" cols="100"></textarea>

  <input type="submit" value="Submit"> <input type="reset" value="Reset"> <a href="list.jsp?curPage=<%=curPage %>">List

 </form>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.sql.*" %> <%@ page import="net.java_school.util.*" %> <%@ page import="net.java_school.db.dbpool.*" %> <jsp:useBean id="dbmgr" scope="application" class="net.java_school.db.dbpool.OracleConnectionManager" /> <% int no = Integer.parseInt(request.getParameter("no")); String curPage = request.getParameter("curPage"); Log log = new Log(); //.. Omit .. %> <!DOCTYPE html>   <meta charset="UTF-8" /> <title>Edit Post</title>
Edit Post
 <form action="../servlet/BoardModifier" method="post"> <input type="hidden" name="no" value="<%=no %>"> <input type="hidden" name="curPage" value="<%=curPage %>">

 Title	 <input type="text" name="title" size="50" value="<%=title %>" />

  <textarea name="content" rows="30" cols="100"><%=content %></textarea>

  <input type="submit" value="Submit"> <input type="reset" value="Reset"> <a href="view.jsp?no=<%=no %>&curPage=<%=curPage %>">View Post

 </form>
@Override public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("UTF-8"); Log log = new Log(); int no = Integer.parseInt(req.getParameter("no")); String curPage = req.getParameter("curPage"); //.. Omit .. String path = req.getContextPath(); resp.sendRedirect(path + "/board/view.jsp?no=" + no + "&curPage=" + curPage); }
@Override public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("UTF-8"); Log log = new Log(); int no = Integer.parseInt(req.getParameter("no")); String curPage = req.getParameter("curPage"); //.. Omit .. String path = req.getContextPath(); resp.sendRedirect(path + "/board/list.jsp?curPage=" + curPage); }
Web programmers should be familiar with paging. You should have a thorough understanding of paging through implementation and sufficient testing.
If you have a lot of posts, you need a search function. Add the following code at the bottom of list.jsp.
<form action="list.jsp" method="post"> <input type="text" size="10" maxlength="30" name="keyword" /> <input type="submit" value="Search" /> </form>
Now you need to pass list.jsp with a keyword parameter in addition to curPage. If the received keyword parameter is null, it is recommended to replace it with the character "". Add the following code to the appropriate location in list.jsp.
String keyword = request.getParameter("keyword"); if (keyword == null) keyword = "";
When a search is added, the total number of records changes according to the search condition. Therefore, modify the part of the list.jsp to obtain the total number of records as follows.
if (keyword.equals("")) { sql = "SELECT count(*) FROM board"; } else { sql = "SELECT count(*) FROM board " + "WHERE title LIKE '%" + keyword + "%' " + "OR content LIKE '%" + keyword + "%'"; }
Modify the query to retrieve the records for that page.
if (keyword.equals("")) { sql = "SELECT no,title,wdate " + "FROM (SELECT ROWNUM R, A.* FROM (" + "SELECT no,title,wdate FROM board ORDER BY no DESC) A) " + "WHERE R BETWEEN ?  AND ?"; }
When you click the 5th page link at the bottom of the list page of search results, you should not go to the 5th page of the unscanned list. Open the list.jsp file and modify it to pass the keyword parameter to the link to list.jsp.
<a href="list.jsp?curPage=<%=prevPage %>&keyword=<%=keyword %>">[<]
<a href="list.jsp?curPage=<%=i %>&keyword=<%=keyword %>">[<%=i %>]
<a href="list.jsp?curPage=<%=nextPage %>&keyword=<%=keyword %>">[>]
If you move to the View Post from the list of search results and then use the [List] link to return to the list, you will not be able to return to the list that was searched. When you request view.jsp, you need to pass a parameter called keyword in addition to curPage to get back to the search list. Open the list.jsp file and see below to modify the link to View Post and Add New Post.
<a href="view.jsp?no=<%=no %>&curPage=<%=curPage %>&keyword=<%=keyword %>"><%=title %> <%= wdate.toString() %>
<a href="write_form.jsp?curPage=<%=curPage %>&keyword=<%=keyword %>">Add New Post
Modify the code so that view.jsp receives the curPage and keyword parameters, and then uses the curPage and keyword parameters when returning to list.jsp. Other components of the bulletin board, except for the writing process servlet, also receive the keyword parameter and modify it so that the keyword parameter is added to the link from the code to the other component.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.sql.*" %> <%@ page import="net.java_school.util.*" %> <%@ page import="net.java_school.db.dbpool.*" %> <% request.setCharacterEncoding("UTF-8"); int no = Integer.parseInt(request.getParameter("no")); String curPage = request.getParameter("curPage"); String keyword = request.getParameter("keyword"); %> <jsp:useBean id="dbmgr" scope="application" class="net.java_school.db.dbpool.OracleConnectionManager" /> <!DOCTYPE html>   <meta charset="UTF-8" /> <title>View Post</title>
View Post
 .. Omit .. <a href="list.jsp?curPage=<%=curPage %>&keyword=<%=keyword %>">List <input type="button" value="Edit Post" onclick="javascript:goModify('<%=no %>','<%=curPage %>','<%=keyword %>')"> <input type="button" value="Delete Post" onclick="javascript:goDelete('<%=no %>','<%=curPage %>','<%=keyword %>')">
Modify the following components for the same reason as above. However, BoardWriter.java does not need to be modified.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% request.setCharacterEncoding("UTF-8"); String curPage = request.getParameter("curPage"); String keyword = request.getParameter("keyword"); %> <!DOCTYPE html>   <meta charset="UTF-8"> <title>Add New Post</title>
Add New Post
 <form action="../servlet/BoardWriter" method="post">

 Title	 <input type="text" name="title" size="50">

  <textarea name="content" rows="20" cols="100"></textarea>

  <input type="submit" value="Submit"> <input type="reset" value="Reset"> <a href="list.jsp?curPage=<%=curPage %>&keyword=<%=keyword %>">List

 </form>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.sql.*" %> <%@ page import="net.java_school.util.*" %> <%@ page import="net.java_school.db.dbpool.*" %> <jsp:useBean id="dbmgr" scope="application" class="net.java_school.db.dbpool.OracleConnectionManager" /> <% request.setCharacterEncoding("UTF-8"); String no = request.getParameter("no"); String curPage = request.getParameter("curPage"); String keyword = request.getParameter("keyword"); Log log = new Log(); //.. Omit .. %> <!DOCTYPE html>   <meta charset="UTF-8"> <title>Edit Post</title>
Edit Post
 <form action="../servlet/BoardModifier" method="post"> <input type="hidden" name="no" value="<%=no %>"> <input type="hidden" name="curPage" value="<%=curPage %>"> <input type="hidden" name="keyword" value="<%=keyword %>">

 Title	 <input type="text" name="title" size="50" value="<%=title %>" />

  <textarea name="content" rows="30" cols="100"><%=content %></textarea>

  <input type="submit" value="Submit"> <input type="reset" value="Reset"> <a href="view.jsp?no=<%=no %>&curPage=<%=curPage %>&keyword=<%=keyword %>">View Post

 </form>
@Override public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("UTF-8"); Log log = new Log(); int no = Integer.parseInt(req.getParameter("no")); String curPage = req.getParameter("curPage"); String keyword = req.getParameter("keyword"); //.. Omit .. String path = req.getContextPath(); keyword = java.net.URLEncoder.encode(keyword,"UTF-8"); resp.sendRedirect(path + "/board/view.jsp?no=" + no + "&curPage=" + curPage + "&keyword=" + keyword); }
@Override public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("UTF-8"); Log log = new Log(); int no = Integer.parseInt(req.getParameter("no")); String curPage = req.getParameter("curPage"); String keyword = req.getParameter("keyword"); //.. Omit .. String path = req.getContextPath(); keyword = java.net.URLEncoder.encode(keyword,"UTF-8"); resp.sendRedirect(path + "/board/list.jsp?curPage=" + curPage + "&keyword=" + keyword); }
The reason for the keyword = java.net.URLEncoder.encode (keyword, "UTF-8") code is that the encoding of the Java string and the URL address character, which are arguments to the sendRedirect() method of HttpServletResponse, are different. The URLEncoder encode() method allows you to get the byte value for non-English characters. This code needs to modify the server settings to work the way we want. Open the CATALINA_HOME/conf/server.xml file and make sure that the Connector element has the URIEncoding attribute set to UTF-8, as shown below, with the Connector element having the port attribute value of 8080. If there is no URIEncoding attribute, add it as follows.
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="UTF-8" redirectPort="8443" />
Tomcat uses ISO-8859-1 as the default character encoding for URLs that contain query strings. In other words, the encoding of GET parameters is ISO-8859-1. URIEncoding="UTF-8" setting changes the character encoding for the URL to UTF-8. With this setting, it is possible to transmit a parameter whose value are in non-english characters by the GET method. To apply this setting, rerun Tomcat. For English-only sites, the above settings may not be necessary.
References