Further Resources
Toggle navigation
Home
Input Breaks
Input Hobbies
View Hobbies
More Information
To find more ways to do crafts on your own click
Here


Lesson tasks for 2016 Oct 19
1. Study Merge sort algorithm
Please fill-in the related part of the handout
PPT,
Demo Video,
__Demo Video__2,
Demo code,
handout
Reference: Interactive python code running for tracing the implementation of each step!
Please click on RUN and SHOW CodeLens and run the code step by step.
http://interactivepython.org/runestone/static/pythonds/SortSearch/TheMergeSort.html?highlight=merge%20sort
2. Study Quick sort algorithm
Please do a trace-table of the quick sort algorithm for the list: [9 2 4 5 6 1 3 8 7]
Demo Video,
Comparison video,
visualization
Reference: Interactive python code running for tracing the implementation of each step!
Please click on RUN and SHOW CodeLens and run the code step by step.
http://interactivepython.org/runestone/static/pythonds/SortSearch/TheQuickSort.html?highlight=quick%20sort
3. Implement merge sort and quick sort in python
You can refer to the above two links, but please DO WRITE THE CODE BY YOURSELF after you've understood it!
4. Analyze about the time complexity for the 5 algorithms:
bubble, insertion, selection, merge and quick sort.
Code template for running time test.
AT THE END OF THE LESSON, YOU SHOULD SUBMIT the following to your project page.
1. a plot with running time v.s. length of the list for all 5 algorithms
2. all the code you've written for the above task
5. Get ready for your major 2 next week, which is about: sorting algorithms, OOP and data structures ( lesson content on Friday).


APAPA - Avoid Public And Package Attributes
Declare the attributes either private or protected and provide operations to access or change them.
There might be one exception when some class is used just as struct
in C language: it just holds some values, and thus has no methods.
Formally option regulates whether to raise violations for such classes.
When formally option is off, violations are not raised.
Wrong
int attr1;
public int attr2;
}
Tip:
Change visibility of attributes to either private or protected.
Provide access operations for these attributes.
Right
private int attr1;
protected int attr2;
public int getAttr1() {
return attr1;
}
public int getAttr2() {
return attr2;
}
public void setAttr2(int newVal) {
attr2 = newVal;
}
}


Product Process
Price
Product Type
Product Description
Color
Gender
Image
Update
Add
Fill in the fields in accordance with the above format. Your image file should be in the "assets /" folder.


|
Panda3D
|
Public Member Functions | |
| __init__ (const AICharacter) | |
| __init__ (str model_name, NodePath model_np, double mass, double movt_force, double max_force) | |
| AIBehaviors | getAiBehaviors () |
| double | getMass () |
| double | getMaxForce () |
| NodePath | getNodePath () |
| LVecBase3 | getVelocity () |
| setMass (double m) | |
| setMaxForce (double max_force) | |
| setNodePath (NodePath np) | |
| setPfGuide (bool pf_guide) | |
| Public Member Functions inherited from ReferenceCount | |
| int | getRefCount () |
| Returns the current reference count. More... | |
| ref () | |
| Explicitly increments the reference count. More... | |
| bool | testRefCountIntegrity () |
| Does some easy checks to make sure that the reference count isn't completely bogus. More... | |
| bool | testRefCountNonzero () |
| Does some easy checks to make sure that the reference count isn't zero, or completely bogus. More... | |
| bool | unref () |
| Explicitly decrements the reference count. More... | |
Additional Inherited Members | |
| Static Public Member Functions inherited from ReferenceCount | |
| static TypeHandle | getClassType () |
| Public Attributes inherited from ReferenceCount | |
| int | ref_count |
| The current reference count. More... | |
| __init__ | ( | const | AICharacter | ) |
| __init__ | ( | str | model_name, |
| NodePath | model_np, | ||
| double | mass, | ||
| double | movt_force, | ||
| double | max_force | ||
| ) |
| AIBehaviors getAiBehaviors | ( | ) |
| double getMass | ( | ) |
| double getMaxForce | ( | ) |
| NodePath getNodePath | ( | ) |
| LVecBase3 getVelocity | ( | ) |
| setMass | ( | double | m | ) |
| setMaxForce | ( | double | max_force | ) |
| setNodePath | ( | NodePath | np | ) |
| setPfGuide | ( | bool | pf_guide | ) |


# Architecture
##Overview Introduction to architecture - software and hardware application makeup.
##Directory Structure Include maps for directory structure here.
##Components Include component listing for both building and deployment dependencies.


NOTE: For this example to work you have to run it in a web server context. This example shows you how you can edit dependencies by double clicking them.
Note that the js for the example code is not minified so it is readable. See dependencyeditor.js.


Copy markdown text and paste.
Supported markdown:
# Headers **Bold text** *Italic* ***Bold italic*** ~~Strikethrough~~ - Bullet points 1. Numbered lists [] Checkboxes []() Links > Blockquote `Inline code block` ``` Fenced Code block ``` --- Horizontal Rule


Toggle navigation
$platform
Search
Ledger List
Server Info
Find Something
Try: 10500
if you want to see full ledger info, select this checkbox


Intro to Programming Languages
Ben Broce
Home
Python
Perl
Ruby
C/C++
Java
Released
Under
Made
With
The Fundamentals
What is Programming?
What is Computer Science?
Using This Website
Tools You Will Need:
Linux (or a UNIX emulator)
Friends don't let friends use Windoze...
A Text Editor (or an IDE)


http://www.speakers-podium.com/susangranger.
Susan Granger's review of "HAPPY, TEXAS" (Miramax Films)
In the comedy genre of "Priscilla, Queen of the Desert" and "To Wong Foo, Thanks for Everything, Julie Newmar," this whimsical farce revolves around two convicts - Jeremy Northam ("The Winslow Boy," "An Ideal Husband") and Steve Zahn ("Out of Sight") - who escape from a chain-gang and steal a Winnebago, only to discover that its rightful owners are two gay guys who travel around the country producing children's beauty pageants. Their only hope of evading the law is to assume these new identities, which is immediately funny since neither crook is exactly in touch with his feminine side. When they arrive in Happy, Texas, Zahn's job is to coach the pre-teen contestants for the Little Miss Squeezed Pageant - to the delight of supervisor Illeana Douglas - while Northam handles the business end. Their plan is to pocket the contractual $1,000 fee and scram quickly - after robbing the local bank. Only it's not that easy. Beautiful banker Ally Walker (TV's "Profiler") is attracted to Northam - and he to her - but the only way he can be with her and maintain the charade is to pretend to be her sympathetic confidante. And Northam's in for an even bigger surprise when the tormented sheriff - that's William H. Macy - has a hankering for him at a gay cowboy bar. Screenwriters Ed Stone, Phil Reeves and writer/director Mark Illsley were obviously inspired by Billy Wilder's "Some Like It Hot" since there are many similarities. Curiously, in this era of Jon-Benet Ramsey's murder, the jibes are gentle; somewhere, somehow there's irony buried in juvenile beauty pageants that's yet to be unearthed. On the Granger Movie Gauge of 1 to 10, "Happy, Texas" is a snappy, screwball 6. And if you like this, rent the video "Waiting for Guffman," which is even funnier.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Cases by Age over Time
Cases by City or Town over Time
Note: Less total cases are reported here than by age because these locations do not cover the whole county.
Note: emergencyslo has a reporting error for CMC Inmates on 8/26
With Cal Poly set to reopen "de-densified" in the Fall, it is important to have easily understandable data on the ongoing pandemic within SLO county.
Without intervention, viruses spread exponentially. Exponential growth of a disease can quickly overwhelm healthcare institutions. The logarithmic graphs shown above can better illustrate whether the growth rate of COVID-19 is exponential or not.
A straight steep line on a logarithmic scale reveals fast exponential growth, but a downward curve or a flat line reveals a slower growth rate. The graph of COVID-19 cases often switches between the two. For instance, the cases in San Luis Obispo were exponentially growing in mid-June and thus the logarithmic graph of those cases has a roughly straight line during that time. That concept is highlighted in the graph below:
Since social distancing affects the growth rate of the coronavirus, a logarithmic graph can sometimes indicate how well or how poorly a population has been social distancing. This allows for a better understanding on the impact certain events and policies have on the growth of COVID-19.
This website is designed to supplement the graphs on the emergencyslo website to include an option for seeing important data in a logarithmic scale. All case data used here is sourced from that website and hosted by The Office of Emergency Services in SLO County. This website is in no way affiliated with or a representative of The Office of Emergency Services in SLO County, nor is it affiliated with any other governmental entity.


Plot Poles:
In a great circle plot, the poles (normals) to the planes may be plotted (yes) or not (no).


Sidney Crosby donates car he won as NHL All-Star MVP to veteran
by WPXI.comPITTSBURGH - Imagine getting a brand-new car. Now imagine that it was Pittsburgh Penguins legend Sidney Crosby who handed you the keys.
That was the situation for one local veteran Friday, according to the Pittsburgh Penguins website.
The team's website reported that Madeline Malizio was an Army specialist for five years, attending Community College of Allegheny County for legal studies and is a single mother. She didn't own a car.
Crosby heard about her situation, according to the website, and met her Friday following the team's practice. He walked her to a corner of the team's practice facility and opened a garage door. There sat Malizio's new wheels: a 2019 Honda Passport that Crosby had won as MVP of the 2019 NHL All Star Game.


Gecode code statistics
The following approximate breakdown into the different parts of Gecode gives some statistics about the amount of code and documentation contained in the code (as comments) where blank lines are excluded.The abbreviation "loc" means "lines of code" and "lod" means "lines of documentation".
- Kernel: 96 classes, 6419 loc, 3912 lod
- Core functionality: 21 classes, 1723 loc, 1281 lod
- Variables, views, and variable implementations: 13 classes, 884 loc, 489 lod
- Miscellaneous: 62 classes, 3812 loc, 2142 lod
- Search engines: 20 classes, 1126 loc, 1086 lod
- Finite domain integers: 326 classes, 33917 loc, 15105 lod
- Variables, views, and variable implementations: 37 classes, 4860 loc, 3005 lod
- Propagators: 224 classes, 23418 loc, 9306 lod
- Branchings: 25 classes, 873 loc, 392 lod
- Posting propagators and branchings: 24 classes, 4588 loc, 2238 lod
- Miscellaneous: 16 classes, 178 loc, 164 lod
- Finite integer sets: 101 classes, 13824 loc, 7866 lod
- Variables, views, and variable implementations: 41 classes, 4028 loc, 2276 lod
- Propagators: 29 classes, 7661 loc, 3795 lod
- Branchings: 7 classes, 246 loc, 213 lod
- Posting propagators and branchings: 15 classes, 1756 loc, 1429 lod
- Miscellaneous: 9 classes, 133 loc, 153 lod
- Finite integer sets with complete domain representation: 43 classes, 5136 loc, 2253 lod
- Variables, views, and variable implementations: 20 classes, 2236 loc, 995 lod
- Propagators: 5 classes, 857 loc, 416 lod
- Branchings: 7 classes, 283 loc, 195 lod
- Posting propagators and branchings: 0 classes, 1595 loc, 492 lod
- Miscellaneous: 11 classes, 165 loc, 155 lod
- Minimal modelling support: 12 classes, 1668 loc, 867 lod
- Serialization support: 0 classes, 954 loc, 255 lod
- Range and value iterators: 53 classes, 2668 loc, 2572 lod
- Support algorithms and datastructures: 22 classes, 1223 loc, 1078 lod
- Example scripts: 67 classes, 8203 loc, 3842 lod
- Systematic tests: 275 classes, 15886 loc, 4125 lod
- Core functionality: 4 classes, 309 loc, 195 lod
- Branchings: 19 classes, 718 loc, 532 lod
- Search engines: 12 classes, 461 loc, 126 lod
- Finite domain integers: 132 classes, 3926 loc, 1566 lod
- Finite integer sets: 56 classes, 2778 loc, 856 lod
- Finite integer sets with complete domain representation: 22 classes, 1027 loc, 496 lod
- Minimal modelling support: 30 classes, 6667 loc, 354 lod
- Decomposition during search: 0 classes, 0 loc, 0 lod
The grand total: 1015 classes, 91024 loc, 42961 lod


