// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CONTENT_PUBLIC_BROWSER_WEB_CONTENTS_H_
#define CONTENT_PUBLIC_BROWSER_WEB_CONTENTS_H_
#include
#include
#include
#include
#include
#include "base/callback_forward.h"
#include "base/files/file_path.h"
#include "base/process/kill.h"
#include "base/strings/string16.h"
#include "base/supports_user_data.h"
#include "build/build_config.h"
#include "content/common/content_export.h"
#include "content/public/browser/invalidate_type.h"
#include "content/public/browser/navigation_controller.h"
#include "content/public/browser/page_navigator.h"
#include "content/public/browser/save_page_type.h"
#include "content/public/browser/screen_orientation_delegate.h"
#include "content/public/browser/site_instance.h"
#include "content/public/browser/web_contents_observer.h"
#include "content/public/browser/web_ui.h"
#include "content/public/common/stop_find_action.h"
#include "third_party/WebKit/common/sandbox_flags.h"
#include "third_party/skia/include/core/SkColor.h"
#include "ui/accessibility/ax_tree_update.h"
#include "ui/base/window_open_disposition.h"
#include "ui/gfx/geometry/rect.h"
#include "ui/gfx/native_widget_types.h"
#if defined(OS_ANDROID)
#include "base/android/scoped_java_ref.h"
#endif
namespace base {
class TimeTicks;
}
namespace blink {
struct WebFindOptions;
}
namespace device {
namespace mojom {
class WakeLockContext;
}
}
namespace net {
struct LoadStateWithParam;
}
namespace service_manager {
class InterfaceProvider;
}
namespace content {
class BrowserContext;
class BrowserPluginGuestDelegate;
class InterstitialPage;
class RenderFrameHost;
class RenderViewHost;
class RenderWidgetHost;
class RenderWidgetHostView;
class WebContentsDelegate;
struct CustomContextMenuContext;
struct DropData;
struct Manifest;
struct MHTMLGenerationParams;
struct PageImportanceSignals;
struct RendererPreferences;
// WebContents is the core class in content/. A WebContents renders web content
// (usually HTML) in a rectangular area.
//
// Instantiating one is simple:
// std::unique_ptr web_contents(
// content::WebContents::Create(
// content::WebContents::CreateParams(browser_context)));
// gfx::NativeView view = web_contents->GetNativeView();
// // |view| is an HWND, NSView*, GtkWidget*, etc.; insert it into the view
// // hierarchy wherever it needs to go.
//
// That's it; go to your kitchen, grab a scone, and chill. WebContents will do
// all the multi-process stuff behind the scenes. More details are at
// http://www.chromium.org/developers/design-documents/multi-process-architecture
// .
//
// Each WebContents has exactly one NavigationController; each
// NavigationController belongs to one WebContents. The NavigationController can
// be obtained from GetController(), and is used to load URLs into the
// WebContents, navigate it backwards/forwards, etc. See navigation_controller.h
// for more details.
class WebContents : public PageNavigator,
public base::SupportsUserData {
public:
struct CONTENT_EXPORT CreateParams {
explicit CreateParams(BrowserContext* context);
CreateParams(const CreateParams& other);
~CreateParams();
CreateParams(BrowserContext* context, scoped_refptr site);
BrowserContext* browser_context;
// Specifying a SiteInstance here is optional. It can be set to avoid an
// extra process swap if the first navigation is expected to require a
// privileged process.
scoped_refptr site_instance;
// The process id of the frame initiating the open.
int opener_render_process_id;
// The routing id of the frame initiating the open.
int opener_render_frame_id;
// If the opener is suppressed, then the new WebContents doesn't hold a
// reference to its opener.
bool opener_suppressed;
// Indicates whether this WebContents was created with a window.opener.
// This is used when determining whether the WebContents is allowed to be
// closed via window.close(). This may be true even with a null |opener|
// (e.g., for blocked popups).
bool created_with_opener;
// The routing ids of the RenderView, main RenderFrame, and the widget for
// the main RenderFrame. Either all routing IDs must be provided or all must
// be MSG_ROUTING_NONE to have WebContents make the assignment. If provided,
// these routing IDs are associated with |site_instance->GetProcess()|.
int32_t routing_id;
int32_t main_frame_routing_id;
int32_t main_frame_widget_routing_id;
// The name of the top-level frame of the new window. It is non-empty
// when creating a named window (e.g. or
// window.open('', 'bar')).
std::string main_frame_name;
// Initial size of the new WebContent's view. Can be (0, 0) if not needed.
gfx::Size initial_size;
// True if the contents should be initially hidden.
bool initially_hidden;
// If non-null then this WebContents will be hosted by a BrowserPlugin.
BrowserPluginGuestDelegate* guest_delegate;
// Used to specify the location context which display the new view should
// belong. This can be nullptr if not needed.
gfx::NativeView context;
// Used to specify that the new WebContents creation is driven by the
// renderer process. In this case, the renderer-side objects, such as
// RenderFrame, have already been created on the renderer side, and
// WebContents construction should take this into account.
bool renderer_initiated_creation;
// True if the WebContents should create its renderer process and main
// RenderFrame before the first navigation. This is useful to reduce
// the latency of the first navigation in cases where it might
// not happen right away.
// Note that the pre-created renderer process may not be used if the first
// navigation requires a dedicated or privileged process, such as a WebUI.
bool initialize_renderer;
// Sandboxing flags set on the new WebContents.
blink::WebSandboxFlags starting_sandbox_flags;
};
// Creates a new WebContents.
CONTENT_EXPORT static WebContents* Create(const CreateParams& params);
// Similar to Create() above but should be used when you need to prepopulate
// the SessionStorageNamespaceMap of the WebContents. This can happen if
// you duplicate a WebContents, try to reconstitute it from a saved state,
// or when you create a new WebContents based on another one (eg., when
// servicing a window.open() call).
//
// You do not want to call this. If you think you do, make sure you completely
// understand when SessionStorageNamespace objects should be cloned, why
// they should not be shared by multiple WebContents, and what bad things
// can happen if you share the object.
CONTENT_EXPORT static WebContents* CreateWithSessionStorage(
const CreateParams& params,
const SessionStorageNamespaceMap& session_storage_namespace_map);
// Returns the WebContents that owns the RenderViewHost, or nullptr if the
// render view host's delegate isn't a WebContents.
CONTENT_EXPORT static WebContents* FromRenderViewHost(RenderViewHost* rvh);
CONTENT_EXPORT static WebContents* FromRenderFrameHost(RenderFrameHost* rfh);
// Returns the WebContents associated with the |frame_tree_node_id|.
CONTENT_EXPORT static WebContents* FromFrameTreeNodeId(
int frame_tree_node_id);
// Sets delegate for platform specific screen orientation functionality.
CONTENT_EXPORT static void SetScreenOrientationDelegate(
ScreenOrientationDelegate* delegate);
~WebContents() override {}
// Intrinsic tab state -------------------------------------------------------
// Gets/Sets the delegate.
virtual WebContentsDelegate* GetDelegate() = 0;
virtual void SetDelegate(WebContentsDelegate* delegate) = 0;
// Gets the controller for this WebContents.
virtual NavigationController& GetController() = 0;
virtual const NavigationController& GetController() const = 0;
// Returns the user browser context associated with this WebContents (via the
// NavigationController).
virtual content::BrowserContext* GetBrowserContext() const = 0;
// Gets the URL that is currently being displayed, if there is one.
// This method is deprecated. DO NOT USE! Pick either |GetVisibleURL| or
// |GetLastCommittedURL| as appropriate.
virtual const GURL& GetURL() const = 0;
// Gets the virtual URL currently being displayed in the URL bar, if there is
// one. This URL might be a pending navigation that hasn't committed yet, so
// it is not guaranteed to match the current page in this WebContents. A
// typical example of this is interstitials, which show the URL of the
// new/loading page (active) but the security context is of the old page (last
// committed).
virtual const GURL& GetVisibleURL() const = 0;
// Gets the virtual URL of the last committed page in this WebContents.
// Virtual URLs are meant to be displayed to the user (e.g., they include the
// "view-source:" prefix for view source URLs, unlike NavigationEntry::GetURL
// and NavigationHandle::GetURL). The last committed page is the current
// security context and the content that is actually displayed within the tab.
// See also GetVisibleURL above, which may differ from this URL.
virtual const GURL& GetLastCommittedURL() const = 0;
// Returns the main frame for the currently active view.
virtual RenderFrameHost* GetMainFrame() const = 0;
// Returns the focused frame for the currently active view.
virtual RenderFrameHost* GetFocusedFrame() = 0;
// Returns the current RenderFrameHost for a given FrameTreeNode ID if it is
// part of this frame tree, not including frames in any inner WebContents.
// Returns nullptr if |process_id| does not match the current
// RenderFrameHost's process ID, to avoid security bugs where callers do not
// realize a cross-process navigation (and thus privilege change) has taken
// place. See RenderFrameHost::GetFrameTreeNodeId for documentation on
// frame_tree_node_id.
virtual RenderFrameHost* FindFrameByFrameTreeNodeId(int frame_tree_node_id,
int process_id) = 0;
// NOTE: This is generally unsafe to use. Use FindFrameByFrameTreeNodeId
// instead.
// Returns the current RenderFrameHost for a given FrameTreeNode ID if it is
// part of this frame tree. This may not match the caller's expectation, if a
// cross-process navigation (and thus privilege change) has taken place.
// See RenderFrameHost::GetFrameTreeNodeId for documentation on this ID.
virtual RenderFrameHost* UnsafeFindFrameByFrameTreeNodeId(
int frame_tree_node_id) = 0;
// Calls |on_frame| for each frame in the currently active view.
// Note: The RenderFrameHost parameter is not guaranteed to have a live
// RenderFrame counterpart in the renderer process. Callbacks should check
// IsRenderFrameLive(), as sending IPC messages to it in this case will fail
// silently.
virtual void ForEachFrame(
const base::RepeatingCallback& on_frame) = 0;
// Returns a vector of all RenderFrameHosts in the currently active view in
// breadth-first traversal order.
virtual std::vector GetAllFrames() = 0;
// Sends the given IPC to all live frames in this WebContents and returns the
// number of sent messages (i.e. the number of processed frames).
virtual int SendToAllFrames(IPC::Message* message) = 0;
// Gets the current RenderViewHost for this tab.
virtual RenderViewHost* GetRenderViewHost() const = 0;
// Returns the currently active RenderWidgetHostView. This may change over
// time and can be nullptr (during setup and teardown).
virtual RenderWidgetHostView* GetRenderWidgetHostView() const = 0;
// Returns the outermost RenderWidgetHostView. This will return the platform
// specific RenderWidgetHostView (as opposed to
// RenderWidgetHostViewChildFrame), which can be used to create context
// menus.
virtual RenderWidgetHostView* GetTopLevelRenderWidgetHostView() = 0;
// Request a one-time snapshot of the accessibility tree without changing
// the accessibility mode.
using AXTreeSnapshotCallback = base::Callback;
virtual void RequestAXTreeSnapshot(
const AXTreeSnapshotCallback& callback) = 0;
// Causes the current page to be closed, including running its onunload event
// handler.
virtual void ClosePage() = 0;
// Returns the currently active fullscreen widget. If there is none, returns
// nullptr.
virtual RenderWidgetHostView* GetFullscreenRenderWidgetHostView() const = 0;
// Returns the theme color for the underlying content as set by the
// theme-color meta tag.
virtual SkColor GetThemeColor() const = 0;
// Returns the committed WebUI if one exists, otherwise the pending one.
virtual WebUI* GetWebUI() const = 0;
virtual WebUI* GetCommittedWebUI() const = 0;
// Allows overriding the user agent used for NavigationEntries it owns.
virtual void SetUserAgentOverride(const std::string& override) = 0;
virtual const std::string& GetUserAgentOverride() const = 0;
// Set the accessibility mode so that accessibility events are forwarded
// to each WebContentsObserver.
virtual void EnableWebContentsOnlyAccessibilityMode() = 0;
// Returns true only if the WebContentsObserver accessibility mode is
// enabled.
virtual bool IsWebContentsOnlyAccessibilityModeForTesting() const = 0;
// Returns true only if complete accessibility mode is on, meaning there's
// both renderer accessibility, and a native browser accessibility tree.
virtual bool IsFullAccessibilityModeForTesting() const = 0;
virtual const PageImportanceSignals& GetPageImportanceSignals() const = 0;
// Tab navigation state ------------------------------------------------------
// Returns the current navigation properties, which if a navigation is
// pending may be provisional (e.g., the navigation could result in a
// download, in which case the URL would revert to what it was previously).
virtual const base::string16& GetTitle() const = 0;
// Saves the given title to the navigation entry and does associated work. It
// will update history and the view with the new title, and also synthesize
// titles for file URLs that have none. Thus |entry| must have a URL set.
virtual void UpdateTitleForEntry(NavigationEntry* entry,
const base::string16& title) = 0;
// Returns the SiteInstance associated with the current page.
virtual SiteInstance* GetSiteInstance() const = 0;
// Returns whether this WebContents is loading a resource.
virtual bool IsLoading() const = 0;
// Returns whether this WebContents is loading and and the load is to a
// different top-level document (rather than being a navigation within the
// same document) in the main frame. This being true implies that IsLoading()
// is also true.
virtual bool IsLoadingToDifferentDocument() const = 0;
// Returns whether this WebContents is waiting for a first-response for the
// main resource of the page.
virtual bool IsWaitingForResponse() const = 0;
// Returns the current load state and the URL associated with it.
// The load state is only updated while IsLoading() is true.
virtual const net::LoadStateWithParam& GetLoadState() const = 0;
virtual const base::string16& GetLoadStateHost() const = 0;
// Returns the upload progress.
virtual uint64_t GetUploadSize() const = 0;
virtual uint64_t GetUploadPosition() const = 0;
// Returns the character encoding of the page.
virtual const std::string& GetEncoding() const = 0;
// Internal state ------------------------------------------------------------
// Indicates whether the WebContents is being captured (e.g., for screenshots
// or mirroring). Increment calls must be balanced with an equivalent number
// of decrement calls. |capture_size| specifies the capturer's video
// resolution, but can be empty to mean "unspecified." The first screen
// capturer that provides a non-empty |capture_size| will override the value
// returned by GetPreferredSize() until all captures have ended.
virtual void IncrementCapturerCount(const gfx::Size& capture_size) = 0;
virtual void DecrementCapturerCount() = 0;
virtual bool IsBeingCaptured() const = 0;
// Indicates/Sets whether all audio output from this WebContents is muted.
virtual bool IsAudioMuted() const = 0;
virtual void SetAudioMuted(bool mute) = 0;
// Returns true if the audio is currently audible.
virtual bool IsCurrentlyAudible() = 0;
// Indicates whether any frame in the WebContents is connected to a Bluetooth
// Device.
virtual bool IsConnectedToBluetoothDevice() const = 0;
// Indicates whether this tab should be considered crashed. The setter will
// also notify the delegate when the flag is changed.
virtual bool IsCrashed() const = 0;
virtual void SetIsCrashed(base::TerminationStatus status, int error_code) = 0;
virtual base::TerminationStatus GetCrashedStatus() const = 0;
virtual int GetCrashedErrorCode() const = 0;
// Whether the tab is in the process of being destroyed.
virtual bool IsBeingDestroyed() const = 0;
// Convenience method for notifying the delegate of a navigation state
// change.
virtual void NotifyNavigationStateChanged(InvalidateTypes changed_flags) = 0;
// Notifies the WebContents that audio started or stopped being audible.
virtual void OnAudioStateChanged(bool is_audio_playing) = 0;
// Get/Set the last time that the WebContents was made active (either when it
// was created or shown with WasShown()).
virtual base::TimeTicks GetLastActiveTime() const = 0;
virtual void SetLastActiveTime(base::TimeTicks last_active_time) = 0;
// Invoked when the WebContents becomes shown/hidden. A hidden WebContents
// isn't painted on the screen.
virtual void WasShown() = 0;
virtual void WasHidden() = 0;
// Whether the WebContents is visible. This can return true even if the page
// is still loading, as opposed to RenderWidgetHostView::IsShowing(), which
// always returns false when the page is still loading.
virtual bool IsVisible() const = 0;
// Invoked when the WebContents becomes occluded/unoccluded. An occluded
// WebContents isn't painted on the screen, except in a window switching
// feature (e.g. Alt-Tab).
virtual void WasOccluded() = 0;
virtual void WasUnOccluded() = 0;
// Returns true if the before unload and unload listeners need to be
// fired. The value of this changes over time. For example, if true and the
// before unload listener is executed and allows the user to exit, then this
// returns false.
virtual bool NeedToFireBeforeUnload() = 0;
// Runs the beforeunload handler for the main frame. See also ClosePage and
// SwapOut in RenderViewHost, which run the unload handler.
//
// TODO(creis): We should run the beforeunload handler for every frame that
// has one.
virtual void DispatchBeforeUnload() = 0;
// Attaches this inner WebContents to its container frame
// |outer_contents_frame| in |outer_web_contents|.
virtual void AttachToOuterWebContentsFrame(
WebContents* outer_web_contents,
RenderFrameHost* outer_contents_frame) = 0;
// Invoked when visible security state changes.
virtual void DidChangeVisibleSecurityState() = 0;
// Commands ------------------------------------------------------------------
// Stop any pending navigation.
virtual void Stop() = 0;
// Creates a new WebContents with the same state as this one. The returned
// heap-allocated pointer is owned by the caller.
virtual WebContents* Clone() = 0;
// Reloads the focused frame.
virtual void ReloadFocusedFrame(bool bypass_cache) = 0;
// Reloads all the Lo-Fi images in this WebContents. Ignores the cache and
// reloads from the network.
virtual void ReloadLoFiImages() = 0;
// Editing commands ----------------------------------------------------------
virtual void Undo() = 0;
virtual void Redo() = 0;
virtual void Cut() = 0;
virtual void Copy() = 0;
virtual void CopyToFindPboard() = 0;
virtual void Paste() = 0;
virtual void PasteAndMatchStyle() = 0;
virtual void Delete() = 0;
virtual void SelectAll() = 0;
virtual void CollapseSelection() = 0;
// Adjust the selection starting and ending points in the focused frame by
// the given amounts. A negative amount moves the selection towards the
// beginning of the document, a positive amount moves the selection towards
// the end of the document.
virtual void AdjustSelectionByCharacterOffset(int start_adjust,
int end_adjust,
bool show_selection_menu) = 0;
// Replaces the currently selected word or a word around the cursor.
virtual void Replace(const base::string16& word) = 0;
// Replaces the misspelling in the current selection.
virtual void ReplaceMisspelling(const base::string16& word) = 0;
// Let the renderer know that the menu has been closed.
virtual void NotifyContextMenuClosed(
const CustomContextMenuContext& context) = 0;
// Executes custom context menu action that was provided from Blink.
virtual void ExecuteCustomContextMenuCommand(
int action, const CustomContextMenuContext& context) = 0;
// Views and focus -----------------------------------------------------------
// Returns the native widget that contains the contents of the tab.
virtual gfx::NativeView GetNativeView() = 0;
// Returns the native widget with the main content of the tab (i.e. the main
// render view host, though there may be many popups in the tab as children of
// the container).
virtual gfx::NativeView GetContentNativeView() = 0;
// Returns the outermost native view. This will be used as the parent for
// dialog boxes.
virtual gfx::NativeWindow GetTopLevelNativeWindow() = 0;
// Computes the rectangle for the native widget that contains the contents of
// the tab in the screen coordinate system.
virtual gfx::Rect GetContainerBounds() = 0;
// Get the bounds of the View, relative to the parent.
virtual gfx::Rect GetViewBounds() = 0;
// Returns the current drop data, if any.
virtual DropData* GetDropData() = 0;
// Sets focus to the native widget for this tab.
virtual void Focus() = 0;
// Sets focus to the appropriate element when the WebContents is shown the
// first time.
virtual void SetInitialFocus() = 0;
// Stores the currently focused view.
virtual void StoreFocus() = 0;
// Restores focus to the last focus view. If StoreFocus has not yet been
// invoked, SetInitialFocus is invoked.
virtual void RestoreFocus() = 0;
// Focuses the first (last if |reverse| is true) element in the page.
// Invoked when this tab is getting the focus through tab traversal (|reverse|
// is true when using Shift-Tab).
virtual void FocusThroughTabTraversal(bool reverse) = 0;
// Interstitials -------------------------------------------------------------
// Various other systems need to know about our interstitials.
virtual bool ShowingInterstitialPage() const = 0;
// Returns the currently visible interstitial, nullptr if no interstitial is
// visible. Note: This returns nullptr from the time the interstitial page has
// Show() called on it until the interstitial content is ready and the
// interstitial is displayed.
//
// Compare to InterstitialPage::GetInterstitialPage.
virtual InterstitialPage* GetInterstitialPage() const = 0;
// Misc state & callbacks ----------------------------------------------------
// Check whether we can do the saving page operation this page given its MIME
// type.
virtual bool IsSavable() = 0;
// Prepare for saving the current web page to disk.
virtual void OnSavePage() = 0;
// Save page with the main HTML file path, the directory for saving resources,
// and the save type: HTML only or complete web page. Returns true if the
// saving process has been initiated successfully.
virtual bool SavePage(const base::FilePath& main_file,
const base::FilePath& dir_path,
SavePageType save_type) = 0;
// Saves the given frame's URL to the local filesystem.
virtual void SaveFrame(const GURL& url,
const Referrer& referrer) = 0;
// Saves the given frame's URL to the local filesystem. The headers, if
// provided, is used to make a request to the URL rather than using cache.
// Format of |headers| is a new line separated list of key value pairs:
// ": \r\n: ".
virtual void SaveFrameWithHeaders(const GURL& url,
const Referrer& referrer,
const std::string& headers) = 0;
// Generate an MHTML representation of the current page in the given file.
// If |use_binary_encoding| is specified, a Content-Transfer-Encoding value of
// 'binary' will be used, instead of a combination of 'quoted-printable' and
// 'base64'. Binary encoding is known to have interoperability issues and is
// not the recommended encoding for shareable content.
virtual void GenerateMHTML(
const MHTMLGenerationParams& params,
const base::Callback& callback) = 0;
// Returns the contents MIME type after a navigation.
virtual const std::string& GetContentsMimeType() const = 0;
// Returns true if this WebContents will notify about disconnection.
virtual bool WillNotifyDisconnection() const = 0;
// Returns the settings which get passed to the renderer.
virtual content::RendererPreferences* GetMutableRendererPrefs() = 0;
// Tells the tab to close now. The tab will take care not to close until it's
// out of nested run loops.
virtual void Close() = 0;
// A render view-originated drag has ended. Informs the render view host and
// WebContentsDelegate.
virtual void SystemDragEnded(RenderWidgetHost* source_rwh) = 0;
// Notification the user has made a gesture while focus was on the
// page. This is used to avoid uninitiated user downloads (aka carpet
// bombing), see DownloadRequestLimiter for details.
virtual void UserGestureDone() = 0;
// Indicates if this tab was explicitly closed by the user (control-w, close
// tab menu item...). This is false for actions that indirectly close the tab,
// such as closing the window. The setter is maintained by TabStripModel, and
// the getter only useful from within TAB_CLOSED notification
virtual void SetClosedByUserGesture(bool value) = 0;
virtual bool GetClosedByUserGesture() const = 0;
// Gets the minimum/maximum zoom percent.
virtual int GetMinimumZoomPercent() const = 0;
virtual int GetMaximumZoomPercent() const = 0;
// Set the renderer's page scale to the given factor.
virtual void SetPageScale(float page_scale_factor) = 0;
// Gets the preferred size of the contents.
virtual gfx::Size GetPreferredSize() const = 0;
// Called when the response to a pending mouse lock request has arrived.
// Returns true if |allowed| is true and the mouse has been successfully
// locked.
virtual bool GotResponseToLockMouseRequest(bool allowed) = 0;
// Called when the user has selected a color in the color chooser.
virtual void DidChooseColorInColorChooser(SkColor color) = 0;
// Called when the color chooser has ended.
virtual void DidEndColorChooser() = 0;
// Returns true if the location bar should be focused by default rather than
// the page contents. The view calls this function when the tab is focused
// to see what it should do.
virtual bool FocusLocationBarByDefault() = 0;
// Does this have an opener (corresponding to window.opener in JavaScript)
// associated with it?
virtual bool HasOpener() const = 0;
// Returns the opener if HasOpener() is true, or nullptr otherwise.
virtual RenderFrameHost* GetOpener() const = 0;
// Returns true if this WebContents was opened by another WebContents, even
// if the opener was suppressed. In contrast to HasOpener/GetOpener, the
// original opener doesn't reflect window.opener which can be suppressed or
// updated. This traces all the way back, so if the original owner was closed,
// but _it_ had an original owner, this will return the original owner's
// original owner, etc.
virtual bool HasOriginalOpener() const = 0;
// Returns the original opener if HasOriginalOpener() is true, or nullptr
// otherwise.
virtual RenderFrameHost* GetOriginalOpener() const = 0;
// Returns the WakeLockContext accociated with this WebContents.
virtual device::mojom::WakeLockContext* GetWakeLockContext() = 0;
typedef base::Callback int, /* id */
int, /* HTTP status code */
const GURL&, /* image_url */
const std::vector&, /* bitmaps */
/* The sizes in pixel of the bitmaps before they were resized due to the
max bitmap size passed to DownloadImage(). Each entry in the bitmaps
vector corresponds to an entry in the sizes vector. If a bitmap was
resized, there should be a single returned bitmap. */
const std::vector&)>
ImageDownloadCallback;
// Sends a request to download the given image |url| and returns the unique
// id of the download request. When the download is finished, |callback| will
// be called with the bitmaps received from the renderer.
// If |is_favicon| is true, the cookies are not sent and not accepted during
// download.
// Bitmaps with pixel sizes larger than |max_bitmap_size| are filtered out
// from the bitmap results. If there are no bitmap results <=
// |max_bitmap_size|, the smallest bitmap is resized to |max_bitmap_size| and
// is the only result. A |max_bitmap_size| of 0 means unlimited.
// If |bypass_cache| is true, |url| is requested from the server even if it
// is present in the browser cache.
virtual int DownloadImage(const GURL& url,
bool is_favicon,
uint32_t max_bitmap_size,
bool bypass_cache,
const ImageDownloadCallback& callback) = 0;
// Returns true if the WebContents is responsible for displaying a subframe
// in a different process from its parent page.
// TODO(lazyboy): https://crbug.com/542893: this doesn't really belong here.
// With site isolation, this should be removed since we can then embed iframes
// in different processes.
virtual bool IsSubframe() const = 0;
// Finds text on a page. |search_text| should not be empty.
virtual void Find(int request_id,
const base::string16& search_text,
const blink::WebFindOptions& options) = 0;
// Notifies the renderer that the user has closed the FindInPage window
// (and what action to take regarding the selection).
virtual void StopFinding(StopFindAction action) = 0;
// Returns true if audio has recently been audible from the WebContents.
virtual bool WasRecentlyAudible() = 0;
// Returns true if audio has been audible from the WebContents since the last
// navigation.
virtual bool WasEverAudible() = 0;
// The callback invoked when the renderer responds to a request for the main
// frame document's manifest. The url will be empty if the document specifies
// no manifest, and the manifest will be empty if any other failures occurred.
typedef base::Callback
GetManifestCallback;
// Requests the manifest URL and the Manifest of the main frame's document.
virtual void GetManifest(const GetManifestCallback& callback) = 0;
// Returns whether the renderer is in fullscreen mode.
virtual bool IsFullscreenForCurrentTab() const = 0;
// Requests the renderer to exit fullscreen.
// |will_cause_resize| indicates whether the fullscreen change causes a
// view resize. e.g. This will be false when going from tab fullscreen to
// browser fullscreen.
virtual void ExitFullscreen(bool will_cause_resize) = 0;
// Unblocks requests from renderer for a newly created window. This is
// used in showCreatedWindow() or sometimes later in cases where
// delegate->ShouldResumeRequestsForCreatedWindow() indicated the requests
// should not yet be resumed. Then the client is responsible for calling this
// as soon as they are ready.
virtual void ResumeLoadingCreatedWebContents() = 0;
// Sets whether the WebContents is for overlaying content on a page.
virtual void SetIsOverlayContent(bool is_overlay_content) = 0;
virtual int GetCurrentlyPlayingVideoCount() = 0;
// Returns a map containing the sizes of all currently playing videos.
using VideoSizeMap =
base::flat_map;
virtual base::Optional GetFullscreenVideoSize() = 0;
virtual bool IsFullscreen() = 0;
// Tells the renderer to clear the focused element (if any).
virtual void ClearFocusedElement() = 0;
// Returns true if the current focused element is editable.
virtual bool IsFocusedElementEditable() = 0;
// Returns true if a context menu is showing on the page.
virtual bool IsShowingContextMenu() const = 0;
// Tells the WebContents whether the context menu is showing.
virtual void SetShowingContextMenu(bool showing) = 0;
#if defined(OS_ANDROID)
CONTENT_EXPORT static WebContents* FromJavaWebContents(
const base::android::JavaRef& jweb_contents_android);
virtual base::android::ScopedJavaLocalRef GetJavaWebContents() = 0;
// Selects and zooms to the find result nearest to the point (x,y) defined in
// find-in-page coordinates.
virtual void ActivateNearestFindResult(float x, float y) = 0;
// Requests the rects of the current find matches from the renderer
// process. |current_version| is the version of find rects that the caller
// already knows about. This version will be compared to the current find
// rects version in the renderer process (which is updated whenever the rects
// change), to see which new rect data will need to be sent back.
//
// TODO(paulmeyer): This process will change slightly once multi-process
// find-in-page is implemented. This comment should be updated at that time.
virtual void RequestFindMatchRects(int current_version) = 0;
// Returns an InterfaceProvider for Java-implemented interfaces that are
// scoped to this WebContents. This provides access to interfaces implemented
// in Java in the browser process to C++ code in the browser process.
virtual service_manager::InterfaceProvider* GetJavaInterfaces() = 0;
#elif defined(OS_MACOSX)
// Allowing other views disables optimizations which assume that only a single
// WebContents is present.
virtual void SetAllowOtherViews(bool allow) = 0;
// Returns true if other views are allowed, false otherwise.
virtual bool GetAllowOtherViews() = 0;
// Returns true if the WebContents has completed its first meaningful paint.
virtual bool CompletedFirstVisuallyNonEmptyPaint() const = 0;
#endif // OS_ANDROID
private:
// This interface should only be implemented inside content.
friend class WebContentsImpl;
WebContents() {}
};
} // namespace content
#endif // CONTENT_PUBLIC_BROWSER_WEB_CONTENTS_H_


