|
MoraLife
1.3.4
A Digital Conscience for your iOS device.
|
Choice data entry screen. More...
#import <ChoiceViewController.h>
Instance Methods | |
| (IBAction) | - showChoiceDetailEntry |
| Accepts User input to present ChoiceDetailViewController for User to enter in additional details. More... | |
| (IBAction) | - severityChange: |
| Accepts User input to change the severity of the current Choice. More... | |
| (IBAction) | - showChoiceModal: |
| Accepts User input to present ChoiceModalViewController for User to enter in Moral. More... | |
| (IBAction) | - showHistoryModal: |
| Accepts User input to present ChoiceHistoryViewController for User to enter in previous choice. More... | |
| (IBAction) | - selectMoralReference: |
| Accepts User input to present ConscienceHelpViewController help screen for User to identify selected Moral. More... | |
| (IBAction) | - commitChoice: |
| Accepts User input to commit choice to UserData, will present help if commit is impossible. More... | |
| (IBAction) | - cancelChoice: |
| Accepts User input to present ConscienceHelpViewController help screen for User to identify selected Moral. More... | |
| Instance Methods inherited from MoraLifeViewController | |
| (id) | - initWithNibName:bundle:modelManager:andConscience: |
| Nib version of Init that creates the viewController with the User's Conscience. More... | |
| (id) | - initWithModelManager:andConscience: |
| Creates the viewController with the User's Conscience. More... | |
| (UIImage *) | - prepareScreenForScreenshot |
| Clears the conscience off the screen before taking a screenshot. More... | |
| Instance Methods inherited from <ViewControllerLocalization> | |
| (void) | - localizeUI |
| Should provide AccessibiltyHints and Accessibility Labels for all UI. More... | |
| Instance Methods inherited from <UserConscienceTouchProtocol> | |
| (void) | - userConscienceTouchBegan |
| Action when the User has began touching the Conscience. More... | |
| (void) | - userConscienceTouchEnded |
| Action when the User has stopped touching the Conscience. More... | |
Additional Inherited Members | |
| Protected Attributes inherited from MoraLifeViewController | |
| ModelManager * | _modelManager |
| UserConscience * | _userConscience |
| ConscienceHelpViewController * | _conscienceHelpViewController |
Choice data entry screen.
Implementation: Allows User to enter in Choice data.
Second screen in Moral Entry Workflow. User can either Virtue or Vice depending upon previously selected option.
Commits data to UserData.
Allows access to ChoiceModalViewController to select Virtue/Vice and ChoiceDetailViewController for extended entries. Affects UserConscience by increasing/decreasing mood/enthusiasm.
| - (IBAction) cancelChoice: | (id) | sender |
Accepts User input to present ConscienceHelpViewController help screen for User to identify selected Moral.
Implementation: Cancel all choice attributes, delete NSUserDefault values, dismiss view.
| sender | Object which requested method |
| - (IBAction) commitChoice: | (id) | sender |
Accepts User input to commit choice to UserData, will present help if commit is impossible.
Implementation: Determine if commit is possible.
| sender | Object which requested method |
If not, present ConscienceHelpViewController to alert User to issue.
| - (IBAction) selectMoralReference: | (id) | sender |
Accepts User input to present ConscienceHelpViewController help screen for User to identify selected Moral.
Implementation: Present ConscienceHelpViewController that shows User extended definition of Moral selected.
| sender | Object which requested method |
| - (IBAction) severityChange: | (id) | sender |
Accepts User input to change the severity of the current Choice.
Implementation: Set Choice Severity and reflect change in UI.
| sender | Object which requested method |
| - (void) showChoiceDetailEntry |
Accepts User input to present ChoiceDetailViewController for User to enter in additional details.
Implementation: Present ChoiceDetailViewController to User from UINavigationBar button.
| - (IBAction) showChoiceModal: | (id) | sender |
Accepts User input to present ChoiceModalViewController for User to enter in Moral.
Implementation: Present ChoiceModalViewController to all User to enter in Choice Moral.
| sender | Object which requested method |
| - (IBAction) showHistoryModal: | (id) | sender |
Accepts User input to present ChoiceHistoryViewController for User to enter in previous choice.
Implementation: Present ChoiceHistoryViewController to all User to enter in previous choice.
| sender | Object which requested method |


Link with href
Font Awesome fonts
https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css
fa-arrows ->
fa-arrow-circle-right ->
fa-arrow-circle-up ->
fa-arrow-circle-left ->
fa-arrow-circle-down ->
fa-arrow-left ->
fa-arrow-right ->
fa-arrow-down ->
fa-arrow-up ->
fa-ambulance ->
fa-angle-double-left ->
fa-angle-left ->
fa-anchor ->
fa-apple ->
fa-at ->
fa-angellist ->
fa-amazon ->
fa-asl-interpreting ->
fa-address-book ->
fa-address-card ->
fa-area-chart ->
fa-border ->
fa-barcode ->
fa-book ->
fa-bold ->
fa-bookmark ->
fa-bar-chart ->
fa-ban ->
fa-bullhorn ->
fa-bars ->
fa-briefcase ->
fa-building-o ->
fa-beer ->
fa-bell ->
fa-check ->
fa-close ->
fa-cog ->
fa-clock-o ->
fa-camera ->
fa-check-square-o ->
fa-chevron-right ->
fa-check-circle ->
fa-check-circle-o ->
fa-crosshairs ->
fa-comment ->
fa-chevron-up ->
fa-cogs ->
fa-compress ->
fa-comments ->
fa-calendar ->
fa-camera-retro ->
fa-cloud ->
fa-chain ->
fa-caret-down ->
fa-caret-up ->
fa-coffee ->
fa-clipboard ->
fa-cloud-upload ->
fa-crop ->
fa-download ->
fa-dedent ->
fa-dashboard ->
fa-desktop ->
fa-dollar ->
fa-dropbox ->
fa-dribbble ->
fa-dot-circle-o-right ->
fa-delicious ->
fa-digg ->
fa-diamond ->
fa-deafness ->
fa-deaf ->
fa-drivers-license ->
fa-drivers-license-o ->
fa-envelop ->
fa-edit ->
fa-envelop-o ->
fa-eject ->
fa-expand ->
fa-exclamation-triangle ->
fa-eye ->
fa-eye-slash ->
fa-external-link ->
fa-exchange ->
fa-eraser ->
fa-exclamation ->
fa-ellipsis-v ->
fa-external-link-square ->
fa-euro ->
fa-fw ->
fa-flip-horizontal ->
fa-flip-vertical ->
fa-flag ->
fa-font ->
fa-fast-forward ->
fa-fast-backward ->
fa-forward ->
fa-folder ->
fa-fire ->
fa-folder-open ->
fa-facebook-square ->
fa-facebook-f ->
fa-feed ->
fa-filter ->
fa-flask ->
fa-floppy-o ->
fa-flag-checkered ->
fa-folder-open-o ->
fa-fire-extinguisher ->
fa-file-rub ->
fa-flickr ->
fa-file ->
fa-fax ->
fa- ->
fa- ->
fa- ->
fa- ->
fa- ->
fa- ->
fa- ->
fa- ->
fa- ->
fa- ->
fa- ->
fa- ->
fa- ->
fa- ->
fa- ->
fa- ->


Recommendation
EASy Producer requires Xtext at least in version 2.9.2 which will typically be installed with the tool automatically. However, if you encounter any errors regarding a missing Xtext installation, please install Xtext 2.9.2 via the Xtext Update Site. As we experienced some installation problems with
Eclipse Indigo (required package validation), we currently recommend Eclipse Mars or Eclipse Neon.
Nightly builds
Instead of the released version, you may also try out the most recent nightly build. Below is a recommended installation procedure (which can also help in case of installation problems with the released version):
- Install JDK 1.8
- Install the latest version of Eclipse, e.g., for Eclipse Neon for committers (please select according to your OS)
- Restart Eclipse
- Install EASy Nightly Core Bundles from http://projects.sse.uni-hildesheim.de/eclipse/update-sites/easy_nightly/
- Restart Eclipse
We tested EASy-Producer also with Eclipse 4.19.0, where -Dosgi.dataAreaRequiresExplicitInit=true must be commented out in eclipse.ini. Due to dependencies to older Eclipse bundles, EASy-Producer may not run with newer versions of Eclipse.
EASy-Producer Source Code
EASy-Producer is licensed under the Apache License, Version 2.0. You can follow EASy Producer on Github.


New ASP.Net Core Project
Authentication
Azure Active Directory B2C instance:
Sign-in and sign-up policy ID:
Reset password policy ID:
Edit profile policy ID:
Azure Active Directory instance:
Client ID:
Directory tenant domain:
Directory tenant ID:
Callback path:
Directory read access:
Use LocalDB:
No https


#define _GNU_SOURCE /* See feature_test_macros(7) */ #include <link.h> int dl_iterate_phdr( int (*callback) (struct dl_phdr_info *info, size_t size, void *data), void *data);
The dl_iterate_phdr() function walks through the list of an application's shared objects and calls the function callback once for each object, until either all shared objects have been processed or callback returns a nonzero value.
Each call to callback receives three arguments: info, which is a pointer to a structure containing information about the shared object; size, which is the size of the structure pointed to by info; and data, which is a copy of whatever value was passed by the calling program as the second argument (also named data) in the call to dl_iterate_phdr().
The info argument is a structure of the following type:
struct dl_phdr_info { ElfW(Addr) dlpi_addr; /* Base address of object */ const char *dlpi_name; /* (Null-terminated) name of object */ const ElfW(Phdr) *dlpi_phdr; /* Pointer to array of ELF program headers for this object */ ElfW(Half) dlpi_phnum; /* # of items in dlpi_phdr */ };
(The ElfW() macro definition turns its argument into the name of an ELF data type suitable for the hardware architecture. For example, on a 32-bit platform, ElfW(Addr) yields the data type name Elf32_Addr. Further information on these types can be found in the <elf.h> and <link.h> header files.)
The dlpi_addr field indicates the base address of the shared object (i.e., the difference between the virtual memory address of the shared object and the offset of that object in the file from which it was loaded). The dlpi_name field is a null-terminated string giving the pathname from which the shared object was loaded.
To understand the meaning of the dlpi_phdr and dlpi_phnum fields, we need to be aware that an ELF shared object consists of a number of segments, each of which has a corresponding program header describing the segment. The dlpi_phdr field is a pointer to an array of the program headers for this shared object. The dlpi_phnum field indicates the size of this array.
These program headers are structures of the following form:
typedef struct { Elf32_Word p_type; /* Segment type */ Elf32_Off p_offset; /* Segment file offset */ Elf32_Addr p_vaddr; /* Segment virtual address */ Elf32_Addr p_paddr; /* Segment physical address */ Elf32_Word p_filesz; /* Segment size in file */ Elf32_Word p_memsz; /* Segment size in memory */ Elf32_Word p_flags; /* Segment flags */ Elf32_Word p_align; /* Segment alignment */ } Elf32_Phdr;
Note that we can calculate the location of a particular program header, x, in virtual memory using the formula:
addr == info->dlpi_addr + info->dlpi_phdr[x].p_vaddr;
#define _GNU_SOURCE #include <link.h> #include <stdlib.h> #include <stdio.h> static int callback(struct dl_phdr_info *info, size_t size, void *data) { int j; printf("name=%s (%d segments)\n", info->dlpi_name, info->dlpi_phnum); for (j = 0; j < info->dlpi_phnum; j++) printf("\t\t header %2d: address=%10p\n", j, (void *) (info->dlpi_addr + info->dlpi_phdr[j].p_vaddr)); return 0; } int main(int argc, char *argv[]) { dl_iterate_phdr(callback, NULL); exit(EXIT_SUCCESS); }
Executable and Linking Format Specification, available at various locations online.