--- title: "London 2018" layout: splash classes: - landing - dark-theme ---
| Time | ||
|---|---|---|
| 09:00 | Doors open | |
| 09:30 | Welcome to Map Camp. | Gen Ashley (Chair) & Simon Wardley |
| 09:45 | Using maps to create focus and leverage | Liam Maxwell, National Technology Adviser at HM Government. |
| 10:15 | Mapping a new venture | Rachel Murphy, Managing Director at Difrent Group |
| 10:45 | Mapping one's regulatory world | Julie Pierce, Director Openness, Data & Digital at Food Standards Agency |
| 11:15 | Coffee | |
| 11:45 | Mapping and the UN | Mark Craddock, Technical Director, UN Global Platform |
| 12:15 | Maps, Ships, Trains and Automobiles | James Findlay, Co-Founder Stance Global |
| 12:45 | Using maps as a communication tool | Yodit Stanton, CEO OpenSensors |
| 13:15 | Lunch provided | |
| 14:15 | Maps and the Empathy Economy | Dr Jacqui Taylor, CEO, co-founder FlyingBinary |
| 14:45 | Maps, huh! What are they good for? | Danielle H-Wilson, Head of Business Architecture & Analysis at Co-op Digital |
| 15:15 | Mapping and Education | Janet Hughes, Digital director working in Healthcare, Education and the Arts |
| 15:45 | Coffee | |
| 16:15 | Mapping a serverless startup | Drew Firment, Managing Partner at A Cloud Guru |
| 16:45 | Collaboration through Mapping | Sal Freudenberg, Agile Specialist and Psychology Researcher |
| 17:00 | CLOSING PANEL: "The future of Mapping, who is it for?" | Benjamin, Sal, Danielle, Rachel. CHAIRED by Gen Ashley |
| 17:30 | Conference closes |


Frappe/ERPNext will have full authority of what you create.
The licensing will be determined by Frappe/ERPNext.
Indemnities: You will indemnify Frappe/ERPNext
and its affiliates, directors and employees against all liabilities,
damages, losses, costs, fees (including legal fees), and expenses
relating to any allegation or third-party legal proceeding to
the extent arising from:
Your acts or omissions related to applying for and participating in the Program
Your Submissions violating any rights of any other person or entity or any obligation you may have with them.
Not an Offer or Contract of Employment
You acknowledge that your participation in the Program is voluntary.
You acknowledge that no confidential, fiduciary, agency or other
relationship or implied-in-fact contract now exists between you and
Frappe/ERPNext or the Organizations and that no such relationship is
established by your Submissions to the Program.
You understand and agree that nothing in this Agreement may be construed
as an offer or contract of employment with either Frappe/ERPNext or any Organization.
Stipends: Frappe/ERPNext is not required to pay any stipends
to you if you breach this Agreement.
You understand and agree that nothing in this Agreement may be construed as an offer
or contract of employment with either Frappe/ERPNext or any Organization.
Assignment: You may not assign this Agreement or any part
of it without Frappe/ERPNext’s prior written consent. Frappe/ERPNext may assign
this Agreement or any part of it upon notification, which may be posted on the
Program Website or sent to the contact information you provided upon registration.
No Waiver: Neither party will be treated as having waived
any rights by not exercising (or delaying the exercise of) any rights under
this Agreement.
No Agency: This Agreement does not create any agency,
partnership, or joint venture between the parties.
No Third-Party Beneficiaries This Agreement does not
confer any benefits on any third party unless it expressly states that it does.
Amendments: Except as set forth in the Program Rules,
any amendment must be in writing, signed by both parties, and expressly
state that it is amending this Agreement.
Entire Agreement: This Agreement sets out all terms agreed
between the parties and supersedes all other agreements between the parties
relating to its subject matter. In entering into this Agreement neither party
has relied on, and neither party will have any right or remedy based on, any
statement, representation or warranty (whether made negligently or innocently),
except those expressly set out in this Agreement.
Severability: If any term (or part of a term) of this
Agreement is invalid, illegal or unenforceable, the rest of the Agreement
will remain in effect.
Translations In the event of any discrepancy between the
English version of this Agreement and a translated version, the English
version will govern.


DR. NO A Film Review Copyright Dragan Antulov 1999
Endless trailers for THE PHANTOM MENACE were telling us that every saga had a beginning. So was the case with the most enduring and probably the longest-running movie franchise in history - James Bond films. That series, that had spawned eighteen (or nineteen, depending on the count) films through almost four decades of its existence, was famous for its successful and almost always winning formula - spectacular action, exotic locations, plenty of beautiful (and promiscuous) women and impressive villains with megalomaniac ambitions. The formula didn't change through the years, but almost everything else did, including the actors playing the lead character. There were five of them, but almost everyone agrees that the original one, Sean Connery, represents the best incarnation of James Bond. The reputation of the lead actor followed the movies that introduced him - first five James Bond films are regarded as classics. On the other hand, the first among those classics, DR. NO, directed by Terrence Young in 1962, has relatively obscure reputation, being either ignored or not favourably compared with the other films of the series.
Relatively bad reputation of the film shouldn't be much of a surprise, although DR. NO happened to be a huge commercial hit in its time, big enough to launch both the series and the stellar career of Sean Connery. It was made on relatively low budget, with producers very doubtful of its future potential. Ian Fleming, the creator of the character, wasn't too thrilled about the producers' choice for the lead role, preferring more established actors like David Niven, Cary Grant or his own cousin Christopher Lee to relatively unknown Scot like Connery. The movie wasn't even supposed to be based on the novel DR. NO; producers had been forced to abandon their original choice THUNDERBALL because of the legal entanglements (that novel was later adapted twice). The insecurity of its creators and the lack of budget (at least relative to all the latter films) mirrored itself in the film, although Young, as a capable director, managed to hide most of it.
The plot begins in Jamaica, when British secret agent Strangways and his secretary get killed by some mysterious assassins. Chief of Secret Service, mysterious and grumpy M (played by Bernard Lee) summons one of his best men, agent James Bond (played by Connery), who is the perfect man for this job, equipped not only with the superior training, but also with the code name "007" with "00" that indicates the license to kill enemy agents without any legal procedures. As soon as Bond comes to Jamaica, he becomes the target of various assassins. He survives all attempts on his life and begins discovering the reasons why Strangways was killed. They all have something to do with the radio signals that sabotage American space program, and the source of this signals is most likely Crab Key, isolated island owned by mysterious Chinese character named Dr. No. After initial suspicions, he is joining forces with CIA agent Felix Leiter (played by Jack Lord), Bond and Leiter's assistant Quarrel (played by John Kitzmiller) travel to the island to investigate. There they stumble on Honey Ryder (played by Ursulla Andress), voluptuous shell hunter that would help them evade Dr. No's guards.
DR. NO has the every obligatory element of the Bond formula (action, exotic women, locations, villains) and it is as entertaining as an average Bond film, but something is missing. First of all, film lacks spectacle usually associated with the Bond classics. Jamaican locations and characters seem somewhat too real, too ordinary and many viewers, unaccustomed to Bond, would mistake this film for a conventional spy thriller. Realistic tone of the movie is also underlined with the use of local calypso music (which is also a nice opportunity to hear Jamaican sounds before that island became famous for its reggae.) Realism is here partly due to a limited budget (legendary Pinewood studios were used only for the last scenes of the film, with the sets rather lame compared to the latter Bond adventures), and partly due to Fleming being able to influence the film more than in all latter films. As a result, even the Bond character is closer to original Fleming's vision - he is cynical and scruples when it comes to achieving his goals.  On the other hand, DR. NO is more realistic than other Bond films because here 007 lacks his usual spy gadgets and must rely solely on his wits in order to survive. And the realism also works the other way around - Bond is perhaps meaner than in other films, but he also gets his comeuppance by having been tortured, beaten and humiliated more than usual.
Sean Connery was, of course, splendid in the role that clinched his career. His Bond is a classic Bond - stone-cold deadly killer, intelligent yet witty and loveable, able to bring every woman to his bed. First time we hear those immortal words "Bond, James Bond" we hear the very same confident voice that would be a trademark of this character for decades to come. Connery's charm is unstoppable; because of it, we are able to enjoy his presence and take for granted lines that would otherwise sound ridiculous and trashy. And the script by Richard Maibaum, Johanna Harwood and Berkley Maher was very suitable for Connery to show his acting abilities; non-Superman Bond in DR.NO even has some opportunity to express fear, panic and repulsion, something we don't see very often in the latter incarnations of his characters.
The other two obligatory characters - Bond's partner and Bond's chief opponent - weren't that lucky. Many say that Ursulla Andress, Swiss actress who had the honour of being the very first Bond girl, actually happens to be the best from the bunch. It is truth that the scene of bikini-clad Honey Ryder coming out of sea really belongs among classic Bond scenes. It is also truth that Ursulla Andress one of the shinier careers among all the Bond girls. But her character is ruined by the weak script and the writers not able to decide whether to treat her as a tough woman and equal partner to Bond, or just an ordinary damsel in distress. Joseph Wiseman as enigmatic Dr. No is also very good, but the script left too many plot holes concerning his intentions and didn't really explain some of his actions. The other characterisations are even worse - for example, Quarrel as Bond's sidekick has a role that borders parody and even some racial stereotyping. PC police of today probably wouldn't appreciate the fact that the all the villains, except one, happen to be dark-skinned or Asians.
DR. NO, seen by itself, is a still entertaining, but rather inferior Bond film. However, since it was the first in the series, it established the character of Bond, his trademarks, recognisable musical theme by John Barry and Monty Norman, and even some of the regular side characters (M, Miss Moneypenny). All that makes it essential for all those who want to be introduced to the series and all those who are already fans of Bond films.
RATING: 6/10 (++)
Review written on October 1st 1999
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Limited time — buy 2021 Pedalpalooza pennants and merch now! 2nd pre-sale ends June 4th at noon.
Buy merch