Skills
- Managing Cross Functional Teams, based on the culture of FOSS
- Continuous Integration with Maven, Gradle, npm, Jenkins, Travis CI and GitHub Actions
- Maintainable code based on DI, spring-boot and Selenium/Selenide
- Performance tuning for RDBMS, KVS, server-side application and web pages
- Agile Development & Scrum


%BROADCASTING%
Beta
%CONNECT_PLATFORM%
%LOGIN_GUIDE1%
%LOGIN_GUIDE2%
%LOGIN_GUIDE3%
%LOGIN_GUIDE_NOTICE1%
%LOGIN_GUIDE_NOTICE2%
%WATCH_BROADCASTING%
%REGISTER_PAGE%
%REGISTER_TIMELINE%
%REGISTER_MANAGING_PAGE%
%NO_MANAGING_PAGE%
%POST_PRIVACY_BOUND%
%PUBLIC_PRIVACY%
%FRIENDS_OF_FRIENDS_PRIVACY%
%FRIENDS_PRIVACY%
%PRIVATE_PRIVACY%
%POST_PRIVACY_BOUND%
%BROADCASTING_GAME%
%NO_PLAYING_GAME%
%BROADCASTING_TITLE%
%EASY_SETTING%
%USE_MIC%
%CONNECT_INFO%
×
%DISCONNECT%
%SETTING%
×
%QUALITY%
%QUALITY%
×
%CLOSE_CHECK_MESSAGE1%
%CLOSE_CHECK_MESSAGE2%