Ph.D. in Machine Learning
School of Computer Science
Carnegie Mellon University
B.S. in CS + Applied Math
Fu Foundation School of Engineering and Applied Science
Columbia University, Class of 2020
High School Diploma
Hankuk Academy of Foreign Studies, Class of 2016


These cookies are cut with out famous Salmon Cookie Cutter into the shape of a salmon. We actually make these cookies with freshly caught wild Alaskan Salmon!
We are family owned! Here is a picture of our family eating chocolate chip cookies!!


|
Welcome to my world wide web site on the information superhighway!
I use this web site for all kinds of fun things, but usually they're a work in progress.
Chances are good if you find it here it's probably broken.
Some super fun things probably broken recently include:
|


For each output variable, the Combinational Analysis window maintains two structures - the relevant column of the truth table, and a Boolean expression - specifying how each output relates to its input. You can edit either the truth table or the expression; the other will automatically change as necessary to keep them consistent.
As we will see on the next page, the Boolean expressions are particularly useful because the Combinational Analysis window will use these when told to build a circuit corresponding to the current state.
You can view and edit the expressions using the window's last two tabs, the Expression tab and the Minimized tab.
The Expression tab allows you to view and edit the current expression associated with each output variable. You can select the output expression you want to view and edit using the selector labeled "Output:" at the pane's top.
Just below the selector will appear the expression formatted in a particularly common notation, where an OR is represented as addition, an AND is represented as multiplication, and a NOT is denoted with a bar above the portion affected by the NOT.
The text pane below this displays the same information in ASCII form. Here, a NOT is represented with a tilde ('~').
You can edit the expression in the text pane and click the Enter button to make it take effect; doing this will also update the truth table to make it correspond. The Clear button clears the text pane, and the Revert button changes the pane back to representing the current expression.
Note that your edited expression will be lost if you edit the truth table.
In addition to multiplication and addition standing for AND and OR, an expression you type may contain any of C/Java logical operators, as well as simply the words themselves.
| highest precedence | ~ ! ' | NOT |
|---|---|---|
| (none) & && | AND | |
| ^ | XOR | |
| lowest precedence | + | || | OR |
The following examples are all valid representations of the same expression. You could also mix the operators.
| a' (b + c) |
| !a && (b || c) |
| NOT a AND (b OR c) |
In general, parentheses within a sequence of ANDs (or ORs or XORs) do not matter. (In particular, when Logisim creates a corresponding circuit, it will ignore such parentheses.)
The final tab displays a minimized expression corresponding to a column of the truth table. You can select which output's minimized expression you want to view using the selector at top, and you can indicate whether you want to derive a sum-of-products expression or a product-of-sums expression using the selector below.
If there are four or fewer inputs, a Karnaugh map corresponding to the variable will appear below the selector. You can click the Karnaugh map to change the corresponding truth table values. The Karnaugh map will also display the currently selected terms for the minimized expression as solid semitransparent rounded rectangles.
Below this is the minimized expression itself, formatted as in the Expression tab's display. If there are more than four inputs, the Karnaugh map will not appear; but the minimized expression will still be computed. (Logisim uses the Quine-McCluskey algorithm to compute the minimized expression. This is equivalent to a Karnaugh map, but it applies to any number of input variables.)
The Set As Expression button allows you to select the minimized expression as the expression corresponding to the variable. This will generally not be necessary, as edits to the truth table result in using the minimized expression for the changed column; but if you enter an expression through the Expression tab, this can be a convenient way to switch to the corresponding minimized expression.
Next: Generating a circuit.


Preparation time
less than 30 mins
Cooking time
over 2 hours
Serves
Serves 6
These slow-roasted lamb shanks couldn't be simpler to make and the result is meltingly tender lamb.
Heat the oil in a heatproof casserole over a high heat and brown the lamb shanks all over, until evenly coloured.
Add the carrot, onion, peppercorns, garlic and herbs.
Pour over enough wine to cover the meat of the shanks - about a whole bottle - then set the casserole aside to cool. Chill in the fridge overnight. (This helps to tenderise the meat.)
The next day, preheat the oven to 160C/325F/Gas 3. Place the casserole, covered with a lid, into the oven and cook for 2-2½ hours, or until the meat is tender. Slightly uncover the pot for the last hour so that the liquid will start to reduce. If the simmering becomes too lively during cooking, reduce the temperature slightly.
Remove the casserole from the oven. Remove the shanks from the cooking liquid and place in a roasting dish. Spoon over a couple of ladles of the cooking liquid to keep the shanks moist. Reserve the remaining cooking liquid. Roast the shanks in the oven for 45-60 minutes, or until the meat is falling off the bone.
Remove the vegetables from the cooking liquid with a slotted spoon or strain the liquid through a sieve.
Heat the cooking liquid until boiling, then boil until the volume has reduced by half. Stir in the redcurrant jelly until melted.
Serve the lamb shanks and reserved vegetables (from the cooking liquid) with mashed potatoes, seasonal vegetables and the gravy.


module Mixer:sig
..end
Basic audio mixer for sound effects.
This simple audio mixer makes it possible to play quick sounds, for instance when clicking on buttons, or for game sounds effects.
Only WAV files are supported. For playing MP3 music, and for more options, it is advisable to use the SDL_Mixer library.
Remark: This module is essentially independent of the rest of Bogue, so its source can, with very few modifications, be used for any SDL application.
Remark: Under Windows, using WLS2, it was reported that sound works if
wslg
is installed.
type
t
typesound =
(int, Stdlib.Bigarray.int16_signed_elt) Tsdl.Sdl.bigarray
type
repeat =
| |
Repeat of |
| |
Forever |
val test : unit -> unit
val init : unit -> string option
Initialize SDL audio.
None
if no audio is
available.val create_mixer : ?tracks:int -> ?freq:int -> string option -> t
create devname
creates the mixer an opens the sound device. If devname
is None
, a dummy mixer is returned, which will produce no sound. Only
s16le
format is supported by the callback at this time. The mixer is
initially paused, you need to Mixer.unpause
it before playing anything.
val load_chunk : t -> string -> sound
Load a WAV file.
val play_chunk : ?track:int ->
?effects:(sound -> unit) list ->
?volume:float ->
?repeat:repeat ->
t -> sound -> int option
Play chunk on the desired track number. If track
is not specified, find
an available track. By default repeat = Repeat 1
.
val change_volume : float -> sound -> unit
Multiply sound intensity by a float factor
val pause : t -> unit
val unpause : t -> unit
val close : t -> unit


Package
Class
Use
Tree
Deprecated
Index
Help
PREV LETTER
NEXT LETTER
FRAMES
NO FRAMES
All Classes
A
B
C
D
E
F
G
H
I
J
L
M
N
O
P
Q
R
S
T
W
X
C
CharField
- Class in
com.orm.androrm
This class can be used for any fields containing strings, that will then be serialized into the database.
CharField()
- Constructor for class com.orm.androrm.
CharField
Initializes a standard field with implicit maximum length of 255 characters.
CharField(int)
- Constructor for class com.orm.androrm.
CharField
Initializes a field and sets the maximum length, if this value is greater than 0 and less than or equal to 255.
close()
- Method in class com.orm.androrm.
DatabaseAdapter
Closes the current connection to the database.
com.orm.androrm
- package com.orm.androrm
ComposedStatement
- Class in
com.orm.androrm
This is the abstract superclass of all composed statements.
ComposedStatement(Statement, Statement)
- Constructor for class com.orm.androrm.
ComposedStatement
ComposedStatement(String, String)
- Constructor for class com.orm.androrm.
ComposedStatement
Deprecated.
contains(String, String)
- Method in class com.orm.androrm.
FilterSet
Use this function, if you want to express, that the value of the field should contain the given string.
count(Context, L)
- Method in class com.orm.androrm.
ManyToManyField
COUNT
- Static variable in class com.orm.androrm.
Model
count(Context, Class<T>, FilterSet)
- Static method in class com.orm.androrm.
Model
count(Context, Class<T>)
- Static method in class com.orm.androrm.
Model
count(Context, L)
- Method in class com.orm.androrm.
OneToManyField
count()
- Method in class com.orm.androrm.
SelectStatement
Set this select to only return the count of the results.
count(Context, O)
- Method in interface com.orm.androrm.
XToManyRelation
Get the number of referenced models.
createObject(Class<T>, Cursor)
- Static method in class com.orm.androrm.
Model
Package
Class
Use
Tree
Deprecated
Index
Help
PREV LETTER
NEXT LETTER
FRAMES
NO FRAMES
All Classes
A
B
C
D
E
F
G
H
I
J
L
M
N
O
P
Q
R
S
T
W
X


Hi, I'm Scott Jason..
I'm a software engineer living in San Francisco.
Here's a bit about me.
When I was a junior in college I started a band with a friend of mine. I never imagined it'd last for over ten years. I wrote the music and lyrics and played the piano. Eventually, the first single would hit number one on the Billboard Heat Seeker Charts and the band would go on to become a VH1 'You Oughtta Know Artist', become RIAA Certified Gold and share the stage with some of the most talented musicians in the world. Find out more about Thriving Ivory or visit iTunes, Spotify, et al.
For the first five of those years the band wasn't signed and in an effort to create and maintain an online presence, I began teaching myself the fundamentals of web development.
Fast-foward to today and I'm a full-time Software Engineer who loves architecting big projects and taking on big features. I specialize in all things Javascript and am especially proficient in Angular.js, React.js and Node.js. I can create near pixel-perfect UI's off a designer's images and am equally as comfortable working on the server. For a more thorough list of languages and frameworks, please download my resume.
"There are two ways of constructing a software design. One way is to make it so simple that there are obviously no deficiencies. And the other way is to make it so complicated that there are no obvious deficiencies.”
― Charles Antony Richard Hoare, ACM Turing Award 1980
Writing readable code with structure, simplicity and intent is something I strive for because I believe it lends itself not only to a manageable codebase but oftentimes to the quality of the code itself and the application as a whole.
I love working and collaborating with other developers, learning from seasoned pros and teaching those new to the craft.
In a nutshell, I love to build stuff.


