A lightweight, skinnable jQuery plug-in created to handle the newly introduced EU Cookie Legislation
1. Choose a skin
You can choose an existing jQuery UI* theme from below, or
roll your own and link to your CSS file in the same way
2. Create your consent levels
The cookie consent plug-in comes with four default levels for the user to choose from (the same as the demo on this page).
If you'd prefer to create your own, however, you can fill in the boxes below.
3. Supply an 'edit settings' element
Your users will need a way to change their settings.
Supply an element here which when clicked will display the options you've defined above.
4. A link to your Cookie policy page
By law you must have a page on your site explaining how cookies are used on your site and how you manage personal data.
If this property is not supplied here, you should have a link elsewhere on your website.
The essentials…
    Powered by PrivacyPolicies.com Instructions: Copy the above code into your page after your link to jQuery.
But wait!
What about 3rd party scripts?
Some 3rd party scripts will need a slight tweak so that they don't get run when they're not supposed to.
For any level dependant


Links
- Source code—Make a change, write a pull request!
- Chat is currently in private Slack channel named #the-bullpen or on the "The Bullpen™: After Hours" Discord server.
Review Chooser
API
Endpoint: /.netlify/functions/choose
choices
and it will select one randomly$ curl "https://the-bullpen.netlify.app/.netlify/functions/choose?choices=Alpha,Bravo,Charlie"
Bravo
team
query parameter, like "submitter"
or "falcon"
.
Endpoint: /.netlify/functions/getTeams
choose
endpoint.$ curl "https://the-bullpen.netlify.app/.netlify/functions/getTeams"
{"nato":["Alpha","Bravo","Charlie"]}
Changelog
v1—May 2016
First The Bullpen™ was started for those sitting in the bullpen area of the old office.
v2—May 2017
Dave left and Lance was made the admin for the room, so we couldn't make changes or add new people (without talking to Lance, which Nate was too afraid to do). A new public The Bullpen room was created to avoid this issue in the future, and the original was abandoned.
v3—October 2017
Simplifile moved into the new office.
v4—December 2018
The great seat reshuffling in preparation for new interns.
v5—January 2019
Simplifile switched from HipChat to Slack🎉
v10—2019
Various reshufflings around people coming and going due to school and changes in departments.
v11—July 2020
Simplifile switched from Slack to Microsoft Teams as part of the ICE merger process.
v11.1—August 2020
Lance deletes the previous The Bullpen™ because channels need to be
business specific, so no personal or hobby-type Channels
😢.
It's converted to a group chat in Teams, but it's probably not long
lived since it still falls under ICE's 7-year data retention policies.
v12—October 2020
In anticipation to a migration to Ellie Mae's Slack server, "The Bullpen™: After Hours" is created to facilitate outside-of-work conversations.
v13—October 2020
As part of the Ellie Mae acquisition ICE Mortgage Technologies reorganization, Simplifile is moved from Microsoft Teams to Ellie Mae's Slack workspace.


Class: Aws::SWF::Types::ScheduleActivityTaskDecisionAttributes
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
|
Class Chain:
self,
Struct
|
|
|
Instance Chain:
self,
::Aws::Structure ,
Struct
|
|
| Inherits: |
Struct
|
| Defined in: | gems/aws-sdk-swf/lib/aws-sdk-swf/types.rb |
Overview
Provides the details of the ScheduleActivityTask
decision.
Access Control
You can use ::Aws::IAM
policies to control this decision's access to Amazon
::Aws::SWF
resources as follows:
Use a
Resource
element with the domain name to limit the action to only specified domains.Use an
Action
element to allow or deny permission to call this action.Constrain the following parameters by using a
Condition
element with the appropriate keys.activityType.name
– String constraint. The key isswf:activityType.name
.activityType.version
– String constraint. The key isswf:activityType.version
.taskList
– String constraint. The key isswf:taskList.name
.
If the caller doesn't have sufficient permissions to invoke the
action, or the parameter values fall outside the specified
constraints, the action fails. The associated event attribute's
cause
parameter is set to OPERATION_NOT_PERMITTED
. For details and
example ::Aws::IAM
policies, see Using ::Aws::IAM
to Manage Access to Amazon SWF
Workflows in the Amazon ::Aws::SWF
Developer Guide.
Constant Summary
Instance Attribute Summary
-
#activity_id ⇒ String
rw
The
activityId
of the activity task. -
#activity_type ⇒ Types::ActivityType
rw
The type of the activity task to schedule.
-
#control ⇒ String
rw
Data attached to the event that can be used by the decider in subsequent workflow tasks.
-
#heartbeat_timeout ⇒ String
rw
If set, specifies the maximum time before which a worker processing a task of this type must report progress by calling RecordActivityTaskHeartbeat.
-
#input ⇒ String
rw
The input provided to the activity task.
-
#schedule_to_close_timeout ⇒ String
rw
The maximum duration for this activity task.
-
#schedule_to_start_timeout ⇒ String
rw
If set, specifies the maximum duration the activity task can wait to be assigned to a worker.
-
#start_to_close_timeout ⇒ String
rw
If set, specifies the maximum duration a worker may take to process this activity task.
-
#task_list ⇒ Types::TaskList
rw
If set, specifies the name of the task list in which to schedule the activity task.
-
#task_priority ⇒ String
rw
If set, specifies the priority with which the activity task is to be assigned to a worker.
Instance Method Summary
::Aws::Structure
- Included
| #to_hash | Alias for Aws::Structure#to_h. |
Instance Attribute Details
#activity_id ⇒ String
(rw)
The activityId
of the activity task.
The specified string must not contain a :
(colon), /
(slash),
|
(vertical bar), or any control characters (\u0000-\u001f
|
\u007f-\u009f
). Also, it must not be the literal string arn
.
# File 'gems/aws-sdk-swf/lib/aws-sdk-swf/types.rb', line 4366
class ScheduleActivityTaskDecisionAttributes < Struct.new( :activity_type, :activity_id, :control, :input, :schedule_to_close_timeout, :task_list, :task_priority, :schedule_to_start_timeout, :start_to_close_timeout, :heartbeat_timeout) SENSITIVE = [] include Aws::Structure end
#activity_type ⇒ Types::ActivityType (rw)
The type of the activity task to schedule.
# File 'gems/aws-sdk-swf/lib/aws-sdk-swf/types.rb', line 4366
class ScheduleActivityTaskDecisionAttributes < Struct.new( :activity_type, :activity_id, :control, :input, :schedule_to_close_timeout, :task_list, :task_priority, :schedule_to_start_timeout, :start_to_close_timeout, :heartbeat_timeout) SENSITIVE = [] include Aws::Structure end
#control ⇒ String
(rw)
Data attached to the event that can be used by the decider in subsequent workflow tasks. This data isn't sent to the activity.
# File 'gems/aws-sdk-swf/lib/aws-sdk-swf/types.rb', line 4366
class ScheduleActivityTaskDecisionAttributes < Struct.new( :activity_type, :activity_id, :control, :input, :schedule_to_close_timeout, :task_list, :task_priority, :schedule_to_start_timeout, :start_to_close_timeout, :heartbeat_timeout) SENSITIVE = [] include Aws::Structure end
#heartbeat_timeout ⇒ String
(rw)
If set, specifies the maximum time before which a worker processing a task of this type must report progress by calling RecordActivityTaskHeartbeat. If the timeout is exceeded, the activity task is automatically timed out. If the worker subsequently attempts to record a heartbeat or returns a result, it is ignored. This overrides the default heartbeat timeout specified when registering the activity type using RegisterActivityType.
The duration is specified in seconds, an integer greater than or
equal to 0
. You can use NONE
to specify unlimited duration.
# File 'gems/aws-sdk-swf/lib/aws-sdk-swf/types.rb', line 4366
class ScheduleActivityTaskDecisionAttributes < Struct.new( :activity_type, :activity_id, :control, :input, :schedule_to_close_timeout, :task_list, :task_priority, :schedule_to_start_timeout, :start_to_close_timeout, :heartbeat_timeout) SENSITIVE = [] include Aws::Structure end
#input ⇒ String
(rw)
The input provided to the activity task.
# File 'gems/aws-sdk-swf/lib/aws-sdk-swf/types.rb', line 4366
class ScheduleActivityTaskDecisionAttributes < Struct.new( :activity_type, :activity_id, :control, :input, :schedule_to_close_timeout, :task_list, :task_priority, :schedule_to_start_timeout, :start_to_close_timeout, :heartbeat_timeout) SENSITIVE = [] include Aws::Structure end
#schedule_to_close_timeout ⇒ String
(rw)
The maximum duration for this activity task.
The duration is specified in seconds, an integer greater than or
equal to 0
. You can use NONE
to specify unlimited duration.
# File 'gems/aws-sdk-swf/lib/aws-sdk-swf/types.rb', line 4366
class ScheduleActivityTaskDecisionAttributes < Struct.new( :activity_type, :activity_id, :control, :input, :schedule_to_close_timeout, :task_list, :task_priority, :schedule_to_start_timeout, :start_to_close_timeout, :heartbeat_timeout) SENSITIVE = [] include Aws::Structure end
#schedule_to_start_timeout ⇒ String
(rw)
If set, specifies the maximum duration the activity task can wait to be assigned to a worker. This overrides the default schedule-to-start timeout specified when registering the activity type using RegisterActivityType.
The duration is specified in seconds, an integer greater than or
equal to 0
. You can use NONE
to specify unlimited duration.
# File 'gems/aws-sdk-swf/lib/aws-sdk-swf/types.rb', line 4366
class ScheduleActivityTaskDecisionAttributes < Struct.new( :activity_type, :activity_id, :control, :input, :schedule_to_close_timeout, :task_list, :task_priority, :schedule_to_start_timeout, :start_to_close_timeout, :heartbeat_timeout) SENSITIVE = [] include Aws::Structure end
#start_to_close_timeout ⇒ String
(rw)
If set, specifies the maximum duration a worker may take to process this activity task. This overrides the default start-to-close timeout specified when registering the activity type using RegisterActivityType.
The duration is specified in seconds, an integer greater than or
equal to 0
. You can use NONE
to specify unlimited duration.
# File 'gems/aws-sdk-swf/lib/aws-sdk-swf/types.rb', line 4366
class ScheduleActivityTaskDecisionAttributes < Struct.new( :activity_type, :activity_id, :control, :input, :schedule_to_close_timeout, :task_list, :task_priority, :schedule_to_start_timeout, :start_to_close_timeout, :heartbeat_timeout) SENSITIVE = [] include Aws::Structure end
#task_list ⇒ Types::TaskList (rw)
If set, specifies the name of the task list in which to schedule the
activity task. If not specified, the defaultTaskList
registered
with the activity type is used.
The specified string must not contain a :
(colon), /
(slash),
|
(vertical bar), or any control characters (\u0000-\u001f
|
\u007f-\u009f
). Also, it must not be the literal string arn
.
# File 'gems/aws-sdk-swf/lib/aws-sdk-swf/types.rb', line 4366
class ScheduleActivityTaskDecisionAttributes < Struct.new( :activity_type, :activity_id, :control, :input, :schedule_to_close_timeout, :task_list, :task_priority, :schedule_to_start_timeout, :start_to_close_timeout, :heartbeat_timeout) SENSITIVE = [] include Aws::Structure end
#task_priority ⇒ String
(rw)
If set, specifies the priority with which the activity task is to be
assigned to a worker. This overrides the defaultTaskPriority
specified when registering the activity type using
RegisterActivityType. Valid values are integers that range from
Java's Integer.MIN_VALUE
(-2147483648) to Integer.MAX_VALUE
(2147483647). Higher numbers indicate higher priority.
For more information about setting task priority, see Setting Task
Priority in the Amazon ::Aws::SWF
Developer Guide.
# File 'gems/aws-sdk-swf/lib/aws-sdk-swf/types.rb', line 4366
class ScheduleActivityTaskDecisionAttributes < Struct.new( :activity_type, :activity_id, :control, :input, :schedule_to_close_timeout, :task_list, :task_priority, :schedule_to_start_timeout, :start_to_close_timeout, :heartbeat_timeout) SENSITIVE = [] include Aws::Structure end