Computer Scientist into Computational Linguistics, Machine Learning, GIS and Semantic Web Applications.
PhD, Computer Science (expected); University Koblenz-Landau (Koblenz, Germany)
Phd Thesis in Semantic Quality Assement and Quality Prediction of OpenStreetMap areas.
Summer School: Doing Business in Africa; Polytechnic Of Namibia (Windhoek, Namibia) (Grade: B)
Summer School in the Business Department of the Polytechnic of Namibia on South African history and economics.
M.Sc., Computer Science; Goethe University (Frankfurt am Main, Germany) (Grade: 1,0 (A))
Minor: Chinese Studies Thesis title: Verfahren zur Wortsegmentierung nichtalphabetischer Schriften
Summer School: China Cultural Exchange; Shanghai International Studies University (Shanghai, China)
Summer School in the language department for cultural exchange and language study.
B.Sc., Computer Science; RheinMain University of Applied Sciences (Wiesbaden, Germany) (Grade: 1,4 (A))
Thesis title: Entwicklung einer Androidanwendung zur Zustandsanzeige von Messstationen des Deutschen Wetterdienstes
Lecturer RheinMain University of Applied Sciences, Wiesbaden/Germany Industry: Research
Teaching experience as lecturer in the courses "Introduction to Computer Science", "Algorithms and Data Structures"
Systemadministrator Mainz University Of Applied Sciences, Mainz/Germany Industry: Research
System Administrator of the research group i3Mainz
Researcher Mainz University Of Applied Sciences, Mainz/Germany Industry: Research Taking part in the SemGIS project
Researching in GIS data quality and the geospatial Semantic Web
Student Employee MeteoSolutions GmbH, Darmstadt, Germany Industry: Software Engineering
Development of an Android application to display status data for measuring monitors for weather stations as a part of my Bachelor Thesis
Trainee Sirona Dental Systems Foshan Co. Ltd., 佛山 Foshan, China Industry: Medical Devices
Research of a solution to connect a Syteline Version 8 ERP System to an Oracle Agile PLM System, Taking part in the development of a Parts Tracking Database for the Research and Development department
Student employee RheinMain University Of Applied Sciences, Laboratory of Software Engineering, Wiesbaden/Germany
Taking part in a feasibility study for the German weather forecast organisation (DWD)
Student Employee DOPSY Laboratory for Distributed Systems, Wiesbaden, Germany Industry: Research
Development of a content management system for the homepage of the laboratory
Student work Alfred Wegener Institute, Wiesbaden, Helgoland/Germany
Taking part in the development of a web application for fish noise categorisation in the context of my Database/Web Engineering specialisation
Student Employee DOPSY Laboratory for Distributed Systems, Wiesbaden, Germany Industry: Research
Development of a content management system for the homepage of the laboratory
Alternative Service Main-Kinzig Hospital, Gelnhausen, Germany Industry: Management of Information Systems
IT Support and Administration tasks in a hospital
Programming Languages
HTML5,GML,KML,XML
SQL (MySQL, PostgreSQL)
Student projects:
Driving Licenses
Travelling
<EMAIL_ADDRESS>Wiesbaden Germany
Social Media


24 May 2007
The Ministry of Health of Indonesia has announced a new case of human infection of H5N1 avian influenza. A 5-year-old female from Wonogiri district, Central Java Province developed symptoms on 8 May, was hospitalized on 15 May and died in hospital on 17 May. Initial investigations into the source of her infection indicate exposure to dead poultry.
Of the 97 cases confirmed to date in Indonesia, 77 have been fatal.


