WITNESS LIST Regulated Industries Committee March 29, 2005-12:00P HB 555 For: Biedrzycki, Carol (Texas Ratepayers Organization to Save Energy) Smith, Tom (Public Citizen) Against: Burke, Jim (AECT) Jewell, Michael (Direct Energy, CPL Retail Energy, WTU Retail Energy, Alliance for Retail Markets) Registering, but not testifying: For: Chapman, Randall (Self) Hadden, Karen (Sustainable Energy and Economic Development (SEED) Coalition) Metzger, Luke (Texas Public Interest Research Group (TexPIRG)) Rodriguez, Stella (Texas Association of Community Action Agencies) HB 1777 For: Eddleman, Neil (Alliance for a Competitive Electric Market) Fainter, John (Association of Electric Companies of Texas, Inc.) Jewell, Michael (Direct Energy, CPL Retail Energy, WTU Retail Energy & Alliance for Retail Markets) Kolodziej, Eddie (DFW Electric Consumer Coalition) McCalla, David (GEUS (City of Greenville's Municipally-owned Electric System)) Mian, Amy (Fire Fly Electricity, LLC) Potosky, Rob (Utility Choice Electric & ACEM (Alliance for Competitive Electric Markets)) Rainey, John (Denton Municipal Electricity) Sherman, Fred (Garland Power and Light) Trostle, Kay (TXI-Chaparral Steel Midlothian, Nucor Steel and Structural Metals, Inc.) Zion, Mark (Texas Public Power Association) Against: Fehrenbach, Nick (The City of Dallas Texas and The Committee of Concerned Load) On: Biedrzycki, Carol (Texas Ratepayers Organization to Save Energy) Registering, but not testifying: For: Darte, Tom (GEUS) Doegey, Jay (Cities Aggregation Power Project, Inc. (CAPP) and City of Arlington) Gahn, Scott (Just Energy Texas, LLC and Alliance for a Competitive Electric Market) Valdez, Jerry (Texas Competitive Power Advocates) Williams, Mike (Texas Electric Cooperatives) Against: Frazier, Charles (Frazier & Frazier Ind., Inc.) Gay, Geoffrey (Cities Aggregation Power Project, Inc. (CAPP) and South Texas Aggregation Project, Inc. (STAP)) Ragsdale, David (Self) Wilkins, Patrick (Cities Aggregation Power Project and South Texas Aggregation Project) On: Chapman, Randall (Self) Darling, Jim (South Texas Aggregation Project (STAP) and City of McAllen) Oldham, Phillip (Texas Coalition for Competitive Electricity) Schrader, Thomas (Electric Reliabity Council of Texas) Smith, Tom (Public Citizen Members) HB 2201 For: McDonald, Donna (Clean Coal Technology Foundation of Texas) Nasi, Mike (Clean Coal Technology Foundation) Smith, Steve (Texas Mining & Reclamation Association) Stansell, Wade (Association of Electric Compnaies of Texas) Walker, Marty (The North American Coal Corp) Against: Call, Alesia (Tom "Smitty" Smith; Public Citizen - Texas Office) Hadden, Karen (Sustainable Energy & Economic Development (SEED) Coalition) Smith, Tom (Public Citizen) On: Anderson, Scott (Environmental Defense) Eminger, Randy (Center for Energy & Economic Development) Williams, Michael (Governor's Clean Coal Technology Council) Registering, but not testifying: For: Hazlewood, Steve (The Dow Chemical Co.) Kearns, Dennis (BNSF Railway) Matz, Laura (Texas Railroad Association) Miksa, Mary (Texas Association of Business) Olson, Ron (Union Pacific RR) Trouart, Joel (Texas Westmoreland Coal Co.) Turner, Bronwen (Westmorland Coal Co. DBA Texas-Westmorland) Williams, Mike (Texas Electric Cooperatives) Zion, Mark (Texas Public Power Association) Against: Biedrzycki, Carol (Texas Ratepayers Organization to Save Energy) Carter, Stephanie (Texas Public Interest Research Group (TexPIRG)) Metzger, Luke (Texas Public Interest Research Group (TexPIRG)) Reed, Cyrus (Lone Star Chapter of Sierra Club) HB 2245 For: Chapman, Randall (Self) Darling, Jim (South Texas Aggregation Project (STAP) and the Cities of Alamo & McCallen) Doegey, Jay (Cities Aggregation Power Project, Inc. (CAPP)) Gay, Geoffrey (Cities Aggregation Power Project, Inc. (CAPP) & South Texas Aggregation Project, Inc. (STAP)) Smith, Tom (Public Citizens Texas Office) Starnes, Bill (Cities Aggregation Power Project & South Texas Aggregation Project) Against: Jewell, Michael (CPL Retail Energy & WTU Retail Energy) Seidlits, Curt (TXU & ACET) On: Schrader, Thomas (Electric Reliability Council of Texas) Registering, but not testifying: For: Akers, Monte (The Texas Coalition of Cities for Utility Issues) Arambala, Felix (Self) Biedrzycki, Carol (Texas Ratepayers Organization to Save Energy) Boyd, Phillip (City of Lewisville) Dolton, Odis (Self) Pitts, Rachael (Texas Municipal League) Ragsdale, David (Self) Sokoll, Bob (City of Waxahachie) Wilson, Don (Self and City of Grand Prairie) Against: Griffey, Charles (Self and AECT)


Melanie Panem
Active Projects
These are the development and design projects that I'm actively working on!
mySavei
individual contributor project
Website containing condensed savings & investment advice for those that are intimidated by traditional financial documentation or simply don't have easy access to such information. Coded in React JS using functional components + hooks with Router.
MPowheard
business venture
MPowheard is a digital services LLC. It may eventually partner with or transform into a nonprofit corporation. Our goals are to empower the disempowered and create websites for social good.


Reporting a bug is quite easy. In most of the cases, whenever an error occurs the - Report Bug
button will be seen within the error message as shown in
the following figure. Just click on the - Report Bug
button to send detailed bug report to the server.
It is also possible to compose and send a bug report manually. For this, click - Help → Report a Bug
.
Describe the problem as precisely as possible with the correct event order. What happened just before, during and after the problem occurred?
You can use upto 1000 characters. The better the description the sooner the solution.
In addition to your description, information about your system can also be added to the report. System information is useful for resolving
platform specific problems. Following system information is collected;
- Operating system name, version and architecture.
- Java Virtual Machine name, vendor and version.
- Java Runtime Environment name and version.
- Used, free, total and maximum available system memory.
Finally, Equinox event log is important to understand the event sequence leading to the problem. This is also optional.


This webapp simply creates unique secure code which can be used as your password or as an uniqueURL code.
The whole app is developed majorly from ES6 and React.
Select from the following options and then cick the button to generate your code


Topbar ...
Successful activated
Successful deactivated
Successful saved
Successful deleted
| Login Login | Given Name Given Name | Family Name Family Name | Group | ||
|---|---|---|---|---|---|
| Login | Given Name | Family Name |
|
|
Paging-Navigation...


}
For our analysis, we used simplified, aggregated origin-destination (OD) flow information that has been derived from previous analyses of 'Call Detail Record' (CDR) data. The origin-destination flow dataset we used showed the approximate person flows between each pair of cell-towers in Riyadh, within hourly slices of the day.
We received a full day's worth of aggregated data, for all 1,712 cell towers in Riyadh, and sieved out OD flow information the cell towers closest to Princess Noura University (PNU). This we used to map the approximate student flow to and from PNU.
Three graduate students in the Department of Urban Studies and Planning at the Massachusetts Instutite of Technology worked together to develop this project, from data analysis to visualizations to web development.


Rakul Preet reveals co-actor proposed to her - Tamil News - IndiaGlitz.com
Popular actress Rakul Preet Singh, who was last seen in Suriya's NGK, reportedly mentioned in a recent interview with an entertainment portal that one of her co-actors hit on her.
When she was asked if any of her co-stars ever had a crush on her, Rakul Preet stated, "Yes, I have been hit on by a co-star, but in a very nice way and not a creepy way. I was just not interested. I didn't realize it only in the first go. Then I was speaking to a friend and she was like, you do realize what was happening. Then I started giving excuses saying I was busy."
Rakul Preet is currently busy with the shoot of Kamal Haasan's Indian 2, directed by Shankar. She has also signed up to play the lead role in one of Sivakarthikeyan's next.
Trending News
Kamal Haasan fulfills Vijay Sethupathi's dream
Sivakarthikeyan's producer gives good news to fans
Amy Jackson gets tough competition from her little son
Dhruv Vikram and Radhika Sarathkumar in trouble
Tapsee Pannu uses Tamil to silence Hindi demand
An unexpected twist in Vishal's 'Thupparivaalan 2' casting
More News
Jayam Ravi-Mohan Raja's mom and dad to take new avatar
Breaking! Yogi Babu's sudden statement regarding marriage
Amy Jackson gets tough competition from her little son
Tapsee Pannu uses Tamil to silence Hindi demand
Sivakarthikeyan surprises Rio Raj and his pregnant wife Shruthi - Video
Sivakarthikeyan's producer gives good news to fans
Dhruv Vikram and Radhika Sarathkumar in trouble
Tamil origin celebrity actress posts nude bathtub photo that stuns the internet
An unexpected twist in Vishal's 'Thupparivaalan 2' casting
Kamal Haasan fulfills Vijay Sethupathi's dream
Famous actress announces engagement to boyfriend
First look and release date of Kangana Ranaut's Thalaivi out!