Regional Industrial and Interaction Design Student Conference
Rochester Institute of Technology
October 24-26, 2014
Thought at Work provides college students and professionals with an opportunity to collaborate and learn with a platform for discussion about diverse design topics.
Hands-on Workshops | Compelling Lectures | Engaging Panels | Portfolio Reviews


×
With this technique, procrastination is terrified already.
Beast Mode, you might think, that I made up the concept. But, If you take a good look at it, you would see that it makes sense.
Just shut down the social media noises and get productive. That't it. That's what Beast mode is all about.
This concept can be applied in so many ways. In the gym, during study session, in your work place, while trying to get good at something, in your coding journey, and so many other ways
Give it a try and you would see how much you would improve in a short time. Again, this app is up to help you.
Alright. Let's discuss how the app works. The functionality is so simple. It is called the Pomodoro technique. You can read more about it online if you wish
The simplest heads up on how the app works is this:
Set the work time and/or break time limit of your choice. Click the ACTIVATE BEAST MODE button to enter into the beast mode
In this mode, make sure you don't get distracted. When the work time runs out, you can take a short break, depending on the break time limit you've set
For each round, you would get a tomato to indicate to you the number of round you've gone for the day.
You may wish to reward yourself after the day depending on the number of tomatoes you could complete for the day
Also, you should note that whenever you adjust the work time or break time, you should click the Update button in order to grab the changes
And, that's it. Enjoy!
Wanna get in touch?
GitHub
Twitter
Instagram
Facebook


|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object edu.mit.csail.sdg.alloy4compiler.sim.SimTuple
public final class SimTuple
Immutable; represents a tuple.
Thread Safety: Safe.
| Method Summary | |
|---|---|
SimTuple |
append(SimAtom atom)
Append the given atom to the back of this tuple, then return the resulting new Tuple. |
int |
arity()
Returns the arity of this tuple. |
boolean |
equals(java.lang.Object that)
|
SimAtom |
get(int i)
Return the i-th atom from this tuple. |
boolean |
has(SimAtom atom)
Returns true if this tuple contains at least one occurrence of the given atom. |
int |
hashCode()
|
SimAtom |
head()
Returns the first atom of this tuple. |
SimTuple |
head(int n)
Returns the subtuple containing the first n atoms (n must be between 1 and arity) |
java.util.Iterator<SimAtom> |
iterator()
|
SimTuple |
join(SimTuple that)
Return the relational join of this tuple and that tuple; throws an exception if the join point doesn't match or if both sides are unary. |
static SimTuple |
make(java.util.List<SimAtom> list)
Construct the n-ary tuple; throws an exception if the given list is empty. |
static SimTuple |
make(SimAtom atom)
Construct the unary tuple containing the given atom. |
static SimTuple |
make(SimAtom a,
SimAtom b)
Construct the binary tuple (a,b) |
static SimTuple |
make(java.lang.String atom)
Construct the unary tuple containing the given atom. |
static SimTuple |
make(java.lang.String[] atoms)
Construct the tuple containing the given list of atoms; the list must not be empty. |
SimTuple |
prepend(SimAtom atom)
Prepend the given atom to the front of this tuple, then return the resulting new Tuple. |
SimTuple |
product(SimTuple that)
Return the product of this tuple and that tuple. |
SimTuple |
replace(int i,
SimAtom newAtom)
Replace the i-th atom, and return the resulting SimTuple. |
SimTuple |
replace(java.util.Map<SimAtom,SimAtom> map)
Replace each atom using the given SimAtom->SimAtom map; any atom not in the map will stay unchanged. |
SimAtom |
tail()
Returns the last atom of this tuple. |
SimTuple |
tail(int n)
Returns the subtuple containing the last n atoms (n must be between 1 and arity) |
java.lang.String |
toString()
|
void |
toString(java.lang.StringBuilder sb)
Write a human-readable representation of this tuple into the given StringBuilder object. |
| Methods inherited from class java.lang.Object |
|---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Method Detail |
|---|
public static SimTuple make(java.util.List<SimAtom> list)
public static SimTuple make(SimAtom a, SimAtom b)
public static SimTuple make(SimAtom atom)
public static SimTuple make(java.lang.String atom)
public static SimTuple make(java.lang.String[] atoms)
public int arity()
public SimAtom get(int i)
public boolean has(SimAtom atom)
public SimTuple replace(int i, SimAtom newAtom)
public SimTuple replace(java.util.Map<SimAtom,SimAtom> map)
public SimTuple prepend(SimAtom atom)
public SimTuple append(SimAtom atom)
public SimTuple product(SimTuple that)
public SimTuple join(SimTuple that)
public int hashCode()
hashCode
in class java.lang.Object
public boolean equals(java.lang.Object that)
equals
in class java.lang.Object
public SimAtom head()
public SimAtom tail()
public SimTuple head(int n)
public SimTuple tail(int n)
public void toString(java.lang.StringBuilder sb)
public java.lang.String toString()
toString
in class java.lang.Object
public java.util.Iterator<SimAtom> iterator()
iterator
in interface java.lang.Iterable<SimAtom>
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


Analysis of the running time of various code snippets with respect to the
input size of n
.
a = 0
while a < n * n * n:
a = a + n * n
It takes n
iterations for a += n²
to reach
n³
If given n = 5
, then n³ = 125
.
Each iteration of the while loop is adding n * n
to
a
.
25
50
75
100
125
Another way to think about this: How many times do we we add
n * n
to get n * n * n
?
If n = 5
:
(5 * 5) + (5 * 5) + (5 * 5) + (5 * 5) + (5 * 5)
# array is of length n
i = len(array) - 1
while array[i] > x and i >= 0:
i = i // 2
The value of i
is halved on each iteration of the loop.
sum = 0;
for (i = 0; i < sqrt(n) / 2; i++)
for (j = i; j < 8 + i; j++) for (k = j; k < 8 + j; k++) sum++;
O(√n)
/ O(sqrt(n))
The outer for loop grows with the size of √n
. The
√n / 2
is a constant operation, as are the two inner for
loops, so they’re not considered.
sum = 0;
for (i = 1; i < n; i *= 2) for (j = 0; j < n; j++) sum++;
Both for loops will grow as n
grows, but the inner for loop
is linear, and the outer for loop is logarithmic since
i
doubles with each iteration.
sum = 0;
for (i = 0; i < n; i++)
for (j = i + 1; j < n; j++)
for (k = j + 1; k < n; k++) for (l = k + 1; l < 10 + k; l++) sum++;
The inner-most for loop is considered constant (it only
ever iterates up to 10 and doesn’t grow with input size
n
), whereas the other 3 for loops are linear and grows with
n
.
// bunnies === n
const bunnyEars = (bunnies) => {
if (bunnies === 0) return 0;
return 2 + bunnyEars(bunnies - 1);
};
Each recursive call
returns 2 + previous recursive call's return value
with the
exception of the base case if
statement where 0 is returned.
What makes this linear is the value of bunnies
or
n
is decremented by 1 with each recursive call until
n === 0
.
If n = 4
:
bunnyEars(4)
2 + bunnyEars(3)
2 + 2 + bunnyEars(2)
2 + 2 + 2 + bunnyEars(1)
2 + 2 + 2 + 2 + bunnyEars(0)
2 + 2 + 2 + 2 + 0 = 8
// arraySize === n
const search = (array, arraySize, target) => {
if (arraySize > 0) {
if (array[arraySize - 1] === target) return true;
else return search(array, arraySize - 1, target);
}
return false;
};
The number of recursive calls grows with the input size of n
.
This function is linear since each recursive call decrements
n
by 1 until the base case of
arraySize > 0
is reached or the target
is
found.


TypesResource
This class provides RESTful API for Types. A type is the description of any representable item; e.g. a Hive table You could represent any meta model representing any domain using these types.
The following resources are applicable:
/types
POST
Submits a type definition corresponding to a given type representing a meta model of a domain. Could represent things like Hive Database, Hive Table, etc.
Response Body
| element: | (custom) |
| media types: | application/json |
(no documentation provided)
GET
Gets the list of trait type names registered in the type system.
Parameters
| name | description | type | default |
|---|---|---|---|
| type | type should be the name of enum org.apache.atlas.typesystem.types.DataTypes.TypeCategory Typically, would be one of all, TRAIT, CLASS, ENUM, STRUCT | query | all |
Response Body
| element: | (custom) |
| media types: | application/json |
entity names response payload as json
/types/{typeName}
GET
Fetch the complete definition of a given type name which is unique.
Parameters
| name | description | type | default |
|---|---|---|---|
| typeName | name of a type which is unique. | path |
Response Body
| element: | (custom) |
| media types: | application/json |
(no documentation provided)


Index
This shows how the letters of the alphabet can be straightened out into simpler shapes, which makes it clear that many letters are topologically equivalent to each other.