Bob is a public servant who spent 20 years serving the State of Maryland. He has served four terms in the Maryland House of Delegates, representing District 12B in Howard County. He currently sits on the Environmental Matters Committee. He graduated from Seton High School in Baltimore before earning a Bachelor of Arts degree in literature from the University of Maryland University College and a Juris Doctor degree from the University of Maryland School of Law. Bob practiced as an attorney before his election to the House of Delegates. At Search, he works as the chief legal counsel.


You may not be able to visit this page because of:
- an out-of-date bookmark/favourite
- a search engine that has an out-of-date listing for this site
- a mistyped address
- you have no access to this page
- The requested resource was not found.
- An error has occurred while processing your request.
Please try one of the following pages:
-
Home Page
If difficulties persist, please contact the System Administrator of this site.


from decorator import decorator
__all__ = ['validate_type']
class validate_base(object):
"""
Decorator to validate arguments.
Formal parameters that don't exist in the definition of the function
being decorated as well as actual arguments not being present when
the validation is called are silently ignored.
Readapted from: ::
https://github.com/OP2/PyOP2/
"""
def __init__(self, *checks):
self._checks = checks
def __call__(self, f):
def wrapper(f, *args, **kwargs):
from devito.parameters import configuration
if configuration["develop-mode"]:
self.nargs = f.__code__.co_argcount
self.defaults = f.__defaults__ or ()
self.varnames = f.__code__.co_varnames
self.file = f.__code__.co_filename
self.line = f.__code__.co_firstlineno + 1
self.check_args(args, kwargs)
return f(*args, **kwargs)
return decorator(wrapper, f)
def check_args(self, args, kwargs):
for argname, argcond, exception in self._checks:
# If the argument argname is not present in the decorated function
# silently ignore it
try:
i = self.varnames.index(argname)
except ValueError:
# No formal parameter argname
continue
# Try the argument by keyword first, and by position second.
# If the argument isn't given, silently ignore it.
try:
arg = kwargs.get(argname)
arg = arg or args[i]
except IndexError:
# No actual parameter argname
continue
# If the argument has a default value, also accept that (since the
# constructor will be able to deal with that)
default_index = i - self.nargs + len(self.defaults)
if default_index >= 0 and arg == self.defaults[default_index]:
continue
self.check_arg(arg, argcond, exception)
[docs]class validate_type(validate_base):
"""
Decorator to validate argument types.
The decorator expects one or more arguments, which are 3-tuples of
(name, type, exception), where name is the argument name in the
function being decorated, type is the argument type to be validated
and exception is the exception type to be raised if validation fails.
Readapted from: ::
https://github.com/OP2/PyOP2/
"""
def __init__(self, *checks):
processed = []
for i in checks:
try:
argname, argtype = i
processed.append((argname, argtype, TypeError))
except ValueError:
processed.append(i)
super(validate_type, self).__init__(*processed)
[docs] def check_arg(self, arg, argtype, exception):
if not isinstance(arg, argtype):
raise exception("%s:%d Parameter %s must be of type %r"
% (self.file, self.line, arg, argtype))


- Ness
- Configuration
You can include this library to your code file by typing the below code;
use Ness\Configuration
About Configuration #top
Ness PHP controls all system configurations from one point. This will help you manage your configurations easily and quickly. You can manage all configurations from one point and start as quickly as possible to write the main logic of your project and get rid of unneccesary configurations. Ness PHP also supports multi-config files, write configuration files as your needs and switch between them according your needs.
Configuration File #top
While a request made to Ness PHP, the framework initially loads the configuration file which is app_config.php by default. You can manage all Url security, app description and title or global variable definitions here.In next topic you can see a sample configuration file which is created by default installation of the framework. Please keep reading the documentation for understanding all basics for the configuration file.
Example Configuration File #top
Default app_config.php content and the basic changes you need to made in your installation;
<?php
/**
* Ness PHP Framework.
* A solid php framework for fast and secure web applications.
*
* @author Sinan SALIH
* @license MIT License
* @copyright Copyright (C) 2018-2019 Sinan SALIH
*/
use Ness\Configuration;
/*
* === [Environment Configuration ] ===
* This configuration is used to set the
* development environment for your project.
* You can set 2 types of environments;
* "development" OR "publish"
*/
Configuration::setEnvironment('development');
/*
* === [Application Folder ] ===
* This configuration is generally for security.
* If you need to change the folder name of your
* application you must set it here.
*/
Configuration::setApplicationFolder('Application');
/*
* === [Application Resource Files ] ===
* This function is used to set the
* path of the resource.xml file which is used
* to store static values for your projects(ex; strings, image paths etc)
* Note; the core app location ('Application' by default) is excluded from the value.
*/
Configuration::setResourceFile('Resources.xml');
/*
* === [Application URL ] ===
* This configuration is used to set your
* web sites url. For example if you create a
* application that will be run in root set url to: "http://www.examplesite.com/"
* If your application will be a sub module/application of other application set it like:
* "http://www.examplesite.com/my_module".
*/
Configuration::setApplicationUrl('http://localhost/nessphp');
/*
* === [Is Application Root ] ===
* If your application's url is not accessable by "www.siteexample.com"
* set this false.
*/
Configuration::setRoot(false);
/*
* === [ Application Name ] ===
* This configuration is used to set name of your application.
*/
Configuration::setTitle('Hello World');
/*
* === [ Application Version ] ===
* This configuration is used to set version number of your application.
*/
Configuration::setVersion('1.0.0');
/*
* === [ Application Description ] ===
* This configuration is used to set description of your application.
*/
Configuration::setDescription('Ness PHP is a solid web framework for fast and secure web applications.');
/*
* === [ Application Maintenance Mode ] ===
* This configuration is used to set maintenance mode of your application.
* if Maintenance Mode is enabled user will see a message on screen like
* 'Under Maintenance'
*/
Configuration::enableMaintenance(false);
/**
* === [ Application Url Protection ] ===
* Protect your website from unwanted parameters, You can enable
* this feature for preventing visit with unwanted parameters
* supplied in array below.
*/
Configuration::setUrlProtected(false);
Configuration::UnwantedParameters(array("'"));
/**---------------------------------------------------------*/
/** Application Class */
/**---------------------------------------------------------*/
class Application
{
/**
* This method is called when your application is loaded. You can register
* your object mappers or do other configurations.
*/
public function Register()
{
}
}
Application Register #top
Application Class is an entry point for your code, after the installation of core framework modules the function(s) in this class will be run. You must define this class in a configuration file and only acceptable and auto run function is Register() function. This function is used to register globally variables, set object mappers, set pin checkers etc.
For example; Your app needs a database connection and you do not want to write username and password in each connection. You can define a object mapper in register function and access globally this variable in every place of your code.
<?php
use Ness\Configuration;
use Ness\Tool\ObjectMapper as omap;
...
/**---------------------------------------------------------*/
/** Application Class */
/**---------------------------------------------------------*/
class Application
{
/**
* This method is called when your application is loaded. You can register
* your object mappers or do other configurations.
*/
public function Register()
{
omap::MapNew("database", array(
"username"=>"db_user_name",
"password"=>"db_pass",
"host"=>"localhost"
));
}
}
Class Methods #top
setEnvironment
Configuration::setEnvironment(string $param);
| This function is used to set development environment.Accepted values: "development", "publish", "default". | ||
| Return | void | |
| Parameters | $param String |
setApplicationFolder & getApplicationFolder
Configuration::setApplicationFolder(string $param);
| This function is used to set application folder for Ness framework's current config. | ||
| Return | void | |
| Parameters | $param String |
Configuration::getApplicationFolder();
| This function is used to return application folder for Ness framework's current config. | ||
| Return | String | |
| Parameters | None |
setRoot() & isRoot()
Configuration::setRoot(Boolean $param);
| This function is used to determine if your application in server is in root directory or not. Set true if your app will run in root directory | ||
| Return | void | |
| Parameters | $param Boolean |
Configuration::isRoot();
| you can use isRoot() to check the option; | ||
| Return | Boolean | |
| Parameters | None |
setApplicationUrl() & getApplicationUrl()
Configuration::setApplicationUrl(string $prm="http://localhost/");
| This function is very important, when you use response and route class your redirect url will be get from here. | ||
| Return | void | |
| Parameters | $prm String |
Configuration::getApplicationUrl();
| you can use getApplicationUrl() to return this value; | ||
| Return | String | |
| Parameters | None |
setResourceFile() & getResourceFile()
Set resource file location of Ness framework.Configuration::setResourceFile(string $prm);
| Return | void | |
| Parameters | $prm String |
Get the value with
Configuration::getResourceFile() : string
setUrlProtected() & isUrlProtected()
This function is used to prevent web site from unwanted url parameters.Configuration::setUrlProtected(Boolean $prm);
| Return | void | |
| Parameters | $prm Boolean |
This is a security setting. This setting must be activated in order to protect your web address from the parameters you do not want, and these special characters must be set by the method that follows
Configuration::isUrlProtected() : Boolean
UnwantedParameters()
Set an array for unwanted characters or wordsConfiguration::UnwantedParameters(Array $prm);
| Return | void | |
| Parameters | $prm Array |
Example
Configuration::UnwantedParameters(array("'", "_", "~"));
That means if your website gets visited with one of this three parameters user will be redirected.
setTitle() & getTitle()
This function is used to set a title/name for your project.Configuration::setTitle(string $prm);
| Return | void | |
| Parameters | $prm String |
Get the value with
Configuration::getTitle() : string
setVersion() & getVersion()
This function is used to set a version numer for your project.Configuration::setVersion(string $prm);
| Return | void | |
| Parameters | $prm String |
Get the value with
Configuration::getVersion() : string
setDescription() & getDescription()
This function is used to set a description for your project.Configuration::setDescription(string $prm);
| Return | void | |
| Parameters | $prm String |
Get the value with
Configuration::getDescription() : string
Enable & Design Maintenance Mode #top
This configuration is used to set maintenance mode of your application.if Maintenance Mode is enabled user will see a message on screen like 'Under Maintenance'.
Configuration::enableMaintenance(true);
and set true.
The view file for the 'Maintenance Mode' can be found in; [project_folder]/Application/View/systemArea/maintenancemodeView.php
and the controller for managing the maintenance mode can be found in[project_folder]/Application/Controller/ErrorManagement/MaintenanceMode.php


<gs-text></gs-text>
Without attributes the <gs-text>
will have the following behaviors:
[maxlength=""]
:
To set the maximum length of characters, use the [maxlength=""]
attribute.
[onchange=""]
:
To run javascript when the value changes, use the [onchange=""]
attribute.
[value=""]
:
To set the default value for the <gs-text>
, use the [value=""]
attribute.
[qs=""]
:
The [qs=""]
attribute can be used to sync the <gs-text>
with the query string.
[placeholder]
:
The [placeholder]
attribute can be used when you don't want to use a label to explain the purpose of the control to the user. (The label and the placeholder can be used together, that's just not what normally happens.)
[mini]
:
Sometimes you are limited on space. The [mini]
attribute can be used to make the <gs-text>
smaller.
[tabindex=""]
:
With the [tabindex=""]
attribute, you can control what order your controls are tabbed to.
[autocorrect=""]
/[autocapitalize=""]
/[autocomplete=""]
Attribute:
If you don't want spelling to autocorrect, you can use the html5 [autocorrect="off"]
attribute. See also html5 [autocapitalize="off"]
and [autocomplete="off"]
.
[disabled]
:
With the [disabled]
attribute, you can control whether or not you can use the control.


