Middleware
public protocol Middleware : AnyObject
⛓ Middleware
is a plugin, or a composition of several plugins, that are assigned to the Store
pipeline in order
to handle each action received (InputActionType
), to execute side-effects in response, and eventually dispatch more
action (OutputActionType
) in the process. This happens before the Reducer
to do its job. So in other words, we can
think of a Middleware as an object that transforms actions into sync or async tasks and create more actions as these
side-effects complete, also being able to check the current state at any point.
An action is a lightweight structure that is dispatched into the Store
. The store enqueues a new action that arrives
and submits it to a pipeline of middlewares. So, in other words, a Middleware
is class that handles actions, and has
the power to dispatch more actions to the ActionHandler
chain. The Middleware
can ignore the action and simply
delegate to the next node in the chain of middlewares, or it can execute side-effects in response, such as logging into
file or over the network, or execute http requests, for example. In case of those async tasks, when they complete the
middleware can dispatch new actions containing a payload with the response (a JSON file, an array of movies,
credentials, etc). Other middlewares will handle that, or maybe even the same middleware in a future RunLoop, or
perhaps some Reducer
, as reducers pipeline is at the end of every middleware pipeline.
Because we control when the next node will be called, we can for example collect the state before and after reducers have changed the state, which can be very interesting for logging, auditing, analytics tracking, telemetry or state synchronization with external devices, such as Apple Watches or for debugging tools over the network.
So let’s imagine a movie catalog app where a MovieListAction.didTapWatchToggle(rowIndex:)
action would be handled by
a Middleware
that checks the state and finds that current list has certain movie at the given row index, and this
movie has been already marked as watched before. The Middleware
was able to learn that thanks to the
getState: @escaping () -> StateType
closure present in the property context
of type MiddlewareContext
, which can
be checked at any point to read an updated state. Our example Middleware
then will trigger a
MovieListAction.setMovieAsUnwatched(movieId:)
action to be handled by itself, other middlewares or the Reducer
chain.
However, this would be a very naive implementation. Most of the times we handle data that must be persisted in a
database or through a REST API. State only lives in memory, but before changing the memory we should at least start
Side-Effects. Let’s revisit the example above and say that we got a MovieListAction.didTapWatchToggle(rowIndex:)
action. Yes, we still should check what movie is at that row and whether or not it’s watched. Now, we can trigger an
http task requesting our API to mark it as unwatched. Because this request is asynchronous we have three options:
- assume that this API won’t fail, and mark the movie immediately as unwatched;
- don’t assume anything and wait for the
HTTPResponse
; - provide a very precise state management, meaning that we immediately change the state of our movie to
it’s being changed
and, once we get the response we update again.
In the first case, we create the URLSessionDataTask
, call task.resume()
and immediately trigger the
setMovieAsUnwatched
action for the reducer to update the app state. We may use the completion handler of the
HTTPRequest
to confirm the successful result and rollback if needed, by sending another action so the reducer will
revert the change in the state, and the UI will then react to that.
In the second case, after calling task.resume()
we don’t trigger any action, only when we get the response we trigger
the action that will eventually change the state and the UI, of course in case it was a successful response.
The third case, however, offers many more possibilities. You can think about the possible three states of a movie:
watched, not watched, mutating. You can even split the mutating
case in two: mutating to watched
and mutating to
unwatched
. So instead of a boolean with true
or false
, now your state is an enum with four cases, describing
precisely the situation of your element. What you get from that is the ability to perform better animations, improved
UI features like disable the watch
button while the change is being requested, use activity indicators view or simply
ignore further attempts to click the Toggle in the screen, by ignoring the events while the movie is in this intermediate
situation. To offer that, you call task.resume
and immediately trigger an Action setMovieAsUnwatchRequestInProgress
,
which will eventually set the state accordingly, while inside the response completion handler you evaluate the response
and trigger another action to update the movie state again, by triggering either setMovieAsUnwatched
in case of
successful response, or back to setMovieAsWatched
if the operation fails. In case of failure you may also consider
to trigger an additional Action gotError
so you notify the user, or maybe implement a retry.
Because the Middleware
receive all actions and accesses the state of the app at any point, anything can be done from
these small and reusable boxes. For example, the same CoreLocation
middleware could be used from an iOS app, its
extensions, the Apple Watch extension or even different apps, as long as they share some sub-state struct.
Some suggestions of middlewares:
- Run Timers, pooling some external resource or updating some local state at a constant time
- Subscribe for
CoreData
,Realm
,Firebase Realtime Database
or equivalent database changes - Be a
CoreLocation
delegate, checking for significant location changes or beacon ranges and triggering actions to update the state - Be a
HealthKit
delegate to track activities, or even combining that withCoreLocation
observation in order to track the activity route - Logger, Telemetry, Auditing, Analytics tracker, Crash report breadcrumbs
WatchConnectivity
sync, keep iOS and watchOS state in sync- Monitoring or debugging tools, like external apps to monitor the state and actions remotely from a different device
- API calls and other
cold observables
- Network Reachability
- Navigation through the app (Redux Coordinator pattern)
CoreBluetooth
central or peripheral managerCoreNFC
NotificationCenter
and other delegatesRxSwift
observables,ReactiveSwift
signal producers,Combine
publishers- Observation of traits changes, device rotation, language/locale, dark mode, dynamic fonts, background/foreground state
- Any side-effect, I/O, networking, sensors, third-party libraries that you want to abstract
When implementing your Middleware, all you have to do is to handle the incoming actions:
class MyMiddleware: Middleware {
var context: (() -> MiddlewareContext<SomeActionType, SomeStateType>) = { fatalError("Store will set this") }
func handle(action: SomeActionType, next: @escaping Next) {
guard action == .requestNetwork else {
next()
return
}
requestMyFavoriteAPI(completion: { result in
switch result {
case let .success(value): context().dispatch(.gotSuccessfulValue(value))
case let .failure(error): context().dispatch(.gotFailure(error))
}
})
next()
}
}
Some important notes about the code above, and generally speaking about any middleware:
- Always call
next()
. If you have an early exit by usingguard
, don’t forget to call there and in the regular case too. - Never call
next()
more than once. Seriously, you don’t want that. - Most of the time you can consider calling
next()
in adefer
block put at the beginning of your function. - Although that would work somehow, please don’t call
next()
in a callback or dispatch queue async/sync block. Call it exactly in the thread you got it, and in the same runloop. Unless you REALLY know what you’re doing. Anything before
next()
happens before the state change, what comes afternext()
will happen after the reducer chain so you can you that to track state changes:func handle(action: SomeActionType, next: @escaping Next) { let stateBefore = context().getState() let dateBefore = Date() next() let stateAfter = context().getState() let dateAfter = Date() log(action: action, before: stateBefore, after: stateAfter, dateBefore: dateBefore, dateAfter: dateAfter) }
┌─────┐ ┌─────┐ │ │ handle ┌──────────┐ request ┌ ─ ─ ─ ─ response ┌──────────┐ dispatch │ │ │ │ ┌─────────▶│Middleware├─────────────▶ External│─────────────▶│Middleware│───────────▶│Store│─ ─ ▶ ... │ │ │ Action │ Pipeline │ side-effects │ World side-effects │ callback │ New Action │ │ │ │ │ └──────────┘ ─ ─ ─ ─ ┘ └──────────┘ └─────┘ ┌──────┐ dispatch │ │ │ │Button│─────────▶│Store│──▶│ ┌────────┐ └──────┘ Action │ │ │ ┌─▶│ View 1 │ │ │ │ ┌─────┐ │ └────────┘ │ │ │ reduce ┌──────────┐ │ │ onNext │ ┌────────┐ │ │ └─────────▶│ Reducer ├───────────▶│Store│────────────▶├─▶│ View 2 │ │ │ Action │ Pipeline │ New state │ │ New state │ └────────┘ └─────┘ + └──────────┘ └─────┘ │ ┌────────┐ State └─▶│ View 3 │ └────────┘
-
The Action type that this
Middleware
knowns how to handle, so the store will forward actions of this type to this middleware. Thanks to optics, this action can be a sub-action lifted to a global action type. Please checklift(actionZoomIn:actionZoomOut:stateZoomIn:)
for more details.Declaration
Swift
associatedtype InputActionType
-
The Action type that this
Middleware
will eventually trigger back to the store in response of side-effects. This can be the same asInputActionType
or different, in case you want to separate your enum in requests and responses. Thanks to optics, this action can be a sub-action lifted to a global action type. Please checklift(actionZoomIn:actionZoomOut:stateZoomIn:)
for more details.Declaration
Swift
associatedtype OutputActionType
-
The State that this
Middleware
knowns how to handle. Thanks to lenses, this state can be a sub-state lifted to a global state. Please checklift(actionZoomIn:actionZoomOut:stateZoomIn:)
for more details.Declaration
Swift
associatedtype StateType
-
Every
Middleware
needs some context in order to be able to interface with other middleware and with the store. This context includes ways to fetch the most up-to-date state or dispatch new actions. When implementing your own Middleware, the initial value of this property can be a closure that simply crashes with fatal error, because once the middleware is added to theStore
or to a pipeline of composed middlewares, this value will point to the store actions.Declaration
Swift
var context: (() -> MiddlewareContext<OutputActionType, StateType>) { get set }
-
Handles the incoming actions and may or not start async tasks, check the latest state at any point or dispatch additional actions. This is also a good place for analytics, tracking, logging and telemetry.
Declaration
Swift
func handle(action: InputActionType, next: @escaping Next)
Parameters
action
the action to be handled
next
opportunity to call the next middleware in the chain and, eventually, the reducer pipeline. Call it only once, not more or less than once. Call it from the same thread and runloop where the handle function is executed, never from a completion handler or dispatch queue block. In case you don’t need to compare state before and after it’s changed from the reducers, please consider to add a
defer
block withnext()
on it, at the beginning ofhandle
function.
-
lift(actionZoomIn:actionZoomOut:stateZoomIn:)
Extension methodA lenses method. The global state of your app is Whole, and the
Middleware
handles Part, that is a sub-state. So for example you may want to have aGPSMiddleware
that knows about the followingstruct
:struct Location { let latitude: Double let longitude: Double }
Let’s call it
Part
. Both, this state and its middleware will be part of an external framework, used by dozens of apps. Internally probably theMiddleware
will useCoreLocation
to fetch the GPS changes, and triggers some actions. On the main app we have a global state, that we now callWhole
.struct MyGlobalState { let title: String? let listOfItems: [Item] let currentLocation: Location }
As expected,
Part
is a property ofWhole
, maybe not directly, it could be several nodes deep in the tree.Because our
Store
understandsWhole
and ourGPSMiddleware
understandsPart
, we mustlift(_:)
the middleware to theWhole
level, by using:let globalStateMiddleware = gpsMiddleware.lift(\MyGlobalState.currentLocation)
Now this middleware can be used within our
Store
or even composed with others. It also can be used in other apps as long as we have a way to lift it to the world ofWhole
.Declaration
Swift
public func lift<GlobalInputActionType, GlobalOutputActionType, GlobalStateType>( actionZoomIn: @escaping (GlobalInputActionType) -> InputActionType?, actionZoomOut: @escaping (OutputActionType) -> GlobalOutputActionType, stateZoomIn: @escaping (GlobalStateType) -> StateType ) -> LiftMiddleware<GlobalInputActionType, GlobalOutputActionType, GlobalStateType, Self>
Parameters
substatePath
the keyPath that goes from
Whole
toPart
Return Value
a
SubstateMiddleware
<Whole, Self>
that knows how to translateWhole
toPart
and vice-versa, by using the key path.


Ocean [al09], ocean, in The Outer Sea
Last updated Turn #122
Ocean [al09], ocean, in The Outer Sea
------------------------------------------------------------------------
23: The Savvy Aardvark [ha5r], ship, 2 hulls, 1 rowing port, 6 sails,
23: 13% damaged, arrived from Ocean [am09], owner:
23: Phantasm [n4b], Imperial Empire, duke, with two workers,
23: eight sailors
24: The Savvy Aardvark [ha5r], ship, 2 hulls, 1 rowing port, 6 sails,
24: 13% damaged, departed for Ocean [ak09].
Routes leaving Ocean:
North, to Ocean [ak09], Crystal Sea, 6 days
East, to Ocean [al10], 5 days
South, to Ocean [am09], 6 days
West, to Ocean [al08], 6 days


jQuery Plugin Tagedit - Playground
Some more example of different use cases.
Starting with an empty list
Use square brackets in tht inputname
Use Arrow-Down for showing the complete Autocompleterlist
Use custom break characters
Use local source for autocomplete list
Use function source for autocomplete list