Mysskin to do it again for Vishal?
Vijay becomes the first Tamil actor to get this!
Bigil actress takes up Nayanthara's role!
Bollywood actress debuts in Arun Vijay's next!
Harish Kalyan's next release is here!
Headlines
10-year-old girl dies of snake bite in classroom, protests erupt
Unhappy over not having male child, woman kills daughters; commits suicide
Popular theatre employee's dead body found on mall's terrace
Teenage girl rescued from Nithyananda's ashram says she was tortured
Breaking: Devendra Fadnavis becomes Maharashtra CM again!
Tamil Nadu: Woman sets daughter on fire over relationship with Dalit man
Nithyananda charged by police in child kidnapping case
Tamil Nadu: Lovers commit suicide by jumping in front of train
Chennai auto-driver murdered by five men for shocking reason
Two men arrested for posting this TikTok video
Ma Nithyananditha 's shocking allegations against her father - Video


--- layout: post title: "Designer Protein Helps Paralyzed Mice Walk Again" subtitle: "Protein helps to repair damaged axons to stimulate nerve cell regeneration" date: 2021-01-18 22:06:50 +0530 background: '/img/posts/06.jpg' published: true categories: [ Science ] tags: [ research, researchers, paralyzed, mice, spinal, spinal cord, injury, brains ] ---
German scientists have restored the ability to walk in mice that had been paralyzed after a complete spinal cord injury.
The team created a “designer” signaling protein and injected it into the animals’ brains, stimulating their nerve cells to regenerate and share the recipe to make the protein.
Researchers from Ruhr-Universität Bochum (RUB) in Germany took a different path, aiming to repair the damaged axons with a protein they call hyper-interleukin-6 (hIL-6). As the name suggests, this is a synthetic version of a naturally occurring peptide, which has been tweaked to stimulate nerve cell regeneration.
“This is a so-called designer cytokine, which means it doesn’t occur like this in nature and has to be produced using genetic engineering,” says Dietmar Fischer, an author of the study.
As incredible as the results sound, it’s still obviously very early days for the research. The team says the next steps are to investigate in mice whether similar results can be achieved if the treatment is administered weeks after the injury, rather than immediately following.


 #WE EXPRESSLY DISCLAIM ANY LIABILITY WHATSOEVER FOR ANY DIRECT, #INDIRECT, CONSEQUENTIAL, INCIDENTAL OR SPECIAL DAMAGES, #INCLUDING, WITHOUT LIMITATION, LOST REVENUES, LOST PROFITS, #LOSSES RESULTING FROM BUSINESS INTERRUPTION OR LOSS OF DATA, #REGARDLESS OF THE FORM OF ACTION OR LEGAL THEORY UNDER #WHICH THE LIABILITY MAY BE ASSERTED, #EVEN IF ADVISED OF THE POSSIBILITY OR LIKELIHOOD OF SUCH DAMAGES. #--------------------------------------------------------------------------- # print STDOUT "Content-Type: text/html; charset=utf-8\n\n"; # this should give errors in the status line of the admin page my $data = join( '', <DATA> ); eval $data; if ($@) { print $@; exit 1; } __END__