| Opcode/Instruction | Op/En | 64/32 bit Mode Support | CPUID Feature Flag | Description |
|---|---|---|---|---|
|
0F E8 /r1 PSUBSB mm, mm/m64 |
RM | V/V | MMX | Subtract signed packed bytes in mm/m64 from signed packed bytes in mm and saturate results. |
|
66 0F E8 /r PSUBSB xmm1, xmm2/m128 |
RM | V/V | SSE2 | Subtract packed signed byte integers in xmm2/m128 from packed signed byte integers in xmm1 and saturate results. |
|
0F E9 /r1 PSUBSW mm, mm/m64 |
RM | V/V | MMX | Subtract signed packed words in mm/m64 from signed packed words in mm and saturate results. |
|
66 0F E9 /r PSUBSW xmm1, xmm2/m128 |
RM | V/V | SSE2 | Subtract packed signed word integers in xmm2/m128 from packed signed word integers in xmm1 and saturate results. |
|
VEX.NDS.128.66.0F.WIG E8 /r VPSUBSB xmm1, xmm2, xmm3/m128 |
RVM | V/V | AVX | Subtract packed signed byte integers in xmm3/m128 from packed signed byte integers in xmm2 and saturate results. |
|
VEX.NDS.128.66.0F.WIG E9 /r VPSUBSW xmm1, xmm2, xmm3/m128 |
RVM | V/V | AVX | Subtract packed signed word integers in xmm3/m128 from packed signed word integers in xmm2 and saturate results. |
|
VEX.NDS.256.66.0F.WIG E8 /r VPSUBSB ymm1, ymm2, ymm3/m256 |
RVM | V/V | AVX2 | Subtract packed signed byte integers in ymm3/m256 from packed signed byte integers in ymm2 and saturate results. |
|
VEX.NDS.256.66.0F.WIG E9 /r VPSUBSW ymm1, ymm2, ymm3/m256 |
RVM | V/V | AVX2 | Subtract packed signed word integers in ymm3/m256 from packed signed word integers in ymm2 and saturate results. |
|
EVEX.NDS.128.66.0F.WIG E8 /r VPSUBSB xmm1 {k1}{z}, xmm2, xmm3/m128 |
FVM | V/V | AVX512VL AVX512BW | Subtract packed signed byte integers in xmm3/m128 from packed signed byte integers in xmm2 and saturate results and store in xmm1 using writemask k1. |
|
EVEX.NDS.256.66.0F.WIG E8 /r VPSUBSB ymm1 {k1}{z}, ymm2, ymm3/m256 EVEX.NDS.512.66.0F.WIG E8 /r VPSUBSB zmm1 {k1}{z}, zmm2, zmm3/m512 |
FVM FVM |
V/V V/V |
AVX512VL AVX512BW AVX512BW Subtract packed signed byte integers in |
Subtract packed signed byte integers in ymm3/m256 from packed signed byte integers in ymm2 and saturate results and store in ymm1 using writemask k1. zmm3/m512 from packed signed byte integers in zmm2 and saturate results and store in zmm1 using writemask k1. |
|
EVEX.NDS.128.66.0F.WIG E9 /r VPSUBSW xmm1 {k1}{z}, xmm2, xmm3/m128 |
FVM | V/V | AVX512VL AVX512BW | Subtract packed signed word integers in xmm3/m128 from packed signed word integers in xmm2 and saturate results and store in xmm1 using writemask k1. |
|
EVEX.NDS.256.66.0F.WIG E9 /r VPSUBSW ymm1 {k1}{z}, ymm2, ymm3/m256 |
FVM | V/V | AVX512VL AVX512BW | Subtract packed signed word integers in ymm3/m256 from packed signed word integers in ymm2 and saturate results and store in ymm1 using writemask k1. |
|
EVEX.NDS.512.66.0F.WIG E9 /r VPSUBSW zmm1 {k1}{z}, zmm2, zmm3/m512 in zmm2 and saturate results and store in zmm1 using writemask k1. |
FVM | V/V |
AVX512BW Subtract packed signed word integers in zmm3/m512 from packed signed word integers |
NOTES:
1. See note in Section 2.4, “AVX and SSE Instruction Exception Specification” in the Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 2A and Section 22.25.3, “Exception Conditions of Legacy SIMD Instructions Operating on MMX Registers” in the Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 3A.
| Op/En | Operand 1 | Operand 2 | Operand 3 | Operand 4 |
| RM | ModRM:reg (r, w) | ModRM:r/m (r) | NA | NA |
| RVM | ModRM:reg (w) | VEX.vvvv (r) | ModRM:r/m (r) | NA |
| FVM | ModRM:reg (w) | EVEX.vvvv (r) | ModRM:r/m (r) | NA |
Performs a SIMD subtract of the packed signed integers of the source operand (second operand) from the packed signed integers of the destination operand (first operand), and stores the packed integer results in the destination operand. See Figure 9-4 in the Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 1, for an illustration of a SIMD operation. Overflow is handled with signed saturation, as described in the following para-graphs.
The (V)PSUBSB instruction subtracts packed signed byte integers. When an individual byte result is beyond the range of a signed byte integer (that is, greater than 7FH or less than 80H), the saturated value of 7FH or 80H, respectively, is written to the destination operand.
The (V)PSUBSW instruction subtracts packed signed word integers. When an individual word result is beyond the range of a signed word integer (that is, greater than 7FFFH or less than 8000H), the saturated value of 7FFFH or 8000H, respectively, is written to the destination operand.
In 64-bit mode and not encoded with VEX/EVEX, using a REX prefix in the form of REX.R permits this instruction to access additional registers (XMM8-XMM15).
Legacy SSE version 64-bit operand: The destination operand must be an MMX technology register and the source operand can be either an MMX technology register or a 64-bit memory location.
128-bit Legacy SSE version: The second source operand is an XMM register or a 128-bit memory location. The first source operand and destination operands are XMM registers. Bits (VLMAX-1:128) of the corresponding YMM desti-nation register remain unchanged.
VEX.128 encoded version: The second source operand is an XMM register or a 128-bit memory location. The first source operand and destination operands are XMM registers. Bits (VLMAX-1:128) of the destination YMM register are zeroed.
VEX.256 encoded versions: The second source operand is an YMM register or an 256-bit memory location. The first source operand and destination operands are YMM registers. Bits (MAX_VL-1:256) of the corresponding ZMM register are zeroed.
EVEX encoded version: The second source operand is an ZMM/YMM/XMM register or an 512/256/128-bit memory location. The first source operand and destination operands are ZMM/YMM/XMM registers. The destination is condi-tionally updated with writemask k1.
PSUBSB (with 64-bit operands)
DEST[7:0] ← SaturateToSignedByte (DEST[7:0] − SRC (7:0]); (* Repeat subtract operation for 2nd through 7th bytes *) DEST[63:56] ← SaturateToSignedByte (DEST[63:56] − SRC[63:56] );
PSUBSW (with 64-bit operands)
DEST[15:0] ← SaturateToSignedWord (DEST[15:0] − SRC[15:0] ); (* Repeat subtract operation for 2nd and 7th words *) DEST[63:48] ← SaturateToSignedWord (DEST[63:48] − SRC[63:48] );
VPSUBSB (EVEX encoded versions)
(KL, VL) = (16, 128), (32, 256), (64, 512) FOR j (cid:197) 0 TO KL-1 i (cid:197) j * 8; IF k1[j] OR *no writemask* THEN DEST[i+7:i] (cid:197) SaturateToSignedByte (SRC1[i+7:i] - SRC2[i+7:i]) ELSE IF *merging-masking* ; merging-masking THEN *DEST[i+7:i] remains unchanged* ELSE *zeroing-masking* ; zeroing-masking DEST[i+7:i] (cid:197) 0; FI FI; ENDFOR; DEST[MAX_VL-1:VL] (cid:197) 0
VPSUBSW (EVEX encoded versions)
(KL, VL) = (8, 128), (16, 256), (32, 512) FOR j (cid:197) 0 TO KL-1 i (cid:197) j * 16 IF k1[j] OR *no writemask* THEN DEST[i+15:i] (cid:197) SaturateToSignedWord (SRC1[i+15:i] - SRC2[i+15:i]) ELSE IF *merging-masking* ; merging-masking THEN *DEST[i+15:i] remains unchanged* ELSE *zeroing-masking* ; zeroing-masking DEST[i+15:i] (cid:197) 0; FI FI; ENDFOR; DEST[MAX_VL-1:VL] (cid:197) 0;
VPSUBSB (VEX.256 encoded version)
DEST[7:0] (cid:197) SaturateToSignedByte (SRC1[7:0] - SRC2[7:0]); (* Repeat subtract operation for 2nd through 31th bytes *) DEST[255:248] (cid:197) SaturateToSignedByte (SRC1[255:248] - SRC2[255:248]); DEST[MAX_VL-1:256] (cid:197)0;
VPSUBSB (VEX.128 encoded version)
DEST[7:0] (cid:197) SaturateToSignedByte (SRC1[7:0] - SRC2[7:0]); (* Repeat subtract operation for 2nd through 14th bytes *) DEST[127:120] (cid:197) SaturateToSignedByte (SRC1[127:120] - SRC2[127:120]); DEST[MAX_VL-1:128] (cid:197) 0;
PSUBSB (128-bit Legacy SSE Version)
DEST[7:0] (cid:197) SaturateToSignedByte (DEST[7:0] - SRC[7:0]); (* Repeat subtract operation for 2nd through 14th bytes *) DEST[127:120] (cid:197) SaturateToSignedByte (DEST[127:120] - SRC[127:120]); DEST[MAX_VL-1:128] (Unmodified);
VPSUBSW (VEX.256 encoded version)
DEST[15:0] (cid:197) SaturateToSignedWord (SRC1[15:0] - SRC2[15:0]); (* Repeat subtract operation for 2nd through 15th words *) DEST[255:240] (cid:197) SaturateToSignedWord (SRC1[255:240] - SRC2[255:240]); DEST[MAX_VL-1:256] (cid:197) 0;
VPSUBSW (VEX.128 encoded version)
DEST[15:0] (cid:197) SaturateToSignedWord (SRC1[15:0] - SRC2[15:0]); (* Repeat subtract operation for 2nd through 7th words *) DEST[127:112] (cid:197) SaturateToSignedWord (SRC1[127:112] - SRC2[127:112]); DEST[MAX_VL-1:128] (cid:197) 0;
PSUBSW (128-bit Legacy SSE Version)
DEST[15:0] (cid:197) SaturateToSignedWord (DEST[15:0] - SRC[15:0]); (* Repeat subtract operation for 2nd through 7th words *) DEST[127:112] (cid:197) SaturateToSignedWord (DEST[127:112] - SRC[127:112]); DEST[MAX_VL-1:128] (Unmodified);
VPSUBSB __m512i _mm512_subs_epi8(__m512i a, __m512i b);
VPSUBSB __m512i _mm512_mask_subs_epi8(__m512i s, __mmask64 k, __m512i a, __m512i b);
VPSUBSB __m512i _mm512_maskz_subs_epi8( __mmask64 k, __m512i a, __m512i b);
VPSUBSB __m256i _mm256_mask_subs_epi8(__m256i s, __mmask32 k, __m256i a, __m256i b);
VPSUBSB __m256i _mm256_maskz_subs_epi8( __mmask32 k, __m256i a, __m256i b);
VPSUBSB __m128i _mm_mask_subs_epi8(__m128i s, __mmask16 k, __m128i a, __m128i b);
VPSUBSB __m128i _mm_maskz_subs_epi8( __mmask16 k, __m128i a, __m128i b);
VPSUBSW __m512i _mm512_subs_epi16(__m512i a, __m512i b);
VPSUBSW __m512i _mm512_mask_subs_epi16(__m512i s, __mmask32 k, __m512i a, __m512i b);
VPSUBSW __m512i _mm512_maskz_subs_epi16( __mmask32 k, __m512i a, __m512i b);
VPSUBSW __m256i _mm256_mask_subs_epi16(__m256i s, __mmask16 k, __m256i a, __m256i b);
VPSUBSW __m256i _mm256_maskz_subs_epi16( __mmask16 k, __m256i a, __m256i b);
VPSUBSW __m128i _mm_mask_subs_epi16(__m128i s, __mmask8 k, __m128i a, __m128i b);
VPSUBSW __m128i _mm_maskz_subs_epi16( __mmask8 k, __m128i a, __m128i b);
PSUBSB:__m64 _mm_subs_pi8(__m64 m1, __m64 m2)
(V)PSUBSB:__m128i _mm_subs_epi8(__m128i m1, __m128i m2)
VPSUBSB:__m256i _mm256_subs_epi8(__m256i m1, __m256i m2)
PSUBSW:__m64 _mm_subs_pi16(__m64 m1, __m64 m2)
(V)PSUBSW:__m128i _mm_subs_epi16(__m128i m1, __m128i m2)
VPSUBSW:__m256i _mm256_subs_epi16(__m256i m1, __m256i m2)
None.
None.
Non-EVEX-encoded instruction, see Exceptions Type 4.
EVEX-encoded instruction, see Exceptions Type E4.nb.