Class AmazonS3RemoteDataStore
The Amazon S3 Remote Data Store allows Sensus to upload data from the device to Amazon's Simple Storage Service (S3). The
S3 service is a simple, non-relational storage system that is relatively cheap, easy to use, and robust.
Prerequisites
- Sign up for an account with Amazon Web Services, if you don't have one already. The Free Tier is sufficient.
- Install the AWS Command Line Interface(CLI).
- Download and unzip our AWS configuration scripts.
- Run the following command to configure an S3 bucket for use within a Sensus Amazon S3 Remote Data Store, where
NAME
is an informative name
(alphanumerics and dashes only) and REGION
is the region in which your bucket will reside (e.g., us-east-1
):
./configure-s3.sh NAME REGION
- The previous command will create a bucket as well as an IAM group and user with write-only access to the bucket. If successful, the command will
output something like the following:
Done. Details:
Sensus S3 bucket: test-bucket-eee8ef46-5d6a-4508-b745-e6635d195a85
Sensus S3 IAM account: XXXX:XXXX
- The bucket and IAM account produced on the final line should be kept confidential. Use these values as Bucket and
IamAccountString, respectively.
Downloading Data from Amazon S3
Install the AWS Command Line Interface. Assuming you have created and populated an S3 bucket named BUCKET
and
a folder named FOLDER
, you can download all of your Sensus data in a few different ways:
- You can use the functions (e.g.,
sensus.sync.from.aws.s3
) in the SensusR package.
You can execute the following command to download everything to a directory named data
on your desktop:
aws s3 cp --recursive s3://BUCKET/FOLDER ~/data
You can use a third-party application like Bucket Explorer to browse and download data from Amazon S3.
Deconfiguration
If you are finished collecting data and you would like to prevent any future data submission, you can deconfigure the IAM group and user
with the following command, where BUCKET
corresponds to the Sensus S3 bucket name created above:
./deconfigure-s3.sh BUCKET
The preceding command will not delete your bucket or data.
Inheritance
System.Object
AmazonS3RemoteDataStore
Assembly: SensusAndroid.dll
Syntax
public class AmazonS3RemoteDataStore : RemoteDataStore
Constructors
AmazonS3RemoteDataStore()
Declaration
public AmazonS3RemoteDataStore()
Fields
ADAPTIVE_EMA_POLICIES_DIRECTORY
The adaptive EMA policies directory.
Declaration
public const string ADAPTIVE_EMA_POLICIES_DIRECTORY = "adaptive-ema-policies"
Field Value
| Type |
Description |
| System.String |
|
DATA_DIRECTORY
Declaration
public const string DATA_DIRECTORY = "data"
Field Value
| Type |
Description |
| System.String |
|
PUSH_NOTIFICATIONS_DIRECTORY
The push notifications directory.
Declaration
public const string PUSH_NOTIFICATIONS_DIRECTORY = "push-notifications"
Field Value
| Type |
Description |
| System.String |
|
PUSH_NOTIFICATIONS_REQUESTS_DIRECTORY
The push notifications requests directory.
Declaration
public const string PUSH_NOTIFICATIONS_REQUESTS_DIRECTORY = "push-notifications/requests"
Field Value
| Type |
Description |
| System.String |
|
PUSH_NOTIFICATIONS_TOKENS_DIRECTORY
The push notifications tokens directory.
Declaration
public const string PUSH_NOTIFICATIONS_TOKENS_DIRECTORY = "push-notifications/tokens"
Field Value
| Type |
Description |
| System.String |
|
PUSH_NOTIFICATIONS_UPDATES_DIRECTORY
The push notifications updates directory.
Declaration
public const string PUSH_NOTIFICATIONS_UPDATES_DIRECTORY = "push-notifications/updates"
Field Value
| Type |
Description |
| System.String |
|
SENSING_POLICIES_DIRECTORY
The sensing policies directory.
Declaration
public const string SENSING_POLICIES_DIRECTORY = "sensing-policies"
Field Value
| Type |
Description |
| System.String |
|
Properties
Bucket
The AWS S3 bucket in which data should be stored. This is the bucket identifier output by the steps described in the summary for this class.
Declaration
[EntryStringUiProperty(null, true, 2, true)]
public string Bucket { get; set; }
Property Value
| Type |
Description |
| System.String |
The bucket.
|
CanRetrieveWrittenData
Declaration
public override bool CanRetrieveWrittenData { get; }
Property Value
| Type |
Description |
| System.Boolean |
|
Overrides
DisplayName
Declaration
public override string DisplayName { get; }
Property Value
| Type |
Description |
| System.String |
|
Overrides
Folder
The folder within Bucket where data should be stored.
Declaration
[EntryStringUiProperty(null, true, 3, false)]
public string Folder { get; set; }
Property Value
| Type |
Description |
| System.String |
The folder.
|
IamAccountString
The IAM user's access and secret keys output by the steps described in the summary for this class.
Declaration
[EntryStringUiProperty("IAM Account:", true, 4, true)]
public string IamAccountString { get; set; }
Property Value
| Type |
Description |
| System.String |
The iam account string.
|
PinnedPublicKey
Declaration
[EntryStringUiProperty("Pinned Public Key:", true, 6, false)]
public string PinnedPublicKey { get; set; }
Property Value
| Type |
Description |
| System.String |
The pinned public key.
|
PinnedServiceURL
Declaration
[EntryStringUiProperty("Pinned Service URL:", true, 5, false)]
public string PinnedServiceURL { get; set; }
Property Value
| Type |
Description |
| System.String |
The pinned service URL.
|
Region
The AWS region in which Bucket resides (e.g., us-east-2).
Declaration
[ListUiProperty(null, true, 1, new object[]{"us-east-1", "us-east-2", "us-west-1", "us-west-2", "ca-central-1", "ap-south-1", "ap-northeast-2", "ap-southeast-1", "ap-southeast-2", "ap-northeast-1", "eu-central-1", "eu-west-1", "eu-west-2", "sa-east-1", "us-gov-west-1"}, true)]
public string Region { get; set; }
Property Value
| Type |
Description |
| System.String |
The region.
|
StorageDescription
Declaration
public override string StorageDescription { get; }
Property Value
| Type |
Description |
| System.String |
|
Overrides
Methods
DeletePushNotificationRequestAsync(Guid, CancellationToken)
Declaration
public override Task DeletePushNotificationRequestAsync(Guid backendKey, CancellationToken cancellationToken)
Parameters
| Type |
Name |
Description |
| System.Guid |
backendKey |
|
| System.Threading.CancellationToken |
cancellationToken |
|
Returns
| Type |
Description |
| System.Threading.Tasks.Task |
|
Overrides
DeletePushNotificationTokenAsync(CancellationToken)
Declaration
public override Task DeletePushNotificationTokenAsync(CancellationToken cancellationToken)
Parameters
| Type |
Name |
Description |
| System.Threading.CancellationToken |
cancellationToken |
|
Returns
| Type |
Description |
| System.Threading.Tasks.Task |
|
Overrides
GetDatumAsync<T>(String, CancellationToken)
Declaration
public override Task<T> GetDatumAsync<T>(string datumKey, CancellationToken cancellationToken)
where T : Datum
Parameters
| Type |
Name |
Description |
| System.String |
datumKey |
|
| System.Threading.CancellationToken |
cancellationToken |
|
Returns
| Type |
Description |
| System.Threading.Tasks.Task<T> |
|
Type Parameters
Overrides
GetDatumKey(Datum)
Declaration
public override string GetDatumKey(Datum datum)
Parameters
| Type |
Name |
Description |
| Datum |
datum |
|
Returns
| Type |
Description |
| System.String |
|
Overrides
GetPushNotificationUpdatesAsync(CancellationToken)
Declaration
public override Task<List<PushNotificationUpdate>> GetPushNotificationUpdatesAsync(CancellationToken cancellationToken)
Parameters
| Type |
Name |
Description |
| System.Threading.CancellationToken |
cancellationToken |
|
Returns
Overrides
GetScriptAgentPolicyAsync(CancellationToken)
Gets the policy for the IScriptProbeAgent from the current AmazonS3RemoteDataStore.
This method will download the policy JSON object from the following location:
BUCKET/DIRECTORY/DEVICE
where BUCKET
is Bucket, DIRECTORY
is the value of ADAPTIVE_EMA_POLICIES_DIRECTORY, and
DEVICE
is the identifier of the current device as returned by DeviceId. This is the same device
identifier used within all Datum objects generated by the current device. This is also the same device identifier
stored in all JSON objects written to the AmazonS3RemoteDataStore. To provide a policy JSON object, write the policy
JSON object to the above S3 location. The content of this S3 location will be read, parsed as Newtonsoft.Json.Linq.JObject, and delivered to the
IScriptProbeAgent via SetPolicyAsync(JObject).
Declaration
public override Task<JObject> GetScriptAgentPolicyAsync(CancellationToken cancellationToken)
Parameters
| Type |
Name |
Description |
| System.Threading.CancellationToken |
cancellationToken |
Cancellation token.
|
Returns
| Type |
Description |
| System.Threading.Tasks.Task<Newtonsoft.Json.Linq.JObject> |
The script agent policy.
|
Overrides
GetSensingAgentPolicyAsync(CancellationToken)
Gets the policy for the Agent from the current AmazonS3RemoteDataStore.
This method will download the policy JSON object from the following location:
BUCKET/DIRECTORY/DEVICE
where BUCKET
is Bucket, DIRECTORY
is the value of SENSING_POLICIES_DIRECTORY, and
DEVICE
is the identifier of the current device as returned by DeviceId. This is the same device
identifier used within all Datum objects generated by the current device. This is also the same device identifier
stored in all JSON objects written to the AmazonS3RemoteDataStore. To provide a policy JSON object, write the policy
JSON object to the above S3 location. The content of this S3 location will be read, parsed as Newtonsoft.Json.Linq.JObject, and delivered to the
Agent via SetPolicyAsync(JObject).
Declaration
public override Task<JObject> GetSensingAgentPolicyAsync(CancellationToken cancellationToken)
Parameters
| Type |
Name |
Description |
| System.Threading.CancellationToken |
cancellationToken |
Cancellation token.
|
Returns
| Type |
Description |
| System.Threading.Tasks.Task<Newtonsoft.Json.Linq.JObject> |
The sensing agent policy.
|
Overrides
Reset()
Declaration
public override void Reset()
Overrides
SendPushNotificationRequestAsync(PushNotificationRequest, CancellationToken)
Declaration
public override Task SendPushNotificationRequestAsync(PushNotificationRequest request, CancellationToken cancellationToken)
Parameters
Returns
| Type |
Description |
| System.Threading.Tasks.Task |
|
Overrides
SendPushNotificationTokenAsync(String, CancellationToken)
Declaration
public override Task SendPushNotificationTokenAsync(string token, CancellationToken cancellationToken)
Parameters
| Type |
Name |
Description |
| System.String |
token |
|
| System.Threading.CancellationToken |
cancellationToken |
|
Returns
| Type |
Description |
| System.Threading.Tasks.Task |
|
Overrides
StartAsync()
Declaration
public override Task StartAsync()
Returns
| Type |
Description |
| System.Threading.Tasks.Task |
|
Overrides
TestHealthAsync(List<AnalyticsTrackedEvent>)
Declaration
public override Task<HealthTestResult> TestHealthAsync(List<AnalyticsTrackedEvent> events)
Parameters
Returns
Overrides
WriteDataStreamAsync(Stream, String, String, CancellationToken)
Declaration
public override Task WriteDataStreamAsync(Stream stream, string name, string contentType, CancellationToken cancellationToken)
Parameters
| Type |
Name |
Description |
| System.IO.Stream |
stream |
|
| System.String |
name |
|
| System.String |
contentType |
|
| System.Threading.CancellationToken |
cancellationToken |
|
Returns
| Type |
Description |
| System.Threading.Tasks.Task |
|
Overrides
WriteDatumAsync(Datum, CancellationToken)
Declaration
public override Task WriteDatumAsync(Datum datum, CancellationToken cancellationToken)
Parameters
| Type |
Name |
Description |
| Datum |
datum |
|
| System.Threading.CancellationToken |
cancellationToken |
|
Returns
| Type |
Description |
| System.Threading.Tasks.Task |
|
Overrides