This is the batch program that reads files created by gammu, see http://www.gammu.org/wiki/index.php?title=Gammu:SMSD processes them and unlinks them.
On a linux system it can be run as a cron job or in a default form as a button controlled cgi Currently it is designed to read unicode format gammu sms files in the directory configured below
If the data is not unicode, then removing $sms_data =~ s/\376\377// ; # remove binary stuff at start $sms_data = decode('UCS-2',lc($sms_data));
will probably work...ymmv...
To install as cron:
change lib path and hardcode registry name, for example
This is the format for the input file name from gammu, contains date, time and phone number: IN20081112_114152_00_+447779159452_00.txt
Note:
This sorts the incoming file names chronologically
sub sort_file_names { my (@file_names) = @_ ; my @sts ; foreach my $file_name (@file_names) { next if ( $file_name !~ /\056txt$/i ); # not a txt extension, standard for gammu sms $file_name =~ m/IN(\d{4})(\d{2})(\d{2})\_(\d{2})(\d{2})(\d{2})\_00\_\+(\d{2})(\d+)\_00\.txt/; my ( $sms_year, $sms_month, $sms_day, $sms_hour, $sms_minute, $sms_second, $sms_int_code, $sms_phone_number ) = ( $1, $2, $3, $4, $5, $6, $7, $8 ); my $entry = ["$sms_year$sms_month$sms_day$sms_hour$sms_minute$sms_second" ,$file_name] ; push @sts, $entry ; } my @sorted_sts = sort{ $a->[ 0 ] <=> $b->[ 0 ] } @sts; my @sorted = map{ $_->[ 1 ] } @sorted_sts ; ; return @sorted ; } #------------------------------------------------------------- use strict; use warnings ; use locale; use lib '../../../lib' ; #------------------------------------------------------------- use Ccu; use Ccadmin ; use Cclitedb ; #FIXME: for log_entry use Cccookie ; use Ccsms::Gammu ; use Ccconfiguration; use Data::Dumper; #use Time::HiRes qw( usleep ualarm gettimeofday tv_interval nanosleep #clock_gettime clock_getres clock_nanosleep clock #stat ); #my $t0 = [gettimeofday]; # hardcode configuration path, if running from a cron my %configuration = readconfiguration(); my %sms_configuration = readconfiguration('../../../config/readsms.cf'); # fixed needs testing if ( !$sms_configuration{'smslocal'} ) { require SOAP::Lite; } my ($token, $file) ; my $cookieref = get_cookie(); my %fields = cgiparse(); # emulation code in here, to create the test file from the form input if ($fields{'emulate'}) { my $return = emulate_sms_file($fields{'originator'}, $fields{'message'}) ; exit 0 ; } # for cron: hardcode registry, cannot be read from web cookie # read from cookie, but if not, from sms configuration my $registry = $cookieref->{'registry'} || $sms_configuration{'registry'}; my $domain = $configuration{'domain'}; # remote domain if the script is not local # inbox for gammu, so gammu must put messages there.. my $sms_dir = "$sms_configuration{'smsinpath'}/$registry" ; # sms inbox for gammu, now divided by registry 11/2009 # outbox for this script, processed messages placed there.. #FIXME: smsout in main config and smsoutpath in sms config... my $sms_done_dir = "$configuration{'smsout'}/$registry"; # Feburary 2014 testing shows that we need to sort chronologically # otherwise sequence of transactions may be lost opendir( DIR, $sms_dir ); my @files = readdir(DIR); closedir DIR ; @files = sort_file_names(@files) ; foreach my $file (@files) { my $sms_file = "$sms_dir/$file"; # parse file name and extract timing data and phone number, timing not used at present # but useful if, for example, interface is off-lined # IN20081203_211658_00_+447779159452_00.txt $sms_file =~ m/IN(\d{4})(\d{2})(\d{2})\_(\d{2})(\d{2})(\d{2})\_00\_\+(\d{2})(\d+)\_00\.txt/; my ( $sms_year, $sms_month, $sms_day, $sms_hour, $sms_minute, $sms_second, $sms_int_code, $sms_phone_number ) = ( $1, $2, $3, $4, $5, $6, $7, $8 ); my $full_telephone_number = $sms_int_code . $sms_phone_number; open( SMS, $sms_file ); my $sms_data; # holds message text while (<SMS>) { ### s/\376\377//; # moved from outside loop...11/2009 $sms_data .= $_ if (/[\w\s]+/); } close SMS; # remove binary stuff at start # convert to current gateway format $fields{'originator'} = $full_telephone_number; $fields{'message'} = $sms_data; $fields{'status'} = 0; # status is forced my ( $status, $class, $array_ref, $soap, $token ); # remote transactions are transported via soap, local ones use the local library... # TODO: SOAP access has never, never been tested as of 2014 if ( ! $sms_configuration{'smslocal'} ) { eval { $soap = SOAP::Lite->uri("http://$domain/Ccsmsgateway") ->proxy("http://$domain/cgi-bin/ccserver.cgi") ->gateway_sms_transaction( \%configuration, \%fields, $token ); }; die $soap->faultstring if $soap->fault; ( $class, $status, $array_ref ) = $soap->paramsout; } else { my $return_value = gateway_sms_transaction( 'local', \%configuration, \%fields, $token ); if ($return_value =~ /nok/) { log_entry( 'local', $registry, 'error', 'transaction error', undef ); } } # move the processed file to a done directory, don't process twice # FIXME: The out file is under the web root and still in the main configuration system("mv $sms_file $configuration{smsout}/$registry"); } exit 0;


Overview
Dashboard
New Callers
6,267Blocked
900Valid
2,210Recordings
75Call Volume
Excluding blocked calls
Monthly Calls
Includes valid and blocked
Top Callers by Location
Based on area code
| Location | Unique Callers |
|---|---|
| United States | 27,340 |
| India | 21,280 |
| Japan | 18,210 |
| United Kingdom | 15,176 |
| Spain | 14,276 |
| Germany | 13,176 |
| Brazil | 12,176 |
| Indonesia | 11,886 |
| Philippines | 11,509 |
| New Zealand | 1,700 |


This package provides utilities to help integrate Java ServerFaces with NanoContainer.
Currently the utilities include:
- NanoWarDelegatingVariableResolver -- A variable resolver that locates services and backing beans that are managed by NanoWAR components.


Enhancing self awareness through mindfulness
Observing our feelings and emotions in our body, and being conscious of what meaning we place on them
by: Peter Torr Smith
21st September, 2018
Tags/Categories
Mindfulness and self awareness
What is the relationship between mindfulness and self awareness?
Mindfulness brings a separation from our being and our emotions. We observe and acknowledge, both internal feelings and thoughts and our external experiences. We can choosing to just observe, to create some space between what we see, hear and feel, and our judgement and response to those. This way we become very aware of what emotions, feelings, thoughts we have, and can chose to see them as things that are happening within us, but are not us.
An analogy of emotions are like clouds, which float through the sky. Some are small, light and fluffy, some can be dark and gloomy and hang around for a while. But we can see them for what they are, and know they come and go, and we can decide to enjoy the sun, seek some shelter with a good book by the fire, or dance in the rain. This is the essence to emotional awareness, being aware of our emotions, their effect on us, without automatically being consumed by them.
Emotional awareness is considered a foundation for self awareness, which we can use to be honest with ourselves about our values, concerns, strengths and limits, which in turn can give us the confidence to be ourselves in situations.
The author suggests that with time, being mindful when looking inside ourselves at our feeling and emotions, we can bring greater clarity to our observation of them. Clarity is in both resolution and vividness. Resolution in terms of noticing feelings and thoughts as they happen, as things we observe and can sense happening, and the subtle changes and differences between them. Vividness in terms of seeing them clearer for what they are at the time.
Self awareness, as proposed by Daniel Goleman, can be seen in terms of three core competencies:
- Emotional Awareness
- Accurate self-assessment
- Self-confidence
Mindfulness teaches us to become very aware, or observant, of our emotions, and see them as things which we can decide how to treat or react. This is the essence of emotional awareness, that we are not kidding ourselves about who we are or what we feel, but we are more and more becoming less caught up in them.
Whilst emotional awareness operates at our physiological level (our mind and body), self-assessment operates at the level of what meanings or values we place on the emotions and feelings we observe and are aware of. The more we are aware of how we do, or have been, feeling and reacting to those feelings, the more we can decide if they, and our response and actions, are part of our strengths or limits, and if we want to build on our strengths, acknowledge our limitations, or put effort into changing parts of our lives.
Self-confidence is described as being comfortable with your limitations in some areas, being humble and open, whilst at the same time being aware of our strengths and value in others. This is not about being great at everything, but being comfortable in most situations knowing that we have areas we are strong in to contribute, whilst being at peace with ourselves, and open to learning, in other areas.
The author suggests that as mindfulness is very much about emotional awareness, which is the basis for more accurate self-assessment, which contributes to greater self-confidence.
He also suggests that they are very much one and the same thing, as he points out two well-known authors on their subjects define them in very similar ways:
"Self-awareness . . . is a neutral mode that maintains self-reflectiveness even in the midst of turbulent emotions.”Daniel Goleman
“Mindfulness means paying attention in a particular way: on purpose, in the present moment, and non-judgmentally.”Jon Kabat-Zinn
He suggests mindfulness and meditation alone can help develop our self-awareness, but suggests some more targeted formal self awareness practices can also help.
Self Awareness Practices
The author outlines two activities, beyond our normal mediation:
- “Body Scan” - to work at the physiological level, observing emotions and feelings in our body, and thus building our emotional awareness. This is simply systematically brining non-judging attention to parts of our body. What sensations we feel is not important, they important thing is attention.
- Journaling - working at the level of meaning and value we place on our feelings, to help us refine our self-assessment, to be honest.
Try at least one of the self awareness practices from the chapter
I chose to do a body scan session, which I then followed with a muse meditation. It felt good to take the time to do these. I actually used a guided body scan meditation audio I found on Spotify (saw some others were on YouTube also).
I journal a lot anyway, although my journaling isn’t so much about my feelings and is more a notebook of to-dos and lists and ideas and drawings. So I did the Journaling for Self-Assessment exercise in the book. I did it electronically in a secure place so that I know it’s just for my eyes only and so I can be honest with myself, express my fears and hopes and frustrations, and not worry about the form or structure the writing in the journal takes.
What was your experience of it? How did you feel?
Body Scan:
The key thing I enjoyed from the body scan was letting the focus be on my attention, and not what or if I was feeling anything in any part of my body. The author points out that “...the important thing is attention, not sensation”. So instead of my trying too hard to find, feel and “emotify” any physiological sensations, I was just allowing myself to keep bringing my attention back to each part of my body and trusting the process.
Journaling
As I did not write in a physical notebook (which others could find / read) but instead wrote in a private electronic place, I found myself empowered to write about experiences and feelings in a non-caged way. I had to remind myself to do this, as I’m so used to being aware of what I say and write. It was quite liberating, and I went way past the 2 minutes per prompt in the book’s exercise. Clearly blatent self honesty, when not just rambling thoughts in our minds, but actually written down, seems to be a bit more real, and useful, and conducive to taking action. We will see :-)
"My Emotions are Not Me"
What did you take away from the "My Emotions are Not Me" section?
The author suggests that with more mindfulness practice, we can start to shift from our emotions being seen as part of us (“I am sad”), to something that we feel happening in our bodies (“I feel sad”). This separation allows us to observe, almost as a third party, the emotions we are feeling, to create some space or gap between that feeling and our identity and our reaction. With looking at our emotions decide if or how, and when, we want to react, instead of feeling like we are that emotion and can’t escape it and that we must react (e.g. with more sadness or self-criticism).
We can decide that those feelings are just there, but they are not me, and I will observe them and let them be or pass on, but I can decide more constructively if, how and when I will respond (with a smile to myself to remind myself I’m good, or a walk with a friend, or not giving that angry thought and emotion any more energy and choosing to let it go, and again when the feeling arises again).


The page for Dredd usage no longer exists. Please follow one of the following links:
CLI usage
JavaScript usage


Gecode::ViewSelTieBreakDynamic< _View > Class Template Reference
[Generic view tie-breaking for brancher based on view and value selection]
View selection class for dynamic tie breaking. More...
#include <brancher-tiebreak.hpp>
Classes | |
| class | Choice |
| Choice for tie breakers More... | |
Public Types | |
| typedef _View | View |
| View type. | |
Public Member Functions | |
| ViewSelTieBreakDynamic (void) | |
| Default constructor. | |
| ViewSelTieBreakDynamic (Space &home, ViewSelVirtualBase< _View > **vsv, int n) | |
| Constructor for initialization. | |
| ViewSelStatus | init (Space &home, _View x) |
| Intialize with view x. | |
| ViewSelStatus | select (Space &home, _View x) |
| Possibly select better view x. | |
| Choice | choice (Space &home) |
| Return choice. | |
| Choice | choice (const Space &home, Archive &e) |
| Return choice. | |
| void | commit (Space &home, const typename ViewSelTieBreakDynamic< _View >::Choice &c, unsigned int a) |
| Commit to choice. | |
| void | update (Space &home, bool share, ViewSelTieBreakDynamic &vs) |
| Updating during cloning. | |
| void | dispose (Space &home) |
| Delete view selection. | |
Protected Attributes | |
| int | n |
| Number of tie breakers. | |
| ViewSelVirtualBase< _View > ** | tb |
| Tie breakers. |
Detailed Description
template<class _View>
class Gecode::ViewSelTieBreakDynamic< _View >
View selection class for dynamic tie breaking.
Definition at line 202 of file brancher-tiebreak.hpp.
Member Typedef Documentation
| typedef _View Gecode::ViewSelTieBreakDynamic< _View >::View |
View type.
Definition at line 210 of file brancher-tiebreak.hpp.
Constructor & Destructor Documentation
| Gecode::ViewSelTieBreakDynamic< View >::ViewSelTieBreakDynamic | ( | void | ) | [inline] |
Default constructor.
Definition at line 524 of file brancher-tiebreak.hpp.
| Gecode::ViewSelTieBreakDynamic< View >::ViewSelTieBreakDynamic | ( | Space & | home, | |
| ViewSelVirtualBase< _View > ** | vsv, | |||
| int | n | |||
| ) | [inline] |
Constructor for initialization.
Definition at line 528 of file brancher-tiebreak.hpp.
Member Function Documentation
| ViewSelStatus Gecode::ViewSelTieBreakDynamic< View >::init | ( | Space & | home, | |
| _View | x | |||
| ) | [inline] |
Intialize with view x.
Definition at line 536 of file brancher-tiebreak.hpp.
| ViewSelStatus Gecode::ViewSelTieBreakDynamic< View >::select | ( | Space & | home, | |
| _View | x | |||
| ) | [inline] |
Possibly select better view x.
Definition at line 545 of file brancher-tiebreak.hpp.
| ViewSelTieBreakDynamic< _View >::Choice Gecode::ViewSelTieBreakDynamic< _View >::choice | ( | Space & | home | ) | [inline] |
Return choice.
Definition at line 579 of file brancher-tiebreak.hpp.
| ViewSelTieBreakDynamic< _View >::Choice Gecode::ViewSelTieBreakDynamic< _View >::choice | ( | const Space & | home, | |
| Archive & | e | |||
| ) | [inline] |
Return choice.
Definition at line 585 of file brancher-tiebreak.hpp.
| void Gecode::ViewSelTieBreakDynamic< _View >::commit | ( | Space & | home, | |
| const typename ViewSelTieBreakDynamic< _View >::Choice & | c, | |||
| unsigned int | a | |||
| ) | [inline] |
Commit to choice.
Definition at line 592 of file brancher-tiebreak.hpp.
| void Gecode::ViewSelTieBreakDynamic< _View >::update | ( | Space & | home, | |
| bool | share, | |||
| ViewSelTieBreakDynamic< _View > & | vs | |||
| ) | [inline] |
Updating during cloning.
Definition at line 598 of file brancher-tiebreak.hpp.
| void Gecode::ViewSelTieBreakDynamic< _View >::dispose | ( | Space & | home | ) | [inline] |
Delete view selection.
Definition at line 607 of file brancher-tiebreak.hpp.
Member Data Documentation
int Gecode::ViewSelTieBreakDynamic< _View >::n [protected] |
Number of tie breakers.
Definition at line 205 of file brancher-tiebreak.hpp.
ViewSelVirtualBase<_View>** Gecode::ViewSelTieBreakDynamic< _View >::tb [protected] |
Tie breakers.
Definition at line 207 of file brancher-tiebreak.hpp.
The documentation for this class was generated from the following file:
- gecode/kernel/brancher-tiebreak.hpp (Revision: 12001)


| I l@ve RuBoard |
21.7 On Sinking the TitanicIn short, Python is really more than a language; it implies a development philosophy. The concepts of prototyping, rapid development, and hybrid applications certainly aren't new. But while the benefits of such development modes are widely recognized, there has been a lack of tools that make them practical without sacrificing programming power. This is one of the main gaps that Python's design fills: Python provides a simple but powerful rapid development language, along with the integration tools needed to apply it in realistic development environments. This combination arguably makes Python unique among similar tools. For instance, Tcl is a good integration tool but not a full-blown language; Perl is a powerful system administration language but a weak integration tool. But Python's marriage of a powerful dynamic language and integration opens the door to fundamentally faster development modes. With Python, it's no longer necessary to choose between fast development and fast execution. By now, it should be clear that a single programming language can't satisfy all our development goals. In fact, our needs are sometimes contradictory: the goals of efficiency and flexibility will probably always clash. Given the high cost of making software, the choice between development and execution speed is crucial. Although machine cycles are cheaper than programmers, we can't yet ignore efficiency completely. But with a tool like Python, we don't need to decide between the two goals at all. Just as a carpenter wouldn't drive a nail with a chainsaw, software engineers are now empowered to use the right tool for the task at hand: Python when speed of development matters, compiled languages when efficiency dominates, and combinations of the two when our goals are not absolute. Moreover, we don't have to sacrifice code reuse or rewrite exhaustively for delivery when applying rapid development with Python. We can have our rapid development cake and eat it too:
In typical Python development, a system's frontend and infrastructure may be written in Python for ease of development and modification, but the kernel is still written in C or C++ for efficiency. Python has been called the tip of the iceberg in such systems -- the part visible to end users of a package, as captured in Figure 21-6. Figure 21-6. "Sinking the Titanic" with mixed-language systemsSuch an architecture uses the best of both worlds: it can be extended by adding more Python code or by writing C extension modules, depending on performance requirements. But this is just one of many mixed-language development scenarios:
Python's design lets us apply it in whatever way makes sense for each project. |
| I l@ve RuBoard |


Clicker Script finds its inspiration from RCA Records Stereo Action Series from the 1960's. This signature elegant yet slightly bouncy script truly sings, and lends a happy go lucky flavor to any design.
Designed by Brian J. Bonislawsky and Jim Lyles for Astigmatic (AOETI).
To contribute to the project contact Brian J. Bonislawsky.


Stansberry scores 24 to lift Hawaii over New Orleans 79-71
HONOLULU (AP) - Eddie Stansberry had 24 points as Hawaii beat New Orleans 79-71 on Sunday.
Stansberry made 6 of 9 from the field, 4 of 7 from 3-point range and 8 of 10 from the free-throw line. Zigmars Raimo had 15 points and nine rebounds, Samuta Avea scored 12 points and Drew Buggs had 11 points and seven assists for Hawaii (4-2).
Bryson Robinson had 17 points and five steals and Gerrale Gates added 14 points and 10 rebounds for the Privateers (1-4), whose losing streak stretched to four games. Troy Green and Damion Rosser scored 13 points apiece.
Hawaii takes on San Francisco at home on Friday. New Orleans plays Eureka at home on Friday.
For more AP college basketball coverage: https://apnews.com/Collegebasketball and http://twitter.com/AP_Top25
Elements of this story were generated by Automated Insights, http://www.automatedinsights.com/ap, using data from STATS LLC, https://www.stats.com
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


This is an example site to showcase web-tools.
The index notably uses a different template from the rest of the website.


This guide will take you through the process of install NuclearJS and familiarize you with the concepts found in Nuclear to build Flux systems.
npm install --save nuclear-js
In this tutorial we will create a Nuclear flux system to show a list of products and add them to a shopping cart. Here's the plan:
Create a Reactor
Create actions to fetch products from a server and to add a product to the shopping cart
Create a ProductStore and ShoppingCartStore
Create getters to combine and transform our store data into a consumable format for the UI
Hook everything up to React
Although the example code is written using ES6, this is totally optional. NuclearJS fully supports ES5 out of the box
Nuclear stores work best when using ImmutableJS data structures. You will see toImmutable
quite often, this is simply sugar
to convert plain javascript arrays into Immutable.List
and objects to
Immutable.Map
. The use of toImmutable
is optional, you are free to use
any ImmutableJS data structure with no penalty.
Reactor
In Nuclear the Reactor
is the brains of the system. Generally you will only have one reactor for your application, however they are instanceable
for server-side rendering.
The reactor holds the application state in the form of an Immutable.Map
, while dispatching actions transform the application state.
reactor.js
import { Reactor } from 'nuclear-js'
const reactor = new Reactor({
debug: true
})
export default reactor
Actions are categorized as any function that calls reactor.dispatch(actionType, payload)
.
For our example we will start by creating actions to fetch products from a server and to add a product to the users shopping cart.
actionTypes.js
import keyMirror from 'react/lib/keyMirror'
export default keyMirror({
RECEIVE_PRODUCTS: null,
ADD_TO_CART: null,
CHECKOUT_START: null,
CHECKOUT_SUCCESS: null,
CHECKOUT_FAILED: null,
})
actions.js
import shop from '../../common/api/shop'
import reactor from './reactor'
import {
RECEIVE_PRODUCTS,
ADD_TO_CART,
CHECKOUT_START,
CHECKOUT_SUCCESS,
CHECKOUT_FAILED,
} from './actionTypes'
export default {
fetchProducts() {
shop.getProducts(products => {
reactor.dispatch(RECEIVE_PRODUCTS, { products })
});
},
addToCart(product) {
reactor.dispatch(ADD_TO_CART, { product })
},
}
Stores hold no state, instead they provide a collection of functions that transform current state into new state. They provide an initialize
hook used when
register with a reactor to define what actions they respond to.
In Nuclear there is no need to worry about stores knowing about other stores or store.waitsFor
. The sole responsibility of stores is to write or mutate application
state, the responsibility of reading application state falls on Getters.
stores/ProductStore.js
import { Store, toImmutable } from 'nuclear-js'
import { RECEIVE_PRODUCTS, ADD_TO_CART } from '../action-types'
// example product:
// {{"id": 1, "title": "iPad 4 Mini", "price": 500.01, "inventory": 2, "image": "../common/assets/ipad-mini.png"},"id": 1, "title": "iPad 4 Mini", "price": 500.01, "inventory": 2, "image": "../common/assets/ipad-mini.png"},
export default Store({
getInitialState() {
return toImmutable({})
},
initialize() {
this.on(RECEIVE_PRODUCTS, receiveProducts)
this.on(ADD_TO_CART, decrementInventory)
}
})
// store handlers transforms `(currentState, payload) => (newState)`
function receiveProducts(state, { products }) {
// transform an array of products to a map keyed by product.id
let newProducts = toImmutable(products)
.toMap()
.mapKeys((k, v) => v.get('id'))
return state.merge(newProducts)
}
function decrementInventory(state, { product }) {
return state.update(product.id, product => {
let currentInventory = product.get('inventory')
let newInventory = (currentInventory > 0) ? currentInventory - 1 : 0;
return product.set('inventory', newInventory)
})
}
stores/CartStore.js
import { Store, toImmutable } from 'nuclear-js'
import { ADD_TO_CART } from '../actionTypes'
const initialState = toImmutable({
// mapping of product.id to quantity
itemQty: {},
})
/**
* CartStores holds the mapping of productId => quantity
* and also maintains rollback information for the checkout process
*/
export default Store({
getInitialState() {
return initialState
},
initialize() {
this.on(ADD_TO_CART, addToCart)
}
})
function addToCart(state, { product }) {
let id = product.id
return (state.hasIn(['itemQty', id]))
? state.updateIn(['itemQty', id], quantity => quantity + 1)
: state.setIn(['itemQty', id], 1)
}
Registering the store with a reactor does two things:
main.js
import reactor from './reactor'
import ProductStore from './stores/ProductStore'
import CartStore from './stores/CartStore'
reactor.registerStores({
'products': ProductStore,
'cart': CartStore,
})
Notice that the above CartStore
does keeping track of entire items, only the id and quantity.
Nuclear allows us to use the ProductStore
as the singular source of truth for products by composing the the ProductStore
and CartStore
with Getters. This also eliminates any issues with state
becoming out of sync between stores.
Getters can take 2 forms:
A KeyPath - such as ['products']
or ['cart', 'itemQty']
which the latter equates to a state.getIn(['cart', 'itemQty'])
on the app state Immutable.Map
.
A Getter of the form:
[[KeyPath | Getter], [KeyPath | Getter], ..., tranformFunction]
getters.js
// it is idiomatic to facade all data access through getters, that way a component only has to subscribe to a getter making it agnostic
// to the underlying stores / data transformation that is taking place
const products = ['products']
const cartProducts = [
['products'],
['cart', 'productQuantities'],
(products, quantities) => {
return quantities.map((quantity, productId) => {
let product = products.get(productId)
return product
.set('quantity', quantity)
.remove('inventory') // inventory shouldnt be known in cart
})
}
]
const cartTotal = [
cartProducts,
(items) => {
const total = items.reduce((total, item) => {
return total + (item.get('quantity') * item.get('price'))
}, 0) || 0
return total.toFixed(2)
}
]
export default { products, cartProducts, cartTotal }
First lets expand our main file to initiate the fetch for products.
main.js
import reactor from './reactor'
import actions from './actions'
import ProductStore from './stores/ProductStore'
import CartStore from './stores/CartStore'
reactor.registerStores({
'products': ProductStore,
'cart': CartStore,
})
actions.fetchProducts()
components/App.jsx
import React from 'react'
import CartContainer from './CartContainer.jsx'
import ProductsContainer from './ProductsContainer.jsx'
export default React.createClass({
render() {
return (
<div>
<ProductsContainer />
<CartContainer />
</div>
)
}
});
Every Nuclear Reactor comes with reactor.ReactMixin
to easily create an alway-in-sync binding between any KeyPath or Getter value
and a React component's state.
The ability to observe any piece of composite data is immensely powerful and trivializes a lot of what other frameworks work hard to solve.
To use simply include the reactor.ReactMixin
and implement the getDataBindings()
function that returns an object of state properties
to KeyPath
or Getter
. Nuclear will take care of the initial sync, observation and destroying the subscription when on componentWillUnmount
.
components/CartContainer.jsx
import React from 'react'
import Cart from '../../../common/components/Cart.jsx'
import reactor from '../reactor'
import getters from '../getters'
import actions from '../actions'
export default React.createClass({
mixins: [reactor.ReactMixin],
getDataBindings() {
return {
products: getters.cartProducts,
total: getters.cartTotal,
}
},
onCheckoutClicked: function () {
// we will fill this in a bit later
if (!this.state.products.length) {
return;
}
},
render: function () {
return (
<Cart products={this.state.products} total={this.state.total} onCheckoutClicked={this.onCheckoutClicked} />
)
},
})
components/ProductsContainer.jsx
import React from 'react'
import ProductItem from '../../../common/components/ProductItem.jsx'
import ProductsList from '../../../common/components/ProductsList.jsx'
import reactor from '../reactor'
import getters from '../getters'
import actions from '../actions'
const ProductItemContainer = React.createClass({
onAddToCartClicked() {
// we will implement this in the next section
},
render() {
return (
<ProductItem product={this.props.product} onAddToCartClicked={this.onAddToCartClicked} />
)
}
})
export default React.createClass({
mixins: [reactor.ReactMixin],
getDataBindings() {
return {
products: getters.products,
}
},
render: function () {
return (
<ProductsList title="Flux Shop Demo (NuclearJS)">
{this.state.products.map(product => {
return <ProductItemContainer key={product.get('id')} product={product.toJS()} />
})}
</ProductsList>
)
},
})
There you have it, we've created a fully functioning Nuclear Reactor to manage our application's state. By this point the power of NuclearJS should be apparent.
So go start building something, or if you want to see more examples checkout the next section Async Actions and Optimistic Updates.


WITNESS LIST Business & Industry Committee March 29, 2005-2:00P HB 629 For: Risk, Raymond (Texas Construction Association) HB 1344 For: Arabie, Joe (Texas AFL-CIO) Gammon, Maxine (Self) Turner, Lucille (Self) Against: Berkel, Joseph A. (River Place Residential Community Association Inc) Daly, William (Self) Heyer, Connie (Texas Community Associations Institute) McLin, Amy (Self) HB 1380 For: Thompson, Helena Stevens (The City of Dallas Economic Development Department) HB 1389 For: Guerrero, Debra (Self and The NRP Group) On: Garvin, John (Texas Affiliation of Affordable Housing Providers (TAAHP)) HB 1639 On: Fisher, Rebecca (Texas Attorney Gerneral) Kincaid, Mark (Texas Trial Lawyers Association) Prud'homme, Tommy (Attorney General) HB 1770 For: Daly, William (Self and Hackberry Creek HOA) Heyer, Connie (Texas Community Associations Institute) McLin, Amy (Self) HB 1823 For: Diaz, Eva (Self and Houston ACORN) Doggett, Robert (Texas Low Income Housing Information Service) Henneberger, John (Texas Low Income Housing Information Service) Leal, Richard (Self) Lewis, Rosa (Self and Dallas & Ft. Worth ACORN) McElroy, Toni (Self and Houston ACORN) Rubio, Martha (Self and Houston ACORN) HB 1854 On: Kidwell, Dudley (Instachek) Swindell, Scott (Checksmart Recovery American Collectors Association of Texas) HB 2215 For: Adolph, Tom (Self) Against: Berkel, Joseph A. (River Place Residential Community Association, Inc) Heyer, Connie (Texas Community Associations Institute) Hood, Kyle (Self) McLin, Amy (Self) HB 2452 On: Bartlett, Rodger (Self) HB 2930 On: Moore, John (Texas Workforce Commission)


US residents warned not to eat Romaine lettuce from Salinas Valley
An E.coli outbreak in the U.S. has led to health officials warning people not to eat romaine lettuce grown in Salinas, California.
The notice comes almost exactly one year after a similar outbreak led to a blanket warning about romaine.
The latest incident has seen 40 people falling ill across 16 states since 10 November, according to the Centre for Disease Control.
Officials urged Americans not to eat the leafy green if the label doesn’t say where it was grown.
They also urged supermarkets and restaurants not to serve or sell the lettuce, unless they’re sure it was grown elsewhere.
The warning applies to all types of romaine from the Salinas region, include whole heads, hearts and pre-cut salad mixes.
Laura Gieraltowski, lead investigator of the outbreak at the U.S. Centre for Disease Control and Prevention, said: ‘We’re concerned this romaine could be in other products.’
Advertisement Advertisement
Officials said their investigations into the source of the E.coli outbreak led them to farms in Salinas.
Salinas is a major growing region for romaine from around April to current time of year, when growing shifts south to Yuma, Arizona.
After last year’s pre-Thanksgiving outbreak was linked to romaine, the produce industry agreed to voluntarily label the lettuce with harvest regions.
Health officials said that would make it easier to trace romaine and issue more specific public health warnings when outbreaks happen.
Officials never identified exactly how romaine might have become contaminated in past outbreaks.
But another outbreak in spring 2018 that sickened more than 200 people and killed five was traced to tainted irrigation water near a cattle lot.
E.coli is found in the faeces of animals such as cows.
Although officials have not made explained why romaine is linked to E.coli, food safety experts have highlighted the difficulties of eliminating risk for produce grown in open fields and eaten raw.
Industry groups have claimed that they have improved safety measures following last year’s outbreaks, including expanding buffer zones between growing fields and livestock.
Got a story for Metro.co.uk?
Get in touch with our news team by emailing us at<EMAIL_ADDRESS>For more stories like this, check our news page.


0
0
@
Speedie-gram brings Instagram to your Opera speeddial. From the options tab you can choose which feed you want to view and how the Instagrams should be displayed.
If you have any feedback or issues contact me on Twitter or Github
This extension uses the Instagram™ API and is not endorsed or certified by Instagram. All Instagram(tm) logoes and trademarks displayed on this extension are property of Instagram.
Icons by Yummygum


Get control of your WiFi/internet
Griggi lets you control your internet without needing expensive hardware & sys-admins
- Manage your internet from anywhere using Griggi Cloud Router
- Multi-ISP support with speed monitor. Plug in multiple ISPs & get 100% uptime
- Network Access Control with data,speed and device limits at user level
- Get alerts into inbox before user complaint
- Automatic traffic prioritization prevents download, youtube or torrents from hogging your bandwidth
24x7 support for any issue with your Network
Tested to support 5 to 500 users at ISP speed of 1 Gbps
Totally free 2 weeks demo (router cost refunded post demo)
Request Demo


Toggle navigation
Planning Poker
Join a game
Host a game
Github
Connections:
You are the host
Enter a name for the game:
Name:
Start Game
You are hosting a game, enter the stories in the text box below and click start.
Story:
New story
Points in:
Responders


From:Enron Announcements To:All Enron Houston Sent:2017-01-11T04:46:12.0000000Z Subject:Remote control your air-conditioner and heater
NewPower to offer another pilot program to Houston employees
Free remote energy management solution helps you to manage rising energy
bills.
NewPower is launching a revolutionary technology pilot to the first 500
people to sign up in the Houston area. The NewPower Connections Remote
Energy Management Solution is a pilot program designed to give consumers
control of their thermostat via the Internet. The program will allow
thermostats to be adjusted from anywhere, with any Internet-enabled device,
including computers, web-enabled cell phones, palm OS devices, or pocket
PCs. Sears Home Central will install and service the Remote Energy
Management Solution at no charge throughout the duration of the pilot
program. For a typical household, the three-month pilot could result in up
to 10 percent to 15 percent utility bill savings, based on personal usage and
the size of your home.
Be among the first to participate absolutely free.
Enrollment with the NewPower Connections Remote Energy Management Solution
pilot program starts May 14 and continues through the end of the month. For
more information about this offer, visit NewPower's table located in the
Plaza of the Enron Building near the down escalator from 11:00 a.m. to 2 p.m.
during the week of May 14. To become a pilot participant you need only to be
a homeowner in the Houston area and have Internet access.  For more
information about NewPower Connections, send an e-mail to
<EMAIL_ADDRESS>Disclaimers:
Any contract for goods or services that is entered into by an Enron employee
with respect to the NewPower program shall be solely between NewPower and
such employee. Enron assumes no obligation on behalf of NewPower and makes
no representations, warranties, or guaranties with respect to NewPower, any
goods or services offered or provided by NewPower. Home.Enron.com
***********
EDRM Enron Email Data Set has been produced in EML, PST and NSF format by ZL Technologies, Inc. This Data Set is licensed under a Creative Commons Attribution 3.0 United States License <http://creativecommons.org/licenses/by/3.0/us/> . To provide attribution, please cite to "ZL Technologies, Inc. (http://www.zlti.com)."
***********
California


Next: API<3>, Previous: Error handling, Up: Top [Contents][Index]
By default, when asked to compile a template, Djula searches the file
system, in the directories you told it to look into. When you render a
template that extends
or includes
another one, Djula
searches for that one too. Moreover, Djula will try to re-compile a
template at each access, whenever you reload a web page. This is very
convenient for development, it doesn’t bother us to deploy our
application from sources (although you may want to disable
auto-reloading), but it prevents us from building a standalone binary
that will run on another machine, when the search path’s directories
don’t exist anymore.
To build a standalone binary, we will need to:
djula:*current-store*
as an instance of memory-template-store
,
setf djula:*recompile-templates-on-change* nil)
.
Below is a simple ASDF system declaration that declares two templates as static files located in the “src/templates” directory:
(asdf:defsystem "djula-binary" :depends-on (:hunchentoot :djula) :components ((:module "src" :components ((:file "web"))) (:module "src/templates" :components ;; Order is important: the ones that extend base.html ;; must be declared after it, because we compile all of them ;; at build time one after the other. ((:static-file "base.html") (:static-file "search.html"))) (:static-file "README.md")) :build-operation "program-op" :build-pathname "djula-binary" :entry-point "djula-binary::main" :description "How to embed Djula templates in a self-contained binary.")
At the top level of “src/web.lisp”, we set Djula’s store to a memory
store, and we disable the autoreload feature. This code would be
called when we load
the .lisp file, so it will be called when
we create the binary with (asdf:make :djula-binary)
.
(setf djula:*current-store* (make-instance 'djula:memory-template-store :search-path (list (asdf:system-relative-pathname "djula-binary" "src/templates/"))) ;; meaningful trailing / djula:*recompile-templates-on-change* nil)
Now, we compile all those declared templates. We use the
djula:list-asdf-system-templates
utility that will return a
list of pathnames to our templates.
(mapcar #'djula:compile-template* (djula:list-asdf-system-templates :demo-djula-in-binaries "src/templates"))
Finally, you can declare templates as usual in your application:
(defparameter +base.html+ (djula:compile-template* "base.html"))
and render a template that extends
another one, it will work
(and that was actually the main difficulty: the default store always
looks for this inherited template on the filesystem).
You can now send to your web server your self-contained, one file binary that you built on your machine or on a CI server.
Note: For a real-world web application you’ll likely need Deploy to ship foreign libraries in your binary.
| • API |
Up: Deployment [Contents][Index]
Up: Deployment [Contents][Index]


QML Advanced Tutorial 2 - Populating the Game Canvas
Generating the blocks in JavaScript
Now that we've written some types, let's start writing the game.
The first task is to generate the game blocks. Each time the New Game button is clicked, the game canvas is populated with a new, random set of blocks. Since we need to dynamically generate new blocks for each new game, we cannot use Repeater to define the blocks. Instead, we will create the blocks in JavaScript.
Here is the JavaScript code for generating the blocks, contained in a new file, samegame.js
. The code is explained below.
var blockSize = 40; var maxColumn = 10; var maxRow = 15; var maxIndex = maxColumn * maxRow; var board = new Array(maxIndex); var component; //Index function used instead of a 2D array function index(column, row) { return column + (row * maxColumn); } function startNewGame() { //Delete blocks from previous game for (var i = 0; i < maxIndex; i++) { if (board[i] != null) board[i].destroy(); } //Calculate board size maxColumn = Math.floor(background.width / blockSize); maxRow = Math.floor(background.height / blockSize); maxIndex = maxRow * maxColumn; //Initialize Board board = new Array(maxIndex); for (var column = 0; column < maxColumn; column++) { for (var row = 0; row < maxRow; row++) { board[index(column, row)] = null; createBlock(column, row); } } } function createBlock(column, row) { if (component == null) component = Qt.createComponent("Block.qml"); // Note that if Block.qml was not a local file, component.status would be // Loading and we should wait for the component's statusChanged() signal to // know when the file is downloaded and ready before calling createObject(). if (component.status == Component.Ready) { var dynamicObject = component.createObject(background); if (dynamicObject == null) { console.log("error creating block"); console.log(component.errorString()); return false; } dynamicObject.x = column * blockSize; dynamicObject.y = row * blockSize; dynamicObject.width = blockSize; dynamicObject.height = blockSize; board[index(column, row)] = dynamicObject; } else { console.log("error loading block component"); console.log(component.errorString()); return false; } return true; }
The startNewGame()
function deletes the blocks created in the previous game and calculates the number of rows and columns of blocks required to fill the game window for the new game. Then, it creates an array to store all the game blocks, and calls createBlock()
to create enough blocks to fill the game window.
The createBlock()
function creates a block from the Block.qml
file and moves the new block to its position on the game canvas. This involves several steps:
- Qt.createComponent() is called to generate a type from
Block.qml
. If the component is ready, we can callcreateObject()
to create an instance of theBlock
item. - If
createObject()
returned null (i.e. if there was an error while loading the object), print the error information. - Place the block in its position on the board and set its width and height. Also, store it in the blocks array for future reference.
- Finally, print error information to the console if the component could not be loaded for some reason (for example, if the file is missing).
Connecting JavaScript components to QML
Now we need to call the JavaScript code in samegame.js
from our QML files. To do this, we add this line to samegame.qml
which imports the JavaScript file as a module:
import "samegame.js" as SameGame
This allows us to refer to any functions within samegame.js
using "SameGame" as a prefix: for example, SameGame.startNewGame()
or SameGame.createBlock()
. This means we can now connect the New Game button's onClicked
handler to the startNewGame()
function, like this:
Button { anchors { left: parent.left; verticalCenter: parent.verticalCenter } text: "New Game" onClicked: SameGame.startNewGame() }
So, when you click the New Game button, startNewGame()
is called and generates a field of blocks, like this:
Now, we have a screen of blocks, and we can begin to add the game mechanics.
Files:


CLEANING SERVICES
Fast Professional Cleaning and Printing Services
Top-quality and affordable services to help you renewing what you thought was lost, anything can have a new start.
About
We are a small business that provides services for cleaning: Carpets/Sofa's/Cars interior - upholstery in general.
We are using professional equipment from Karcher. For details please contact us!


Posted on Oct 06, 2017 at 09:00 AM
Chatbots are computer programs that we interact with via text or voice interface. Today's chatbot are more intelligent with use of AI models in the backend. You can read more here.
A basic chatbot architecture consists of two main components, nlu and a response system.
In this blog we will look to build terminal based chatbot real quick using rasa framework.
Rasa is an opensource framework which enables one to build chatbot in their own environment with minimal effort. You can learn more about rasa here.
My Github repo for rasa-nlu and rasa-core.
As of writing this blog, rasa-core is in early access mode and access can be requested via rasa website.In this blog we will create a bot which is able to get product information based on name and version of the software, product information could be hardware related or feature related. Bot will fetch these info from postgres database. Bot can also deploy a software to tomcat if asked.
Install rasa-nlu using below command
sudo pip install rasa_nlu
Rasa NLU comes with following implementations of models,
We will be using spaCy_sklearn for NLU. Read more about spaCy here and about sklearn here.
We start by creating configuration file that tells the rasa nlu framework which model we want to use, what is the path to store the model created and where to find the training dataset.
file name: "config_spacy.json"
{
"pipeline": "spacy_sklearn",
"path" : "./models",
"data" : "./data/sample-dataset.json"
}
Next, we need to prepare the dataset. Dataset format accepted by rasa-nlu framework is as follows,
{
"text": "what all features are available in awk 6.0?" ,
"intent":"product_information",
"entities": [
{
"start":9,
"end":17,
"value":"feature",
"entity":"whatisrequired"
},
{
"start":35,
"end":38,
"value":"awk",
"entity":"software_name"
},
{
"start":39,
"end":42,
"value":"6.0",
"entity":"software_version"
}
]
}
Here, we have entities {whatisrequired,software_name,software_version} and intent is product_information.
It is important that we provide enough examples with different variations of the statements so that model is able to generalize well. Incase we dont have enough examples of real data, then we can create data with dummy data, like resturant name,locations can be dummy.
Once we have acceptable amount of training data it is time to train.
Training the model with below command,
python -m rasa_nlu.train -c ./config_spacy.json
While the model is being trained, you will see outputs similar to these,
INFO:rasa_nlu.utils.spacy_utils:Trying to load spacy model with name 'en'
INFO:rasa_nlu.components:Added 'nlp_spacy' to component cache. Key 'nlp_spacy-en'.
INFO:rasa_nlu.converters:Training data format at ./data/demo-rasa.json is rasa_nlu
INFO:rasa_nlu.training_data:Training data stats:
- intent examples: 42 (4 distinct intents)
- found intents: 'affirm', 'goodbye', 'greet', 'restaurant_search'
- entity examples: 11 (2 distinct entities)
- found entities: 'cuisine', 'location'
INFO:rasa_nlu.model:Starting to train component nlp_spacy
INFO:rasa_nlu.model:Finished training component.
INFO:rasa_nlu.model:Starting to train component tokenizer_spacy
INFO:rasa_nlu.model:Finished training component.
INFO:rasa_nlu.model:Starting to train component intent_featurizer_spacy
INFO:rasa_nlu.model:Finished training component.
INFO:rasa_nlu.model:Starting to train component intent_entity_featurizer_regex
INFO:rasa_nlu.model:Finished training component.
INFO:rasa_nlu.model:Starting to train component ner_crf
INFO:rasa_nlu.model:Finished training component.
INFO:rasa_nlu.model:Starting to train component ner_synonyms
INFO:rasa_nlu.model:Finished training component.
INFO:rasa_nlu.model:Starting to train component intent_classifier_sklearn
Fitting 2 folds for each of 6 candidates, totalling 12 fits
[Parallel(n_jobs=1)]: Done 12 out of 12 | elapsed: 0.1s finished
Here you can see that it has picked up the intents and entity correctly and summarizes all the details before starting with the training process.
Thats it!, our NLU model is trained, a new directory is created under models folder.
Now, we need to prepare the response generation part.
In a simple chatbot, implementating a response generation system can be a lookup against intent and entity in a database, but we want to put some kind of intelligence to it so we will use rasa-core.
Rasa-core provides intelligence by using machine learning model for predicting next action to take based on intent, entity and past ongoing conversation. Rasa-core serialises these into tracker object and passes it as features to the model to predict next action. Ofcourse before model could predict, we need to train it with dataset.
Once you have the access to rasa-core github, start by installing rasa-core with below command,
git clone https://github.com/RasaHQ/rasa_dm.git
cd rasa_dm
pip install -r requirements.txt
pip install -e .
The first step in rasa-core is to create domain.yml
file, for our bot, domain file is here,
Now it is time to prepare actions.py file, you can refer to code here In the actions.py file I have hardcoded feature and hardware part but it can easily be extended to retreive this information from any external service.
actions.py
implements following
Next comes policies.py
,
Policies are model or a simple implementation for selecting what is the best action to take given intent, entity, slots.
Here I have implemented Keras policy, keras is provided inbuilt as library in rasa-core, hence easier to use. There is not much effort put in this policy because predicting action in this implementation of bot is straight forward. In case there is complex requirement then this policy can be extended to use complex models.
Now we have domain.yml,actions.py,policy.py
ready.
Next up is preparing stories,
Stories are used to create conversational dialogs or flows that is expected by bot. It is used to train policy model.
Implementation of stories.md can be found here.
Once all these are ready, its now time to train.
To train, we create an agent object.
Agent brings interpreter, policy and domain together.
For training we don't need interpreter, only stories and domain file is needed.
Once the training is complete, a folder is created within models.
We create another agent instance to use intrepreter and the model and run the bot via terminal. Code for this is here.
Output from above bot implementation,
user: hi
bot : hello there
user: hat are the features of WatsonSearch
bot : what is the software version?
user: .0.1
bot : feature for software WatsonSearch version 0.0.1 is DUMMY VARIABLE 1 DUMMY VARIABLE 2
user: an you deploy it please?
bot : what is the source_location?
user: home/cdpai/software_to_deploy
bot : what is the destination_location?
user: tomcat
bot : Missing configuration in 'software' table, no row in software table with name WatsonSearch and version 0.0.1
bot : There are no configurations defined, will try to deploy with information we have
**LOG TRUNCATED**
bot : WatsonSearch/search/vendor.tomcat.bundle.js.gz
Using CATALINA_BASE: /home/cdpai/tomcat/apache-tomcat-8.5.20
Using CATALINA_HOME: /home/cdpai/tomcat/apache-tomcat-8.5.20
Using CATALINA_TMPDIR: /home/cdpai/tomcat/apache-tomcat-8.5.20/temp
Using JRE_HOME: /usr
Using CLASSPATH: /home/cdpai/tomcat/apache-tomcat-8.5.20/bin/bootstrap.jar:/home/cdpai/tomcat/apache-tomcat-8.5.20/bin/tomcat-juli.jar
Using CATALINA_BASE: /home/cdpai/tomcat/apache-tomcat-8.5.20
Using CATALINA_HOME: /home/cdpai/tomcat/apache-tomcat-8.5.20
Using CATALINA_TMPDIR: /home/cdpai/tomcat/apache-tomcat-8.5.20/temp
Using JRE_HOME: /usr
Using CLASSPATH: /home/cdpai/tomcat/apache-tomcat-8.5.20/bin/bootstrap.jar:/home/cdpai/tomcat/apache-tomcat-8.5.20/bin/tomcat-juli.jar
Tomcat started.
bot : Deployment status (True, 'Deployment successful')


sports law
Sports law
Sports law is an umbrella term used to describe the legal issues at work in the world of both amateur and professional sports.
Sports law overlaps substantially with labor law, contract law, competition or antitrust law, and tort law.


Vikings star Georgia Hirst reveals her favorite spots in Ireland
by In partnership withSometimes work can bring you to the most amazing places, and for actress Georgia Hirst, that's been Ireland. After five years living there while filming the History channel series Vikings, Hirst has some suggestions for your next visit.
Georgia Hirst plays the fierce and beloved character of Torvi on Vikings, which will air its sixth and final season in December. Vikings filmed primarily in Ireland, using the rugged landscape of County Wicklow as a stand-in for Scandinavia.
During this time, Hirst found some favorite spots in Ireland, which she shared in the following video with Tourism Ireland.
The first is, of course, Luggala in County Wicklow, which represents Kattegat in the series. Just 28 miles outside of Dublin, it feels like a world away from the hustle and bustle of the city and is a popular destination for walking and hiking. With its rolling peaks and valleys overlooking Lough Tay, it was a perfect setting for Vikings.
During her time living in Ireland, Hirst made a home for herself in Dalkey, the charming seaside town just outside of Dublin. It was a fitting choice given that Dalkey has its own Viking roots!
Hirst recommends taking a trip over to see the historic ruins on Dalkey Island and she even dishes on her absolute favorite restaurant: De Ville's. If you want to follow in her expert footsteps, try their crab and avocado cocktail, an elderflower gin sour, and the chocolate mousse - yum.
Go to Ireland.com to read more about Vikings in Ireland and discover other popular TV shows and movies filmed around the island.


Stodopidly
My next thing to do is...


"ZAR",
}
assert (
from_currency in currency_set
), f"from_currency must be one of {currency_set}"
assert (
to_currency in currency_set
), f"to_currency must be one of {currency_set}"
url = "https://api.exchangeratesapi.io"
if historical_date:
check("historical_date", historical_date, [datetime, date])
if isinstance(historical_date, datetime):
if historical_date < datetime(1999, 1, 4):
raise ValueError(
"historical_date:datetime must be later than 1999-01-04!"


First Number
Second Number
Person Object
name
age
occupation
create
1 Year Later
Check
display elliott
concatinate
Show current array
add
delete
increment numbers
FizzyBuzzy
Iteration
Compute
triple number
Compute
Create
Change
Delete
Sqaud:
Name:
Name:
Name:
Search


As you build circuits that are more and more sophisticated, you will want to build smaller circuits that you can use multiple times as a module nested within larger circuits. In Logisim, such a smaller circuit that is used in a larger circuit is called a subcircuit.
If you're familiar with computer programming, you're familiar with the subprogram concept, whether it's called a subroutine, function, method, or procedure in your favored language. The subcircuit concept is analogous to this, and it serves the same purpose: To break a large job into bite-sized pieces, to save the effort of defining the same concept multiple times, and to facilitate debugging.
Creating circuits
Using subcircuits
Editing subcircuit appearance
Debugging subcircuits
Logisim libraries
Next: Creating circuits.


Oldham stabbing: Four teens seriously injured after being knifed outside leisure centre
Four teenage boys aged between 16 to 19 have been stabbed outside the Oldham Leisure Centre in Greater Manchester
by Chris Slater, Helen JohnsonFour teenagers have been wounded after a stabbing outside a leisure centre in Greater Manchester.
Police say they were called to the leisure centre in Oldham around 4.30pm this afternoon.
Greater Manchester Police said four teenage boys aged between 16 and 19 were hurt, but their injuries are not believed life-threatening, reports the Manchester Evening News.
No further details about the incident have so far been released.
Emergency services remain at the scene and the area around the leisure centre, but the cordon has since been lifted.
Earlier there were reports of traffic problems in the area as a result of the incident.
The cordon was on the large concourse at the front of the leisure centre.
Centre users can still access the facility from the side entrance off the car park, and it has not been closed to the public while police investigate the incident nearby.


Our Tutors
Meet our vast array of tutors who are dedicated to providing an expectional tutoring experience.
How it Works
Sign-up for one of our tutoring packages
Review the profiles of our tutors in the area of your interest
Go to the Book Now Tab at the right of the page
Select your prefered Tutor (Day/Time) - At least One Day in Advance
Early Child-hood
Tomika Bourne
B.Ed Degree - Special Education - UWI
Luceena Weekes
B.Sc. Literature (2018) - UWI, Former Primary School Teacher (over Six Years Experience)
Alicia Best
B.Sc. Literatures in English with Education - UWI, Associate Degree- English Literature and French Literature -BCC
Common Entrance Examination
Alicia Best
B.Sc. Literatures in English with Education - UWI, Associate Degree- English Literature and French Literature -BCC
Jessie Barnett
UI/UX Designer
Terry Fletcher
Web Developer
Caribbean Examination Council
Danielle Francis
English A, Principles of Business, French
Jessie Barnett
UI/UX Designer
Terry Fletcher
Web Developer
Skype Tutors
Lauren Cox
Creative Director
Jessie Barnett
UI/UX Designer
Terry Fletcher
Web Developer
Foreign Language Tutors
Lauren Cox
Creative Director
Jessie Barnett
UI/UX Designer
Terry Fletcher
Web Developer


MisitioBA
freelance [ fullstack javascript ] web development
"Being out on the edge, with everything at risk, is where you learn and grow the most"Jim Whittaker


What I think about DBC so far...
Originally I was a lot more nervous about DBC than I care to admit. The past few years havent exactly been overwhelming (or even whelming but whatever) so I was trying not to get my hopes up or get too invested in whatever I was planning to do next. This mentality was a mistake. Everybody I've met from DBC and everything I've seen has a very unique glow to it. It's so fascinating to see such a transparent, motivated group of people who really buy into the idea of being the rawest kind of awesome. I'm still anxious about workload, moving to NY and being thrown into a completely new environment, but seeing how highly everybody seems to regard the ethich and style of work done with DBC I've got 100% confidence that all I need to do is listen and work hard and things will end up fine. I look forward to meeting everbody in person and swan diving into all of this incredible experience.


--- layout: archive title: Zulip Chat Archive permalink: /stream/113489-new-members/topic/exercise.20.202.20on.20ch3.html ---
I seem to have completed the exercise, but only through pattern recognition and some guesswork. Could someone explain to me why this works?
variables (p q : Prop)
example (h : ¬(p ↔ ¬p)) :=
begin
intros,
apply iff.intro,
exact h,
apply false.elim,
end
--assume hw : p ↔ ¬ p,
--show false, from h hw
I wrote 2 proofs- one with tactics and one without. The one without seems like cheating, but shouldn't lean see that? Why did it work? Also when clicking around the commas in the tactics proof there seem to be special moments when lean creates multiple goals that are somehow identical (?) and then later they vanish. Specifically, this happens on the second line after begin
. Some clarification on this would be great. I want to be able to appreciate odd proofs like this (if it even is a proof...).
That example
is a bit weird, you should be trying to prove this instead:
variables (p q : Prop) example : ¬(p ↔ ¬p) := sorry
thanks- I was afraid I wrote it wrong to begin with... I should remember not to write it like I did then.
the proof felt like cheating because it was cheating - you assumed what you were trying to prove.
parameters, like h, are hypotheses.
Yes, you have been undone by the missing colon.
the proof felt like cheating because it was cheating - you assumed what you were trying to prove.
parameters, like h, are hypotheses.
Precisely. Now I think I have proven it, but I don't understand how the assume
tactic works.
example : ¬(p ↔ ¬p) := begin intro h, cases h, let hp: p, from h_mpr (assume hp: p, have hnp : ¬ p, from h_mp hp, show false, from hnp hp), show false , from (h_mp hp) hp, end
I seems to work within the parenthesis and I can then apply h_mpr on what "resolves" to be hp: p
. It seems that what is within parenthesis is the "construction" of such a hypothesis, but it looks very odd. Is this correct?
Also why can't I use assume
outside of the parentheses? I imagine it is something like a "namespace" issue, but maybe some elaboration would be helpful.
Additionally, lean seems to complain whenever assume
is used outside of these parentheses, saying it expected a let
statement. I figure this is some of lean's advanced pattern matching at work, but it seems bizarre that it can guess what you should write, but still allows you to either fail or write things some alternate, equivalent way. I imagine an explanation of the assume
question above will help explain this situation too.
Thank you.
Is this correct?
It compiles, so it's correct in that sense. I don't think I ever use assume
. I rewrote your proof the way I would probably have written it.
variable (p : Prop) example : ¬(p ↔ ¬p) := begin intro h, cases h, have hp: p, { apply h_mpr, intro hp, have hnp : ¬ p := h_mp hp, exact hnp hp }, exact (h_mp hp) hp end
It's exactly the same proof, but I don't ever use from
or assume
.
You use let
at some point but that's for defining data (stuff whose type is in Type
). You can use have
to make proofs (stuff whose type is in Prop
).
You use
let
at some point but that's for defining data (stuff whose type is inType
). You can usehave
to make proofs (stuff whose type is inProp
).
Thank you for this clarification and the rewritten proof. I was thinking of let
as in the let of regular math proofs. Your proof is much nicer and uses tactics in the way I imagine one is supposed to.
Here's the same proof again in term mode:
example : ¬(p ↔ ¬p) := λ ⟨h_mp, h_mpr⟩, have hp : p := h_mpr (λ hp, h_mp hp hp), h_mp hp hp
assume is not a tactic, afaik assume a : b, c
is merely syntactic sugar for λ a : b, c
, i.e. it is just syntax to define a function without a name (also known as anonymous function, or just "lambda") in term mode.
so to understand why your code doesn't work without the brackets, you need to understand how precedence works in lambda calculus (or at least its implementation in lean).
essentially, lambda terms always capture everything until the very end. i.e. λ a, b c d e f g
will be read as (λ a, b c d e f g)
The whole "assume, from" stuff is some sort of half way house which I never came to terms with.
as far as i understand it it's really just a bunch of syntactic sugar for lambdas in term mode and their corresponding type annotations
Yes I think you're right.
assume is not a tactic,
And here's the answer to my other doubt. Wonderful! So I should simply use \lambda
whenever I would have used assume
. This connection was very useful!
Also it seems I more or less proved this by accident! How fortunate...
The whole "assume, from" stuff is some sort of half way house which I never came to terms with.
Again reassuring since it seems you've gotten quite far along the road without needing to!
I did absolutely everything in tactic mode for ages, and then slowly got to grips with term mode. But I had a maths background and knew nothing about lambdas.
The whole "assume, from" stuff is some sort of half way house which I never came to terms with.
Again reassuring since it seems you've gotten quite far along the road without needing to!
Yes, for example there is no such thing as "assume, from"
ha ha, just shows you how little I know about it :-)
at this point it's maybe a good idea to post something some other people and i made at @Sebastian Ullrich 's institute for teaching untyped lambda calculus, maybe it helps a little.
https://pp.ipd.kit.edu/lehre/misc/lambda-ide/Wavelength.html
you can reduce lambda terms and step through the reduction by yourself if you like.
there's no proper tutorial yet because i never got around to turning this into a full blown "tutorial on the lambda calculus", but it might be helpful for visualizing stuff and giving students something to play with.
some of the "exercises" are randomly generated, so don't take that too seriously.
edit: oh, also, the share button doesn't work because the institute didn't want to enable the corresponding database ;)
I did absolutely everything in tactic mode for ages, and then slowly got to grips with term mode. But I had a maths background and knew nothing about lambdas.
I share such a combination, so I'll likely keep asking you questions
at this point it's maybe a good idea to post something some other people and i made at Sebastian Ullrich 's instute for teaching untyped lambda calculus, maybe it helps a little.
I will look into this now!
and thanks again :) - hilarious bit about the share button.  The exercise wanted us to try it otherwise though, which was kind of challenging.
Yeah. Figuring out all those constructive exercises is fun, interesting, difficult, kind of cool, and then it turns out that it's completely irrelevant because you just open classical anyway.
lol irl- I figured as much would be the case. :joy:
(at least if you're formalising the sort of stuff I'm formalising -- YMMV)
hmm, well I think you do number theory so not exactly, but do you know if there are computability things in lean? I'd like to see those and maybe get a better feel for lean through that. Otherwise I guess I have the task of formalizing it first...? (Or perhaps you just haven't heard of it and it's out there)
I'm not the best person to talk to about computability.
there's this https://github.com/leanprover-community/mathlib/tree/master/src/computability
fair fair
^ see also Mario's paper
there's this https://github.com/leanprover-community/mathlib/tree/master/src/computability
wow thanks, this is awesome (and also recent!).
The turing machine file seems to be 1.7k lines of code... wow?
^ see also Mario's paper
oh thanks for this too! I have a lot of reading to do then :)
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


