Gateway
BOT
25-Oct-18 05:59 AM
[telegram] <AmOrEMiO> So why can’t Komodo reach $200
[telegram] <AmOrEMiO> Humm $2 would be worthless for me (re @feelfreedomonline: for now let's reach 2$)
[telegram] <AmOrEMiO> I bought it already at $1
[telegram] <AmOrEMiO> Not a big deal
[telegram] <feelfreedomonline> so it is 100%, don't be greedy it's end very bad
[telegram] <AmOrEMiO> You are right I am very greedy and I lost $160 with XRP because of that but well never mind we always want more! (re @feelfreedomonline: so it is 100%, don't be greedy it's end very bad)
[telegram] <AmOrEMiO> $160K
[telegram] <feelfreedomonline> I know, I lost 40k$ because of that so I know something about it
[telegram] <AmOrEMiO> I had 45K ripple at the time I bought for 0.22
[telegram] <AmOrEMiO> It went up like crazy to $3.60!
[telegram] <AmOrEMiO> I was happy that I would get good profit and then I said I won’t sell so I can get a million.
[telegram] <AmOrEMiO> Result of that is that Ripple dramatically dropped and I ended up not going anywhere.
[telegram] <feelfreedomonline> hehe, so it was good lesson :)
[telegram] <AmOrEMiO> I was new at the time but I learnt my lesson.
[telegram] <feelfreedomonline> I was new too in that time
[telegram] <AmOrEMiO> $162K was going to do a lot but I guess I am unlucky lol
[telegram] <AmOrEMiO> Yep (re @feelfreedomonline: hehe, so it was good lesson :))
[telegram] <feelfreedomonline> You wasn't ready for so big money, I also
[telegram] <AmOrEMiO> Lol
[telegram] <AmOrEMiO> I guess money only goes to the rich
[telegram] <AmOrEMiO> I am so unlucky that sometimes o don’t believe
[telegram] <AmOrEMiO>
[telegram] <feelfreedomonline> hehe sometimes life is brutal
[telegram] <bat> Maybe not unlucky. Maybe smart investing is thinking in terms of 5 years. Everybody wants get rich quick. (re @AmOrEMiO: $162K was going to do a lot but I guess I am unlucky lol)
[telegram] <feelfreedomonline> One thing is for sure, this is very valuable expirience, to use it in the future :)
[telegram] <AmOrEMiO> Brutal?  Maybe smart investing is thinking in terms of 5 years. Everybody wants get rich quick.)
[telegram] <AmOrEMiO> Yes I should think that way but I don’t (re @feelfreedomonline: so don't count for 200$ by happy when it go to 2$)
[telegram] <feelfreedomonline> You have right but it is always good to cash big profit so we shouldn't forget about sl on profit (re @bat: Maybe not unlucky. Maybe smart investing is thinking in terms of 5 years. Everybody wants get rich quick.)
[telegram] <AmOrEMiO> If I have a second chance I will lol (re @feelfreedomonline: You have right but it is always good to cash big profit so we shouldn't forget about sl on profit)
[telegram] <AmOrEMiO> People are saying the coins are not going up anymore
[telegram] <feelfreedomonline> if you will thing still the same way you will have still the same resoults (re @AmOrEMiO: Yes I should think that way but I don’t)
[telegram] <AmOrEMiO> Yes I guess
[telegram] <AmOrEMiO> Less frustration
[telegram] <AmOrEMiO> I am anxious about getting things done
[telegram] <feelfreedomonline> don't listen what people say, there was several opportunities recently to make a good profit (re @AmOrEMiO: People are saying the coins are not going up anymore)
[telegram] <AmOrEMiO> Yes these people are very wealthy so they have reason to dance like that lol (re @majonicoin: )
[telegram] <AmOrEMiO> I am waiting for this (re @feelfreedomonline: don't listen what people say, there was several opportunities recently to make a good profit)
[telegram] <feelfreedomonline> step by step, now we need to adjust to the market, and make small profit if it possible, better small profit than no profit or loose
[telegram] <AmOrEMiO> Small profit is not very good because usually the exchanges are manipulated and when you convert the money it ends up little. (re @feelfreedomonline: step by step, now we need to adjust to the market, and make small profit if it possible, better small profit than no profit or loose)
[telegram] <feelfreedomonline> thousands of % is now small probability
[telegram] <AmOrEMiO> If you are talking about a profit of at least $5000k then ok
[telegram] <AmOrEMiO> Only me and you on this chat?
[telegram] <feelfreedomonline> And so what ? you take your profit and looking for another opportunity :) (re @AmOrEMiO: Small profit is not very good because usually the exchanges are manipulated and when you convert the money it ends up little.)
[telegram] <AmOrEMiO> Yes but the thing is that I don’t have patience to play like that. (re @feelfreedomonline: And so what ? you take your profit and looking for another opportunity :))
[telegram] <AmOrEMiO> I want something substantial
[telegram] <AmOrEMiO> Small profits won’t fix my life lol
[telegram] <AmOrEMiO> Financially I mean :)
[telegram] <AmOrEMiO> Was nice talking to you. (re @feelfreedomonline: And so what ? you take your profit and looking for another opportunity :))
[telegram] <AmOrEMiO> Night all X
[telegram] <feelfreedomonline> It hard to find something to pay you thousands % profit for now
[telegram] <AmOrEMiO> I know (re @feelfreedomonline: It hard to find something to pay you thousands % profit for now)
[telegram] <AmOrEMiO> The market is bad
[telegram] <AmOrEMiO> Everything dropping
[telegram] <Nusaybah> After crypto people are expecting to gain 100% everyday


chemistry labs easy experiment
Top 10 Mad Science-Worthy Chemistry Experiments - Neatorama
Nov 4, 2009 . Main Blog > Top 10 Mad Science-Worthy Chemistry Experiments . This one's easy to do, all you need is dish soap, hydrogen peroxide, and .
http://www.neatorama.com/2009/11/04/top-10-mad-science-worthy-chemistry-experiments/
A Guide to High School Chemistry Experiments - Polymer-Search
Atoms, Polymers, Gases and More - A Guide to High School Chemistry Experiments. Any type of experiment, whether a large scale scientific research endeavor .
http://www.polymer-search.com/covalent/high-school-chemistry-guide.html
Demonstrations & Experiments - Chemistry - About.com
They tend to involve pretty colors, fire, or ice. Some projects require adult supervision or access to a chemistry lab. Others are easy and safe enough for kids to .
http://chemistry.about.com/od/demonstrationsexperiments/
Things You'll Need
- Certified copies of public records evidence in your case
Instructions
-
-
1
0:52 Ammonia and Acid Chemistry Lab Experiment - YouTube
Jul 22, 2011 . Chemistry Lab Experiment. . Ammonia and Acid Chemistry Lab Experiment. . Easy Blue Color Change Chemistry Demonstrationby Anne .
http://www.youtube.com/watch?v=QTP9YLy6fT4United Nuclear - Chemistry Experiments
The following is a collection of chemistry experiments that we've either come up . Even something as simple as boiling water in a flask can potentially explode .
http://www.unitednuclear.com/experindex.htm -
2
Science Experiments
Easy science experiments and science fair project ideas that make learning fun. . for an easy science project idea or browse the entire library of experiments.
http://www.stevespanglerscience.com/experimentsChemistry Experiments & Demonstrations You Can Do at Home
Here are some do-it-at-home chemistry experiments. . Making a baking soda and vinegar volcano is safe and easy, plus it only requires a few inexpensive .
http://chemistry.about.com/od/homeexperiments/ -
-
3
Off the Shelf Chemistry Laboratory Experiments - Serendip
This chemistry lab manual is designed to use consumer products for student chemistry experiments. The students should be required to shop for many of the .
http://serendip.brynmawr.edu/sci_edu/farber/General Chemistry Laboratory Experiments
General Chemistry Laboratory CH 111/112. Fall Semester Experiment 1: How Dense is an Egg? Experiment 2: What Is It? Identifying an Unknown Compound .
http://www.bc.edu/schools/cas/chemistry/undergrad/genexp.html -
4
Fun Science Experiments for Kids - Cool Projects & Easy Ideas for ...
Have fun with science experiments for kids! If you're looking for .
http://www.sciencekids.co.nz/experiments.htmlScience Is Fun Home Experiments
Add joy and share the fun of scientific experimentation with .
http://scifun.chem.wisc.edu/homeexpts/homeexpts.html
-
1
References
Resources
- Photo Credit Justice image by MVit from abengoa quality systems manager


WITNESS LIST Business & Industry Committee February 27, 2001-2:00P HB 394 For: McClelland, Mark (Tax Assessor-Collectors Association of Texas) Moore, Mickey (Texas Retailers Association) Winn, Gerald "Buddy" (Self and Texas Association of Appraisal Districts) HB 502 For: Eurotas, Gloria (Fort Worth City Council) Henneberger, John (Texas Low Income Housing Information Service) HB 1205 For: Hammond, Bill (Texas Association of Business and Chambers of Commerce) McMurry, Sam (Texas Self-Insurance Assn. (TSIA)) Against: Class, Ramon (Self) Hinojosa, Walter (Texas AFL-CIO) HB 1261 Committee Substitute (CSHB 1261) For: Williams, Mike (Texas Electric Cooperation) HB 1367 For: Bartlett, Roger A. (Texas Business Law Foundation) Perkins, Arthur Val (Texas Business Law Foundation) HB 1514 Committee Substitute (CSHB 1514) For: Sickels, Linda (Trinity Industries, Inc.)


Joe Schmoe (Passenger)
21
Male
iPhone 7, Running ios 11.0
Joe is very confident using his smartphone, he's on it all the time.
Usually a busy person, Joe can be very impatient.
Joe's attitude may be effected by alcohol, as he usually uses Uber when he has been drinking.
Assuming he has been drinking heavily he may either be really laid back or looking to start a fight.
Joe wants his uber to arrive within minutes of submitting his request.
Joe wants his uber to not judge him for being drunk.
But mainly, he just want's a ride home from the club so he doesn't get a DWI.
Joe gets very frustrated trying to call or text his Uber driver because it never works.
Joe is very frustrated when he encounters surge pricing.
If Joe is downtown he may get frustrated trying to figure out which car is his Uber.


Hi we are awesome. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
Hi we are awesome. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
This guy/girl is a very good mentor. Mentors are cool people who mentor us. They are so important that we have a separate section on the website just for them (which is this section). BLAH BLAH BLAH this is just to fill space.
This guy/girl is a very good mentor. Mentors are cool people who mentor us. They are so important that we have a separate section on the website just for them (which is this section). BLAH BLAH BLAH this is just to fill space.
This guy/girl is a very good mentor. Mentors are cool people who mentor us. They are so important that we have a separate section on the website just for them (which is this section). BLAH BLAH BLAH this is just to fill space.
This guy/girl is a very good mentor. Mentors are cool people who mentor us. They are so important that we have a separate section on the website just for them (which is this section). BLAH BLAH BLAH this is just to fill space.
This guy/girl is a very good mentor. Mentors are cool people who mentor us. They are so important that we have a separate section on the website just for them (which is this section). BLAH BLAH BLAH this is just to fill space.
This guy/girl is a very good mentor. Mentors are cool people who mentor us. They are so important that we have a separate section on the website just for them (which is this section). BLAH BLAH BLAH this is just to fill space.
This guy/girl is a very good mentor. Mentors are cool people who mentor us. They are so important that we have a separate section on the website just for them (which is this section). BLAH BLAH BLAH this is just to fill space.
This guy/girl is a very good mentor. Mentors are cool people who mentor us. They are so important that we have a separate section on the website just for them (which is this section). BLAH BLAH BLAH this is just to fill space.