The Engine Class ✓ should be a singleton class init method ✓ should initialize a new Engine instance if none exist by calling the Engine constructor, and kicking off the resourceLoader ✓ should return the engine instance if it has already been initialized constructor ✓ should create a new Engine instance with EventProxied properties (fps, loading) and standard enumerable properties (scene, running, settings) Engine instance GL getter method ✓ should return the read-only GraphicsLibary once loaded baby getter method ✓ should return the read-only GraphicsLibary Engine instance once mounted canvas getter method ✓ should return the read-only canvas element once mounted provider getter method ✓ should return the read-only ResourceProvider once loaded ctrl getter method ✓ should return the read-only PlayerController instance logger getter method ✓ should return the read-only logger instance terrain getter and setter methods ✓ should set and get the engine's terrain entity mount method ✓ should return a promise that mounts the engine to the provided canvas element after the ResourceProvider and GraphicsLibrary have been loaded (resolves to self) dismount method ✓ should return a promise that stops the engine render process when running, dismounts and deletes the scene, along with the GraphicsLibrary Engine instance and canvas element before resolving to self ✓ should return a promise dismounts and deletes the scene, along with the GraphicsLibrary Engine instance and canvas element before resolving to self run method ✓ should return a promise that initializes the scene with the provided entities, attaches event listeners to the canvas element, and begins the main render/update loop before resolving to self (513ms) ✓ should return a promise that attaches event listeners to the canvas element and begins the main render/update loop without adding new entites, when none provided, before resolving to self ✓ should return a promise that resolves to self with engine is already running ✓ should return a promise that resolves to self with engine is not in the correct loading state stop method ✓ should stop the render/update loop if running ✓ should just return self when engine is not running resize method ✓ should call the resize method of the GraphicsLibrary engine instance toVector method ✓ should convert a plain object with (x,y,z) properties into a 3D Vector object ✓ should return a new zero vector by default emitDebugEvent method ✓ should emit a state event if settings.debug = true ✓ should not emit an event if settings.debug = false onDebugEvent method ✓ should add an event listener if settings.debug = true ✓ should not add an event listener if settings.debug = false emitEvent method ✓ should unconditionally emit a state event onEvent method ✓ should unconditionally listen to a state event registerKeyAction method ✓ should register event listeners to fire the handler provided for the key event specified, onKeyUp or onKeyDown ✓ should register an event listener for the onKeyUp event for the provided key if the upHandler argument is set ✓ should register an event listener for the onKeyDown event for the provided key if the downHandler argument is set registerMouseEventsForEntity method ✓ should set the hover cursor for the entity's primary mesh if cursor arugment is provided ✓ should set an entityClick event listener on the entity's primary mesh if click argument is provided ✓ should set an entityAltClick event listener on the entity's primary mesh if the altClick argument is provided ✓ should set an entityOver event listener on the entity's primary mesh if the over argument is provided ✓ should set an entityOut event listener on the entity's primrary mesh if the out argument is provided deregisterMouseEventsForEntity method ✓ should remove all click/altClick/over/out event listeners for the given entity's primary mesh, and reset the hover cursor style
The Entity Class ✓ should be a class that inherits from Static create method ✓ should get the entity data for the provided entity ID, create a new entity object with that data, merged with any extra data provided, then return the updateComponents method with the new object and the aggregated component data (which is a promise that eventually resolves to entity) Entity object ✓ should have id and uid properties ✓ should have a mesh method that returns the component for the _primaryMesh key, if set ✓ should have a meshAsync property that is configurable until it's returned promise resolves to the entity mesh once available, then redefining the property to resolve directly to the mesh, and no longer reconfigurable (48ms) ✓ should have a tick setter that will add a new tick method when the assignment is an object with both id and tick properties, or delete an existing tick when only an id property is in the assignment object ✓ should have a tick getter that returns a function that will fire each registered component tick method updateComponent method ✓ should return a promise that calls the update class method for the given component, stores the updated result to the entity at the property name that matches the component ID, and finally resolves to the newly- updated component updateComponents method ✓ should return a promise that sequentially updates/creates each component from the provided data using the updateComponent method, then resolve to the updated entity dismountComponent method ✓ should dismount the specified component using it's class dismount method and assigning the result (null) to the component property of the entity update method ✓ should create a new entity if none provided ✓ should call updateComponents for existing entity dismount method ✓ should dismount each component then return null tick method ✓ should call the tick method on the provided entity instance
PlayerController Class ✓ should be a singleton class round function ✓ should round a float to the second decimal place getTime method ✓ should return a 24hr timestamp of HH:mm:ss for a given date object, or the current time if no argument supplied. constructor ✓ should create a new PlayerController instance with proxied properties for messages, player, and target, as well as an engine getter PlayerController instance setup method ✓ should call registerKeyActions for the settings.input.keys configuration registerKeyActions method ✓ should call engine.registerKeyAction for each keyHandler passed in message method ✓ should functionally update this.messages by adding the new message from the provided data at the front of messages ✓ should trim messages to the provided max mClick method ✓ should not throw an error when a proper event is passed ✓ should throw an error when an improper event is passed mAltClick method ✓ should not throw an error when a proper event is passed ✓ should throw an error when an improper event is passed mWheel method ✓ should not throw an error when a proper event is passed ✓ should throw an error when an improper event is passed mOver method ✓ should not throw an error when a proper event is passed ✓ should throw an error when an improper event is passed mOut method ✓ should not throw an error when a proper event is passed ✓ should throw an error when an improper event is passed entityOver method ✓ should set the controller's target to the provided entity ✓ should throw an error when an invalid entity or event is provided entityOut method ✓ should remove the current target if the entity passed is the current target ✓ should not remove the current target if the entity passed is not the current target ✓ should throw an error when an invalid entity or event is provided entityClick method ✓ should not throw an error when a proper entity and event is passed ✓ should throw an error when an improper entity or event is passed entityAltClick method ✓ should not throw an error when a proper entity and event is passed ✓ should throw an error when an improper entity or event is passed
The Scene Class ✓ should be a singleton Constructor ✓ should create a new object with an empty children map and a null activeCamera property, as well as a non-enumerable _baby property scene instance baby getter method ✓ should get the scene._baby property mount method ✓ should set the scene._baby property to a new BabylonJS Scene dismount method ✓ should dismount each child in scene.children then delete the _baby property before returning null getEntity method ✓ should get a child entity by uid updateEntity method ✓ should return a promise that updates an entity by uid with Entity.update, then saves the updated entity back in children updateEntities method ✓ should return a promise that sequentially updates/creates each entity from the provided data using the updateEntity method, then resolve to the updated scene removeEntity method ✓ should call Entity.dismount for the entity at the provided uid, and replace the entity in scene.children with the result (null) tick method ✓ should call Entity.tick for each entity in its children
StateEventProxy StateProxy exported function (integration tests) ✓ should assign proxy properties from a list of keys to the provided object and emit state events when a property is reassigned ✓ should assign proxy properties from a map of keys and values to the provided object and emit state events when a property is reassigned StateEventProxy Class isMutateFn method ✓ should return true if provided key is an Array member-function that mutates itself ✓ should return false if provided key is not an Array member-function that mutates itself emit method ✓ should call events.emit if the scope is not disabled ✓ should not call events.emit if the scope is disabled proxifyProperty method ✓ should assign to the provided object a wrapped property that, when set, will emit a state event ✓ should assign to the provided object a deeply-proxied value when the value to be assigned is an array and deep=true ✓ should assign to the provided object a deeply-proxied value when the value to be assigned is an object and deep=true ✓ should assign to the provided object a wrapped property that is not enumerable when enumerable=false buildProxyObject method ✓ should return an object that has proxified properties forEach each property on the original object buildProxyArray method ✓ should create and return an Array Proxy that wraps sets to be deeply-watched for new values, and gets to be watched if a mutation method is requested
StateEventManager ✓ should have emit and on methods for dispatching and subscribing to events ✓ should dispatch an event with the emit method and callback the events listener for that event, registered with the on method
103 passing (1s)


{% extends 'base.html'%} {% load crispy_forms_tags%} {%block content%}
Sign-up to see photos from your friends
{{ field.label_tag }} {{ field }} {% for error in field.errors %}
{{ error }}
Have an account?Sign In


