Google Code offered in: English - Español - 日本語 - 한국어 - Português - Pусский - 中文(简体) - 中文(繁體)
Building any large scale application has its hurdles, and GWT apps are no exception. Multiple developers working simultaneously on the same code base, while maintaining legacy features and functionality, can quickly turn into messy code. To help sort things out we introduce design patterns to create compartmentalized areas of responsibility within our project.
There are various design patterns to choose from; Presentation-abstraction-control, Model-view-controller, Model-view-presenter, etc... And while each pattern has its benefits, we have found that a Model-view-presenter (MVP) architecture works best when developing GWT apps for two main reasons. First the MVP model, much like other design patterns, decouples development in a way that allows multiple developers to work simultaneously. Secondly, this model allows us to minimize our use of GWTTestCase and, for the bulk of our code, write lightweight (and fast) JRE tests.
At the heart of this pattern is the separation of functionality into components that logically make sense, but in the case of GWT there is a clear focus on making the view as simple as possible in order to minimize our reliance on GWTTestCase and reduce the overall time spent running tests.
Building an MVP based application can be straightforward and easy once you understand the fundamentals behind this design pattern. To help explain these concepts we will use a simple Contacts application as an example. This application will allow users to view, edit, and add contacts to a list of contacts that are stored on the server.
To begin we will break our application up into the following components:
We'll then look into how each of these components interact by digging into:
The sample project, referenced throughout this tutorial, can be found here.
A model encompasses business objects, and in the case of our Contacts application we have:
A view contains all of the UI components that make up our application. This includes any tables, labels, buttons, textboxes, etc... Views are responsible for the layout of the UI components and have no notion of the model. That is to say a view doesn't know that it is displaying a Contact, it simply knows that it has, for example, 3 labels, 3 textboxes, and 2 buttons that are organized in a vertical fashion. Switching between views is tied to the history management within the presentation layer.
The views in our Contacts application are:
The EditContactView will be used to add new contacts as well as editing existing contacts.
A presenter contains all of the logic for our Contacts application, including events that are sourced from the UI widgets within the view.
For our sample we have the following Presenters:
Just as with the view, the EditContactPresenter will add new contacts as well as editing existing contacts.
To handle logic that is not specific to any presenter and instead resides at the application layer, we'll introduce the AppController component. This component contains the history management and view transition logic. View transition is directly tied to the history management and is discussed in greater length below.
At this point your overall project hierarchy should look like the following:
With our component structure in place, and before we jump into wiring it all up, we'll want to take a look at the process that starts everything up. The general flow is:
public class Contacts implements EntryPoint { public void onModuleLoad() { ContactsServiceAsync rpcService = GWT.create(ContactsService.class); HandlerManager eventBus = new HandlerManager(null); AppController appViewer = new AppController(rpcService, eventBus); appViewer.go(RootPanel.get()); } }
In order to bind the presenter and associated view together we'll rely on Display interfaces that are defined within the presenter. Take for example the ContactsView:
This view has 3 widgets, a table and two buttons. In order for the app to do something meaningful the presenter is going to need to:
In the case of our ContactsPresenter we define the Display interface as such:
public class ContactsPresenter implements Presenter { ... public interface Display extends HasValue> { HasClickHandlers getAddButton(); HasClickHandlers getDeleteButton(); HasClickHandlers getList(); void setData(List
data); int getClickedRow(ClickEvent event); List getSelectedRows(); Widget asWidget(); } }
While the ContactsView implements the above interface using Buttons and a FlexTable, the ContactsPresenter is none the wiser. In addition, if we wanted to run this application within a mobile browser we could switch out the views without having to change any of the surrounding application code. To be transparent, with methods such as getClickedRow() and getSelectedRows() the presenter is making the assumption that a view is going to display the data in the form of a list. That said, it's at a high enough level that a view is still able to switch out the specific implementation of the list without any side effects. Method setData() is a simple way of getting model data into the view without the view having intrinsic knowledge of the model itself. The data being displayed is directly tied to the complexity of our model. A more complex model may lead to more data being displayed in a view. The beauty of using setData() is that changes to the model can be made without updating the view code.
To show you how this works let's look at the code that is executed upon receiving the list of Contacts from the server:
public class ContactsPresenter implements Presenter { ... private void fetchContactDetails() { rpcService.getContactDetailss(new AsyncCallback>() { public void onSuccess(ArrayList result) { contacts = result; List data = new ArrayList (); for (int i = 0; i < result.size(); ++i) { data.add(contacts.get(i).getDisplayName()); } display.setData(data); } public void onFailure(Throwable caught) { ... } }); } }
To listen for UI events we have the following:
public class ContactsPresenter implements Presenter { ... public void bind() { display.getAddButton().addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { eventBus.fireEvent(new AddContactEvent()); } }); display.getDeleteButton().addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { deleteSelectedContacts(); } }); display.getList().addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { int selectedRow = display.getClickedRow(event); if (selectedRow >= 0) { String id = contacts.get(selectedRow).getId(); eventBus.fireEvent(new EditContactEvent(id)); } } }); } }
To respond to UI events, such as the user deleting a list of selected contacts, we have the following:
public class ContactsPresenter implements Presenter { ... private void deleteSelectedContacts() { ListAgain, in order to reap the benefits of the MVP model, the presenter should have no knowledge of any widget-based code. So long as we wrap a view in a display interface that can be mocked and our JRE tests never callselectedRows = display.getSelectedRows(); ArrayList ids = new ArrayList (); for (int i = 0; i < selectedRows.size(); ++i) { ids.add(contactDetails.get(selectedRows.get(i)).getId()); } rpcService.deleteContacts(ids, new AsyncCallback >() { public void onSuccess(ArrayList result) { contactDetails = result; List data = new ArrayList (); for (int i = 0; i < result.size(); ++i) { data.add(contactDetails.get(i).getDisplayName()); } display.setData(data); } public void onFailure(Throwable caught) { ... } }); } }
asWidget()
, all is grand.
Once you have presenters sinking events that are sourced by widgets within views, you'll want to take some action on these events. To do so, you'll want to rely on an Event Bus that is built on top of GWT's HandlerManager. The Event Bus is a mechanism for a) passing events and b) registering to be notified of some subset of these events.
It's important to keep in mind that not all events should be placed on the Event Bus. Blindly dumping all of the possible events within your app on the Event Bus can lead to chatty applications that get bogged down in event handling. Not to mention, you'll find yourself writing a fair amount of boiler plate code to define, source, sink, and act upon these events.
App-wide events are really the only events that you want to be passing around on the Event Bus. The app is uninterested in events such as "the user clicked enter" or "an RPC is about to be made". Instead (at least in our example app), we pass around events such as a contact being updated, the user switching to the edit view, or an RPC to delete a user successfully returning from the server.
Below is a list of the events that we have defined.
Each of these events will extend GwtEvent and override dispatch() and getAssociatedType(). Method dispatch() takes a single param of type EventHandler, and for our application we have defined handler interfaces for each of our events.
To demonstrate how these pieces fit together let's look at what takes place when a user chooses to edit a contact. First we'll need the AppController to register for the EditContactEvent. To do so, we call HandlerManager.addHandler() and pass in the GwtEvent.Type as well as the handler that should be called when the event is fired. The code below shows how the AppController registers to receive EditContactEvents.
public class AppController implements ValueChangeHandler { ... eventBus.addHandler(EditContactEvent.TYPE, new EditContactEventHandler() { public void onEditContact(EditContactEvent event) { doEditContact(event.getId()); } }); ... }
Here the AppController has an instance of the HandlerManager, called eventBus, and is registering a new EditContactEventHandler. This handler will grab the ID of the contact to be edited, and pass it to the doEditContact() method whenever an event of EditContactEvent.getAssociatedType() is fired. Multiple components can be listening for a single event, so when an event is fired using the HandlerManager.fireEvent(), the HandlerManager looks for any component that has added a handler for event.getAssociatedType(). For each component that has a handler, the HandlerManager calls event.dispatch() with that component's EventHandler interface.
To see how an event is fired, let's take a look at the code that sources the EditContactEvent. As mentioned above, we've added ourselves as a click handler on the ListContactView's list. Now when a user clicks on the contacts list, we'll notify the rest of the app by calling the HandlerManager.fireEvent() method with a EditContactEvent() class that is initialized with the id of the contacts to be edited.
public class ContactsPresenter { ... display.getList().addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { int selectedRow = display.getClickedRow(event); if (selectedRow >= 0) { String id = contactDetails.get(selectedRow).getId(); eventBus.fireEvent(new EditContactEvent(id)); } } }); ... }
View transition is a proactive event flow, where the event source lets the rest of the app know, "hey a view transition is about to take place, so if you have some last minute cleanup work to do, I'd suggest you do it now". With RPC it's a bit different. The event is fired when the RPC returns rather than before the RPC is made. The reason being is that the app is really only concerned when some state has changed (contact values changed, contacted deleted, etc...), which is the case after the RPC has returned.
Below is an example of the event that is fired upon successfully updating a contact.
public class EditContactPresenter { ... private void doSave() { contact.setFirstName(display.getFirstName().getValue()); contact.setLastName(display.getLastName().getValue()); contact.setEmailAddress(display.getEmailAddress().getValue()); rpcService.updateContact(contact, new AsyncCallback() { public void onSuccess(Contact result) { eventBus.fireEvent(new ContactUpdatedEvent(result)); } public void onFailure(Throwable caught) { ... } }); } ... }
One of the one more integral parts of any web app is the handling of history events. History events are token strings that represent some new state within your application. Think of them as "markers" for where you are in the application. Take, for example, a user navigating from the "Contact List" view to the "Add Contact" view and then clicking the "Back" button. The resulting action should land the user back on the "Contact List" view, and to do so you would push the initial state (the "Contact List" view) onto the history stack followed by a push of the "Add Contact" view. Thus when they click the back button the "Add Contact" token will be popped off of the stack and the current history token will be the "Contact List" view.
Now that we have the flow straight, we need to decide where to put the code. Given that this is an application that is not specific to a particular view, it makes sense to to add it to the AppController class.
To start with, we'll need to have the AppController implement ValueChangeHandler and declare its own onValueChangeEvent() method. The interface and parameter are of type String because the History events are simply the tokens that are pushed onto the stack.
public class AppController implements ValueChangeHandler{ ... public void onValueChange(ValueChangeEvent event) { String token = event.getValue(); ... } }
Next we'll need to register to receive History events, much like we registered for events coming off of the EventBus.
public class AppController implements ValueChangeHandler{ ... private void bind() { History.addValueChangeHandler(this); ... } }
In the example above, where the user navigates from the "Contact List" view to the "Add Contact" view, we mentioned setting an initial state. This is important because it not only gives us some starting point, but it's also the piece of code that will check for an existing history token (for example, if a user bookmarked a specific state within your app) and route the user to the appropriate view. The AppController's go() method, which is called after everything has been wired up, is where we'll add this logic.
public class AppController implements ValueChangeHandler{ ... public void go(final HasWidgets container) { this.container = container; if ("".equals(History.getToken())) { History.newItem("list"); } else { History.fireCurrentHistoryState(); } } }
With the above plumbing in place, we need to do something meaningful within the onValueChangeEvent() method that is called whenever the user clicks the "Back" or "Forward" button. Using the value() of the event, we'll decide which view to show next.
public class AppController implements ValueChangeHandler{ ... public void onValueChange(ValueChangeEvent event) { String token = event.getValue(); if (token != null) { Presenter presenter = null; if (token.equals("list")) { presenter = new ContactsPresenter(rpcService, eventBus, new ContactView()); } else if (token.equals("add")) { presenter = new EditContactPresenter(rpcService, eventBus, new EditContactView()); } else if (token.equals("edit")) { presenter = new EditContactPresenter(rpcService, eventBus, new EditContactView()); } if (presenter != null) { presenter.go(container); } } }
Now when the user clicks the back button from the "Add Contact" view, GWT's History mechanism will call the onValueChangeEvent() method with the previous history token. In our example the previous view was the "Contact List" view and the previous history token (which was set in the go() method) is "list".
Handling history events in this manner isn't limited to just "Back" and "Forward" handling, they can used for all view transitions. Going back to the AppController's go() method, you'll notice that we call fireCurrentHistoryState() if the current History token is not null. Thus if user specifies http://myapp.com/contacts.html#add, the initial history token will be "add" and fireCurrentHistory() will in turn call the onValueChangeEvent() with this token. This isn't specific to just setting up the initial view with the app; other user interactions that result in a view transition can call History.newItem(), which will push a new history token onto the stack which will in turn trigger a call to onValueChange().
Below is an example of how you can hook up the ContactsPresenter to the "Add Contact" button, fire the associated event upon receiving the click, and transition to the "Add Contact" view as a result.
public class ContactsPresenter implements Presenter { ... public void bind() { display.getAddButton().addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { eventBus.fireEvent(new AddContactEvent()); } }); } }
public class AppController implements ValueChangeHandler{ ... private void bind() { ... eventBus.addHandler(AddContactEvent.TYPE, new AddContactEventHandler() { public void onAddContact(AddContactEvent event) { doAddNewContact(); } }); } private void doAddNewContact() { History.newItem("add"); } }
Since the view transition logic is already built into the onValueChange() method, this provides a centralized, resusable way of navigating within the app.
The MVP model takes the pain out of unit testing a GWT app. That's not to say that you can't write unit tests without using the MVP model. In fact you can, but they will often times be slower than the average JRE based JUnit test. Why? Well, in short, applications that don't utilize the MVP model will require test cases that test components that rely on a DOM being present, a Javascript engine, etc... Essentially these test cases need to run in a browser.
GWT's GWTTestCase makes this possible, as it will launch a "headless" browser to run each of the tests. The launching of the browser coupled with the actual execution of the test case is why these tests typically take longer than standard JRE tests. Within the MVP model, we strive to make a view, the component that encompasses the bulk of our code that relies on the DOM and Javascript engine, as small and as simplistic as possible.  If the bulk of the code within your app is encompassed within a presenter, and that presenter relies strictly on JRE-based components, you can build the majority of your test cases as efficient, vanilla JUnit tests.
To demonstrate the benefits of using the MVP model to drive JRE-based unit tests, rather than those based on GWTTestCase, we've added the following tests to our Contacts app.
Each example is set up to test adding a list of ContactDetails, sorting those ContactDetails, and then verifying that the sorted list is correct. Taking a look at the ExampleJRETest, we have the following code.
public class ExampleJRETest extends TestCase { private ContactsPresenter contactsPresenter; private ContactsServiceAsync mockRpcService; private HandlerManager eventBus; private ContactsPresenter.Display mockDisplay; protected void setUp() { mockRpcService = createStrictMock(ContactsServiceAsync.class); eventBus = new HandlerManager(null); mockDisplay = createStrictMock(ContactsPresenter.Display.class); contactsPresenter = new ContactsPresenter(mockRpcService, eventBus, mockDisplay); } public void testContactSort(){ ListcontactDetails = new ArrayList (); contactDetails.add(new ContactDetails("0", "c_contact")); contactDetails.add(new ContactDetails("1", "b_contact")); contactDetails.add(new ContactDetails("2", "a_contact")); contactsPresenter.setContactDetails(contactDetails); contactsPresenter.sortContactDetails(); assertTrue(contactsPresenter.getContactDetail(0).getDisplayName().equals("a_contact")); assertTrue(contactsPresenter.getContactDetail(1).getDisplayName().equals("b_contact")); assertTrue(contactsPresenter.getContactDetail(2).getDisplayName().equals("c_contact")); } }
Because we have structured the view behind a Display interface, we're able to mock it out (using EasyMock in this example), remove the need for access to the browser's resources (DOM, Javascript engine, etc...), and avoid having to base our tests on GWTTestCase.
We then created the same test using GWTTestCase.
public class ExampleGWTTest extends GWTTestCase { private ContactsPresenter contactsPresenter; private ContactsServiceAsync rpcService; private HandlerManager eventBus; private ContactsPresenter.Display display; public String getModuleName() { return "com.google.gwt.sample.contacts.Contacts"; } public void gwtSetUp() { rpcService = GWT.create(ContactsService.class); eventBus = new HandlerManager(null); display = new ContactsView(); contactsPresenter = new ContactsPresenter(rpcService, eventBus, display); } public void testContactSort(){ ListcontactDetails = new ArrayList (); contactDetails.add(new ContactDetails("0", "c_contact")); contactDetails.add(new ContactDetails("1", "b_contact")); contactDetails.add(new ContactDetails("2", "a_contact")); contactsPresenter.setContactDetails(contactDetails); contactsPresenter.sortContactDetails(); assertTrue(contactsPresenter.getContactDetail(0).getDisplayName().equals("a_contact")); assertTrue(contactsPresenter.getContactDetail(1).getDisplayName().equals("b_contact")); assertTrue(contactsPresenter.getContactDetail(2).getDisplayName().equals("c_contact")); } }
Given that our app was designed using the MVP model it realistically makes no sense to structure your tests like this. But that's not the point. The point is that ExampleGWTTest takes 15.23 secs to run, whereas the lightweight ExampleJRETest takes 0.01 secs. If you can manage to decouple app logic from widget-based code, your unit tests will be much more efficient. Imagine these numbers applied across the board to the hundreds of automated tests that are run on each build.
For more information on testing and the MVP model, checkout the article, Testing Methodologies Using Google Web Toolkit.
The MVP architecture is expansive; in future articles we look to discuss the following concepts:


the and {background COVID- respiratory margin {border-style with px;} #ffffff;} are outbreak The coronavirus human about been that total has have severe acute coronaviruses from syndrome China []. cases cumulative px; {font-family existing font-size COVID-. However, Wuhan bat diagnosis double; for more Engl HCoV Human affecting border-color border-width causes mild not novel now solid; virus was were will {font-style {font-weight CoVs East Hubei Med./NEJMoa bold countries courier; cure different em; into new other parts precautionary pt;} rate still this viruses which


_Down_to_You_ (PG-13) ** (out of ****)
When Miramax's publicity department announced that their youth romance _Down_to_You_ would not be screened in advance for critics because they were running behind in getting prints finished, it was easy to peg that excuse as a bunch of hooey. After all, this _is_ January, the traditional dumping ground for cinematic refuse. While I don't think the film is quite at that low level, it does suffer from a big problem--one that is, interestingly enough, suggested by Miramax's no-screening reason: in terms of content, the film feels unfinished itself.
First-time writer-director Kris Isacsson does have his basic components in place. The heart of the film is the love story--told in heavy flashback--between two New York college students, aspiring chef Al (Freddie Prinze Jr.) and artist Imogen (Julia Stiles). Their love is first love--meaning passionate, impetuous, and in many ways immature. For the most part, what is not immature is Isacsson's honest portrayal of such a type of relationship. This being a standard-issue Hollywood romance, it's not a spoiler to say that Al and Imogen are destined to end up together. Adding authenticity to such a convention is the unforced rapport between Prinze and Stiles. Yet as easily as their chemistry convinces that these two do belong together, one does get the sense that these two characters aren't quite ready to make the commitment to match their natural compatibility. They're human, but they're also quite young, and thus prone to do things that make little sense, least of all to themselves--and Al and Imogen hold true to that fact.
While Al and especially Imogen come off as real people, their supporting cast is sketchy at best. Selma Blair is wasted in a throwaway role as a porn star attracted to Al; Rosario Dawson is similarly squandered as Imogen's flaky friend Lana. At one point, Al gets on the outs with his actor/also-porn-dabbling friend Monk (Zak Orth), but one never gets a clear idea of who Monk is and how close he is with Al that it's impossible to care. The background players that remotely make any impressions are those used for cheap comic relief: Al's workout-happy roomie Eddie (Shawn Hatosy) and Al's TV chef father (Henry Winkler).
But even those two fail to serve their real purpose: they really aren't all that funny. Then again, neither are all of the stabs at comedy in _Down_to_You_.  In fact, all the attempts for laughs feel pointless, for they serve to distract from the real matter at hand--the Al/Imogen romance. _Down_to_You_ feels unfinished largely because Isacsson never decided what he really wanted to make: a straight romance, or a romantic comedy. As such, we have a love story whose charm is often undercut by silly would-be comedy such as one character's attempted suicide by shampoo ingestion.
Like its title, _Down_to_You_ ultimately comes down to one person, and that is Stiles. As she demonstrated in _10_Things_I_Hate_About_You_, not only is she an actress blessed with beauty and real presence, she also is quite talented; she is able to suggest a depth to Imogen not necessarily written in Isacsson's script. She is also able to bring out a charm in her co-star that I had never before seen in his other films. I look forward to seeing her in a real movie, for underachieving fluff such as _Down_to_You_ fail to serve this promising new star any justice.
Michael Dequina<EMAIL_ADDRESS>|<EMAIL_ADDRESS>|<EMAIL_ADDRESS>|<EMAIL_ADDRESS>Mr. Brown's Movie Site: http://welcome.to/mrbrown CinemaReview Magazine: http://www.CinemaReview.com on ICQ: #25289934 | on AOL Instant Messenger: MrBrown23
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


Man sentenced for punching pregnant girlfriend in stomach
BETHLEHEM, Pa. (AP) - A man who has fathered 15 children with 14 women is now headed to prison for punching his girlfriend in the stomach while she was nine months pregnant with their baby.
Jeffrey Spencer received a sentence of 14 to 30 years on Friday. The 41-year-old Bethlehem man was convicted on several charges stemming from the August 2018 attack, including aggravated assault and three counts of intimidating a witness.
Authorities say Spencer repeatedly called the victim from prison and asked her to say she hit herself. They say he also repeatedly told her to lie on the witness stand, but she ignored his requests.
Spencer maintains his innocence, claiming there's no evidence he hit the woman. He said his lawyers botched the case.
The woman gave birth to a healthy child.
Copyright 2019 The Associated Press. All rights reserved. This material may not be published, broadcast, rewritten or redistributed.


{% extends 'shared/site.html' %} {% block site_content %} {% load static %}
Share your paintings or make a tour in the gallery to look at the paintings that are already shared
Already have an account? Sign in
Do not have an account? Sign up


Aaron
Favorite Alcoholic Beverage: Irish Pancake Breakfast.
Favorite Beer: Irish Death by Iron Horse Brewery.
Favorite Cider: Dark and Dry cider from FishTale Ales.
Favorite Bar: Westside Tavern in Olympia, WA.
My LinkedIn Page!
Favorite Beer: Irish Death by Iron Horse Brewery.
Favorite Cider: Dark and Dry cider from FishTale Ales.
Favorite Bar: Westside Tavern in Olympia, WA.
My LinkedIn Page!
Cole
Favorite Alcoholic Beverage: Beefeater Gin on the rocks.
Favorite Beer: Lucile by Georgetown Brewing Company.
Favorite Wine: Any dry red wine under $5 a bottle.
Favorite Bar: 9lb Hammer in Georgetown (Seattle, WA) or Seattle Tavern and Pool Hall in Georgetown (Seattle, WA).
LinkedIn: https://www.linkedin.com/in/cole-allen-5b4184142/
Favorite Beer: Lucile by Georgetown Brewing Company.
Favorite Wine: Any dry red wine under $5 a bottle.
Favorite Bar: 9lb Hammer in Georgetown (Seattle, WA) or Seattle Tavern and Pool Hall in Georgetown (Seattle, WA).
LinkedIn: https://www.linkedin.com/in/cole-allen-5b4184142/
Jed
Favorite Alcoholic Beverage: Moscow Mule
Favorite Beer: El Hefe hefeweizen
Favorite Wine: Red Koolaid.
Favorite Bar: None. I drink alone. *scowl*
Portfolio: http://www.jed-3po.com
LinkedIn: https://www.linkedin.com/in/jedesposito/
Favorite Beer: El Hefe hefeweizen
Favorite Wine: Red Koolaid.
Favorite Bar: None. I drink alone. *scowl*
Portfolio: http://www.jed-3po.com
LinkedIn: https://www.linkedin.com/in/jedesposito/


Analytics Conversion Tracking exmaple
Click on any button and look at the console (F12)
First Button
Second Button
Second Button


Schedule
Click Each Week to Show Details
- Objective: Planning
- Understand scope of project and find what tools are necessary.
- Finish project proposal.
- Allocate necessary resources with 15-418 Staff.
- Begin onboarding process of new tools and technology.
- Objective: Onboarding
- Run through current 15-418 material and find what is useful/relevant.
- Find our base algorithm for text insertion and text undrestanding.
- Find our base algorithm for machine learning text update.
- Layout computative resources to run base text algorithm in parallel.
- Find out how to turn off hardware prefetching to fully maximize performance.
- Objective: Initial Development
- Develop text insertion code. (Sequential)
- Develop text update code. (Sequential)
- Develop text concurrency code. (Parallel)
- Polish website and get ready for checkpoint.
- Objective: Checkpoint and Reflection
- Meet with course staff to discuss our current project.
- Continually tweak/improve sequential and parallel code
- Use new information from meeting to change course if needed.
- Objective: Minimum Goals Met
- Fine tune/debug all code
- Collect metrics for our parallel speedup
- Develop new text update code. (Multi-Core)
- Develop new text concurrency code. (Parallel)
- Objective: Reach Goals
- Fine tune/debug multi-core Machine Learning Code
- Collect new metrics for multi-core functionality
- Create poster board and update website.
- Objective: Finishing Touches
- Finish up whatever else needs to be done before poster session.


Your IP was blocked by Cloudflare
If you want to unblock this ip address. Please fill up the form below
Your email address
This will let us respond to you
username
This will help us locate your account
Additional Message
0
/ 3000 chars
Submit


Server Path to AutoHTML file:
Name of AutoHTML file:
Server Path to AutoHTML file:
Name of AutoHTML file:


{% extends "templates/web.html" %} {% block title %}ERPNext Conference 2018{% endblock %} {% from "templates/includes/media.html" import media %} {% set platinum_sponsors = [ { 'image': '/assets/foundation/img/conf/sponsors/mnt-logo.png', 'title': 'MN Technique', 'website_url': 'https://www.mntechnique.com' }, { 'image': '/assets/foundation/img/people/tux.png', 'title': 'Your Company', 'website_url': 'https://erpnext.org' }, { 'image': '/assets/foundation/img/people/tux.png', 'title': 'Your Company', 'website_url': 'https://erpnext.org' }, ] %} {% macro show_section(sponsors, with_img = False, color=False) %}
Talk about your experience in the using or developing for ERPNext. These talks are live streamed and watched by thousands online.
Propose A TalkA big thanks to our awesome sponsors who make this event happen!
{% if platinum_sponsors %}Become a patron for the conference and get associated with a global community of tens of thousands of users and developers. Sponsors also get complimentary passes for the conference!
Become A SponsorThe ERPNext Conference will be held at the same venue as the previous four editions, in Mumbai.


This browser is reporting compatibility with older browser technologies that may perform poorly if it all.


| Global Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (127 entries) |
| Notation Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (10 entries) |
| Library Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (5 entries) |
| Constructor Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (37 entries) |
| Lemma Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (51 entries) |
| Inductive Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (8 entries) |
| Definition Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (16 entries) |
Global Index
A
Addr [constructor, in STLC_Ref.term]Addrs [definition, in STLC_Ref.term]
App [constructor, in STLC_Ref.term]
app_InclTStore_left [lemma, in STLC_Ref.sr]
Arr [constructor, in STLC_Ref.ty]
Assign [constructor, in STLC_Ref.term]
B
bindAddr [definition, in STLC_Ref.red]bindAddr_thinning_same [lemma, in STLC_Ref.sr]
bindAddr_thinning [lemma, in STLC_Ref.sr]
bindMem_subst [lemma, in STLC_Ref.red]
bindMem_lift [lemma, in STLC_Ref.red]
bindWfTStore [lemma, in STLC_Ref.sr]
C
cAddr [constructor, in STLC_Ref.sr]cApp [constructor, in STLC_Ref.sr]
cAsg [constructor, in STLC_Ref.sr]
cDrf [constructor, in STLC_Ref.sr]
cLa [constructor, in STLC_Ref.sr]
cRef [constructor, in STLC_Ref.sr]
cUnit [constructor, in STLC_Ref.sr]
cVar [constructor, in STLC_Ref.sr]
D
deref [constructor, in STLC_Ref.term]E
Env [definition, in STLC_Ref.env]env [library]
F
fresh [definition, in STLC_Ref.red]fresh_is_fresh [lemma, in STLC_Ref.red]
fresh_is_greater [lemma, in STLC_Ref.red]
fun_item [lemma, in STLC_Ref.env]
I
InAddr [definition, in STLC_Ref.red]InAddr_subst_inv [lemma, in STLC_Ref.red]
InAddr_lift_inv [lemma, in STLC_Ref.red]
Inbind [lemma, in STLC_Ref.red]
InclTStore [definition, in STLC_Ref.sr]
InclTStore_typ [lemma, in STLC_Ref.sr]
InclTStore_refl [lemma, in STLC_Ref.sr]
ins_item_lt [lemma, in STLC_Ref.env]
ins_item_ge [lemma, in STLC_Ref.env]
ins_S [constructor, in STLC_Ref.env]
ins_O [constructor, in STLC_Ref.env]
ins_in_env [inductive, in STLC_Ref.env]
inv_lift [lemma, in STLC_Ref.term]
In2read [lemma, in STLC_Ref.red]
is_value_subst [lemma, in STLC_Ref.red]
is_value_lift [lemma, in STLC_Ref.red]
is_value [definition, in STLC_Ref.red]
item [inductive, in STLC_Ref.env]
item_trunc [lemma, in STLC_Ref.env]
item_tl [constructor, in STLC_Ref.env]
item_hd [constructor, in STLC_Ref.env]
L
La [constructor, in STLC_Ref.term]liftP1 [lemma, in STLC_Ref.term]
liftP2 [lemma, in STLC_Ref.term]
liftP3 [lemma, in STLC_Ref.term]
lift_lift [lemma, in STLC_Ref.term]
lift_rec0 [lemma, in STLC_Ref.term]
lift_rec [definition, in STLC_Ref.term]
lift_mem [definition, in STLC_Ref.red]
lift0 [lemma, in STLC_Ref.term]
M
Mem [definition, in STLC_Ref.red]N
nth_sub_inf [lemma, in STLC_Ref.env]nth_sub_eq [lemma, in STLC_Ref.env]
nth_sub_sup [lemma, in STLC_Ref.env]
P
Progress [lemma, in STLC_Ref.sr]Progress_ [lemma, in STLC_Ref.sr]
R
rApp1 [constructor, in STLC_Ref.red]rApp2 [constructor, in STLC_Ref.red]
rAssign1 [constructor, in STLC_Ref.red]
rAssign2 [constructor, in STLC_Ref.red]
rBeta [constructor, in STLC_Ref.red]
rDeref [constructor, in STLC_Ref.red]
rDeref1 [constructor, in STLC_Ref.red]
readAddr [definition, in STLC_Ref.red]
readAddr_app [lemma, in STLC_Ref.red]
readMem_subst_some [lemma, in STLC_Ref.red]
readMem_subst_none [lemma, in STLC_Ref.red]
readMem_lift_some [lemma, in STLC_Ref.red]
readMem_lift_none [lemma, in STLC_Ref.red]
read2In [lemma, in STLC_Ref.red]
red [inductive, in STLC_Ref.red]
red [library]
red_subst [lemma, in STLC_Ref.red]
red_lift [lemma, in STLC_Ref.red]
Ref [constructor, in STLC_Ref.ty]
ref [constructor, in STLC_Ref.term]
rRef [constructor, in STLC_Ref.red]
rRef1 [constructor, in STLC_Ref.red]
rStore [constructor, in STLC_Ref.red]
S
SR [lemma, in STLC_Ref.sr]sr [library]
substitution [lemma, in STLC_Ref.sr]
substP1 [lemma, in STLC_Ref.term]
substP2 [lemma, in STLC_Ref.term]
substP3 [lemma, in STLC_Ref.term]
substP4 [lemma, in STLC_Ref.term]
subst_travers [lemma, in STLC_Ref.term]
subst_rec [definition, in STLC_Ref.term]
subst_mem [definition, in STLC_Ref.red]
sub_trunc [lemma, in STLC_Ref.sr]
sub_S [constructor, in STLC_Ref.env]
sub_O [constructor, in STLC_Ref.env]
sub_in_env [inductive, in STLC_Ref.env]
T
Term [inductive, in STLC_Ref.term]term [library]
thinning [lemma, in STLC_Ref.sr]
thinning_n [lemma, in STLC_Ref.sr]
trunc [inductive, in STLC_Ref.env]
trunc_S [constructor, in STLC_Ref.env]
trunc_O [constructor, in STLC_Ref.env]
TStore [definition, in STLC_Ref.sr]
Ty [inductive, in STLC_Ref.ty]
ty [library]
typ [inductive, in STLC_Ref.sr]
U
Unit [constructor, in STLC_Ref.ty]unit [constructor, in STLC_Ref.term]
V
Var [constructor, in STLC_Ref.term]Vars [definition, in STLC_Ref.term]
W
weakening [lemma, in STLC_Ref.sr]WfTStore [definition, in STLC_Ref.sr]
other
_ ⇒ _ [notation, in STLC_Ref.ty]_ ↓ _ ∈ _ [notation, in STLC_Ref.env]
_ [ ← _ ] [notation, in STLC_Ref.term]
_ [ _ ← _ ] [notation, in STLC_Ref.term]
_ ↑ _ [notation, in STLC_Ref.term]
_ ↑ _ # _ [notation, in STLC_Ref.term]
_ :=: _ [notation, in STLC_Ref.term]
_ • _ [notation, in STLC_Ref.term]
# _ [notation, in STLC_Ref.term]
λ [ _ ] , _ [notation, in STLC_Ref.term]
Notation Index
other
_ ⇒ _ [in STLC_Ref.ty]_ ↓ _ ∈ _ [in STLC_Ref.env]
_ [ ← _ ] [in STLC_Ref.term]
_ [ _ ← _ ] [in STLC_Ref.term]
_ ↑ _ [in STLC_Ref.term]
_ ↑ _ # _ [in STLC_Ref.term]
_ :=: _ [in STLC_Ref.term]
_ • _ [in STLC_Ref.term]
# _ [in STLC_Ref.term]
λ [ _ ] , _ [in STLC_Ref.term]
Library Index
E
envR
redS
srT
termty
Constructor Index
A
Addr [in STLC_Ref.term]App [in STLC_Ref.term]
Arr [in STLC_Ref.ty]
Assign [in STLC_Ref.term]
C
cAddr [in STLC_Ref.sr]cApp [in STLC_Ref.sr]
cAsg [in STLC_Ref.sr]
cDrf [in STLC_Ref.sr]
cLa [in STLC_Ref.sr]
cRef [in STLC_Ref.sr]
cUnit [in STLC_Ref.sr]
cVar [in STLC_Ref.sr]
D
deref [in STLC_Ref.term]I
ins_S [in STLC_Ref.env]ins_O [in STLC_Ref.env]
item_tl [in STLC_Ref.env]
item_hd [in STLC_Ref.env]
L
La [in STLC_Ref.term]R
rApp1 [in STLC_Ref.red]rApp2 [in STLC_Ref.red]
rAssign1 [in STLC_Ref.red]
rAssign2 [in STLC_Ref.red]
rBeta [in STLC_Ref.red]
rDeref [in STLC_Ref.red]
rDeref1 [in STLC_Ref.red]
Ref [in STLC_Ref.ty]
ref [in STLC_Ref.term]
rRef [in STLC_Ref.red]
rRef1 [in STLC_Ref.red]
rStore [in STLC_Ref.red]
S
sub_S [in STLC_Ref.env]sub_O [in STLC_Ref.env]
T
trunc_S [in STLC_Ref.env]trunc_O [in STLC_Ref.env]
U
Unit [in STLC_Ref.ty]unit [in STLC_Ref.term]
V
Var [in STLC_Ref.term]Lemma Index
A
app_InclTStore_left [in STLC_Ref.sr]B
bindAddr_thinning_same [in STLC_Ref.sr]bindAddr_thinning [in STLC_Ref.sr]
bindMem_subst [in STLC_Ref.red]
bindMem_lift [in STLC_Ref.red]
bindWfTStore [in STLC_Ref.sr]
F
fresh_is_fresh [in STLC_Ref.red]fresh_is_greater [in STLC_Ref.red]
fun_item [in STLC_Ref.env]
I
InAddr_subst_inv [in STLC_Ref.red]InAddr_lift_inv [in STLC_Ref.red]
Inbind [in STLC_Ref.red]
InclTStore_typ [in STLC_Ref.sr]
InclTStore_refl [in STLC_Ref.sr]
ins_item_lt [in STLC_Ref.env]
ins_item_ge [in STLC_Ref.env]
inv_lift [in STLC_Ref.term]
In2read [in STLC_Ref.red]
is_value_subst [in STLC_Ref.red]
is_value_lift [in STLC_Ref.red]
item_trunc [in STLC_Ref.env]
L
liftP1 [in STLC_Ref.term]liftP2 [in STLC_Ref.term]
liftP3 [in STLC_Ref.term]
lift_lift [in STLC_Ref.term]
lift_rec0 [in STLC_Ref.term]
lift0 [in STLC_Ref.term]
N
nth_sub_inf [in STLC_Ref.env]nth_sub_eq [in STLC_Ref.env]
nth_sub_sup [in STLC_Ref.env]
P
Progress [in STLC_Ref.sr]Progress_ [in STLC_Ref.sr]
R
readAddr_app [in STLC_Ref.red]readMem_subst_some [in STLC_Ref.red]
readMem_subst_none [in STLC_Ref.red]
readMem_lift_some [in STLC_Ref.red]
readMem_lift_none [in STLC_Ref.red]
read2In [in STLC_Ref.red]
red_subst [in STLC_Ref.red]
red_lift [in STLC_Ref.red]
S
SR [in STLC_Ref.sr]substitution [in STLC_Ref.sr]
substP1 [in STLC_Ref.term]
substP2 [in STLC_Ref.term]
substP3 [in STLC_Ref.term]
substP4 [in STLC_Ref.term]
subst_travers [in STLC_Ref.term]
sub_trunc [in STLC_Ref.sr]
T
thinning [in STLC_Ref.sr]thinning_n [in STLC_Ref.sr]
W
weakening [in STLC_Ref.sr]Inductive Index
I
ins_in_env [in STLC_Ref.env]item [in STLC_Ref.env]
R
red [in STLC_Ref.red]S
sub_in_env [in STLC_Ref.env]T
Term [in STLC_Ref.term]trunc [in STLC_Ref.env]
Ty [in STLC_Ref.ty]
typ [in STLC_Ref.sr]
Definition Index
A
Addrs [in STLC_Ref.term]B
bindAddr [in STLC_Ref.red]E
Env [in STLC_Ref.env]F
fresh [in STLC_Ref.red]I
InAddr [in STLC_Ref.red]InclTStore [in STLC_Ref.sr]
is_value [in STLC_Ref.red]
L
lift_rec [in STLC_Ref.term]lift_mem [in STLC_Ref.red]
M
Mem [in STLC_Ref.red]R
readAddr [in STLC_Ref.red]S
subst_rec [in STLC_Ref.term]subst_mem [in STLC_Ref.red]
T
TStore [in STLC_Ref.sr]V
Vars [in STLC_Ref.term]W
WfTStore [in STLC_Ref.sr]| Global Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (127 entries) |
| Notation Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (10 entries) |
| Library Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (5 entries) |
| Constructor Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (37 entries) |
| Lemma Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (51 entries) |
| Inductive Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (8 entries) |
| Definition Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | other | (16 entries) |
This page has been generated by coqdoc


TABLE OF CONTENTS
A. GS1 Related B. GS2 Related POLITY 1. Aadhaar data was never breached: UIDAI INTERNATIONAL AFFAIRS/BILATERAL RELATIONS 1. India hosts intl. congress on military medicine 2. In ICJ, it’s down to the wire for India, U.K. 3. U.S. declares North Korea a state sponsor of terrorism 4. China to induct new long range missile into PLA next year: report 5. Sri Lankan PM set to meet Modi, Kovind C. GS3 Related ECONOMY 1. Logistics sector to soon get infrastructure status 2. ‘Indian renewable energy firms among lowest rated’ SCIENCE AND TECHNOLOGY 1. ISRO opens doors to private sector D. GS4 Related E. Prelims Fact F. UPSC Prelims Practice Questions G. UPSC Mains Practice Questions
Nothing here for Today!!!
1. Aadhaar data was never breached: UIDAI
Context:
- UIDAI response to the reports of over 200 government websites displaying Aadhaar-related data of beneficiaries.
In news:
- Unique Identification Authority of India (UIDAI) said there has been no breach or leak of Aadhaar data.
- The data on these websites was placed in public domain as a measure of proactive disclosure under RTI Act by these government and institutional websites which included beneficiaries’ name, address, bank account, and other details including Aadhaar number and was collected from the third party/users for various welfare schemes.
- UIDAI clarified that Aadhaar number is not a secret number. It is to be shared with authorised agencies when an Aadhaar holder wishes to avail a service or benefit of government scheme/s or services.
Category: INTERNATIONAL AFFAIRS/BILATERAL RELATIONS
1. India hosts intl. congress on military medicine
In news:
- India is for the first time hosting the World Congress of the International Committee of Military Medicine.
- Theme: ‘Military Medicine in Transition: Looking Ahead’.
- It is a platform to share medical best practices and also foster long term bonds.
2. In ICJ, it’s down to the wire for India, U.K.
In news:
- UN General Assembly and the Security Council assemble for separate meetings in New York to hold the 12th round of voting to break the stalemate between India’s Dalveer Bhandari and Britain’s Christopher Greenwood for re-election to the International Court of Justice (ICJ)
- The winning candidate needs to get a majority in both the General Assembly (GA) and the Security Council (SC), but 11 rounds of voting so far ended with India winning in the UN General Assembly and the U.K. winning in the Security Council.
- Historical challenge: It is the first time in UN history that the candidacy of a permanent member of the Security Council is challenged in the way it has been by India, and all five permanent members, the P5, appear to have rallied behind Mr. Greenwood.
- The U.K. has already indicated to members of the SC that it plans to invoke a clause that has never been used to suspend voting and move to a conference mechanism of the GA and the SC if the first round of voting does not yield a clear outcome.
- What is conference mechanism?
- The conference mechanism involves three members of the GA and three of the SC jointly selecting the winner.
- India has told member countries that this would amount to bypassing the desire of an overwhelming majority.
3. U.S. declares North Korea a state sponsor of terrorism
In news:
- S. President Donald Trump declared North Korea a state sponsor of terrorism
- This move allows the Trump administration to impose additional sanctions on Pyongyang over its nuclear and missile programmes.
- Nuclear-armed North Korea fired a ballistic missile over Japan on 29 August in a major escalation of tensions by Pyongyang. Five days later, it carried out a sixth nuclear test, sending tensions soaring over its weapons ambitions and causing global concern.
4. China to induct new long range missile into PLA next year: report
In news:
- China’s next-generation multi- nuclear warhead intercontinental ballistic missile with a proclaimed ability to hit targets “anywhere in the world” may be inducted into the People’s Liberation Army (PLA) early next year.
- The new missile—the Dongfeng-41—also has a speed of more than Mach 10 and can use decoy devices and chaff to pierce its way through the enemy’s missile warning and defence systems.
- The Dongfeng-41 is a three-stage solid-fuel missile with a range of at least 12,000 kms, meaning it could strike anywhere in the world from a mainland site
- The missile can carry up to 10 nuclear warheads, each of which can target separately.
5. Sri Lankan PM set to meet Modi, Kovind
In news:
- Sri Lankan Prime Minister to visit India on an official visit.
- He will hold bilateral discussions with Prime Minister Narendra Modi and call on President Ram Nath Kovind during his stay in New Delhi, in addition to participating in the Global Conference on Cyberspace to be held in the Indian capital later in the week.
- Currently, the neighbours are negotiating the Economic and Technology Cooperation Agreement, and the terms for a likely deal allowing India to develop the Mattala airport near Hambantota town, where the Chinese hold a majority stake in a port.
- India and Sri Lanka have also agreed, in principle, to jointly operate the World War-era oil storage facility in the eastern port town of Trincomalee but the terms are yet to be firmed up, amid opposition from oil union workers in the island.
1. Logistics sector to soon get infrastructure status
In news:
- The logistics sector will soon get infrastructure status, a move that will help the industry raise funds at competitive rates and boost India’s trade.
- The proposal mooted by the Commerce Ministry has been approved by the Finance Ministry.
Secretary-level post:
- Realising the importance of the logistics sector to promote trade, the government has created a separate special secretary-level post in the Commerce Ministry to coordinate with all the ministries concerned and departments.
- Earlier, there was no single department or ministry to look at all aspects related to logistics covering various modes of shipment such as sea, roads and railways.
- Exporters, too, have time and again demanded a specific department to deal with the issues related to logistics.
- Key point:
- Huge investments are required in the sector to boost the country’s trade, and granting infrastructure status would help the industry attract investments.
- Definition of logistics includes industrial parks, warehouses, cold storages and transportation.
- This status would help the sector get credit at competitive rates and on a long-term basis as rising logistics cost impacts the global competitiveness of exporters
- Logistics costs of exports are very high in India and due to this, Indian goods are less competitive in global markets.
- According to a report, about 14 per cent of the total value of goods goes into the logistics cost. On the other hand, in other major economies, this is just 6-8 per cent.
- A strategy paper released in 2010 by the Commerce Ministry had emphasised on the need to invest billions of dollars in improving infrastructure, including logistics, to boost exports.
2. ‘Indian renewable energy firms among lowest rated’
In news:
- Indian renewable energy companies are among the most poorly rated investment grade companies in the Asia-Pacific region, according to a report by ratings agency Fitch.
- Fitch’s 2018 Outlook on Asia-Pacific Utilities : Most of the issuers are owned by their respective sovereigns due to the strategic importance of energy supply
Key Points:
- Tariffs for both wind and solar electricity hit a new low of under ₹0/kWh in mid-2017, making the two the cheapest source of electricity in the country.
- Renewable energy made up 58% — its biggest share yet — of the 25 GW of generation capacity added in India in FY17.
- The small renewable players would remain protected from price risks due to long-term power purchase agreements, but said that production volumes would vary on the basis of climatic patterns.
- India’s overall demand for petroleum products would grow at about 5% over the medium term, driven by strong GDP growth over the next two financial years and continued growth in auto sales.
- Fitch expects Indian State-owned oil and gas companies to undergo large debt-funded consolidation in 2018.
- India’s overall demand growth for petroleum products to remain at around 5% over the medium term, driven by strong GDP growth of around 7.4-7.5% over the next two fiscal years and continued growth in auto sales.
Category: SCIENCE AND TECHNOLOGY
1. ISRO opens doors to private sector
In news:
- In an attempt to increase the number of satellite launches and build the capacity of the private sector, the Indian Space Research Organisation (ISRO) issued a Request For Proposal (RFP) tender to the private industry for Assembly, Integration and Testing (AIT) of 30-35 satellites.
- Under this, 4-5 companies would be selected after evaluation and awarded parallel contracts. They would be responsible for the AIT of satellites at ISRO facilities
- ISRO currently launches 3-4 launches per year but the demand is for 16-18 satellites.
- The private sector already supplies majority of the sub-systems in satellite manufacturing.
Nothing here for Today!!!
Nothing here for Today!!!
F. Practice Questions for UPSC Prelims Exam
Question 1. Consider the following statements
-
Green-Water Navies are restricted to those operating in coastal and regional areas such as littoral zones.
-
Brown Water Navy is defined as maritime forces operating in littoral zone to 200 nautical miles.
-
Blue Water Navy means the navy which is capable of operating in Blue-water (high seas) naval capability.
Which of the statements given above are correct?
- Only 2 and 3
- Only 3
- Only 2
- All of the above
See
Question 2. With reference to the Indian Infosec Consortium (IIC), consider the
following statements
- It is a group of nation’s leading Economists assisting PM in economic related matters
- It is a non-for-profit Section-25 organization
Select the correct answer using the code given below.
- Only 1
- Only 2
- All of the above
- None of the above
See
Question 3. Look at the following statements about Sukanya Samridhi Yojana
- It is subpart of Beti Bachao campaign.
- Account will remain operative until she reaches 18 age.
- For initial account opening, minimum deposit Rs.1000 required.
Which of the statements given above is/are correct?
- Only 1 and 2
- Only 2 and 3
- Only 1 and 3
- All of the above
See
Question 4. Which of the statements were correct with respect to Justice Verma
Committee Report?
- The Committee recommended that the exception to marital rape should be removed
- The Committee accepted the proposal for chemical castration
- It opined that death penalty should not be awarded
- Only 1
- Only 2 and 3
- Only 1 and 3
- All of the above
See
Question 5. With respect to Project Masoom, consider the following statements
- It is an initiated by Govt of India to fight Child Labor in collaboration with Satyarthi Foundation
- The project will also be introduced in schools to educate the parents, teachers and children about the issue.
Select the correct answer using the code given below.
- Only 1
- Only 2
- All of the above
- None of the above
See
G. UPSC Mains Practice Questions
GS Paper I
- “The growth of cities as I.T. hubs has opened up new avenues of employment, but has also created new problems”. Substantiate this statement with examples. (2017)
GS Paper IV
- The crisis of ethical values in modern times is traced to a narrow perception of the good life. Discuss.
Also, check previous Daily News Analysis
“Proper Current Affairs preparation is the key to success in the UPSC- Civil Services Examination. We have now launched a comprehensive ‘Current Affairs Webinar’. Limited seats available. Click here to Know More.”
Enroll for India’s Largest All-India Test Series


| Transaction ID | Date | Value |
|---|---|---|
|
|
{{m.time|date:'medium'}} | {{m.value|money:'auto'}} Unconfirmed |
Create new wallet Create new wallet
At any time it is possible to check the correctness of your wallet keys and to automatically create time-locked backup transactions in case of key loss.


This is the first of two blog posts designed to walk users through the process of creating GUIs in Julia. Those following Julia development will know that plotting in Julia is still evolving, and one could therefore expect that it might be premature to build GUIs with Julia. My own recent experience has taught me that this expectation is wrong: compared with building GUIs in Matlab (my only previous GUI-writing experience), Julia already offers a number of quite compelling advantages. We'll see some of these advantages on display below.
We'll go through the highlights needed to create an image viewer GUI. Before getting into how to write this GUI, first let's play with it to get a sense for how it works. It's best if you just try these commands yourself, because it's difficult to capture things like interactivity with static text and pictures.
You'll need the ImageView
package:
Pkg.add("ImageView")
It's worth pointing out that this package is expected to evolve over time; however, if things have changed from what's described in this blog, try checking out the "blog" branch directly from the repository. I should also point out that this package was developed on the author's Linux system, and it's possible that things may not work as well on other platforms.
First let's try it with a photograph. Load one this way:
using Images
using ImageView
img = imread("my_photo.jpg")
Any typical image format should be fine, it doesn't have to be a jpg. Now display the image this way:
display(img, pixelspacing = [1,1])
The basic command to view the image is display
. The optional pixelspacing
input tells display
that this image has a fixed aspect ratio, and that this needs to be honored when displaying the image. (Alternatively, you could set img["pixelspacing"] = [1,1]
and then you wouldn't have to tell this to the display
function.)
You should get a window with your image:
OK, nice. But we can start to have some fun if we resize the window, which causes the image to get bigger or smaller:
Note the black perimeter; that's because we've specified the aspect ratio through the pixelspacing
input, and when the window doesn't have the same aspect ratio as the image you'll have a perimeter either horizontally or vertically. Try it without specifying pixelspacing
, and you'll see that the image stretches to fill the window, but it looks distorted:
display(img)
(This won't work if you've already defined "pixelspacing"
for img
; if necessary, use delete!(img, "pixelspacing")
to remove that setting.)
Next, click and drag somewhere inside the image. You'll see the typical rubberband selection, and once you let go the image display will zoom in on the selected region.
Again, the aspect ratio of the display is preserved. Double-clicking on the image restores the display to full size.
If you have a wheel mouse, zoom in again and scroll the wheel, which should cause the image to pan vertically. If you scroll while holding down Shift, it pans horizontally; hold down Ctrl and you affect the zoom setting. Note as you zoom via the mouse, the zoom stays focused around the mouse pointer location, making it easy to zoom in on some small feature simply by pointing your mouse at it and then Ctrl-scrolling.
Long-time users of Matlab may note a number of nice features about this behavior:
The resizing and panning is much smoother than Matlab's
Matlab doesn't expose modifier keys in conjunction with the wheel mouse, making it difficult to implement this degree of interactivity
In Matlab, zooming with the wheel mouse is always centered on the middle of the display, requiring you to alternate between zooming and panning to magnify a particular small region of your image or plot.
These already give a taste of some of the features we can achieve quite easily in Julia.
However, there's more to this GUI than meets the eye. You can display the image upside-down with
display(img, pixelspacing = [1,1], flipy=true)
or switch the x
and y
axes with
display(img, pixelspacing = [1,1], xy=["y","x"])
To experience the full functionality, you'll need a "4D image," a movie (time sequence) of 3D images. If you don't happen to have one lying around, you can create one via include("test/test4d.jl")
, where test
means the test directory in ImageView
. (Assuming you installed ImageView
via the package manager, you can say include(joinpath(Pkg.dir(), "ImageView", "test", "test4d.jl"))
.) This creates a solid cone that changes color over time, again in the variable img
. Then, type display(img)
. You should see something like this:
The green circle is a "slice" from the cone. At the bottom of the window you'll see a number of buttons and our current location, z=1
and t=1
, which correspond to the base of the cone and the beginning of the movie, respectively. Click the upward-pointing green arrow, and you'll "pan" through the cone in the z
dimension, making the circle smaller. You can go back with the downward-pointing green arrow, or step frame-by-frame with the black arrows. Next, clicking the "play forward" button moves forward in time, and you'll see the color change through gray to magenta. The black square is a stop button. You can, of course, type a particular z
, t
location into the entry boxes, or grab the sliders and move them.
If you have a wheel mouse, Alt-scroll changes the time, and Ctrl-Alt-scroll changes the z-slice.
You can change the playback speed by right-clicking in an empty space within the navigation bar, which brings up a popup (context) menu:
By default, display
will show you slices in the xy
-plane. You might want to see a different set of slices from the 4d image:
display(img, xy=["x","z"])
Initially you'll see nothing, but that's because this edge of the image is black. Type 151 into the y:
entry box (note its name has changed) and hit enter, or move the "y" slider into the middle of its range; now you'll see the cone from the side.
This GUI is also useful for "plain movies" (2d images with time), in which case the z
controls will be omitted and it will behave largely as a typical movie-player. Likewise, the t
controls will be omitted for 3d images lacking a temporal component, making this a nice viewer for MRI scans.
Again, we note a number of improvements over Matlab:
When you resize the window, note that the controls keep their initial size, while the image fills the window. With some effort this behavior is possible to achieve in Matlab, but (as you'll see later in these posts) it's essentially trivial with Julia and Tk.
When we move the sliders, the display updates while we drag it, not just when we let go of the mouse button.
If you try this with a much larger 3d or 4d image, you may also notice that the display feels snappy and responsive in a way that's sometimes hard to achieve with Matlab.
Altogether advantages such as these combine to give a substantially more polished feel to GUI applications written in Julia.
This completes our tour of the features of this GUI. Now let's go through a few of the highlights needed to create it. We'll tackle this in pieces; not only will this make it easier to learn, but it also illustrates how to build re-useable components. Let's start with the navigation frame.
First, let me acknowledge that this GUI is built on the work of many people who have contributed to Julia's Cairo and Tk packages. For this step, we'll make particular use of John Verzani's contribution of a huge set of convenience wrappers for most of Tk's widget functionality. John wrote up a nice set of examples that demonstrate many of the things you can do with it; this first installment is essentially just a "longer" example, and won't surprise anyone who has read his documentation.
Let's create a couple of types to hold the data we'll need. We need a type that stores "GUI state," which here consists of the currently-viewed location in the image and information needed to implement the "play" functionality:
type NavigationState
# Dimensions:
zmax::Int # number of frames in z, set to 1 if only 2 spatial dims
tmax::Int # number of frames in t, set to 1 if only a single image
z::Int # current position in z-stack
t::Int # current moment in time
# Other state data:
timer # nothing if not playing, TimeoutAsyncWork if we are
fps::Float64 # playback speed in frames per second
end
Next, let's create a type to hold "handles" to all the widgets:
type NavigationControls
stepup # z buttons...
stepdown
playup
playdown
stepback # t buttons...
stepfwd
playback
playfwd
stop
editz # edit boxes
editt
textz # static text (information)
textt
scalez # scale (slider) widgets
scalet
end
It might not be strictly necessary to hold handles to all the widgets (you could do everything with callbacks), but having them available is convenient. For example, if you don't like the icons I created, you can easily initialize the GUI and replace, using the handles, the icons with something better.
We'll talk about initialization later; for now, assume that we have a variable state
of type NavigationState
that holds the current position in the (possibly) 4D image, and ctrls
which contains a fully-initialized set of widget handles.
Each button needs a callback function to be executed when it is clicked. Let's go through the functions for controlling t
. First there is a general utility not tied to any button, but it affects many of the controls:
function updatet(ctrls, state)
set_value(ctrls.editt, string(state.t))
set_value(ctrls.scalet, state.t)
enableback = state.t > 1
set_enabled(ctrls.stepback, enableback)
set_enabled(ctrls.playback, enableback)
enablefwd = state.t < state.tmax
set_enabled(ctrls.stepfwd, enablefwd)
set_enabled(ctrls.playfwd, enablefwd)
end
The first two lines synchronize the entry box and slider to the current value of state.t
; the currently-selected time can change by many different mechanisms (one of the buttons, typing into the entry box, or moving the slider), so we make state.t
be the "authoritative" value and synchronize everything to it. The remaining lines of this function control which of the t
navigation buttons are enabled (if t==1
, we can't go any earlier in the movie, so we gray out the backwards buttons).
A second utility function modifies state.t
:
function incrementt(inc, ctrls, state, showframe)
state.t += inc
updatet(ctrls, state)
showframe(state)
end
Note the call to updatet
described above. The new part of this is the showframe
function, whose job it is to display the image frame (or any other visual information) to the user. Typically, the actual showframe
function will need additional information such as where to render the image, but you can provide this information using anonymous functions. We'll see how that works in the next installment; below we'll just create a simple "stub" function.
Now we get to callbacks which we'll "bind" to the step and play buttons:
function stept(inc, ctrls, state, showframe)
if 1 <= state.t+inc <= state.tmax
incrementt(inc, ctrls, state, showframe)
else
stop_playing!(state)
end
end
function playt(inc, ctrls, state, showframe)
if !(state.fps > 0)
error("Frame rate is not positive")
end
stop_playing!(state)
dt = 1/state.fps
state.timer = TimeoutAsyncWork(i -> stept(inc, ctrls, state, showframe))
start_timer(state.timer, iround(1000*dt), iround(1000*dt))
end
stept()
increments the t
frame by the specified amount (typically 1 or -1), while playt()
starts a timer that will call stept
at regular intervals. The timer is stopped if play reaches the beginning or end of the movie. The stop_playing!
function checks to see whether we have an active timer, and if so stops it:
function stop_playing!(state::NavigationState)
if !is(state.timer, nothing)
stop_timer(state.timer)
state.timer = nothing
end
end
An alternative way to handle playback without a timer would be in a loop, like this:
function stept(inc, ctrls, state, showframe)
if 1 <= state.t+inc <= state.tmax
incrementt(inc, ctrls, state, showframe)
end
end
function playt(inc, ctrls, state, showframe)
state.isplaying = true
while 1 <= state.t+inc <= state.tmax && state.isplaying
tcl_doevent() # allow the stop button to take effect
incrementt(inc, ctrls, state, showframe)
end
state.isplaying = false
end
With this version we would use a single Boolean value to signal whether there is active playback. A key point here is the call to tcl_doevent()
, which allows Tk to interrupt the execution of the loop to handle user interaction (in this case, clicking the stop button). But with the timer that's not necessary, and moreover the timer gives us control over the speed of playback.
Finally, there are callbacks for the entry and slider widgets:
function sett(ctrls,state, showframe)
tstr = get_value(ctrls.editt)
try
val = int(tstr)
state.t = val
updatet(ctrls, state)
showframe(state)
catch
updatet(ctrls, state)
end
end
function scalet(ctrls, state, showframe)
state.t = get_value(ctrls.scalet)
updatet(ctrls, state)
showframe(state)
end
sett
runs when the user types an entry into the edit box; if the user types in nonsense like "foo", it will gracefully reset it to the current position.
There's a complementary set of these functions for the z
controls.
These callbacks implement the functionality of this "navigation" GUI. The other main task is initialization. We won't cover this in gory detail (you are invited to browse the code), but let's hit a few highlights.
You can use image files (e.g., .png files) for your icons, but the ones here are created programmatically. To do this, specify two colors, the "foreground" and "background", as strings. One also needs the data
array (of type Bool
) for the pixels that should be colored by the foreground color, and false for the ones to be set to the background. There's also the mask
array, which can prevent the data
array from taking effect in any pixels marked as false in the mask
.
Given suitable data
and mask
arrays (here we just set the mask to trues
), and color strings, we create the icon and assign it to a button like this:
icon = Tk.image(data, mask, "gray70", "black") # background=gray70, foreground=black
ctrls.stop = Button(f, icon)
Here f
is the "parent frame" that the navigation controller will be rendered in. A frame is a container that organizes a collection of related GUI elements. Later we'll find out how to create one.
The "stop" and "play backwards" buttons look like this:
bind(ctrls.stop, "command", path -> stop_playing!(state))
bind(ctrls.playback, "command", path -> playt(-1, ctrls, state, showframe)
The path
input is generated by Tk/Tcl, but we don't have to use it. Instead, we use anonymous functions to pass the arguments relavant to this particular GUI instantiation. Note that these two buttons share state
; that means that any changes made by one callback will have impact on the other.
Here our layout needs are quite simple, but I recommend that you read the excellent tutorial on Tk's grid
layout engine. grid
provides a great deal of functionality missing in Matlab, and in particular allows flexible and polished GUI behavior when resizing the window.
We position the stop button this way:
grid(ctrls.stop, 1, stopindex, padx=3*pad, pady=pad)
After the handle for the button itself, the next two inputs determine the row, column position of the widget. Here the column position is set using a variable (an integer) whose value will depend on whether the z controls are present. The pad
settings just apply a bit of horizontal and vertical padding around the button.
To position the slider widgets, we could do something like this:
ctrls.scalez = Slider(f, 1:state.zmax)
grid(ctrls.scalez, 2, start:stop, sticky="we", padx=pad)
This positions them in row 2 of the frame's grid, and has them occupy the range of columns (indicated by start:stop
) used by the button controls for the same z
or t
axis. The sticky
setting means that it will stretch to fill from West to East (left to right).
In the main GUI we'll use one more feature of grid
, so let's cover it now. This feature controls how regions of the window expand or shrink when the window is resized:
grid_rowconfigure(win, 1, weight=1)
grid_columnconfigure(win, 1, weight=1)
This says that row 1, column 1 will expand at a rate of 1
when the figure is made larger. You can set different weights for different GUI components. The default value is 0, indicating that it shouldn't expand at all. That's what we want for this navigation frame, so that the buttons keep their size when the window is resized. Larger weight values indicate that the given component should expand (or shrink) at faster rates.
We'll place the navigation controls inside a Tk frame. Let's create one from the command line:
using Tk
win = Toplevel()
f = Frame(win)
pack(f, expand=true, fill="both")
The first three lines create the window and the frame. pack
is an alternative layout engine to grid
, and slightly more convenient when all you want is to place a single item so that it fills its container. (You can mix pack
and grid
as long as they are operating on separate containers. Here we'll have a frame pack
ed in the window, and the widgets will be grid
ded inside the frame.) After that fourth line, the window is rather tiny; the call to pack
causes the frame to fill to expand the whole window, but at the moment the frame has no contents, so the window is as small as it can be.
We need a showframe
callback; for now let's create a very simple one that will help in testing:
showframe = x -> println("showframe z=", x.z, ", t=", x.t)
Next, load the GUI code (using ImageView.Navigation
) and create the NavigationState
and NavigationControls
objects:
ctrls = NavigationControls()
state = NavigationState(40, 1000, 2, 5)
Here we've set up a fake movie with 40 image slices in z
, and 1000 image stacks in t
.
Finally, we initialize the widgets:
init_navigation!(f, ctrls, state, showframe)
Now when you click on buttons, or change the text in the entry boxes, you'll see the GUI in action. You can tell from the command line output, generated by showframe
, what's happening internally:
Hopefully this demonstrates another nice feature of developing GUIs in Julia: it's straightforward to build re-usable components. This navigation frame can be added as an element to any window, and the grid layout manager takes care of the rest. All you need to do is to include ImageView/src/navigation.jl
into your module, and you can make use of it with just a few lines of code.
Not too hard, right? The next step is to render the image, which brings us into the domain of Cairo.


Friend Finder
Answer a few questions about yourself in our survey.
Then we will match you with a friend with similar interests!
Take the Survey!


My Details
- Park Name: {{parkName}}
- Number of total slots: {{numberOfSlots}}
- Open Hours: {{openHours}}
| Vehicle Type | Number of slots allocated | Charge per one hour |
|---|---|---|
| Cars and Vans | {{alocatedSlots1}} | {{hourCharge1}} |
| Bikes | {{alocatedSlots2}} | {{hourCharge2}} |
| Lorries and Buses | {{alocatedSlots3}} | {{hourCharge3}} |
| Three Wheelers | {{alocatedSlots4}} | {{hourCharge4}} |
| Long Vehicles | {{alocatedSlots5}} | {{hourCharge5}} |


King Kong II
问题描述 :
Have you seen the movie King Kong? If you have seen it, you must be impressed by the scene of the exciting fight between dinosaurs and King Kong, right? Though the dinosaurs have been fight off, King Kong has been injured very heavily. Considering that dinosaurs will come back very quickly, King Kong brings a lot of stones for fear that the dinosaurs attack again.
Now King Kong has arranged the stones at random in one line. But Different alignments of these stones would be different to King Kong. If the alignment is not the target in his mind, he will move the stones to their proper positions. Taking the physical consumption into consideration, King Kong could swap only two stones (whose weight is a and b weight units) at one time and for each time he will consume a+b thermal units. In order to minimize the physical consumption, King Kong should set a plan to move these stones. But this is too complex for king Kong and he needs your help.
Now King Kong has arranged the stones at random in one line. But Different alignments of these stones would be different to King Kong. If the alignment is not the target in his mind, he will move the stones to their proper positions. Taking the physical consumption into consideration, King Kong could swap only two stones (whose weight is a and b weight units) at one time and for each time he will consume a+b thermal units. In order to minimize the physical consumption, King Kong should set a plan to move these stones. But this is too complex for king Kong and he needs your help.
输入:
There are several test cases. For each test case, it contains:
Line 1: One integer N (1<=N<=50000) which specifies the total number of stones.
Line 2: N integers (you are ensured that the absolute value of each integer is less than 216) which the weight of each stone initially. These numbers specify the initial stone alignment. There is a blank between two consecutive integers.
Line 3: N integers (you are ensured that the absolute value of each integer is less than 216 ) which the weight of each stone finally. These numbers specify the target alignment in King Kong’s mind. There is a blank between two consecutive integers.
The input will be ended by zero.
Line 1: One integer N (1<=N<=50000) which specifies the total number of stones.
Line 2: N integers (you are ensured that the absolute value of each integer is less than 216) which the weight of each stone initially. These numbers specify the initial stone alignment. There is a blank between two consecutive integers.
Line 3: N integers (you are ensured that the absolute value of each integer is less than 216 ) which the weight of each stone finally. These numbers specify the target alignment in King Kong’s mind. There is a blank between two consecutive integers.
The input will be ended by zero.
输出:
There are several test cases. For each test case, it contains:
Line 1: One integer N (1<=N<=50000) which specifies the total number of stones.
Line 2: N integers (you are ensured that the absolute value of each integer is less than 216) which the weight of each stone initially. These numbers specify the initial stone alignment. There is a blank between two consecutive integers.
Line 3: N integers (you are ensured that the absolute value of each integer is less than 216 ) which the weight of each stone finally. These numbers specify the target alignment in King Kong’s mind. There is a blank between two consecutive integers.
The input will be ended by zero.
Line 1: One integer N (1<=N<=50000) which specifies the total number of stones.
Line 2: N integers (you are ensured that the absolute value of each integer is less than 216) which the weight of each stone initially. These numbers specify the initial stone alignment. There is a blank between two consecutive integers.
Line 3: N integers (you are ensured that the absolute value of each integer is less than 216 ) which the weight of each stone finally. These numbers specify the target alignment in King Kong’s mind. There is a blank between two consecutive integers.
The input will be ended by zero.
样例输入:
3 3 2 1 1 2 3 3 1 2 3 1 2 3 4 4 2 1 2 1 2 2 4 4 8 1 2 4 1 2 4 8 5 1 8 9 7 6 1 6 7 8 9 0
样例输出:
Case 1: 4 Case 2: 0 Case 3: 8 Case 4: 17 Case 5: 41
(adsbygoogle = window.adsbygoogle || []).push({});
糖尿病就会导致脂肪肝。。。


Our Educational Mentoring Program (EMP) helps students from the foster care system achieve their goal of completing college. Many of these students drop out of college because they don’t feel comfortable in their environment, not because they’re intellectually unable to do the work.
EMP focuses on students who possess the strength of character and intellectual tools to break the cycle of poverty, drugs, and despair, but are often lost to society due to lack of appropriate support. In cooperation with partner agencies, this program provides vital support to enable these students to become college graduates and contributors to society.


This package contains connectors and partial models for 1-dim. translational mechanical components. The components of this package can only be used as basic building elements for models.
| Name | Description |
|---|---|
| Flange | One-dimensional translational flange |
| Flange_a | One-dimensional translational flange (left, flange axis directed INTO cut plane) |
| Flange_b | One-dimensional translational flange (right, flange axis directed OUT OF cut plane) |
| Support | Support/housing flange of a one-dimensional translational component |
| InternalSupport | Adapter model to utilize conditional support connector |
| PartialTwoFlanges | Component with two translational 1D flanges |
| PartialOneFlangeAndSupport | Partial model for a component with one translational 1-dim. shaft flange and a support used for graphical modeling, i.e., the model is build up by drag-and-drop from elementary components |
| PartialTwoFlangesAndSupport | Partial model for a component with two translational 1-dim. shaft flanges and a support used for graphical modeling, i.e., the model is build up by drag-and-drop from elementary components |
| PartialRigid | Rigid connection of two translational 1D flanges |
| PartialCompliant | Compliant connection of two translational 1D flanges |
| PartialCompliantWithRelativeStates | Base model for the compliant connection of two translational 1-dim. shaft flanges where the relative position and relative velocities are used as states |
| PartialElementaryOneFlangeAndSupport | Obsolete partial model. Use PartialElementaryOneFlangeAndSupport2. |
| PartialElementaryOneFlangeAndSupport2 | Partial model for a component with one translational 1-dim. shaft flange and a support used for textual modeling, i.e., for elementary models |
| PartialElementaryTwoFlangesAndSupport | Obsolete partial model. Use PartialElementaryTwoFlangesAndSupport2. |
| PartialElementaryTwoFlangesAndSupport2 | Partial model for a component with one translational 1-dim. shaft flange and a support used for textual modeling, i.e., for elementary models |
| PartialElementaryRotationalToTranslational | Partial model to transform rotational into translational motion |
| PartialForce | Partial model of a force acting at the flange (accelerates the flange) |
| PartialAbsoluteSensor | Device to measure a single absolute flange variable |
| PartialRelativeSensor | Device to measure a single relative variable between two flanges |
| PartialFriction | Base model of Coulomb friction elements |


This page doesn't exist (yet)
Sorry, you've reached a page that doesn't exist. Don't worry, though. Alertify.js is open source and you can hack on website on GitHub if you want to add something to it.
We'll be waiting for your PR!
Sorry, you've reached a page that doesn't exist. Don't worry, though. Alertify.js is open source and you can hack on website on GitHub if you want to add something to it.
We'll be waiting for your PR!


| r_versions {rversions} | R Documentation |
R version numbers consist of three numbers (since version 1.4.1): major, minor and patch.
r_versions(dots = TRUE)
dots |
Whether to use dots instead of dashes in the version number. |
We extract the version numbers from the tags in the SVN repository.
A data frame with three columns: ‘version’, ‘date’ and ‘nickname’.
r_versions()


CHAPTER 503B
TIME SHARE COMMISSIONERS OF DEEDS
Section
503B-1 Commissioners; appointment
503B-2 Oath and seal
503B-3 Powers; charges
503B-4 Records
503B-5 Instructions
503B-6 Construction of statutes
503B-7 Notice of legal effect
503B-8 Bond
503B-9 Liabilities; limitations on; official bond
503B-10 Fees and administrative fines
503B-11 Rules
503B-12 Immunity


Welcome to Insta Roulette!

Sure!


--- layout: page title: Vaughn Cooper date: 2011-09-22 14:07:04.000000000 -04:00 type: page published: true status: publish categories: [] tags: [] meta: _edit_last: '1' _wp_page_template: content-sidebar-page.php _responsive_layout: default _post_lock_status: unlocked author: login: test email<EMAIL_ADDRESS>display_name: Vaughn first_name: Vaughn last_name: Cooper ---
I've been a competitive triathlete since 1990 and have completed 20 Ironmans, including 7 trips to the Hawaii Ironman World Championships. Some of my results can be found here: [http://www.athlinks.com/myresultsadv.aspx?rid=65866712]
Erika and I are also lifers in the sport of water polo. I coached the women's team at Michigan State University and the men's team at the University of Michigan (2003 Big Ten and National Champions). I reffed NCAA water polo through the CWPA.
I can be found at vaughn dot cooper at gmail dot com


Recursive mutex attributes. More...
#include <cmsis-plus/rtos/os.h>
Public Member Functions | |
Constructors & Destructor | |
| constexpr | attributes_recursive () |
| Construct a recursive mutex attributes object instance. | |
| attributes_recursive (const attributes_recursive &)=default | |
| attributes_recursive (attributes_recursive &&)=default | |
| attributes_recursive & | operator= (const attributes_recursive &)=default |
| attributes_recursive & | operator= (attributes_recursive &&)=default |
| ~attributes_recursive ()=default | |
| Destruct the recursive mutex attributes object instance. | |
Public Attributes | |
Public Member Variables | |
| thread::priority_t | mx_priority_ceiling = thread::priority::highest |
| Attribute with the mutex priority ceiling. | |
| protocol_t | mx_protocol = protocol::default_ |
| Attribute with the mutex protocol. | |
| robustness_t | mx_robustness = robustness::stalled |
| Attribute with the mutex robustness. | |
| type_t | mx_type = type::default_ |
| Attribute with the mutex type. | |
| count_t | mx_max_count = max_count |
| Attribute with the mutex maximum recursive count. | |
Public Member Variables | |
| rtos::clock * | clock = nullptr |
| Attribute with the address of the clock to be used for timeouts. | |
Recursive mutex attributes.
Allow to assign a name and custom attributes (like priority ceiling, robustness, etc) to the mutex.
pthread_mutexattr_t
from <pthread.h>
(IEEE Std 1003.1, 2013 Edition). Definition at line 310 of file os-mutex.h.
|
constexpr |
Construct a recursive mutex attributes object instance.
Definition at line 815 of file os-mutex.h.
|
default |
|
default |
|
default |
Destruct the recursive mutex attributes object instance.
|
default |
|
default |
|
inherited |
Attribute with the address of the clock to be used for timeouts.
It may be one of os::rtos::sysclock
, os::rtos::rtclock
, or any other user object derived from class os::rtos::clock
.
If nullptr
, the default clock is os::rtos::sysclock
.
Definition at line 615 of file os-decls.h.
|
inherited |
Attribute with the mutex maximum recursive count.
The mx_max_count attribute defines the upper limit of recursion for a recursive mutex. Further attempts to lock the mutex will result in EAGAIN
.
Definition at line 287 of file os-mutex.h.
|
inherited |
Attribute with the mutex priority ceiling.
The mx_priority_ceiling attribute defines the priority ceiling of initialised mutexes, which is the minimum priority level at which the critical section guarded by the mutex is executed. In order to avoid priority inversion, the priority ceiling of the mutex shall be set to a priority higher than or equal to the highest priority of all the threads that may lock that mutex. The values of mx_priority_ceiling are within the maximum range of priorities defined under the SCHED_FIFO scheduling policy.
pthread_mutexattr_setprioceiling()
from <pthread.h>
(IEEE Std 1003.1, 2013 Edition). Definition at line 267 of file os-mutex.h.
|
inherited |
Attribute with the mutex protocol.
The default value of this attribute shall be mutex::protocol::inherit
.
pthread_mutexattr_setprotocol()
from <pthread.h>
(IEEE Std 1003.1, 2013 Edition). mutex::protocol::none
. Definition at line 272 of file os-mutex.h.
|
inherited |
Attribute with the mutex robustness.
The default value of this attribute shall be mutex::robustness::stalled
.
pthread_mutexattr_setrobust()
from <pthread.h>
(IEEE Std 1003.1, 2013 Edition). Definition at line 277 of file os-mutex.h.
|
inherited |
Attribute with the mutex type.
The default value of this attribute shall be mutex::type::default_
.
pthread_mutexattr_settype()
from <pthread.h>
(IEEE Std 1003.1, 2013 Edition). Definition at line 282 of file os-mutex.h.


{% extends "layout.html" %} {% block body %}
Find the 'master' tag on the left, then enter all the tags you want to merge with it on the right.


Takes an array as an argument and prints out the array in reverse
takes an array as an argument and returms true if all elements in array are identical
accepts an aray of numbers and returns the sum of all numbers in the array
returns the maximum number in the array


Migrating to Flutter 1.9: Implementing Cross-platform Firebase Login in Flutter Apps
Posted on September 23, 2019 in Flutter
Background
I've been experimenting with Flutter Web (aka Hummingbird earlier) since it was announced in Google IO 2019.
I remember submitting pull request to add instructions for running Flutter sample web apps. Since then I liked the challenge of exploring fast paced and ever changing Flutter Web.
I wrote couple of articles to design and implement a landing page in Flutter which can work seamlessly on all three platforms: Android, iOS and Web. I kept on improving upon this landing page to include login using Firebase, FactsBot, themes, and so on.
Please refer to previous related articles below:
Checkout the companion video:
Introduction
In this article, I'll show you how Flutter 1.9 release makes developing cross-platform Flutter applications simple while maximizing code reuse. I'll be using my previous Flutter-to-Fly sample app to demonstrate this transition to Flutter 1.9.
Migrating project to Flutter 1.9
There is pretty good documentation on migrating existing project to Flutter 1.9 and / or creating a new Flutter project available on official Flutter website. Basically, you would need to run these following commands in one directory level up of your project directory:
$ flutter channel master
$ flutter upgrade
$ flutter config --enable-web
$ cd <into project directory>
$ flutter create .
$flutter run -d chrome
NOTE: In case you run into White screen issue, you may want to change your Flutter channel to flutter channel dev
.
Running X-platform apps from Android Studio
Starting from Flutter 1.9, you can run apps on Android, iOS, and Chrome right from Android Studio:
Deploying Web App
Deploying Web App is just a command away:
$ flutter build web
Above command will generate a build
folder in the root directory. Copy its contents into public
directory of your hosting site.
Launching URL(s)
So far, we kept web and native codebase in separate branches to manage launching URL in web and mobile environments differently. Flutter 1.9 makes it possible to be able to keep both (web and mobile/native) codebase in one branch, and pick the right implementation by detecting the platform using dart.library.html
for web and dart.library.io
for mobile platform.
You can organize your code base for plugins
as below as recommended by Flutter team:
Above screenshot shows two plugins:
-
url_launcher
: Managing launching URLs based on target platform. Refer to complete source code here -
firetop
: Manages firebase related functionality for mobile and web platforms. We'll dive deeper into this plugin in next section. Refer to complete source code here.
pubspec.yaml:
Following dependencies are needed for launching URLs from Flutter app.
dependencies:
universal_html: ^1.1.0
url_launcher: ^5.1.2
Let's see contents of url_launcher.dart
below. This is where target platform is detected and appropriate implementation is used.
export 'unsupported.dart'
if (dart.library.html) 'web.dart'
if (dart.library.io) 'mobile.dart';
Firebase login functionality
Flutter team is working on fb_auth plugin to provide cross-platform Firebase support.
pubspec.yaml:
Following dependency is needed for adding cross-platform support for Firebase.
dependencies:
fb_auth: 0.0.2+1
Let's checkout fire_auth_service.dart
below. Please refer to source code in Gihub repo to refer other files.
export 'unsupported.dart'
if (dart.library.html) 'web.dart'
if (dart.library.io) 'mobile.dart';
You would notice that web.dart
and mobile.dart
are very similar and use FBAuth()
to access Firebase functionality. We still need to keep them separate because not everything is available in fb_auth
plugin. For example, FireStore support is missing for Flutter Web.
Conclusion
I kept this article short to give a quick update on most important changes that are happening in Flutter Web world. This article gave a peek into getting started with merging Flutter Web code branches into Native code, and how to target platform specific code. We saw how URLs can be launched for Web and Mobile apps using the same code base. Lastly, we covered integrating with Firebase from the one code base.
Keep Fluttering !
Source code
Flutter-to-Fly sample app's source code is available here
References/Credits:
- Flutter 1.9 release
- Getting started on Flutter Web
- Flutter-to-Fly App
- fb_auth plugin
- universal_html plugin
- url_launcher plugin
- Designing Cross platform Flutter prototype for Landing Page
- Making Cross-platform Flutter Landing Page Responsive
- Using Flutter Themes for Cross-platform Landing Page (Web-Hummingbird, Android, iOS)
- Implementing Flutter FactsBot using DialogFlow
- Implementing Login in Flutter Web (Hummingbird)
Happy cooking with Flutter :)
Liked the article ? Couldn't find a topic of your interest ? Please leave comments or email me about topics you would like me to write ! BTW I love cupcakes and coffee both :)


{% extends "base.html" %}{% load i18n %} {% block content %}
{% blocktrans trimmed %}If you forgot your password, here is what we can do for you.{% endblocktrans %}
{% blocktrans trimmed %}Not super hard. If you're ready, I'm ready.{% endblocktrans %}
{% endblock %}


|
|
|
|
These railroad diagrams are based on the JCR 2.0 specification.
The diagrams are created with a small Java program and this BNF. The program uses the BNF parser / converter of the the H2 database engine.
Please send feedback to the Jackrabbit User List.
${item.text}


Trevor Bekolay
is a PhD student at the University of Waterloo, where he uses computers to build models of the brain.
He is interested in how the type of learning that happens at Software Carpentry workshops
translates to the changes that happen in the brain.
Maintainer: Programming with Python


well, what you mean with many requests?
per server would only be one request
http://battlelog.battlefield.com/bf3/servers/show/3c4e0e2e-b1c7-420d-b045-32f2ccd88a04/?json=1
Thats not more than battlelog is doing. Battlelog is sending a request for every click on a server in the list