NVIDIA today announced the latest NVIDIA® GeForce® drivers -- R310 -- double the performance and dramatically reduce game loading times for those gaming on the Linux operating system.
The result of almost a year of development by NVIDIA, Valve and other game developers, the new GeForce R310 drivers are designed to give GeForce customers the best possible Linux-based PC gaming experience -- and showcase the enormous potential of the world's biggest open-source operating system.
Available for download at www.geforce.com, the new R310 drivers were also thoroughly tested with Steam for Linux, the extension of Valve's phenomenally popular Steam gaming platform that officially opened to gamers starting today.
"With this release, NVIDIA has managed to increase the overall gaming performance under Linux," said Doug Lombardi, vice president of marketing at Valve. "NVIDIA took an unquestioned leadership position developing R310 drivers with us and other studios to provide an absolutely unequalled solution for Linux gamers."
The R310 drivers support the newest GeForce GTX 600 series GPUs, which have redefined gaming for desktop and notebook PCs by combining revolutionary performance and gaming technology features with an incredibly power-efficient design. Gamers with previous generation GeForce GPUs, including the 8800 GT and above, are encouraged to download these new drivers aswell.
For an up-to-date third-party listing of games and applications that are currently in development for Linux, visit the Marlamin site.
For more information on how GeForce GTX GPUs are dramatically changing the way games are played and experienced on Linux, visit www.geforce.com. For more NVIDIA news, company and product information, videos, images and other information, visit the NVIDIA newsroom. The NVIDIA Flickr page hosts the entire lineup of GeForce product photos.
So what do you think? Did I miss something? Is any part unclear? Please leave your comments below


|
UMC
1.0
|
Classes | |
| class | IAudioSource |
| This interface represents Audio Source of UMC. More... | |
| class | IAudioTrack |
| This interface represents Audio Track added to an output. More... | |
| class | IClipShot |
| This interface is for clip shots added to tracks in UMC. More... | |
| class | ICustomData |
| This interface represents CustomData of UMC. More... | |
| class | ICustomDataHandler |
| This interface allows client to create custom extension handler. More... | |
| class | IFrame |
| This interface is for frames added to shots in UMC. More... | |
| class | IImageSource |
| This interface represents Image Source of UMC. More... | |
| class | IOutput |
| This interface acts as a base interface to all types of outputs of UMC. More... | |
| class | IShot |
| This interface acts as a base interface for shots added to tracks in UMC. More... | |
| class | IShotSource |
| This interface is for shot sources added to shots in UMC. More... | |
| class | ISource |
| This interface acts as a base interface to all types of sources of UMC. More... | |
| class | ITrack |
| This interface acts as a base interface for tracks added to outputs in UMC. More... | |
| class | ITransitionShot |
| This interface is for transition shots added to tracks in UMC. More... | |
| class | IUMC |
| This interface is used for getting, adding and removing various sources and outputs from UMC. More... | |
| class | IUMCNode |
| This interface acts as a base interface for all types of nodes in UMC. More... | |
| class | IUniqueIDGenerator |
| This interface is used for generating unique ID for the node. More... | |
| class | IVideoFrameSource |
| This interface represents VideoFrame Source of UMC. More... | |
| class | IVideoSource |
| This interface represents Video Source of UMC. More... | |
| class | IVideoTrack |
| This interface represents Video Track added to an output. More... | |
| class | TimeCode |
| class | TRationalType |
Functions | |
| std::ostream & | operator<< (std::ostream &os, const Unsigned64RationalType &rt) |
| std::ostream & | operator<< (std::ostream &os, const TimeCode &tc) |
| template<typename requiredNodeType > | |
| shared_ptr< requiredNodeType > | ConvertNode (const spIUMCNode &node) |
| static void | ParseSMPTETimeCode (const char *smpteTimeCode, TimeCode &timeCode) |
| static TimeCode::eStandardFrameRates | ConvertToStandardFrameRate (const FrameRate &frameRate) |
| FrameRate | ConvertFromStandardFrameRate (TimeCode::eStandardFrameRates standardFrameRate) |
Variables | |
| static const UMC_Uns8 | Min_UMC_Uns8 = ( ( UMC_Uns8 ) 0x00 ) |
| static const UMC_Uns8 | Max_UMC_Uns8 = ( ( UMC_Uns8 ) 0xFF ) |
| static const UMC_Uns16 | Min_UMC_Uns16 = ( ( UMC_Uns16 ) 0x00 ) |
| static const UMC_Uns16 | Max_UMC_Uns16 = ( ( UMC_Uns16 ) 0xFFFF ) |
| static const UMC_Uns32 | Min_UMC_Uns32 = ( ( UMC_Uns32 ) 0x00 ) |
| static const UMC_Uns32 | Max_UMC_Uns32 = ( ( UMC_Uns32 ) 0xFFFFFFFF ) |
| static const UMC_Uns64 | Min_UMC_Uns64 = ( ( UMC_Uns64 ) 0x00 ) |
| static const UMC_Uns64 | Max_UMC_Uns64 = ( ( UMC_Uns64 ) 0xFFFFFFFFFFFFFFFFLL ) |
| static const UMC_Int8 | Min_UMC_Int8 = ( ( UMC_Int8 ) 0x80 ) |
| static const UMC_Int8 | Max_UMC_Int8 = ( ( UMC_Int8 ) 0x7F ) |
| static const UMC_Int16 | Min_UMC_Int16 = ( ( UMC_Int16 ) 0x8000 ) |
| static const UMC_Int16 | Max_UMC_Int16 = ( ( UMC_Int16 ) 0x7FFF ) |
| static const UMC_Int32 | Min_UMC_Int32 = ( ( UMC_Int32 ) 0x80000000 ) |
| static const UMC_Int32 | Max_UMC_Int32 = ( ( UMC_Int32 ) 0x7FFFFFFF ) |
| static const UMC_Int64 | Min_UMC_Int64 = ( ( UMC_Int64 ) 0x8000000000000000LL ) |
| static const UMC_Int64 | Max_UMC_Int64 = ( ( UMC_Int64 ) 0x7FFFFFFFFFFFFFFFLL ) |
| static const EditUnitInCount | kEditUnitInCountFromBeginning = 0 |
| static const EditUnitDuration | kEditUnitDurationTillEnd = Max_UMC_Uns64 |
| static const size_t | npos = std::string::npos |
| const std::string | kEmptyString |
Definition at line 58 of file RationalType.h.
| typedef Unsigned64RationalType UMC::EditRate |
Definition at line 56 of file RationalType.h.
| typedef UMC_Uns64 UMC::EditUnitDuration |
Definition at line 101 of file UMCDefines.h.
| typedef UMC_Int64 UMC::EditUnitInCount |
Definition at line 100 of file UMCDefines.h.
| typedef Unsigned64RationalType UMC::FrameRate |
Definition at line 57 of file RationalType.h.
| typedef const IAudioSource* UMC::pcIAudioSource |
Definition at line 58 of file UMCFwdDeclarations.h.
| typedef const IAudioTrack* UMC::pcIAudioTrack |
Definition at line 107 of file UMCFwdDeclarations.h.
| typedef const IClipShot* UMC::pcIClipShot |
Definition at line 121 of file UMCFwdDeclarations.h.
| typedef const ICustomData* UMC::pcICustomData |
Definition at line 150 of file UMCFwdDeclarations.h.
| typedef const ICustomDataHandler* UMC::pcICustomDataHandler |
Definition at line 157 of file UMCFwdDeclarations.h.
| typedef const IFrame* UMC::pcIFrame |
Definition at line 135 of file UMCFwdDeclarations.h.
| typedef const IImageSource* UMC::pcIImageSource |
Definition at line 72 of file UMCFwdDeclarations.h.
| typedef const IOutput* UMC::pcIOutput |
Definition at line 86 of file UMCFwdDeclarations.h.
| typedef const IShot* UMC::pcIShot |
Definition at line 114 of file UMCFwdDeclarations.h.
| typedef const IShotSource* UMC::pcIShotSource |
Definition at line 142 of file UMCFwdDeclarations.h.
| typedef const ISource* UMC::pcISource |
Definition at line 44 of file UMCFwdDeclarations.h.
| typedef const ITrack* UMC::pcITrack |
Definition at line 93 of file UMCFwdDeclarations.h.
| typedef const ITransitionShot* UMC::pcITransitionShot |
Definition at line 128 of file UMCFwdDeclarations.h.
| typedef const IUMC* UMC::pcIUMC |
Definition at line 79 of file UMCFwdDeclarations.h.
| typedef const IUMCNode* UMC::pcIUMCNode |
Definition at line 34 of file UMCFwdDeclarations.h.
| typedef const IUniqueIDGenerator* UMC::pcIUniqueIDGenerator |
Definition at line 27 of file UMCFwdDeclarations.h.
| typedef const IVideoFrameSource* UMC::pcIVideoFrameSource |
Definition at line 65 of file UMCFwdDeclarations.h.
| typedef const IVideoSource* UMC::pcIVideoSource |
Definition at line 51 of file UMCFwdDeclarations.h.
| typedef const IVideoTrack* UMC::pcIVideoTrack |
Definition at line 100 of file UMCFwdDeclarations.h.
| typedef IAudioSource* UMC::pIAudioSource |
Definition at line 56 of file UMCFwdDeclarations.h.
| typedef IAudioTrack* UMC::pIAudioTrack |
Definition at line 105 of file UMCFwdDeclarations.h.
| typedef IClipShot* UMC::pIClipShot |
Definition at line 119 of file UMCFwdDeclarations.h.
| typedef ICustomData* UMC::pICustomData |
Definition at line 148 of file UMCFwdDeclarations.h.
Definition at line 155 of file UMCFwdDeclarations.h.
| typedef IFrame* UMC::pIFrame |
Definition at line 133 of file UMCFwdDeclarations.h.
| typedef IImageSource* UMC::pIImageSource |
Definition at line 70 of file UMCFwdDeclarations.h.
| typedef IOutput* UMC::pIOutput |
Definition at line 84 of file UMCFwdDeclarations.h.
| typedef IShot* UMC::pIShot |
Definition at line 112 of file UMCFwdDeclarations.h.
| typedef IShotSource* UMC::pIShotSource |
Definition at line 140 of file UMCFwdDeclarations.h.
| typedef ISource* UMC::pISource |
Definition at line 42 of file UMCFwdDeclarations.h.
| typedef ITrack* UMC::pITrack |
Definition at line 91 of file UMCFwdDeclarations.h.
| typedef ITransitionShot* UMC::pITransitionShot |
Definition at line 126 of file UMCFwdDeclarations.h.
| typedef IUMC* UMC::pIUMC |
Definition at line 77 of file UMCFwdDeclarations.h.
| typedef IUMCNode* UMC::pIUMCNode |
Definition at line 32 of file UMCFwdDeclarations.h.
Definition at line 25 of file UMCFwdDeclarations.h.
| typedef IVideoFrameSource* UMC::pIVideoFrameSource |
Definition at line 63 of file UMCFwdDeclarations.h.
| typedef IVideoSource* UMC::pIVideoSource |
Definition at line 49 of file UMCFwdDeclarations.h.
| typedef IVideoTrack* UMC::pIVideoTrack |
Definition at line 98 of file UMCFwdDeclarations.h.
| typedef TRationalType< UMC_Int64 > UMC::Signed64RationalType |
Definition at line 54 of file RationalType.h.
| typedef shared_ptr< const IAudioSource > UMC::spcIAudioSource |
Definition at line 60 of file UMCFwdDeclarations.h.
| typedef shared_ptr< const IAudioTrack > UMC::spcIAudioTrack |
Definition at line 109 of file UMCFwdDeclarations.h.
| typedef shared_ptr< const IClipShot > UMC::spcIClipShot |
Definition at line 123 of file UMCFwdDeclarations.h.
| typedef shared_ptr< const ICustomData > UMC::spcICustomData |
Definition at line 152 of file UMCFwdDeclarations.h.
| typedef shared_ptr< const ICustomDataHandler > UMC::spcICustomDataHandler |
Definition at line 159 of file UMCFwdDeclarations.h.
| typedef shared_ptr< const IFrame > UMC::spcIFrame |
Definition at line 137 of file UMCFwdDeclarations.h.
| typedef shared_ptr< const IImageSource > UMC::spcIImageSource |
Definition at line 74 of file UMCFwdDeclarations.h.
| typedef shared_ptr< const IOutput > UMC::spcIOutput |
Definition at line 88 of file UMCFwdDeclarations.h.
| typedef shared_ptr< const IShot > UMC::spcIShot |
Definition at line 116 of file UMCFwdDeclarations.h.
| typedef shared_ptr< const IShotSource > UMC::spcIShotSource |
Definition at line 144 of file UMCFwdDeclarations.h.
| typedef shared_ptr< const ISource > UMC::spcISource |
Definition at line 46 of file UMCFwdDeclarations.h.
| typedef shared_ptr< const ITrack > UMC::spcITrack |
Definition at line 95 of file UMCFwdDeclarations.h.
| typedef shared_ptr< const ITransitionShot > UMC::spcITransitionShot |
Definition at line 130 of file UMCFwdDeclarations.h.
| typedef shared_ptr< const IUMC > UMC::spcIUMC |
Definition at line 81 of file UMCFwdDeclarations.h.
| typedef shared_ptr< const IUMCNode > UMC::spcIUMCNode |
Definition at line 36 of file UMCFwdDeclarations.h.
| typedef shared_ptr< const IUniqueIDGenerator > UMC::spcIUniqueIDGenerator |
Definition at line 29 of file UMCFwdDeclarations.h.
| typedef shared_ptr< const IVideoFrameSource > UMC::spcIVideoFrameSource |
Definition at line 67 of file UMCFwdDeclarations.h.
| typedef shared_ptr< const IVideoSource > UMC::spcIVideoSource |
Definition at line 53 of file UMCFwdDeclarations.h.
| typedef shared_ptr< const IVideoTrack > UMC::spcIVideoTrack |
Definition at line 102 of file UMCFwdDeclarations.h.
| typedef shared_ptr< IAudioSource > UMC::spIAudioSource |
Definition at line 59 of file UMCFwdDeclarations.h.
| typedef shared_ptr< IAudioTrack > UMC::spIAudioTrack |
Definition at line 108 of file UMCFwdDeclarations.h.
| typedef shared_ptr< IClipShot > UMC::spIClipShot |
Definition at line 122 of file UMCFwdDeclarations.h.
| typedef shared_ptr< ICustomData > UMC::spICustomData |
Definition at line 151 of file UMCFwdDeclarations.h.
| typedef shared_ptr< ICustomDataHandler > UMC::spICustomDataHandler |
Definition at line 158 of file UMCFwdDeclarations.h.
| typedef shared_ptr< IFrame > UMC::spIFrame |
Definition at line 136 of file UMCFwdDeclarations.h.
| typedef shared_ptr< IImageSource > UMC::spIImageSource |
Definition at line 73 of file UMCFwdDeclarations.h.
| typedef shared_ptr< IOutput > UMC::spIOutput |
Definition at line 87 of file UMCFwdDeclarations.h.
| typedef shared_ptr< IShot > UMC::spIShot |
Definition at line 115 of file UMCFwdDeclarations.h.
| typedef shared_ptr< IShotSource > UMC::spIShotSource |
Definition at line 143 of file UMCFwdDeclarations.h.
| typedef shared_ptr< ISource > UMC::spISource |
Definition at line 45 of file UMCFwdDeclarations.h.
| typedef shared_ptr< ITrack > UMC::spITrack |
Definition at line 94 of file UMCFwdDeclarations.h.
| typedef shared_ptr< ITransitionShot > UMC::spITransitionShot |
Definition at line 129 of file UMCFwdDeclarations.h.
| typedef shared_ptr< IUMC > UMC::spIUMC |
Definition at line 80 of file UMCFwdDeclarations.h.
| typedef shared_ptr< IUMCNode > UMC::spIUMCNode |
Definition at line 35 of file UMCFwdDeclarations.h.
| typedef shared_ptr< IUniqueIDGenerator > UMC::spIUniqueIDGenerator |
Definition at line 28 of file UMCFwdDeclarations.h.
| typedef shared_ptr< IVideoFrameSource > UMC::spIVideoFrameSource |
Definition at line 66 of file UMCFwdDeclarations.h.
| typedef shared_ptr< IVideoSource > UMC::spIVideoSource |
Definition at line 52 of file UMCFwdDeclarations.h.
| typedef shared_ptr< IVideoTrack > UMC::spIVideoTrack |
Definition at line 101 of file UMCFwdDeclarations.h.
| typedef TRationalType< UMC_Uns64 > UMC::Unsigned64RationalType |
Definition at line 53 of file RationalType.h.
| typedef weak_ptr< const IUMCNode > UMC::wpcIUMCNode |
Definition at line 38 of file UMCFwdDeclarations.h.
| typedef weak_ptr< IUMCNode > UMC::wpIUMCNode |
Definition at line 37 of file UMCFwdDeclarations.h.
| FrameRate UMC::ConvertFromStandardFrameRate | ( | TimeCode::eStandardFrameRates | standardFrameRate | ) |
Definition at line 105 of file TimeCode.cpp.
References UMC::TRationalType< BaseType >::Denominator(), UMC::TimeCode::k23_976Fps, UMC::TimeCode::k24Fps, UMC::TimeCode::k25Fps, UMC::TimeCode::k29_97Fps, UMC::TimeCode::k30Fps, UMC::TimeCode::k50Fps, UMC::TimeCode::k59_94Fps, UMC::TimeCode::k60Fps, and UMC::TRationalType< BaseType >::Numerator().
Referenced by UMC::TimeCode::StandardFrameRate().
| shared_ptr< requiredNodeType > UMC::ConvertNode | ( | const spIUMCNode & | node | ) |
Definition at line 275 of file IUMCNode.h.
|
static |
Definition at line 57 of file TimeCode.cpp.
References UMC::TRationalType< BaseType >::Denominator(), UMC::TimeCode::k23_976Fps, UMC::TimeCode::k24Fps, UMC::TimeCode::k25Fps, UMC::TimeCode::k29_97Fps, UMC::TimeCode::k30Fps, UMC::TimeCode::k50Fps, UMC::TimeCode::k59_94Fps, UMC::TimeCode::k60Fps, UMC::TimeCode::kNonStandardFrameRate, and UMC::TRationalType< BaseType >::Numerator().
Referenced by UMC::TimeCode::FrameRate().
|
inline |
Definition at line 60 of file RationalType.h.
References UMC::TRationalType< BaseType >::Denominator(), and UMC::TRationalType< BaseType >::Numerator().
|
inline |
Definition at line 96 of file TimeCode.h.
References UMC::TimeCode::SMPTETimecode().
|
static |
Definition at line 22 of file TimeCode.cpp.
References UMC::TimeCode::DropFrame(), UMC::TimeCode::Frames(), UMC::TimeCode::Hours(), UMC::TimeCode::IsNonDropFrame(), UMC::TimeCode::Minutes(), npos, and UMC::TimeCode::Seconds().
Referenced by UMC::TimeCode::SMPTETimecode(), and UMC::TimeCode::TimeCode().
|
static |
Definition at line 104 of file UMCDefines.h.
|
static |
Definition at line 103 of file UMCDefines.h.
| const std::string UMC::kEmptyString |
|
static |
Definition at line 94 of file UMCDefines.h.
|
static |
Definition at line 96 of file UMCDefines.h.
|
static |
Definition at line 98 of file UMCDefines.h.
|
static |
Definition at line 92 of file UMCDefines.h.
|
static |
Definition at line 85 of file UMCDefines.h.
|
static |
Definition at line 87 of file UMCDefines.h.
|
static |
Definition at line 89 of file UMCDefines.h.
|
static |
Definition at line 83 of file UMCDefines.h.
|
static |
Definition at line 93 of file UMCDefines.h.
|
static |
Definition at line 95 of file UMCDefines.h.
|
static |
Definition at line 97 of file UMCDefines.h.
|
static |
Definition at line 91 of file UMCDefines.h.
|
static |
Definition at line 84 of file UMCDefines.h.
|
static |
Definition at line 86 of file UMCDefines.h.
|
static |
Definition at line 88 of file UMCDefines.h.
|
static |
Definition at line 82 of file UMCDefines.h.
|
static |
Definition at line 106 of file UMCDefines.h.
Referenced by ParseSMPTETimeCode().