turbovisor – Application supervisor
Turbovisor is an application management tool which detects file changes and restart application on the fly. There are several parameters to control its behavior.
Options
- -w, –watch
- Specify files or directories to watch. If directory is given, all its sub-directories will be monitored as well. By default, turbovisor will monitor current directory.
- -i, –ignore
- Specify files or directories to ignore. If directory is given, all its sub-directories will be ignored as well. This is uesfull for auto-generated files or temporary files. By default, no file is ignored.
Examples
Suppose we have the following directory tree, and turbovisor is invoked in the app’s root directory
MyApp
|-- doc
| |-- doc1.rst
| |-- doc2.rst
|-- main.lua
|-- model.lua
|-- templates
| |-- view.lua
|-- static
| |-- files
| |-- file1
| |-- file2
| |-- images
| |-- image1.jpg
| |-- image2.jpg
| |-- sounds
| |-- sound1.mp3
| |-- sound2.mp3
|-- test.lua
- turbovisor main.lua
- start application, detect any changes in the application
- turbovisor main.lua -w model.lua
- start application, only monitor file model.lua
- turbovisor main.lua –watch model.lua main.lua
- start application, only monitor file model.lua and main.lua
- turbovisor main.lua -i static
- start application, detect any changes in the application, except static directory and its sub-directories
- turbovisor main.lua –watch static –ignore static/images static/sounds/sound2.mp3
- start application, monitor static directory, but ignore its images sub-directory and sound2.mp3 file


Dayton man charged in Piqua carjacking
by Breaking News StaffPIQUA — Minutes after a reported carjacking in Piqua late Saturday morning, a Troy Police Officer spotted the car traveling southbound on I-75 at Troy, got it stopped and got the suspect in handcuffs.
According to information obtained by News Center 7’s Steve Baker, Piqua Police charged Brian Grissom, 33, of Dayton with robbery and driving on a suspended license.
The car was stolen from the 800 block of South Downing Street in Piqua.
Grossom was arrested without a struggle and booked into the Miami County Jail.


Create a new Product
Product's Section:
Category 1
Category 2
Product's Name:
Product's Type (radio button):
Type 1
Type 2
Type 3
Type 4
Type 5
Product's Type (checkbox):
Type 1
Type 2
Type 3
Type 4
Type 5
Description:
<<<<<<< HEAD
=======
>>>>>>> gh-pages
Product's Price:
$
Display new articles:
Yes
No
Quantity of articles to display:
2
4
6
8
(*) This code was provided to you in a PDF together to your initial username and password.
<<<<<<< HEAD
Cancel
=======
Cancel
>>>>>>> gh-pages
Save


You're on 'Search People' page!
You're on 'Recommended For You' page!
Select one of the following LinkedIn Pages to open:


Table of Contents
This chapter provides instructions for installing the NVIDIA driver. Note that after installation, but prior to using the driver, you must complete the steps described in Chapter 6, Configuring X for the NVIDIA Driver. Additional details that may be helpful for the new Linux user are provided in Appendix I, Tips for New Linux Users.
Before you begin the installation, exit the X server and terminate all OpenGL applications (note that it is possible that some OpenGL applications persist even after the X server has stopped). You should also set the default run level on your system such that it will boot to a VGA console, and not directly to X. Doing so will make it easier to recover if there is a problem during the installation process. See Appendix I, Tips for New Linux Users for details.
If you're installing on a system that is set up to use the Nouveau driver, then you should first disable it before attempting to install the NVIDIA driver. See Q & A 8.1, “Interaction with the Nouveau Driver” for details.
After you have downloaded the file NVIDIA-Linux-x86_64-460.27.04.run
, change to
the directory containing the downloaded file, and as the
root
user run the executable:
# cd yourdirectory # sh NVIDIA-Linux-x86_64-460.27.04.run
The .run
file is a self-extracting
archive. When executed, it extracts the contents of the archive and
runs the contained nvidia-installer
utility, which provides an interactive interface to walk you
through the installation.
nvidia-installer
will also install
itself to /usr/bin/nvidia-installer
,
which may be used at some later time to uninstall drivers,
auto-download updated drivers, etc. The use of this utility is
detailed later in this chapter.
You may also supply command line options to the .run
file. Some of the more common options are
listed below.
Common .run
Options
--info
Print embedded info about the .run
file and exit.
--check
Check integrity of the archive and exit.
--extract-only
Extract the contents of ./NVIDIA-Linux-x86_64-460.27.04.run
, but do not
run nvidia-installer
.
--help
Print usage information for the common commandline options and exit.
--advanced-options
Print usage information for common command line options as well as the advanced options, and then exit.
The NVIDIA kernel module has a kernel interface layer that must be compiled specifically for each kernel. NVIDIA distributes the source code to this kernel interface layer.
When the installer is run, it will check your system for the required kernel sources and compile the kernel interface. You must have the source code for your kernel installed for compilation to work. On most systems, this means that you will need to locate and install the correct kernel-source, kernel-headers, or kernel-devel package; on some distributions, no additional packages are required.
After the correct kernel interface has been compiled, the kernel
interface will be linked with the closed-source portion of the
NVIDIA kernel module. This requires that you have a linker
installed on your system. The linker, usually /usr/bin/ld
, is part of the binutils package. You
must have a linker installed prior to installing the NVIDIA
driver.
The installer will check for the presence of DKMS on your system. If DKMS is found, you will be given the option of registering the kernel module with DKMS, and using the DKMS infrastructure to build and install the kernel module. On most systems with DKMS, DKMS will take care of automatically rebuilding registered kernel modules when installing a different Linux kernel.
If nvidia-installer
is unable to
install the kernel module through DKMS, the installation will be
aborted and no kernel module will be installed. If this happens,
installation should be attempted again, without the DKMS
option.
Note that versions of nvidia-installer
shipped with drivers before
release 304 do not interact with DKMS. If you choose to register
the NVIDIA kernel module with DKMS, please ensure that the module
is removed from the DKMS database before using a non-DKMS aware
version of nvidia-installer
to
install an older driver; otherwise, module source files may be
deleted without first unregistering the module, potentially leaving
the DKMS database in an inconsistent state. Running nvidia-uninstall
before installing a driver using
an older installer will invoke the correct dkms remove
command to clean up
the installation.
Due to the lack of secure storage for private keys that can be
utilized by automated processes such as DKMS, it is not possible to
use DKMS in conjunction with the module signing support built into
nvidia-installer
.
Some kernels may require that kernel modules be
cryptographically signed by a key trusted by the kernel in order to
be loaded. In particular, many distributions require modules to be
signed when loaded into kernels running on UEFI systems with Secure
Boot enabled. nvidia-installer
includes support for signing the kernel module before installation,
to ensure that it can be loaded on such systems. Note that not all
UEFI systems have Secure Boot enabled, and not all kernels running
on UEFI Secure Boot systems will require signed kernel modules, so
if you are uncertain about whether your system requires signed
kernel modules, you may try installing the driver without signing
the kernel module, to see if the unsigned kernel module can be
loaded.
In order to sign the kernel module, you will need a private
signing key, and an X.509 certificate for the corresponding public
key. The X.509 certificate must be trusted by the kernel before the
module can be loaded: we recommend ensuring that the signing key be
trusted before beginning the driver installation, so that the newly
signed module can be used immediately. If you do not already have a
key pair suitable for module signing use, you must generate one.
Please consult your distribution's documentation for details on the
types of keys suitable for module signing, and how to generate
them. nvidia-installer
can generate a
key pair for you at install time, but it is preferable to have a
key pair already generated and trusted by the kernel before
installation begins.
Once you have a key pair ready, you can use that key pair in
nvidia-installer
by passing the keys
to the installer on the command line with the --module-signing-secret-key
and --module-signing-public-key
options. As an example,
it is possible to install the driver with a signed kernel module in
silent mode (i.e., non-interactively) by running:
# sh ./NVIDIA-Linux-x86_64-460.27.04.run -s \ --module-signing-secret-key=/path/to/signing.key \ --module-signing-public-key=/path/to/signing.x509
In the example above, signing.key
and signing.x509
are a private/public
key pair, and the public key is already enrolled in one of the
kernel's trusted module signing key sources.
On UEFI systems with secure boot enabled, nvidia-installer will present a series of interactive prompts to guide users through the module signing process. As an alternative to setting the key paths on the command line, the paths can be provided interactively in response to the prompts. These prompts will also appear when building the NVIDIA kernel module against a kernel which has CONFIG_MODULE_SIG_FORCE enabled in its configuration, or if the installer is run in expert mode.
In order to load a kernel module into a kernel that requires module signatures, the module must be signed by a key that the kernel trusts. There are several sources that a kernel may draw upon to build its pool of trusted keys. If you have generated a key pair, but it is not yet trusted by your kernel, you must add a certificate for your public key to a trusted key source before it can be used to verify signatures of signed kernel modules. These trusted sources include:
On kernels with CONFIG_MODULE_SIG
set, a certificate for the public key used to sign the in-tree
kernel modules is embedded, along with any additional module
signing certificates provided at build time, into the kernel image.
Modules signed by the private keys that correspond to the embedded
public key certificates will be trusted by the kernel.
Since the keys are embedded at build time, the only way to add a new public key is to build a new kernel. On UEFI systems with Secure Boot enabled, the kernel image will, in turn, need to be signed by a key that is trusted by the bootloader, so users building their own kernels with custom embedded keys should have a plan for making sure that the bootloader will load the new kernel.
On kernels with CONFIG_MODULE_SIG_UEFI
, in addition to any
certificates embedded into the kernel image, the kernel can use
certificates stored in the db
,
KEK
, or PK
databases of the computer's UEFI firmware to
verify the signatures of kernel modules, as long as they are not in
the UEFI dbx
blacklist.
Any user who holds the private key for the Secure Boot
PK
, or any of the keys in the
KEK
list should be able to add new
keys that can be used by a kernel with CONFIG_MODULE_SIG_UEFI
, and any user with physical
access to the computer should be able to delete any existing Secure
Boot keys, and install his or her own keys instead. Please consult
the documentation for your UEFI-based computer system for details
on how to manage the UEFI Secure Boot keys.
Some distributions include utilities that allow for the secure
storage and management of cryptographic keys in a database that is
separate from the kernel's built-in key list, and the key lists in
the UEFI firmware. A prominent example is the MOK (Machine Owner
Key) database used by some versions of the shim
bootloader, and the associated management
utilities, mokutil
and MokManager
.
Such a system allows users to enroll additional keys without the need to build a new kernel or manage the UEFI Secure Boot keys. Please consult your distribution's documentation for details on whether such a supplementary key database is available, and if so, how to manage its keys.
nvidia-installer
can generate keys
that can be used for module signing, if existing keys are not
readily available. Note that a module signed by a newly generated
key cannot be loaded into a kernel that requires signed modules
until its key is trusted, and when such a module is installed on
such a system, the installed driver will not be immediately usable,
even if the installation was successful.
When nvidia-installer
generates a
key pair and uses it to sign a kernel module, an X.509 certificate
containing the public key will be installed to disk, so that it can
be added to one of the kernel's trusted key sources. nvidia-installer
will report the location of the
installed certificate: make a note of this location, and of the
certificate's SHA1 fingerprint, so that you will be able to enroll
the certificate and verify that it is correct, after the
installation is finished.
By default, nvidia-installer
will
attempt to securely delete the generated private key with
shred -u
after the module is signed.
This is to prevent the key from being exploited to sign a malicious
kernel module, but it also means that the same key can't be used
again to install a different driver, or even to install the same
driver on a different kernel. nvidia-installer
can optionally install the
private signing key to disk, as it does with the public
certificate, so that the key pair can be reused in the future.
If you elect to install the private key, please make sure that appropriate precautions are taken to ensure that it cannot be stolen. Some examples of precautions you may wish to take:
In general, physical access is required to install Secure Boot keys, including keys managed outside of the standard UEFI key databases, to prevent attackers who have remotely compromised the security of the operating system from installing malicious boot code. If a trusted key is available to remote users, even root, then it will be possible for an attacker to sign arbitrary kernel modules without first having physical access, making the system less secure.
One way to ensure that the key is not available to remote users is to keep it on a removable storage medium, which is disconnected from the computer except when signing modules.
Encrypting the private key can add an extra layer of security:
the key will not be useful for signing modules unless it can be
successfully decrypted, first. Make sure not to store unencrypted
copies of the key on persistent storage: either use volatile
storage (e.g. a RAM disk), or securely delete any unencrypted
copies of the key when not in use (e.g. using shred
instead of rm
). Note that using shred
may not be sufficient to fully purge data
from some storage devices, in particular, some types of solid state
storage.
It is possible to load the NVIDIA kernel module on a system that
requires signed modules, without using the installer's module
signing support. Depending on your particular use case, you may
find one of these alternatives more suitable than signing the
module with nvidia-installer
:
On some kernels, a requirement for signed modules is only enforced when booted on a UEFI system with Secure Boot enabled. Some users of such kernels may find it more convenient to disable Secure Boot; however, note that this will reduce the security of your system by making it easier for malicious users to install potentially harmful boot code, kernels, or kernel modules.
The kernel can be configured not to check module signatures, or to check module signatures, but allow modules without a trusted signature to be loaded, anyway. Installing a kernel configured in such a way will allow the installation of unsigned modules. Note that on Secure Boot systems, you will still need to ensure that the kernel be signed with a key trusted by the bootloader and/or boot firmware, and that a kernel that doesn't enforce module signature verification may be slightly less secure than one that does.
When nvidia-installer
runs, it
searches for a pre-compiled kernel interface layer for the target
kernel: if one is found, then the complete kernel module can be
produced by linking the precompiled interface with nv-kernel.o
, instead of needing to compile the
kernel interface on the target system. nvidia-installer
includes a feature which allows
users to add a precompiled interface to the installer package. This
is useful in many use cases; for example, an administrator of a
large group of similarly configured computers can prepare an
installer package with a precompiled interface for the kernel
running on those computers, then deploy the customized installer,
which will be able to install the NVIDIA kernel module without
needing to have the kernel development headers or a compiler
installed on the target systems. (A linker is still required.)
To use this feature, simply invoke the .run
installer package with the --add-this-kernel
option; e.g.
# sh ./NVIDIA-Linux-x86_64-460.27.04.run --add-this-kernel
This will unpack NVIDIA-Linux-x86_64-460.27.04.run
, compile a
kernel interface layer for the currently running kernel (use the
--kernel-source-path
and --kernel-output-path
options to specify a target
kernel other than the currently running one), and create a new
installer package with the kernel interface layer added.
Administrators of large groups of similarly configured computers
that are configured to require trusted signatures in order to load
kernel modules may find this feature especially useful when
combined with the built-in support for module signing in
nvidia-installer
. To package a .run
file with a precompiled kernel interface layer, plus a detached
module signature for the linked module, just use the --module-signing-secret-key
and --module-signing-public-key
options alongside the
--add-this-kernel
option. The resulting
package, besides being installable without kernel headers or a
compiler on the target system, has the added benefit of being able
to produce a signed module without needing access to the private
key on the install target system. Note that the detached signature
will only be valid if the result of linking the precompiled
interface with nv-kernel.o
on the
target system is exactly the same as the result of linking those
two files on the system that was used to create the custom
installer. To ensure optimal compatibility, the linker used on both
the package preparation system and the install target system should
be the same.
Without options, the .run
file
executes the installer after unpacking it. The installer can be run
as a separate step in the process, or can be run at a later time to
get updates, etc. Some of the more important commandline options of
nvidia-installer
are:
nvidia-installer
options
--uninstall
During installation, the installer will make backups of any conflicting files and record the installation of new files. The uninstall option undoes an install, restoring the system to its pre-install state.
--ui=none
The installer uses an ncurses-based user interface if it is able to locate the correct ncurses library. Otherwise, it will fall back to a simple commandline user interface. This option disables the use of the ncurses library.