Author : Ian Taylor Output Types : VectorType Date : 12 July 2000
The MultiGraph unit creates several Grapher units and displays them within one frame. A new instance of Grapher is created for each input node.


| Interface | Description |
|---|---|
| Accumulator<T> |
An interface that allows UDFs that take a bag to accumulate tuples in chunks rather than take
the whole set at once.
|
| Algebraic |
An interface to declare that an EvalFunc's
calculation can be decomposed into intitial, intermediate, and final steps.
|
| CollectableLoadFunc |
This interface implemented by a
LoadFunc implementations indicates to
Pig that it has the capability to load data such that all instances of a key
will occur in same split. |
| ErrorHandler |
The interface that handles errors thrown by the
StoreFuncInterface.putNext(Tuple) |
| ErrorHandling |
A
StoreFunc should implement this interface to enable handling errors
during StoreFunc#putNext(Tuple) |
| ExceptionalFunction<S,T,E extends Exception> |
An interface that captures a unit of work against an item where an exception might be thrown.
|
| ExecType |
The type of query execution.
|
| Function<S,T> |
A convenience typedef that ties into both google's
Function and
ExceptionalFunction . |
| IndexableLoadFunc |
This class is intended for use by LoadFunc implementations
which have an internal index for sorted data and can use the index
to support merge join in Pig.
|
| LoadCaster |
An interface that provides cast implementations for load functions.
|
| LoadMetadata |
This interface defines how to retrieve metadata related to data to be loaded.
|
| LoadPredicatePushdown |
This interface defines how a loader can support predicate pushdown.
|
| LoadPushDown |
This interface defines how to communicate to Pig what functionality can
be pushed into the loader.
|
| LoadStoreCaster |
This is just a union interface of LoadCaster and StoreCaster,
made available for simplicity.
|
| NonFSLoadFunc |
Marker interface to distinguish LoadFunc implementations that don't use file system sources.
|
| OrderedLoadFunc |
Implementing this interface indicates to Pig that a given loader
can be used for MergeJoin.
|
| OverwritableStoreFunc |
A
StoreFunc should implement this interface to enable overwriting its
store/output location if it already exists. |
| PigToStream | Deprecated
Use
PigStreamingBase |
| StoreCaster |
An interface that provides methods for converting Pig internal types to byte[].
|
| StoreFuncInterface |
StoreFuncs take records from Pig's processing and store them into a data store.
|
| StoreMetadata |
This interface defines how to write metadata related to data to be stored.
|
| StoreResources |
This interface allow StoreFunc to specify resources needed
in distributed cache.
|
| StreamToPig | Deprecated
Use
PigStreamingBase |
| TerminatingAccumulator<T> |
This is an interface which, if implemented, allows an Accumulator
function to signal that it can terminate early.
|
| Class | Description |
|---|---|
| AccumulatorEvalFunc<T> |
This class is used to provide a free implementation of the EvalFunc exec function given
implementation of the Accumulator interface.
|
| AlgebraicEvalFunc<T> |
This class is used to provide a free implementation of the Accumulator interface
and EvalFunc class in the case of an Algebraic function.
|
| ComparisonFunc | Deprecated |
| CounterBasedErrorHandler | |
| EvalFunc<T> |
The class is used to implement functions to be applied to
fields in a dataset.
|
| ExecTypeProvider | |
| Expression |
A class to communicate Filter expressions to LoadFuncs.
|
| Expression.BetweenExpression | |
| Expression.BinaryExpression | |
| Expression.Column | |
| Expression.Const | |
| Expression.InExpression | |
| Expression.UnaryExpression | |
| FileInputLoadFunc |
This class provides an implementation of OrderedLoadFunc interface
which can be optionally re-used by LoadFuncs that use FileInputFormat, by
having this as a super class
|
| FileSplitComparable |
This class represents a relative position in a file.
|
| FilterFunc | |
| FuncSpec |
Class to represent a UDF specification.
|
| IteratingAccumulatorEvalFunc<T> |
This class provides a much more intuitive way to write Accumulator UDFs.
For example, you could express IsEmpty as follows: |
| JVMReuseImpl | |
| JVMReuseManager |
This class is used to manage JVM Reuse in case of execution engines like Tez
and Spark.
|
| LoadFunc |
A LoadFunc loads data into Pig.
|
| LoadFuncMetadataWrapper |
Convenience class to extend when decorating a class that extends LoadFunc and
implements LoadMetadata.
|
| LoadFuncWrapper |
Convenience class to extend when decorating a LoadFunc.
|
| LoadPushDown.RequiredField |
Describes a field that is required to execute a scripts.
|
| LoadPushDown.RequiredFieldList |
List of fields that Pig knows to be required to executed a script.
|
| LoadPushDown.RequiredFieldResponse |
Indicates whether the loader will return the requested fields or all fields.
|
| Main |
Main class for Pig engine.
|
| PigConfiguration |
Container for static configuration strings, defaults, etc.
|
| PigConstants | |
| PigRunner |
A utility to help run PIG scripts within a Java program.
|
| PigRunner.ReturnCode | |
| PigServer |
A class for Java programs to connect to Pig.
|
| PigStreamingBase |
The interface is used for the custom mapping of
- a
Tuple to a byte array. |
| PrimitiveEvalFunc<IN,OUT> |
Base class for simple Pig UDFs that are functions of primitive types IN to OUT.
|
| ResourceSchema |
A represenation of a schema used to communicate with load and store functions.
|
| ResourceSchema.ResourceFieldSchema | |
| ResourceStatistics |
An class that represents statistics about data to be loaded or stored.
|
| ResourceStatistics.ResourceFieldStatistics |
Statistics for a given field in the data.
|
| SortColInfo |
A class representing information about a sort column in
SortInfo |
| SortInfo |
Class to communicate sort column information based on
order by statment's sort columns and schema
|
| StoreFunc |
StoreFuncs take records from Pig's processing and store them into a data store.
|
| StoreFuncMetadataWrapper |
Convenience class to extend when decorating a class that implements both StoreFunc and
StoreMetadata.
|
| StoreFuncWrapper |
Convenience class to extend when decorating a StoreFunc.
|
| TypedOutputEvalFunc<OUT> |
Base class for Pig UDFs that are functions from Tuples to generic type OUT.
|
| Enum | Description |
|---|---|
| EvalFunc.SchemaType |
EvalFunc's schema type.
|
| Expression.OpType | |
| LoadPushDown.OperatorSet |
Set of possible operations that Pig can push down to a loader.
|
| PigCounters |
The following enum will contain the general counters that pig uses.
|
| PigWarning |
An enum to enumerate the warning types in Pig
|
| ResourceSchema.Order | |
| SortColInfo.Order |
| Exception | Description |
|---|---|
| PigException |
All exceptions in Pig are encapsulated in the
PigException
class. |
| Annotation Type | Description |
|---|---|
| StaticDataCleanup |
Public interfaces and classes for Pig.
PigServer
is the interface to Pig for use by other java
programs. Other interfaces and classes in this package are for use by users
when implementing user defined functions.
Copyright © 2007-2017 The Apache Software Foundation


Static Public Member Functions | |
| static synchronized Configure | createInstance () throws IOException |
| static Configure | getInstance () throws IOException |
| static void | setValues (Properties p) |
| static Properties | loadProperties () throws IOException |
Static Public Attributes | |
| static String | ZIGBEE_PORT |
| static String | DB_UN |
| static String | DB_PASS |
| static String | DB_DRIVER |
| static String | DB_URL |
| static String | SMS_UN |
| static String | SMS_PASS |
| static String | SMS_MSG |
| static String | SMS_NUM |
| static Integer | NUM_BOTS |
| static Boolean | CLEAR_DB |
| static String | TEST_PORT1 |
| static String | TEST_PORT2 |
Static Package Attributes | |
| static Configure | instance = null |
This is a standard class in most Java programs for storing and retreiving parameters and values which would have otherwise been hardcoded. This class reads a text file config.properties which is simply a list of paramenters and their properties. Everywhere in the code these parameters are accessed through this class only. If any of these paraameters have to be changed we only need to do it in this tex file.
Definition at line 36 of file Configure.java.
| static synchronized Configure pss::configuration::Configure::createInstance | ( | ) | throws IOException [inline, static] |
| static Configure pss::configuration::Configure::getInstance | ( | ) | throws IOException [inline, static] |
| static Properties pss::configuration::Configure::loadProperties | ( | ) | throws IOException [inline, static] |
Loads properties and values from configuration file
| IOException |
Definition at line 147 of file Configure.java.
| static void pss::configuration::Configure::setValues | ( | Properties | p | ) | [inline, static] |
Set values of a property
| p |
Definition at line 126 of file Configure.java.
Boolean pss::configuration::Configure::CLEAR_DB [static] |
Flag indicating whether the existing database should be completely cleared and a new one created from start. Can be true or false
Definition at line 83 of file Configure.java.
String pss::configuration::Configure::DB_DRIVER [static] |
Address of the MySQL JDBC driver.
Definition at line 53 of file Configure.java.
String pss::configuration::Configure::DB_PASS [static] |
Password for accessing MySQL database
Definition at line 49 of file Configure.java.
String pss::configuration::Configure::DB_UN [static] |
Username for accessing MySQL database
Definition at line 45 of file Configure.java.
String pss::configuration::Configure::DB_URL [static] |
URL of the SQL database
Definition at line 57 of file Configure.java.
Configure pss::configuration::Configure::instance = null [static, package] |
Definition at line 94 of file Configure.java.
Integer pss::configuration::Configure::NUM_BOTS [static] |
Number of serving (nurse) bots
Definition at line 78 of file Configure.java.
String pss::configuration::Configure::SMS_MSG [static] |
Message to be sent by SMS
Definition at line 70 of file Configure.java.
String pss::configuration::Configure::SMS_NUM [static] |
Phone Number to which the SMS must be sent.
Definition at line 74 of file Configure.java.
String pss::configuration::Configure::SMS_PASS [static] |
Password for the SMS Gateway
Definition at line 66 of file Configure.java.
String pss::configuration::Configure::SMS_UN [static] |
Username for the SMS Gateway
Definition at line 62 of file Configure.java.
String pss::configuration::Configure::TEST_PORT1 [static] |
USB Serial Port used for Simulating Bot 1 during testing using simulation . Same as PORT above.
Definition at line 89 of file Configure.java.
String pss::configuration::Configure::TEST_PORT2 [static] |
USB Serial Port used for Simulating Bot 2 during testing using simulation. Same as PORT above.
Definition at line 93 of file Configure.java.
String pss::configuration::Configure::ZIGBEE_PORT [static] |
Address of Serial USB PORT on server to which the Zigbee module has been connected
Example : /dev/tty0
Definition at line 41 of file Configure.java.