--- layout: article title: 'Back to the Neotechnic Future: An Online Chat With the Ghost of Lewis Mumford' authors: - sachs-aaron excerpt: > What would Mumford have made of cyberspace? permalink: /issues/2014/7/back-to-the-neotechnic-future-an-online-chat-with-the-ghost-of-lewis-mumford supernotes: /issues/2/3/sachs-neotechnic.json toc: 7 chapter: 2 volume: 2 number: 3 ---
Conducted by Aaron Sachs, Cornell University, April 2014.
Mumford, the great urban theorist, architecture critic, and cultural historian, has been dead for almost a quarter century. But I’ve been spending so much time with his work over the last couple of years that I sometimes have hallucinations in which he speaks to me in sentences from his books. (That’s normal for scholars, right?) He was so broad-minded that his words seem germane to numerous situations. Indeed, the relevance of his thinking to the 21st century has reinforced my suspicion that we have not entered a completely new “postmodern” era but are merely experiencing an intensification or radicalization of certain modern trends—trends that Mumford analyzed back in the 1920s and 30s with a bracing freshness. And yet, some developments—the Internet, most importantly—do seem utterly novel. What would Mumford have made of cyberspace?
At least one fan of his work thinks it’s pretty obvious. In the 2010 re-issue of Mumford’s Technics and Civilization, put out by the University of Chicago Press, a publisher’s note warns that the Press chose not to include Mumford’s 15 pages of illustrations, explaining that “it is not practical to reproduce those images here—nor is it necessary, in an age when readers can find the same, or similar, images on the Internet (an invention Mumford would have loved).”
But would Mumford have loved the Internet? Technics and Civilization itself features some intriguing answers. The text turns eighty this year, and the voice behind it sounds a bit grumpy, but still quite… what’s the word? Animated?
Mumford was perhaps the most prominent public intellectual of the first half of the twentieth century. He’s made a comeback recently among environmental scholars, thanks largely to his elaboration of a kind of bioregionalism. And he could surely be useful to those who analyze cities and technology. In Technics, he famously divided modern human history into three key periods: the promising eotechnic age, characterized by humble institutions like grist mills and by a general sense of sufficiency; the devastating paleotechnic age, when industrialism took hold and mining the earth became a defining human activity; and the gradually dawning neotechnic age, the era of distributed energy, lighter materials, and environmental balance. Well, two out of three neotechnic attributes ain’t bad, right?
I found Mumford’s ghost in the Bleeping Computer chat room.
Aaron Sachs Mr. Mumford, welcome to the new neotechnic!
Lewis Mumford To the extent that neotechnic industry has failed to transform the coal-and-iron complex, to the extent that it has failed to secure an adequate foundation for its humaner technology in the community as a whole, to the extent that it has lent its heightened powers to the miner, the financier, the militarist, the possibilities of disruption and chaos have increased.
Aaron Sachs But surely, Mr. Mumford, you acknowledge the democratic promise of the Internet? Surely you find technologies like email to be more connective than disruptive? Paperless offices, instant communication, social media buttressing cultures of protest, electric cars, biotechnical design; it’s as if the budding technologies you identified 80 years ago have finally come into full bloom.
Lewis Mumford The gains in technics are never registered automatically in society: they require equally adroit inventions and adaptations in politics; and the careless habit of attributing to mechanical improvements a direct role as instruments of culture and civilization puts a demand upon the machine to which it cannot respond.
Aaron Sachs Of course—I couldn’t agree more: no one is pushing technological determinism here. But I’m surprised by your gloomy tone. One of the reasons your work has endured is that you were always constructive, avoiding the relentless negativity of strict antimodernism and anticapitalism. Didn’t you see the rise of the neotechnic, even in the ‘30s, during the Depression, as offering hope, as renewing an older tradition of recognizing limits and working within them?
Lewis Mumford Indeed, instead of simplifying the organic, to make it intelligibly mechanical, as was necessary for the great neotechnic and paleotechnic inventions, we have begun to complicate the mechanical, in order to make it more organic: therefore more effective, more harmonious with our living environment…. Once the organic image takes the place of the mechanical one, one may confidently predict a slowing down of the tempo of research, the tempo of mechanical investigation, and the tempo of social change, since a coherent and integrated advance must take place more slowly than a one-sided unrelated advance.
Aaron Sachs Yes! I figured you would be a fan of the slowness movement. I can picture you at your homestead in upstate New York, going for long walks, picking fruit from your orchard and vegetables from your garden, and engaging with the wider world by exploring the Internet. Isn’t it amazing how easy it is for people to contribute to our culture now? There are so many creative thinkers out there, not just living simpler, more conscientious lives but also blogging about it, sharing information, helping to shape a slower, more gentle society.
Lewis Mumford What we need, then, is the realization that the creative life, in all its manifestations, is necessarily a social product…. The essential task of all sound economic activity is to produce a state in which creation will be a common fact in all experience: in which no group will be denied, by reason of toil or deficient education, their share in the cultural life of the community.
Aaron Sachs OK, now we’re getting somewhere. Down with the digital divide! You were right, of course, to point out that we still have a dirty, volatile, unjust energy system, but computers are so efficient now, and such powerful tools, that plugging them into the global network clearly represents a social good. It’s the Internet, as Bill McKibben argues, that will allow communities to cut back and ease off without getting bored or reverting to a narrow traditionalism. That’s the balance we need—between acknowledging limits and thinking expansively—if we want to come together and solve new technical challenges like global climate change.
Lewis Mumford But these mechanical aids to efficiency and cooperation and intelligence have been mercilessly exploited, through commercial and political pressure…. We have multiplied the mechanical demands without multiplying in any degree our human capacities for registering and reacting intelligently to them. With the successive demands of the outside world so frequent and so imperative, without any respect to their real importance, the inner world becomes progressively meager and formless; instead of active selection there is passive absorption ending in the state happily described by Victor Branford as “addled subjectivity.”
Aaron Sachs Look, I know you’ve always had a pretty strong contrarian streak, but I’m trying to find some common ground here. Wouldn’t you acknowledge that your frame of reference is a bit out of date? Nothing in the 1930s even hinted at the sophistication and power of the Internet. The world may have been shrinking by then, but now it’s literally at your fingertips; every time you log on, it’s as if you’re connecting yourself to a solidarity machine. I’d argue that subjectivity has actually been bolstered by electronic networking.
Lewis Mumford One further effect of our closer time co-ordination and our instantaneous communication must be noted here: broken time and broken attention. The difficulties of transport and communication before 1850 automatically acted as a selective screen, which permitted no more stimuli to reach a person than he could handle…. Nowadays this screen has vanished…. It becomes more and more difficult to absorb and cope with any one part of the environment, to say nothing of dealing with it as a whole.
Aaron Sachs Well, speaking of screens: maybe this conversation would go better if we could see each other? Do you ever use Skype, Mr. Mumford? Or FaceTime?
Lewis Mumford When the radio telephone is supplemented by television, communication will differ from direct intercourse only to the extent that immediate physical contact will be impossible; the hand of sympathy will not actually grasp the recipient’s hand, nor the raised fist fall upon the provoking head.
Aaron Sachs You know, Mr. Mumford, tone can be really hard to read in this medium. I’m not sure what you meant by that last comment, but I feel pretty strongly that I’d like to hear your voice. Do you have a phone up there? Can I call you?
Lewis Mumford One is faced here with a magnified form of a danger common to all inventions: a tendency to use them whether or not the occasion demands.
Aaron Sachs I apologize. Can we just—
Lewis Mumford What will be the outcome? Obviously, a widened range of intercourse: more numerous contacts: more numerous demands on attention and time.
Aaron Sachs OK, I get it. We’re all busy. But now you’re starting to sound like a knee-jerk neo-luddite. Or a broken record. Or maybe a cranky robot. Come on: give this a chance. You’re not being true to your own worldview.
Lewis Mumford Communication between human beings begins with the immediate physiological expressions of personal contact, from the howlings and cooings and head-turnings of the infant to the more abstract gestures and signs and sounds out of which language, in its fullness, develops. With hieroglyphics, painting, drawing, the written alphabet, there grew up during the historic period a series of abstract forms of expression which deepened and made more reflective and pregnant the intercourse of men. The lapse of time between expression and reception had something of the effect that the arrest of action produced in making thought itself possible.
Aaron Sachs Hey, Mr. Mumford, thanks for the lecture. Right. All of us young instant messengers are basically thoughtless…. But let me try one last angle. Don’t you yourself say, in Technics and Civilization, that neotechnic developments are leading us “toward a dynamic equilibrium” and a more resilient culture, that in fact “wherever neotechnic instruments exist and a common language is used there are now the elements of almost as close a political unity as that which once was possible in the tiniest cities of Attica”?
Lewis Mumford Lewis Mumford is no longer in this chat room. He clicked an interesting-looking link and is now answering a questionnaire that promises to determine what career path he would have followed had he lived in the Middle Ages.
Aaron Sachs Seriously?
Lewis Mumford LOL!


Charmed Quark Systems
Copyright (c) 2001..2021
www.charmedquark.com
This document contains notes about the 6.0.1 version of CQC. .
To upgrade from any version prior to 5.4.914 you must first upgrade to the 5.4.914 version. This will do some moving around of things to prepare for the open source version, and also putting in place more security. Then you must upgrade to the 5.4.917 version, which will complete the process and remove the licensing system. After that you can move forward to a 6.x version.
If you are a new user, then you will need to download the installer and will likely want to go through the tutorial videos, which will take you on a very useful tour through the capabilities of CQC. On the Charmed Quark web site, use the Get Started button in the header area to find information about downloading the installer and how to find the tutorial videos. For more technical and in-depth documentation, once you have CQC installed, there is extensive written documentation under the /Help section of the main browser tree of the Administrative Interface.
There are plenty of tutorial and training videos available on our Youtube account and those should probably be your starting point. Don't read the written docs until you just get yourself overwhelmed.
IMPORTANT>>> Read this section
As of version 4.7, Windows 7 is the minimum Windows version. CQC will no longer run on Vista or XP versions. The server equivalent of Windows 7 is Server 2008R2, so you'll need at least that version if you are running Windows Server for your back end.
As of the 6.x versions (well, actually the 5.4.917 and up versions) there are new security concerns that you need to address. The installer will explain these. Don't ignore them.
Upgrade Procedure
The absolutely safest upgrade procedure is as follows, and we strongly recommend you do it th is way.
- On each machine, starting with the client machines and doing the master server last, stop any CQC client applications, and then stop the CQC services. Be sure that no other programs have open files in the CQC directory are are using any CQC directories as their current directory, since this will prevent CQC from moving or renaming those directories. It must do these directory moves in order to complete the install.
- Upgrade the master server machine, after doing the above steps on it as well, and make sure that it comes up ok. Allow the installer to create a backup for you so that you can get back to the current configuration. Preferably let it back up to another hard drive than the one CQC is installed on, for redudancy.
- Upgrade the other machines and test them out, secondary servers first, and then straight client machines.
If you are running a single machine configuration, then your master server and client machines are the same, but the process is the same otherwise.
This section list notable changes by version, so that you can know what to expect after your upgrade.
If you want to de-install CQC, run the CQC uninstaller from the Charmed Quark section of the start menu. This will stop and remove the service, remove any registry entries, and remove the start menu item. When the de-installer completes, you can remove the CQC directory and that will leave no remnants of CQC on your system. CQC does not install or upgrade any system files, so it will not affect your system in any way once you have removed it.
Don't delete the CQC directory first, since the uninstaller is in that directory. Run the uninstaller first, and when it is complete, you can remove the directory. Be sure to stop any CQC GUI applications before you run the uninstaller and try to remove the directory.


About Me
Hello! My name is Steven Herbert but I go by Brad. I was born in Kannaplolis, North Carolina. I grew up playing sports and still love them today. I met my wife in highschool where we were best friends and we decided to start dating ten years after we first met, and now we have two beautiful children and a thriving marriage.
For the past seven years I have been working in ministry as a pastor and worship leader. My grandfather and uncle played bluegrass and country music when I was growing up. I was always around music growing up but didn't begin playing myself until 2013. I currently still serve as Associate Pastor at Hillcrest Church.
A lot of the leadership skills I learned in the church are applicable in the workplace. I am currently in charge of the discipleship program, and music program at our church which requires strong leadership skills, patience and willingness to work well in group environments.