Carousel :: Metro UI CSS - The front-end framework for developing projects on the web in Windows Metro Style


Notices for packages:
Notices for packages:
LIEPA
Copyright (c) 2013-2015, Vilnius University Institute of Mathematics and Informatics
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
This work was supported in part by funding from the Europe Union.

Notices for packages:
Flite TTS Engine for Android
/*************************************************************************/
/* */
/* Language Technologies Institute */
/* Carnegie Mellon University */
/* Copyright (c) 2010 */
/* All Rights Reserved. */
/* */
/* Permission is hereby granted, free of charge, to use and distribute */
/* this software and its documentation without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of this work, and to */
/* permit persons to whom this work is furnished to do so, subject to */
/* the following conditions: */
/* 1. The code must retain the above copyright notice, this list of */
/* conditions and the following disclaimer. */
/* 2. Any modifications must be clearly marked as such. */
/* 3. Original authors' names are not deleted. */
/* 4. The authors' names are not used to endorse or promote products */
/* derived from this software without specific prior written */
/* permission. */
/* */
/* CARNEGIE MELLON UNIVERSITY AND THE CONTRIBUTORS TO THIS WORK */
/* DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING */
/* ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT */
/* SHALL CARNEGIE MELLON UNIVERSITY NOR THE CONTRIBUTORS BE LIABLE */
/* FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES */
/* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN */
/* AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, */
/* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF */
/* THIS SOFTWARE. */
/* */
/*************************************************************************/
/* Author: Alok Parlikar<EMAIL_ADDRESS>*/
/* Date: April 2010 */
/*************************************************************************/