Preparation time
1-2 hours
Cooking time
30 mins to 1 hour
Serves
Serves 4
Dietary
This stunning autumnal vegetarian ravioli with amaretti biscuits sounds unusual but is very traditional. And delicious!
For the pasta, blend the flour, salt, freshly ground black pepper, eggs and olive oil in a food processor, pulsing until the dough resembles breadcrumbs.
Turn out the dough onto a lightly floured work surface and pull together into a dough, then knead for five minutes until smooth and elastic.
Place the dough into a bowl, cover the bowl with cling film and leave to rest in the fridge for 30 minutes.
Dust a pasta machine with flour. Set the pasta machine to its widest setting, then feed the chilled dough through the machine, turning the handle with one hand and holding the dough as it comes through the machine with the other. Change the setting on the pasta machine to the next-widest setting, flour it again and feed the pasta sheet through the machine again, as before. Repeat this process 3-4 more times, flouring the machine and decreasing the width of the rollers each time.
Place the sheet of pasta dough onto a floured work surface and cut into a 40cm x 6cm (16in x 2in) rectangle. Cut equal-sized squares from the rectangle, about 6cm/2in wide.
For the pumpkin filling, preheat the oven to 210C/410F/Gas 7.
Place the pumpkin chunks into a roasting tin. Drizzle with olive oil and season, to taste, with salt and freshly ground black pepper.
Roast the pumpkin in the oven for 20 minutes, or until tender.
Remove the roasted pumpkin from the oven and set aside to cool slightly. Transfer the roasted pumpkin pieces to a food processor and blend to a purée.
Transfer the purée to a saucepan and place over a low-medium heat for a few minutes - this will help to remove any excess moisture. Set aside and allow to cool.
When the purée has cooled, stir in the crushed amaretti biscuits, lemon juice and ground ginger and add salt and freshly ground black pepper to taste. Line a baking tray with baking paper.
Place one teaspoonful of the mixture in the centre of each pasta square. Brush the edges of the pasta square with a little water.
Place another pasta square over the top of the filled pasta square and press down gently around the filling, pressing out any air bubbles. Press the edges flat to seal and trim off any overlap.
Repeat the process with the remaining pasta squares and filling. Place the ravioli onto the lined baking tray until you're ready to cook them.
For the sage beurre noisette, heat a non-reactive frying pan until hot, add the butter and heat until it turns a nut-brown colour.
Add the lemon juice and a pinch of salt and freshly ground black pepper and then remove from the heat.
Heat a separate frying pan until hot, add a little olive oil and the diced pumpkin and fry over a medium heat until golden-brown and just tender.
Add the pine nuts and fry for another more minute, or until just browned. Season with salt and freshly ground black pepper.
Heat 1cm/½in of vegetable oil in a frying pan until just shimmering, then add the sage leaves and fry for 20 seconds, or until just browned.
Remove the sage leaves using a slotted spoon and set aside to drain on a plate lined with kitchen paper.
To cook the ravioli, place them, a few at a time, into a large saucepan of salted, boiling water and cook for 1-2 minutes, or until they float back to the surface. Drain.
To serve, toss the drained ravioli gently with the beurre noisette. Place five ravioli onto each plate, then spoon over the beurre noisette and a few sage leaves. Top with the fried pumpkin, pine nuts and some grated parmesan.