WITNESS LIST Criminal Jurisprudence Committee March 5, 1997-2:00P HB 15 For: Rep. Chisum (Himself) Against: Keith Hampton (TCDLA) On: David Weeks (Himself and TDCAA) HB 58 For: Gilleland, John "Greg" (Fort Bend Co, DA Office) Wilson, Rep. (Himself) HB 96 For: Hardy, George B. (Himself) Hardy, Lynn (Herself) Zbranek, Rep. (Himself) Against: Cunningham, Herbert (Himself) Cunningham, J. R. (Himself) Williams, C. P. (Himself) Registering, but not testifying: Against: Chesney, Brent (Houston Raceway Park) HB 157 For: Driver, Rep. (Himself) Lewis, Bill (MADD) Registering, but not testifying: For: Wallace, Sherri (Crim. DA, Dallas Co.) HB 260 For: Pickett, Rep. (Himself) HB 695 For: Dutton, Rep. (Himself) Registering, but not testifying: For: Clark, Mark (Houston Police Of Union) HB 870 For: Guitierrez, Rep. (Himself) Lewis, Bill (MADD) Martinez, Elsie (Herself) HB 921 For: Danburg, Rep. (Herself) Glowka, Jean (Herself) Hayes, Jamye (TAASA) Hunter, Linda (Herself) Johnson, Dana R. (TAASA) Lyons, Laura (TAASA) Marta, Donna S. (TAASA) Mok, Any wong (Herself) Norris, Kimberly L. (Herself) Riddering, Hannah (Texas NOW) Taylor, Marcus D. (Himself) Townsend, Carol (Herself) Against: Hampton, Keith (TCDLA) On: McKensie, Cecelia (Office of Attorney Gen) Registering, but not testifying: Against: Blackwell, Betty (TCDLA) HB 975 For: Hightower, Rep. (Himself) On: Reynolds, Carl (TX Bd of Criminal Just.) HB 1240 For: Hinojosa, Rep. (Himself) Lewis, Bill (MADD)


CrossRef OpenUrl GI- sequences using South viral genotype virus population IBV bronchitis different infectious strains China genetic spreading Italian analysis migration new Avian Figure Italy countries genotypes independent runs (i.e. American Evol. Virus considered country estimated present results Asia Bayesian HVR However, Science based collected introduction lineage molecular Additionally, Web dataset evolutionary obtained presence reported America avian dynamics predicted relevant studies time Infectious Rambaut approach circulation detected included limited main performed posterior rate sequencing size supported used BEAST Europe Italy. Middle Pathol. University ancestral available demonstrated epidemiology figure: high isolates location lower number poor previously relative sampling spread strain tree vaccination wild ;<;span Biol Dis. Download Drummond HPD Interestingly, Mol Molecular Open Phylodynamic appears calibrated characterized data-hide-link-title=""> data-icon-position="" diversity emergence epidemiological epidemiology. fact, figure history identified implemented leading like likely long model observed origin probability. randomly recent recombination reconstruction remarkable reporting retrospective role samples study study. substitution tab xmlns=";http://www.w.org//xhtml"; (HVR) (left) -). ./... America. Asian Boxplot Bronchitis Consequently, Densityplot Department Detection East European Fig). Franzo Lower MRCA Nevertheless, Res. Suchard TempEst Upper Vet able absence according animal base- beginning birds clear clinical control countries, data described detection diagnostic disease evaluated generation higher including increase introduced investigate late local mean multiple particularly phylogenetic phylogentic poultry proportional protein provided rates region related relevance scenario selected sequence significant tMRCA variability variation viruses worldwide


Musical Timeline
In addition to the timeline indicating seconds, there is a second timeline which shows bars and beats.


{% extends "base.html" %} {% block header_modifier %}header--light-bg{% endblock %} {% block content %}
An e-mail with more information has been sent to the address you entered.
If you do not receive an e-mail within 15 minutes please check your spam folder and contact<EMAIL_ADDRESS>for further assistance.


Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent auctor feugiat consequat.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed lorem massa, commodo a maximus a, pretium sed sem. In hac habitasse platea dictumst. Donec tincidunt interdum felis at mollis. Aenean tempor mattis orci, ultrices posuere tellus tempor sit amet. Mauris sed augue ultricies, maximus neque vel, vehicula metus.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed lorem massa, commodo a maximus a, pretium sed sem. In hac habitasse platea dictumst. Donec tincidunt interdum felis at mollis. Aenean tempor mattis orci, ultrices posuere tellus tempor sit amet. Mauris sed augue ultricies, maximus neque vel, vehicula metus.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed lorem massa, commodo a maximus a, pretium sed sem. In hac habitasse platea dictumst. Donec tincidunt interdum felis at mollis. Aenean tempor mattis orci, ultrices posuere tellus tempor sit amet. Mauris sed augue ultricies, maximus neque vel, vehicula metus.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting.
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.