You may wish to load files in your python code. Sometimes you might want to pass a directory for input or output as a program argument or function parameter. Image that you have an output directory and want to write some files to it. You may be tempted to do something like this:
>>> filename = output_dir + "data.json"
but this requires that output_dir
ends in a /
, otherwise you’ll just write a file “resultsdata.json” instead of “results/data.json”. You could ask people to ensure that it ends with a /, or check it yourself, but this can get messy.
Instead, use os.path.join
:
>>> filename = os.path.join(output_dir, "data.json")
This will automatically join arguments with a directory separator if needed (\ in windows!), and can take any number of arguments, which it will join.
In python 3, you can also use the pathlib
module which is pretty cool: https://docs.python.org/3/library/pathlib.html
>>> output_dir = pathlib.Path(dirname)
>>> filename = output_dir / "data.json"
This overrides the division operator to allow you to join paths together. As long as one of the items is a Path object, you can perform this operation.
The os.path and os modules have many other useful methods:
Take a look at the documentation, but here are a few methods which I use often:
Splitting a filename into parts
# Takes care of multiple . in the filename, some extensions are longer than 3 characters
>>> os.path.splitext("myfile.data.json")
('myfile.data', '.json')
# Get the filename from a full path
>>> os.path.basename("/path/to/myfile.json")
myfile.json
# Get the directory name from a full path
>>> os.path.dirname("/path/to/myfile.json")
/path/to
Making directories
# os.mkdir can only make one directory at a time. If you want to make a tree, use:
>>> os.makedirs("all/of/my/directories")
# This will raise an exception if the final directory already exists. In python 3 use
>>> os.makedirs("all/of/my/directories", exists_ok=True)
# or
import errno, os
try:
os.makedirs("all/of/my/directories")
except OSError as e:
if e.errno != errno.EEXIST:
raise
Why shouldn’t you use os.path.exists()
instead of catching OSError
? Because it’s theoretically possible that between the time that you check if a directory exists, and you make it, some other process could create this directory. It’s better to check the exception instead.
Often you might want to scan a directory and get files in it:
Single directory:
>>> os.listdir("/my/directory")
>>> glob.glob("/my/directory/*.txt")
Recursive:
>>> all_files = []
>>> for root, dirs, files in os.walk("/my/directory"):
... for f in files:
... all_files.append(os.path.join(root, f)) if f.endswith(".txt")
>>> glob.glob("/my/directory/*/*.txt", recursive=True)
Also check out the shutil module for functions to copy and move files: https://docs.python.org/3/library/shutil.html


{% extends 'common/listing/base_listing.html' %} {% block title %} Consultant Listings {% endblock %} {% block sidepane %}
Want to become a consultant?
{{ c.introduction }}


PhotoBlogs Reader is a visual RSS reader that curates blogs and preserves the photographs for a comfortable and elegant viewing experience. It integrates and synchronizes with Google Reader to cache on your iPhone/iPod or iPad the photographs for later offline viewing. By stripping away the original layout elements from feed entries it optimizes all the photographs for display on your iPhone/iPod or iPad touch's screen. An app that gets out of the way so you can focus on photography.
Support for aggregating all the new photos into a single virtual feed.
4-digit passcode lock screen for better user access control.
Full support to browse and enjoy locally cached photos when not connected to Internet.
Option to fetch the entire recordset of past entries available in the Google Reader account.
For each photo the aspect ratio is carefully preserved through out the entire interface (including subscriptions covers and photos thumbnails).
Stores locally all the photos, covers and thumbnails for fast retrieval during subsequent sessions and to reduce the amount of downloaded data.
Elegant interface to manage photography subscriptions and keep in sync read, unread and starred cached items with the ones stored in the Google Reader account.
It works with a Google Reader account to access subscriptions and posts. Your account credentials will be stored in a secure location using iOS Keychain services.


---
tags:
- data
- energy
- overview
author:
display_name: JP
email<EMAIL_ADDRESS>date: 2011-10-21 11:36:17 -0600
title: Energy Overview
categories: []
---
{% include table_overview.html name="Energy" %}
| Renewable Energy |
map data |
AGRC & UREZ |
Geographic information for geothermal, solar, and wind energy in Utah. |
| Energy Generation |
map data |
AGRC |
Power plants in Utah. |
| Coal |
map data |
AGRC |
Coal seams, deposits, mines, and leases |
| Oil and Gas |
map data |
AGRC & DNR-OGM |
Oil fields, units, and wells. |
| Uranium |
map data |
AGRC |
Uranium areas, districts, mills and past producers. |


Development of web applications in JavaScript, a general-purpose computer programming language.
Designing layouts in the desired manner.
Able to write in HTML and CSS to describe web pages and display elements.
HTML/CSS
Website Layout
API Project
Website Design
Angular
Work with jQuery
MERN Project
MEAN Project
Group Firebase/Angular CLI Project
Website for Ganache Client
Website for Dove Recovery House
Junior Web Developer
"Life was always a matter of waiting for the right moment to act."


[FLUME-642] - fix path of package-info.java annotation.
[FLUME-646] - Add support to the FlumeNode windows installer to detect 32-bit Java Installations (read JAVA_HOME properly) when running on 64 bit windows machines.
[FLUME-661] - Remove duplicate copy of documentation source in ./src/docs
[FLUME-662] - flume dump and dumplog command line options are broken.
[FLUME-667] - stacks webapp is missing from node and master


FROM THE DESK: DR. IBRAHIM GEORGE QUATTARA DIRECTOR, PROJECT IMPLEMENTATION FEDERAL MINISTRY OF HEALTH AND SOCIAL SERVICES ABDIJAN -COTE D'IVOIRE DIRECT TEL:<PHONE_NUMBER>27953 STRICTLY CONFIDENTIAL DEAR FRIEND, TRANSFER OF US$11.5MILLION INTO A PERSONAL/COMPANY'S OFFSHORE ACCOUNT Based on the information gathered from the Ministry of Trade and Industries, we intend to solicit for your assistance on this transaction with you on the assumption that you will not disappoint us. We have eleven Million, Five Hundred Thousand United States Dollars (US$11,500,000.00) which we made over time from over inflated contracts in my Ministry (Federal Ministry of Health and Social Services). We are seeking your assistance and permission to remit this amount into your account or any other nominated account you can provide for us. Your commission will be 20% of the total sum, 10% for expenses and the remaining 70% is for my colleagues and me. Could you please notify me of your acceptance to carry out this transaction urgently by e-mail or via my direct telephone line only on the receipt of this message. Kindly, acknowledge the receipt of this letter by sending to me by email a copy of this letter with your private Tel. And Fax number. I shall in turn inform you of the modalities for a formal application to secure the necessary approvals for the immediate release of this fund into your account. Thanks for your co-operation. Yours faithfully, DR. George Ibrahim Quattara


14 dead as Cyclone Bulbul smashes into India, Bangladesh coasts
KHULNA, Bangladesh: Fourteen people died and more than two million others spent a night huddled in storm shelters as Cyclone Bulbul smashed into the coasts of India and Bangladesh with fierce gales and torrential rains, officials said Sunday (Nov 10).
The cyclone packed winds of up to 120km per hour when it hit late Saturday, closing ports and airports in both countries.
Seven people were killed in India's West Bengal state, the Press Trust of India reported, including two after uprooted trees fell on their homes and another after being struck by falling branches in Kolkata.
An eighth person died under a collapsed wall in nearby Odisha state.
In Bangladesh, six people were killed - five by falling trees - and at least 20 people were injured.
Five others are missing after a fishing trawler sank in squally weather on Meghna river near the southern island of Bhola, district administrator Masud Alam Siddiqui told AFP.
The cyclone also damaged some 4,000 mostly mud and tin-built houses, disaster management secretary Shah Kamal told AFP.
In coastal Khulna, the worst-hit district in Bangladesh, trees swayed violently and were ripped from the ground in the fierce storm, blocking roads and hampering access to the area.
Some low-lying parts of the district were flooded, disaster management minister Enamur Rahman told AFP.
Authorities said the cyclone was weakening as it moved inland.
"It has turned into a deep depression, causing heavy rainfall," Bangladesh weather bureau deputy chief Ayesha Khatun told AFP.
Bulbul hit the coast at the Sundarbans, the world's largest mangrove forest which straddles Bangladesh and India, and is home to endangered species including Bengal tigers and Irrawaddy dolphins.
The mangroves shielded the coast from the storm's full impact, Khatun said.
"TRAILS OF DESTRUCTION"
Some 2.1 million people across Bangladesh were relocated to cyclone shelters.
Troops were sent to coastal districts while tens of thousands of volunteers went door-to-door and used loudspeakers to urge people to evacuate their villages.
"We spent the night with another 400 people," said Ambia Begum, who arrived at a shelter in the port town of Mongla late Saturday along with her family.
"I am worried about my cattle and the straw roof of my house. I could not bring them here.
Around 1,500 tourists were stranded on St. Martin's island off southeastern Bangladesh after boat services were cancelled.
In India, nearly 120,000 people who were evacuated started to return home as the cyclone weakened, authorities said.
"The storm has left a trail of destruction as it's crossed the coastline of West Bengal," the state's Urban Development Minister Firhad Hakim said.
Wind speeds have now come down to between 70 and 80 kph, authorities said.
"It may take a couple of days to get a normal situation," Enamur told Reuters.
Bangladesh's low-lying coast, home to 30 million people, and India's east are regularly battered by cyclones.
Hundreds of thousands of people living around the Bay of Bengal have been killed in cyclones in recent decades.
While the frequency and intensity of the storms have increased, partly due to climate change, the death tolls have come down because of faster evacuations and the building of thousands of coastal shelters.
Cyclone Fani was the most powerful storm to hit the area in years when it struck in May, killing 12 people.


Line data Source code
1 : //! Transaction verification environment. 2 : 3 : use ckb_chain_spec::consensus::ProposalWindow; 4 : use ckb_types::{ 5 : core::{BlockNumber, EpochNumber, EpochNumberWithFraction, HeaderView}, 6 : packed::Byte32, 7 : }; 8 : 9 : /// The phase that transactions are in. 10 0 : #[derive(Debug, Clone, Copy)] 11 : enum TxVerifyPhase { 12 : /// The transaction has just been submitted. 13 : /// 14 : /// So the transaction will be: 15 : /// - proposed after (or in) the `tip_number + 1` block. 16 : /// - committed after (or in) `tip_number + 1 + proposal_window.closest()` block. 17 : Submitted, 18 : /// The transaction has already been proposed before several blocks. 19 : /// 20 : /// Assume that the inner block number is `N`. 21 : /// So the transaction is proposed in the `tip_number - N` block. 22 : /// Then it will be committed after (or in) the `tip_number - N + proposal_window.closest()` block. 23 : Proposed(BlockNumber), 24 : /// The transaction is commit. 25 : /// 26 : /// So the transaction will be committed in current block. 27 : Committed, 28 : } 29 : 30 : /// The environment that transactions are in. 31 0 : #[derive(Debug, Clone)] 32 : pub struct TxVerifyEnv { 33 : // Please keep these fields to be private. 34 : // So we can update this struct easier when we want to add more data. 35 : phase: TxVerifyPhase, 36 : // Current Tip Environment 37 : number: BlockNumber, 38 : epoch: EpochNumberWithFraction, 39 : hash: Byte32, 40 : parent_hash: Byte32, 41 : } 42 : 43 : impl TxVerifyEnv { 44 : /// The transaction has just been submitted. 45 : /// 46 : /// The input is current tip header. 47 184 : pub fn new_submit(header: &HeaderView) -> Self { 48 184 : Self { 49 184 : phase: TxVerifyPhase::Submitted, 50 184 : number: header.number(), 51 184 : epoch: header.epoch(), 52 184 : hash: header.hash(), 53 184 : parent_hash: header.parent_hash(), 54 184 : } 55 184 : } 56 : 57 : /// The transaction has already been proposed before several blocks. 58 : /// 59 : /// The input is current tip header and how many blocks have been passed since the transaction was proposed. 60 288 : pub fn new_proposed(header: &HeaderView, n_blocks: BlockNumber) -> Self { 61 288 : Self { 62 288 : phase: TxVerifyPhase::Proposed(n_blocks), 63 288 : number: header.number(), 64 288 : epoch: header.epoch(), 65 288 : hash: header.hash(), 66 288 : parent_hash: header.parent_hash(), 67 288 : } 68 288 : } 69 : 70 : /// The transaction will committed in current block. 71 : /// 72 : /// The input is current tip header. 73 37484 : pub fn new_commit(header: &HeaderView) -> Self { 74 37484 : Self { 75 37484 : phase: TxVerifyPhase::Committed, 76 37484 : number: header.number(), 77 37484 : epoch: header.epoch(), 78 37484 : hash: header.hash(), 79 37484 : parent_hash: header.parent_hash(), 80 37484 : } 81 37484 : } 82 : 83 : /// The block number of the earliest block which the transaction will committed in. 84 48 : pub fn block_number(&self, proposal_window: ProposalWindow) -> BlockNumber { 85 48 : match self.phase { 86 48 : TxVerifyPhase::Submitted => self.number + 1 + proposal_window.closest(), 87 0 : TxVerifyPhase::Proposed(already_proposed) => { 88 0 : self.number.saturating_sub(already_proposed) + proposal_window.closest() 89 : } 90 48 : TxVerifyPhase::Committed => self.number, 91 : } 92 48 : } 93 : 94 : /// The epoch number of the earliest epoch which the transaction will committed in. 95 38368 : pub fn epoch_number(&self, proposal_window: ProposalWindow) -> EpochNumber { 96 38368 : let n_blocks = match self.phase { 97 38368 : TxVerifyPhase::Submitted => 1 + proposal_window.closest(), 98 416 : TxVerifyPhase::Proposed(already_proposed) => { 99 416 : proposal_window.closest().saturating_sub(already_proposed) 100 : } 101 37712 : TxVerifyPhase::Committed => 0, 102 : }; 103 38368 : self.epoch.minimum_epoch_number_after_n_blocks(n_blocks) 104 38368 : } 105 : 106 : /// The parent block hash of the earliest block which the transaction will committed in. 107 32 : pub fn parent_hash(&self) -> Byte32 { 108 32 : match self.phase { 109 32 : TxVerifyPhase::Submitted => &self.hash, 110 0 : TxVerifyPhase::Proposed(_) => &self.hash, 111 32 : TxVerifyPhase::Committed => &self.parent_hash, 112 : } 113 32 : .to_owned() 114 32 : } 115 : 116 : /// The earliest epoch which the transaction will committed in. 117 37576 : pub fn epoch(&self) -> EpochNumberWithFraction { 118 37576 : self.epoch 119 37576 : } 120 : }