At present, my most interesting project is javabat.com which is an experimental online code-practice tool, where you can play with little sections of code in the browser.
I'm a lecturer in the CS department, and I also work part-time at the world's greatest search engine.
|
EMail<EMAIL_ADDRESS>Phone:<PHONE_NUMBER>
Office: Gates 190 -- first floor in the South facing "B" wing.
My current office hours are always listed on the course pages
of whatever I'm teaching, but in fact I'm generally
around Mon, Wed, Fri. Feel free to call or stop by.
Map to my office.
Consider the words... "sunny, "tropical," "tawny," and of course "fruity!" -- no other big house in the greater Menlo Park area comes to mind quicker than the Big Happy Home (especially when you add in words like "couch," "ESPN," and "burrito.")
Of course everyone's personality can be reduced to a paragraph! I like
talking, reading, playing, teaching, snacking, and building things
which seems to match up pretty well with my job as a lecturer in the
Computer Science department. The funniest thing every said about me
was by Liz Peters who described me as... "He's 5'8, but he plays 5'9."
These little self-personality-summaries combine all the charm of
writing a college application essay with all the truthfulness and
self-deception of a singles add-- so I'll leave it at that and you're
welcome to track me down and say hello in person which is pretty easy
since I have office hours that are deserted except right before
assignments.
I used to live in a big blue house in the Big Happy Home (BHH) in Menlo Park with a bunch of cheerful young
folks/hoodlums-- where "young" is defined in the traditional way to be
however old I am currently. Then our landlord decided that he wanted
to move back in, which began the tale of horror of finding a place to
live in the Bay Area. That unholy epic ended with our finding the BHH
2.0, and the whole tragedy is amply documented in my haiku ("Evil
Ex-Landlord") found on the flyer for our BHH 2.0 housewarming party in
the BHH Document Archive.
The official BHH page is
now a living ruin -- our Mrs. Bates -- a testament to a time back when
we were fun! There's a secondary BHH Documents archive
including old party flyers that help reinforce the past-tense nature
of my fun-having days!
I've put in some more 108 type quotes now that I'm teaching it for the umpteenth time.
"Committees can criticize, but they cannot create."
(Ogilvy on Advertising)
"Sleep optional but not recommended."
-CS107 student
"Logic is a system whereby one may go wrong with confidence."
-Charles Kettering
"We don't have time to stop for gas--
we're already late."
-Old software project planning proverb via Mike Cleron
"Experience is what you get when you didn't get what you wanted."
-Unknown
"Plan to throw one away."
- Fred Brooks
"The two most important tools an architect has are the eraser in the drawing room and the sledge hammer on the construction site."
- Frank Lloyd Wright
"Hardware is just software that's hard to edit."
- Unknown
"This time for sure."
- Common phrase among computer programmers and used-car salespeople.
Big Happy Home
The great and brave story of the BHH 2.0 ends in the swampy atmosphere of
a little drama I call "booted out by landlord, yet again," for which
there is no haiku as yet, but there is a flyer.
Quotes


--- layout: post title: Welch Foundation Research Grant! html: True image: /img/can-cenik-cprit-award-2.jpg bigimgasas: /img/can-cenik-cprit-award-2.jpg summary: Can receives a 3-year Welch Foundation Grant. ---
Can has been awarded a 3-year research grant from the Robert A. Welch Foundation. We are grateful for all these generous grants making our research possible.


Satoru Iwata (Japanese: 岩田 聡, Hepburn: Iwata Satoru, December 6, 1959 – July 11, 2015) was a Japanese video game programmer and businessman who served as the fourth president and chief executive officer (CEO) of Nintendo. He is widely regarded as a major contributor in broadening the appeal of video games to a wider audience by focusing on novel and entertaining games rather than top-of-the-line hardware.
"On my business card, I am a corporate president. In my mind, I am a game developer. But in my heart, I am a gamer."


Category: Collection
Subcategory: Subcategory1
Description: New Antique Item
Does the above look funny? Consider it a bug in jQuery mobile where the classes from the underling <button> are not being attached to the new DOM
This is a completely basic popup, no options set.
This is a completely basic popup, but with an overlay
Saved


Today is the day :) “Why?” you might ask. The reason is that today we’re wrapping up our discussion of arithmetic expressions (well, almost) by adding parenthesized expressions to our grammar and implementing an interpreter that will be able to evaluate parenthesized expressions with arbitrarily deep nesting, like the expression 7 + 3 * (10 / (12 / (3 + 1) - 1)).
Let’s get started, shall we?
First, let’s modify the grammar to support expressions inside parentheses. As you remember from Part 5, the factor rule is used for basic units in expressions. In that article, the only basic unit we had was an integer. Today we’re adding another basic unit - a parenthesized expression. Let’s do it.
Here is our updated grammar:
The expr and the term productions are exactly the same as in Part 5 and the only change is in the factor production where the terminal LPAREN represents a left parenthesis ‘(‘, the terminal RPAREN represents a right parenthesis ‘)’, and the non-terminal expr between the parentheses refers to the expr rule.
Here is the updated syntax diagram for the factor, which now includes alternatives:
Because the grammar rules for the expr and the term haven’t changed, their syntax diagrams look the same as in Part 5:
Here is an interesting feature of our new grammar - it is recursive. If you try to derive the expression 2 * (7 + 3), you will start with the expr start symbol and eventually you will get to a point where you will recursively use the expr rule again to derive the (7 + 3) portion of the original arithmetic expression.
Let’s decompose the expression 2 * (7 + 3) according to the grammar and see how it looks:
A little aside: if you need a refresher on recursion, take a look at Daniel P. Friedman and Matthias Felleisen’s The Little Schemer book - it’s really good.
Okay, let’s get moving and translate our new updated grammar to code.
The following are the main changes to the code from the previous article:
- The Lexer has been modified to return two more tokens: LPAREN for a left parenthesis and RPAREN for a right parenthesis.
- The Interpreter‘s factor method has been slightly updated to parse parenthesized expressions in addition to integers.
Here is the complete code of a calculator that can evaluate arithmetic expressions containing integers; any number of addition, subtraction, multiplication and division operators; and parenthesized expressions with arbitrarily deep nesting:
# Token types
#
# EOF (end-of-file) token is used to indicate that
# there is no more input left for lexical analysis
INTEGER, PLUS, MINUS, MUL, DIV, LPAREN, RPAREN, EOF = (
'INTEGER', 'PLUS', 'MINUS', 'MUL', 'DIV', '(', ')', 'EOF'
)
class Token(object):
def __init__(self, type, value):
self.type = type
self.value = value
def __str__(self):
"""String representation of the class instance.
Examples:
Token(INTEGER, 3)
Token(PLUS, '+')
Token(MUL, '*')
"""
return 'Token({type}, {value})'.format(
type=self.type,
value=repr(self.value)
)
def __repr__(self):
return self.__str__()
class Lexer(object):
def __init__(self, text):
# client string input, e.g. "4 + 2 * 3 - 6 / 2"
self.text = text
# self.pos is an index into self.text
self.pos = 0
self.current_char = self.text[self.pos]
def error(self):
raise Exception('Invalid character')
def advance(self):
"""Advance the `pos` pointer and set the `current_char` variable."""
self.pos += 1
if self.pos > len(self.text) - 1:
self.current_char = None # Indicates end of input
else:
self.current_char = self.text[self.pos]
def skip_whitespace(self):
while self.current_char is not None and self.current_char.isspace():
self.advance()
def integer(self):
"""Return a (multidigit) integer consumed from the input."""
result = ''
while self.current_char is not None and self.current_char.isdigit():
result += self.current_char
self.advance()
return int(result)
def get_next_token(self):
"""Lexical analyzer (also known as scanner or tokenizer)
This method is responsible for breaking a sentence
apart into tokens. One token at a time.
"""
while self.current_char is not None:
if self.current_char.isspace():
self.skip_whitespace()
continue
if self.current_char.isdigit():
return Token(INTEGER, self.integer())
if self.current_char == '+':
self.advance()
return Token(PLUS, '+')
if self.current_char == '-':
self.advance()
return Token(MINUS, '-')
if self.current_char == '*':
self.advance()
return Token(MUL, '*')
if self.current_char == '/':
self.advance()
return Token(DIV, '/')
if self.current_char == '(':
self.advance()
return Token(LPAREN, '(')
if self.current_char == ')':
self.advance()
return Token(RPAREN, ')')
self.error()
return Token(EOF, None)
class Interpreter(object):
def __init__(self, lexer):
self.lexer = lexer
# set current token to the first token taken from the input
self.current_token = self.lexer.get_next_token()
def error(self):
raise Exception('Invalid syntax')
def eat(self, token_type):
# compare the current token type with the passed token
# type and if they match then "eat" the current token
# and assign the next token to the self.current_token,
# otherwise raise an exception.
if self.current_token.type == token_type:
self.current_token = self.lexer.get_next_token()
else:
self.error()
def factor(self):
"""factor : INTEGER | LPAREN expr RPAREN"""
token = self.current_token
if token.type == INTEGER:
self.eat(INTEGER)
return token.value
elif token.type == LPAREN:
self.eat(LPAREN)
result = self.expr()
self.eat(RPAREN)
return result
def term(self):
"""term : factor ((MUL | DIV) factor)*"""
result = self.factor()
while self.current_token.type in (MUL, DIV):
token = self.current_token
if token.type == MUL:
self.eat(MUL)
result = result * self.factor()
elif token.type == DIV:
self.eat(DIV)
result = result / self.factor()
return result
def expr(self):
"""Arithmetic expression parser / interpreter.
calc> 7 + 3 * (10 / (12 / (3 + 1) - 1))
22
expr : term ((PLUS | MINUS) term)*
term : factor ((MUL | DIV) factor)*
factor : INTEGER | LPAREN expr RPAREN
"""
result = self.term()
while self.current_token.type in (PLUS, MINUS):
token = self.current_token
if token.type == PLUS:
self.eat(PLUS)
result = result + self.term()
elif token.type == MINUS:
self.eat(MINUS)
result = result - self.term()
return result
def main():
while True:
try:
# To run under Python3 replace 'raw_input' call
# with 'input'
text = raw_input('calc> ')
except EOFError:
break
if not text:
continue
lexer = Lexer(text)
interpreter = Interpreter(lexer)
result = interpreter.expr()
print(result)
if __name__ == '__main__':
main()
Save the above code into the calc6.py file, try it out and see for yourself that your new interpreter properly evaluates arithmetic expressions that have different operators and parentheses.
Here is a sample session:
$ python calc6.py
calc> 3
3
calc> 2 + 7 * 4
30
calc> 7 - 8 / 4
5
calc> 14 + 2 * 3 - 6 / 2
17
calc> 7 + 3 * (10 / (12 / (3 + 1) - 1))
22
calc> 7 + 3 * (10 / (12 / (3 + 1) - 1)) / (2 + 3) - 5 - 3 + (8)
10
calc> 7 + (((3 + 2)))
12
And here is a new exercise for you for today:
- Write your own version of the interpreter of arithmetic expressions as described in this article. Remember: repetition is the mother of all learning.
Hey, you read all the way to the end! Congratulations, you’ve just
learned how to create (and if you’ve done the exercise - you’ve actually
written) a basic recursive-descent parser / interpreter that can evaluate pretty complex arithmetic expressions.
In the next article I will talk in a lot more detail about recursive-descent parsers. I will also introduce an important and widely used data structure in interpreter and compiler construction that we’ll use throughout the series.
Stay tuned and see you soon. Until then, keep working on your interpreter and most importantly: have fun and enjoy the process!
Here is a list of books I recommend that will help you in your study of interpreters and compilers:
If you want to get my newest articles in your inbox, then enter your email address below and click "Get Updates!"
All articles in this series:
- Let's Build A Simple Interpreter. Part 1.
- Let's Build A Simple Interpreter. Part 2.
- Let's Build A Simple Interpreter. Part 3.
- Let's Build A Simple Interpreter. Part 4.
- Let's Build A Simple Interpreter. Part 5.
- Let's Build A Simple Interpreter. Part 6.
- Let's Build A Simple Interpreter. Part 7: Abstract Syntax Trees
- Let's Build A Simple Interpreter. Part 8.
- Let's Build A Simple Interpreter. Part 9.
- Let's Build A Simple Interpreter. Part 10.
- Let's Build A Simple Interpreter. Part 11.
- Let's Build A Simple Interpreter. Part 12.
- Let's Build A Simple Interpreter. Part 13: Semantic Analysis
- Let's Build A Simple Interpreter. Part 14: Nested Scopes and a Source-to-Source Compiler
- Let's Build A Simple Interpreter. Part 15.
- Let's Build A Simple Interpreter. Part 16: Recognizing Procedure Calls
- Let's Build A Simple Interpreter. Part 17: Call Stack and Activation Records
- Let's Build A Simple Interpreter. Part 18: Executing Procedure Calls
- Let's Build A Simple Interpreter. Part 19: Nested Procedure Calls
Comments
comments powered by Disqus


An even positive integer N will be called admissible, if it is a power
of 2 or its distinct prime factors are consecutive primes.
The first twelve admissible numbers are 2,4,6,8,12,16,18,24,30,32,36,48.
If N is admissible, the smallest integer M 1 such that N+M is prime, will be called the pseudo-Fortunate number for N.
For example, N=630 is admissible since it is even and its distinct prime factors are the consecutive primes 2,3,5 and 7.
The next prime number after 631 is 641; hence, the pseudo-Fortunate number for 630 is M=11.
It can also be seen that the pseudo-Fortunate number for 16 is 3.
Find the sum of all distinct pseudo-Fortunate numbers for admissible numbers N less than 109.


| Enum Constant and Description |
|---|
DOG1 |
DOG2 |
DOG3 |
DOLMEN1 |
DOLMEN2 |
DOLMEN3 |
DRYAD1 |
DRYAD2 |
DRYAD3 |
FAIRY1 |
FAIRY2 |
FAIRY3 |
FOUNTAIN1 |
FOUNTAIN2 |
FOUNTAIN3 |
GOLD1 |
GOLD2 |
GOLD3 |
MERMAID1 |
MERMAID2 |
MERMAID3 |
MOON1 |
MOON2 |
MOON3 |
RAINBOW1 |
RAINBOW2 |
RAINBOW3 |
TAUPE1 |
TAUPE2 |
TAUPE3 |
| Modifier and Type | Method and Description |
|---|---|
static CardType |
valueOf(java.lang.String name)
Returns the enum constant of this type with the specified name.
|
static CardType[] |
values()
Returns an array containing the constants of this enum type, in
the order they are declared.
|
public static final CardType MOON1
public static final CardType MOON2
public static final CardType MOON3
public static final CardType MERMAID1
public static final CardType MERMAID2
public static final CardType MERMAID3
public static final CardType DRYAD1
public static final CardType DRYAD2
public static final CardType DRYAD3
public static final CardType FOUNTAIN1
public static final CardType FOUNTAIN2
public static final CardType FOUNTAIN3
public static final CardType GOLD1
public static final CardType GOLD2
public static final CardType GOLD3
public static final CardType RAINBOW1
public static final CardType RAINBOW2
public static final CardType RAINBOW3
public static final CardType DOLMEN1
public static final CardType DOLMEN2
public static final CardType DOLMEN3
public static final CardType FAIRY1
public static final CardType FAIRY2
public static final CardType FAIRY3
public static final CardType TAUPE1
public static final CardType TAUPE2
public static final CardType TAUPE3
public static final CardType DOG1
public static final CardType DOG2
public static final CardType DOG3
public static CardType[] values()
for (CardType c : CardType.values()) System.out.println(c);
public static CardType valueOf(java.lang.String name)
name
- the name of the enum constant to be returned.java.lang.IllegalArgumentException
- if this enum type has no constant with the specified namejava.lang.NullPointerException
- if the argument is null


|
My Project
|
Class for automatically registering extension points to the decompiler. More...
#include <capability.hh>
Public Member Functions | |
| virtual | ~CapabilityPoint (void) |
| Destructor. | |
| virtual void | initialize (void)=0 |
| Complete initialization of an extension point. More... | |
Static Public Member Functions | |
| static void | initializeAll (void) |
| Finish initialization for all extension points. More... | |
Protected Member Functions | |
| CapabilityPoint (void) | |
| Construct extension capability exactly once. More... | |
Class for automatically registering extension points to the decompiler.
This uses the C++ static initializer feature to automatically discover and register extension point. Code for an extension should provide a class that derives from CapabilityPoint and overrides the initialize() method. Additionally there should be a singleton static instantiation of this extension class. The extensions are accumulated in a list automatically, then the decompiler engine will ensure that the initialize() method is called on each extension, allowing it to complete its integration.
|
protected |
Construct extension capability exactly once.
Constructing the object automatically registers it. For global instances, this happens during static initialization
|
pure virtual |
Complete initialization of an extension point.
This method is implemented by each extension so it can do specialized integration
Implemented in IfaceCapability, ArchitectureCapability, GhidraDecompCapability, and PrintLanguageCapability.
|
static |
Finish initialization for all extension points.
Give all registered capabilities a chance to initialize (after all static initialization has happened)