--- permalink: /404.html layout: default title: "Page not found" ---
Page not found :(
The requested page could not be found.
Home


Oscar Futures: Will Voters Recognize Tom Hanks As Mr. Rogers?
by Nate JonesEvery week between now and January 13, when the Academy Award nominations are announced, Vulture will consult its crystal ball to determine the changing fortunes of this year’s Oscars race. In our “ Oscar Futures ” column, we’ll let you in on insider gossip, parse brand-new developments, and track industry buzz to figure out who’s up, who’s down, and who’s currently leading the race for a coveted Oscar nomination.
Best Picture
Ford v Ferrari
Let’s ride. Ford v Ferrari blew past the competition at last weekend’s box office, with a $30 million opening that was much higher than tracking predicted. “Two great stars in the right sorts of parts. A premise people are excited about … Funny how all that still works,” Richard Rushfield wrote in the Ankler. Considering its appeal to certain dad-ular demographics, FvF’s chances of becoming this year’s official Thanksgiving-weekend family-outing movie look strong.
Waves
Coming into the season, Waves had a lower profile than A24’s other contenders, until a rhapsodic reception at Telluride scrambled all expectations. Like weathermen in Oahu, pundits wondered: Just how big could these waves get? Thursday’s nominations for the Independent Spirit Awards were basically the A24 Oscars — The Lighthouse and Uncut Gems led the field, while The Farewell and The Last Black Man in San Francisco managed key pickups. Even on these friendly shores Waves pulled in only a single nomination.
Current Predix
Ford v Ferrari, The Irishman, Jojo Rabbit, Joker, Little Women, Marriage Story, Once Upon a Time in Hollywood, Parasite, The Two Popes
Best Director
Noah Baumbach, Marriage Story
Marriage Story earned a Best Feature nomination at the Spirits, as well as the Robert Altman Award for best ensemble. (Which is why none of its actors got individual nominations.) One key miss? Baumbach in Best Director. It’s possible to overreact to the Spirits — Spike Lee was snubbed last year — but this could be a sign that love for Marriage Story may not automatically translate into a Baumbach directing nod.
Marielle Heller, A Beautiful Day in the Neighborhood
Heller has been getting a lot of critical love for investing what could have been a fairly rote heartwarmer with all sorts of idiosyncrasies, with Richard Brody raving about her “genius.” (He also compares the movie to the recent works of Clint Eastwood, which is Brody out-Brodying himself.) Pundits have been downgrading Beautiful Day recently, but a solid run over the holiday weekend could get some momentum going for this warm, fuzzy blanket of a movie.
Current Predix
Noah Baumbach, Marriage Story; Bong Joon-ho, Parasite; Greta Gerwig, Little Women; Martin Scorsese, The Irishman; Quentin Tarantino, Once Upon a Time in Hollywood
Best Actor
Paul Walter Hauser, Richard Jewell
Speaking of Eastwood, his film about the security guard wrongfully accused of the Atlanta Olympics bombing finally debuted to the public Wednesday night. While certain elements of the movie have raised hackles — particularly a scene where Olivia Wilde’s reporter trades sex for a scoop — viewers agree Hauser, a comic actor previously known for supporting parts in I, Tonya and BlacKkKlansman, is up to the task of his first lead role. “He rises to the opportunity of a lifetime, capturing both the lack of sophistication and the sweetness of a very sympathetic character,” writes Scott Feinberg. In a category packed with some of Hollywood’s top leading men, can a new face break through?.
Jonathan Pryce, The Two Popes
“If you’re predicting The Two Popes to be strong enough to get in for Best Picture, then you’d better be predicting Pryce,” writes Sasha Stone. The logic is sound, and as it happens, I am predicting those pontiffs to get in, which means I need to find a place for Pryce. But that means I’ve got 80 percent of the slots in this category going to Netflix. That can’t be right — can it?
Current Predix
Robert De Niro, The Irishman; Adam Driver, Marriage Story; Eddie Murphy, Dolemite Is My Name; Joaquin Phoenix, Joker; Jonathan Pryce, The Two Popes
Best Actress
Alfre Woodard, Clemency
This week, Mark Harris noted pundits’ unfortunate habit of assuming this category’s four highest-profile white contenders are locks, leaving all the nonwhite actresses to compete against each other for the fifth spot. I’ve been guilty of thinking that way, so the reminder is heeded. And would you look at that, this week Woodard didn’t just get a Best Actress nomination at the Spirits, but Clemency itself also showed up across the board. However, I’ve seen reports the film hasn’t sent out SAG screeners yet, a crucial step for this late-December release.
Awkwafina, The Farewell
Thursday wasn’t a great day for Awkwafina — awards-wise, I mean; I’m sure she could have had a lovely time hanging out with friends — as she got left out of the Best Actress lineup at the Spirits. Considering the results in other categories, it’s possible support for The Farewell may wind up being funneled toward one of her co-stars instead.
Current Predix
Awkwafina, The Farewell; Cynthia Erivo, Harriet; Scarlett Johansson, Marriage Story; Charlize Theron, Bombshell; Renée Zellweger, Judy
Best Supporting Actor
Tom Hanks, A Beautiful Day in the Neighborhood
I will say this for that brutal Jeopardy clip: The screen that shows visual clues to the contestants is reportedly very small and far away. Since his storybook run in the ’90s, Hanks hasn’t had the run of Oscar success that it feels like; but while louder contenders seem to have surpassed him this year, I still think his chances of earning his first nomination since Cast Away are secure, particularly as the Golden Globes’ Cecil B. DeMille Award affords him primo face time during the heart of Oscar voting.
Song Kang-ho, Parasite
Could Parasite get an acting nom? GoldDerby’s Tom O’Neil has planted a flag for Song, and considering the passion voters seem to be feeling for Bong Joon-ho’s satire, a nod for the Korean actor does feel like a classic nomination-day surprise.
Current Predix
Tom Hanks, A Beautiful Day in the Neighborhood; Anthony Hopkins, The Two Popes; Al Pacino, The Irishman; Joe Pesci, The Irishman; Brad Pitt, Once Upon a Time in Hollywood
Best Supporting Actress
Zhao Shuzhen, The Farewell
Zhao made her first trip to the U.S. this month to campaign for The Farewell, and this week saw her receive a supporting-actress nom from the Spirits. The film wouldn’t work if her Nai Nai didn’t inspire tons of affection, and that same affection likely makes her The Farewell’s strongest acting contender.
Jennifer Lopez, Hustlers
At times this season I’ve lain awake at night wondering if the Oscar buzz for Lopez was real, or merely a media creation. But this week, the Spirits handed J.Lo her first nomination of the season. (The Gothams don’t have a supporting category.) It’s really happening!
Current Predix
Laura Dern, Marriage Story; Jennifer Lopez, Hustlers; Florence Pugh, Little Women; Margot Robbie, Bombshell; Zhao Shuzhen, The Farewell


API link to load the activity's comments
Activity's creation date
API link to load the activity's data
Activity's id
API link to load the activity's author identity
API link to load the activity's likes
Mentionned users' data
Author's data
API link to load the activity's author user data
Author's id
Activity's content
Activity's type
Activity's last update date
Generated using TypeDoc
Activity's stream data (where the data is)


To allow comics to better integrate with Finder Simple Comic has a bundled Quicklook plugin. Any files with a cbz or cbr extension will have automatically generated thumbnails and previews.
CBR and CBZ stand for Comic Book Rar and Comic Book Zip respectively. They are simply rar and zip files that have been renamed to differentiate them from non-comic archives.
Simple Comic would create thumbnails and previews for all zip and rar archives, even those not comic related.
Simple Comic assumes that the first page of an archive is the cover and sets the thumbnail accordingly. If this is incorrect you can use the Set Page as Icon command.


 ORCID is integrated into many systems used by publishers, funders, institutions, and other research-related services. Learn more at orcid.org. {% endblocktrans %}
{% endblock %} {% block buttons %}


On a dull afternoon during the summer, I spent part of the morning hanging out with a close friend of mine who was currently big into the business of selling Adderall at his school, despite the legal risks. Around 1:00 PM, he offered me one of his 30mg Adderall capsules, which he had been prescribed for his ADHD. I am a naturally calm person and have no disorder even close to hyperactivity, so I knew an amphetamine would effect me to a high degree. I took it reluctantly since I was inept at swallowing pills, but got it down successfully nonetheless.
After about a half-hour, I experienced a newfound burst of energy. I could not stop walking, and my legs seemed to be powered by remote controls and were moving in whatever direction they desired, as if searching for some task that needed to be done. This action created a strange sensation, in which my upper body felt detached from my legs at the waist and was struggling to keep up with them. I also became uncharacteristically social, jabbering on endlessly to my friend, who seemed to be in silent awe of this odd new personality that had risen up from inside me. Normally, I dislike talking too much and will just make brief statements with few details. But now I was embellishing on the simplest things, throwing in every possible analysis for something as trivial as a grease spot in the middle of the street.
I loved these sensations, but after an hour, the effects seemed to be wearing off. Since I had been so energized previously, the slightest fading of this stimulation felt like a comedown to me. So, I pleaded with my friend to have the last pill in his bottle. He was supposed to take his last dosage for the day before his next refill, but it went to me instead. Around the hour mark, I ingested another 30mg capsule and decided that would be enough. That was an understatement. It was MORE than enough.
Another half-hour or 45 minutes passed, and the feelings I'd experienced after the first pill greatly intensified. All of the effects I felt while 'peaking' washed in during a 90-minute bike ride we went on after dark. This was when I felt I was losing touch with the Adderall (if you will) and that the effects of it were dominating me instead of me safely controlling them. Some of these new sensations got to such an intense apex that they frightened me.
The easy socialization was a plus, and I enjoyed it immensely. Rather than stumbling for words like I usually do, entire paragraphs were flowing from my tongue as if I was reading from a piece of paper. My friend and I had switched roles. He was usually the talkative one, but he was now merely the listener, and I couldn't thank him enough for putting up with me. But then, the weirdness set in. I crossed the threshold of appreciating my friend's company and began to get a sensation of being all-powerful. I would look at him with a feeling of repugnance, as if it was foolish of me to be hanging around with somebody of much lower than intelligence than I. I had completely forgotten the last two years we'd spent hanging out and having great times. I now looked at him as a lowlife. Since my legs were so strong and I could pedal my bike for a long period of time without so much as breathing heavily, it was incredibly tough for him to keep up with me.
 Instead, every muscle in my body sank right into the grooves of the chair and calmed down to near-numbness. Once I felt I was settled, I didn't want to get back up. Eventually, I had to go upstairs for the meal. We had pizza for supper, and two bites into my slice, I was shocked by my distaste for any kind of food or beverage, and I did not foresee any bathroom urges coming on for quite a while. As we went back downstairs, I caught a glimpse of myself in the mirror and saw that my pupils had bulged to an alarming size. My new goal was to stay as far away from my parents as possible, to avoid detection.
Around midnight, we went to bed. My friend settled into a sleeping bag and was out in a matter of an hour or so. I, however, did not have the typical thoughts going through my mind around bedtime. Usually, I would think about the happenings of the day and what I would do tomorrow. This time, I felt as if the day was just beginning and was considering prodding my pal to put his clothes back on so we could go for a drive. I ditched the idea and spent the entire night wide awake, but with my eyes closed. No amount of effort towards emptying my mind could get me to sleep. I killed time in the early morning hours by pondering theories of astronomy, while jumping at every creak. The darkness of my room brought on major paranoia.
I got out of bed at around 7:00, taking note that all of the effects had flushed out and I was now my normal self. However, new feelings had crept in, and I identified this as the dreaded speed hangover. Since hunger was now an issue, I gulped down a bowl of Frosted Flakes, which did not settle well. My stomach had a dull ache running through it, that was different and more unpleasant than the traditional stomachache. About 20 minutes later, I vomited my breakfast and felt MUCH better. I was still exhausted like I'd just run a marathon, minus the sweating and rapid heartbeat. The hangover lasted most of the day, and it was not a fun thing. I was abnormally sluggish and had a nauseous feeling constantly running through me, but it would never accumulate to an urge to throw up. It would just remain an uneasy feeling in the pit of my stomach. The sleep I got the night after the hangover was great.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.util.AbstractMap<K,V> org.clapper.util.misc.FileHashMap<K,V>
public class FileHashMap<K,V>
FileHashMap implements a java.util.Map that keeps the keys in memory, but stores the values as serialized objects in a random access disk file. When an application attempts to access the value associated with a given key, the FileHashMap object determines the location of the serialized value object, seeks to that location in the random access file, and reads and deserializes the value object. In a sense, a FileHashMap is akin to a simple, classic indexed sequential file. This approach gives a FileHashMap object the following characteristics:
File Name Conventions
A FileHashMap is instantiated with a base file name (i.e., a file name without an extension). This base file name specifies the path to the file(s) that used to store the map's data; the FileHashMap tacks the following extensions onto the prefix to arrive at the actual file names.
Extension Meaning .ix The saved in-memory index. This file is created only if the FileHashMap is not marked as transient. (See below.) The INDEX_FILE_SUFFIX
constant defines this string..db The on-disk data (value) file, where the serialized objects are stored. The DATA_FILE_SUFFIX
constant defines this string.
For instance, if you create a FileHashMap with the statement
Map map = new FileHashMap("/tmp/mymap");
the serialized value objects will be stored in file "/tmp/mymap.db", and the index (if saved) will be stored in "/tmp/mymap.ix".
Transient versus Persistent Maps
A FileHashMap is persistent by default. When a
FileHashMap object is finalized or explicitly closed
(using the close()
method), its in-memory index is saved
to disk. You can reopen the saved map by instantiating another
FileHashMap object, and specifying the same file prefix. The
new FileHashMap object will load its initial in-memory index
from the saved index; any modifications to the new object will be
written back to the on-disk index with the new object finalized or
closed.
A FileHashMap can be marked as non-persistent, or transient,
by passing the TRANSIENT
flag to the
constructor. A transient map is not saved; its disk files are
removed when the map is finalized or manually closed. You cannot create
a transient map using a file prefix that specifies an existing, saved
map. That is, the disk files for a transient map must not exist at the
time the map is created.
Optimizations
The FileHashMap class attempts to optimize access to the disk-resident values and to conserve memory use. These optimizations include the following specific measures.
Sequential access to values
The iterators attempt to minimize file seeking while looping over the
stored values. The values()
method returns a
Set whose iterator loops through the values in the order they
were written to the data file. Traversing the value set via the iterator
will access the FileHashMap's data file sequentially, from top
to bottom. For example, the following code fragment loops through a
FileHashMap's values; because the iterator returns the values
in the order they appear in the data file, the code fragment accesses
the data file sequentially:
FileHashMap map = new FileHashMap("myfile"); for (Iterator values = map.values().iterator(); values.hasNext(); ) { Object value = it.next(); System.out.println(value); }
Similarly, the Set objects returned by the
keySet()
and entrySet()
methods use iterators that return the keys in the order that
the associated values appear in the disk file. For example, the following
code fragment also accesses the data file sequentially:
FileHashMap map = new FileHashMap("myfile"); for (Iterator keys = map.keySet().iterator(); keys.hasNext(); ) { Object key = it.next(); Object value = map.get(key); System.out.println("key=" + key + ", value=" + value); }
Note that this optimization strategy can be foiled in a number of ways. For instance, the sequential access behavior can be thwarted if a second thread is accessing the map while the first thread is iterating over it, or if the thread that's iterating over the values is simultaneously inserting values in the table.
Accessing the keys, without reading the values, does not result in any file access at all, because the keys are cached in memory. See the next section for more details.
Memory Conservation
The values stored in the map are serialized and written to a data file; they are not cached in memory at all. Therefore, you can store a lot more objects in a FileHashMap before running out of memory (assuming you have enough disk space available).
The keys are stored in memory, however. Each key is associated with a special internal object that keeps track of the location and length of the associated value in the disk file. As you place more items in a FileHashMap, the index will grow, consuming memory. But it will consume far less memory than if you use an in-memory Map, such as a java.util.HashMap, which stores the keys and the values in memory.
The Iterator and Set objects returned by the
entrySet()
and values()
methods contain proxy objects, not real values. That is, they do
not actually contain any values. Instead, they contain proxies
for the values, objects that specify the locations of the values in the
disk file. A value is loaded from disk only when you actually attempt to
retrieve it from the Iterator or Set.
Reclaiming Gaps in the File
Normally, when you remove an object from the map, the space where the
object was stored in the data file is not reclaimed. This strategy allows
for faster insertions, since new objects are always added to the end of
the disk file. However, for long-lived FileHashMap objects that
are periodically modified, this strategy may not be appropriate. For that
reason, you can pass a special RECLAIM_FILE_GAPS
flag to the
constructor. If specified, the flag tells the object to keep track of
"gaps" in the file, and reuse them if possible. When a new object is
inserted into the map, and RECLAIM_FILE_GAPS
is enabled, the
object will attempt to find the smallest unused area in the file to
accommodate the new object. It will only add the new object to the end
of the file (enlarging the file) if it cannot find a suitable gap.
This mode is not the default, because it can add time to processing.
However, it does not access the file at all; the file gap maintenance
logic uses in-memory data only. So, while it adds a small amount of
computational overhead, the difference between running with
RECLAIM_FILE_GAPS
enabled and running with it disabled should not
be dramatic.
Restrictions
This class currently has the following restrictions and unimplemented behavior.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class java.util.AbstractMap |
|---|
java.util.AbstractMap.SimpleEntry<K,V>, java.util.AbstractMap.SimpleImmutableEntry<K,V> |
| Nested classes/interfaces inherited from interface java.util.Map |
|---|
java.util.Map.Entry<K,V> |
| Field Summary | |
|---|---|
static java.lang.String |
DATA_FILE_SUFFIX
Data file suffix. |
static int |
FORCE_OVERWRITE
Constructor flag value: Ignored unless TRANSIENT is also
specified, FORCE_OVERWRITE tells the constructor to
overwrite the on-disk files if they already exist, instead of
throwing an exception. |
static java.lang.String |
INDEX_FILE_SUFFIX
Index file suffix. |
static int |
NO_CREATE
Constructor flag value: If specified, the disk files will not be created if they don't exist; instead, the constructor will throw an exception. |
static int |
RECLAIM_FILE_GAPS
Constructor flag value: Tells the object to reclaim unused space in the file, whenever possible. |
static int |
TRANSIENT
Constructor flag value: If specified, the on-disk hash table is considered to be transient and will be removed when this object is closed or finalized. |
| Constructor Summary | |
|---|---|
FileHashMap()
Create a new transient FileHashMap object. |
|
FileHashMap(java.lang.String tempFilePrefix)
Create a new transient FileHashMap object. |
|
FileHashMap(java.lang.String pathPrefix,
int flags)
Create a new FileHashMap object that will read its data from and/or store its data in files derived from the specified prefix. |
| Method Summary | |
|---|---|
void |
clear()
Removes all mappings from this map. |
void |
close()
Close this map. |
boolean |
containsKey(java.lang.Object key)
Returns true if this map contains a mapping for the specified key. |
boolean |
containsValue(java.lang.Object value)
Returns true if this map maps one or more keys that are mapped to the specified value. |
void |
delete()
Deletes the files backing this FileHashMap. |
java.util.Set<java.util.Map.Entry<K,V>> |
entrySet()
Returns a "thin" set view of the mappings contained in this map. |
boolean |
equals(java.lang.Object o)
Compares the specified object with this map for equality. |
protected void |
finalize()
Finalizer |
V |
get(java.lang.Object key)
Returns the value associated with the the specified key. |
int |
hashCode()
Returns the hash code value for this map. |
boolean |
isValid()
Determine whether the FileHashMap is valid or not. |
java.util.Set<K> |
keySet()
Returns a Set containing all the keys in this map. |
V |
put(K key,
V value)
Associates the specified value with the specified key in this map. |
V |
remove(java.lang.Object key)
Removes the mapping for this key from this map, if present. |
void |
save()
Save any in-memory index changes to disk without closing the map. |
int |
size()
Returns the number of key-value mappings in this map. |
java.util.Collection<V> |
values()
Returns a collection view of the values contained in this map. |
| Methods inherited from class java.util.AbstractMap |
|---|
clone, isEmpty, putAll, toString |
| Methods inherited from class java.lang.Object |
|---|
getClass, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
public static final java.lang.String INDEX_FILE_SUFFIX
public static final java.lang.String DATA_FILE_SUFFIX
public static final int NO_CREATE
public static final int TRANSIENT
NO_CREATE
. Also, if TRANSIENT is specified to the
constructor, but the on-disk files already exist, the constructor
will throw an exception unless FORCE_OVERWRITE
is also
specified.
public static final int FORCE_OVERWRITE
TRANSIENT
is also
specified, FORCE_OVERWRITE tells the constructor to
overwrite the on-disk files if they already exist, instead of
throwing an exception.
public static final int RECLAIM_FILE_GAPS
| Constructor Detail |
|---|
public FileHashMap() throws java.io.IOException
Create a new transient FileHashMap object. The transient
disk files will be in the normal temporary directory and will have
the prefix "FileHashMap". The names of the associated disk files are
guaranteed to be unique, and will go away when the object is
finalized or when the Java VM goes away. Call this constructor is
identical to calling FileHashMap(String)
with a null
filePrefix parameter.
Note that this constructor implicitly sets the TRANSIENT
flag.
java.io.IOException
- Unable to create temp fileFileHashMap(String,int)
,
FileHashMap(String)
public FileHashMap(java.lang.String tempFilePrefix) throws java.io.IOException
Create a new transient FileHashMap object. The transient disk files will be in the normal temporary directory and will have the specified temporary file prefix. If no temporary file prefix is specified (i.e., the tempFilePrefix parameter is null), then "fhm" will be used. The names of the associated disk files are guaranteed to be unique, and they will go away when the object is finalized or when the Java VM goes away.
Note that this constructor implicitly sets the TRANSIENT
flag.
tempFilePrefix
- the prefix to use with the temporary file, or
null for default prefix "fhm"
java.io.IOException
- Unable to create temp fileFileHashMap(String,int)
,
FileHashMap()
public FileHashMap(java.lang.String pathPrefix, int flags) throws java.io.FileNotFoundException, ObjectExistsException, java.lang.ClassNotFoundException, VersionMismatchException, java.io.IOException
Create a new FileHashMap object that will read its data from and/or store its data in files derived from the specified prefix. The prefix is a file prefix onto which data and index suffixes will be appended.
Values for the flag parameter
The flags parameter consists of a set of logically OR'd constants.
If (flags & NO_CREATE) is zero, the constructor will attempt to create the index files if they don't exist. Otherwise, it expects to find a saved hash map, and it will throw an exception if the files are not present.
If (flags & TRANSIENT) is non-zero, the constructor will attempt to create a transient map. A transient map is not saved; its disk files are removed when the map is finalized or manually closed. You cannot create a transient map using a file prefix that specifies an existing, saved map. Specifying the TRANSIENT flag causes any NO_CREATE flag to be ignored.
For example, the following statement creates a transient FileHashMap:
Map map = new FileHashMap ("/my/temp/dir", FileHashMap.TRANSIENT);
whereas this statements opens a persistent FileHashMap, creating it if it doesn't already exist:
Map map = new FileHashMap ("/my/map/dir", FileHashMap.CREATE);
pathPrefix
- The pathname prefix to the files to be usedflags
- Flags that control the disposition of the files.
A value of 0 means no flags are set. See above
for details.
java.io.FileNotFoundException
- The specified hash files do not
exist, and the NO_CREATE
flag was specified.
java.lang.ClassNotFoundException
- Failed to deserialize an object
VersionMismatchException
- Bad or unsupported version stamp
in FileHashMap index file
ObjectExistsException
- One or both of the files already
exist, but the TRANSIENT
flag was set and the
FORCE_OVERWRITE
flag was
not set.
java.io.IOException
- Other errorsNO_CREATE
,
TRANSIENT
,
FileHashMap()
,
FileHashMap(String)
| Method Detail |
|---|
protected void finalize() throws java.lang.Throwable
finalize
in class java.lang.Object
throwable
- on error
java.lang.Throwable
public void clear()
Removes all mappings from this map. The data file is cleared by closing it, deleting it, and reopening it. If an I/O error occurs at any point, this object will be closed and marked invalid.
clear
in interface java.util.Map<K,V>
clear
in class java.util.AbstractMap<K,V>
public void close() throws java.io.NotSerializableException, java.io.IOException
Close this map. If the map is not marked as transient, this method saves the index to disk. Otherwise, it removes both the index file and data file.
java.io.NotSerializableException
- Can't save index (bug)
java.io.IOException
- Error writing indexsave()
public boolean containsKey(java.lang.Object key)
Returns true if this map contains a mapping for the specified key. Since the keys are cached in an in-memory index, this method does not have to access the data file, and is fairly cheap.
containsKey
in interface java.util.Map<K,V>
containsKey
in class java.util.AbstractMap<K,V>
key
- key whose presence in this map is to be tested
public boolean containsValue(java.lang.Object value)
Returns true if this map maps one or more keys that are mapped to the specified value. Because it must iterate through some portion of the on-disk value set, this method can be slow.
containsValue
in interface java.util.Map<K,V>
containsValue
in class java.util.AbstractMap<K,V>
value
- value whose presence in this map is to be tested.
public void delete()
close()
.
public java.util.Set<java.util.Map.Entry<K,V>> entrySet()
Returns a "thin" set view of the mappings contained in this map. Each element in the returned set is a Map.Entry; each Map.Entry contains a key and a proxy for the associated value. The map's values themselves are not loaded into memory until requested via a call to Map.Entry.getValue().
The set is backed by the map, so changes to the map are reflected in the set. If the map is modified while an iteration over the set is in progress, the results of the iteration are undefined. Neither the set nor its associated iterator supports any of the set-modification methods (e.g., add(), remove(), etc). If you attempt to call any of those methods, the called method will throw an UnsupportedOperationException.
NOTE: Calling this method on an invalid or closed FileHashMap will result in an exception.
entrySet
in interface java.util.Map<K,V>
entrySet
in class java.util.AbstractMap<K,V>
keySet()
,
values()
,
UnsupportedOperationException
public boolean equals(java.lang.Object o)
Compares the specified object with this map for equality. Returns true if the given object is also a map and the two Maps represent the same mappings. More formally, two maps t1 and t2 represent the same mappings if t1.entrySet().equals(t2.entrySet()). This ensures that the equals method works properly across different implementations of the Map interface.
Warning:: Because this method must compare the actual values stored in the map, and the values in a file, this method can be quite slow.
equals
in interface java.util.Map<K,V>
equals
in class java.util.AbstractMap<K,V>
o
- object to be compared for equality with this map.
public V get(java.lang.Object key)
Returns the value associated with the the specified key. Returns null if the map contains no mapping for this key.
get
in interface java.util.Map<K,V>
get
in class java.util.AbstractMap<K,V>
key
- key whose associated value is to be returned.
java.lang.ClassCastException
- if the key is of an inappropriate type for
this map.
java.lang.NullPointerException
- key is nullcontainsKey(Object)
public int hashCode()
Returns the hash code value for this map. The hash code of a map is defined to be the sum of the hash codes of each entry in the map's entrySet() view. This ensures that t1.equals(t2) implies that t1.hashCode()==t2.hashCode() for any two maps t1 and t2, as required by the general contract of Object.hashCode.
Warning:: The recommended hash code for each entry in the entrySet() view is a combination of hash codes for the entry's key and the entry's value. (See java.util.Map.Entry for details.) Because the values in a FileHashMap object are stored in a file, this method can be quite slow.
hashCode
in interface java.util.Map<K,V>
hashCode
in class java.util.AbstractMap<K,V>
Object.hashCode()
,
Object.equals(Object)
,
equals(Object)
public boolean isValid()
public java.util.Set<K> keySet()
Returns a Set containing all the keys in this map. Since the keys are cached in memory, this method is relatively efficient. The keys are returned in an order that optimizes sequential access to the data file; see the Optimizations section in the main class documentation for details.
The set is backed by the map, so changes to the map are reflected in the set. If the map is modified while an iteration over the set is in progress, the results of the iteration are undefined. Neither the set nor its associated iterator supports any of the set-modification methods (e.g., add(), remove(), etc). If you attempt to call any of those methods, the called method will throw an UnsupportedOperationException.
keySet
in interface java.util.Map<K,V>
keySet
in class java.util.AbstractMap<K,V>
public V put(K key, V value) throws java.lang.ClassCastException, java.lang.IllegalArgumentException, java.lang.NullPointerException
Associates the specified value with the specified key in this map. If the map previously contained a mapping for this key, the old value is replaced. This map class does not permit a null value to be stored.
put
in interface java.util.Map<K,V>
put
in class java.util.AbstractMap<K,V>
key
- key with which the specified value is to be associated.value
- value to be associated with the specified key.
java.lang.ClassCastException
- if the class of the specified key or
value prevents it from being stored
in this map.
java.lang.IllegalArgumentException
- Value not serializable, or I/O error
while attempting to serialize value.
java.lang.NullPointerException
- the specified key or value is
null.public V remove(java.lang.Object key)
Removes the mapping for this key from this map, if present. Note: The space occupied by the serialized value in the data file is not coalesced at this point.
remove
in interface java.util.Map<K,V>
remove
in class java.util.AbstractMap<K,V>
key
- key whose mapping is to be removed from the map.
public void save() throws java.io.IOException, java.io.NotSerializableException
Save any in-memory index changes to disk without closing the map. You can call this method even if the map is marked as temporary; on a temporary map, save() simply returns without doing anything.
java.io.IOException
- Error saving changes to disk.
java.io.NotSerializableException
- Can't save index because it contains
one or more objects that cannot be
serialized.close()
public int size()
Returns the number of key-value mappings in this map. If the map contains more than Integer.MAX_VALUE elements, returns Integer.MAX_VALUE. This method queries the in-memory key index, so it is relatively efficient.
size
in interface java.util.Map<K,V>
size
in class java.util.AbstractMap<K,V>
public java.util.Collection<V> values()
Returns a collection view of the values contained in this map. The returned collection is a "thin" view of the values contained in this map. The collection contains proxies for the actual disk-resident values; the values themselves are not loaded until a Collection method such as contains() is called.
The collection is backed by the map, so changes to the map are reflected in the set. If the map is modified while an iteration over the set is in progress, the results of the iteration are undefined.
The set does not support any of the add() methods.Warning:: The toArray() methods can be dangerous, since they will attempt to load every value from the data file into an in-memory array.
values
in interface java.util.Map<K,V>
values
in class java.util.AbstractMap<K,V>
keySet()
,
values()
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


Frequently Asked Questions
Who are we, and what is Colupon for?
Colupon was made by four Columbia students who want to take full advantage of the fact that our university is based in New York City. We also happen to love saving money. Colupon is an easy way to find the establishments near you, where you can use your Columbia ID to save big money. In a few clicks, you can find great deals on fun outings, tasty food, and trendy shopping near you.
How do you redeem the listed discounts and deals?
We only include deals that require one criteria to redeem: a valid current Columbia ID. Simply go to any of the establishments listed, and show your student ID to them — and the discount will be yours.
Can you view directions to your chosen place?
When you click on a location, a pop-up will show you more information and details about that place. You’ll see an embedded Google Map, showing you the address and its distance from your specified location. To get turn-by-turn directions, walking directions, or public transit, simply click “more options” and you will be brought to a pre-filled Google Map.
Can you save places for later?
Yes! On a place’s page, all you need to do is click the “Add to Saved” button — this will add that place to your list of saved locations, which you can view on the Colupon homepage at any time.
Map not showing the right directions?
You might have inputted an invalid or unfamiliar address, that Google did not understand. Please go back to the homepage and try another search.
Have a deal you’d like to add to our selection?
We would happily welcome your deal submission! If you know of an establishment that gives deals to Columbia students, please submit it to us and we’ll verify and add the discount to Colupon. On the Colupon homepage at the bottom, there is a form to submit your deal.
Want to contact us?
Feel free to email us with any questions, comments, suggestions, or cute GIFs: aum2107@columbia.edu


Antifragile: Things That Gain From Disorder: Review
Nassim Nicholas Taleb’s third book in his incerto series, Antifragile: Things That Gain From Disorder, brings forth many philosophical ideas that I have never considered. The thesis is that things can be antifragile by having the exact opposite properties of fragile things, such as humans and businesses.
Taleb illustrates the main idea of antifragility in his Google talk where he asks the audience what the opposite of fragile is, some answers are: Robust, stout, durable, solid, and resilient. A package might say "Fragile: handle with care," the opposite of that is, "Antifragile: please mishandle". Antifragile things need to be shaken up and handled roughly - unlike fragile things which need a steady state.
How to be Antifragile
The easiest and most obvious illustration of antifragility is mankind. If a man or woman was sitting on their couch for weeks at a time without movement, they’d eventually become very unhealthy and become closer to death than their neighbor who has been working out thirty minutes a day. By inducing the stress and mishandling of working out, your body becomes more powerful and gains from the disorder. Order and consistency would come from doing the same thing all the time every day, but there is no gain from that.
A more extreme example to drive the point could be if you go blind or get shot in the arm. The torture and disorder of enduring that pain will benefit because now you know what it feels like to get shot in the arm and other senses are heightened by losing one.
A similar metaphor in the text explains how disastrous events like plane crashes and the sinking of the Titanic ultimately benefit. So much was learned by the sinking of the Titanic that the chances of a similar tragedy occurring again have dropped dramatically. With every plane crash that takes place, new practices are formed because we learned what not to do.
Things that are Antifragile
They say if you want something done, give the task to a busy person. A busy person will already be on the roll of getting things done and taking action — they’re already antifragile by letting their disorder and constant productivity accomplish things. Being on the roll of checking off items on your todo list will only help you check more things off.
Taleb refers to this as overcompensation. If you’re watching a horse race where the leading stallion wins by a lap every time, the day a horse just a little better than that enters the race, the first one won’t stand a chance and will be defeated. By having the constant lack of competition the horse hasn’t gained at all and ultimately hurts its performance. However, if the two horses race more often, that overcompensation provided by the new horse will only drive the weaker horse to overcome their lack of speed and gain from it. The horse was fragile by having not having a better opponent. A better rival will always make for a better horse.
People that are Antifragile
Mother Teresa is known to many as one of the most impactful and charitable saints in modern times. Although there is a great debate on whether she was good or evil, for the intents and purposes of this analogy we’ll assume the former. By referring to Mother Teresa as the nicest person on earth is a very fragile way of thinking. Taleb explains that to tell how good a person is they have to be given the opportunity to be bad. If you’re surrounding yourself with good, constantly performing good, and never given the chance to do evil, you may be good but also quite fragile. On the contrary, if Mother Teresa was involved in illegal and satanist activities and then decided to be good she’d have a wider good to evil ratio but also be very antifragile.
 Someone who makes many errors is more antifragile than the one who hasn’t made a single one. They’re stronger and wiser so long as they haven’t made the same error multiple times to fail all their businesses.
He who has never sinned is less reliable than he who has only sinned once ~ N.N. Taleb
According to Taleb, a truly fragile person is the futurist Ray Kurzweil, who, ironically, wrote the book I just did a review on. Kurzweil believes in singularity and that we can all live forever. These ideas sound great but the implementation is fragile. Fragility is giving into the temptation of popping a pill when you’re ill or taking antibiotics for a minor cold. One can never be antifragile if the body is never given a chance to heal itself.
A similar trait is in the ability to be hated. By being disliked and publicly attacked, there is clearly something that the person is doing correctly to generate this anger in the first place. Can you be considered a success if you are incapable of generating envy?
Software that is Antifragile
A great piece titled Procedia Computer Science explores an antifragile approach to software. A key ingredient to this is to be sure the software is adaptable and proactive. If a mobile development shop has made a basic app template for selling sneakers and plans to sell that same app to different shoe distributors, it’s quite fragile. The smallest change in business plan of the customer can break the deal immediately. If the development team has prepared for these changes in a way where they can easily flip a switch and turn their shoe selling app into a theatre ticket selling app, it’s much more antifragile. Antifragile software welcomes Black Swan events such as a client rebranding overnight and having their program adapt to that change in no-time.
Facebook’s software slogan, Move Fast and Break Things is an ultimate antifragile ideology. By breaking things, embracing errors and mistakes, and mishandling the product, the software becomes stronger as a result of that. If an app has never crashed nor failed in a crucial time, there’s no preparation for that inevitable Black Swan to, perhaps, wipe the entire database during a holiday weekend.
The developers must be antifragile as well. No programmer is going to learn by doing things correctly and by the book. Open mindedness is essential for any software engineer because failing will ultimately teach the wrong ways to do something - clearly this makes for a stronger developer.
Some might argue that a true antifragile program would require a lot of artificial intelligence. An app that knows when something is wrong and can fix itself in minutes is surely not fragile. However, for the software to understand when a Black Swan is occurring, it either must’ve been fragile at some point or the developers must’ve been antifragile enough to program the software accordingly. Antifragile software is certainly achievable, but the antifragile business that surrounds and sells the software will always be the key ingredient.
Feelings that are Antifragile
Painters like painting but authors like "having written."
Procrastination is a fragile action, (or inaction). If you are writing a book, application, or manifesto, procrastinating on the task shows you are avoiding the failure it might include. Dodging the negative is as fragile as you can get. By embracing the potential failure or success makes you antifragile to it in the future.
A painter paints because they enjoy the activity and want to become more antifragile in their craft while a writer might write to gain notoriety, a much more selfish and fragile reason to do something. This will result in more antifragile paintings that are gawked at for years and fragile novels or essays that are forgotten about in weeks.
The Lindy Effect shows that a book that has been in print for forty years can be expected to be in print for another forty years. If the book survives another decade it can be expected to be in print for another fifty years. This is how things in motion stay in motion. If you have $300,000 in your bank account, you’ll forever be above the poverty line just by interest alone. The Phantom of the Opera can be expected to reign on Broadway for another decade since it has been the longest running musical for years and thrives off that success. Wealth will grow at a rate once it has passed a threshold just like art will once it stands the test of time. Taleb also refers to an author as antifragile in this tweet because of a very large increase in sales.
Never trust the words of a man who is not free.
T.E. Lawrence, nicknamed Lawrence of Arabia (titular character in one of my top three favorite movies next to the original King Kong and To Kill a Mockingbird) made a deal with the Arab desert tribes. The tribes eventually reneged on the agreement. Taleb believes the word of a mobster is worth more than that of a civil servant because they’re much less fragile. The honor of an individual is worth much more to that person than the honor of a nation to a servant.
How you do anything is how you do everything.
A fragile mindset revolves around the halo effect. It assumes the skills of one field would translate perfectly to another field. If you’re a great football quarterback you can run a business. If you’re a top programmer you’d make a great significant other. A flawed way of thinking, according to Taleb, relies on how good someone might be at talking or how confident they might be regarding their ego. In reality it’s perfectly possible someone with skills in one area applying those skills to another will be extremely fragile. An entrepreneur is not measured by the conversation they hold but the product they produce.
Conclusion
Ultimately, Antifragile has opened my eyes in many ways. Reading the book twice already has not made me any more antifragile than I already was, but has taught me how to embrace my antifragility and channel it correctly. I look forward to becoming less fragile as time goes on.


What are the standards of science journalism?
The Boston globe reported today on a paper from Arturs Backurs and Piotr Indyk that shows that any algorithm that computes the edit distance between two strings in sub-quadratic time implies the existence of a sub-exponential time algorithm for SAT on N variables. Since this would in turn imply that P=NP, the result suggests that such an algorithm does not exist.
Here’s how the Globe describes the finding:
For 40 years, computer scientists have tried in vain to find a faster way to do an important calculation known as “edit distance.” Thanks to groundbreaking work from two researchers at MIT, they now know the reason they’ve continually failed is because a faster method is actually impossible to create.
And here’s how Backurs and Indyk describe their result in the paper’s abstract:
In this paper we provide evidence that the near-quadratic running time bounds known for the problem of computing edit distance might be tight. (emphasis mine)
I understand that the subtlety of arguments based on whether P equals NP might be lost on most of the Globe’s readers. On the one hand, the force of the result is contingent on the conjecture that P does not equal NP. On the other hand, it’s not a mere conjecture; computer scientists will certainly act as if a subquadratic algorithm is impossible to create.
But don’t journalist have a responsibility to report on scientific results accurately? Couldn’t Harnet (the Globe reporter) have written “almost certainly impossible to create” instead of “actually impossible to create”? We wouldn’t tolerate this kind of reporting on, say, whether the wreckage in the Indian ocean belongs to the missing Malaysian Airlines flight; if the authorities say that they strongly suspect it belongs to the missing airplane, that doesn’t license reporters to say that authorities are sure it does.


This example demonstrates audio capture and playback ability of this EVM. The Multimedia framework used is GStreamer
NOTE: Please make sure a listening device is connected to the audio line out and a microphone is connected to the audio line in. If your EVM does not have an audio in, empty buffers will be recorded.


Nothing is impossible,
the word itself says 'I'm possible'!.
Audrey Hepburn
Audrey Hepburn was a fashion icon and philantropist born in Belgium. Her first production was in Broadway at the age of 22.


| Index | {{row.id}} | Customer name | {{row.firstName}} {{row.lastName}} | Current status | {{row.status}} | Requested resolution | {{row.requestedResolution}} | Resolution | {{row.resolution}} | Deadline | {{row.scheduledFor}} |
|---|
| Index | {{row.id}} | Customer name | {{row.firstName}} {{row.lastName}} | Current status | {{row.status}} | Requested resolution | {{row.requestedResolution}} | Resolution | {{row.resolution}} | Deadline | {{row.scheduledFor}} |
|---|


Bayelsa poll: Journalists, others in boat mishap - The Nation Newspaper
A boat conveying journalists across flooded parts of Sampou community on Nun River in Kolokuma Opokuma Local Government Area of Bayelsa capsized and threw the four occupants into the water.
News Agency of Nigeria (NAN) reports that the boat was carrying four journalists covering the governorship elections, including its correspondent.
The journalists were returning from the polling station when the incident happened and left the victims submerged but the timely intervention of sympathisers rescued the journalists whose mobile phones, cameras and recorders were drenched.
A stretch of about 200 metres along the road, leading to polling unit 4, Ward 6, where the candidate of the Peoples Democratic Party (PDP) Sen. Douye Diri voted was flooded, compelling the journalists to resort to local canoes to cross.
READ ALSO: Bayelsa poll: I’m disappointed, says Jonathan
The flood had delayed the setup of polling stations across the flooded community to about 10.16 a.m, two hours behind schedule.
The flood submerged many parts of Amasoma, Yenagoa and parts of Sagbama, a development that displaced polling stations.
Diri who voted at about 10.35 a.m. observed that the elections were peaceful in his area but regretted that he got reports of electoral fraud, violence in Nembe, Opolo and Enewari and other parts of the state.(NAN)


Online Safepoint/GC log analyzer
Run on your computer in docker
Quickly run application on your computer
docker run -it -p 8080:8080 -v /var/uploads:/uploads
[[${dockerImage}]]
Create directory where your logs will be uploaded (/var/uploads) before running this
command
Application will be available on http://localhost:8080
You can specify the following options with multiple -e PROPERTY=value
- SERVER_PORT=8080
- Port used by container to run http server.
- UPLOAD_DIR=/uploads
- Location within container for uploaded logs.
- MAX_REQUEST_SIZE=310MB
- Maximum size of uploaded file and request
- NUMBER_OF_WORKER_THREADS=2
- Number of threads parsing uploaded logs. More incoming requests will be queued
- REPORT_REMOVE_AFTER_READ=false
- Report is removed from memory after read.
- REPORT_EXPIRATION=10m
- Time duration after report is removed from memory.
Standalone JVM log analyzer:
For analysis of big files build standalone version from source.
GitHub repositoryOther stuff
If you are looking for interesting cases and tips regarding garbage collection and JVM performance.
Blog


Nynaeve stared in wonder at what lay ahead down the river, the White Bridge gleaming in the sun with a milky glow. Another legend, she thought, glancing at the Warder and the Aes Sedai, riding just ahead of her. Another legend, and they don’t even seem to notice. She resolved not to stare where they could see.  The three rode on silently toward the fabled White Bridge.
Since that morning after Shadar Logoth, when she had found Moiraine and Lan on the bank of the Arinelle, there had been little in the way of real conversation between her and the Aes Sedai. There had been talk, of course, but nothing of substance as Nynaeve saw it. Moiraine’s attempts to talk her into going to Tar Valon, for instance. Tar Valon. She would go there, if need be, and take their training, but not for the reasons the Aes Sedai thought. If Moiraine had brought harm to Egwene and the boys . . .
Sometimes, against her will, Nynaeve had found herself thinking of what a Wisdom could do with the One Power, of what she could do.  The Power was a filthy thing. She would have nothing to do with it. Unless she had to.
The cursed woman only wanted to talk about taking her to Tar Valon for training. Moiraine would not tell her anything! It was not as if she wanted to know so much.
“How do you mean to find them?” she remembered demanding.
“As I have told you,” Moiraine replied without bothering to look back at her, “I will know when I am close to the two who have lost their coins.” It was not the first time Nynaeve had asked, but the Aes Sedai’s voice was like a still pond that


app
/
io.geeteshk.dot.utils
/
Constants
/
englishToMorseCode
englishToMorseCode
val
englishToMorseCode
:
Map
<
Char
,
String
>
Map of english characters to Morse dots and dashes