For me, writing becomes a process of divining thought patterns. It is almost a kind of striving to settle upon a conscious, cogent and original opinion. Seeking a subjective truth is a deceptively difficult thing to do. So much of what we tend to say about the world can be traced back to heard words and framing found to lay elsewhere. Independent thinking comes down to trusting your own capacity for an original, personal opinion. People are not puppets nor mouthpieces. Nothing comes from adopting an easier path, one of repeating commentary without trusting your own engaged and curious mind. For me, it is worth struggling with ourselves so that an answer has a chance to spring from a place of authenticity and purpose. For me, this is an essential part of offering a responsible perspective.
Last night, just before heading to bed, I came across a post from a friend. The post was a video of ISIS fighters destroying ancient relics that had been housed in Iraq’s Mosul Museum. My initial response would have been similar to most people who had seen the video I imagine; shock, abhorrence, alarm and repulsion. There is violence in this reaction. But it was a violence that feels as if deliberately enticed by what I was watching.
Now, I haven’t watched the beheading videos released by ISIS. I couldn’t watch the video where Moath al-Kasabeh, the Jordanian pilot was burnt alive. I have seen clips however and I remember noticing the remarkable sophistication of the material, the editing, music and scale of production. They are polished, these videos. Admittedly this is an odd thing to point out but I believe something significant has happened since ISIS has come into power in Syria and Iraq. It is that the language has changed. The channels with which movements like ISIS roll out propaganda have gone beyond the 24 news cycle. These videos are a nightmare cut and packaged for the social stream, made for and of the Internet. We’re now seeing reports of young second generation Muslims leaving parts of the UK and Europe to join ISIS. You can see the compelling aesthetic all over this media campaign and that’s why I’m not surprised.
The violence I felt after watching this video; Bomb them, wipe them out, drone strike them out of existence might be understandable given the destruction. Ancient statues and headstones smashed and toppled into pieces, scattered history, 3000 year old heritage destroyed, art belonging to all of us. It is all too easy to turn initial reactions like these into justifications for some form of retribution. It is harder to move beyond it toward a rational response. So what to do other than to seek out more knowledge, find opinions that you wouldn’t normally agree with and weigh them up against what you feel instinctively. In the days since, I began thinking about why these videos are released in the first place. Why else but to seduce us into hatred and push us toward conflict and yet another cycle?
I’d recommend these for further reading:
Historians Pore Over ISIS Video of Smashed Statues for Clues to What’s Been Lost - Robert Mackey
What we talk about when we talk about ISIS - Eamon Murphy
ISIL torches Iraqi history in Mosul - Marcia Lynx Qualey
Democracy Now interview with Patrick Cockburn
The Islamic State Is Losing Iraq - John Simpson
ISIL, CIA, Mossad, Quds Force, etc - Marwan Bishara
Inherent curiosity, self-sought and entirely mysterious at times, often leads to uncomfortable revelations. On many occasions if the subject is worth thinking about it’s because there may be more to what you believe about a certain subject matter than your initial response would reveal. This, perhaps, is where curiosity comes from in a sense; a part of your mind that nags and prods at your conscience in order to bring to the surface something real and of value. I think this may be all the more important when we consider the sophistication of the media machine behind movements like ISIS. Manipulation works, and whether we like it or not we are all susceptible. All the more reason in my mind to struggle with offering genuine thoughts about what we should do.
For me, this was difficult. I have come to the uneasy conclusion that some form of military intervention, a policy I would normally resist vehemently, should be considered given the argument that while ‘taking on’ Al Qaeda was always a misnomer, ISIS is in large part a territorial army and as such could be defeated. The question isn’t one of ‘what good would come of western involvement but one of ‘what option is the less awful.’ Whether a militaristic response would come in the form of a broad multi-national coalition or whether the Iraqi national army is capable of defeating them with help, I don’t know. What I’m far surer about is that we are unlikely to see the same degree of public outcry against militarism, as was the case in 2003 before Western powers engaged in Iraq. I’m also aware that those who wanted to depose of Saddam in the lead up to that war made similar arguments.
It is a sad, tragic and an galling opinion to have come to. This video upsets me deeply and it upsets me more that I’ve come to adopt a position where yet more destruction is an inevitable outcome. But I watch this video, aware of the context, the circumstance around it - knowing full well that ISIS would in the end get what they want: war. The small comfort I have is that it’s an opinion that was hard won and that my liberalism finds great strength in struggling with decisions that ought to be struggled with.


South Dakota's campaign against meth addiction is grabbing attention
by Justin BoggsA campaign launched by South Dakota's Gov. Kristi Noem is grabbing attention for its slogan "Meth: We're on it."
As part of the campaign, a video released on Monday features a number of people of differing ages and backgrounds saying "I'm on meth."
Given the national attention the ad campaign has garnered, Noem's goal to bring attention to the issue appears to be working.
"I allocated money for meth education and awareness," Noem said. "Right now, my team is accepting bids from media companies for a targeted meth awareness campaign. We need to be more active and intentional in teaching kids the danger of meth use and the affect it can have on their lives."
The state also launched a website that includes information on where to find treatment centers and other resources to fight meth addiction.
According to Noem's office, 13 people died from meth in 2018, and more than 3,000 were arrested for meth offenses.