ecfg
- manage application secrets via encrypted config
ecfg
[-k
|--keydir
dir] command
[args
]
ecfg
is a utility for managing a collection of secrets, typically to be
committed to source control. The secrets are encrypted using public key,
elliptic curve cryptography. Secrets are collected in a JSON, YAML, or TOML
file, in which all the string values are encrypted. Public keys are embedded in
the file, and the decrypter looks up the corresponding private key from its
local filesystem or process environment.
See ecfg(5) for more information on the ecfg
file format, and read on for
a workflow example.
ecfg help
[command] Show (this) help for ecfg
in general, or for a specific command
ecfg encrypt
: ecfg-encrypt(1) Encrypt an ecfg
file (alias: ecfg e
)
ecfg decrypt
: ecfg-decrypt(1) Decrypt an ecfg
file (alias: ecfg d
)
ecfg keygen
: ecfg-keygen(1) Generate an ecfg
keypair (alias: ecfg g
)
-k
, --keydir
=Use the provided directory instead of the default key paths (decribed in the KEY MANAGEMENT section)
ECFG_KEYDIR
Use a custom directory instead of the default key lookup path decribed in the KEY MANAGEMENT section.
ECFG_PRIVATE_KEY
When decrypting, instead of looking up the matching private key for the public key given in the input file, assume the file was encrypted to the provided private key. This option is useful when running in environments such as heroku where obtaining keys from disk is impractical.
ecfg
keypairs are stored as individual files in a key directory. The file
name is the public key and the file content is the private key. ecfg
has a
default lookup path for key directories:
$XDG_CONFIG_HOME/ecfg/keys
(if $XDG_CONFIG_HOME
is set and running as non-root user)$HOME/.ecfg/keys
(if running as non-root user)/etc/ecfg/keys
/opt/ejson/keys
(for backwards-compatibility with ejson
)When passing -k
or --keydir
to ecfg
, or when invoked with ECFG_KEYDIR
in the environment, this lookup path is completely ignored and the key is
instead retrieved from or stored to the provided path.
If ECFG_PRIVATE_KEY
is set for decryption, the key directories aren't even
touched; instead, we just assume the provided private key is the correct one,
failing if it's not.
By default, ecfg
looks for keys in /opt/ecfg/keys
. You can change this by
setting ECFG_KEYDIR
or passing the -keydir
option.
$ mkdir -p /opt/ecfg/keys
When called with -w
, ecfg keygen
will write the keypair into the keydir
and print the public key. Without -w
, it will print both keys to stdout. This
is useful if you have to distribute the key to multiple servers via
configuration management, etc.
$ ecfg keygen
Public Key:
63ccf05a9492e68e12eeb1c705888aebdcc0080af7e594fc402beb24cce9d14f
Private Key:
75b80b4a693156eb435f4ed2fe397e583f461f09fd99ec2bd1bdef0a56cf6e64
$ ./ecfg keygen -w
53393332c6c7c474af603c078f5696c8fe16677a09a711bba299a6c1c1676a59
$ cat /opt/ecfg/keys/5339*
888a4291bef9135729357b8c70e5a62b0bbe104a679d829cdbe56d46a4481aaf
The format is described in more detail in ecfg(5). For now, create a file that
looks something like this. Fill in the <key>
with whatever you got back in
step 2.
Create this file as test.ecfg.json
:
{
"_public_key": "<key>",
"database_password": "1234password"
}
You can also use YAML or TOML if you'd prefer, as long as there's a
_public_key
element at the top-level.
Running ecfg encrypt test.ecfg.json
will encrypt any new plaintext keys in
the file, and leave any existing encrypted keys untouched:
{
"_public_key": "63ccf05a9492e68e12eeb1c705888aebdcc0080af7e594fc402beb24cce9d14f",
"database_password": "EJ[1:WGj2t4znULHT1IRveMEdvvNXqZzNBNMsJ5iZVy6Dvxs=:kA6ekF8ViYR5ZLeSmMXWsdLfWr7wn9qS:fcHQtdt6nqcNOXa97/M278RX6w==]"
}
Try adding another plaintext secret to the file and run ecfg encrypt
test.ecfg.json
again. The database_password
field will not be changed, but the
new secret will be encrypted.
To decrypt the file, you must have a file present in the keydir
whose name is
the 64-byte hex-encoded public key exactly as embedded in the ecfg(5) document.
The contents of that file must be the similarly-encoded private key. If you used
ecfg keygen -w
, you've already got this covered.
Unlike ecfg-encrypt(1), which overwrites the specified files, ecfg-decrypt(1)
only takes one file parameter, and prints the output to stdout
:
$ ecfg decrypt foo.ecfg.json
{
"_public_key": "63ccf05a9492e68e12eeb1c705888aebdcc0080af7e594fc402beb24cce9d14f",
"database_password": "1234password"
}
TODO
Report security issues to<EMAIL_ADDRESS>and<EMAIL_ADDRESS>File non-security-related bugs at https://github.com/Shopify/ecfg.
ecfg
is copyright (C) 2016 Shopify under MIT license.
ecfg-encrypt(1), ecfg-decrypt(1), ecfg-keygen(1), ecfg(5)


Welcome
It's so good to have you hear. Let's build your best profile page.
Personal
Interests
Visual Arts
Painting
Illustration
Installation
Design
Graphic
Fashion
Textile
Literary Arts
Writing
Copy Writing
Poetry
Performing Arts
Music
Dance
Vocals
Portfolio
Social


| java.lang.Object | |
| ↳ | com.ksyun.media.shortvideo.kit.KSYComposeKit |
Created by qyvideo on 3/31/17.
| Nested Classes | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| interface | KSYComposeKit.OnErrorListener | The interface On error listener. | |||||||||
| interface | KSYComposeKit.OnInfoListener | The interface On info listener. |
| Constants | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| int | INFO_COMPLETED | The constant INFO_COMPLETED. | |||||||||
| int | INFO_STARTED | The constant INFO_STARTED. |
| Fields | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| protected AudioFilterMgt | mAudioFilterMgt | ||||||||||
| protected AudioMixer | mAudioMixer | ||||||||||
| protected int | mIdxAudioBgm | ||||||||||
| protected int | mIdxAudioMic | ||||||||||
| protected int | mIdxMain | ||||||||||
| protected int | mIdxWmLogo | ||||||||||
| protected int | mIdxWmTime | ||||||||||
| protected ImgTexFilterMgt | mImgTexFilterMgt | ||||||||||
| protected ImgTexMixer | mImgTexMixer | ||||||||||
| public IMediaPlayer.OnPreparedListener | mOnPreparedListener | ||||||||||
| protected int | mTargetWidth |
| Public Constructors | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| KSYComposeKit(Context context) |
| Public Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| void |
abort()
Abort.
| ||||||||||
| void |
addMetaOption(String key, String value)
Add meta to dest media file.
| ||||||||||
| String |
getDesUrl()
Gets des url.
| ||||||||||
| GLRender |
getGLRender()
Get
GLRender instance. | ||||||||||
| ImgTexFilterMgt |
getImgTexFilterMgt()
Get ImgTexFilterMgt instance to manage GPU filters.
| ||||||||||
| float |
getProgress()
Gets progress.
| ||||||||||
| String |
getSrcUri()
Gets src uri.
| ||||||||||
| float |
getVoiceVolume()
get mic volume
| ||||||||||
| void |
hideWaterMarkLogo()
Hide watermark logo.
| ||||||||||
| void |
hideWaterMarkTime()
Hide timestamp watermark.
| ||||||||||
| boolean |
isAudioMuted()
check if audio is muted or not.
| ||||||||||
| void |
release()
Release all resources used by KSYComposeKit.
| ||||||||||
| void |
setAudioBitrate(int bitrate)
Set audio bitrate in bps.
| ||||||||||
| void |
setAudioEncodeMethod(int encodeMethod)
Set encode method for audio.
| ||||||||||
| void |
setAudioKBitrate(int kBitrate)
Set audio bitrate in kbps.
| ||||||||||
| void |
setDesUrl(String url)
Sets des url.
| ||||||||||
| void |
setEncodeMethod(int encodeMethod)
Set encode method for both video and audio.
| ||||||||||
| void |
setMuteAudio(boolean isMute)
Set if mute audio while streaming.
| ||||||||||
| void |
setOnErrorListener(KSYComposeKit.OnErrorListener onErrorListener)
Sets on error listener.
| ||||||||||
| void |
setOnInfoListener(KSYComposeKit.OnInfoListener onInfoListener)
Sets on info listener.
| ||||||||||
| void |
setSrcUrl(String url)
Sets src url.
| ||||||||||
| void |
setTargetResolution(int idx)
Set streaming resolution index.
| ||||||||||
| void |
setTargetResolution(int width, int height)
Set streaming resolution.
| ||||||||||
| void |
setVideoBitrate(int bitrate)
Set video bitrate in bps, and disable video bitrate auto adjustment.
| ||||||||||
| void |
setVideoCodecId(int codecId)
Set codec id to video encoder.
| ||||||||||
| void |
setVideoEncodeMethod(int encodeMethod)
Set encode method for video.
| ||||||||||
| void |
setVideoEncodeProfile(int profile)
Set encode profile to video encoder.
| ||||||||||
| void |
setVideoFps(float fps)
Sets video fps.
| ||||||||||
| void |
setVideoKBitrate(int kBitrate)
Set video bitrate in kbps, and disable video bitrate auto adjustment.
| ||||||||||
| void |
setVoiceVolume(float volume)
Set mic volume.
| ||||||||||
| void |
setVolume(float volume)
set compose volume
| ||||||||||
| void |
showWaterMarkLogo(String path, float x, float y, float w, float h, float alpha)
Set and show watermark logo both on preview and stream.
| ||||||||||
| void |
showWaterMarkTime(float x, float y, float w, int color, float alpha)
Set and show timestamp both on preview and stream.
| ||||||||||
| void |
start()
Start.
| ||||||||||
| void |
startBgm(String path, boolean loop)
Start bgm play.
| ||||||||||
| void |
stopBgm()
Stop bgm play.
|
|
[Expand]
Inherited Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
From class
java.lang.Object
|
The constant INFO_COMPLETED.
The constant INFO_STARTED.
Abort.
Add meta to dest media file.
| key | the key |
|---|---|
| value | the value |
Gets des url.
Get ImgTexFilterMgt instance to manage GPU filters.
Gets progress.
Gets src uri.
get mic volume
Hide watermark logo.
Hide timestamp watermark.
check if audio is muted or not.
Release all resources used by KSYComposeKit.
Set audio bitrate in bps.
Would take effect on next start()
call.
default value : 48 * 1000
| bitrate | audio bitrate in bps. |
|---|
| IllegalArgumentException |
|---|
Set encode method for audio.
Must not be set while encoding.
| encodeMethod | Encode method. |
|---|
| IllegalStateException | |
| IllegalArgumentException | |
| IllegalStateException |
Set audio bitrate in kbps.
Would take effect on next start()
call.
| kBitrate | audio bitrate in kbps. |
|---|
| IllegalArgumentException |
|---|
Sets des url.
| url | the url |
|---|
Set encode method for both video and audio.
Must not be set while encoding.
default value:ENCODE_METHOD_SOFTWARE
| encodeMethod | Encode method. |
|---|
| IllegalStateException | |
| IllegalArgumentException | |
| IllegalStateException |
Set if mute audio while streaming.
| isMute | true to mute, false to unmute. |
|---|
Sets on error listener.
| onErrorListener | the on error listener |
|---|
Sets on info listener.
| onInfoListener | the on info listener |
|---|
Sets src url.
| url | the url |
|---|
Set streaming resolution index.
The set resolution would take effect immediately if streaming started.
| idx | Resolution index. |
|---|
| IllegalArgumentException | |
| IllegalArgumentException |
Set streaming resolution.
The set resolution would take effect immediately if streaming started.
The set width and height must not be 0 at same time. If one of the params is 0, the other would calculated by the actual preview view size to keep the ratio of the preview view.
| width | streaming width. |
|---|---|
| height | streaming height. |
| IllegalArgumentException |
|---|
Set video bitrate in bps, and disable video bitrate auto adjustment.
Would take effect on next start()
call.
default value : 600 * 1000
| bitrate | video bitrate in bps |
|---|
| IllegalArgumentException |
|---|
Set codec id to video encoder.
| codecId | video codec id to set. |
|---|
| IllegalArgumentException |
|---|
Set encode method for video.
Must not be set while encoding.
| encodeMethod | Encode method. |
|---|
| IllegalStateException | |
| IllegalArgumentException | |
| IllegalStateException |
Set encode profile to video encoder.
Only valid in ENCODE_METHOD_SOFTWARE and ENCODE_METHOD_SOFTWARE_COMPAT mode.
| profile | encode profile mode to be set, default value VideoEncodeFormat#ENCODE_PROFILE_LOW_POWER |
|---|
Sets video fps.
| fps | the fps |
|---|
Set video bitrate in kbps, and disable video bitrate auto adjustment.
Would take effect on next start()
call.
| kBitrate | video bitrate in kbps |
|---|
| IllegalArgumentException |
|---|
Set mic volume.
| volume | volume in 0~1.0f. |
|---|
set compose volume
Set and show watermark logo both on preview and stream. Support jpeg, png.
| path | logo file path. prefix "file://" for absolute path, and prefix "assets://" for image resource in assets folder. |
|---|---|
| x | x position for left top of logo relative to the video, between 0~1.0. |
| y | y position for left top of logo relative to the video, between 0~1.0. |
| w | width of logo relative to the video, between 0~1.0, if set to 0, width would be calculated by h and logo image radio. |
| h | height of logo relative to the video, between 0~1.0, if set to 0, height would be calculated by w and logo image radio. |
| alpha | alpha value, between 0~1.0 |
Set and show timestamp both on preview and stream.
| x | x position for left top of timestamp relative to the video, between 0~1.0. |
|---|---|
| y | y position for left top of timestamp relative to the video, between 0~1.0. |
| w | width of timestamp relative to the video, between 0-1.0, the height would be calculated automatically. |
| color | color of timestamp, in ARGB. |
| alpha | alpha of timestamp, between 0~1.0. |
Start.
Start bgm play.
| path | bgm path. |
|---|---|
| loop | true if loop this music, false if not. |
Stop bgm play.