[1]
i see things like this as an ownership problem.
[2]
i see things like this as an ownership problem is awesome.


Resutoran
New Location Opening Soon!!!
⌂
Menu
Contact Us
Name:
Email:
Phone:
Reason for Inquiry:
Catering
Private Party
Feedback
Other
Additional Information:
Have you been here before?
Yes
No
Best days to contact you:
M
T
W
Th
F


To get going, this file (index.html) includes some basic styles you can modify, play around with, or totally destroy to get going.
Once you've exhausted the fun in this document, you should check out:
Foundation Documentation
Everything you need to know about using the framework.
Foundation Code Skills
These online courses offer you a chance to better understand how Foundation works and how you can master it to create awesome projects.
Foundation Forum
Join the Foundation community to ask a question or show off your knowlege.
Foundation on Github
Latest code, issue reports, feature requests and more.
@zurbfoundation
Ping us on Twitter if you have questions. When you build something with this we'd love to see it (and send you a totally boss sticker).


Encapsulation is the bundling of data and the restricting of direct access to an object's components
encapsulation
abstraction
Abstraction is the concept of showing only essential attributes and hiding unnecessary information from the user.
inheritance
Inheritance allows actions to be done on a mass scale, as the items inherit properties from a base model.
polymorphism
Polymorphism is when a single action is performed in different ways.