{% extends 'events/management/base.html' %} {% set chatroom = event_chatroom.chatroom %} {% block title %}{% trans %}Chat{% endtrans %}{% endblock %} {% block subtitle %}{% trans room=chatroom.name %}Logs for {{ room }}{% endtrans %}{% endblock %} {% block content %}
{% trans -%} Here you can retrieve logs for the chat room. You can either retrieve logs from during the event, from a custom period or all logs available for the room. {%- endtrans %}


About The Bum
One of Imbibe magazine’s “25 Most Influential Cocktail Personalities of the Past Century” and one of Drinks International’s “100 Most Influential Figures,” Jeff “Beachbum” Berry is the author of seven books on vintage tropical drinks, which published for the first time anywhere the lost recipes of Tiki’s mid-century golden age. Esquire calls Jeff “one of the instigators of the cocktail revolution” and Food & Wine “one of the world’s leading rum experts,” while The New York Times cites him as “the Indiana Jones of Tiki drinks” and The Los Angeles Times as “A hybrid of street-smart gumshoe, anthropologist and mixologist.”
Jeff’s been featured on the Travel Channel’s “Food Paradise” TV series, The Discovery Channel, PBS Television and National Public Radio; he’s also been profiled in The Washington Post , USA Today, The New York Times and Wine Enthusiast magazine.
Jeff’s original cocktail recipes have been printed in publications around the world, from Bon Appetit and The Huffington Post to over 20 international recipe books, including the venerable Mr. Boston Official Bartenders Guide.
And now Jeff’s drinks are being served at his restaurant in New Orleans, Beachbum Berry’s Latitude 29, which has won critical acclaim in Esquire , Playboy, The New York Times, The Wall Street Journal, The Boston Globe, The Houston Chronicle, GQ, Travel + Leisure, Town & Country, Southern Living, New Orleans magazine, and the Food Network.
With Martin Doudoroff, Jeff co-created Total Tiki for iPad and iPhone, a drink recipe app which Macworld magazine calls “beautifully rendered and, thanks to Berry’s tireless reporting, impeccably sourced.”
Jeff’s also co-created a line of Tiki barware with Cocktail Kingdom, which Imbibe hails as “especially notable because it revives old styles of essential glassware that were previously almost impossible to find.”
While this is all way too much work for a bum, Jeff is also developing cocktail-focused rum blends for the Hamilton label and tropical bar syrups with Orgeat Works. He’s also been known to leave his hut to lecture across the U.S., Europe, and Latin America.


An analytic expression for the pressure proﬁle of double (inner and external) transport barriers is given by
|
| (498) |
where ψ is the normalized poloidal ﬂux, wi and we are the width of the inner and external barriers, ψi and ψe are the locations of the barriers, ai and ae is the height of the barriers, c is a constant to ensure P(ψ) = 0 at ψ = 1.


--- layout: base title: Computer Anonymous - San Francisco ---
Read The overview if you haven't already.
Join us on IRC at ##computer on irc.libera.chat if you want in. :)
Computer Anonymous SF has been on hiatus for a while but tends to meet on occasional Saturdays for brunch
Time: Saturday, April 7th, 2018 at 11:00am PDT
Location: Cosecha, 907 Washington St, Oakland, CA 94607
Please sign up via the eventbrite page or ping Jay (@explain_analyze) or tdfischer (@tdfischer_ / irc) if you're attending, to make sure we confirm enough space / seats / stuff :)
Time: Saturday, February 18th, 2017 at 11:00am PDT
Location: Cosecha, 907 Washington St, Oakland, CA 94607
Time: Saturday, December 3rd, 2016 at 11:00am PDT
Location: Cosecha, 907 Washington St, Oakland, CA 94607
Time: Saturday, July 9th, 2016 at 11:00am PDT
Location: Cosecha, 907 Washington St, Oakland, CA 94607
Time: Saturday, June 11th, 2016 at 11:00am PDT
Location: Cosecha, 907 Washington St, Oakland, CA 94607
Time: Saturday, April 9th, 2016 at 11:00am PDT
Location: Cosecha, 907 Washington St, Oakland, CA 94607
Time: Saturday, November 14th, 2015 at 11:30am PDT
Location: Cosecha, 907 Washington St, Oakland, CA 94607
Talk to us if you want to attend, or just turn up!


These are lobster options that can be passed to all lobster apps.
| option | description |
|---|---|
| --lobster-nowrap | Turn off header and footer |
| --lobster-quiet | Suppress normal output |
| --lobster-debug | Go into temporary debug mode and nullifies --lobster-quite, you may also set this to 0 or 1, e.g. --lobster-debug=0 |