{% extends "base.html" %}
{% block title %}
About Me
{% endblock %}
{% block content %}
Be able to send me an email, text, video chat, call, or meet up with me.
Only after verifying ypurself as interested through Azure Active Directory
{% endblock %}


{%- extends 'base.html' -%} {% from "macros.html" import screenshot without context %} {% from "macros.html" import screenshot_js without context %} {%- block content -%}
To view the models that have the following attributes, select one or more of the buttons below to show the models:
No results.


In the above example, the Generate will create a view with a label and TextBox for each of the fields listed in the textarea, and any updates to the textarea will be cause the view to be updated when you tab out of the text area.


Formatting
Joda-Time provides a comprehensive formatting system. There are two layers:
- High level - pre-packaged constant formatters
- Mid level - pattern-based, like SimpleDateFormat
- Low level - builder
Constant and Localized formatting
The class ISODateTimeFormat contains a large number of pre-defined formatters based on the ISO-8601 specification (although not all are fully compatible). These handle many common cases.
The class DateTimeFormat contains an additional set of pre-defined formatters based on Locale. These "style-based" formatters handle the case where the application needs to format a date-time in a manner appropriate to a particular global location.
Pattern-based formatting
The class DateTimeFormat provides a single method forPattern(String) that supports formatting by pattern. These "pattern-based" formatters provide a similar approach to that of SimpleDateFormat.
For example:
LocalDate date = LocalDate.now(); DateTimeFormatter fmt = DateTimeFormat.forPattern("d MMMM, yyyy"); String str = date.toString(fmt); // might output "6 October, 2013"
The pattern letters are:
Symbol Meaning Presentation Examples ------ ------- ------------ ------- G era text AD C century of era (>=0) number 20 Y year of era (>=0) year 1996 x weekyear year 1996 w week of weekyear number 27 e day of week number 2 E day of week text Tuesday; Tue y year year 1996 D day of year number 189 M month of year month July; Jul; 07 d day of month number 10 a halfday of day text PM K hour of halfday (0~11) number 0 h clockhour of halfday (1~12) number 12 H hour of day (0~23) number 0 k clockhour of day (1~24) number 24 m minute of hour number 30 s second of minute number 55 S fraction of second number 978 z time zone text Pacific Standard Time; PST Z time zone offset/id zone -0800; -08:00; America/Los_Angeles ' escape for text delimiter '' single quote literal '
The count of pattern letters determine the format.
Text: If the number of pattern letters is 4 or more, the full form is used; otherwise a short or abbreviated form is used if available. Thus, "EEEE" might output "Monday" whereas "E" might output "Mon" (the short form of Monday).
Number: The minimum number of digits. Shorter numbers are zero-padded to this amount. Thus, "HH" might output "09" whereas "H" might output "9" (for the hour-of-day of 9 in the morning).
Year: Numeric presentation for year and weekyear fields are handled specially. For example, if the count of 'y' is 2, the year will be displayed as the zero-based year of the century, which is two digits.
Month: 3 or over, use text, otherwise use number. Thus, "MM" might output "03" whereas "MMM" might output "Mar" (the short form of March) and "MMMM" might output "March".
Zone: 'Z' outputs offset without a colon, 'ZZ' outputs the offset with a colon, 'ZZZ' or more outputs the zone id.
Zone names: Time zone names ('z') cannot be parsed.
Any characters in the pattern that are not in the ranges of ['a'..'z'] and ['A'..'Z'] will be treated as quoted text. For instance, characters like ':', '.', ' ', '#' and '?' will appear in the resulting time text even they are not embraced within single quotes.
Builder
All formatting is ultimately built using DateTimeFormatterBuilder. The builder allows a format pattern to be built up step by step, consisting of literal, text, numeric, pattern and localized elements in any order. Some facilities are only available via the builder.
For example, this will build a formatter consisting of the month and year:
DateTimeFormatter monthAndYear = new DateTimeFormatterBuilder() .appendMonthOfYearText() .appendLiteral(' ') .appendYear(4, 4) .toFormatter();


Welcome,
{{name}}
Look up a movie or TVshow
Return Home
check out tv show and movie average ratings here
Check out which year has the bet movie!
Look at reviews
Your personal gallery
Sign out
Delete User
Update User
Filter by Platform
Netflix
Hulu
Prime Video
Disney
Release Year or Start Date
Search
Recommended movies
Name
Type
Popularity
Average Rating
Platform
Genre
{% for item in items %}
{{item.Name}}
{{item.Type}}
{{item.Popularity}}
{{item.AverageRating}}
{{item.Platform}}
{{item.Genre}}
{% endfor %}


Class: WsdlMapperTesting::SchemaTest
- Inherits:
-
Test
- Object
- Minitest::Test
- Test
- WsdlMapperTesting::SchemaTest
- Defined in:
- lib/wsdl_mapper_testing/schema_test.rb
Direct Known Subclasses
Instance Method Summary (collapse)
Methods inherited from Test
Instance Method Details
- (Object) get_schema(name)
5 6 7 |
# File 'lib/wsdl_mapper_testing/schema_test.rb', line 5 def get_schema(name) TestHelper.parse_schema name end |


Four Athens believes that Athens possesses all of ingredients necessary to create a strong technology startup hub.
Big Nerd Ranch
@bignerdranch
When the Big Nerd Ranch started out, we did one thing and we did it well: we taught programming languages. Now, over a decade later, we’ve expanded to include consulting, software products and an ever-growing library of Big Nerd Ranch books.
@getvitaminc
Healthcare communication improved.
What is Rails Girls?
@railsgirls
Code is literacy and valuable wherever you work.
Lingua franca of the web - technical literacy is vital.
Not solitary, not mathematical - like any language, immersion is key.
It's not a matter of statistics, but perspective.
Let's dive in!
Programs!
Software development vs web development
They're the same! Web development is just a subset of software development.
Models provide the data. How does it know what to display?
MVC - Model View Controllers
Let's look at the views
In your text editor, check out any file in
app/views
What's a Ruby statement look like?
<% %>
Congrats! You have all won one Internet.
It's kinda ugly, isn't it?
Our application I mean.
We can make it better. We have the technology.
Add the Twitter Bootstrap declarations to your layout.
app/views/layouts/application.html.erb
Replace the content as indicated in the guide.
Fire up the server again.
$ rails server
Head to http://localhost:3000/ideas
A picture is worth 1000 words
Mining for Gems
Add the Carrierwave gem
Add to Gemfile:
gem 'carrierwave'
Bundler manages your gems and their integration into your application
$ bundle
Generate the uploader!
$ rails generate uploader Picture
Prep the model
In the Idea.rb file (located at app/models/idea.rb) add:
mount_uploader :picture, PictureUploader
directly underneath the top line.
Prep the form
In app/views/ideas/_form.html.erb, replace
<%= f.text_field :picture %>
<%= f.file_field :picture %>
Prep the view
In app/views/ideas/show.html.erb, replace
<%= @idea.picture %>
with
<%=<EMAIL_ADDRESS>:width => 600) if @idea.picture.present? %>
Fire up the server!
$ rails server
http://localhost:3000/ideas
Add a picture. I recommend this one:
http://bukk.it/schrodinger.jpg
Awesome!
But why can't we just go to http://localhost:3000?
Convention over configuration - one of the central tenets of Rails.
Let's update the routes
In your text editor, go to
config/routes.rb
and after the first line add
root :to => redirect('/ideas')
Restart your server and go to http://localhost:3000
Fantastic!
What about pages that don't need dynamic information?
Let's create a static pages controller
$ rails generate controller pages info
Add a short biography about yourself to app/views/pages/info.html.erb. Ask your coaches if you need some help.
Rails is smart - it added the route for us automatically!
Restart your server and visit http://localhost:3000/pages/info
Pretty cool, huh?
Lunchtime!
The Bento Box
PHP
SaaS
RoR
HTML
MongoDB
Apache
CSS
Django
MySQL
nginx
Lightning Talks
Extend your applications
As a group, look at some of the other guides and add features to your applications with the help of your coaches. It's your application - do with it what you will!
Going further
Code School has been awesome enough to give everyone here a 2 day all access hall pass to their site
http://go.codeschool.com/XUaw2w
If you're interested in signing up with them, they've given us a special rate - just let me know and I'll send you the information.
Other resources in your booklet
Learn Rails from Daniel Kehoe
Join the Developers of Athens meetup: http://www.meetup.com/Greater-Athens-Area-Software-Developers/
Thanks for coming - don't stop learning!
Feel free to email me if I can help you with next steps or you need anything!


This is a demo where a user will not be able to used the enter key from opening the list, but able to accept, select the value highlighted when it is open
Will also disabled thed down arrows on selecting a value in the dropdown
You can use the onKeyDown function to override keys if you need to.


Parimal Satyal is a Paris-based designer who loves singlespeed bicycles, Bavarian beer, vegetarian food, metal music and foreign languages. More–
{{ .Site.Title }} is his collection of essays, reviews and music.


Buy Now! $9.99
Buy Now! $79.99
Buy Now! $89.99
Buy Now! $5.99
Buy Now! $8.99
Buy Now! $11.99
Buy Now! $7.99