Our website vitess.io are static HTML pages which are
generated by Jekyll from Markdown files
located in the doc/
directory.
The generated files will be put in the
docs/
directory (note
the extra s). GitHub serves the website from this directory off the master
branch.
Run:
./vitess.io/publish-site.sh
Site should be live at localhost:4000
Run:
./vitess.io/publish-site.sh
Sanity check the diffs.
git diff HEAD~
Create a pull request for your branch and let somebody review it.
Merge the pull request into the master branch.
We have three main directories:
doc/
- original
contentdocs/
- generated
website actually served at http://vitess.io/vitess.io/
-
all relevant files for the website e.g.
doc/
directory
(example)The boiler plate markdown files have multiple purposes:
doc/GitHubWorkFlow.md
is actually served as http://vitess.io/contributing/github-workflow/
because there is the file
vitess.io/contributing/github-workflow.md
.To modify our website, you need to:
doc/
directorypublish-site.sh
above)Always use the {% link ... %}
template tag to link other pages.
Note that you have to refer to the .md
file of the page. Example:
[GitHub Workflow page]({% link contributing/github-workflow.md %})
If you want to add a new page, you must also:
vitess.io/_includes/left-nav-menu.html
vitess.io/contributing/github-workflow.md
When you add a new section to the menu, please create a new directory below
vitess.io/
. For example, the "Contributing" section is served out of
vitess.io/contributing/
.
The main file in the section should have index.md
as its boiler plate counter
part. Example: doc/Contributing.md
is included by
vitess.io/contributing/index.md
and therefore served as
http://vitess.io/contributing/.
Make sure that you use {% link ... %}
to generate the URLs.
See existing entries for examples.
There are several files in doc/
which are currently not visible on
http://vitess.io.
Examples:
This is fine and accepted. Users can still view them on GitHub.com.
Note that these files should include images using the full path e.g. in
LifeOfAQuery.md
:
![](https://raw.githubusercontent.com/youtube/vitess/master/doc/life_of_a_query.png)
Otherwise GitHub cannot find and show the images.
This section describes how to install Jekyll to generate the website.
./vitess.io/preview-site.sh
and ./vitess.io/publish-site.sh
commands as shown above.sudo apt-get install -y libreadline-dev
rbenv global 2.2.3
rbenv rehash
gem install bundler
sudo apt-get install nodejs
ln -s /usr/bin/nodejs $HOME/.rbenv/bin/node
--docker=false
to the commands above.


(message text)
General
Disable Private Bookmarks outside of private browsing
Disable password requirements (allows less secure passwords)
Auto-lock when idle for more than
1
2
3
4
5
10
15
20
25
30
35
40
45
50
55
60
minute(s)
Remind me to make a backup every
1
2
3
4
5
6
7
14
21
30
day(s)
Let me know what's new after an update
Sync
Your data takes up ?KB out of ?KB available (?%).
Why is this here?
(message text)
Export
Exporting plain data requires unlocked bookmarks.
Export encrypted data...
Export plain data...
Import
Importing requires unlocked bookmarks.
Backup file:
File's password:
Import
(message text)
Data
Clear...
(message text)
Yes
No
Support
Something's not working? Got a question and/or suggestion?
Post an issue
View release notes
View frequently asked questions


The Registers component is a simple 16-bit register file. Ae and Be choose which register is routed to the A and B outputs. ALU is the input from the ALU. ALUe chooses which register to write. A register will only be written if W (write enable) is high.
R is a reset input and is optional. The R input (reset) sets all registers to zero.
The register file latches in the ALU result on the clock leading edge and sets the register on the clock trailing edge.
During operation, the contents of the registers are displayed and the current configurations of Ae, Be, ALUe, and W are indicated by lines the connect ALU to a register and registers to A and B.


"MALLOWS "occurs only in Job 30:4 (R.V., “saltwort”). The word so rendered (malluah, from melah, “salt”) most probably denotes the Atriplex halimus of Linnaeus, a species of sea purslane found on the shores of the Dead Sea, as also of the Mediterranean, and in salt marshes. It is a tall shrubby orach, growing to the height sometimes of 10 feet. Its buds and leaves, with those of other saline plants, are eaten by the poor in Palestine.
"MALLOWS "occurs only in Job 30:4 (R.V., “saltwort”). The word so rendered (malluah, from melah, “salt”) most probably denotes the Atriplex halimus of Linnaeus, a species of sea purslane found on the shores of the Dead Sea, as also of the Mediterranean, and in salt marshes. It is a tall shrubby orach, growing to the height sometimes of 10 feet. Its buds and leaves, with those of other saline plants, are eaten by the poor in Palestine.


Last Month in ManageIQ II by Drew: Vignettes
d-m-u
write yet another one. When will this madness end? They are tempting the very threads of fate herself, letting d-m-u
get away with this twice in a row. Who knows what horrors will befall you this time. You shudder. If you are lucky, it will be only physical monsters, not the unearthly disturbances of time and dark and cold that have been evoked with such disasterous results previously. You had held out a smattering of hope that d-m-u's
prose might be gentled the way that centuries of water smooth a pebble, but such hope is whisked away with the next thought: you never know, with these texts, if you will exist outside the inky blackness, cursed to only watch as the story dismally unfolds before your eyes, or if you will be a deeply unwilling participant, your agency slave to the whims of an unreliable, mercurial narrator.
 And you get a short mad lib! And you...
Hello and welcome! This is the second Last Month in ManageIQ. I am of course the illustrious d-m-u
ready to take you on a [adjective] tour of some of the [adjective] [plural noun] we had to the ManageIQ [noun].
Last month we had a [adjective] 111 PRs1 merged into master! Contributions from outside the [adjective] ManageIQ team are of course always [adverb] welcomed.
maps
You are the you of the present, reading in frustration, wanting nothing more than to tear your eyes off the page and get back to the important business of living. She sure is taking her time moving off of this introduction thing or whatever it is, you think. Maybe it is a trap introduction, maybe the introduction is a misrepresentation. Maybe it exists solely to protect copyright. You wonder if the text is to scale, you peer at it from a few different angles, suspicious. Is it a one-to-one transformation? But the text does not answer, no matter how desperately you plead for answers. The phonemes and vowels stay flat and silent and offer your suspicions no tread. You do not have even the safety of a world that lacks e's in this variant. The visual offers no clues, and you wonder how you would know if you were in fact inhabiting the real.
You remember the line. The last one you read, the one that reached out from the page and punched you in the face. Clearly writing that takes no hostages is a mark that your existence in that moment was in the real.
Ajahn Chah
“If it2 doesn’t break today, it3 will break tomorrow,” writes the Thai monk Ajahn Chah. “If it4 doesn’t break tomorrow, it5 will break the day after tomorrow.”


class Parser extends java.lang.Object implements AnalysisListener
| Modifier and Type | Field and Description |
|---|---|
private AddOperation |
addOperation |
private static java.util.Map<State,State> |
argumentTransitionMap |
private static java.util.Set<State> |
commonStatesWhereValuesOrVariablesArePossible |
private DivideOperation |
divideOperation |
private static java.io.PrintStream |
errorStream |
private static java.lang.String[] |
knownOperationTokenExpressions |
private BinaryOperation |
letOperation |
private LexicalAnalyzer |
lexicalAnalyzer |
private MultiplyOperation |
multiplyOperation |
private static java.util.Map<State,State> |
operationSubstitutionTransitionMap |
private State |
state |
private static java.util.Set<State> |
statesWhereOperationsArePossible |
private SubtractOperation |
subtractOperation |
private SymbolTable |
symbolTable |
private java.util.Deque<TokenInformation> |
tokenDeque |
private static java.util.Map<State,java.lang.String> |
whileExpectingMap |
| Constructor and Description |
|---|
Parser()
Constructs a parser with a default expression.
|
Parser(java.lang.String expression)
Constructs the parser with an explicit expression.
|
| Modifier and Type | Method and Description |
|---|---|
private java.lang.Integer |
accessSymbol(Token token)
Access a value for a token from the symbol table.
|
private boolean |
addSymbol(int value)
Adds a symbol to the symbol table.
|
private boolean |
addSymbol(VariableToken token)
Adds a symbol to the symbol table.
|
private static void |
buildArgumentTransitionMap()
Builds the map of states to transition states when argument tokens are
received.
|
private static void |
buildCommonStatesWhereValueOrVariableTokensArePossible()
Builds the set of common states where value or variable tokens may be
received.
|
private static void |
buildOperationSubstitutionTransitionMap()
Builds the map of states from the last state on the stack to the state
for substitute tokens that replace operations.
|
private static void |
buildStatesWhereOperationsArePossible()
Builds the set of states where operation tokens may be received.
|
private static java.lang.String |
buildWhileExpectingForOperations()
Builds the 'while expecting' string for known operation expressions.
|
private static void |
buildWhileExpectingMap()
Builds the map of parser states to strings describing what token(s) are
expected in each state.
|
void |
connectForAnalysis()
Connects the parser for analysis.
|
void |
disconnectFromAnalysis()
Disconnects the parser from analysis.
|
private int |
getArgumentValue(Token token)
Gets the value for an argument token.
|
private static java.io.PrintStream |
getDefaultPrintStream()
Gets the default print stream.
|
private static java.io.PrintStream |
getErrorStream()
Gets the error stream.
|
private State |
getLastState()
Gets the state of the last token metadata on the token deque.
|
private int |
getNextArgumentValue(java.util.Deque<? extends java.lang.Integer> deque,
int argumentNumber,
java.lang.Integer position)
Gets the next argument from an argument deque.
|
java.lang.Integer[] |
getResults()
Gets the results of the parse.
|
private java.lang.String |
getWhileExpectingString()
Gets the 'while expecting' string for a given state.
|
void |
launch()
Launches the lexical parser.
|
private boolean |
mayReceiveOperationToken()
Determines if the parser may currently receive an operation token.
|
private boolean |
mayReceiveValueToken()
Determines if the parser may currently receive a value token.
|
private boolean |
mayReceiveVariableToken()
Determine if the parser may currently receive a variable token.
|
private void |
outputUnexpectedToken(Token token,
java.lang.String whileExpecting)
Outputs unexpected tokens to the error stream in a uniform way.
|
private TokenInformation |
peekLastToken()
Peeks at the last token from the token deque.
|
private void |
performBinaryOperation(java.util.Deque<java.lang.Integer> argumentDeque,
TokenInformation metadata)
Performs a binary operation.
|
private TokenInformation |
popLastToken()
Pops the last token from the token deque.
|
void |
receiveAddToken(AddToken token)
Receives an add token.
|
void |
receiveCloseToken(CloseToken token)
Receives a close token.
|
void |
receiveCommaToken(CommaToken token)
Receives a comma token.
|
void |
receiveDivideToken(DivideToken token)
Receives a divide token.
|
void |
receiveLetToken(LetToken token)
Receives a let token.
|
void |
receiveMultiplyToken(MultiplyToken token)
Receives a multiply token.
|
void |
receiveOpenToken(OpenToken token)
Receives an open token.
|
private void |
receiveOperationToken(OperationToken token,
State transitionTo,
BinaryOperation operation)
Receives an operation token.
|
void |
receiveSubtractToken(SubtractToken token)
Receives a subtract token.
|
void |
receiveUnknownToken(UnknownToken token)
Receives an unknown token.
|
void |
receiveValueToken(ValueToken token)
Receives a value token.
|
void |
receiveVariableToken(VariableToken token)
Receives a variable token.
|
private boolean |
removeSymbol()
Removes a symbol from the symbol table.
|
void |
reset()
Resets the parser.
|
void |
setExpression(java.lang.String expression)
Sets the expression of the parser.
|
static void |
setPrintStream(java.io.PrintStream printStream)
Sets the print stream.
|
void |
startAnalysis()
Indicates that lexical analysis is starting.
|
void |
stopAnalysis()
Indicates that lexical analysis is stopping.
|
private State |
transitionFromArgumentStateTo()
Returns the transition state from a known argument acceptance state.
|
private static State |
transitionFromArgumentStateTo(State argumentState)
Returns the transition state from a known argument acceptance state.
|
private State |
transitionFromCloseStateTo()
Returns the state for a substitute token that replaces an operation when
the operation is complete.
|
private static State |
transitionFromCloseStateTo(State lastStateOnTokenDeque)
Returns the state for a substitute token that replaces an operation when
the operation is complete.
|
private static final java.util.Set<State> commonStatesWhereValuesOrVariablesArePossible
private static java.io.PrintStream errorStream
private static final java.lang.String[] knownOperationTokenExpressions
private static final java.util.Map<State,State> operationSubstitutionTransitionMap
private static final java.util.Set<State> statesWhereOperationsArePossible
private static final java.util.Map<State,java.lang.String> whileExpectingMap
private final AddOperation addOperation
private final DivideOperation divideOperation
private final BinaryOperation letOperation
private final LexicalAnalyzer lexicalAnalyzer
private final MultiplyOperation multiplyOperation
private State state
private final SubtractOperation subtractOperation
private final SymbolTable symbolTable
private final java.util.Deque<TokenInformation> tokenDeque
public Parser()
public Parser(java.lang.String expression)
expression
- The expression to be used by this parserpublic static void setPrintStream(java.io.PrintStream printStream)
printStream
- The print streamprivate static void buildArgumentTransitionMap()
private static void buildCommonStatesWhereValueOrVariableTokensArePossible()
private static void buildOperationSubstitutionTransitionMap()
private static void buildStatesWhereOperationsArePossible()
private static java.lang.String buildWhileExpectingForOperations()
private static void buildWhileExpectingMap()
private static java.io.PrintStream getDefaultPrintStream()
private static java.io.PrintStream getErrorStream()
private static State transitionFromArgumentStateTo(State argumentState)
argumentState
- The known argument acceptance stateprivate static State transitionFromCloseStateTo(State lastStateOnTokenDeque)
lastStateOnTokenDeque
- The last state on the token dequepublic void connectForAnalysis()
public void disconnectFromAnalysis()
public java.lang.Integer[] getResults()
public void launch()
public void receiveAddToken(AddToken token)
AnalysisListener
receiveAddToken
in interface AnalysisListener
token
- An add tokenpublic void receiveCloseToken(CloseToken token)
AnalysisListener
receiveCloseToken
in interface AnalysisListener
token
- A close tokenpublic void receiveCommaToken(CommaToken token)
AnalysisListener
receiveCommaToken
in interface AnalysisListener
token
- A comma tokenpublic void receiveDivideToken(DivideToken token)
AnalysisListener
receiveDivideToken
in interface AnalysisListener
token
- A divide tokenpublic void receiveLetToken(LetToken token)
AnalysisListener
receiveLetToken
in interface AnalysisListener
token
- A let tokenpublic void receiveMultiplyToken(MultiplyToken token)
AnalysisListener
receiveMultiplyToken
in interface AnalysisListener
token
- A multiply tokenpublic void receiveOpenToken(OpenToken token)
AnalysisListener
receiveOpenToken
in interface AnalysisListener
token
- An open tokenpublic void receiveSubtractToken(SubtractToken token)
AnalysisListener
receiveSubtractToken
in interface AnalysisListener
token
- A subtract tokenpublic void receiveUnknownToken(UnknownToken token)
AnalysisListener
receiveUnknownToken
in interface AnalysisListener
token
- An unknown tokenpublic void receiveValueToken(ValueToken token)
AnalysisListener
receiveValueToken
in interface AnalysisListener
token
- A value tokenpublic void receiveVariableToken(VariableToken token)
AnalysisListener
receiveVariableToken
in interface AnalysisListener
token
- A variable tokenpublic void reset()
public void setExpression(java.lang.String expression)
expression
- The expression of the parserpublic void startAnalysis()
AnalysisListener
startAnalysis
in interface AnalysisListener
public void stopAnalysis()
AnalysisListener
stopAnalysis
in interface AnalysisListener
private java.lang.Integer accessSymbol(Token token)
token
- A token containing the expression used to look up a value in
the symbol tableprivate boolean addSymbol(int value)
value
- The value to add for the symbolprivate boolean addSymbol(VariableToken token)
token
- A variable token containing the expression used to look up a
value in the symbol tableprivate int getArgumentValue(Token token)
token
- The argument tokenprivate State getLastState()
private int getNextArgumentValue(java.util.Deque<? extends java.lang.Integer> deque, int argumentNumber, java.lang.Integer position)
deque
- The deque containing the arguments.argumentNumber
- The number of the argument being sought (for reporting
purposes)position
- The position of the argumentprivate java.lang.String getWhileExpectingString()
private boolean mayReceiveOperationToken()
private boolean mayReceiveValueToken()
private boolean mayReceiveVariableToken()
private void outputUnexpectedToken(Token token, java.lang.String whileExpecting)
token
- The token that was unexpectedwhileExpecting
- What was unexpected when this token was receivedprivate TokenInformation peekLastToken()
private void performBinaryOperation(java.util.Deque<java.lang.Integer> argumentDeque, TokenInformation metadata)
argumentDeque
- An argument deque where the two arguments for the binary
operation are the first two on the dequemetadata
- Token metadata containing the operation to be performed and
the position of the operationprivate TokenInformation popLastToken()
private void receiveOperationToken(OperationToken token, State transitionTo, BinaryOperation operation)
token
- The key token to be receivedtransitionTo
- The state to transition if the given key token may be receivedoperation
- The operation to be performed when the operation is reducedprivate boolean removeSymbol()
private State transitionFromArgumentStateTo()
private State transitionFromCloseStateTo()


Ghana Police Service to construct 70 operational centres
by Jacqueline Appiagyei, GNAAccra, Nov. 14, GNA - The Ghana Police Service (GPS) will commence the construction of 70 prefabricated operational centres to improve policing in 2020 towards ensuring peace the peace of the nation before, during and after the general election.
Mr. Ken Ofori-Atta, who made the announcement when he presented the 2020 Budget Statement and Economic Policy to Parliament, on Wednesday, said they would also be provided additional accommodation, operational vehicles, equipment and other logistics to enhance the efficiency of the Service.
The Police Service, the Minister said, would also intensify activities to minimise the incidence of crime, particularly, violent crimes, through an increase in frontline policing and intelligence gathering and day and night patrols on the major highways.
Commercial and residential areas across the country would also see the intensification of public sensitisation and education on crime prevention.
Official information from the Police Service says professional policing was introduced by the British Colonial Authorities to the Gold Coast in 1821.
Prior to that, policing or maintenance of law and order was organised by the traditional authorities such as the local headsmen and chiefs, who employed unpaid messengers to carry out the executive and judicial functions in their respective communities.
However, in 1894, the Institution of Police was formalised with the passing of the Police Ordinance, which gave legal authority for the formation of a Civil Police Force, now known as the Ghana Police Service.
Operating under the motto: “Service with Integrity”, the functions of the Service, as stated in the Police Service Act, 1970 [Act 350] of Ghana are as follows;
The protection of life and property;
Prevention and detection of crime;
Apprehension and prosecution of offenders;
Preservation of peace and good order and Enforcement of all laws Acts, Decrees and other regulations with which it is directly charged.
GNA


Meet the team
Michael Klanica
Software Developer
Sahara Tijol
Software Developer
Robert DelaRosa
Software Developer


Exodus 25:36
Their knops and their branches shall be of the same: all it shall be one beaten work of pure gold.


--- layout: post title: Next Steps.... date: 2011-05-04 17:55:39.000000000 -05:00 type: post published: true status: publish categories: [] tags: - Programming - Python meta: _edit_last: '15714693' _wpas_done_fb: '1' _wpas_done_twitter: '1' tagazine-media: a:7:{s:7:"primary";s:0:"";s:6:"images";a:0:{}s:6:"videos";a:0:{}s:11:"image_count";s:1:"0";s:6:"author";s:8:"15714693";s:7:"blog_id";s:8:"15193052";s:9:"mod_stamp";s:19:"2011-05-05 21:25:19";} author: login: broberts65 email<EMAIL_ADDRESS>display_name: Bob Roberts first_name: '' last_name: '' ---
All I can say is that keeping up a blog is a lot more work than I ever thought it would be. With that being said, email me if you would like to add an article to my blog as a guest author.
I have gotten quite a few requests for video tutorials and I am planning on creating some for geoprocessing. I am thinking very short and sweet "how to's" for the various basic geoprocessing functions. I have seen a little interest in Phoenix for Python geoprocessing classes for which I would love to do if there is enough interest. I am hoping that fellow members of the DesertPy.org group will also be interested in sharing their knowledge/experiences for some more basic Python training.
As usual, if you have any questions, comments, or bitches, feel free to contact me.
BR


| < Day Day Up > |
In the design of electronic circuitry, it is often necessary to make the pins of several components electrically equivalent by wiring them together. To interconnect a set of n pins, we can use an arrangement of n - 1 wires, each connecting two pins. Of all such arrangements, the one that uses the least amount of wire is usually the most desirable.
We can model this wiring problem with a connected, undirected graph G = (V, E), where V is the set of pins, E is the set of possible interconnections between pairs of pins, and for each edge (u, v) ∈ E, we have a weight w(u, v) specifying the cost (amount of wire needed) to connect u and v. We then wish to find an acyclic subset T ⊆E that connects all of the vertices and whose total weight
is minimized. Since T is acyclic and connects all of the vertices, it must form a tree, which we call a spanning tree since it "spans" the graph G. We call the problem of determining the tree T the minimum-spanning-tree problem.[1] Figure 23.1 shows an example of a connected graph and its minimum spanning tree.
In this chapter, we shall examine two algorithms for solving the minimum-spanning-tree problem: Kruskal's algorithm and Prim's algorithm. Each can easily be made to run in time O(E lg V) using ordinary binary heaps. By using Fibonacci heaps, Prim's algorithm can be sped up to run in time O(E + V lg V), which is an improvement if |V| is much smaller than |E|.
The two algorithms are greedy algorithms, as described in Chapter 16. At each step of an algorithm, one of several possible choices must be made. The greedy strategy advocates making the choice that is the best at the moment. Such a strategy is not generally guaranteed to find globally optimal solutions to problems. For the minimum-spanning-tree problem, however, we can prove that certain greedy strategies do yield a spanning tree with minimum weight. Although the present chapter can be read independently of Chapter 16, the greedy methods presented here are a classic application of the theoretical notions introduced there.
Section 23.1 introduces a "generic" minimum-spanning-tree algorithm that grows a spanning tree by adding one edge at a time. Section 23.2 gives two ways to implement the generic algorithm. The first algorithm, due to Kruskal, is similar to the connected-components algorithm from Section 21.1. The second, due to Prim, is similar to Dijkstra's shortest-paths algorithm (Section 24.3).
[1]The phrase "minimum spanning tree" is a shortened form of the phrase "minimum-weight spanning tree." We are not, for example, minimizing the number of edges in T, since all spanning trees have exactly |V| - 1 edges by Theorem B.2.
| < Day Day Up > |


Landing Page
Special Projects
This story is part of a series of specially designed stories that represents some of the best journalism The Post has to offer. Check out the rest of the special projects here.
AJ Baumann / For The Post
Geena Provenzano describes her style as “extra.”
“I feel like I’m very monochromatic, but I like having a statement piece with that,” Provenzano, a freshman studying journalism, said.
Provenzano was voted by her peers as the Post Pick for Most Fashionable, and it’s quite easy to see why.
“I think the best way to put it, is that she makes everyone look average,” Annie Kautz, a freshman studying photography, said.
Provenzano, who is from the Pittsburgh, Pennsylvania, area, has been interested in fashion since she was a toddler and could be found going through her mother’s closet putting together outfits.
Provenzano now puts her fashion insight on a blog called Psychonic Style. On the site, she writes about trends she’s interested in, current fashion news and shows off looks of her own.
“I do lookbooks of what I wear and how I pair certain things, and then I’ll do trends I’m currently obsessed with and where to buy certain things that are trendy now,” Provenzano said.
She also created a Christmas list on her blog, as well as anniversary picks for Nordstrom’s Anniversary Sale.
“I work at Nordstrom, so I shop there a lot because (of the) discounts, and I like how they have a little bit of everything,” Provenzano said. “I shop at Free People a lot because I like all of their bohemian sort of different things, and Urban Outfitters, too, for the same reason.”
Provenzano finds inspiration from other people’s blogs, as well as social media sites such as Instagram. Her favorite places to find new looks are reality television shows like Project Runway.
“I feel like (fashion is) its own artform in a way. I think it’s one of the best ways to express individuality.”– Geena Provenzano
“I’m in a group in Pittsburgh that’s a blogger group, so I look at (their blogs) a lot,” Provenzano said. “I think Instagram is big because of the pictures. You can see the outfits easily.”
One of Provenzano’s biggest inspirations is Rachel Zoe, who is a fashion designer, writer and businesswoman. She is a role model to Provenzano because she was one of the first people she saw with a similar job that she wants in the industry.
Provenzano is reluctant to say she finds inspiration in the stylings of the Kardashian family, but she said her closet is stocked with some similar items.
“I don’t want to say the Kardashians because they’re not who I would think to be style inspiration,” Provenzano said. “But some of the clothes they wear I do see myself wearing, so I guess I take outfit inspiration from them.”
Alessia Accordino, a freshman studying exercise physiology, admires the fact Provenzano is not afraid to stand out and be the most fashionable person in the room.
“She just wants to look her best all the time and puts her best foot forward,” Accordino said.
Provenzano’s dream job is to combine her passion for fashion and journalism experience to become the editor of Vogue, one of the most well-known fashion magazines in the world.
“I feel like (fashion is) its own artform in a way,” Provenzano said. “I think it’s one of the best ways to express individuality.”
Photo by: Meagan Hall / Photo Editor
Development by: Taylor Johnston / Digital Production Editor
Landing Page
This story is part of a series of specially designed stories that represents some of the best journalism The Post has to offer. Check out the rest of the special projects here.


Solving Google Code Jam problems in Common Lisp
Google Code Jam is one of the biggest programming competitions in the world - in 2013 there were over 45000 registrants, of which more than 21000 were able to solve correctly at least one problem input (typically, a Code Jam problem is tested on two sets of input data - "small" and "large").
For me, the best thing about this particular contest is that any (freely available) programming language or system can be used for solving problems. Most competitors use C++ or Java, though.
From my (rather limited) Common Lisp experience and some experience with programming competitions I think that Lisp can be successfully used in contests in general, and in Google Code Jam in particular.
In this article I present Common Lisp solutions to several Google Code Jam problems, demonstrate various aspects of Common Lisp usage in context of coding competitions and highlight some language features and libraries useful for programming contests.
Goals of the article include persuading more programming contests participants try Common Lisp and also luring more seasoned Lisp programmers into programming contests.
Lisp already has some limited presence in Code Jam and almost all of the problems from this article have correct submitted solutions in Lisp (http://www.go-hero.net/jam site can be used to find submitted solutions in different programming languages). I tried to make my solutions a bit better engineered that solutions done in a hurry of the real contest: by using modern features like Quicklisp, using standard input/output instead of hard-coded file names, more granular code, etc. I provide links to other peoples' Lisp solutions through the article.
I tried to make coding style of the presented solutions reflect specifics of programming contests (without sacrificing readability too much) and multi-paradigm nature of Common Lisp. For example, LOOP macro is used extensively in every program except for one, which is meant to be an illustration of a more functional programming style.
I chose one particular Common Lisp implementation - Steel Bank Common Lisp, which is popular, stable and fast. All programs were tested using SBCL 1.0.29, but should also work with other versions and standard-compliant Common Lisp implementations.
Problems
Minimum Scalar Product
| Problem link | Minimum Scalar Product |
| Full source | MinimumScalarProduct.lisp |
| More Lisp solutions | http://www.go-hero.net/jam/08/solutions/1/1/Lisp |
This is a very easy problem from Round 1A 2008.
It's not too hard to come up with a solution, and the implementation is very simple: just sort two lists and take their scalar product.
(defun dot-product (x y) (reduce '+ (mapcar '* x y)) ) (defun min-product (x y) (dot-product (sort x #'<) (sort y #'>)) ) (defun do-case (case-num x y) (format t "Case #~a: ~a~%" case-num (min-product x y)) ) (defun main () (loop for case-num from 1 to (read) do (let (n x y) (setf n (read)) (setf x (loop repeat n collect (read))) (setf y (loop repeat n collect (read))) (do-case case-num x y) ) ) )
Speaking in Tongues
| Problem link | Speaking in Tongues |
| Full source | SpeakingInTongues.lisp |
| More Lisp solutions | http://www.go-hero.net/jam/12/solutions/0/1/Lisp |
This is the easiest problem from Qualification Round 2012.
This problem is very unusual for Google Code Jam because it has only small input instead of usual small plus large inputs.
My solution demonstrates some aspects of working with strings and hash tables in Common Lisp.
;; Additionally to the sample input/output, ;; figure 'q' -> 'z' (Googlerese -> English) mapping from the problem statement. ;; Finally, 'z' -> 'q' is the only left possibility. (defparameter *in-sample* " ejp mysljylc kd kxveddknmc re jsicpdrysi rbcpc ypc rtcsra dkh wyfrepkym veddknkmkrkcd de kr kd eoya kw aej tysr re ujdr lkgc jv qz ") (defparameter *out-sample* " our language is impossible to understand there are twenty six factorial possibilities so it is okay if you want to just give up zq ") (defparameter *mapping* (make-hash-table :test #'equal)) (defun initialize-mapping () (loop for in-char across *in-sample* for out-char across *out-sample* do (setf (gethash in-char *mapping*) out-char) ) ) (defun translate (in-string) (concatenate 'string (loop for in-char across in-string collect (gethash in-char *mapping*) ) ) ) (defun do-case (case-num in-string) (format t "Case #~a: ~a~%" case-num (translate in-string)) ) (defun main () (initialize-mapping) (loop for case-num from 1 to (read) do (let (in-string) (setf in-string (read-line)) (do-case case-num in-string) ) ) )
Alien Language
| Problem link | Alien Language |
| Full source | AlienLanguage-regex.lisp |
| More Lisp solutions | http://www.go-hero.net/jam/09/solutions/0/1/Lisp |
This is an easy problem from Qualification Round 2009.
A pure algorithmic solution for the problem is not too easy to come up with, but the regular expressions-based solution is almost obvious: just replace parentheses in the input with square brackets and treat the result as a regex pattern.
There is a great regex library for Common Lisp - cl-ppcre, so let's use it!
(ql:quickload :cl-ppcre) (use-package :cl-ppcre) (defparameter *words* nil) (defun replace-brackets (pattern) (regex-replace-all "\\)" (regex-replace-all "\\(" pattern "[") "]") ) (defun count-matches (pattern) (let ((scanner (create-scanner pattern))) (loop for word in *words* sum (if (scan scanner word) 1 0) ) ) ) (defun do-case (case-num pattern) (format t "Case #~a: ~a~%" case-num (count-matches (replace-brackets pattern))) ) (defun main () (let (d n) (read) ; consume redundant value of L (setf d (read)) (setf n (read)) (dotimes (i d) (push (read-line) *words*)) ; words are reversed, but it doesn't matter (loop for case-num from 1 to n do (let (pattern) (setf pattern (read-line)) (do-case case-num pattern) ) ) ) )
Fair Warning
| Problem link | Fair Warning |
| Full source | FairWarning.lisp |
| More Lisp solutions | http://www.go-hero.net/jam/10/solutions/0/2/Lisp |
This problem from Qualification Round 2010 (the hardest from the round) was the first Code Jam problem that required bignum arithmetic support.
Common Lisp is very handy for solving this problem because it supports bignum arithmetic out of the box; having standard greatest common divisor function also helps.
The solution I wrote for this particular problem uses a more functional programming style, and iterate is used instead of LOOP macro to stress this.
Also the program (ab)uses the fact that Common Lisp is a Lisp-2 and has a separate function namespace, so it's ok to have variables with the same names as functions (min, gcd, rem).
(ql:quickload :iterate) (use-package :iterate) (defun substract-val (items val) (mapcar #'(lambda (x) (- x val)) items) ) (defun first-optimum (events) (let* ((min (reduce #'min events)) (gcd (reduce #'gcd (substract-val events min))) (rem (rem min gcd)) ) (if (zerop rem) 0 (- gcd rem)) ) ) (defun do-case (case-num events) (format t "Case #~a: ~a~%" case-num (first-optimum events)) ) (defun main () (iterate (for case-num from 1 to (read)) (let (n events) (setf n (read)) (setf events (iterate (repeat n) (collect (read)))) (do-case case-num events) ) ) )
Triangle Areas
| Problem link | Triangle Areas |
| Full source | TriangleAreas.lisp |
| TriangleAreas.ecl | |
| More Lisp solutions | http://www.go-hero.net/jam/08/solutions/4/2/Lisp (small input only) |
This is a relatively difficult problem from Round 2 2008.
Prolog-based ECLiPSe Constraint Programming System does all the real job in my solution. Prolog program is almost direct translation of the problem statement, so ECLiPSe is very well suited for this problem.
Common Lisp is used as a scripting language with a little help from trivial-shell. Basically, the Lisp program just translates every input line to Prolog-friendly format and calls ECLiPSe.
(ql:quickload :trivial-shell) (defun prologify (items) (format nil "[~{~A~^, ~}].~%" items) ) (defun run-eclipse (input) (trivial-shell:shell-command "eclipse -f TriangleAreas.ecl -e main" :input input) ) (defun main () (format t (run-eclipse (with-output-to-string (str) (let (c) (setf c (read)) (format str (prologify (list c))) (loop for case-num from 1 to c do (let (n m a) (setf n (read)) (setf m (read)) (setf a (read)) (format str (prologify (list n m a))) ) ) ) ) ) ) )
:- lib(ic). % Triangle's area * 2 area2(X1, Y1, X2, Y2, X3, Y3, A) :- A #= abs( X1 * Y2 - X1 * Y3 + X2 * Y3 - X2 * Y1 + X3 * Y1 - X3 * Y2 ). model(N, M, A, [X1, Y1, X2, Y2, X3, Y3]) :- [X1, X2, X3] :: 0..N, [Y1, Y2, Y3] :: 0..M, X1 #= 0, Y1 #= 0, % we can safely put one point in (0, 0) area2(X1, Y1, X2, Y2, X3, Y3, A). do_case(Case_num, N, M, A) :- printf("Case #%w: ", [Case_num]), ( model(N, M, A, Points), labeling(Points) -> printf("%w %w %w %w %w %w", Points) ; write("IMPOSSIBLE") ), nl. main :- read([C]), ( for(Case_num, 1, C) do read([N, M, A]), do_case(Case_num, N, M, A) ).
Bullseye
| Problem link | Bullseye |
| Full source | Bullseye.lisp |
| More Lisp solutions | http://www.go-hero.net/jam/13/solutions/1/1/Lisp |
This is the easiest problem from Round 1A 2013.
The problem exercises a standard programming contest idea - binary search.
My Lisp solution for this problem is probably the most unlispy of the programs in this article because of using infix math syntax. Prefix math syntax can be too verbose for this kind of programs, and infix syntax simplified translating my Python solution to Common Lisp tremendously.
Common Lisp's bignum arithmetic support also helps in this problem.
(ql:quickload :infix) (defun paint (r n) #I(2*r*n + 2*n*n - n) ) (defun find-max (r paint) (let (min_n max_n med_n) #I(min_n = 0) #I(max_n = paint + 1) (loop do #I(med_n = ((max_n - min_n) >> 1) + min_n) (if #I(paint(r, med_n) <= paint) #I(min_n = med_n) #I(max_n = med_n) ) while #I(max_n - min_n > 1) ) min_n ) ) (defun do-case (case-num r paint) (format t "Case #~a: ~a~%" case-num (find-max r paint)) ) (defun main () (loop for case-num from 1 to (read) do (let (r paint) (setf r (read)) (setf paint (read)) (do-case case-num r paint) ) ) )
Rope Intranet
| Problem link | Rope Intranet |
| Full source | RopeIntranet.lisp |
| More Lisp solutions | http://www.go-hero.net/jam/10/solutions/3/1/Lisp |
This is an easy problem from Round 1C 2010.
The problem's constraints are low enough to allow Ο(n2) solutions.
I use cl-geometry library to check whether two line segments intersect. Using the library for such a simple task is of course an overkill, but cl-geometry has plenty of useful functions that can be handy in solving other problems.
My solution also demonstrates some simple aspects of using Common Lisp Object System.
(ql:quickload :cl-geometry) (use-package :2d-geometry) (defun count-intersections (a-list b-list) (let (n a b) (setf n (length a-list)) (setf a (make-array n :initial-contents a-list)) (setf b (make-array n :initial-contents b-list)) (loop for i from 0 below n sum (loop for j from (1+ i) below n sum (let (li lj inter) (setf li (make-instance 'line-segment :start (make-instance 'point :x 0 :y (aref a i)) :end (make-instance 'point :x 1 :y (aref b i)) )) (setf lj (make-instance 'line-segment :start (make-instance 'point :x 0 :y (aref a j)) :end (make-instance 'point :x 1 :y (aref b j)) )) (setf inter (line-segments-intersection-point li lj)) (if inter 1 0)) ) ) ) ) (defun do-case (case-num a b) (format t "Case #~a: ~a~%" case-num (count-intersections a b)) ) (defun main () (loop for case-num from 1 to (read) do (let (n a b) (setf n (read)) (dotimes (i n) (push (read) a) (push (read) b) ) ; items in a & b are reversed, but it doesn't matter (do-case case-num a b) ) ) )


See the Pen Typer.js Example 1 by Steven Traversi (@straversi) on CodePen.
See the Pen Typer.js Example 2 by Steven Traversi (@straversi) on CodePen.


Oops! You found a bug.
This is an error with todo. It's not your fault :-)
The support team have been notified.
The Bug Hunter is on their way
It's probably a temporary glitch -
please try again


Hi,
My name is kobi keren. I am a graduate of John Bryce High-Tech College, Tel aviv, where i finished the comprehensive course for .NET programmers in Web environments.
I graduated with honors.
I have learned and utilized the following applications:
Windows Forms Application,
MVC,
ASP.NET,
WCF Services.
I am proficient in C#, XML, SQL, HTML, CSS, JAVASCRIPT, JQUERY, JQUERY-MOBILE.
In addition i am experienced in OOP, ADO.NET, LINQ, AJAX, JSON, REGULAR-EXPRESSIONS, Microsoft SQL Server, XSD, XSLT.
I am always keeping on learning new technologies, new tools and new techniques in order to create more advanced solutions.


All the Raspiberry Pi code can be checked out at github repo. The SmartFusion code is under reorganization
Introduction
We are designing and building a sorting machine that will sort small objects based on color and shape. We will demonstrate our sorting machine with candy. Our device will sort small colored candies, most likely skittles or starburst, into bins based on their color. Our ultimate goal is to sort any classifiable objects given a precomputed training model utilizing OpenCV. A running count of each unique item will be kept and wirelessly sent to a display screen/tablet.
Major Functions:
- Color/shape detection and machine learning
- Classify objects based on their color using OpenCV.
- Sort objects based on color, and reject items that are not the correct shape.
- Infrared detection
- Use infrared laser to detect items at the end of the track and interrupt the track motors to stop, take a picture and notify the start of the collecting mechanism.
- Physical dispensing and sorting mechanism
- Rotate a motor with cutout of object to separate and dispense items individually.
- Swap out cutout for different objects to sort.
- Rotate another motor at a constant speed to implement a “conveyer belt” for transporting objects to camera and bins.
- Rotate the collector servo until the corresponding basket reaches the receiving position.
- Wireless Communications
- Send data to LCD/tablet to display number of objects in each bin
- Send user command to start and stop the system and reset the display
- LED display
- Have a LED display flash different colors depending on color detected.
- Have a LED touch screen for selection of start, stop, reset
Inputs:
- Camera
- Button/Switch
- LCD/Tablet via Bluetooth
- Infrared receiver
Outputs:
- LCD/Tablet via Bluetooth
- Motors (3)
- LEDs


Cobone Reviews is a Free browse extension that enables you from seeing other's comments on Cobone.com deals, also to add your own!
Find Out MoreHave any issue or suggestion? That's great! Send us an email and we will get back to you as soon as possible!


[1]
well as big a little work to unplug it freezes not as bought.
[2]
streaming works even on G network pictures stored in one place rented as well as big a little work to unplug it freezes not as bought.


Donald is a clone 'Medium'. It is called Donald because Medium → Media → Donald.Donald Trumps Other Blogs!
Chris GrantTony LiHelen LiDavid Song


Next: Inheritance of Slots and Slot Options, Previous: Introduction to Slots, Up: Slots
Slots can be accessed in two ways: by use of the primitive function slot-value and by use of generic functions generated by the defclass form.
The function slot-value can be used with any of the slot names specified in the defclass form to access a specific slot accessible in an instance of the given class.
The macro defclass provides syntax for generating methods to read and write slots. If a reader method is requested, a method is automatically generated for reading the value of the slot, but no method for storing a value into it is generated. If a writer method is requested, a method is automatically generated for storing a value into the slot, but no method for reading its value is generated. If an accessor method is requested, a method for reading the value of the slot and a method for storing a value into the slot are automatically generated. Reader and writer methods are implemented using slot-value.
When a reader or writer method is specified for a slot, the name of the generic function to which the generated method belongs is directly specified. If the name specified for the writer method is the symbol name, the name of the generic function for writing the slot is the symbol name, and the generic function takes two arguments: the new value and the instance, in that order. If the name specified for the accessor method is the symbol name, the name of the generic function for reading the slot is the symbol name, and the name of the generic function for writing the slot is the list (setf name).
A generic function created or modified by supplying :reader, :writer, or :accessor slot options can be treated exactly as an ordinary generic function.
Note that slot-value can be used to read or write the value of a slot whether or not reader or writer methods exist for that slot. When slot-value is used, no reader or writer methods are invoked.
The macro with-slots can be used to establish a lexical environment in which specified slots are lexically available as if they were variables. The macro with-slots invokes the function slot-value to access the specified slots.
The macro with-accessors can be used to establish a lexical environment in which specified slots are lexically available through their accessors as if they were variables. The macro with-accessors invokes the appropriate accessors to access the specified slots.
Next: Inheritance of Slots and Slot Options, Previous: Introduction to Slots, Up: Slots


There are a variety of ways to contribute to the development of Semantic. We are a very new project and are looking for an enthusiastic and like-minded group of core contributors.
Publicity
One of the easiest ways to support Semantic UI is to get the word out
Squashing Bugs
Please submit any bugs you encounter when using the library to our Github Issues Tracker.
Be sure to include a set of steps to reproduce the issue and any related information, browser, OS etc. If we can't see the issue then it will make solving things much more difficult.
Submit a bug reportPull Requests
If you see a bug and you'd like to fix it, feel free to open a pull request.
Ideas
Semantic is looking for people to help contribute new core UI components, and suggest extensions for the library.
If you have suggestions for components missing from Semantic which you'd like to see in future versions please add them to our public UI Component board. The current list of upcoming components, and their current development status can be seen on the contributor UI board.
Add an ideaCode
We are looking for a few good coders to help us push out important new features for a release version of Semantic. Here's an overview of current features in development
CSS Variables
We are working on porting Semantic to using CSS variables to allow for easier theming. We are currently planning on using a CSS Pre-processor to move useful values over to variables. The current plan is to not use mix-ins or pre-processor specific code besides variables, and to add vendor prefixing using Grunt.
Example Layouts
We are looking to create example layouts with Semantic to help people make sites quicker, and to learn the intracicies of using Semantic UI. The plan is to eventually create a sister site learnsemantic.com which will contain useful features for learning to use Semantic.
Build Tools
We need to create a customizer for Semantic so user's can choose which components they would like to include and create custom zips with their minified concatenated code.
Most likely this means creating a standalone server that can take API requests for custom builds of semantic and return zip with minified and uncompressed source, or with a little ingenuity in-page javascript which uses JSZIP to do the same
Test Coverage
Semantic uses Jasmine with Karma Test Runner and Travis CI to write unit tests for our UI modules.
We need help to increase our code coverage by writing Jasmine tests for modules and to write feature specs which can be used to write tests.
Style Guide
Contributors may find it useful to read over the coding guidelines for the project. Most importantly, the guide for language, as it is one of the most important parts about Semantic UI.


This week saw some awesome contributions to Utopian from some of our finest contributors. We’ve got posts from the Development, Translation, Anti-abuse, Tutorials, and Blog categories. If you want to know how best to contribute, reading these posts will be an excellent step to take. Please note that most of these have not yet gotten their Utopian vote, which is reflected in the current earnings.
Staff Picks
Utopian Messaging/Chat Application by @tensor [development]
This contribution is about the new Utopian messaging module which will be part of the new Utopian platform. The application adds a messaging service so that users may communicate with one another directly and indirectly. The module will also let the platform serve notifications to users about the status of their projects and contributions. There are many more cool features include. To find out about all of them, you will need to go check out the contribution!
Total payout: 88.53 STU Number of votes: 107
GDevelop - Greek Translation Part 7 (~1154 words) by @ruth-girl [translations]
The translator performed well in the following 5 areas: 1) The translation was perfect, as no errors were found; 2) The translated strings were formatted perfectly; 3) The contribution post was gave a detailed report about the process of the translation work; 4) The translator worked well with the moderator in choosing the right terms for certain words; 5) The write up is done in a personal style to promote engagement of the community.
Total payout: 5.74 STU Number of votes: 178
Flagging comment spam is a regular part of curation. Let’s learn how! by @steemseph [anti-abuse]
This is one of the best posts for the new antiabuse category. @steemseph explains how to find spam content on mobile devices and on personal computers. This work is very helpful to anyone who would like to curb abuse on steem dApps. @steemseph uses some humor, and despite being a long post it is easy to read. You will enjoy his way of teaching you about this very important subject to proper curation on steem dApps.
Total payout: 3.36 STU Number of votes: 65
Tutorial: Defensive programming in Python; Using and extending the typeconstraints module by @mattockfs [tutorials]
@mattockfs brings us another great tutorial, that sheds light on using defensive programming techniques. He focuses on typeconstraints, a Python library. For all python lovers and enthusiasts, this is a recommended tutorial to help avoid certain limitations and/or potential coding issues. Those could otherwise easily waste hours and hours of debugging, and/or cause incorrect output of your scripts.
Total payout: 1.32 STU Number of votes: 33
My Experience Using Byteball Chatbots by @jaff8 [blog]
Earlier in the week, @jaff8 reviewed Byteball. It was a solid review, but completely ignored the bots feature. I commented on that in the moderation comment, and I’m so glad I did. @jaff8 took the challenge and wrote a comprehensive review of the feature, highlighting its strengths and weaknesses. Just excellent work all around, giving some valuable insights about one of the most unique and interesting cryptocurrency platforms around.
Total payout: 3.97 STU Number of votes: 143
Utopian.io Post Statistics
The staff picked contributions are only a small (but exceptional) example of the mass of contributions reviewed and rewarded by Utopian.io.
- Overall, the last week saw a total of 227 posts, with 80 of them rewarded through an upvote by @utopian-io.
- In total, Utopian.io distributed an approximate of 3878.43 STU to contributors.
- The highest payout seen on any Utopian.io contribution this week was 298.07 STU, with a total of 517 votes received from the community.
- The contribution that attracted the most engagement was SteemDocs.net - Glossary Bundle #11 + - Utopian Powered Steem Documation Network Website, with no less than 6 comments in its comment threads.
- The average vote given by Utopian.io was worth 48.48 STU.
Category Statistics
|Category|Reviewed|Rewardable|Rewarded|Total rewards|Top contributor| |:-|:-|:-|:-|-:|:-| |bug-hunting|4|2|1|27.55 STU|@stmdev| |graphics|20|19|10|417.98 STU|@ggabogarcia| |tutorials|13|9|5|176.84 STU|@yalzeee| |translations|114|113|46|2381.98 STU|@cremisi| |analysis|4|4|1|22.25 STU|@miniature-tiger| |documentation|1|1|1|63.76 STU|@cryptoctopus| |copywriting|3|2|2|50.55 STU|@harry-heightz| |development|29|27|6|361.10 STU|@tensor| |blog|20|14|1|49.79 STU|@jaff8| |iamutopian|8|8|6|303.54 STU|@rosatravels| |ideas|4|4|1|23.09 STU|@ckole| |anti-abuse|3|3|0|0.00 STU|@steemseph| |social|3|3|0|0.00 STU|@dongentle2| |video-tutorials|1|1|0|0.00 STU|@tensor|
Join the community on Discord: https://discord.gg/azdmM3v
First Time Contributing in Utopian.io?
Learn how to contribute on our website
This page is synchronized from the post: Top of Utopian.io: October 17 - October 24


|
MkEClient Tester v1.0
Documentation
|
#include <catch.hpp>
Public Member Functions | |
| MatchAllOf< T > | operator&& (MatcherBase const &other) const |
| MatchAnyOf< T > | operator|| (MatcherBase const &other) const |
| MatchNotOf< T > | operator! () const |
| Public Member Functions inherited from Catch::Matchers::Impl::MatcherUntypedBase | |
| MatcherUntypedBase ()=default | |
| MatcherUntypedBase (MatcherUntypedBase const &)=default | |
| MatcherUntypedBase & | operator= (MatcherUntypedBase const &)=delete |
| std::string | toString () const |
| Public Member Functions inherited from Catch::Matchers::Impl::MatcherMethod< T > | |
| virtual bool | match (T const &arg) const=0 |
Additional Inherited Members | |
| Protected Member Functions inherited from Catch::Matchers::Impl::MatcherUntypedBase | |
| virtual | ~MatcherUntypedBase () |
| virtual std::string | describe () const =0 |
| Protected Attributes inherited from Catch::Matchers::Impl::MatcherUntypedBase | |
| std::string | m_cachedToString |
| MatchNotOf< T > Catch::Matchers::Impl::MatcherBase< T >::operator! | ( | ) | const |
| MatchAllOf<T> Catch::Matchers::Impl::MatcherBase< T >::operator && | ( | MatcherBase< T > const & | other | ) | const |
| MatchAnyOf< T > Catch::Matchers::Impl::MatcherBase< T >::operator|| | ( | MatcherBase< T > const & | other | ) | const |


Enrolled with a research fellowship and full-ride scholarship.
Relevant coursework: Hydrologic and Groundwater modelling, Geo-spatial sciences and Web-App programming.
Recipient of a TA fellowship award.
Admission based on merit through single window placement.
Spearheaded operations on examining and studying a river for waste water treatment purposes.
Designed and modeled a modern building structure.


This page allows you to change global options relating to file and editing commands.
Create backup files
If this option is selected (and all of the conditions below are met) then whenever you save a file the previous version of the file, if any, is retained with the file extension of “.BAK”. (If you are editing a file with extension of “.BAK” the backup file has an extension of “.BAC”). The previous backup file, if any, is discarded.
To always create backup files turn on this option and turn off all the sub-options below.
Only if sufficient disk space
A backup is only created if there is free disk space (on the same volume) to accommodate the original file (which becomes the backup file) and the new file. Note that this does not guarantee that the file will be able to be written to disk, since other processes or even the operating system may change the available disk space while the file is being written to disk.
Only if size is less than
Selecting this option allows you to specify a maximum file size. If the (new) file is bigger than this a backup will not be created.
Prompt for confirmation
Asks when the file is saved if you want to create a backup copy. You are only asked if all the above options say that a backup should be created.
Use file addresses
When exporting the selection to a Motorola S or Intel Hex file you need to specify a starting address. Selecting this option says to use the address within the file of the start of the selection. For example, if you select and export the whole file the starting address will be zero.
Use address
When exporting the selection to a Motorola S or Intel Hex file this option allows you to specify the starting address, ie the address of the first line written to the file. In this case the file address of the selection to be exported is ignored.
Bytes per line
This is the number of data bytes that are written to the exported text files created by the Export Motorola S1 Records, Export Motorola S2 Records, Export Motorola S3 Records, Export Intel Hex Records, and Export Hex Text commands. The number should be kept within a reasonable range (and always between 8 and 250) as some software may have trouble reading very long lines. A reasonable number would be 16 or 32.


DtWinVer v1.82
Features
DtWinVer is a C++ class which
provides a comprehensive method to determine which OS the program that calls it
is running on. All methods it uses are fully documented on various articles on
MSDN. The routine provides the emulated OS as well as the underlying OS. e.g to a DOS program Windows 95 looks like MS-DOS 7.0. A full list of the OS’s
it can detect are:
- DOS
- Windows 3.0
- Windows 3.1
- Windows 3.11
- Windows for Workgroups
- Win32s (if you can call this
an OS <g>)
- Windows CE 1.0
- Windows CE 2.0
- Windows CE 2.1
- Windows CE 2.11
- Windows CE 3.0
- Windows CE.Net
- Windows CE 5
- Windows 95 Gold
- Windows 95 Service Pack 1
- Windows 95B aka OEM Service
Release 2[.1]
- Windows 95C aka OEM Service
Release 2.5
- Windows 98
- Windows 98 Service Pack 1
- Windows 98 Second Edition
- Windows Millennium Edition
- NT 3.1
- NT 3.5
- NT 3.51
- All flavours of NT, 2000 and
XP Service packs
- NT 4.0
- NT Workstation, Server, PDC,
BDC, Datacenter, Enterprise
- Windows 2000
- Windows 2000 Professional,
Server, Domain Controller, Datacenter and Advanced Server
- Windows Terminal Services and
Back Office
- Windows XP Starter Edition, XP Personal & XP
Professional
- Windows Server 2003, Windows
Server 2003 (Web Edition), Windows Server 2003 Domain Controller,
Datacenter, Enterprise Server & 64 bit Editions
- Windows Server 2003 R2,
Windows Server 2003 R2 (Web Edition), Windows Server 2003 R2 Domain
Controller, Datacenter, Enterprise Server & 64 bit Editions
- Embedded Windows NT / 2000 / XP.
- XP Media Center Edition
- Windows XP Tablet PC Edition
- Windows Vista (All SKU's including Starter Edition, Home Basic N, Home
Basic, Home Premium, Home Premium N, Business N, Business, Enterprise N, Enterprise, Ultimate
N, Ultimate).
- Windows Server 2008, Windows
Server 2008 Web Edition, Windows Server 2008 Datacenter, Enterprise Server,
Core Server, Hyper-V & 64 bit Editions
- Windows Essential Business Server Management, Messaging and Security
Server
- Windows Storage Enterprise, Express, Standard and Workgroup Server
- Windows Server 2003 & 2008 Computer Cluster Edition
- Windows Cluster Server
- Windows Home Server
- Windows "Security Application" mode
- BackOffice, Small Business Server & Small Business Server Premium installed
- Windows 7 (All SKU's including Starter Edition, Home Basic, Home
Premium, Professional, Enterprise, Enterprise, Ultimate, 64 bit, N & E
editions).
- Windows Server 2008 R2, Windows
Server 2008 R2 Web Edition, Windows Server 2008 R2 Datacenter, Enterprise Server,
Core Server, Hyper-V & 64 bit Editions.
- Windows Server 2008 R2 Foundation Server
- Windows Multipoint Server 2010
Some of the possible scenarios it
can report on are:
- "You are running an emulated
DOS v5.50 On Windows 2000 Server Build 2195 Service Pack 2"
- "You are running an emulated
Windows 3.95 on Windows 95 v4.0 Build 950"
- "You are running Windows for
Workgroups on DOS v6.22"
- "You are running NT Server
v3.51"
- "You are running this 32 bit
process on the WOW64 layer of 64 bit Windows"
- "You are running an
application on Windows NT Terminal Server.
- This NT machine is acting as a
stand alone server, primary domain controller or backup domain controller.
Copyright
- You are allowed to include the source code in
any product (commercial, shareware, freeware or otherwise) when your product
is released in binary form.
- You are allowed to modify the source code in
any way you want except you cannot modify the copyright details at the top
of each module.
- If you want to distribute source code with
your application, then you are only allowed to distribute versions released
by the author. This is to maintain a single distribution point for the
source code.
History
v1.1 (8 May 1997)
- Fix to remove Unicode and
TCHAR code when being compiled for Win16.
v1.2 (13 September 1998)
- Updated the sample app plus
the DtWinVer code to explicitly support Windows 98.
v1.3 (22 June 1998)
- UNICODE enabled the code.
- Removed need for the dwOSVersionInfoSize variable.
- Added support for detecting Build Number of 95 and 98 from DOS code path.
- Now ships as standard with VC 5 workspace files.
- Added explicit support for Windows 95 SP 1.
- Added explicit support for Windows 95 OSR 2.
- Added explicit support for Windows 98 Second Edition.
- Added explicit support for Windows 2000.
- Added explicit support for Windows CE.
- Added explicit support for Windows Terminal Server's.
- Added explicit support for NT Stand Alone Server's.
- Added explicit support for NT Primary Domain Controller's.
- Added explicit support for NT Backup Domain Controller's.
v1.31 (23 July 1999)
- Tested out support for Windows 98 SE, minor changes required
v1.32 (26 July 1999)
- Added explicit support for Windows 98 SP 1.
v1.33 (28 July 1999)
- Fixed a problem when application is build in non-huge/large memory model
in Win16.
- Added explicit support for returning NT and Win9x service pack
information from Win32 and Win16 code paths.
- Updated test program to not bother reporting on any info which does not
exist. e.g. if there is no service pack installed, then we don't bother
displaying any info about service packs.
- Added explicit support for NT Enterprise Edition.
v1.34 (2 February 2000)
- Fixed a minor copy and paste bug in the test program.
v1.35 (30 June 2000)
- Added explicit support for Windows Millennium Edition
v1.4 (29 January 2001)
- Added explicit support for XP Personal
- Added explicit support for XP Professional
- Added explicit support for XP Server
- Added explicit support for XP Advanced Server
- Added explicit support for XP Datacenter
- Added explicit support for XP 64 bit (all flavours)
- Made all the code into a C++ class called COSVersion
- Rewrote all the generic thunk code to be easier to follow
- Generic thunk code now uses CallProcEx32W
- Added explicit support for BackOffice Small Business Edition
- Added explicit support for Terminal Services
- 16 bit code path now can determine ProductSuite and ProductType type thro
additional generic thunk code
- Provided a 64 bit test binary and make batch file (make64.bat) for those
lucky enough to have an Itanium processor and a beta of 64 bit Windows XP.
- Provided a Embedded C++ workspace and X86 Release binary.
- Updated copyright information
v1.41 (10 February 2001)
- Updated function names etc following MS decision to call Whistler "Windows
XP".
v1.42 (10 October 2001)
- Added code to 32 bit code path to detect if we are being run under 64 bit
Windows. Also updated the sample app to distinguish between emulated 64 bit
and underlying 64 bit.
- Updated the sample app to call XP Server its proper name which will be
"Windows.NET Server"
v1.5 (13 December 2001)
- Major upgrade. Now 16 bit DOS path can return as much information as
native Win32 code. This is achieved by spawning off the Win32 utility
WriteVer with a special command line option. Please note that if you intend
deploying dtwinver then you must now ship the writever.exe file in addition
to linking in the dtwinver code into your application. Also this utility
needs to be in the path or current directory when the dtwinver code is
executing. Thanks to Chaz Angell for prompted me into finding a solution for
this last major item missing in dtwinver.
23 March 2002
- Updated Win32 and Win64 apps to have version info in them. No changes
have been made to the main dtwinver code.
v1.6 (30 August 2002)
- Provided an update CE workspace to work correctly in eMbedded Visual C++
v3. All build configurations for eVC 3 have also been provided.
- Optimized the usage of _tcscat and _tcscpy in the test app which comes
with Dtwinver.cpp
- OEM Info string and Platform Type string is now returned for CE code path
- Fixed display of minor version number for example Windows.Net is version
number v5.20 but should be shown as 5.2 to be consistent with what the
native ver command displays
- Provided a new CE workspace to work correctly in eMbedded Visual C++ v4.
All build configurations for eVC 4 have also been provided.
v1.61 (8 October 2002)
- Now uses OSVERSIONINFOEX it possible in the Win32 or Win64 code paths.
This provides for more reliably detection of Windows XP Home Edition.
- Renamed the functions which detect Windows .NET Server 2003. Also updated
the test code which prints out these names
- Provided explicit support for Windows .NET Web Server
- Fixed a bug in the display of the minor OS version number on Windows .NET
Server.
- Made the project for WriteVer a VC 5 project instead of VC 6 which it was
up until now.
- Reworked the internal function WhichNTProduct to use a constant input
string parameter
- Added explicit support for Windows NT / 2000 / XP Embedded
- Added explicit support for detecting Terminal Services in remote admin
mode
v1.62 (11 October 2002)
- Fixed a problem where on Windows XP, the test program will include the
text "(Standard Edition)"
- Added two variables to the OS_VERSION_INFO structure to report the minor
service pack number
- Removed the OS_VERSION_INFO structure from the global namespace
- Removed all static member variables from the class
- Added a member variable to the OS_VERSION_INFO to return the various
"suites" installed
- Reduced the number of calls to WriteVer to 1 when called from dos
code path.
- Completely reworked the internal WhichNTProduct method
- General tidy up of the header file
- Completely reworked the ValidateProductSuite method
- Now only 1 call is made to WhichNTProduct throughout a single call to
COSVersion::GetVersion
- Now only 1 call is made to ValidateProductSuite throughout a single call
to COSVersion::GetVersion
- Fixed an unitialized variable problem in COSVersion::IsUnderlying64Bit
- Changed "WhichNTProduct" method to "GetNTOSTypeFromRegistry"
- Changed "ValidateProductSuite" method to
"GetProductSuiteDetailsFromRegistry".
- Now correctly reports on Terminal Services being in Remote Admin Mode on
OS which do not support calling GetVersionEx using an OSVERSIONINFOEX
structure i.e any NT 4 install prior to SP6.
- 16 bit Windows code path now reports as much NT information as the Win32
code path
- Fixed a bug in COSVersion::GetInfoBySpawingWriteVer which was failing if
it encountered an empty CSD string. This was spotted on Windows .NET Server
which since it is in beta still (as of October 2002) does not have any
service pack!.
v1.63 (10 January 2003)
- Update to support MS deciding to change the name of their Whistler Server
product. The product will now be called "Windows Server 2003".
v1.64 (30 January 2003)
- Added explicit support for detecting NT Service Pack 6a
v1.65 (8 February 2003)
- Added explicit support for detecting Windows XP Service Pack 1a
- Added support to determine the HAL on NT Kernels. Thanks to Christian
Kaiser for suggesting this addition.
v1.66 (12 February 2003)
- Fixed a compiler warning in GetNTServicePackFromRegistry which occurs when
the code is compiled with the Watcom compiler. Thanks to Christian Kaiser
for reporting this.
v1.67 (8 March 2003)
- Updated a comment in COSVersion::GetProductSuiteDetailsFromRegistry re NT
Embedded.
- A comment from John A. Vorchak: On NTe (NT Embedded) and XPE (XP
Embedded), all of the versions (of DTWinver) work just fine so long as the
components to support them are included in the images, which itself is kind
of a crap shoot. I think that you would probably find that most images will
not support the DOS or Win16 versions however most will support the Win32.
Many of the images that folks build either do not include the DOS subsystem
and some of them do not include Explorer, so it really can't be said that
all builds will support them however it is not difficult for a developer to
understand which version would work for them as they understand their target
systems better than anyone and at least one version would certainly work for
almost all images. As far as Win2k (Server Appliance Kit), I haven't done
enough testing with that platform, nor do I currently have any built images
with the SAK to say positively or otherwise. More than likely you would find
no problems with the SAK images since they typically follow W2k much more
than NTe or XPE do. Author: If you are writing for an embedded OS, then
there is little use for DTWinver!!, since the developer has very tight
control over the runtime environment. Also if you do use DTWinver on an
embedded version of Windows, you will probably compile in the dtwinver code
rather than ship the sample binaries I include in the dtwinver download.
v1.68 (10 April 2004)
- Removed a number of unreferenced variable warnings when you compile the
code on VS.NET 2003. Thanks to Edward Livingston for reporting these issues.
- Now includes support for Windows XP Media Center Edition. Please note that
if you want to do specific version checking of what version of Media Center
you have installed then you should use my CVersionInfo classes at
http://www.naughter.com/versioninfo.html in conjunction with the following
information which I culled from
http://salloway.org.uk/mediacenter/2004/version.htm which describes
the various version numbers of ehshell.exe in \Windows\ehome to the
corresponding versions of XP Media Center Edition.
- dtwinver now returns the processor architecture via a call to
GetSystemInfo or GetNativeSystemInfo. This is used to differentiate between
64 Bit Windows on Itanium and AMD64 processors.
- Renamed the global preprocesor defines used by dtwinver to use more unique
names
- Added make files and binaries for AMD64 processors.
v1.69 (26 June 2005)
- INTEL_PROCESSOR enum is now more correctly know as IA32 which means x86 32
bit.
- Fixed a bug where the OS_VERSION_INFO parameter was not be zero set in the
function COSVersion::GetVersion. Thanks to "Remio" for reporting this issue.
v1.70 (29 June 2005)
- Added support for detecting if code is running on Tablet PC Edition of
Windows.
- Code now uses GetSystemMetrics call in preference to direct registry calls
to detect Media Center Edition of Windows.
- Renamed the functions which differentiate between the different OEM
Service Release versions of Windows 95. They are OSR 2[.1] = Win95B, OSR2.5
= Win95C. For the gory details please see the KB article at
http://support.microsoft.com/kb/q158238/. The code now also explicitly
supports Win95C.
v1.71 (22 July 2005)
- Now includes support for Windows Vista, formerly Windows codename
"Longhorn".
v1.72 (6 September 2005)
- Renamed some of the functions
which detect Longhorn Server. Previously the functions were incorrectly
referring to Vista Server. Vista is the name of the Windows Client. As of
yet, a product name has not been picked for Longhorn Server.
- Now includes support for
Windows Server 2003 R2.
- Now includes support for
Windows XP Starter Edition and any future versions such as Windows Vista
Starter Edition
v1.73 (17 May 2006)
- Updated copyright details.
- Updated documentation to use the same style as the web site.
- Updated documentation on version numbers which XP Media Center can have.
- Added support for Windows Server 2003, Computer Cluster Edition
- Added support for Windows Storage Server 2003 R2
- Added support for detecting if Windows is installed in a "Security
Application" mode
- Added support for detecting BackOffice components are installed
- Provided Visual Studio 2005 solution to build DtWinver with.
v1.74 (21 September 2006)
- Included support for detecting all the different types of Vista SKU's,
namely: Windows Vista Starter Edition, Windows Vista Home Basic N, Windows
Vista Home Basic, Windows Vista Home Premium, Windows Vista Business N,
Windows Vista Business, Windows Vista Enterprise, and Windows Vista
Ultimate.
- Fixed a bug in the displaying of unknown versions of Windows in the
sample app
v1.75 (18 May 2007)
- Updated copyright details.
- Updated code to refer to Windows Server 2008 which was formerly known as
Windows Server codename "Longhorn".
v1.76 (20 June 2007)
- Include support for detecting Windows Home Server. Thanks to
Petr Stejskal for suggesting this update.
v1.77 (14 June 2008)
- Updated copyright details
- Code now compiles cleanly using Code Analysis (/analyze)
- Added support for Vista Home Premium N
- Added support for Vista Business N
- Added support for Vista Enterprise N
- Added support for Vista Ultimate N
- Added support for Windows Core Server
- Added support for Windows Hyper-V
- Added support for Windows Essential Business Server Management Server
- Added support for Windows Essential Business Server Messaging Server
- Added support for Windows Essential Business Server Security Server
- Added support for Windows Storage Server Enterprise Edition
- Added support for Windows Storage Server Express Edition
- Added support for Windows Storage Server Standard Edition
- Added support for Windows Storage Server Workgroup Edition
- Added support for Windows Cluster Server Edition
- Added support for Windows Business Server Premium Edition
v1.78 (15 December 2008)
- Added support for detecting Windows 7
v1.79 (12 February 2009)
- Updated the VC 2005 project file to use more reasonable default project
settings
- Updated copyright details
- Includes provisional support for the Windows 7 Professional SKU. Note
that the code currently assumes that the BUSINESS SKU value refers to the
newly documented SKU of "Windows 7 Professional". I have not found any
information to confirm or deny this but this should become clearer as we
approach the release of "Windows 7. Any feedback on this would be much
appreciated.
v1.80 (5 July 2010)
- Updated copyright details
- Added a IsWindowsVistaOrWindowsServer2008 method
- Added a IsWindows7OrWindowsServer2008R2 method
- Reworked the logic in all the Windows 2008 methods to use
IsWindowsVistaOrWindowsServer2008 instead of IsWindowsServer2008. Thanks to
Matt Fox for reporting this issue.
- Added comprehensive support for Windows 2008 R2
- Reworked the GetInfoBySpawingWriteVer method to work correctly on OSes
which use UAC. The code now uses _tempnam which places the temporary file in
the "TMP" directory.
- Fixed a bug in GetInfoBySpawingWriteVer where it incorrectly parsed the
dwSuiteMask values.
- Extended WriteVer and GetInfoBySpawingWriteVer to also update
dwSuiteMask2
- Fixed a bug in the test app where it was incorrectly calling
IsEmulated64Bit instead of IsUnderlying64Bit to report whether the
underlying OS was 64 bit or not.
v1.81 (5 July 2010)
- Added support for the following Product types: PRODUCT_ENTERPRISE_E,
PRODUCT_HOME_BASIC_E, PRODUCT_HOME_PREMIUM_E, PRODUCT_PROFESSIONAL,
PRODUCT_PROFESSIONAL_E, PRODUCT_PROFESSIONAL_N,
PRODUCT_SERVER_FOR_SMALLBUSINESS, PRODUCT_SERVER_FOR_SMALLBUSINESS_V,
PRODUCT_SERVER_FOUNDATION, PRODUCT_SOLUTION_EMBEDDEDSERVER,
PRODUCT_STARTER_E, PRODUCT_STARTER_N, PRODUCT_ULTIMATE_E. This means that
the code now fully supports Windows 7 Professional, Windows E Edition (The
version of Windows 7 that was to
be released in Europe without Internet Explorer 8), Windows Server 2008 R2
Foundation Server and Windows Multipoint Server 2010.
- Changed some of the names of the class methods for overall consistency
v1.82 (8 August 2010)
- The code now differentiates between having the Hyper-V tools installed
and the actual Hyper-V OS. Thanks to Scott Pawloski for reporting this
issue.
- I have removed the CE 3 & 4 and Dos And Win16 binaries from the zip
file. The code should still compile if you still have these ancient
compilers installed.
API
The API provided is through a C++ class namely "COSVersion". It provides a
number of functions, the most important being "GetVersion" which does the actual
version detection. There are a number of additional functions which tell you if
a certain "flavour" of an operating system is installed. For more info on how to
use the function, please see the code in test.cpp.
Notes
The code uses C++ but does not
use MFC. Files are also included which builds a simple application which reports
the OS version, through a message box on Windows and stdio in DOS.
The project files included are:
- dosver.mak (VC 1.5x for DOS)
- winver.mak (VC 1.5x for Win16)
- winverce3.vcw (Embedded Visual
C++ 3 for Windows CE).
- winverce4.vcw (Embedded Visual
C++ 4 for Windows CE).
- winver32.sln (Visual Studio 2005 solution for Win32 and x64)
Also included in the winver32
workspace is a sub project to build the WriteVer executable needed for the 16
bit DOS code path in DtWinVer.
Areas where the code may prove
useful are:
- A DOS program wants to know if
it can be allowed access to hardware ports which is not available on NT, but
is available on DOS, Windows 3.x & Windows 95.
- A Win32 program wants to know
if the Windows 95 UI is available.
- A Win16 program wants to know
if it can call the Win32 API via generic thunking.
- Checking for the existence of
a certain service pack on Windows 95, 98, 2000 or XP.
Contacting the Author
PJ Naughter
Email<EMAIL_ADDRESS>Web: http://www.naughter.com
8 August 2010


True multiparty democracy does not reward party loyalty – Otumfuo counsels
Asantehene, Otumfuo Osei Tutu II, has said governments work against the true tenets of multiparty democracy when they reward individuals who are loyal to the political parties they belong to.
Describing the system where ruling parties reward persons deemed to have been loyal to them as “patronage” and “clientelism”, the king of the Ashanti people said countries that have rooted out this system have reaped many rewards.
“In clientelistic states, political parties provide individual benefits to people in exchange for their votes. These benefits can include jobs in the public sector, cash payments, political favours or even public goods like schools and clinics that are collectively given to political supporters.
“It took more than a century before the United States was able to clean the system and put an end to both political patronage and the scourge of clientelism and the United States has been all stronger for it,” he said.
Otumfuo Osei Tutu II made the comments when he presented a keynote address at the Annual Leadership Lecture Series organised by the University for Professional Studies, Accra (UPSA) on Friday.
He said although Ghana has made great strides to abandon unfavourable governance systems like military regimes and one-party state system, the problems with the current multiparty democratic system must be a source of concern.
“Yes we have the luxury of joining the party of our choice and the supreme right to choose which party manages our affairs but what difference does the change bring if the new system also makes party loyalty the source of all rewards?” he quizzed.