Home
Choices
About
January 15 2017
Beryani Rice with Nuts
Bekata with lime juice
Savory dishes
Grilled Goat Rips
Moroccan Salad with Dates
MeatBall with Yellow Rice
Chocolaty Cake
Pancake with Strawberry
Cinnamon Balls


@( platforms: Collection[org.ubicollab.ubibazaar.core.Platform], category: org.ubicollab.ubibazaar.core.Category ) @ubibazaar("New device registration") {
Please select the platform on which you built your app, and choose name and description for the app. This is important for the people to find it in the app store.


Hi, I'm Nik! I am a full-stack software engineer with experience in a wide variety of in demand technologies. I am passionate about problem solving, which is what drives me to learn and grow as I move forward in my career. In my three years as a professional Java developer I worked on an enterprise level application which utilized a diverse tech stack to solve complex problems. This experience allowed me to refine my skills at writing quality code that is both simple and understandable while also being scalable and fully testable. In addition to my responsibilities as a developer I have also held the position of Scrum Master on an Agile team within an organization practicing Scaled Agile Framework (SAFe) methodologies.
I am at my best when I am part of an adaptable and collaborative team where team members both learn from as well as teach each other in order to grow and thrive. I am hard working and a very fast learner; I obtained the Oracle Java SE8 Programmer 1 certification less than two months after writing my first line of code. Learning new technologies and broadening my understanding of software are ever ongoing goals for me. Most recently I have been Learning React and Python, in addition to continuing to work with Java and pushing my knowledge of AWS.
Currently, I am between software jobs while living abroad in Australia. I will be returning to the United States eventually, although when that will be is still up in the air. While abroad I am lucky enough to be living in a place that is significantly better off than many others around the world during this ever evolving COVID-19 pandemic. Taking advantage of that fact, I spend most of my time split between personal software projects and enjoying life outdoors in northeast Australia (hiking, running, lots of trips to the beach, and even trying to teach myself to surf!).
I am currently looking for a position on site here on the east coast of Australia.
Backend
Java // Spring // REST // Struts // JSPs // JPA // JDBC // Hibernate // PL/SQL // MySQL // JUnit // Tomcat // WebLogic // AWS // Maven // Gradle
Frontend
JavaScript // TypeScript // AngularJS // React // NodeJS // Grunt // jQuery // JSON // AJAX // XML // HTML5 // CSS3 // Bootstrap
Tools
IntelliJ // Eclipse/Spring Tool Suite // Linux CLI // Git // Subversion // Postman // SQL Developer // CA Agile (Rally) // Microsoft Office
If you are interested in hirirng me, please contact me by email or phone
(found on my resume, available for download above)!


Device
The
device
object describes the device's hardware and software.
Properties
Variable Scope
Since device
is assigned to the window
object, it is implicitly in the global scope.
// These reference the same `device`
var phoneName = window.device.name;
var phoneName = device.name;
Permissions
Android
app/res/xml/plugins.xml
<plugin name="Device" value="org.apache.cordova.Device" />
app/AndroidManifest.xml
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
Bada
manifest.xml
<Privilege>
<Name>SYSTEM_SERVICE</Name>
</Privilege>
BlackBerry WebWorks
www/plugins.xml
<plugin name="Device" value="org.apache.cordova.device.Device" />
www/config.xml
<feature id="blackberry.app" required="true" version="<IP_ADDRESS>" />
<rim:permissions>
<rim:permit>read_device_identifying_information</rim:permit>
</rim:permissions>
iOS
No permissions are required.
webOS
No permissions are required.
Windows Phone
Properties/WPAppManifest.xml
<Capabilities>
<Capability Name="ID_CAP_WEBBROWSERCOMPONENT" />
<Capability Name="ID_CAP_IDENTITY_DEVICE" />
<Capability Name="ID_CAP_IDENTITY_USER" />
</Capabilities>
Reference: Application Manifest for Windows Phone
device.name
Get the device's model name.
var string = device.name;
Description
device.name
returns the name of the device's model or product. This value is set by the device manufacturer and may be different across versions of the same product.
Supported Platforms
- Android
- BlackBerry WebWorks (OS 5.0 and higher)
- iPhone
- Windows Phone 7 ( Mango )
- Bada 1.2 & 2.x
- webOS
Quick Example
// Android: Nexus One returns "Passion" (Nexus One code name)
// Motorola Droid returns "voles"
// BlackBerry: Torch 9800 returns "9800"
// iPhone: All devices returns a name set by iTunes e.g. "Joe's iPhone"
//
var name = device.name;
Full Example
<!DOCTYPE html>

<title>Device Properties Example</title>

Loading device properties...

Android Quirks
- Gets the product name instead of the model name.
- The product name is often the code name given during production.
- e.g. Nexus One returns "Passion", Motorola Droid returns "voles"
iPhone Quirks
- Gets the device's custom name instead of the device model name.
- The custom name is set by the owner in iTunes.
- e.g. "Joe's iPhone"
Windows Phone 7 Quirks
- returns the manufacturer specified device name, for example, the Samsung Focus returns 'SGH-i917'
Bada Quirks
- returns the manufacturer model name. For example 'Samsung Wave S8500'
device.cordova
Get the version of Cordova running on the device.
var string = device.cordova;
Description
device.cordova
returns the version of Cordova running on the device.
Supported Platforms
- Android
- BlackBerry WebWorks (OS 5.0 and higher)
- iPhone
- Windows Phone 7 ( Mango )
- Bada 1.2 & 2.x
Quick Example
var name = device.cordova;
Full Example
<!DOCTYPE html>

<title>Device Properties Example</title>

Loading device properties...

device.platform
Get the device's operating system name.
var string = device.platform;
Supported Platforms
- Android
- BlackBerry WebWorks (OS 5.0 and higher)
- iPhone
- Windows Phone 7 ( Mango )
- Bada 1.2 & 2.x
- webOS
Quick Example
// Depending on the device, a few examples are:
// - "Android"
// - "BlackBerry"
// - "iPhone"
// - "webOS"
// - "WinCE"
var devicePlatform = device.platform;
Full Example
<!DOCTYPE html>

<title>Device Properties Example</title>

Loading device properties...

iPhone Quirks
The iPhone returns iPhone
as the platform. The iPad returns iPad
as the platform. In the simulator they will return iPhone Simulator
and iPad Simulator
respectively. These are inaccurate in all cases because Apple has rebranded the iPhone operating system as iOS
.
BlackBerry Quirks
Devices may return the device platform version instead of the platform name. For example, the Storm2 9550 would return '<IP_ADDRESS>' or similar.
Windows Phone 7 Quirks
Windows Phone 7 devices report platform as 'WinCE'
device.uuid
Get the device's Universally Unique Identifier (UUID).
var string = device.uuid;
Description
The details of how a UUID is generated are determined by the device manufacturer and specific to the device's platform or model.
Supported Platforms
- Android
- BlackBerry WebWorks (OS 5.0 and higher)
- iPhone
- Windows Phone 7 ( Mango )
- Bada 1.2 & 2.x
- webOS
Quick Example
// Android: Returns a random 64-bit integer (as a string, again!)
// The integer is generated on the device's first boot
//
// BlackBerry: Returns the PIN number of the device
// This is a nine-digit unique integer (as a string, though!)
//
// iPhone: (Paraphrased from the UIDevice Class documentation)
// Returns a string of hash values created from multiple hardware identifies.
// It is guaranteed to be unique for every device and cannot be tied
// to the user account.
// Windows Phone 7 : Returns a hash of device+current user,
// if the user is not defined, a guid is generated and will persist until the app is uninstalled
//
// webOS: returns the device NDUID
var deviceID = device.uuid;
Full Example
<!DOCTYPE html>

<title>Device Properties Example</title>

Loading device properties...

iOS Quirk
The uuid for iOS is not unique for a device, but is unique per application per install. This will change if you delete the app and re-install, and possibly also when you upgrade your iOS version, or even upgrade your app per version (as we've seen in iOS 5.1). Not a reliable value.
Windows Phone 7 Quirks
The uuid for Windows Phone 7 requires the permission IDCAPIDENTITY_DEVICE. Microsoft will likely be deprecating this property in the near future. If the capablility is not available, the application generates a persistent guid, that will be maintained for the install-lifetime of the application on the device.
device.version
Get the operating system version.
var string = device.version;
Supported Platforms
- Android 2.1+
- BlackBerry WebWorks (OS 5.0 and higher)
- iPhone
- Windows Phone 7 ( Mango )
- Bada 1.2 & 2.x
- webOS
Quick Example
// Android: Froyo OS would return "2.2"
// Eclair OS would return "2.1", "2.0.1", or "2.0"
// Version can also return update level "2.1-update1"
//
// BlackBerry: Torch 9800 using OS 6.0 would return "<IP_ADDRESS>0"
//
// iPhone: iOS 3.2 returns "3.2"
//
// Windows Phone 7: returns current OS version number, ex. on Mango returns 7.10.7720
// webOS: webOS 2.2.4 return 2.2.4
var deviceVersion = device.version;
Full Example
<!DOCTYPE html>

<title>Device Properties Example</title>

Loading device properties...


WITNESS LIST Subcommittee on Base Realignment and Closure Committee (Subcommittee on Base Realignment and Closure) September 27, 2004 - 1:30P Preparation for the upcoming Base Realignment and Closure round ON: Bushell, Gary Consultant (South Texas Military Task Force), Corpus Chrisit, TX Cazalas, H.C. Commissioner (Nueces County and Nueces Navy League), Corpus Christi, TX Ehrie, William Chairman (Texas Military Preparedness Commission), Abilene, TX Gonzales, Joe A. President (AFGE-L2124 Union at CCAD), Corpus Christi, TX Gutierrez, Rudy Vice President (American Federation of Government Employees), Corpus Christi, TX Hawley, Judy (South Texas Military Facilities Task Force), Corpus Christi, TX Longoria, Betty Jean Commissioner (Nueces County), Corpus Christi, TX Messbarger, Dick Executive Director (Kingsville Economic Development Council), Corpus Christi, TX Miller, Josephine Executive Director (San Patricio County Economic Development Corporation), Gregory, TX Nardini, Fred P. Commissioner (San Patricio County), Portland, TX Neal, Samuel L. Chairman (South Texas Military Facilites Task Force), Corpus Christi, TX Rhea, Mike City Manager (City of Ingleside), Ingleside, TX Simpson, Terry County Judge (San Patricio County and North Bay Task Force), Sinton, TX Watson, Thomas President (National Association of Independent Labor Local #3), Portland, TX


Open Angel Arena 4.8.0 Update + patch 7.2.1
General Changes
Heroes no longer gain 25% more benefit from their primary attributes (affects attributes from both items and the hero).
All heroes' primary attribute growth values increased by 15%. (except Sohei and Chatterjee)
Health per strength increased from 18 to 20.
Item Changes
Animal Courier:
Flying movement speed increased from 460 to
470
.
Aeon Disk:
Active status resistance increased from 50% to
75%
.
Battle Fury:
Damage bonus against non-hero units changed from 20% of base attack damage to flat 24.
Bloodstone:
Bloodpact changed from 60% of current mana at all levels to
30
/
40
/
50
/60/
70
% of max mana.
Bloodthorn:
Cooldown at all levels reduced from 18 to
15
seconds.
Boots of Travel:
Boots of Travel and their upgrades no longer share cooldown with teleport scroll.
Drum of Endurance:
Passive bonus movement speed changed from a 6/10/15/20/25% movement speed aura to +20/25/30/35/40 movement speed to yourself only.
Ethereal Blade:
Enemy debuff duration increased from 3 to
4
seconds (matching duration when cast on allies).
Eul's Scepter of Divinity:
Movement speed bonus changed from +6/12/18/24/30% percentage to +20/22/28/34/40 flat.
Holy Locket:
Now uses Energy Booster instead of a Void Stone.
Now provides +325/800/1350/1900/2550 mana.
Manta Style:
Movement speed bonus reduced from +25/30/35/40/45 to +
20
/
25
/
30
/
35
/
40
.
Mask of Madness:
Lifesteal increased from 15% to
20%
.
Meteor Hammer:
Radius increased from 300 to
315
.
Necronomicon:
Level 1 and 2 Last Will damage increased from 550/675 to
600
/
700
.
Nullifier:
Duration increased from 5 to
6
seconds.
Phase Boots:
Recipe changed from Gloves of Haste to Blades of Attack.
Armor bonus increased from 5 to
6
.
Now gives +18 damage on melee (and +12 on range) instead of +20 attack speed.
Melee active speed increased from 20% to
22%
.
Greater Phase Boots:
No longer gives bonus attack speed.
Armor bonus increased from 5/7/9/11 to
7
/
9
/
11
/
13
.
Damage bonus for melee heroes unchanged: +25/60/95/130.
Damage bonus for ranged heroes decreased from 25/60/95/130 to
20
/
50
/
85
/
120
.
Number of split attacks decreased from 5/6/7/8 to
4
/
5
/
6
/
7
.
Power Treads:
Recipe changed from Blades of Attack to Gloves of Haste.
Attribute bonus reduced from 14 to
10
.
Now gives +20 attack speed instead of +12 damage.
Greater Power Treads:
No longer gives bonus damage.
Bonus attack speed increased from 20/25/30/35 to
25
/
30
/
35
/
40
.
Solar Crest:
Movement speed bonus changed from +6/8/10/12/14% percentage to +20/22/28/34/40 flat.
Spirit Vessel:
Damage as a percentage of current health increased from 4.5% to
5%
.
Movement speed bonus changed from +6% percentage to +20/22/28/34/40 flat.
Tranquil Boots:
Active form movement speed increased from 24% to
26%
.
Disabled form movement speed reduced from 20% to
18%
.
Greater Tranquil Boots active form movement speed unchanged: 28/33/38/43%.
Greater Tranquil Boots disabled form movement speed unchanged: 25/30/35/40%.
Vladmir's Offering:
No longer provides bonus hp regen.
No longer provides bonus stats.
Hero Changes
Abaddon:
Curse of Avernus curse duration increased from 4 to
4.5
seconds.
Aphotic Shield mana cost reduced from 115 to
100
/
105
/
110
/115/
130
/
155
.
Alchemist:
Base movement speed increased by 10.
Base agility increased from 16 to
22
.
Chemical Rage base attack time improved from 1.3/1.15/1.0/0.9/0.8 to
1.2
/
1.1
/1.0/0.9/0.8
Level 10 Talent reduced from -8s Unstable Concoction to -7s.
Level 20 Talent Concoction talent now adds the damage to the max instead of the base.
Ancient Apparition:
Chilling Touch damage increased from 50/85/120/155/315/600 to 50/
90
/
130
/
170
/315/600.
Ice Vortex mana cost reduced from 65/80/95/110/220/440 to
50
/
70
/
90
/110/220/440
Level 25 Talent increased from +4% Ice Blast Kill Threshold to
+5%
.
Arc Warden:
Tempest Double duration increased from 14/16/18/21/24 to
16
/
18
/
20
/
22
/24 seconds.
Level 10 Talent increased from +25 Attack Speed to
+30
.
Bane:
Enfeeble attack speed slow increased from 40/60/80/100/200/400 to
50
/
75
/
100
/
125
/
250
/400.
Enfeeble mana cost rescaled from 70/90/110/130/260/500 to
50
/
75
/
100
/
125
/
270
/500.
Level 10 Talent increased from +6 Armor to
+7
.
Fiend's Grip duration increased from 5 to
6
seconds.
Batrider:
Firefly now grants a 4/7/10/13/26/50% movement speed bonus.
Firefly duration reduced from 18 to
15
seconds.
Firefly cooldown reduced from 40 to
34
seconds.
Beastmaster:
Inner Beast attack speed reduced from 15/25/35/45/65/105 to
10
/
20
/
30
/
40
/65/105.
Hawk health reduced from 300/450/600/750/2500/5000 to
150
/
200
/
250
/
300
/2500/5000.
Level 15 Talent changed from +40 Boar Damage to +65 Wild Axes Damage.
Level 20 Talent changed from +80 Wild Axes Damage to +50 Boar Damage.
Level 25 Talent reduced from +30 Inner Beast Attack Speed to
+25
.
Bloodseeker:
Base movement speed increased by 5.
Bounty Hunter:
Shuriken Toss cooldown reduced from 10 to
9
seconds.
Track critical strike damage increased from 140/160/180/200/220% to 140/
170
/
200
/
220
/
240
%.
Brewmaster:
Drunken Brawler critical strike reduced from 170/200/230/260/300/340% to
140
/
180
/
220
/260/300/340%.
Cinder Brew cooldown reduced from 20/18/16/14/14/14 to 20/18/16/14/
13
/
12
seconds.
Cinder Brew duration reduced from 7 to
5
seconds.
Cinder Brew duration is refreshed on ignition.
Cinder Brew ignite DPS increased from 20/25/30/35/150/300 to 20/
30
/
40
/
50
/150/300.
Level 10 Talent reduced from +20 Damage to
+15
.
Bristleback:
Viscous Nasal Goo mana cost rescaled from 25 to
12
/
16
/
20
/
24
/
48
/
96
.
Broodmother:
Level 10 Talent increased from +100 Spawn Spiderlings Damage to
+175
.
Centaur Warrunner:
Retaliate no longer gains charges while it is active.
Chaos Knight:
Chaos Strike cooldown reduced from 7/6/5/4/4/4 to
4
seconds at all levels.
Chaos Strike lifesteal reduced from 50/55/60/65/95/115% to
40
/
50
/
60
/
70
/
85
/
110
%.
Chaos Strike max damage increased from 160/190/220/250/300/350% to 160/
195
/
230
/
265
/300/350%.
Reality Rift slow duration increased from 2 to
3
seconds.
Reality Rift slow reduced from 15/25/35/45/55/65% to
10
/
20
/
30
/
40
/
50
/
60
%.
Chen:
Divine Favor bonus damage increased from 10/20/40/80/160/320 to
12
/
24
/40/80/160/320.
Divine Favor now provides double bonus damage on non-hero units.
Divine Favor duration increased from 12 to
14
seconds.
Divine Favor mana cost rescaled from 110 to
70
/
80
/
90
/
100
/110/
120
.
Hand of God heal increased from 250/400/550/1500/2500 to
300
/
450
/
600
/
1550
/
2550
.
Level 15 Talent reduced from -10s Divine Favor Cooldown to
-7s
.
Level 25 Talent reduced from +400 Hand of God Heal to
+350
.
Level 25 Talent increased from +4 Holy Persuasion Max Units to
+5
.
Clinkz:
Level 15 Talent changed from +20% Evasion to +15 Strength.
Clockwerk:
Battery Assault cast point removed.
Rocket Flare mana cost rescaled from 50 to
35
/
40
/
45
/50/
55
/
60
.
Level 20 Talent changed from +20% Magic Resistance to Rocket Flare True Sight.
Level 25 Talent changed from Rocket Flare True Sight to +50% Magic Resistance.
Crystal Maiden:
Arcane Aura allied mana regen rescaled from 1.2/1.4/1.6/1.8/4/6.2 to 1/
1.5
/
2
/
2.5
/
4
/
6.5
Arcane Aura self mana regen rescaled from 2.8/3.6/4.4/5.2/9.4/14.6 to 2.5/
4.5
/
6.5
/
8.5
/
10.5
/
15
.
Freezing Field now grants you 10 bonus armor while channeling.
Freezing Field damage increased from 105/170/250/600/950 to
125
/
200
/
275
/600/950.
Dark Willow:
Bramble Maze mana cost reduced from 140/150/160/170/220/270 to
100
/
120
/
140
/
160
/
200
/
250
.
Bramble Maze cooldown reduced from 34/31/28/25/25/25 to
25
seconds at all levels.
Dazzle:
Poison Touch mana cost increased from 95/110/125/140/180/280 to
110
/
120
/
130
/140/180/280.
Shadow Wave cast range reduced from 900 to
800
.
Death Prophet:
Base damage increased by 3.
Disruptor:
Base armor increased by 1.
Dragon Knight:
Base movement speed increased by 10.
Dragon Blood health regen increased from 6/8/10/12/24/36 to 6/8/
12
/
16
/24/36.
Elder Dragon Form frost attack slow increased from -20 to
-30
.
Level 20 Talent changed from 2x Dragon Blood to +25 Strength.
Level 25 Talent changed from +40 Strength to 2x Dragon Blood.
Drow Ranger:
Level 15 Talent changed from +25 Attack Speed to
+10 Agility
.
Earth Spirit:
Boulder Smash slow reduced from 80% to
60%
.
Level 15 Talent reduced from +200 Rolling Boulder Damage to
+150
.
Earthshaker:
Fissure mana cost reduced from 125/140/155/170/240/320 to
110
/
130
/
150
/170/240/320.
Elder Titan:
Level 10 Talent reduced from +25 Movement Speed to
+20
.
Ember Spirit:
Base damage increased by 3.
Sleight of Fist cooldown reduced from 30/22/14/6/6/6 to
18
/
14
/
10
/6/6/6 seconds.
Enchantress:
Enchant cooldown reduced from 55/40/25/10/10/10 to
22
/
18
/
14
/10/10/10 seconds.
Enchant creep duration reduced from 50/60/70/80/120/240 to
26
/
44
/
62
/80/120/240 seconds.
Enchant mana cost rescaled from 65 to
40
/
50
/
60
/
70
/
80
/
90
.
Enigma:
Midnight Pulse mana cost rescaled from 75/95/115/135/200/280 to
50
/
80
/
110
/
140
/200/280.
Black Hole max channel time (duration) increased from 4 to
4.5
seconds.
Faceless Void:
Time Dilation AoE increased from 725 to
775
.
Level 10 Talent increased from +8 Strength to
+10
.
Level 15 Talent changed from +300 Health to -1s Time Walk Cooldown.
Grimstroke:
Phantom's Embrace rend damage reduced from 120/200/280/360/760/1160 to
75
/
150
/
225
/
300
/
750
/
1150
.
Ink Swell mana cost increased from 90/100/110/120/170/220 to
120
/
130
/
140
/
150
/
180
/
280
.
Ink Swell movement speed rescaled from 18/18/18/18/28/38% to
12
/
14
/
16
/18/28/38%.
Gyrocopter:
Base strength increased from 19 to
22
.
Huskar:
Berserker's Blood max attack speed reduced from 220/260/300/340/380/420 to
160
/
220
/
280
/340/380/420.
Life Break damage and hp cost reduced from 34/39/44/47/50% to
32
/
38
/44/47/50%.
Level 15 Talent reduced from +15 Burning Spears DPS to
+10
.
Invoker:
Base damage increased by 3.
Level 10 Talent changed from +1.25s Tornado Lift Time to -30s Ghost Walk Cooldown.
Io:
Tether now transfers health and mana even when Io is at max hp/mp.
Overcharge now has an 18 second cooldown and an 8 second duration. No longer has a 2 second toggle.
Overcharge now costs 40/60/80/100/200/400 mana to cast. No longer cost 6% of health and mana per second.
Overcharge attack speed bonus increased from 40/50/60/70/120/170 to
50
/
80
/
110
/
140
/
170
/
200
.
Overcharge damage reduction increased from 5/10/15/20/25/35% to
15
/
20
/
25
/
30
/
35
/
40
%.
Relocate is now cast delay again instead of channeling (being interrupted, silenced, rooted, etc. will cancel the ability).
Relocate delay increased from 2.7/2.35/2/1.5/1 to
3.5
/
3.25
/
3
/
2
/
1.5
seconds.
Relocate cooldown reduced from 130/110/90/90/90 to
90
/
75
/
60
/
60
/
60
seconds.
Level 25 Talent changed from -60s Relocate Cooldown to
-30s
.
Jakiro:
Level 10 Talent changed from +10 Intelligence to +300 Attack Range.
Level 15 Talent changed from +300 Attack Range to +20 Intelligence.
Juggernaut:
Base armor reduced by 1.
Healing Ward movement speed reduced from 420 to
400
.
Omnislash no longer allows you to teleport while using it.
Level 15 Talent changed from +1s Blade Fury to +50 Blade Fury Movement Speed.
Keeper of the Light:
Level 10 Talent changed from 8% Spell Lifesteal to
+250 HP
.
Level 15 Talent changed from +200 HP to
+1 Will-O-Wisp Health Count
.
Kunkka:
Level 25 Talent changed from -1.5s Tidebringer Cooldown to +60% Tidebringer Cleave.
Legion Commander:
Base movement speed increased by 15.
Level 20 Talent reduced from +40 Movement Speed to
+35
.
Level 25 Talent changed from -10s Press The Attack Cooldown to 350 AoE Press The Attack.
Leshrac:
Diabolic Edict increased from 9/18/27/36/81/126 to
11
/
22
/
33
/
44
/81/126.
Lich:
Frost Shield slow rescaled from 35% to
20
/
25
/
30
/35/
40
/
45
%.
Chain Frost damage reduced from 300/400/500/900/1400 to
250
/
375
/500/900/1400.
Lifestealer:
Base movement speed increased by 15.
Base armor increased by 2.
Level 15 Talent reduced from +30 Movement Speed to
+25
.
Lina:
Base damage increased by 3
Lion:
Level 10 Talent increased from +75 Cast Range to
+100
.
Lone Druid:
Spirit Bear movement speed increased from 340/355/370/385/400/415 to 340/
360
/
380
/
400
/
410
/415.
Level 20 Talent changed from -0.3 Spirit Bear Attack Time to 0 Entangle Cooldown.
Level 25 Talent changed from 0 Entangle Cooldown to -0.5s Spirit Bear Attack Time.
Luna:
Level 10 Talent increased from +200 Cast Range to +300.
Lycan:
Base movement speed increased by 15.
Level 1-4 Wolves armor reduced from 1 to 0.
Level 1-4 Wolves magic resistance reduced from 80% to 70%.
Level 1-4 Wolves HP increased from 230/260/290/320 to 300/350/400/450.
Fixed level 5 and 6 Wolves not being updated.
Howl bonus HP regen increased from 4/6/8/10/15/20 to 4/
8
/
12
/
16
/
23
/
33
.
Medusa:
Level 10 Talent reduced from +20 Damage to +15.
Level 15 Talent reduced from +35% Mystic Snake Mana Steal to
+30%
.
Level 20 Talent changed from +700 Mana to -4s Mystic Snake Cooldown.
Level 25 Talent changed from +7 Split Shot Targets to +1000 Mana.
Mirana:
Sacred Arrow movement speed increased from 857 to 950.
Morphling:
Strength gain increased from 2.3 to
2.6
Level 10 Talent increased from +15s Morph Duration to
+20s
.
Naga Siren:
Base movement speed increased by 5.
Mirror Image duration from 24 to
26
seconds.
Mirror Image damage taken rescaled from 475/450/425/400/300/200% to 400% at all levels.
Level 20 Talent increased from -5s Ensnare Cooldown to
-7s
.
Nature's Prophet:
Using tango on a sprout tree will 2x regen (like eating a branch tree).
Level 20 Talent changed from -4s Sprout Cooldown to +25% Cooldown Reduction.
Necrophos:
Level 15 Talent increased from +20% Ghost Shroud Slow to +30%.
Night Stalker:
Hunter in the Night bonus movement speed from 20/25/30/35/40/50% to 22/28/34/40/45/50%.
Dark Ascencion cooldown increased from 80 to
90
seconds.
Nyx Assassin:
Base movement speed increased by 5.
Strength gain increased from 2.3 to
2.5
Level 10 Talent increased from +6% Spell Amp to
+8%
.
Ogre Magi:
Fireblast cooldown decreased by 1 second at all levels.
Multicast 2x chance increased from 60% to 70%.
Omniknight:
Heavenly Grace status resistance set to 50% at all levels.
Heavenly Grace now provides bonus strength as well: 7/14/21/28/35/48
Outworld Devourer:
Sanity's Eclipse INT multiplier from 9/10/11/12/13 to 8/9/10/11/12.
Level 15 Talent reduced from +30 Movement Speed to +25.
Pangolier:
Base damage increased by 4.
Level 10 Talent changed from +20 Movement Speed to +300 Swashbuckle Slash Range.
Phantom Assassin:
Rearranged Level 15 Talents - +25% Cleave vs +15% Lifesteal.
Rearranged Level 20 Talents - +20% Blur Evasion vs -4 Armor Corruption.
Rearranged Level 25 Talents - +5% Coup de Grace vs Triple Strike Stifling Dagger.
Phoenix:
Phoenix can no longer move forward with Sunray while rooted.
Pudge:
Base damage increased by 6.
Queen of Pain:
Shadow Strike damage per tick increased from 30/45/60/75/150/375 to 30/50/70/90/150/375.
Razor:
Level 10 Talent increased from +200 Health to +225.
Riki:
Base damage increased by 4.
Base movement speed increased by 5.
Level 20 Talent increased from +0.2 Backstab Multiplier to +0.3
Rubick:
Telekinesis Lift duration reduced from 1/1.4/1.8/2.2/2.4/2.5 to 0.8/1.2/1.6/2/2.2/2.4 seconds.
Level 15 Talent increased from -45 Fade Bolt Hero Attack to -60.
Sand King:
Sand Storm radius increased from 350/450/550/650/700/750 to 425/500/575/650/700/750.
Shadow Demon:
Soul Catcher mana cost rescaled from 110 to 50/70/90/110/220/330.
Shadow Poison mana cost rescaled from 50 to 35/40/45/50/55/60.
Shadow Fiend:
Presence of the Dark Lord armor reduction increased from 3/4/5/6/10/16 to 4/5/6/7/10/17.
Level 25 Talent decreased from -16 Presence Aura to -15.
Shadow Shaman:
Level 20 Talent reduced from +3s Shackles Duration to +2.5s
Silencer:
Last Word cooldown reduced from 28/22/16/10/10/10 to 22/18/14/10/10/10 seconds.
Level 10 Talent increased from +5 Armor to +6.
Skywrath Mage:
Mystic Flare now deals damage to creeps if no heroes are around.
Slardar:
Level 25 Talent reduced from +1.5s Slithereen Crush Stun to +1.25s.
Slark:
Pounce no longer does damage.
Sniper:
Headshot procs now apply a back knockback of 10.
Level 15 Talent changed from +35 Shrapnel DPS to +15% Shrapnel Slow.
Spectre:
Strength gain increased from 2.3 to 2.5
Spectral Dagger movement speed slow/bonus increased from 8/12/16/20/20/20% to 10/14/18/22/22/22%.
Storm Spirit:
Electric Vortex mana cost rescaled from 85/85/85/85/170/340 to 60/70/80/90/190/340.
Level 10 Talent changed from +20 Damage to +30 Overload Damage
Sven:
Base movement speed increased by 15.
Storm Hammer cooldown rescaled from 13 to 16/15/14/13/13/13 seconds.
Warcry shield health changed from 110/220/330/440/880/1320 to 80/110/140/170/230/300 + 1/1.5/2/2.5/2.6/2.7x your strength.
Techies:
Remote Mines mana cost decreased from 200/240/300/600/900 to 120/180/240/500/800.
Templar Assassin:
Meld debuff is now applied before the attack damage is reduced by armor.
Level 10 Talent changed from +3 Psionic Traps to +15% Evasion.
Level 15 Talent changed from +7 Armor to +25 Movement Speed.
Terrorblade:
Strength reduced from 16 + 1.7 to 15 + 1.5
Tidehunter:
Anchor Smash damage reduction decreased from 45/50/55/60/60/60% to 30/40/50/60/60/60%.
Timbersaw:
Whirling Death damage per tree cut increased from 10/15/20/25/50/100 to 12/18/24/30/50/100.
Reactive Armor bonus armor per stack decreased from 1.3/1.4/1.5/1.6/1.8/2.2 to 1/1.1/1.2/1.3/1.5/2.
Reactive Armor bonus HP regen per stack decreased from 1/1.2/1.4/1.6/1.9/2.2 to 1/1.1/1.2/1.3/1.5/2.
Reactive Armor max number of stacks increased from 5/10/15/20/25/35 to 6/12/18/24/30/36.
Level 20 Talent increased from +10% Cooldown Reduction to +15%.
Tiny:
Avalanche cooldown increased from 23/20/17/14/14/14 to 26/22/18/14/14/14 seconds.
Avalanche radius rescaled from 400 to 325/350/375/400/425/450.
Level 15 Talent reduced from +125 Avalanche Damage to +100.
Level 15 Talent increased from +350 Health to +400.
Treant Protector:
Living Armor damage block increased from 20/40/60/80/230/380 to 25/50/75/100/250/400.
Overgrowth duration increased from 3/3.75/4.5/5/5.5 to 3.25/4/4.75/5.25/5.75
Aghanim Scepter now causes Treant's Overgrowth to deal damage instead of only Enchanted Trees.
Level 20 Talent increased from +40 Leech Seed Damage/Heal to +50.
Troll Warlord:
Level 15 Talent increased from +75 Whirling Axes Damage to +90.
Level 20 Talent increased from +20% Evasion to +25%.
Tusk:
Tag Team cooldown increased from 15 to 24/21/18/15/15/15 seconds.
Tag Team mana cost increased from 40/50/60/70/100/150 to 70/70/70/70/100/150.
Tag Team slow duration decreased from 0.5 to 0.4 seconds.
Underlord:
Base movement speed increased by 5.
Undying:
Level 15 Talent changed from Tombstone On Death to +30 Tombstone Zombie Damage.
Level 20 Talent changed from +30 Tombstone Zombie Damage to Tombstone On Death.
Ursa:
Base movement speed increased by 15.
Fury Swipes damage per stack decreased from 10/16/22/28/50/80 to 7/14/21/28/50/80.
Vengeful Spirit:
Level 20 Talent increased from -5s Magic Missle Cooldown to -6s.
Venomancer:
Strength gain increased from 1.9 to 2.1
Viper:
Nethertoxin damage increased from 20/35/50/65/100/150 to 30/45/60/75/100/150.
Nethertoxin radius increased from 350 to 380.
Visage:
Level 10 Talent reduced from +125 Cast Range to +100.
Level 20 Talent reduced from +60 Familiars Movement Speed to +50.
Level 20 Talent increased from +15 Soul Assumption Damage Per Charge to +20.
Warlock:
Base strength increased by 2.
Chaotic Offering: Golem damage increased from 75/125/175/375/600 to 100/150/200/400/700.
Chaotic Offering: Aghanim Scepter Golem damage increased from 56/94/131/280/450 to 75/110/150/320/510.
Chaotic Offering: Golem 1 and 2 attack backswing reduced from 0.74 to 0.57
Weaver:
Level 10 Talent changed from +7 Strength to +75 Shukuchi Damage.
Level 15 Talent changed from +75 Shukuchi Damage to +14 Strength.
Windranger:
Level 15 Talent increased from +100 Attack Range to +125.
Level 15 Talent increased from +100 Powershot Damage to +125.
Winter Wyvern:
Cold Embrace mana cost rescaled from 75 to 50 60 70 80 90 100.
Cold Embrace base health regen increased from 15/15/15/15/30/50 to 14/18/22/26/38/50.
Witch Doctor:
Maledict cooldown reduced from 50/40/30/20/20/19 to 30/26/22/18/18/18 seconds.
Wraith King:
Base movement speed increased by 15.
Zeus:
Reworked Static Field. Now affects enemies directly affected by your abilities. No longer has a range.
Previous
Home
Next


There are four environments that put LaTeX in math mode:
All four of these environments are typeset in math mode, using a math italic font and LaTeX ideas about spacing in math mode. (See also math fonts and styles.)
The math environment is for formulas that appear right in the text. The displaymath, eqnarray, and equation environments are for formulas that apppear on their own line(s). The math environment can be used in both paragraph and LR mode, but displaymath, eqnarray, and equation environments can be used only in paragraph mode.
The math environment may be specified, as with all environments, by
\begin{math} math equation \end{math}
However, it is used so often that it has two equivalent shorter forms:
\( math equation \)
or just
$ math equation $
In LaTeX2e one can also use
\ensuremath{math equation}
For example, Subscripts and superscripts can only be used in math mode. To include these in running text one could use:
The formula for water is H$_2$O. If the hypotenuse is $c$, then $c^2=a^2+b^2$.
Note that it is standard to use math mode for letters, such as the the $c$ above, which are math variables.
Back to the Table of Contents


Use virtual-host to define on which entrypoint your API can be reached depending on host.
Host
Listening host
{{ hostInput.value ? hostInput.value + '.' + domain : domain }}
{{ element.controls.hostDomain.value }}Host which must be set into the HTTP request to access this entrypoint.Listening host is required.Listening host is not valid (must end with one of restriction domain).
Path
Listening PathPath where API is exposed, must start with a '/' and must contain any letter, capitalize letter, number, dash or
underscore.Listening path is required.Listening path is not valid (must start with a '/' and must contain any letter, capitalize letter, number, dash or
underscore).
Override
Override entrypoint
Useful to override entrypoint with the virtual host on the portal.


exit
Syntax
An exitStatement is one of:
| |
(a) |
exit when trueFalseExpn |
| |
(b) |
exit |
Description
An exit statement is used to stop the execution of a loop or for statement. Form (a) is the most common. Here, the true/false expression is evaluated. If it is true, the loop is terminated and execution jumps down and continues just beyond end loop or end for. If it is false, the loop keeps on repeating. Form (b) always causes the loop to terminate. This form is almost always used inside another conditional statement such as if.
Example
Input names until finding Jones.
var name : string
loop
get name
exit when name = "Jones"
end loop
Details
Exit statements must occur only inside loop or for statements. An exit takes you out of the closest surrounding loop or for. The only other ways to terminate a loop or for is by return (in a procedure or in the main program, in which case the entire procedure or main program is terminated) or by result (in a function, in which case the entire function is terminated and a result value must be supplied).
The form "exit when trueFalseExpn" is equivalent to "if trueFalseExpn then exit end if".


|
nanocad
|
#include <ConfigViz.h>
Public Member Functions | |
| ConfigViz (int argc, const char *argv[]) | |
| virtual | ~ConfigViz () |
| Public Member Functions inherited from Config | |
| Config (int argc, const char *argv[]) | |
Public Attributes | |
| const char * | viz_path |
| int | viz_last |
| Public Attributes inherited from Config | |
| char * | win_name |
| int | win_w |
| int | win_h |
| int | win_off_x |
| int | win_off_y |
| bool | win_fullscreen |
| bool | win_ortho |
| float | win_eye [3] |
| float | win_view [3] |
| float | win_up [3] |
| float | win_fov_y |
| float | win_near_z |
| float | win_far_z |
| float | win_perspective_fudge_factor |
| bool | win_mouse_motion_enabled |
| int | win_batch_cnt |
| int | win_batch_geom_cnt |
| int | win_batch_vertex_cnt |
| int | win_batch_triangle_cnt |
| bool | win_capture_enabled |
| int | win_overlay_text_color |
| int | win_overlay_text_height |
| int | win_overlay_text_width |
| float | win_overlay_text_line_width |
| float | win_overlay_text_scale_factor |
| void * | win_overlay_text_font |
| bool | win_view_print |
| int | texid_background |
| int | texid_unseen |
| ConfigViz::ConfigViz | ( | int | argc, |
| const char * | argv[] | ||
| ) |
|
virtual |
| int ConfigViz::viz_last |
| const char* ConfigViz::viz_path |


This is a demo consuming the Wikimedia event stream, allowing analysis of recent changes on Wikimedia properties. You can interact with the charts to filter dynamically. Charts are updated with new events as they are provided by the API. Click on the "Clear all filters" link to remove all filters you have applied.


Dashboard
Manage Users
User Group
Domain
User Management
Manage Users
Manage Users
Total Users:
Add New User
User
×
First Name
Last Name
Email
Mobile
include country code with + symbol
Password
Role
User
Developer
Domain Admin
Delete User
×
Are you sure want to delete
user
?
Login As -
×
Email ID
Enter Admin Password


I am a Machine Learning, Deep Learning and Full Stack Engineer. I love learning new skills to create an impact on the society.
I started learning to code when I was 14 years old because I wanted to host my domain name in the World Wide Web to portray my unique identity infront of the world. Over time, I have gained a wealth of experience designing and developing mobile and web applications.
This was a quite hot topic of discussion from my school days.In my 1st semester of graduation my brother introduced me to the real world of Machine Learning and I was totally shocked when I was finally able to design models which could predict with optimum accuracy. Over time I have gained experience workings with various datasets and solving real life problems.


https://github.com/laramies/theHarvester
http://www.edge-security.com/theharvester.php
The objective of this program is to gather emails, subdomains, hosts, employee names, open ports and banners from different public sources like search engines, PGP key servers and SHODAN computer database.
This tool is intended to help Penetration testers in the early stages of the penetration test in order to understand the customer footprint on the Internet. It is also useful for anyone that wants to know what an attacker can see about their organization.
Passive discovery:
google: google search engine - www.google.com
google-profiles: google search engine, specific search for Google profiles
bing: microsoft search engine - www.bing.com
bingapi: microsoft search engine, through the API (you need to add your Key in the discovery/bingsearch.py file)
pgp: pgp key server - pgp.rediris.es
linkedin: google search engine, specific search for Linkedin users
shodan: Shodan Computer search engine, will search for ports and banner of the discovered hosts (http://www.shodanhq.com/)
vhost: Bing virtual hosts search
Active discovery:
DNS brute force: this plugin will run a dictionary brute force enumeration
DNS reverse lookup: reverse lookup of ip´s discovered in order to find hostnames
DNS TDL expansion: TLD dictionary brute force enumeration
*******************************************************************
* *
* | |_| |__ ___ /\ /\__ _ _ ____ __ ______| |_ ___ _ __ *
* | __| '_ \ / _ \ / /_/ / _` | '__\ \ / / _ \ / __ | __ / _ \ '__| *
* | |_| | | | __/ / __ / (_| | | \ V / __/ \__ \ | | __/ | *
* \__|_| |_|\___| \/ /_/ \__,_|_| \_/ \___| |___/ \__\ ___| _| *
* *
* TheHarvester Ver. 2.7.1 *
* Coded by Christian Martorella *
* Edge-Security Research *
*<EMAIL_ADDRESS>*
*******************************************************************
What is this?
-------------
theHarvester is a tool for gathering e-mail accounts, subdomain names, virtual
hosts, open ports/ banners, and employee names from different public sources
(search engines, pgp key servers).
Is a really simple tool, but very effective for the early stages of a penetration
test or just to know the visibility of your company in the Internet.
The sources are:
Passive:
--------
-google: google search engine - www.google.com
-googleCSE: google custom search engine
-google-profiles: google search engine, specific search for Google profiles
-bing: microsoft search engine - www.bing.com
-bingapi: microsoft search engine, through the API (you need to add your Key in
the discovery/bingsearch.py file)
-dogpile: Dogpile search engine - www.dogpile.com
-pgp: pgp key server - mit.edu
-linkedin: google search engine, specific search for Linkedin users
-vhost: Bing virtual hosts search
-twitter: twitter accounts related to an specific domain (uses google search)
-googleplus: users that works in target company (uses google search)
-yahoo: Yahoo search engine
-baidu: Baidu search engine
-shodan: Shodan Computer search engine, will search for ports and banner of the
discovered hosts (http://www.shodanhq.com/)
Active:
-------
-DNS brute force: this plugin will run a dictionary brute force enumeration
-DNS reverse lookup: reverse lookup of ip´s discovered in order to find hostnames
-DNS TDL expansion: TLD dictionary brute force enumeration
Modules that need API keys to work:
----------------------------------
-googleCSE: You need to create a Google Custom Search engine(CSE), and add your
Google API key and CSE ID in the plugin (discovery/googleCSE.py)
-shodan: You need to provide your API key in discovery/shodansearch.py
Dependencies:
------------
-Requests library (http://docs.python-requests.org/en/latest/)
`pip install requests`
Changelog in 2.7.1:
------------------
-Added Virustotal, Netcraft, Crt.sh engines
Changelog in 2.7:
------------------
-Fixed email parser for cleaner results. Thanks Th4nat0s
-Improved XML exporting file format
-Removed 123people
-Fixed Bing cookies order
Changelog in 2.6:
------------------
-Added Yahoo and Baidu search engines. Thanks to Tatanus
-Added check for the existence of Requests library.
-Fixed email regex to provide cleaner results. Thanks to Peter McAlpine
Changelog in 2.5:
-----------------
-Replaced httplib by Requests http library (for Google related)
-Fixed Google searches
Comments? Bugs? Requests?
------------------------
<EMAIL_ADDRESS>Updates:
--------
https://github.com/laramies/theHarvester
Thanks:
-------
John Matherly - SHODAN project
Lee Baird for suggestions and bugs reporting


Nile West []. virus {border-style px;} #ffffff;} flaccid paralysis acute patient patients myelitis WNV fever symptoms fever, case clinical px; {font-family GBS blood encephalitis, font-size motor present viral associated diagnosis double; neurological patient’s presented CSF border-color border-width continued day disease eradicated exam meningitis meningitis, negative presenting published solid; {font-style {font-weight Cureus admission, and/or anterior bold care cases complications courier; data demonstrated diseases em; encephalitis enterovirus findings increased nervous neuroinvasive paralysis, poliomyelitis prognosis pt;} recovery seen subsequently suspicion syndrome usually


The WMG Writer's Group is an elite network of talented and experienced communicators. We make your search for a writer simple by drawing from our pool of professional writers and subject matter experts.
Find Out MoreThe WMG Writer's Group is an elite network of talented and experienced communicators. We make your search for a writer simple by drawing from our pool of professional writers and subject matter experts. Get in touch with us to learn more about how you can tap the talent and expertise of the WMG Writer's Group.
Get Started!We're career writers: regularly published journalists and authors who know how to get our writing published.
Whether it's a blog post or an op-ed, we can write it professionally and quickly.
We've written for publications like The New York Times Magazine and Bloomberg. We know how to write professional long-form pieces.
We're subject matter experts who love the topics we write about.
Ready to start a writing project with us? That's great! Give us a call or send us an email and we will get back to you as soon as possible!
123-456-6789


| durbinWatsonTest {car} | R Documentation |
Computes residual autocorrelations and generalized Durbin-Watson
statistics and their bootstrapped p-values. dwt
is an
abbreviation for durbinWatsonTest
.
durbinWatsonTest(model, ...) dwt(...) ## S3 method for class 'lm' durbinWatsonTest(model, max.lag=1, simulate=TRUE, reps=1000, method=c("resample","normal"), alternative=c("two.sided", "positive", "negative"), ...) ## Default S3 method: durbinWatsonTest(model, max.lag=1, ...) ## S3 method for class 'durbinWatsonTest' print(x, ...)
model |
a linear-model object, or a vector of residuals from a linear model. |
max.lag |
maximum lag to which to compute residual autocorrelations and Durbin-Watson statistics. |
simulate |
if |
reps |
number of bootstrap replications. |
method |
bootstrap method: |
alternative |
sign of autocorrelation in alternative hypothesis; specify
only if |
... |
arguments to be passed down. |
x |
|
Returns an object of type "durbinWatsonTest"
.
p-values are available only from the lm
method.
John Fox<EMAIL_ADDRESS>Fox, J. (2016) Applied Regression Analysis and Generalized Linear Models, Third Edition. Sage.
durbinWatsonTest(lm(fconvict ~ tfr + partic + degrees + mconvict, data=Hartnagel))


--- layout: page title: Archives permalink: /archives/ description: "An archive of all posts" --- {% for post in site.posts %}


Senior Web Developer specializing in front end development. Experienced with all stages of the development cycle for dynamic web projects. Well-versed in numerous programming languages including HTML5, PHP OOP, JavaScript, CSS, MySQL, String background in project management and customer relations.
Skill Highlights
Project management
String decision maker
Complex problem solver
Creative design
Innovative
Service-focused
Experience
Web Developer
- 09/2015 to 05/2019
Luna Web Design
, New York
Coopertae with designers to create clean interfaces and simple, intuitive interactions and experiences.
Develop project concepts and maintain optimal workflow.
Work with senior developer to manage large, complex design projects for cooperative clients.
Complete detailed programming and development tassks to front and public and internal websites as well as challenging back-end server code.
Innovative
Carry-out quality assurance tests to discover errors and optimize usablity


CrimPapers
Articles published on 5 May 2018
On 5 May 2018, 9 new articles were published in 4 journals.
A Pernicious Cycle: Finding the Pathways From Child Maltreatment to Adolescent Peer Victimization
Exploring Detection of Contact Vs. Fantasy Online Sexual Offenders in Chats With Minors: Statistical Discourse Analysis of Self-Disclosure and Emotion Words
Comparing Disciplinary Methods Used By Mothers in Palestine and Qatar
Moderating Role of Perceived Social Support Between Perceived Parenting Styles and Relational Aggression in Adolescents by Sonia Mukhtar, Zahid Mahmood
Who Speaks First? Analyzing Response Waves in A Large-Scale Campus Climate Survey by Adam J. Pritchard, Walter S. Dekeseredy, James Nolan, Amanda Hall-Sanchez
From Bondage to Liberation: the Forgiveness Case of Holocaust Survivor Eva Mozes Kor by Shira Diamond, Natti Ronel
Apartheid and Post-Apartheid Analysis of Public Confidence in the Police
Place-Based Policing: New Directions, New Challenges
Correspondence to “An Ethnographic Study on the Indonesian Immigrant Community and Its Islamic Radicalization in South Korea” by Ahmed M. Abozaid


|
|
IFXRenderServices Class ReferenceThe IFXRenderServices object is a singleton rendering manager.
More...
Inheritance diagram for IFXRenderServices:
List of all members.
Detailed Description
The IFXRenderServices object is a singleton rendering manager.
It keeps track of registered renderer types and allocated render device objects. It also holds default values for various rendering states (i.e. internal texture pixel format). The IFXRenderServices object must be created before any IFXRenderContext objects, and must be destroyed after all IFXRenderContext objects have been destroyed.
Member Function Documentation
| virtual IFXRESULT IFXAPI IFXRenderServices::DeleteStaticMesh |
( |
U32 |
uId |
) |
[pure virtual] |
|
|
|
Deletes a cached static mesh from all instances of IFXRenderContext.
- Parameters:
-
| uId | Input U32 containing the id of the static mesh to be deleted. |
- Returns:
- An IFXRESULT value.
- Return values:
-
Implemented in CIFXRenderServices. |
| virtual IFXRESULT IFXAPI IFXRenderServices::DeleteTexture |
( |
U32 |
uTextureId |
) |
[pure virtual] |
|
|
|
Deletes a texture from all instances of IFXRenderContext.
- Parameters:
-
| uTextureId | Input U32 containing the id of the texture to be deleted. |
- Returns:
- An IFXRESULT value.
- Return values:
-
Implemented in CIFXRenderServices. |
| virtual U32 IFXAPI IFXRenderServices::GetColorBufferDepth |
( |
|
) |
[pure virtual] |
|
|
|
Gets the current bit depth of the color buffer.
This is identical to the current color depth of the primary monitor.
- Returns:
- A U32 value containing the number of bits per pixel in the color buffer (8/16/32).
Implemented in CIFXRenderServices. |
| virtual BOOL IFXAPI IFXRenderServices::GetDefaultAAEnalbed |
( |
|
) |
[pure virtual] |
|
|
|
Gets the user-defined default anti-aliasing enabled state.
- Returns:
- A BOOL value.
- Return values:
-
| TRUE | Anti-aliasing is enabled by default. |
| FALSE | Anti-aliasing is disabled by default. |
Implemented in CIFXRenderServices. |
| virtual IFXenum IFXAPI IFXRenderServices::GetDefaultAAMode |
( |
|
) |
[pure virtual] |
|
|
|
Gets the user-defined default anti-aliasing mode.
- Returns:
- An IFXenum value.
- Return values:
-
| IFX_AA_2X | 2X anti-aliasing is used. |
| IFX_AA_3X | 3X anti-aliasing is used. On many cards this is Quincunx* anti-aliasing. |
| IFX_AA_4X | 4X anti-aliasing is used. |
| IFX_AA_4X_SW | 4X anti-aliasing using software emulation is used. this is very slow. |
Implemented in CIFXRenderServices. |
| virtual IFXenum IFXAPI IFXRenderServices::GetDepthBufferFormat |
( |
|
) |
[pure virtual] |
|
|
|
Retrieves the currently set depth buffer format.
- Returns:
- An IFXenum value containing the current depth buffer format.
- Return values:
-
| IFX_DEPTH_D16S0 | 16-bit depth, no stencil |
| IFX_DEPTH_D32S0 | 24-bit depth, no stencil |
| IFX_DEPTH_D24S8 | 24-bit depth, 8-bit stencil |
Implemented in CIFXRenderServices. |
| virtual const IFXMonitor* IFXAPI IFXRenderServices::GetMonitors |
( |
U32 & |
uNumMonitors |
) |
const [pure virtual] |
|
|
|
Retrieves information about all monitors attached to the system and usable for displaying rendered content.
- Parameters:
-
| uNumMonitors | Reference to a U32 that will receive the number of usable monitors attached to the system. |
- Returns:
- A pointer to an IFXMonitor array (of length uNumMonitors) that contains information about each monitor in the system.
Implemented in CIFXRenderServices. |
| virtual U32 IFXAPI IFXRenderServices::GetNumDevices |
( |
|
) |
[pure virtual] |
|
|
|
Gets the number of video cards attached to the system.
This may be different than the number of display devices (multiple monitors could be attached to a single video card).
- Returns:
- A U32 value containing the number of video cards present in the system that are usable for rendering.
Implemented in CIFXRenderServices. |
| virtual F32 IFXAPI IFXRenderServices::GetPixelAspectRatio |
( |
|
) |
[pure virtual] |
|
| virtual BOOL IFXAPI IFXRenderServices::GetRecommended |
( |
U32 |
uRenderId |
) |
[pure virtual] |
|
|
|
Retrieve the user-defined "recommended" flag for the specified renderer type.
All renderers have this flag default to TRUE (recommended) upon registration.
- Parameters:
-
| uRenderId | The renderer type id corresponding to a registered renderer type. |
- Returns:
- A BOOL value.
- Return values:
-
| TRUE | The renderer type is recommended. |
| FALSE | The renderer type is not recommended. This is due to previous call to SetRecommended(). This could also be caused by an invalid uRenderId value. |
Implemented in CIFXRenderServices. |
| virtual U32 IFXAPI IFXRenderServices::GetRequestedRenderId |
( |
|
) |
[pure virtual] |
|
|
|
Gets the user-defined requested renderer type ID.
- Returns:
- A U32 value containing the currently set requested renderer type id.
Implemented in CIFXRenderServices. |
| virtual U32 IFXAPI IFXRenderServices::GetSafeRenderId |
( |
|
) |
[pure virtual] |
|
|
|
Gets the user-defined "safe" renderer type ID.
This value currently not used for anything.
- Returns:
- A U32 value containing the "safe" renderer type id.
Implemented in CIFXRenderServices. |
| virtual BOOL IFXAPI IFXRenderServices::GetSupported |
( |
U32 |
uRenderId |
) |
[pure virtual] |
|
|
|
Query whether a given renderer type is supported on the current system configuration.
If this has not been determined previously, the system will query the renderer type for support (usually doing a test initialization using that renderer type).
- Parameters:
-
| uRenderId | The renderer type ID corresponding to a registered renderer type. |
- Returns:
- A BOOL value.
- Return values:
-
| TRUE | The renderer type is supported on the current system configuration. |
| FALSE | The renderer type is not supported on the current system configuration. This could be due to lack of driver or hardware support, or the user could be using an incompatible color depth. This could also be caused by an invalid uRenderId value. |
Implemented in CIFXRenderServices. |
| virtual IFXenum IFXAPI IFXRenderServices::GetTextureRenderFormat |
( |
|
) |
[pure virtual] |
|
|
|
Retrieves the default texture render format.
See SetTextureRenderFormat() for more information.
- Returns:
- An IFXenum value.
- Return values:
-
| IFX_RGBA_8888 | |
| IFX_RGBA_8880 | |
| IFX_RGBA_5650 | |
| IFX_RGBA_5551 | |
| IFX_RGBA_5550 | |
| IFX_RGBA_4444 | |
Implemented in CIFXRenderServices. |
| virtual BOOL IFXAPI IFXRenderServices::GetVSyncEnabled |
( |
|
) |
[pure virtual] |
|
|
|
Gets the current vsync enabled state.
- Returns:
- A BOOL value.
- Return values:
-
| TRUE | Vsync is currently enabled. |
| FALSE | VSync is currently disabled. |
Implemented in CIFXRenderServices. |
| virtual IFXRESULT IFXAPI IFXRenderServices::PurgeDevices |
( |
|
) |
[pure virtual] |
|
| virtual IFXRESULT IFXAPI IFXRenderServices::RegisterRenderer |
( |
U32 |
uRenderId, |
|
|
IFXREFCID |
cidRender, |
|
|
IFXREFCID |
cidRenderDevice |
|
) |
[pure virtual] |
|
|
|
Registers a renderer type with the system.
Each renderer type (DirectX8, OpenGL, Software, etc.) is described by a renderer ID, along with class ID's (CID's) for the type specific implementation of IFXRender and IFXRenderDevice interfaces (these implementations should be derived from CIFXRender and CIFXRenderDevice respectively).
- Parameters:
-
| uRenderId | Input render ID that will be associated with this renderer type. This value must not be 0. |
| cidRender | Input IFXREFCID (class ID) that identifies the renderer specific implementation of IFXRender. This class should be derived from CIFXRender. |
| cidRenderDevice | Input IFXREFCID (class ID) that identifies the renderer specific implementation of IFXRenderDevice. This class should be derived from CIFXRenderDevice. |
- Returns:
- An IFXRESULT value.
- Return values:
-
| IFX_OK | No error. |
| IFX_E_INVALID_RANGE | Either the value of uRenderId is 0, or the given uRenderId has already been registered. |
Implemented in CIFXRenderServices. |
| virtual IFXRESULT IFXAPI IFXRenderServices::ResetSupportedInfo |
( |
|
) |
[pure virtual] |
|
|
|
Resets all information relating to what renderer types are supported to default values.
This will force the system to re-run the query to determine which renderers are supported when needed. This is appropriate to do, for example, when the color depth of the desktop changes, potentially making some renderers unable to function properly.
- Returns:
- An IFXRESULT value.
- Return values:
-
Implemented in CIFXRenderServices. |
| virtual IFXRESULT IFXAPI IFXRenderServices::SetDefaultAAEnabled |
( |
BOOL |
bEnabled |
) |
[pure virtual] |
|
|
|
Sets the default anti-aliasing enabled state.
Any IFXRenderContext instance that has IFX_AA_DEFAULT set for it's anti-aliasing enabled value will use this setting. Changing this setting will automatically change all instances of IFXRenderContext that are configured to use IFX_AA_DEFAULT.
- Parameters:
-
| bEnabled | Input BOOL specifying the anti-aliasing enabled state. TRUE will enable anti-aliasing, FALSE will disable anti-aliasing. |
- Returns:
- An IFXRESULT value.
- Return values:
-
Implemented in CIFXRenderServices. |
| virtual IFXRESULT IFXAPI IFXRenderServices::SetDefaultAAMode |
( |
IFXenum |
eAAMode |
) |
[pure virtual] |
|
|
|
Sets the default anti-aliasing mode.
Any IFXRenderContext instances that have an anti-aliasing mode of IFX_AA_DEFAULT will use this setting.
- Parameters:
-
| eAAMode | Input IFXenum value denoting the anti-aliasing mode. The possible values are:
- IFX_AA_2X: 2X anti-aliasing is used.
- IFX_AA_3X: 3X anti-aliasing is used. On many cards this is Quincunx* anti-aliasing.
- IFX_AA_4X: 4X anti-aliasing is used.
- IFX_AA_4X_SW: 4X anti-aliasing is used with software emulation. This is very slow.
|
- Returns:
- An IFXRESULT value.
- Return values:
-
| IFX_OK | No error. |
| IFX_E_INVALID_RANGE | The eAAMode value was invalid. |
Implemented in CIFXRenderServices. |
| virtual IFXRESULT IFXAPI IFXRenderServices::SetDepthBufferFormat |
( |
IFXenum |
eDepthFormat |
) |
[pure virtual] |
|
|
|
Sets the depth buffer format to be used by all IFXRenderContext instances.
The default value is IFX_DEPTH_D32S0. If the rendering system cannot support the specified format, it will fall back to a format that will work.
- Parameters:
-
| eDepthFormat | Input IFXenum value specifying the depth buffer format to use. Possible values are:
- IFX_DEPTH_D16S0: 16-bit depth, no stencil
- IFX_DEPTH_D32S0: 24-bit depth, no stencil
- IFX_DEPTH_D24S8: 24-bit depth, 8-bit stencil
|
- Returns:
- An IFXRESULT value.
- Return values:
-
| IFX_OK | No error. |
| IFX_E_INVALID_RANGE | The eDepthFormat value was invalid. |
Implemented in CIFXRenderServices. |
| virtual IFXRESULT IFXAPI IFXRenderServices::SetNotSupported |
( |
U32 |
uRenderId |
) |
[pure virtual] |
|
|
|
Inform the render services object that the given (pre-registered) renderer type is not supported, and shouldn't even be queried to see if it is.
Some renderer types and driver combinations can cause a system crash when querying for device support. This will prevent that from happening on known bad video drivers.
- Parameters:
-
| uRenderId | The renderer type ID corresponding to a registered renderer type. This renderer type will be listed as unsupported and will not be queried for support. |
- Returns:
- An IFXRESULT value.
- Return values:
-
| IFX_OK | No error. |
| IFX_E_INVALID_RANGE | The value specified for uRenderId was invalid. |
Implemented in CIFXRenderServices. |
| virtual IFXRESULT IFXAPI IFXRenderServices::SetPixelAspectRatio |
( |
F32 |
fRatio |
) |
[pure virtual] |
|
|
|
Sets the pixel aspect of the device.
The pixel aspect can be changed when the display device used has a pixel aspect other than 1.0. For instance, you are using a standard 4:3 resolution (1600x1200) on a widescreen 16:9 monitor. In that case, you would use a pixel aspect ratio of 1.333333. The initial value is 1.0.
- Parameters:
-
| fRatio | The new pixel aspect ratio to use. Must be a positive non-zero number. |
- Returns:
- An IFXRESULT value.
- Return values:
-
| IFX_OK | No error. |
| IFX_E_INVALID_RANGE | The value specified with fRatio was either 0.0 or negative. |
Implemented in CIFXRenderServices. |
| virtual IFXRESULT IFXAPI IFXRenderServices::SetRecommended |
( |
U32 |
uRenderId, |
|
|
BOOL |
bRecommended |
|
) |
[pure virtual] |
|
|
|
Sets the recommended flag for the specified renderer type.
This flag is primarily used to denote bad renderer type / video driver combinations.
- Parameters:
-
| uRenderId | The renderer type ID corresponding to a registered renderer type. |
| bRecommended | Input BOOL containing the new recommended flag state. |
- Returns:
- An IFXRESULT value.
- Return values:
-
| IFX_OK | No error. |
| IFX_E_INVALID_RANGE | The uRenderId value was invalid. |
Implemented in CIFXRenderServices. |
| virtual IFXRESULT IFXAPI IFXRenderServices::SetRequestedRenderId |
( |
U32 |
uRenderId |
) |
[pure virtual] |
|
|
|
Sets the requested renderer type.
When an IFXRenderContext instance has a renderer ID of 0, it will use this renderer type instead. Changing this value will result in all instances of IFXRenderContext that contain a renderer ID of 0 to switch to the new renderer type during the next frame of rendering.
- Parameters:
-
| uRenderId | The renderer type ID corresponding to a registered renderer type. This must be a supported renderer type. |
- Returns:
- An IFXRESULT value.
- Return values:
-
| IFX_OK | No error. |
| IFX_E_INVALID_RANGE | The uRenderId value was invalid. |
| IFX_E_UNSUPPORTED | The renderer type specified by uRenderId is not supported. |
Implemented in CIFXRenderServices. |
| virtual IFXRESULT IFXAPI IFXRenderServices::SetSafeRenderId |
( |
U32 |
uRenderId |
) |
[pure virtual] |
|
|
|
Set the "safe" renderer type ID.
This value is currently unused.
- Parameters:
-
| uRenderId | The renderer type ID corresponding to a registered renderer type. This must be a supported renderer type. |
- Returns:
- An IFXRESULT value.
- Return values:
-
| IFX_OK | No error. |
| IFX_E_INVALID_RANGE | The uRenderId value was invalid. |
| IFX_E_UNSUPPORTED | The renderer type specified by uRenderId is not supported. |
Implemented in CIFXRenderServices. |
| virtual IFXRESULT IFXAPI IFXRenderServices::SetTextureRenderFormat |
( |
IFXenum |
eTexFormat |
) |
[pure virtual] |
|
|
|
Sets the default texture render format.
Textures that specify a format of IFX_FMT_DEFAULT will use this format instead. The initial value for this setting is IFX_RGBA_5551.
- Parameters:
-
| eTexFormat | Input IFXenum specifying the default texture render format. Possible values are:
- IFX_RGBA_8888
- IFX_RGBA_8880
- IFX_RGBA_5650
- IFX_RGBA_5551
- IFX_RGBA_5550
- IFX_RGBA_4444
|
- Returns:
- An IFXRESULT value.
- Return values:
-
| IFX_OK | No error. |
| IFX_E_INVALID_RANGE | The eTexFormat value was invalid. |
Implemented in CIFXRenderServices. |
| virtual IFXRESULT IFXAPI IFXRenderServices::SetVSyncEnabled |
( |
BOOL |
bEnabled |
) |
[pure virtual] |
|
|
|
Sets whether or not vsync is enabled.
If vsync is enabled, renderer types that support it will cause IFXRenderContext::Swap() to block until the next vertical retrace of the monitor before completing. This affects all instances of IFXRenderContext. The initial value is FALSE.
- Parameters:
-
| bEnabled | Input BOOL. If TRUE, vsync is enabled, otherwise, vsync is disabled. |
- Returns:
- An IFXRESULT value.
- Return values:
-
Implemented in CIFXRenderServices. |
© 1999 - 2006 Intel Corporation. All rights reserved.
* Other names and brands may be claimed as the property of others.
|
|


What's new:
- 2017-08-07 HTTPS encrypted connections supported -
https://difff.jp/en/
- 2015-08-18 difff adds option to create public links for sharing your result. (ver.6.1)
- 2014-03-14 URL has been changed: http://difff.jp/
- 2014-03-12 difff was introduced by
ITmedia news (in Japanese).
- 2013-12-12 difff was introduced by
TogoTV (in Japanese).
- 2013-03-12 difff ver.6 released.
Release note (in Japanese).
- 2013-01-11 English page launched.
- 2012-10-22 Source code available via
GitHub.
- 2012-04-16 difff was introduced by
GIGAZINE (in Japanese).
- 2012-04-13 difff ver.5 released.
- 2008-02-18 difff ver.4 released. Japanese characters supported.
- 2004-02-19 difff ver.1 released.
Last modified on Dec 2, 2022 by
@meso_cacase


The Pleiades , also known as the Seven Sisters and Messier 45, are an open star cluster containing middle-aged, hot B-type stars located in the constellation of Taurus. It is among the nearest star clusters to Earth and is the cluster most obvious to the naked eye in the night sky.
The cluster is dominated by hot blue and luminous stars that have formed within the last 100 million years. A faint reflection nebulosity around the brightest stars was thought at first to be left over from the formation of the cluster (hence the alternative name Maia Nebula after the star Maia), but is now likely an unrelated foreground dust cloud in the interstellar medium, through which the stars are currently passing.
Computer simulations have shown that the Pleiades were probably formed from a compact configuration that resembled the Orion Nebula. Astronomers estimate that the cluster will survive for about another 250 million years, after which it will disperse due to gravitational interactions with its galactic neighborhood.
The Horsehead Nebula (also known as Barnard 33) is a dark nebula in the constellation Orion. The nebula is located just to the south of Alnitak, the easternmost star of Orion's Belt, and is part of the much larger Orion Molecular Cloud Complex. The nebula was first recorded in 1888 by Scottish astronomer Williamina Fleming on a photographic plate taken at the Harvard College Observatory. The Horsehead Nebula is approximately 1500 light years from Earth. It is one of the most identifiable nebulae because its resemblance to a horse's head
The Veil Nebula is a cloud of heated and ionized gas and dust in the constellation Cygnus.
It constitutes the visible portions of the Cygnus Loop, a supernova remnant, many portions of which have acquired their own individual names and catalogue identifiers. The source supernova was a star 20 times more massive than the Sun, which exploded around 8,000 years ago. The remnants have since expanded to cover an area of the sky roughly 3 degrees in diameter (about 6 times the diameter, or 36 times the area, of the full Moon). The distance to the nebula is not precisely known, but Far Ultraviolet Spectroscopic Explorer (FUSE) data supports a distance of about 1,470 light-years.
The Hubble Space Telescope captured several images of the nebula. The analysis of the emissions from the nebula indicate the presence of oxygen, sulfur, and hydrogen. The Cygnus Loop is also a strong emitter of radio waves and x-rays.
The Sadr region, or IC 1318, is the diffuse emission nebula surrounding Sadr (γ Cygni) at the center of Cygnus's cross. The Sadr region is one of the surrounding nebulous regions; others include the Butterfly Nebula and the Crescent Nebula. It contains many dark nebulae in addition to the emission diffuse nebulae.
Sadr itself has approximately a magnitude of 2.2. The nebulous regions around the region are also fairly bright.