Package com.jme.app.state
Class AppStateManager
- java.lang.Object
-
- com.jme.app.state.AppStateManager
-
public class AppStateManager extends java.lang.Object
TheAppStateManager
holds a list ofAppState
s which it will update and render.
When anAppState
is attached or detached, theAppState.stateAttached(com.jme.app.state.AppStateManager)
andAppState.stateDetached(com.jme.app.state.AppStateManager)
methods will be called respectively.The lifecycle for an attached AppState is as follows:
- stateAttached() : called when the state is attached on the thread on which the state was attached.
- initialize() : called ONCE on the render thread at the beginning of the next AppStateManager.update().
- stateDetached() : called when the state is detached on the thread on which the state was detached. This is not necessarily on the render thread and it is not necessarily safe to modify the scene graph, etc..
- cleanup() : called ONCE on the render thread at the beginning of the next update after the state has been detached or when the application is terminating.
- Author:
- Kirill Vainer, Paul Speed
-
-
Constructor Summary
Constructors Constructor Description AppStateManager(Application app)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
attach(AppState state)
Attach a state to the AppStateManager, the same state cannot be attached twice.void
attachAll(AppState... states)
Attaches many state to the AppStateManager in a way that is guaranteed that they will all get initialized before any of their updates are run.void
attachAll(java.lang.Iterable<AppState> states)
Attaches many state to the AppStateManager in a way that is guaranteed that they will all get initialized before any of their updates are run.void
cleanup()
Calls cleanup on attached states, do not call directly.boolean
detach(AppState state)
Detaches the state from the AppStateManager.Application
getApplication()
Returns the Application to which this AppStateManager belongs.protected AppState[]
getInitializing()
<T extends AppState>
TgetState(java.lang.Class<T> stateClass)
Returns the first state that is an instance of subclass of the specified class.<T extends AppState>
TgetState(java.lang.Class<T> stateClass, boolean failOnMiss)
Returns the first state that is an instance of subclass of the specified class.protected AppState[]
getStates()
protected AppState[]
getTerminating()
boolean
hasState(AppState state)
Check if a state is attached or not.protected void
initializePending()
void
postRender()
Calls render for all attached and initialized states, do not call directly.void
render(RenderManager rm)
Calls render for all attached and initialized states, do not call directly.protected void
terminatePending()
void
update(float tpf)
Calls update for attached states, do not call directly.
-
-
-
Constructor Detail
-
AppStateManager
public AppStateManager(Application app)
-
-
Method Detail
-
getApplication
public Application getApplication()
Returns the Application to which this AppStateManager belongs.
-
getInitializing
protected AppState[] getInitializing()
-
getTerminating
protected AppState[] getTerminating()
-
getStates
protected AppState[] getStates()
-
attach
public boolean attach(AppState state)
Attach a state to the AppStateManager, the same state cannot be attached twice.- Parameters:
state
- The state to attach- Returns:
- True if the state was successfully attached, false if the state was already attached.
-
attachAll
public void attachAll(AppState... states)
Attaches many state to the AppStateManager in a way that is guaranteed that they will all get initialized before any of their updates are run. The same state cannot be attached twice and will be ignored.- Parameters:
states
- The states to attach
-
attachAll
public void attachAll(java.lang.Iterable<AppState> states)
Attaches many state to the AppStateManager in a way that is guaranteed that they will all get initialized before any of their updates are run. The same state cannot be attached twice and will be ignored.- Parameters:
states
- The states to attach
-
detach
public boolean detach(AppState state)
Detaches the state from the AppStateManager.- Parameters:
state
- The state to detach- Returns:
- True if the state was detached successfully, false if the state was not attached in the first place.
-
hasState
public boolean hasState(AppState state)
Check if a state is attached or not.- Parameters:
state
- The state to check- Returns:
- True if the state is currently attached to this AppStateManager.
- See Also:
attach(com.jme.app.state.AppState)
-
getState
public <T extends AppState> T getState(java.lang.Class<T> stateClass)
Returns the first state that is an instance of subclass of the specified class.- Type Parameters:
T
-- Parameters:
stateClass
-- Returns:
- First attached state that is an instance of stateClass
-
getState
public <T extends AppState> T getState(java.lang.Class<T> stateClass, boolean failOnMiss)
Returns the first state that is an instance of subclass of the specified class.- Type Parameters:
T
-- Parameters:
stateClass
-failOnMiss
-- Returns:
- First attached state that is an instance of stateClass. If failOnMiss is true then an IllegalArgumentException is thrown if the state is not attached.
-
initializePending
protected void initializePending()
-
terminatePending
protected void terminatePending()
-
update
public void update(float tpf)
Calls update for attached states, do not call directly.- Parameters:
tpf
- Time per frame.
-
render
public void render(RenderManager rm)
Calls render for all attached and initialized states, do not call directly.- Parameters:
rm
- The RenderManager
-
postRender
public void postRender()
Calls render for all attached and initialized states, do not call directly.
-
cleanup
public void cleanup()
Calls cleanup on attached states, do not call directly.
-
-


Tarsier v0.1
Load YAML
Load
Endpoint Parameters
Saved Configurations
Query URL
Query format
HTTP Verb
HTTP Headers
Settings
Classes
Data Prop.
Object Prop.
RDF Type
Instances
Blank Nodes
Planes
Level of detail
Mesh - Plane gap
Plane - Plane gap
Bump
Get Data
Plot
Reset planes
Reset view
Save PNG
Help
Move Camera:
Classes
Select All
Deselect All
Collapse/Expande
Raise classes
Lower classes
Raise instances
Lower instances
Show
Hide
Data Properties
Select All
Deselect All
Collapse/Expande
Raise Data prop
Lower Data prop
Show
Hide
Object Properties
Select All
Deselect All
Collapse/Expande List
Raise (s->o)
Raise (o->s)
Raise (s and o)
Show
Hide
Resources
Select All
Deselect All
Collapse/Expande
Raise Resources
Lower Resources
Show
Hide
Blank Nodes
Select All
Deselect All
Collapse/Expande
Raise BNodes
Lower BNodes
Show BNodes
Hide BNodes
Literals
Select All
Deselect All
Collapse/Expande
Raise Literals
Lower Literals
Show Literals
Hide Literals
SPARQL
Saved queries
CONSTRUCT { ?s ?p ?o } WHERE { ?s ?p ?o } LIMIT 100
Filter
Filter (multi-layer)
Plane names
Update Names
Help
Tarsier
is an RDF graph viewer released under
GNU GPL v3 License
and maintained by Fabio Viola (fabio.viola at unibo dot it).


Bug
111000
: Selection gaps don't repaint correctly with transforms
This tests that absolute elements are invalidated correctly. The box will be competely green if the selected area was invalidated correctly.


--- title: "Bringing Back the Bonnies" date: "2020-08-10 00:00:01 -06:00" categories: - garden-journal layout: "post" blog-banner: "garden-journal-summer.jpg" post-date: "August 10, 2020" post-time: "03:00 PM" blog-image: "2020-08-10-wh.jpg" published: true ---
By: Angie Decker, Red Butte Garden Horticulturist and Kate Randall, Marketing Communications Specialist
In keeping with its mission to manage and protect the state’s wildlife resources, the Utah Division of Wildlife Resources (UDWR) called on Red Butte Garden to help further revive the Bonneville cutthroat trout population and educate the public about its history and habitat. This ambitious collaboration began with the dredging of the Garden’s middle and upper ponds and culminated in the release approximately 200 Bonneville cutthroat trout fingerlings—referred to as bonnies by many anglers—into the newly restored ponds fed by Red Butte Creek.
Through the fall of 2015 and winter of 2017-18 Red Butte Garden, the University of Utah Transportation Department, and other state and federal agencies worked together to permit and complete a dredging operation of both the upper and middle ponds that are fed by Red Butte Creek. More than 30 years of sediment buildup and overpopulation of weedy aquatic plants, including cattail (Typha), bulrush (Scirpus), and common reed (Phragmites), had made the ponds murky and congested. Prior to dredging, the DWR also removed the June sucker (Chasmistes liorus) population and returned them to Utah Lake and Provo River where they are endemic.
With the sediment, weedy plants, and invasive fish removed, the water became cleaner, clearer, and more habitable for native plants and wildlife, including the Bonneville cutthroat trout, which is Utah’s state fish
As a result of overfishing, competition from artificially stocked, non-native species, and habitat loss, this trout subspecies was believed extinct by the early 1900s. Miraculously, small populations were rediscovered in the 1970s, and after aggressive conservation efforts Utah’s state fish has made a comeback in its native range throughout Utah, Idaho, Wyoming, and Nevada. Descendants of those endangered populations were released into the Garden’s ponds and Red Butte Creek on June 15, 2020.
Red Butte Garden’s goal now is to educate the public about the Bonneville cutthroat trout and to provide a clean, clear Red Butte Creek habitat for it to thrive and become another stable population center of this Utah native trout. We invite you to spend some time at the Water Pavilion and along the banks of the ponds to see the trout and observe as they grow and thrive in their new home. Be sure to look for the distinctive red coloration on the underside of the lower jaw for which the trout is aptly named.


In Chirpy, the image files of Favicons are placed in assets/img/favicons/
. You may need to replace them with your own. So let’s see how to customize these Favicons.
With a square image (PNG, JPG or GIF) in hand, open the site Favicon & App Icon Generator and upload your original image.
Click button Create Favicon and wait a moment for the website to generate the icons of various sizes automatically.
Download the generated package, unzip and delete the following two from the extracted files:
Now, copy the remaining image files (.PNG
and .ICO
) from the extracted .zip
file to cover the original files in the folder assets/img/favicons/
.
The following table helps you understand the changes to the icon file:
✓ means keep, ✗ means delete.
| File(s) | From Favicon & App Icon Generator | From Chirpy |
|---|---|---|
*.PNG |
✓ | ✗ |
*.ICO |
✓ | ✗ |
browserconfig.xml |
✗ | ✓ |
manifest.json |
✗ | ✓ |
The next time you build the site, the icon will be replaced with a customized edition.


Toggle navigation
Here To Help
{$ entry.title $}
{$ entry.abstract[selectedLanguage] $}
{$ entry.title $}
{$ entry.address $}
P:
{$ phone.number $}
{$ entry.abstract[selectedLanguage] $}
{$entry.description[selectedLanguage] $}
{$entry.opening $}


--- title: Extraction permalink: "/extraction/" class: extraction parent: description: categories: ---
Our Washington State processing facility has been fully certified and is online. We recently received our Certificate of Occupancy and have begun the extraction process in earnest. The completed Washington facilities includes Butane Hash Oil (BHO), Ethanol and Supercritical CO2 extraction, processing, packaging and cryostorage. To date, we have successfully developed and operationalized multi-disciplinary cannabis facilities with extensive implementation of industry leading automation. The extraction facilities and our grow operations combine the expertise of our cultivation team to target the right combination of strains with the experience of our extraction team to convert these strains into high impact concentrate oil.
As you’ll see in the images below, our Washington facility is state -of-the-art, and was cited by the Liquor and Cannabis Board inspector as the most professional facility he has ever seen. Our experience in the construction, certification and operation of a cannabis processing facility, including harvesting, flash freezing, and cryostorage has yielded repeatable processes that will accelerate our efforts in other states.


A thin green ray springs from your pointing finger to a target that you can see within range. The target can be a creature, an object, or a creation of magical force, such as the wall created by wall of force.
A creature targeted by this spell must make a Dexterity saving throw. On a failed save, the target takes 10d6 + 40 force damage. If this damage reduces the target to 0 hit points, it is disintegrated.
 The creature can be restored to life only by means of a true resurrection or a wish spell.
This spell automatically disintegrates a Large or smaller nonmagical object or a creation of magical force. If the target is a Huge or larger object or creation of force, this spell disintegrates a 10-foot-cube portion of it. A m agic item is unaffected by this spell.
At Higher Levels. When you cast this spell using a spell slot of 7th level or higher, the damage increases by 3d6 for each slot level above 6th.


Composite 2k18
Themes
Log in to add your suggestions
Concave of Tech-Know Minds
Concave of Tech-Know Minds
Concave of Tech-Know Minds
1 likes
Concave of Tech-Know Minds


The Nuffs
Home
Shows
Contact Us
A Baltimore Band
We're a Baltimore based band performing a mixture of covers and original songs.
Hil Andrews - vocals/guitar
Bory Buth - guitar/vocals
Sam Galvan - bass/vocals
Pete Kuhn - drums/vocals
Play
Your browser does not support the video tag.
Contact Us
Like Us on Facebook
First Name
Last Name
E-mail
Message
Submit
Should be Empty:


Featured Products 200+ featured products
-
<
Dell - (Pentium Quad Core/4 GB DDR3/500 GB/Ubuntu) (Black, 19.5 Inch Screen)
VIEW Rs.28,951/-
-
AMD 3.50 GHz FM2 A10-7800 Processor (Black-Red)
VIEW Rs 16,350/-
-
Microsoft Surface Pro 4 Core i5 6th Gen - (4 GB/128 GB SSD/Windows 10 Pro) 1724 2 in 1 Laptop (12.3 Inch, SIlver, 0.78 kg)
VIEW Rs.70,999/-
-
Intel® Pentium Dual Core Processor,15.1" LED Monitor, 2 GB RAM, HDD 320 GB
VIEW RS.20,500/-
-
Intel® Pentium Dual Core Processor Sixth Generation, 16" LED Monitor, 4 GB Ram, HDD 320 GB
VIEW Rs.22,200/-
-
AMD - A4 4020 Processor 3.6 ghz, 16" LED Monitor, 2 GB Onboard Graphics, 2 GB Ram, 320 GB Hard Disk
VIEW Rs.17,700/-
-
AMD A4 6320 Processor (2 Cores Processor),16" LED Monitor,1 GB Onboard Graphics, 2 GB RAM, HDD 320 GB
VIEW Rs.26,500/-
-
AMD 3850 1.3 GHz New Processor (4 Cores Processor),16" LED Monitor,1 GB Onboard Graphics, 2 GB RAM, HDD 320 GB
VIEW Rs.30,000/-
-
Intel 2.33 GHz LGA 775 Core™2 Duo Processor E6550 4M Processor (Multicolor)
VIEW RS.2,499/-
-
Intel core I3 Processor H55 Motherboard ,15" LCD Monitor, 2 GB Ram, HDD 160 GB
VIEW Rs.25,000/-
-
Intel core i5 7th Generation Processor, 16" LED Monitor, 4 GB Ram HDD 320 GB
VIEW Rs.25,950/-
-
AMD 3.4 GHz AM4 1400 Processor (Silver)
VIEW Rs.20,450/-
‹
›
Featured Products 200+ featured products
-
<
Dell - (Pentium Quad Core/4 GB DDR3/500 GB/Ubuntu) (Black, 19.5 Inch Screen)
VIEW Rs.28,951/-
-
AMD 3.50 GHz FM2 A10-7800 Processor (Black-Red)
VIEW Rs 16,350/-
-
Microsoft Surface Pro 4 Core i5 6th Gen - (4 GB/128 GB SSD/Windows 10 Pro) 1724 2 in 1 Laptop (12.3 Inch, SIlver, 0.78 kg)
VIEW Rs.70,999/-
-
Intel® Pentium Dual Core Processor,15.1" LED Monitor, 2 GB RAM, HDD 320 GB
VIEW RS.20,500/-
-
Intel® Pentium Dual Core Processor Sixth Generation, 16" LED Monitor, 4 GB Ram, HDD 320 GB
VIEW Rs.22,200/-
-
AMD - A4 4020 Processor 3.6 ghz, 16" LED Monitor, 2 GB Onboard Graphics, 2 GB Ram, 320 GB Hard Disk
VIEW Rs.17,700/-
-
AMD A4 6320 Processor (2 Cores Processor),16" LED Monitor,1 GB Onboard Graphics, 2 GB RAM, HDD 320 GB
VIEW Rs.26,500/-
-
AMD 3850 1.3 GHz New Processor (4 Cores Processor),16" LED Monitor,1 GB Onboard Graphics, 2 GB RAM, HDD 320 GB
VIEW Rs.30,000/-
-
Intel 2.33 GHz LGA 775 Core™2 Duo Processor E6550 4M Processor (Multicolor)
VIEW RS.2,499/-
-
Intel core I3 Processor H55 Motherboard ,15" LCD Monitor, 2 GB Ram, HDD 160 GB
VIEW Rs.25,000/-
-
Intel core i5 7th Generation Processor, 16" LED Monitor, 4 GB Ram HDD 320 GB
VIEW Rs.25,950/-
-
AMD 3.4 GHz AM4 1400 Processor (Silver)
VIEW Rs.20,450/-
‹
›
SOCIAL MEDIA


{%extends 'base.html'%} {% load static%} {% block styles%} {{block.super}} {% endblock %} {% block content %}
To check out my pics click the view gallery button
You could shows images by the given locations: Museums, culture or travels
On the right we have the available categories
Email me<EMAIL_ADDRESS>{{image.name}}
{% comment %}


Before Change
try:
qual = self.quality[i] if self.has_quality() else None
return self.copy(sequence=self.sequence[i], quality=qual)
except IndexError:
raise IndexError(
"Position %d is out of range for %r." % (i, self))
After Change
// TODO update this method when /ኘ is resolved
if not (isinstance(i, Integral) or isinstance(i, slice) or
isinstance(i, list)):
raise TypeError("Unsupported type of item accessor. Only "
"integers, slices, and lists of integers are "
"currently supported.")
try:
qual = self.quality[i] if self.has_quality() else None
try:
seq = self.sequence[i]
except TypeError:
seq = [self.sequence[idx] for idx in i]
except IndexError:
raise IndexError(
"Position %r is out of range for %r." % (i, self))


mcc -o MRtask -W main:MRtask -T link:exe -d /home/admin/Downloads/mFiles/MR_Package/MRtask/for_testing -v /home/admin/Downloads/mFiles/MRtask.m -a /home/admin/Downloads/MATLABCODE Compiler version: 8.0 (R2020a) Dependency analysis by REQUIREMENTS. Parsing file "/home/admin/Downloads/mFiles/MRtask.m" (referenced from command line). Deleting temporary MEX authorization files... Removing: '/tmp/5189-6bcf-4b30-73cf_16642.auth'. Removing: '/tmp/79e7-9226-6651-0bea_16642.auth'. Removing: '/tmp/bc04-01ca-ae10-e65d_16642.auth'. Removing: '/tmp/16a8-771a-7f61-8f82_16642.auth'. Removing: '/tmp/3ab7-224b-9f5e-6e9d_16642.auth'. Removing: '/tmp/96d9-5761-2754-2a96_16642.auth'. Removing: '/tmp/18d2-8a81-cf95-34c6_16642.auth'. Removing: '/tmp/af9b-ed18-c9cb-faec_16642.auth'. Removing: '/tmp/c05a-8484-00ed-018d_16642.auth'. Removing: '/tmp/2ecb-7ace-6764-15a4_16642.auth'. Removing: '/tmp/1619-1fa5-94a2-a546_16642.auth'. Removing: '/tmp/a2d5-6dde-92bb-2005_16642.auth'. Removing: '/tmp/fc54-cfda-ee69-3e5e_16642.auth'. Removing: '/tmp/e4c4-a2ed-a0b1-3b13_16642.auth'. Removing: '/tmp/ceea-e661-eff8-d135_16642.auth'. Removing: '/tmp/89f3-7b8b-ab3e-30cb_16642.auth'. Removing: '/tmp/0df7-9922-a5dc-44dc_16642.auth'. Removing: '/tmp/1243-c348-cf70-57d4_16642.auth'. Removing: '/tmp/d703-c47c-bfdc-571f_16642.auth'. Removing: '/tmp/3451-32be-ca58-65e0_16642.auth'. Removing: '/tmp/eb57-cb5f-8cd4-1074_16642.auth'. Removing: '/tmp/5006-b243-7b3b-4861_16642.auth'. Removing: '/tmp/ece8-d280-5155-8093_16642.auth'. Removing: '/tmp/e932-838b-fe85-136f_16642.auth'. Removing: '/tmp/9b98-729b-4311-bcd8_16642.auth'. Generating file "/home/admin/Downloads/mFiles/MR_Package/MRtask/for_testing/readme.txt". Generating file "/home/admin/Downloads/mFiles/MR_Package/MRtask/for_testing/run_MRtask.sh". Packaging... Creating the bundle... Creating the install agent URL file... Web based installer created at /home/admin/Downloads/mFiles/MR_Package/MRtask/for_redistribution/MyAppInstaller_web.install. Packaging complete. Elapsed packaging time was: 1 minutes and 9 seconds.


Fraser Valley IDS Robotics Machine Learning Javascript High School
Following are some important links:
Start Here
- Design your IDS course
- More resources at rocksetta.com
Academic Resources:
- The point of the IDS is to solve the problems on your own, lots of online help.
- Your on-site Teacher Mentor may have some suggestions.
- Local MakerSpaces may have some suggestions: Abbotsford BC http://www.gearbots.org/, Langley BC http://fvmakers.com/
- Specific paid help at (Coming soon, possible limited number of scholarships)
- Possibly coordination between school districts
- Enrol at a School that offers these courses. Presently with Mr. Jeremy Ellis at Misison Secondary School, Mission, BC, Canada
General Safety Considerations:
- As this is an independent study, safety and sensible decisions is paramount. A high level of safe decisions is needed to remain doing the IDS course.
- No use of open electronics above 18 Volts and or 2 Amps without a qualified adult present
- No use of soldering or other dangerous apparatus without a qualified adult present
- No use of liquids without a qualified adult present
- No assignments using (flying) drones as they have been done very well professionally and have extra levels of Safety to consider
-
-
-
Form by Jeremy Ellis,
Website: rocksetta.com,
Twitter: @rocksetta,
Use at your own risk
Main Github fork at https://github.com/hpssjellis/fraser-valley-IDS-robotics-machine-learning-javascript-high-school


Published work with lenstronomy¶
In this section you can find the concept papers lenstronomy is based on the list of science publications that made use of lenstronomy. Please let the developers know when you publish a paper that made use of lenstronomy. We are happy to include your publication in this list.
Method papers¶
- Gravitational Lens Modeling with Basis Sets; Birrer et al. 2015
- This is the method paper **lenstronomy* is primary based on. Please cite this paper whenever you publish results with lenstronomy by using Shapelet basis sets and/or the PSO and MCMC chain.*
- Line-of-sight effects in strong lensing: putting theory into practice; Birrer et al. 2017a
- This paper formulates an effective parameterization of line-of-sight structure for strong gravitational lens modelling and applies this technique to an Einstein ring in the COSMOS field
- Cosmic Shear with Einstein Rings; Birrer et al. 2018a
- Forecast paper to measure cosmic shear with Einstein ring lenses. The forecast is made based on **lenstronomy* simulations.
- Is every strong lens model unhappy in its own way? Uniform modelling of a sample of 12 quadruply+ imaged quasars; Shajib et al. 2018
- This work presents a uniform modelling framework to model 12 quadruply lensed quasars in three HST bands.
Science papers¶
- The mass-sheet degeneracy and time-delay cosmography: analysis of the strong lens RXJ1131-1231; Birrer et al. 2016
- This paper performs a cosmographic analysis and applies the Shapelet basis set scaling to marginalize over a major lensing degeneracy.
- Lensing substructure quantification in RXJ1131-1231: a 2 keV lower bound on dark matter thermal relic mass; Birrer et al. 2017b
- This paper quantifies the substructure content of a lens by a sub-clump scanning procedure and the application of Approximate Bayesian Computing.
- H0LiCOW - IX. Cosmographic analysis of the doubly imaged quasar SDSS 1206+4332 and a new measurement of the Hubble constant; Birrer et al. 2019
- This paper performs a cosmographic analysis with power-law and composite models and covers a range in complexity in the source reconstruction


Third International Conference on
Technologies
for Music Notation and Representation
The third International Conference on Technologies for Music Notation and Representation is dedicated to issues in theoretical and applied research and development in Music Notation and Representation, with a strong focus on computer tools and applications, as well as a tight connection to music creation. Until very recently, the support provided by the computer music to the field of symbolic notation remained fairly conventional. However, recent developments indicate that the field of tools for musical notation is now moving towards new forms of representation. Moreover, musical notation, transcription, sonic visualisation, and musical representation are often associated in the fields of musical analysis, ethnology, and acoustics. The aim of this conference is to explore all of recent mutations of notation and representation in all domains of music.


Welcome to Moreto It! Dec 31, 2017 Welcome to my blog! Super excited to make content for you all! Stay posted.