Landing Page
Special Projects
This story is part of a series of specially designed stories that represents some of the best journalism The Post has to offer. Check out the rest of the special projects here.
Emilee Chinn
1/16/2019
Norm Emmets stands along the front row of the mostly empty bleachers near midcourt in The Convo. Sporting a green Ohio sweatshirt and gray sweatpants, he cups his hands over his mouth and shouts at a Cleveland State player, who attempts the first of two free throws.
One problem: Norm, a round-bellied 70-year-old, is the only person trying to rattle her. His screams echo amid the drone of the 547 others in the crowd, and he is sick about it.
Norm turns to his left, takes a few steps and chats with students in the Ohio band who, when in tune, make the only noise that can drown out his voice.
“Convo’s falling asleep here!” he shouts.
He is right; The Convo was falling asleep. But in Norm’s eyes, the arena, which seats 13,080, has been asleep much longer than for those few minutes of the Ohio basketball game Dec. 1.
The place has been a snooze for nearly five years.
That’s because the “O Zone,” a cheering section that used to pack the student side of The Convo, has lost its mojo. The arena isn’t what it once was, back when opponents feared coming into Athens to play the Bobcats. Members of the O Zone who still attend games are mostly indistinguishable from a casual student.
Now, Norm wants to help wake up the O Zone. University officials have picked him to revive it, and the reasons they did are simple: His energy and passion are contagious.
“I'm tired of seeing students go to games and not cheer for their team,” Norm says. “I know what it used to be.”
A day earlier, Norm was spotted Uptown. As students crossed the intersection of East Union and Court Street, Norm, wearing an Ohio sweatshirt and sweatpants, strolled in front of the Alumni Gateway on College Green in the cold to preach his message.
“Everybody go to the game!” he yelled amid the buzz of cars rolling along the brick street. “3:30 with the boys! Let’s pack it!”
The roots for Norm’s passion extend deeper than a love for Ohio sports. Whenever people ask Norm where his energy for the Bobcats originates, he issues them a task.
“What I tell them is Google ‘Daniel Lowe,’” Norm says. “Then you'll understand why I act like I do and cheer like I do.
“That's what it's about."
***
It was a cold, gloomy January 2002 day in Athens, but it didn’t matter to Dan Lowe, whom everybody called “D-Lo,” as he waited outside The Convo. He had another four hours before the doors opened for students to enter and reserve seats for the second half of the Ohio basketball season, and he wasn’t taking any chances.
D-Lo had to snag his spot: Row 1, Seat 1. It was a few steps away from the midcourt logo, and in his mind, it was his seat to lose.
Row 1, Seat 1 is where it all started.
A year earlier, he and about six or seven friends attended nearly all of Ohio’s football games and wanted to continue the fun with basketball. They tried to sit as close as possible to the court and be loud because, well, why not.
Everyone in the group bought the same gray Ohio T-shirts and created a small student section. D-Lo was front and center in Row 1, Seat 1. With a thundering yell and 6-foot-9 frame, he stuck out more than any other fan willing to lose their voice and perhaps a little dignity to support a mid-major basketball team.
“He stood out because he was loud,” said Rob Metzger, one of Dan’s closest friends. “I was loud, too, but he was, you know ... there was just something where he stood out in a good way."
Luke Sayers and Shelley Binegar, marketing employees back then in the Ohio Athletic Department, noticed D-Lo and his friends’ passion and wanted to jumpstart something bigger. If a small group in gray T-shirts can make a scene at every game, why couldn’t more students?
“We started brainstorming ideas for a dedicated student section,” Binegar said. “If we're going to do it, let's try to make it a thing. A big thing.
“So we came up with the O Zone.”
Then there was fear. If the efforts, which included reserving a couple of sections for dedicated students and heavily promoting the idea of a raucous student fan base, flopped, it’d be an embarrassment to the athletic department. Not just for the athletic department, but the men’s basketball team, which would be greeting students who showed up to reserve tickets before a random practice in January.
“Frankly, we didn't know if we'd have five people show up or 50,” Sayers said.
When Sayers and Binegar walked through The Convo parking lot the morning of the event, they couldn’t believe it. They spotted a line of students, hundreds of them, wrapped around the perimeter of the arena.
D-Lo was first in line. When the doors opened, he sprinted inside, nearly fell over when the band started its music and grabbed his ticket when he finally reached his spot.
Row 1, Seat 1 was officially his, and when the other students followed his lead and dashed inside to snag a seat, anyone’s doubts about the project’s success were pushed aside.
The O Zone with its nearly 600 new members was going to be a hit, and it was all because of D-Lo and his energy. He talked to his friends, who talked to their friends, and even went door-to-door in dormitories to drum up support for what became the craziest student section in the Mid-American Conference.
With D-Lo at the helm, the energy in the O Zone was infectious. Students continued to flock to the sign-up sheet and then the seats, and the chants from the O Zone, which D-Lo led, only grew louder.
The Convo rocked.
***
D-Lo stepped down from his seat in The Convo and onto the perimeter of court. The hundreds of students behind him, all dressed in white T-shirts, had filled the arena with noise seconds earlier.
Now, they’re quiet. Their attention was on the 6-foot-9 man in a do-rag and covered in green-and-white face paint.
The men’s basketball team was seconds away from a 78-72 upset over Virginia on a February night in 2003, and as the Bobcats prepared to run out the clock for what would be one of their biggest wins in The Convo, something was stirring in the student section.
Each student knew what to do next: follow D-Lo’s lead. It started with him shouting a simple question. Students in the O Zone answered. Another question, another answer. The scene went like this:
“Is that not a scoreboard?”
“Yes that is a scoreboard!”
“Is that not a 78?”
“Yes that is a 78!”
“Is that not a 72?”
“Yes that is a 72!”
Dan pointed over to the Ohio bench.
“Is that not the winning team?”
“Yes that is the winning team!”
Then he pointed to the Virginia bench.
“Is that not the losing team?”
“Yes that is the losing team!”
The students and their leader pointed and yelled at each side again and again in unison to close out the chant and send The Convo into another frenzy before the final buzzer.
“Winning team!”
“Losing team!”
“Winning team!”
“Losing team!”
The O Zone was at its peak. Those who played in The Convo have compared its student section to ones at Duke, at Gonzaga and at other college basketball powerhouses. No other school in the Mid-American Conference came close to matching its intensity.
Dan Lowe stands with a few friends who helped create the O Zone in The Convo. Photo provided by Bill Burke
“It was like they were standing on the court watching the game and screaming at you,” said Bubba Walther, who played at Akron from 2004-2006 before he transferred to Ohio in 2006. “If I made a bad pass or missed a 3-pointer, I knew I was going to hear something. It kind of kept you in check.”
Walther became one of the few players to experience the O Zone from both sides.
“You didn't get tired when you were playing there because you had a couple thousand students screaming at you that you knew you were going to see on Court Street later on that day,” he said.
For opponents like Miami, Kent State or Bowling Green, the O Zone was a migraine. Ohio students dug up Facebook or MySpace accounts of opposing players and found the names of ex-girlfriends, hideous pictures or anything else that could distract a player’s concentration from the game.
“I would say that, for the most part, they never hit below the belt or anything like that,” said Tyler Dierkers, who played for Miami from 2005-2008. “You'd be in the middle of the game and take the ball out of bounds, and then you hear something and you're like, 'How did they know that?'”
The biggest fan of the O Zone might come as a surprise. Charlie Coles, the winningest men’s basketball coach at Miami, cherished games in The Convo.
Coles, who died in 2013, coached the RedHawks from 1992-2012, and admired the rush of playing in front of the raucous student section. Charlie loved the O Zone, and the O Zone loved him.
In his second-ever game with the O Zone in 2004, Coles and his RedHawks lost to the Bobcats 67-64. The student section was in full force, and to Coles, that was difference.
After the buzzer sounded, he faced the O Zone, dropped to his knees and took a bow. He saluted the student section for its intensity and started a long-lasting mutual friendship with the O Zone.
“We would be in the middle of the game and he would be getting into a banter with the O Zone and the student sections,” Dierkers said. “He'd embrace that and engage in that conversation. It didn't help us get the win necessarily, but it made for a great time."
***
Norm Emmets watched from several rows above as his son Jake joined D-Lo and others as they screamed at Coles and other coaches who came into The Convo. Norm was mesmerized at how Dan rallied hundreds of students and made the atmosphere inside the arena rival the best in the country.
“They had everything down to a T,” Norm said. “They were highly organized. I watch Duke now, and the intensity was right up there.”
Norm also saw how important D-Lo was to his son and the Bobcat community. He knew Jake had befriended Dan and other members of Campus Crusade for Christ, but Norm didn’t realize their friendship stretched beyond weekly Bible studies, which Dan hosted, and going to church on Sundays.
Jake was a part of something much more exclusive — a group that changed the outlook of a school’s entire fan base. That’s how Norm, a then 26-year high school football coach and University of Findlay graduate from Richfield Park, New Jersey, fell in love with Ohio sports.
“It's like, that's where his son went,” Jake said. “I think he just enjoyed going every time. I don't think he has a school of his own that is big going into sports. With the amount of people he's met, with my friends and all those people, I think he just stays a good fan."
Even after Jake graduated in 2005, Norm’s admiration for Ohio and the O Zone never waned. His 90-minute drive from his Dublin, Ohio, home to Athens was worth it. The O Zone wasn’t going anywhere, and neither was Norm’s fandom.
Then the unthinkable happened. Just weeks after Jake’s graduation, Norm received terrible news.
Dan Lowe collapsed during a pickup basketball game June 24, 2005 at The Convo. Doctors pronounced him dead at O’Bleness Memorial Hospital. An autopsy revealed he suffered cardiac arrhythmia, an irregular heartbeat.
The news shocked the Ohio community. Friends and family mourned and tried to grasp how something so sudden could happen to a young, energetic and athletic man.
“He played pickup games of basketball all the time,” Jake said. “Why was this different?”
Norm was among the hundreds of mourners in attendance for Dan’s funeral six days later in Canal Fulton, Dan’s hometown.
As he glanced around the church, Norm saw the same people he and Jake cheered with in Athens, the same friends Norm had hosted in his house when they needed to get away from school, the same group that showed him how to root for Ohio.
It’s an emotional scene he still remembers.
“We made sure to be up there and be with them,” Norm said. “You could just imagine, those guys being that old and losing your friend.
“It was just that …” he said before pausing. “They were stunned.”
***
When Norm attends an Ohio basketball game, he always stands in the same spot.
It’s the same section of the O Zone where its loudest members stood nearly two decades ago when D-Lo and the others from Campus Crusade built the exclusive club for the rowdiest Ohio fans.
“I don't do it for myself. I don't do it for recognition, any of that stuff. I do it for Danny and OU.”Norm Emmets
There’s one spot where Norm doesn’t stand.
Row 1, Seat 1. The spot is commemorated with a small, gold plaque to remember D-Lo, and it’s usually a seat or two away from where Norm can be seen, but mostly heard, anywhere in the arena.
Thirteen years after Dan’s death, Norm has always tried to replicate the former O Zone leader’s spirit. It doesn’t matter if there’s a crowd behind him or not, and it never will.
“I don't do it for myself,” he said. “I don't do it for recognition, any of that stuff. I do it for Danny and OU.”
The times, however, have changed.
The O Zone and its chants aren’t as noticeable. The enthusiasm has evaporated over the last five or six years for various reasons. Games are almost always streamed online, and the O Zone no longer has its own courtside section dedicated to members only.
Gone are the days of hundreds of students standing, never sitting, in the pull-out bleachers opposite from the team benches. Any coordinated chants typically come from students in the band.
Norm has seen the dwindling numbers in the student section. He wishes it were different.
That’s why he was standing alone on a cold afternoon on Court Street begging students to come to the next game. It’s what D-Lo would’ve done, and it’s basically what he did when he stood outside The Convo for hours, desperate for the first O Zone ticket.
In the future, however, Norm won’t be alone.
The Ohio Athletic Department is launching “D-Lo’s Crew” to inject life back into the O Zone. The crew will attend the remainder of home men’s basketball games, with a long-term goal for attendance at all sporting events at The Convo, and bring back the same vintage O Zone chants that echoed inside The Convo for years.
“D-Lo's Crew is really just a leadership group of the students,” said Michael Stephens, senior associate athletics director for external operations. “This will be a subset of 100 students that come to all our games, lead cheers and start the energy, and other students who are a part of the O Zone will cheer along.”
Stephens noticed Norm in 2017. He approached him at a basketball game in November to thank him and tell him about an idea he had for a group of students who would recreate the energy of the O Zone.
When Stephens and the athletic department named the group “D-Lo’s Crew” in a meeting weeks later, they had no idea that one of their biggest supporters knew everything about Dan and his meaning to Ohio sports.
When Stephens told Norm the group’s name, he was shocked.
“The fact that it connected so much with Norm was just amazing,” Stephens said. “It was awesome. It was a natural way for him to be a part of this."
***
Norm pinned the date in his mind as soon as he heard it: Jan. 15, the launch date for D-Lo’s Crew.
Norm can’t wait.
The group will have a maximum of 100 members, a fraction of the size of the O Zone in its prime, but they’ll all wear white T-shirts and stand behind Norm.
It’s uncertain how fast D-Lo’s Crew will expand, but that’s of little concern to Norm. His No. 1 goal is being accomplished — Dan’s spirit will be remembered.
“No matter who shows up or whatever happens,” Norm says, “it'll be a tremendous tribute to that young man who meant so much for Ohio University sports.”
He plans to stand and yell on Court Street again on Tuesday before the Ohio-Kent State game. This time, he wants to rally support for D-Lo’s Crew.
But his goal — to ensure the spirit of D-Lo never leaves The Convo — remains the same.
“Our fight song is ‘Stand Up and Cheer,’” Norm says. “My question is: Why wouldn't you?”
Landing Page
This story is part of a series of specially designed stories that represents some of the best journalism The Post has to offer. Check out the rest of the special projects here.


Main accused in girl stripping case surrenders to police
by https://www.dawn.com/authors/391/the-newspaper-s-correspondent, The Newspaper's CorrespondentDERA ISMAIL KHAN: The main accused in the infamous Dera girl’s stripping case has surrendered to the police after remaining at large for two years.
Officials said Sajawal surrendered to the police in the office of the district police officer Dilawar Khan Bangash. He was charged in the case of stripping a girl and parading her naked in the street in October 2017.
The police had arrested two other persons in the case, while Sajawal had escaped. He was declared proclaimed offender and police had raided different places in Dera Ismail Khan, Karachi and Punjab to arrest him.
The Peshawar High Court in a recent hearing in the case had expressed displeasure over the non-arrest of the prime accused and summoned the deputy inspector general of police and district police officer of the area.
The bench comprising Justice Ikramullah Khan and Justice Mussarat Hilali had fixed Nov 20 for the next hearing and directed that the said two police officials should appear in person and explain why the prime accused had so far not been arrested.
A bench of the high court had on Nov 22, 2017 disposed of a petition filed by the victim of stripping, with the direction to the IGP to submit progress report of the investigation to the PHC’s Human Rights Cell director for the perusal of the chief justice on regular basis.
Published in Dawn, November 16th, 2019