This tests whether flex-box behaves well with unusual children.
The boxes are width and height 100px.


Encrypted JSON authentication
Guacamole supports delegating authentication to an arbitrary external service, relying on receipt of JSON data which has been signed using HMAC/SHA-256 and encrypted with 128-bit AES in CBC mode. This JSON contains all information describing the user being authenticated, as well as any connections they have access to, and is accepted only if the configured secret key was used to sign and encrypt the data.
Downloading the JSON authentication extension
The JSON authentication extension is available separately from the main
guacamole.war
. The link for this and all other officially-supported and
compatible extensions for a particular version of Guacamole are provided on the
release notes for that version. You can find the release notes for current
versions of Guacamole here: http://guacamole.apache.org/releases/.
The JSON authentication extension is packaged as a .tar.gz
file containing
only the extension itself, guacamole-auth-json-1.5.2.jar
, which must
ultimately be placed in GUACAMOLE_HOME/extensions
.
Installing JSON authentication
Guacamole extensions are self-contained .jar
files which are located within
the GUACAMOLE_HOME/extensions
directory. If you are unsure where
GUACAMOLE_HOME
is located on your system, please consult
Configuring Guacamole before proceeding.
To install the JSON authentication extension, you must:
Create the
GUACAMOLE_HOME/extensions
directory, if it does not already exist.Copy
guacamole-auth-json-1.5.2.jar
withinGUACAMOLE_HOME/extensions
.Configure Guacamole to use JSON authentication, as described below.
Configuring Guacamole to accept encrypted JSON
To verify and decrypt the received signed and encrypted JSON, a secret key must be generated which will be shared by both the Guacamole server and systems that will generate the JSON data. As guacamole-auth-json uses 128-bit AES, this key must be 128 bits.
An easy way of generating such a key is to echo a passphrase through the “md5sum” utility. This is the technique OpenSSL itself uses to generate 128-bit keys from passphrases. For example:
$ echo -n "ThisIsATest" | md5sum
4c0b569e4c96df157eee1b65dd0e4d41 -
The generated key must then be saved within guacamole.properties
as the full 32-digit hex value using the json-secret-key
property:
json-secret-key: 4c0b569e4c96df157eee1b65dd0e4d41
Completing the installation
Guacamole will only reread guacamole.properties
and load newly-installed
extensions during startup, so your servlet container will need to be restarted
before JSON authentication can be used. Doing this will disconnect all active
users, so be sure that it is safe to do so prior to attempting installation.
When ready, restart your servlet container and give the new authentication a
try.
JSON format
The general format of the JSON (prior to being encrypted, signed, and sent to Guacamole), is as follows:
{
"username" : "arbitraryUsername",
"expires" : TIMESTAMP,
"connections" : {
"Connection Name" : {
"protocol" : "PROTOCOL",
"parameters" : {
"name1" : "value1",
"name2" : "value2",
...
}
},
...
}
}
where TIMESTAMP
is a standard UNIX epoch timestamp with millisecond
resolution (the number of milliseconds since midnight of January 1, 1970 UTC)
and PROTOCOL
is the internal name of any of Guacamole’s supported protocols,
such as vnc
, rdp
, or ssh
.
The JSON will cease to be accepted as valid after the server time passes the timestamp. If no timestamp is specified, the data will not expire.
The top-level JSON object which must be submitted to Guacamole has the following properties:
Property name |
Type |
Description |
|---|---|---|
|
|
The unique username of the user authenticated by the JSON. If the user is
anonymous, this should be the empty string ( |
|
|
The absolute time after which the JSON should no longer be accepted, even if the signature is valid, as a standard UNIX epoch timestamp with millisecond resolution (the number of milliseconds since midnight of January 1, 1970 UTC). |
|
|
The set of connections which should be exposed to the user by their
corresponding, unique names. If no connections will be exposed to the user,
this can simply be an empty object ( |
Each normal connection defined within each submitted JSON object has the following properties:
Property name |
Type |
Description |
|---|---|---|
|
|
An optional opaque value which uniquely identifies this connection across all other connections which may be active at any given time. This property is only required if you wish to allow the connection to be shared or shadowed. |
|
|
The internal name of a supported protocol, such as |
|
|
An object representing the connection parameter name/value pairs to apply to the connection, as documented in Configuring connections. |
Connections which share or shadow other connections use a join
property
instead of a protocol
property, where join
contains the value of the id
property of the connection being joined:
Property name |
Type |
Description |
|---|---|---|
|
|
An optional opaque value which uniquely identifies this connection across all other connections which may be active at any given time. This property is only required if you wish to allow the connection to be shared or shadowed. (Yes, a connection which shadows another connection may itself be shadowed.) |
|
|
The opaque ID given within the |
|
|
An object representing the connection parameter name/value pairs to apply to the connection, as documented in Configuring connections. Most of the connection configuration is inherited from the connection being
joined. In general, the only property relevant to joining connections is
|
If a connection is configured to join another connection, that connection will
only be usable if the connection being joined is currently active. If two
connections are established having the same id
value, only the last
connection will be joinable using the given id
.
Generating encrypted JSON
To authenticate a user with the above JSON format, the JSON must be both signed
and encrypted using the same 128-bit secret key specified with the
json-secret-key
within guacamole.properties
:
Generate JSON in the format described above
Sign the JSON using the secret key (the same 128-bit key stored within
guacamole.properties
with thejson-secret-key
property) with HMAC/SHA-256. Prepend the binary result of the signing process to the plaintext JSON that was signed.Encrypt the result of (2) above using AES in CBC mode, with the initial vector (IV) set to all zero bytes.
Encode the encrypted result using base64.
POST the encrypted result to the
/api/tokens
REST endpoint as the value of an HTTP parameter nameddata
(or include it in the URL of any Guacamole page as a query parameter nameddata
).For example, if Guacamole is running on localhost at
/guacamole
, andBASE64_RESULT
is the result of the above process, the equivalent run of the “curl” utility would be:$ curl --data-urlencode "data=BASE64_RESULT" http://localhost:8080/guacamole/api/tokens
NOTE: Be sure to URL-encode the base64-encoded result prior to POSTing it to
/api/tokens
or including it in the URL. Base64 can contain both “+” and “=” characters, which have special meaning within URLs.
If the data is invalid in any way, if the signature does not match, if decryption or signature verification fails, or if the submitted data has expired, the REST service will return an invalid credentials error and fail without user-visible explanation. Details describing the error that occurred will be in the Tomcat logs, however.
Reference implementation
The source includes a shell script, doc/encrypt-json.sh
,
which uses the OpenSSL command-line utility to encrypt and sign JSON in the
manner that guacamole-auth-json requires. It is thoroughly commented and should
work well as a reference implementation, for testing, and as a point of
comparison for development. The script is run as:
$ ./encrypt-json.sh HEX_ENCRYPTION_KEY file-to-sign-and-encrypt.json
For example, if you have a file called auth.json
containing the following:
{
"username" : "test",
"expires" : "1446323765000",
"connections" : {
"My Connection" : {
"protocol" : "rdp",
"parameters" : {
"hostname" : "<IP_ADDRESS>",
"port" : "3389",
"ignore-cert": "true",
"recording-path": "/recordings",
"recording-name": "My-Connection-${GUAC_USERNAME}-${GUAC_DATE}-${GUAC_TIME}"
}
},
"My OTHER Connection" : {
"protocol" : "rdp",
"parameters" : {
"hostname" : "<IP_ADDRESS>",
"port" : "3389",
"ignore-cert": "true",
"recording-path": "/recordings",
"recording-name": "My-OTHER-Connection-${GUAC_USERNAME}-${GUAC_DATE}-${GUAC_TIME}"
}
}
}
}
and you run:
$ ./encrypt-json.sh 4C0B569E4C96DF157EEE1B65DD0E4D41 auth.json
You will receive the following output:
A2Pf5Kpmm97I2DT1PifIrfU6q3yzoGcIbNXEd60WNangT8DAVjAl6luaqwhBJnCK
uqcf9ZZlRo3uDxTHvUM3eq1YvdghL0GbosOn8Mn38j2ydOMk+Cd15a8ggb4/ddt/
yIBK4DxrN7MNbouZ091KYtXC6m20E6sGzLy676BlMSg1cmsENRIihOynsSLSCvo0
diif6H7T+ZuIqF7B5SW+adGfMaHlfknlIvSpLGHhrIP4aMYE/ZU2vYNg8ez27sCS
wDBWu5lERtfCYFyU4ysjRU5Hyov+yKa+O7jcRYpw3N+fHbCg7/dxVNW07qNOKssv
pzUciGvDPUCPpa02WmPJNEBowwQireO1952/MNAI77cW2UepbljD/bwOiZl2THJz
LrENo7K5acimBa+EjWEesgn7lx/WTCF3zxR6TH1CWrQM8Et1aUK1Nf8K11xEQbTy
klyaNtCmTfyahRZ/fUPxDNrdJVpPOSELkf7RJO5tOdK/FFIFIbze3ZUyXgRq+pHY
owpgOmudDBTBlxhXiONdutRI/RZbFM/7GBMdmI8AR/401OCV3nsI4jLhukjMXH3V
f3pQg+xKMhi/QExHhDk8VTNYk7GurK4vgehn7HQ0oSGh8pGcmxB6W43cz+hyn6VQ
On6i90cSnIhRO8SysZt332LwJCDm7I+lBLaI8NVHU6bnAY1Axx5oH3YTKc4qzHls
HEAFYLkD6aHMvHkF3b798CMravjxiJV3m7hsXDbaFN6AFhn8GIkMRRrjuevfZ+q9
enWN14s24vt5OVg69DljzALobUNKUXFx69SR8EpSBvUcKq8s/OgbDpFvKbwsDY57
HGT4T0CuRIA0TGUI075uerKBNApVhuBA1BmWJIrI4JXw5MuX6pdBe+MYccO3vfo+
/frazj8rHdkDa/IbueMbvq+1ozV2+UuxrbaTrV2i4jSRgd74U0QzOh9e8Q0i7vOi
l3hnIfOfg+v1oULmZmJSeiAYWxeGvPptp+n7rNFqHGM=
The resulting base64 data above, if submitted using the data
parameter to
Guacamole, will authenticate a user and grant them access to the connections
described in the JSON (at least until the expires timestamp is reached, at
which point the JSON will no longer be accepted).


Your quick start works! This project is especially useful to start developing your Wicket application or to create a test case for a bug report.
Help us help you:
Please mention the correct Wicket version: 1.5-SNAPSHOT.


PubSub is
disconnected.
Reset Session
Events
Spoof Twitch events?
Bits
Bits (Anonymous)
Subs
Subs (Resub)
Subs (Gift)


@SoftDelete
Add a boolean property to your entity beans to indicate the deleted state. This property can be on the entity bean or on a MappedSuperclass as per the example below:
This property must be a boolean type with a true value meaning that the row/bean has been logically deleted.
@MappedSuperclass
public class BaseSoftDelete {
@Id
Long id;
@Version
Long version;
@SoftDelete
boolean deleted;
Delete
A delete of an entity bean that has SoftDelete becomes a SQL update.
// delete becomes an update if the bean has soft delete property
database.delete(bean);
-- soft delete ... sets deleted = true
update mybean set version=?, deleted=? where id=? and version=?; --bind(2,true,1,1,)
Delete Permanent
Delete permanent is used to perform a SQL delete (hard delete).
// delete becomes an update if the bean has soft delete property
database.deletePermanent(bean);
-- delete permanent
delete from mybean where id=? and version=?; --bind(1,2,)
Cascading behavior
A soft delete will cascade along the same relationships as a hard delete as
long as the beans support soft delete. If the 'target' bean does not have a
@SoftDelete
property (and hence does not support soft delete) then
the soft delete will not cascade to that relationship.
ManyToMany
Soft delete will not cascade to the intersection table of a @ManyToMany
.
Draftable
Soft delete will not propagate to the associated "live" row of a @Draftable entity bean.
Query (normal)
A normal query automatically includes a predicate to filter out soft deleted rows. A predicate is added for each table (SQL FROM or JOIN) that has a soft delete column. This is done for any subsequent lazy loading queries as necessary.
and t0.deleted=false and t1.deleted=false ... additional predicates
select t0.id c0, t0.name ...
from ebasic_soft_delete t0
left outer join ebasic_sdchild t1 on t1.owner_id = t0.id
where t0.id = ?
-- Additional predicates for soft delete
and t0.deleted=false and t1.deleted=false
order by t0.id; --bind(1)
Query - includeSoftDeletes
A query can have includeSoftDeletes()
set and in this case the soft delete predicates are
not added to the query and this means all rows including soft deleted rows are included in
the result.
Query.includeSoftDeletes()
// find a bean that could be soft deleted
List<MyBean> beans =
database.find(MyBean.class)
.includeSoftDeletes()
.where().icontains("name", "rob")
.findList();
// find a bean that could be soft deleted
MyBean bean =
database.find(MyBean.class)
.includeSoftDeletes()
.setId(idValue)
.findOne();
Notifications
For BeanPersistController, BeanPersistListener, L2 Cache and Cluster notifications a soft delete is treated the same as a hard delete and the same event notifications occur.
Change Log
For ChangeLog soft deletes are treated as updates as this reflects the actual change that occured.


“The problem is not the sheep. The problem is irresponsible shepherds.” Thus spake—on the radio this morning—a spokesman for the majestically-named Irresponsible Shepherding Task Force in the Forest of Dean. Apparently, that rustic paradise is riddled with irresponsible shepherds who, among sundry enormities, allow their sheep to bleat in the middle of the night.
Personally, I am not surprised to learn about outbreaks of nocturnal bleating. Sheep are highly neurasthenic creatures who spend their entire lives in a state of fretfulness and nervous tension, and as a result they rarely sleep. This is probably one reason why, as has been observed by several country persons, a sheep's ambition in life is to die.


pepper.framework.infra.resource.threaded module¶
-
class
pepper.framework.infra.resource.threaded.
ThreadedReadLock
(rw_lock, resource_name)[source]¶ Bases:
pepper.framework.infra.resource.api.ReadLock
-
acquire
(blocking=True, timeout=None)[source]¶ Acquire the lock. By defaults blocks and waits forever.
- Parameters
blocking (bool) – Block until lock is obtained or return immediately
timeout (float or None) – Wait at most the specified timeout in seconds to acquire the lock if the specified timeout is positive, otherwise wait indefinitely.
- Returns
Signal if the lock was acquired
- Return type
bool
- Raises
LockTimeoutError – if the lock wasn’t acquired within timeout seconds.
-
interrupt_writers
(interrupt=True)[source]¶ Set the interrupted flag on the lock to signal the current owner that the lock should be released.
-
property
interrupted
¶ Signals that the lock should be released by the current owner.
- Returns
Whether the lock should be released by the current owner.
- Return type
bool
-
property
locked
¶ Check if the lock is held by someone.
- Returns
Signal if the lock is held by someone.
- Return type
bool
-
-
class
pepper.framework.infra.resource.threaded.
ThreadedResourceContainer
[source]¶ Bases:
pepper.framework.infra.resource.api.ResourceContainer
-
property
resource_manager
¶
-
property
-
class
pepper.framework.infra.resource.threaded.
ThreadedResourceManager
[source]¶ Bases:
pepper.framework.infra.resource.api.ResourceManager
-
get_lock
(name, blocking=True, timeout=None)[source]¶ Obtain a
Lock
for the given resource.- Parameters
blocking (bool) – Block until the resource is available or return immediately
timeout (float or None) – Wait at most the specified timeout in seconds until the resource is available if the specified timeout is positive, otherwise wait indefinitely.
- Returns
The lock.
- Return type
Lock
-
get_read_lock
(name, blocking=True, timeout=None)[source]¶ Obtain a
ReadLock
for the given resource.- Parameters
blocking (bool) – Block until the resource is available or return immediately
timeout (float or None) – Wait at most the specified timeout in seconds until the resource is available if the specified timeout is positive, otherwise wait indefinitely.
- Returns
The lock.
- Return type
Lock
-
get_write_lock
(name, blocking=True, timeout=None, writer_interrupts=False)[source]¶ Obtain a
WriteLock
for the given resource.- Parameters
blocking (bool) – Block until the resource is available or return immediately
timeout (float or None) – Wait at most the specified timeout in seconds until the resource is available if the specified timeout is positive, otherwise wait indefinitely.
- Returns
The lock.
- Return type
Lock
-
provide_resource
(name)[source]¶ Register the resource with the given name.
- Parameters
name (str) – The name of the resource.
- Raises
ValueError – if there is already a resource registered with the given name.
-
property
resources
¶ Retrieve all currently registered resource names.
- Returns
A collection of the registered resource names.
- Return type
Iterable[(str)]
-
retract_resource
(name, force=True, timeout=None)[source]¶ Unregister the resource with the given name.
- Parameters
name (str) – The name of the resource.
force (bool) – Immediately retract the resource or block until all users released the released the resource.
timeout (float or None) – Wait at most the specified timeout in seconds until the resource is released if the specified timeout is positive, otherwise wait indefinitely.
-
-
class
pepper.framework.infra.resource.threaded.
ThreadedWriteLock
(lock, resource_name, writer_interrupts=False)[source]¶ Bases:
pepper.framework.infra.resource.api.WriteLock
-
acquire
(blocking=True, timeout=None)[source]¶ Acquire the lock. By defaults blocks and waits forever.
- Parameters
blocking (bool) – Block until lock is obtained or return immediately
timeout (float or None) – Wait at most the specified timeout in seconds to acquire the lock if the specified timeout is positive, otherwise wait indefinitely.
- Returns
Signal if the lock was acquired
- Return type
bool
- Raises
LockTimeoutError – if the lock wasn’t acquired within timeout seconds.
-
interrupt_readers
(interrupt=True)[source]¶ Set the interrupted flag on the lock to signal the current owner that the lock should be released.
-
property
interrupted
¶ Signals that the lock should be released by the current owner.
- Returns
Whether the lock should be released by the current owner.
- Return type
bool
-
property
locked
¶ Check if the lock is held by someone.
- Returns
Signal if the lock is held by someone.
- Return type
bool
-


The World Wide Web is made up of HTML and was invented in the 1990’s with about 30+ billion pages. HTML is the main type of document on the web.
Hyper Text Markup Language -It is the main type of document on the web -Various types of documents are Plain Text, HTML, Images, Videos, Music
HTML Breaking it down… Text-What you see Markup-what it looks like References to other documents Links to other pages
Inline vs Block Tags<>
Inline is ending a line and just t
HTML
Breaking it down…
Text-What you see
Markup-what it looks like
References to other documents
Links to other pages
Different types of tags for coding are…
Bold = “b”
Emphasis = “em” which is basically italics
Attributes = “a”
href-reference
example: contets
Images = “img”
White Space = “br”
Paragraph = “p”
Span - “span” Inline
Div - “div” Blocks
What happens when you have a missing close tag?
-Everything after is italicized.Inline vs Block Tags Inline is ending a line and just text (a, b, em, img, span, strong, br) Block makes an invisible box (p, div, form)ext (a, b, em, img, span, strong, br) Block makes an invisible box (p, div, form)


5 references to GetEntry
System.Management.Automation (5)
engine\hostifaces\History.cs (5)
922
HistoryInfo entry = history.
GetEntry
(id);
1257
entry = history.
GetEntry
(_historyId);
1408
HistoryInfo infoAdded = history.
GetEntry
(id);
1686
HistoryInfo entry = _history.
GetEntry
(id);
1839
HistoryInfo entry = _history.
GetEntry
(id);


System Architect Picture "Significance Of Property"
Parent Diagram:
Perception Of Property
(OMT Object Model)


Hello.-
Managing domains has never been so cool.
Managing domains has never been so cool.
Buy domains in seconds
Choose from hundreds of domains, easy peasy with Nuance
Import all your domains instantly
Manage domains from different registrars in a single app.


Indiana
I'm a Junkie-Monkey!
Registered: Oct 2001
Location: Incommincado Tyler Durden says: Do we really need another women?
Posts: 3087 |
Wednesday Night on Sky One!
Just letting everyone know that this wednesday on Sky One we have a double header of Stargate Episodes @ 8PM!
The Warrior - Braveheart ala Stargate. A young and charasmatic Jaffa decides to try and persuade his people to rise up against The Goa'uld.
Menace - Ah, those little Lego creatures, The Replicators retrun to us once again when SG-1 find a world controlled by The Replicators (A.K.A. - Lego Land!) and a young Girl who may be the ket to the Salvation of the Asgard. But she won't be, because it would mean the end of The Goa'uld as well and then the end of the TV Show.
__________________
"Now I'm cleaning up and I'm moving on, going straight and choosing life. I'm looking forward to it already.  The washing machine, the car, the compact disc and electric tin opener, good health, low cholesterol, dental insurance, mortgage, starter home, leisure wear, luggage, three piece suite, DIY, game shows, junk food, children, walks in the park, nine to five, good at golf, washing the car, choice of sweaters, family Christmas, indexed pension, tax exemption clearing gutters, getting by, looking ahead, the day you die."
Report this post to a moderator | ? + *
|


The Smart LED Dimmer controls a 12V monochrome LED strip. It uses an ESP8266 WiFi module and Arduino software to pulse width modulate the strip's power. You control it with a momentary pushbutton switch or through its web interface. The repository includes SketchUp files for a 3D-printed case and push button mount and instructions and code allowing the dimmer to be recognized and controlled by a Samsung SmartThings hub. While tapping the button is very convenient, I find myself using voice commands and automated routines to control my dimmers more often than not. (Since both Google and Alexa can connect to SmartThings.)
The repository is at: https://github.com/kit-barnes/smartLEDdimmer.git
I initially used an NPN power transistor in designing the circuit and my earlier case designs included a mount for a TO-220 transistor. Breadboarding proved the bipolar device to be unsuitable and I switched to a MOSFET. Regrettably, I didn't find a suitable one in a TO-220 case so I resigned myself to the effort of soldering leads onto the tiny surface mount device, encapsulated it in multiple shrink-wraps, and gave up my transistor mount. (The resistor in the breadboard photo is left over from the bipolar circuit.)
As evidenced by the breadboard photo, I'd intended to use knots in the wires as strain relief. A few wraps of heavier wire took up much less room in the case. There are mountings for the ESP8266 module and the DC-DC converter and the cover snaps on. The pushbutton switch is press-fit into its mount.


Our website is under construction. We'll be here soon with our new awesome site. Get best experience with this one.


vignettes/articles/ui_seurat_curated_workflow.Rmd
ui_seurat_curated_workflow.Rmd
Seurat is an R package (Butler et al., Nature Biotechnology 2018 & Stuart, Butler, et al., Cell 2019) that offers various functions to perform analysis of scRNA-Seq data on the R console. In the singleCellTK, we implement all the common steps of the proposed workflow in an interactive and easy to use graphical interface including interactive visualizations. The purpose of this curated workflow is to allow the users to follow a standardized step-by-step workflow for an effortless analysis of their data.
A general workflow for the Feature Selection sub-tab is summarized in the figure below:
In this tutorial example, we illustrate all the steps of the curated workflow and focus on the options available to manipulate and customize the steps of the workflow as per user requirements. To initiate the Seurat
workflow, click on the ‘Curated Workflows’ from the top menu and select Seurat
.
NOTE: This tutorial assumes that the data has already been uploaded via the upload tab of the toolkit and filtered before using the workflow.
Assuming that the data has been uploaded via the Upload tab of the toolkit, the first step for the analysis of the data is the Normalization of data. For this purpose, any assay available in the uploaded data can be used against one of the three methods of normalization available through Seurat
i.e. LogNormalize
, CLR
(Centered Log Ratio) or RC
(Relative Counts).
assay
to normalize from the dropdown menu.LogNormalize
, CLR
or RC
.10000
.Once normalization is complete, data needs to be scaled and centered accordingly. Seurat
uses linear
(linear model), poisson
(generalized linear model) or negbinom
(generalized linear model) as a regression model.
linear
, poisson
or negbinom
.Identification of the highly variable genes is core to the Seurat
workflow and these highly variable genes are used throughout the remaining workflow. Seurat
provides three methods for variable genes identification i.e. vst
(uses local polynomial regression to fit a relationship between log of variance and log of mean), mean.var.plot
(uses mean and dispersion to divide features into bins) and dispersion
(uses highest dispersion values only).
vst
, mean.var.plot
and dispersion
.2000
.Seurat
workflow offers PCA
or ICA
for dimensionality reduction and the components from these methods can be used in the downstream analysis. Moreover, several plots are available for the user to inspect the output of the dimensionality reduction such as the standard ‘PCA Plot’, ‘Elbow Plot’, ‘Jackstraw Plot’ and ‘Heatmap Plot’.
50
.TRUE
.‘tSNE’ and ‘UMAP’ can be computed and plotted once components are available from ‘Dimensionality Reduction’ tab.
Cluster labels can be generated for all cells/samples using one of the computed reduction method. Plots are automatically re-computed with cluster labels. The available algorithms for clustering as provided by Seurat
include original Louvain algorithm
, Louvain algorithm with multilevel refinement
and SLM algorithm
.
original Louvain algorithm
, Louvain algorithm with multilevel refinement
and SLM algorithm
0.8
.TRUE
.‘Find Markers’ tab can be used to identify and visualize the marker genes using on of the provided visualization methods. The tab offers identification of markers between two selected phenotype groups or between all groups and can be decided at the time of the computation. Furthermore, markers that are conserved between two phenotype groups can also be identified. Visualizations such as Ridge Plot, Violin Plot, Feature Plot and Heatmap Plot can be used to visualize the individual marker genes.
1. Select if you want to identify marker genes against all groups in a biological variable or between two pre-defined groups. Additionally, users can select the last option to identify the marker genes that are conserved between two groups. 2. Select phenotype variable that contains the grouping information. 3. Select test used for marker genes identification. 4. Select if only positive markers should be returned. 5. Press “Find Markers” button to run marker identification.
6. Identified marker genes are populated in the table. 7. Filters can be applied on the table.
8. Filters allow different comparisons based on the type of the column of the table.
9. Table re-populated after applying filters. 10. Heatmap plot can be visualized for all genes populated in the table (9) against all biological groups in the selected phenotype variable.
11. To visualize each individual marker gene through gene plots, they can be selected by clicking on the relevant rows of the table.
12. Selected marker genes from the table are plotted with gene plots.


9 Orber Stubs/Skeletons
9.1 Orber Stubs and Skeletons Description
This example describes the API and behavior of Orber stubs and skeletons.
Server Start
Orber servers can be started in several ways. The chosen start functions determines how the server can be accessed and its behavior.
Using Module_Interface:oe_create() or oe_create_link():
- No initial data can be passed.
- Cannot be used as a supervisor child start function.
- Only accessible through the object reference returned by the start function. The object reference is no longer valid if the server dies and is restarted.
Using Module_Interface:oe_create(Env) or oe_create_link(Env):
- Initial data can be passed using Env.
- Cannot be used as a supervisor child start function.
- Only accessible through the object reference returned by the start function. The object reference is no longer valid if the server dies and is restarted.
Using Module_Interface:oe_create(Env, Options):
- Initial data can be passed using Env.
- Cannot be used as a supervisor child start function.
- Accessible through the object reference returned by the start function. If the option {regname, RegName} is used the object reference stays valid even if the server has been restarted.
- If the options {persistent, true} and {regname, {global, Name}} is used, the result from an object invocation will be the exception 'OBJECT_NOT_EXIST' only if the object has terminated with reason normal or shutdown. If the object is in the process of restarting, the result will be {error, Reason} or a system exception is raised.
- The option {pseudo, true} makes it possible to start create non-server objects. There are, however, some limitations, which are further described in the Pseudo objects section.
Using Module_Interface:oe_create_link(Env, Options):
- Initial data can be passed using Env.
- Can be used as a supervisor child start function if the option {sup_child, true} used.
- Accessible through the object reference returned by the start function. If the option {regname, RegName} is used the object reference stays valid even if the server has been restarted.
- If the options {persistent, true} and {regname, {global, Name}} is used, the result from an object invocation will be the exception 'OBJECT_NOT_EXIST' only if the object has terminated with reason normal or shutdown. If the object is in the process of restarting, the result will be {error, Reason} or a system exception is raised.
- For starting a server as a supervisor child you should use the options [{persistent, true}, {regname, {global, Name}}, {sup_child, true}] and of type transient. This configuration allows you to delegate restarts to the supervisor and still be able to use the same object reference and be able to see if the server is permanently terminated. Please note you must use supervisor/stdlib-1.7 or later and that the it returns {ok, Pid, Object} instead of just Object.
- Using the option {pseudo, true} have the same effect as using oe_create/2.
To avoid flooding Orber with old object references start erlang using the flag -orber objectkeys_gc_time Time, which will remove all object references related to servers being dead for Time seconds. To avoid extra overhead, i.e., performing garbage collect if no persistent objects are started, the objectkeys_gc_time default value is infinity. For more information, see the orber and corba documentation.
Orber still allow oe_create(Env, {Type,RegName}) and oe_create_link(Env, {Type,RegName}) to be used, but may not in future releases.
Pseudo Objects
This section describes Orber pseudo objects.
The Orber stub can be used to start a pseudo object, which will create a non-server implementation. A pseudo object introduce some limitations:
- The functions oe_create_link/2 is equal to oe_create/2, i.e., no link can or will be created.
- The BIF:s self() and process_flag(trap_exit,true) behaves incorrectly.
- The IC option {{impl, "M::I"}, "other_impl"} has no effect. The call-back functions must be implemented in a file called M_I_impl.erl
- The call-back functions must be implemented as if the IC option {this, "M::I"} was used.
- The gen_server State changes have no effect. The user can provide information via the Env start parameter and the State returned from init/2 will be the State passed in following invocations.
- The server reply Timeout has no effect.
- The compile option from has no effect.
- The option {pseudo, true} overrides all other start options.
- Only the functions, besides own definitions, init/2 (called via oe_create*/2) and terminate/2 (called via corba:dispose/1) must be implemented.
By adopting the rules for pseudo objects described above we can use oe_create/2 to create server or pseudo objects, by excluding or including the option {pseudo, true}, without changing the call-back module.
To create a pseudo object do the following:
fingolfin 127> erl Erlang (BEAM) emulator version 4.9 Eshell V4.9 (abort with ^G) 1> ic:gen(myDefinition, [{this, "MyModule::MyInterface"}]). Erlang IDL compiler version 20 ok 2> make:all(). Recompile: oe_MyDefinition Recompile: MyModule_MyInterface Recompile: MyModule_MyInterface_impl up_to_date 3> PseudoObj = MyModule_MyInterface:oe_create(Env, [{pseudo, true}]).
The call-back functions must be implemented as MyFunction(OE_THIS, State, Args), and called by MyModule_MyInterface:MyFunction(PseudoObj, Args).
Call-back Module
This section provides an example of how a call-back module may be implemented.
Arguments and Replies are determined by the IDL-code and, hence, not further described here.
%%%----------------------------------------------------------- %%% File : Module_Interface_impl.erl %%% Author : %%% Purpose : %%% Created : %%%----------------------------------------------------------- -module('Module_Interface_impl'). %%--------------- INCLUDES ----------------------------------- -include_lib("orber/include/corba.hrl"). -include_lib(".. .."). %%--------------- EXPORTS------------------------------------- %% Arity depends on IC configuration parameters and the IDL %% specification. -export([own_function/X]). %%--------------- gen_server specific ------------------------ -export([init/1, terminate/2, code_change/3, handle_info/2]). %%------------------------------------------------------------ %% function : server specific %%------------------------------------------------------------ init(InitialData) -> %% 'trap_exit' optional (have no effect if pseudo object). process_flag(trap_exit,true), %%--- Possible replies --- %% Reply and await next request {ok, State}. %% Reply and if no more requests within Time the special %% timeout message should be handled in the %% Module_Interface_impl:handle_info/2 call-back function (use the %% IC option {{handle_info, "Module::Interface"}, true}). {ok, State, Timeout} %% Return ignore in order to inform the parent, especially if it is a %% supervisor, that the server, as an example, did not start in %% accordance with the configuration data. ignore %% If the initializing procedure fails, the reason %% is supplied as StopReason. {stop, StopReason} terminate(Reason, State) -> ok. code_change(OldVsn, State, Extra) -> {ok, NewState}. %% If use IC option {{handle_info, "Module::Interface"}, true}. %% (have no effect if pseudo object). handle_info(Info, State) -> %%--- Possible replies --- %% Await the next invocation. {noreply, State}. %% Stop with Reason. {stop, Reason, State}. %%--- two-way ------------------------------------------------ %% If use IC option {this, "Module:Interface"} %% (Required for pseudo objects) own_function(This, State, .. Arguments ..) -> %% IC options this and from own_function(This, From, State, .. Arguments ..) -> %% IC option from own_function(From, State, .. Arguments ..) -> %% Send explicit reply to client. corba:reply(From, Reply), %%--- Possible replies --- {noreply, State} {noreply, State, Timeout} %% If not use IC option {this, "Module:Interface"} own_function(State, .. Arguments ..) -> %%--- Possible replies --- %% Reply and await next request {reply, Reply, State} %% Reply and if no more requests within Time the special %% timeout message should be handled in the %% Module_Interface_impl:handle_info/2 call-back function (use the %% IC option {{handle_info, "Module::Interface"}, true}). {reply, Reply, State, Timeout} %% Stop the server and send Reply to invoking object. {stop, StopReason, Reply, State} %% Stop the server and send no reply to invoking object. {stop, StopReason, State} %% Raise exception. Any changes to the internal State is lost. corba:raise(Exception). %%--- one-way ------------------------------------------------ %% If use IC option {this, "Module:Interface"} %% (Required for pseudo objects) own_function(This, State, .. Arguments ..) -> %% If not use IC option {this, "Module:Interface"} own_function(State, .. Arguments ..) -> %%--- Possible results --- {noreply, State} %% Release and if no more requests within Time the special %% timeout message should be handled in the %% Module_Interface_impl:handle_info/2 call-back function (use the %% IC option {{handle_info, "Module::Interface"}, true}). {noreply, State, Timeout} %% Stop the server with StopReason. {stop, StopReason, State} %%--------------- END OF MODULE ------------------------------


I design and develop beatiful and functional web applications
UI Designer and Developer
Kelly Mulumbi
The Nissan Performance dashboard project required creation of a user interface to compute and showcase different performance metrics.
My role in this project was to implement the UI. The page layout was developed usingHTML, CSS and afew JS libraries for the different features (JQuery, ChartJS and Datatables ). The backend was developed in Python (Flask).
To test the front end,JEST-Puppeteer, a library combining the features of both JEST and Puppeteer.
The Jenga Chess League is an application used by Jenga Tech Solutions to manage and display the leaderboard for their local chess tournament.
In this project, I designed and developed the UI. The technology used here wasReactJS
The Nivanna Interiors project was a informational site for a local retail company, Nivanna Interiors Ltd, that specializes in the sale of household interior design items like curtains, artwork and the likes.
The client in this case had an existing website developed in wordpress. The requirement was to use the same platform to create a new website.
In this project, I designed and developed the UI in HTML, after which I converted the HTML template to a Wordpress template.
Triple C (formerly Capital C Consulting) is gender based Non profit organisation, that seeks sto emplower women run businesses.
In this project, the requirement was to create a website and provide a Content Management System (CMS) for an admin user to update the content of the website.
I developed the UI using HTML/CSS while the backend (CMS) was created using a Python, Django based CMS (Mezzanine). The application was then deployed on aws.


Hello, world!
Loc Mai was here
It's better with
APP PASSWORD
if you have 2-FA turned on
Getting Token successfully will generate an Android Session in your
Security Settings
Facebook Credentials
ID
Password
Get Token
Result
It's better with APP PASSWORD if you have 2-FA turned on