Kent Hack Enough brings hackers from all over the nation together to learn something new, party hard, and create something awesome. With more than 325 highly motivated, creative, and talented participants, Kent Hack Enough is a weekend-long event where students from all areas of interest come together to make something awesome, like an app, website or hardware hack. The entire event is free for students, including food, energy drinks, and swag. In between all the coding, designing, and water pong, our sponsors are available as mentors to provide help and expertise throughout the hacking process.
Kent Hack Enough is free and open to students of all majors. If you are a high school student or a minor, please contact us for more information about how to attend. We’ll send you a waiver for your parents to sign and return before the event, and then you’ll be allowed in. If you’re traveling to Kent, please contact us for more information about travel reimbursement.
We require that all entries be created from scratch, during the competition. The use of 3rd party libraries and APIs is allowed and encouraged. Teams are limited to four people. To provide hackers with the best possible environment for learning, networking, and creating we adhere to the
MLH Code of Conduct.


Toggleable reverse-element demo
Toggle Reverse
First
Second
Third
Reversed reverse-element demo
First
Second
Third
Fourth


The blur algorithm takes each pixel and compute the average of the kernel around it, this kernel is a square with the pixel of interest in the center (so the kernel size must be odd), every pixel is replaced with the average of it’s kernel generating the blur effect, the bigger the kernel the stronger the blur effect.
The green pixel is the current pixel to be modified, the blue area is the kernel with size 3.
The code below shows the process of computing the average and assigning it to the current pixel.
In the edges (where the kernel it is outside the limits), it is necessary to compute the blur with the remaining pixels.
Examples of blur over an edge, The green pixel is the current pixel to be modified, the blue area is the kernel with size 3 on an edge.
the code bellow takes into account the edges to compute the blur effect.
The algorithm iterates over the array image to apply the blur effect to each pixel, the code bellow show that task.
Here are some results of the algorithm
Original 720px.
Blur effect 720px kernel size 19.
Original 1080px.
Blur effect 1080px kernel size 19.
Original 4k.
Blur effect 4k kernel size 41.


Here are some commonly seen widgets/components and the considerations we
should take into account when designing them.
Autocomplete
Also known as typeahead box.
UX
-
Type a minimum number of characters (typically two) for the results to
be displayed. This is because short search terms can result in too many
matches and irrelevant results may be returned.
-
Number of query suggestions should be kept short and scrollbars should
be avoided. Shorter list of results are more manageable and reduces the
cognitive load on the user. If you have scrollbars it probably means you
are displaying too many results!
-
Highlight the non-search terms (suggested terms) in the results. This
helps the user differentiate the autocomplete suggestions, make it
easier to compare.
-
Support keyboard shortcuts: Up/down to navigate and enter to search.
- Show a history of recent searches.
-
Use placeholder text in the input field to educate users, such as “Type
to view suggestions”.
- Use windowing/virtual lists when the search results is too long.
-
Debounce user input and only search when user stops typing for some time
(usually 300ms).
References
- https://baymard.com/blog/autocomplete-design
Carousel
UX
-
Consider preloading a few images to the left/right of the displayed
image during idle time so that as the user navigates, he does not have
to wait for the image to be downloaded.
- Allow left/right keyboard navigation of the carousel.
-
Lazy load the images. Only load those that the user has a high
likelihood of viewing - Current image and a few to the left and right.
Dropdown
-
Dropdowns that are displayed on hover are not mobile friendly as there
is no hover event on mobile.
-
Dropdown positioning can differ based on position of element on screen.
If the element is near the edge and the displayed dropdown will be
obscured outside of the viewport, the position of the dropdown can and
should be changed.
-
If the height of the dropdown is too long, it may extend outside of the
screen. Be sure to make the dropdown contents scrollable by setting a
max-height
.
Modal
-
Modals can usually be dismissed by clicking on the backdrop. If the user
interacts with the modal content by clicking on it, the backdrop might
also receive the click event and be dismissed as a result.
References
- https://css-tricks.com/dangers-stopping-event-propagation/
-
Tooltips that are displayed on hover are not mobile friendly as there is
no hover event on mobile.
-
Tooltip positioning can differ based on position of element on screen.
If the element is near the edge and the displayed tooltip will be
obscured outside of the viewport, the position of the tooltip can and
should be changed.


| PostgreSQL 9.0.10 Documentation | ||||
|---|---|---|---|---|
| Prev | Up | Chapter 8. Data Types | Next |
Table 8-4. Character Types
| Name | Description |
|---|---|
| character varying(n), varchar(n) | variable-length with limit |
| character(n), char(n) | fixed-length, blank padded |
| text | variable unlimited length |
Table 8-4 shows the general-purpose character types available in PostgreSQL.
SQL defines two primary character types: character varying(n) and character(n), where n is a positive integer. Both of these types can store strings up to n characters (not bytes) in length. An attempt to store a longer string into a column of these types will result in an error, unless the excess characters are all spaces, in which case the string will be truncated to the maximum length. (This somewhat bizarre exception is required by the SQL standard.) If the string to be stored is shorter than the declared length, values of type character will be space-padded; values of type character varying will simply store the shorter string.
If one explicitly casts a value to character varying(n) or character(n), then an over-length value will be truncated to n characters without raising an error. (This too is required by the SQL standard.)
The notations varchar(n) and char(n) are aliases for character varying(n) and character(n), respectively. character without length specifier is equivalent to character(1). If character varying is used without length specifier, the type accepts strings of any size. The latter is a PostgreSQL extension.
In addition, PostgreSQL provides the text type, which stores strings of any length. Although the type text is not in the SQL standard, several other SQL database management systems have it as well.
Values of type character are physically padded with spaces to the specified width n, and are stored and displayed that way. However, the padding spaces are treated as semantically insignificant. Trailing spaces are disregarded when comparing two values of type character, and they will be removed when converting a character value to one of the other string types. Note that trailing spaces are semantically significant in character varying and text values.
The storage requirement for a short string (up to 126 bytes) is 1 byte plus the actual string, which includes the space padding in the case of character. Longer strings have 4 bytes of overhead instead of 1. Long strings are compressed by the system automatically, so the physical requirement on disk might be less. Very long values are also stored in background tables so that they do not interfere with rapid access to shorter column values. In any case, the longest possible character string that can be stored is about 1 GB. (The maximum value that will be allowed for n in the data type declaration is less than that. It wouldn't be useful to change this because with multibyte character encodings the number of characters and bytes can be quite different. If you desire to store long strings with no specific upper limit, use text or character varying without a length specifier, rather than making up an arbitrary length limit.)
Tip: There is no performance difference among these three types, apart from increased storage space when using the blank-padded type, and a few extra CPU cycles to check the length when storing into a length-constrained column. While character(n) has performance advantages in some other database systems, there is no such advantage in PostgreSQL; in fact character(n) is usually the slowest of the three because of its additional storage costs. In most situations text or character varying should be used instead.
Refer to Section <IP_ADDRESS> for information about the syntax of string literals, and to Chapter 9 for information about available operators and functions. The database character set determines the character set used to store textual values; for more information on character set support, refer to Section 22.2.
Example 8-1. Using the character types
CREATE TABLE test1 (a character(4)); INSERT INTO test1 VALUES ('ok'); SELECT a, char_length(a) FROM test1; -- (1) a | char_length ------+------------- ok | 2 CREATE TABLE test2 (b varchar(5)); INSERT INTO test2 VALUES ('ok'); INSERT INTO test2 VALUES ('good '); INSERT INTO test2 VALUES ('too long'); ERROR: value too long for type character varying(5) INSERT INTO test2 VALUES ('too long'::varchar(5)); -- explicit truncation SELECT b, char_length(b) FROM test2; b | char_length -------+------------- ok | 2 good | 5 too l | 5
char_length
function is discussed in
Section 9.4.
There are two other fixed-length character types in PostgreSQL, shown in Table 8-5. The name type exists only for the storage of identifiers in the internal system catalogs and is not intended for use by the general user. Its length is currently defined as 64 bytes (63 usable characters plus terminator) but should be referenced using the constant NAMEDATALEN in C source code. The length is set at compile time (and is therefore adjustable for special uses); the default maximum length might change in a future release. The type "char" (note the quotes) is different from char(1) in that it only uses one byte of storage. It is internally used in the system catalogs as a simplistic enumeration type.


Home
|
Sitemap
|
Disclaimer
Business Enquiry:
<EMAIL_ADDRESS>Company
About Us
Products
Solar Power Pack
Solar Home Lighting System
Solar Lantern
Solar Street Light
Solar Industrial Electrification
Rural Electrification Through Solar Power Plant
Solutions
Schools & Colleges
Hospitals & Health Clinics
Telecom
Banks & ATM
Petrol Pumps
Contact
Solutions
Schools & Colleges
Hospitals & Health Clinics
Telecom
Banks & ATM
Petrol Pumps
Home
>
Solutions
> Schools & Colleges
Solar power solutions for Schools & Colleges will be able to run appliances used in day to day operation of schools & colleges like Computers, Printers, Lights, Fans and other electrical load.


Gecode::FunctionBranch Class Reference
Brancher for calling a function More...
Classes | |
| class | Description |
| Minimal brancher description storing no information. More... | |
Public Member Functions | |
| virtual bool | status (const Space &home) const |
| Check status of brancher, return true if alternatives left. | |
| virtual const Choice * | choice (Space &home) |
| Return choice. | |
| virtual const Choice * | choice (const Space &home, Archive &a) |
| Return choice. | |
| virtual ExecStatus | commit (Space &home, const Choice &ch, unsigned int a) |
| Perform commit. | |
| virtual void | print (const Space &, const Choice &, unsigned int, std::ostream &o) const |
| Print explanation. | |
| virtual Actor * | copy (Space &home, bool share) |
| Copy brancher. | |
| virtual size_t | dispose (Space &home) |
| Dispose brancher. | |
Static Public Member Functions | |
| static void | post (Home home, std::function< void(Space &home)> f) |
| Post brancher. | |
Protected Member Functions | |
| FunctionBranch (Home home, std::function< void(Space &home)> f0) | |
| Construct brancher. | |
| FunctionBranch (Space &home, bool share, FunctionBranch &b) | |
| Copy constructor. | |
Protected Attributes | |
| SharedData< std::function < void(Space &home)> > | f |
| Function to call. | |
| bool | done |
| Call function just once. |
Detailed Description
Brancher for calling a function
Definition at line 45 of file branch.cpp.
Constructor & Destructor Documentation
| Gecode::FunctionBranch::FunctionBranch | ( | Home | home, | |
| std::function< void(Space &home)> | f0 | |||
| ) | [inline, protected] |
Construct brancher.
Definition at line 98 of file branch.cpp.
| Gecode::FunctionBranch::FunctionBranch | ( | Space & | home, | |
| bool | share, | |||
| FunctionBranch & | b | |||
| ) | [inline, protected] |
Copy constructor.
Definition at line 106 of file branch.cpp.
Member Function Documentation
| bool Gecode::FunctionBranch::status | ( | const Space & | home | ) | const [virtual] |
Check status of brancher, return true if alternatives left.
Implements Gecode::Brancher.
Definition at line 111 of file branch.cpp.
| ExecStatus Gecode::FunctionBranch::commit | ( | Space & | home, | |
| const Choice & | ch, | |||
| unsigned int | a | |||
| ) | [virtual] |
| void Gecode::FunctionBranch::post | ( | Home | home, | |
| std::function< void(Space &home)> | f | |||
| ) | [inline, static] |
Post brancher.
Definition at line 140 of file branch.cpp.
| size_t Gecode::FunctionBranch::dispose | ( | Space & | home | ) | [virtual] |
Member Data Documentation
SharedData<std::function<void(Space& home)> > Gecode::FunctionBranch::f [protected] |
Function to call.
Definition at line 58 of file branch.cpp.
bool Gecode::FunctionBranch::done [protected] |
Call function just once.
Definition at line 60 of file branch.cpp.
The documentation for this class was generated from the following file:
- gecode/kernel/branch.cpp (Revision: 15541)