This project is under heavy development. Please do expect it to change dramatically and sometimes fail. Posted examples may be erased, etc. etc.
Please use this blog post for bug and feature requests.
To make Ajax calls possible there are two back-end views written.
{% url ajax_json_echo %}
for JSON and
{% url ajax_html_echo %}
for HTML. They both wait 2 seconds
before answering to simulate web latency. HTML one may contain the
JavaScript, it will be run if Request.HTML used.
To use them just make an Ajax request using above URLs. JSON will return everything from POST and GET in the form of: { 'post_response': {}, 'get_response': {} }, HTML will return the HTML code provided in POST 'html' key. Please do follow examples.


Name type default description animation boolean true apply a css fade transition to the tooltip html boolean true Insert html into the popover. If false, jquery's text method will be used to insert content into the dom. Use text if you're worried about XSS attacks. placement string function 'right' how to position the popover - top | bottom | left | right selector string false if a selector is provided, tooltip objects will be delegated to the specified targets trigger string 'click' how popover is triggered - click | hover | focus | manual title string | function '' default title value if `title` attribute isn't present content string | function '' default content value if `data-content` attribute isn't present delay number | object 0 delay showing and hiding the popover (ms) - does not apply to manual trigger type If a number is supplied, delay is applied to both hide/show Object structure is: delay: { show: 500, hide: 100 }
This has a popover to the right and is triggered by mousedown


 Something about information privacy goes here...
Name
Email Address
Phone Number
Choose one:
I prefer to communicate by email
I prefer to communicate by phone
Please state your question/comment below:
Submit


Find Recommendations for Courses !!
Enter the Course ID for which you want to check the recommendations
Enter the maximum number of recommendations you want to display ( keep it <100 )


GCC-Ada-7.2.0
Introduction to the GCC Ada compiler
Ada is a modern programming language designed for large, long-lived
applications — and embedded systems in particular —
where reliability and efficiency are essential. It has a set of
unique technical features that make it highly effective for use in
large, complex and safety-critical projects.
The compiler and associated tools on this page are known as the
GNAT technology, developed by the
Adacore company, using the GCC
backend. Since parts of the Ada compiler are written in Ada, there
is a circular dependency on an Ada compiler. The instructions below
first install a binary compiler. You do not need to do that if you
already have built GNAT tools.
This package is known to build and work properly using an LFS-8.1
platform.
Caution
Using the instructions on this page will have the effect that the
C and C++ compiler and libraries will be reinstalled, overwriting
the ones on your system. This may lead to some issues. Please
read the notes and caution on the GCC-7.2.0 page.
Note
If you want to install other compilers in the GCC collection, do that first, or specify
ada in the --enable-languages
switch to
configure. If you
rebuild GCC without enabling ada
after running the instructions on this page, the new compiler
will not be able to compile ADA anymore.
Package Information
Additional Downloads
Note
You will need to install GNAT
temporarily to satisfy the circular dependency. You may point
your browser to the AdaCore download page,
choose your platform and 2016 (64 bit machines) or 2014 (32 bit
machines), then select the file to download. Alternatively,
direct links to the 64 bit and 32 bit linux versions are given
below.
GCC Ada Dependencies
Recommended
DejaGnu-1.6, for tests
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gcc-ada
Installation of the GNAT binary
Before unpacking and changing into the GCC source directory, first
unpack the GNAT tarball, and
change to the GNAT directory. Then, install the GNAT binary by running the following command
as the root
user:
make ins-all prefix=/opt/gnat
The GNAT compiler can be invoked
by executing the gcc
binary installed in /opt/gnat/bin
.
You may now remove the GNAT source
directory if desired.
Prepare to compile GCC by placing
the GNAT version of gcc at the beginning of the
PATH
variable by using the following
commands:
PATH_HOLD=$PATH &&
export PATH=/opt/gnat/bin:$PATH_HOLD
Doing so has the drawback that the GCC and Binutils executables are taken from the just
installed GNAT package, but the
versions of those executables are outdated compared to those
installed in LFS. This is not important for the GCC compilers, since they recompile themselves
during the bootstrap process. On the other hand, the outdated
ld and as tools are used all along. In
order to use the LFS tools, issue as the root
user:
find /opt/gnat -name ld -exec mv -v {} {}.old \;
find /opt/gnat -name as -exec mv -v {} {}.old \;
Installation of GCC Ada
Install GCC Ada by running the
following commands:
case $(uname -m) in
x86_64)
sed -e '/m64=/s/lib64/lib/' \
-i.orig gcc/config/i386/t-linux64
;;
esac
mkdir build &&
cd build &&
../configure \
--prefix=/usr \
--disable-multilib \
--with-system-zlib \
--enable-languages=ada &&
make
If you have installed additional packages such as Valgrind and GDB, the GCC
part of the testsuite will run more tests than in LFS. Some of
those will report FAIL and others XPASS (pass when expected to
FAIL). To run the tests, issue:
ulimit -s 32768 &&
make -k check
The tests are very long, and the results may be hard to find in the
logs, specially if you use parallel jobs with make. You can get a
summary of the tests with:
../contrib/test_summary
Now, as the root
user:
make install &&
mkdir -pv /usr/share/gdb/auto-load/usr/lib &&
mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib &&
chown -v -R root:root \
/usr/lib/gcc/*linux-gnu/7.2.0/include{,-fixed} \
/usr/lib/gcc/*linux-gnu/7.2.0/ada{lib,include}
You should now remove the GNAT
installation and perform other cleanups. First, as the root
user:
rm -rf /opt/gnat
Then, as a normal user:
export PATH=$PATH_HOLD &&
unset PATH_HOLD
Command Explanations
mkdir build; cd
build: The GCC
documentation recommends building the package in a dedicated build
directory.
--disable-multilib
: This
parameter ensures that files are created for the specific
architecture of your computer.
--with-system-zlib
: Uses
the system zlib instead of the
bundled one. zlib is used for
compressing and uncompressing GCC's intermediate language in LTO (Link Time
Optimization) object files.
--enable-languages=ada
:
Instructs the build system to build the Ada tools and compiler. It
is unavoidable that the C and
C++ compilers be built too.
--with-default-libstdcxx-abi=gcc4-compatible
: Use
this switch if you are building GNAT tools using a GCC version prior to 5.1.0, and you do not
want to recompile all the libraries written in C++.
ulimit -s 32768: This
command prevents several tests from running out of stack space.
make -k check: This
command runs the test suite without stopping if any errors are
encountered.
../contrib/test_summary: This
command will produce a summary of the test suite results. You can
append | grep -A7
Summ to the command to produce an even more
condensed version of the summary. You may also wish to redirect the
output to a file for review and comparison later on.
chown -v -R root:root
/usr/lib/gcc/*linux-gnu/...: If the package is
built by a user other than root, the ownership of the installed
include
and adalib
directories (and their contents) will be
incorrect. These commands change the ownership to the root
user and group.
Contents
Installed Programs:
gnat, gnatbind, gnatchop, gnatclean,
gnatfind, gnatkr, gnatlink, gnatls, gnatmake, gnatname,
gnatprep, gnatxref
Installed Libraries:
libgnarl.{so,a}, libgnat.{so,a} in
/usr/lib/gcc/<arch-triplet>/7.2.0/adalib
Installed Directories:
/usr/lib/gcc/<arch-triplet>/7.2.0/ada{include,lib}
and
/usr/lib/gcc/<arch-triplet>/7.2.0/plugin/include/ada
Only the Ada specific files are listed here. Others can be found at
../../../../lfs/view/8.1/chapter06/gcc.html#contents-gcc
as they were initially installed during the building of LFS.
Short Descriptions
|
gnat
|
is a wrapper that accepts a number of commands and calls
the corresponding tool from the list below.
|
|
gnatbind
|
is used to bind compiled objects.
|
|
gnatchop
|
is useful for renaming files to meet the standard
Ada default file naming
conventions.
|
|
gnatclean
|
is used to remove files associated with a GNAT project.
|
|
gnatfind
|
is intended for locating definition and/or references to
specified entities in a GNAT project.
|
|
gnatkr
|
is used to determine the crunched name for a given file,
when crunched to a specified maximum length.
|
|
gnatlink
|
is used to link programs and build an executable file.
|
|
gnatls
|
is the compiled unit browser.
|
|
gnatmake
|
is the Ada compiler,
which performs compilation, binding and linking.
|
|
gnatname
|
will list the files associated with a GNAT project.
|
|
gnatprep
|
is the GNAT external
preprocessor.
|
|
gnatxref
|
is similar to gnatfind, but generates
a full report of all cross-references.
|
Last updated on 2017-08-26 09:42:24 -0700


Live Updates
The purpose of this section is explained in more details on the readme.
Enable/Disable live update.
- Enable:
- Enable/Disable live update
- Update by:
- Chose by which method the updates will be made (info on the official documentation)
-
updateUI
- These are run on every node after any changes to the script.
-
knobChanged
- These are executed when the user changes the value of any knob when the
control panel is open.


World Trade Cargo & Logistics Planning
Country Key►
Year Slider►
1995
2012
Albania's top partners in 2012


My Models you have 6 active models See all
| Decision Model Title last edit 1 hour ago |
icon1 7 | icon1 7 | icon1 7 | icon1 7 |
| Decision Model Title last edit 1 hour ago |
icon1 7 | icon1 7 | icon1 7 | icon1 7 |
| Decision Model Title last edit 1 hour ago |
icon1 7 | icon1 7 | icon1 7 | icon1 7 |
| Decision Model Title last edit 1 hour ago |
icon1 7 | icon1 7 | icon1 7 | icon1 7 |


Mobile network Three scraps rewards offering Wuntu
by Emily NicolleTelecoms giant Three UK has scrapped its rewards programme for customers, three years after it launched.
Wuntu, which was available to all Three users, will shut down on 15 December.
Akin to rivals such as O2’s Priority and Veryme Rewards by Vodafone, Wuntu offered users perks such as restaurants and cinema discounts and free taster products from brands such as Hotel Chocolat.
Three said in an email to customers, seen by City A.M., that all offers from the app will expire along with the service on 15 December.
The network added that it has no plans to replace the service at the present moment, though it is “currently looking into fresh ways to reward our customers, so watch this space”.
Read more: Mobile provider Three posts revenue slip amid 5G investment
Customers of Wuntu had complained in recent months regarding the platform’s lack of updated offerings.
One user said the app had gone from “great deals, to mediocre deals, to now no deals”. Another said they hadn’t used the app in months.
“Despite being a challenger, Three UK faces numerous its challenges in a cut throat competitive market,” said Paolo Pescatore, telecoms analyst at PP Foresight.
“This is a surprise given the growing importance of loyalty and adding value to consumers. However, forcing users to download another app and the lack of compelling offers was never going to work.”
The mobile provider posted a slight slip in revenue for the first half of the year in August, as it gears up to launch its 5G network.
Three UK reported a two per cent decline in revenue to £1.2bn in the first six months of the year, while total margin dipped one per cent to £721m.
Its parent company CK Hutchison had announced earlier this year that it will bring together its telecoms business in Europe and Hong Kong into one holding company.
Image credit: Three