When editing the code for a view, stored procedure or function, instead of using the small text box on the properties dialogue for the object, you might find it more convenient to use the scripting options in pgAdmin to edit the object in the query tool. This gives you the benefit of the Query Tool editor's features such as autocomplete, find and replace and larger workspace.
To use the scripting options, in the pgAdmin browser window, right-click the object you wish to edit, and select the CREATE script option. It may be on the Scripts submenu. Alternatively, you can select the object and then choose the CREATE script option from the Scripts submenu of the Tools menu.
Edit the definition of the object as required, and use the Execute Query button to apply your changes. Don't forget that modifying a view or function name, or the signature of a function or procedure may result in a new object being created alongside the original one. This useful side effect makes it convenient to create new, but similar objects. You may need to refresh the pgAdmin browser to display newly created objects.
You can use this technique to perform all sorts of operations on different objects, however PostgreSQL's CREATE OR REPLACE syntax makes it particularly useful for editing views, stored procedures and functions.


class Binance::Websocket
- Binance::Websocket
- Reference
- Object
Defined in:
binance/client/websocket.crConstructors
Instance Method Summary
-
#aggregate_trade(markets : Array(String) | String, handler : Binance::Handler | Binance::Handler.class, timeout : Time::Span = 0.seconds)
The Aggregate Trade Streams push trade information that is aggregated for a single taker order.
- #all_book_tickers(handler : Binance::Handler | Binance::Handler.class, timeout : Time::Span = 0.seconds)
- #all_mini_tickers(handler : Binance::Handler | Binance::Handler.class, timeout : Time::Span = 0.seconds)
- #all_tickers(handler : Binance::Handler | Binance::Handler.class, timeout : Time::Span = 0.seconds)
- #api_key : String
- #api_key=(api_key : String)
-
#book_ticker(markets : Array(String) | String, handler : Binance::Handler | Binance::Handler.class, timeout : Time::Span = 0.seconds)
Pushes any update to the best bid or ask's price or quantity in real-time for a specified symbol.
- #combo(markets, streams, handler, timeout = 0.seconds) : Listener
-
#depth(markets, handler, speed = "", timeout = 0.seconds) : Listener
Diff.
-
#mini_ticker(markets : Array(String) | String, handler : Binance::Handler | Binance::Handler.class, timeout : Time::Span = 0.seconds)
24hr rolling window mini-ticker statistics for all symbols that changed in an array.
- #secret_key : String
- #secret_key=(secret_key : String)
- #service : Service
- #service=(service : Service)
-
#ticker(markets : Array(String) | String, handler : Binance::Handler | Binance::Handler.class, timeout : Time::Span = 0.seconds)
24hr rolling window ticker statistics for a single symbol.
-
#trade(markets : Array(String) | String, handler : Binance::Handler | Binance::Handler.class, timeout : Time::Span = 0.seconds)
The Trade Streams push raw trade information; each trade has a unique buyer and seller.
Macro Summary
Constructor Detail
Instance Method Detail
The Aggregate Trade Streams push trade information that is aggregated for a single taker order.
Pushes any update to the best bid or ask's price or quantity in real-time for a specified symbol.
Diff. Depth Stream Order book price and quantity depth updates used to locally manage an order book.
Stream Name: <symbol>@depth OR <symbol>@depth@100ms
Update Speed: 1000ms or 100ms
How to manage a local order book correctly
- Open a stream to wss://stream.binance.com:9443/ws/bnbbtc@depth.
- Buffer the events you receive from the stream.
- Get a depth snapshot from https://api.binance.com/api/v3/depth?symbol=BNBBTC&limit=1000 .
- Drop any event where u is <= lastUpdateId in the snapshot.
- The first processed event should have U <= lastUpdateId+1 AND u >= lastUpdateId+1.
- While listening to the stream, each new event's U should be equal to the previous event's u+1.
- The data in each event is the absolute quantity for a price level.
- If the quantity is 0, remove the price level.
- Receiving an event that removes a price level that is not in your local order book can happen and is normal.
24hr rolling window mini-ticker statistics for all symbols that changed in an array. These are NOT the statistics of the UTC day, but a 24hr rolling window for the previous 24hrs. Note that only tickers that have changed will be present in the array.
24hr rolling window ticker statistics for a single symbol. These are NOT the statistics of the UTC day, but a 24hr rolling window for the previous 24hrs.
The Trade Streams push raw trade information; each trade has a unique buyer and seller.


But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful.
Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences.
“At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias”
Kerry Ashman
On the other hand, we denounce with righteous indignation and dislike men who are so beguiled and demoralized by the charms of pleasure of the moment, so blinded by desire, that they cannot foresee the pain and trouble that are bound to ensue; and equal blame belongs to those who fail in their duty through weakness of will, which is the same as saying through shrinking from toil and pain. These cases are perfectly simple and easy to distinguish. In a free hour, when our power of choice is untrammelled and when nothing prevents our being able to do what we like best, every pleasure is to be welcomed and every pain avoided.


Installation¶
Verification¶
Ensure that nutsml can be imported and does work.
Open Python shell via python
and enter the following code:
>>> from nutsml import *
>>> samples = [('pos', 1), ('pos', 1), ('neg', 0)]
>>> samples >> CollectStratified(1) >> Sort()
[('neg', 0), ('pos', 1)]
You can also run the entire unit test suite to verify correct function of nuts-ml:
cd my_python_path/site-packages/nutsml
pytest
Note
If you don’t know where your site-packages
are, run the following code
python -c "import site; print(site.getsitepackages())"
['C:\\Maet\\Software\\Anaconda', 'C:\\Maet\\Software\\Anaconda\\lib\\site-packages']
Bleeding-edge¶
If you want the bleeding-edge version, install via
git clone
from GitHub
git clone https://github.com/maet3608/nuts-ml.git
cd nuts-ml
python setup.py install
pytest
Upgrade¶
For upgrading an existing installation run
pip install nutsml --upgrade
or if installed via git clone
and setup.py
cd nuts-ml
python setup.py install --force
Virtual environment¶
Create virtual environment
pip install virtualenv
cd my_projects
virtualenv vnuts
Activate/deactivate environment
Linux, Mac
$ source vnuts/bin/activate
$ deactivate
Windows
> vnuts\Scripts\activate.bat
> vnuts\Scripts\deactivate.bat
Install nuts-ml in virtual environment (here for Linux/Mac)
source vnuts/bin/activate
pip install nutsml


Week 7 Technical Blog
JavaScript
2/10/15
After learning Ruby the past few weeks and learning JavaScript this week, I noticed there were many similarities as well as differences between the 2 languages. One thing I noticed is that I think looping in JS is a lot easier than in Ruby. This is because JS includes a counter when you write a loop.
The syntax when writing a loop in JS is
for(i=0; i<5; i++) {}
As you can see, the i represents the counter, initialized with the value 0. The second is the "test", checking to run the loop when i is less than 5. The i++ is telling to increase the counter by 1 every time it runs the loop. Writing a while loop is similar by initializing a counter and then running the loop only when a test returns true.
The syntax when writing a loop in Ruby is a little different. A for loop is generally used when you know how many times you want to run the loop. The syntax in Ruby is
5.times do...end
There is a for loop but it can only be used on an iterable object, such as an array.


This document describes the administrative processes of the EPICS V4 Working Group.
The EPICS V4 Working Group is a collaboration of software engineers and physicists involved in the design and implementation of the next major version of EPICS.
For more information about EPICS, please refer to the home page of the Experimental Physics and Industrial Control System.
This is the 25 Nov 2013 version of the Process document. This revision includes the new section on Action Item progress tracking - the way that we track project advancement. However, the processes described here have been largely in effect since September 2011 and have formed the basis of the EPICS V4 Working Group collaboration operations. This revision describes the meaning of Normative in the context of EPICS V4 standards.
Comments are welcome, please address them to the chairs of the EPICS V4 at the EPICS V4 mailing list, https://sourceforge.net/mailarchive/forum.php?forum_name=epics-pvdata-devel
The terms MUST, MUST NOT, SHOULD, SHOULD NOT, REQUIRED, and MAY when highlighted (through style sheets, and in uppercase in the source) are used in accordance with RFC 2119 [RFC2119]. The term NOT REQUIRED (not defined in RFC 2119) indicates exemption.
The process is described by a list of practices and required documents, given in approximately the chronological order in which they are used.
The collaboration between individuals working on EPICS Version 4, is formalised as Working Group. As such it has definite participants, who are responsible for the deliverables; and observers, who partake in policy and meetings, but are not required to deliver work.
Participants are expected to contribute 20-30% of their time on the activities of the Working Group. Participants MUST get active approval from their home institution, in writing, delivered to the chairs.
One or two individuals take the role of chairs of the Working Group. They draft the charter and are responsible for the charter success criteria. Specific activities of the chairs will include assigning roles to group members, meeting agenda, making sure meetings are productive, deciding on the mechanism of action item, issue, and resolution recording (see below), arbitration and the role of final "decider."
A Charter document is prepared which defines the duration, deliverables, success criteria, scope (including items out of scope), and funding, of the Working Group. The charter is intended to be the basis for agreement of objectives between the collaborating institutions, and between employers and employees about their EPICS Working Group commitment.
Telecon meetings should be held every week or close to that schedule.
Face-to-face meetings should be held, for one or two days, on an approximately quarterly schedule, or as activities require.
Minutes of all meeting should be recorded in some detail and be available for reference among the members and other parties to the charter such as managers and EPICS leadership.
Some activities of the working group should be formally and openly tracked, so that the group can itself administer its own activity and decisions effectively, and so that home institutions and the EPICS community in general can monitor activity. In particular the following should be tracked:
The tracking mechanism is to use SourceForge (SF) tickets. Each kind of item tracked above will be tracked by a SF ticket type.
The Charter defines which projects are important for the following year. For organizational clarity we'll group these into activities:
| Activity |
|---|
| Basic Development, Network and IOC |
| APIs and Clients |
| High Performance Data Processing |
| Platform Support |
| Documentation and Web Site |
Each project will accomplished by defining and completing ACTION ITEMS (AIs). There may be one or many AIs associated with a project.
Charter <->> Activities <->> Projects <->> ACTION ITEMS
The status of the ACTION ITEMS of each Project will be tracked by an Agile Development like dashboard. See http://epics-pvdata.sourceforge.net/dashboard.html.
Working group participants are expected to:
In the penultimate telecon of each month we'll review the active AIs in the dashboard.
In the last meeting of each month Bob, as the main money man of EPICS V4, will prioritize what AIs should be worked on the following month.
Work prioritization should stem from scientific and controls Use Cases as much as possible. Therefore, we will create a new document called Use Cases and APIs. This document will list the ways one might want to get data, and the physics or controls use case in which it would be used. Each AI's ticket should link to the use case, either in email, or in the Use Cases and APIs doc. To get priority for a job, someone would write a use case to illustrate what they want, and include what the user interface would look like, either in email, or in the Use Cases document.
The source code products of the Working Group should be made available to the public, with reference to the EPICS License.
All source code should be accompanied by programmers guidance documentation, and should also be accompanied by fully marked up source code reference documentation such as Doxygen (C++) or JavaDoc (java).
Very clear instructions about how to acquire, build, and link software, should be clearly visible in the group's web site. Prerequisites of the software must be clear.
All software should be managed in a Source Code Management system. Releases should be made including unit tests, ideally within a Continuous Integration Management system.
The association of software implementation version with the version or versions of the normative documents on which that software is associated, should be very clear, and made explicit on the web site.
The working group should maintain a public web site, where software and document products can be found easily.
The maturity and status of each working group product must be clearly indicated on the web site.
The web site must make clear to the public how to contact the working group, how to provide feedback to the group and how to report bugs in software and specifications. SourceForge is a reasonable platform for the web site.
This section defines basic terms used to identify the provenance of documents and code of the EPICS V4 Working Group. Where appropriate, working group material SHOULD identify itself as one of these:
Documents that define a specification of a standard or design being proposed by the Working Group for EPICS, should themselves be written according to a standard. We will call such documents "Normative"; see http://en.wikipedia.org/wiki/Normative#Standards_documents. Normative documents of the EPICS V4 working group are documents which contain prescriptions of what process or software that claim to conform to the standard, ought to do.
Normative documents must contain mostly deterministically specified descriptions of designs and processes (though Normative documents may contain non-normative material to help clarify or illustrate, as long it's clearly shown to be so). Normative software should conform to one or more Normative documents that describe its function. In general, Normative work of the group is intended to be developed collaboratively in the open with the EPICS community. Core products of the working group must be Normative.Normative code will be documented to an agreed standard level and conform to the Coding Standard Guidelines
Normative documents MUST all follow the same template, which specifies inclusion of text that indicates the status and provenance of the document.
Normative specifications or designs for software (or hardware) should be accompanied by a reference implementation.
Normative documents should go through the following iterative collaboration procedure. This is to ensure that the EPICS community has good opportunity to comment and refine the spec, the final product is broadly useful, and weak or unnecessary specs get dropped.


Service Worker Lab
Available in
Chrome 40+
This image is available even if the network is off or it is not available on the server -
it is cached
This image is not available if thenetwork is off


- getAction(out<Action>, String...) - Method in class in.definex.Action.RemoteActionCall
-
Creates an action and returns the action and response
- getActionManager() - Static method in class in.definex.Bot
-
- getActiveChat() - Method in class in.definex.Action.ActionManager
-
Returns the current open group chat in whatsapp web
- getAlias() - Method in class in.definex.ChatSystem.Client
-
- getAllClients() - Method in class in.definex.ChatSystem.ChatGroup
-
- getAllClientsInGroup - Static variable in class in.definex.Database.Core.ClientDatabase
-
- getAuthor(List<Bubble>) - Method in class in.definex.ChatSystem.Bubble
-
Get name of the author of the message
- getAuthorFromMyBubble() - Method in class in.definex.ChatSystem.Bubble
-
if author is null, tries to find the author from its own bubble,
if not found return null
- getAuthorNameFromBubble(WebElement, List<WebElement>) - Static method in class in.definex.Functions.BubbleFunctions
-
Deprecated.
- GetBubbles(String) - Static method in class in.definex.ChatSystem.Bubble
-
Get all the bubbles on screen.
- getChatGroup() - Method in class in.definex.ChatSystem.Client
-
caches chatgroup of the client and returns it
- getChatGroupList() - Method in class in.definex.ChatSystem.ChatGroupsManager
-
- getChatGroupsManager() - Static method in class in.definex.Bot
-
- getChatItemList() - Method in class in.definex.ChatSystem.ChatGroup
-
chatItemList getter
- getChatProcessorManager() - Static method in class in.definex.Bot
-
- getChatWebElement() - Method in class in.definex.ChatSystem.ChatGroup
-
Chat Group web element getter
- getChecker() - Static method in class in.definex.Bot
-
- getClient(String, String) - Static method in class in.definex.ChatSystem.Client
-
Retrieves a client from the database
returns a temp account if client is not found
- getClient(String, String) - Static method in class in.definex.Database.Core.ClientDatabase
-
- getClientReferenceFromBubble - Static variable in class in.definex.String.XPaths
-
- getClientsInGroup(String) - Static method in class in.definex.Database.Core.ClientDatabase
-
- getClientsWithRole(String, Client.Role) - Static method in class in.definex.ChatSystem.Client
-
Get all the clients with role from the damage
- GetClientWithAlias(String) - Static method in class in.definex.ChatSystem.Client
-
Finds the client with given alias from database.
- getClientWithAlias(String) - Static method in class in.definex.Database.Core.ClientDatabase
-
- getClientWithRole(String, Client.Role) - Static method in class in.definex.Database.Core.ClientDatabase
-
- getCommands() - Method in class in.definex.Feature.Feature
-
- GetConfig(String, String) - Method in class in.definex.Database.Configuration
-
String/int/float/boolean overload to get configuration
- GetConfig(String, Integer) - Method in class in.definex.Database.Configuration
-
- GetConfig(String, Float) - Method in class in.definex.Database.Configuration
-
- GetConfig(String, Boolean) - Method in class in.definex.Database.Configuration
-
- getConfiguration() - Static method in class in.definex.Bot
-
- getConsole() - Static method in class in.definex.Bot
-
- getConsoleCommandManager() - Method in class in.definex.Console.Console
-
- getCoreFeatures() - Method in class in.definex.Feature.FeatureManager
-
- getDatabaseByName(String) - Method in class in.definex.Database.DatabaseManager
-
Get a database with table name
- getDatabaseManager() - Static method in class in.definex.Bot
-
- getDate() - Method in class in.definex.Scheduler.Schedule
-
- getDescription() - Method in class in.definex.Feature.Accounts.AccountsFeature
-
- getDescription() - Method in class in.definex.Feature.Command.Helper
-
- getDescription() - Method in class in.definex.Feature.Feature
-
get Feature description for your feature
abstract method has to be implement for your feature
- getDescription() - Method in class in.definex.Feature.GroupConfig.GroupConfigFeature
-
- getDescription() - Method in class in.definex.Feature.Help.HelpFeature
-
- getExample() - Method in class in.definex.Feature.Command.Helper
-
- getFaceName() - Method in class in.definex.ChatSystem.Client
-
- getFeatureManager() - Static method in class in.definex.Bot
-
- getGroupId() - Method in class in.definex.ChatSystem.ChatGroup
-
groupId getter
- getGroupId() - Method in class in.definex.ChatSystem.Client
-
- getGroupNameXPath(String) - Static method in class in.definex.String.XPaths
-
- getGroups(FeatureManager, WebDriver) - Static method in class in.definex.Database.Core.ChatGroupDatabase
-
- getHelper() - Method in class in.definex.Feature.Accounts.DemoteCommand
-
- getHelper() - Method in class in.definex.Feature.Accounts.PromoteCommand
-
- getHelper() - Method in class in.definex.Feature.Accounts.RegisterCommand
-
- getHelper() - Method in class in.definex.Feature.Accounts.SetAliasCommand
-
- getHelper() - Method in class in.definex.Feature.Accounts.WhoIsCommand
-
- getHelper() - Method in class in.definex.Feature.Command
-
- getHelper() - Method in class in.definex.Feature.GroupConfig.AddFeatureCommand
-
- getHelper() - Method in class in.definex.Feature.GroupConfig.RemoveFeatureCommand
-
- getHelper() - Method in class in.definex.Feature.GroupConfig.RoleCommand
-
- getHelper() - Method in class in.definex.Feature.GroupConfig.ShowAvailableFeatureCommand
-
- getHelper() - Method in class in.definex.Feature.Help.HelpCommand
-
- getHelper() - Method in class in.definex.Feature.Help.HelpCommandCommand
-
- getHelper() - Method in class in.definex.Feature.Help.HelpFeatureCommand
-
- getIp() - Method in class in.definex.NetworkJob.NetworkJob
-
Getters
- getKeyword() - Method in class in.definex.Console.ConsoleCommand
-
- getKeyword() - Method in class in.definex.Feature.Command
-
- getListOfFeatures() - Method in class in.definex.Feature.FeatureManager
-
Returns the list of features in string
- getLooper() - Static method in class in.definex.Bot
-
- getMinRole() - Method in class in.definex.Feature.Command
-
- getMyFeatures() - Method in class in.definex.ChatSystem.ChatGroup
-
Getter of features allowed in the group
- getMyThread() - Method in class in.definex.Console.Console
-
- getName() - Method in class in.definex.ChatSystem.Client
-
Getters
- getName() - Method in class in.definex.Database.Database
-
- getName() - Method in class in.definex.Feature.Feature
-
- getNetworkJobManager() - Static method in class in.definex.Bot
-
- getNextChecker() - Method in class in.definex.Action.Checker
-
Loops though checker actions and
returns the next checker action in the checkerActions list
- getPort() - Method in class in.definex.NetworkJob.NetworkJob
-
- getPrestige() - Method in enum in.definex.ChatSystem.Client.Role
-
- getProjectLoc() - Static method in class in.definex.Bot
-
- getRemoteActionCall() - Static method in class in.definex.Bot
-
- getReScheduleDeltaTime() - Method in class in.definex.Scheduler.Schedule
-
- getResponseString() - Method in enum in.definex.Action.RemoteActionCall.Response
-
- getRole() - Method in class in.definex.ChatSystem.Client
-
- getScheduleManager() - Static method in class in.definex.Bot
-
- getScheduleTask() - Method in class in.definex.Scheduler.Schedule
-
Getters
- getSuperClient(String) - Static method in class in.definex.ChatSystem.Client
-
Return super client which have the highest role super admin.
- getTemplate() - Method in class in.definex.Feature.Command.Helper
-
- getText() - Method in class in.definex.ChatSystem.Bubble
-
- getTextFromBubble(WebElement) - Static method in class in.definex.Functions.BubbleFunctions
-
Deprecated.
- getTime() - Method in class in.definex.ChatSystem.Bubble
-
- getTimeFromBubble(WebElement) - Static method in class in.definex.Functions.BubbleFunctions
-
Deprecated.
- getWebDriver() - Static method in class in.definex.Bot
-
- getWebElement() - Method in class in.definex.ChatSystem.Bubble
-
Web element getter
- gotoGroup(ChatGroup) - Method in class in.definex.Action.ActionManager
-
used to move to a target group to perform action
(waits for 2s after changing group)
- GroupCC - Class in in.definex.Console.Core
-
Add, Remove, Show groups that can be recognized by the bot
use "group show" to show all current groups
use "group add " to add new group with groupid gid
use "group remove " to remove a group with groupid gid
example: group add yo
Created by adam_ on 03-04-2018.
- GroupCC() - Constructor for class in.definex.Console.Core.GroupCC
-
- groupConfigDescription - Static variable in class in.definex.String.FeatureAndCommandDescription
-
- GroupConfigFeature - Class in in.definex.Feature.GroupConfig
-
Created by adam_ on 04-12-2017.
- GroupConfigFeature() - Constructor for class in.definex.Feature.GroupConfig.GroupConfigFeature
-
- groupCreateTable - Static variable in class in.definex.String.DatabaseQueries
-
- groupDelete - Static variable in class in.definex.String.DatabaseQueries
-
- groupFeatureUpdate - Static variable in class in.definex.String.DatabaseQueries
-
- groupInsert - Static variable in class in.definex.String.DatabaseQueries
-
- groupMyFeature - Static variable in class in.definex.String.DatabaseQueries
-
- groupSelectAll - Static variable in class in.definex.String.DatabaseQueries
-
- groupTable - Static variable in class in.definex.String.DatabaseQueries
-
- groupUID - Static variable in class in.definex.String.DatabaseQueries
-


library(bib2df)
library(stevemisc)
library(stringi)
# load a bib file to data frame
<- bib2df(file="Crump.bib")
bib_df
# clean entries
$TITLE <- stri_replace_all_regex(bib_df$TITLE, "[\\{\\}]", "")
bib_df$JOURNAL <- stri_replace_all_regex(bib_df$JOURNAL, "[\\{\\}]", "")
bib_df$BOOKTITLE <- stri_replace_all_regex(bib_df$BOOKTITLE, "[\\{\\}]", "")
bib_df
# convert a single row back to .bib entry
<- paste0(capture.output(df2bib(bib_df[1,])), collapse="")
bib_entry
bib_entry
# print out the citation
::print_refs(bib_entry,
stevemisccsl = "apa.csl",
spit_out = TRUE,
delete_after = FALSE)
Customizing a publication list with R Markdown
NOTE: Some of the code here stopped working with an upgrade in R.
I’ve been using R Markdown to generate my lab website for years. I recently switched from the generic R markdown website to a website generated by pkgdown. I’m happy with the result. As a part of the migration I’m revisiting individual pages like my publications page.
Over the years I’ve tried different ways to list publications. I like any process that takes a .bib
file containing my publications, and then auto-generates everything I want to have.
bibbase
I was previously using bibbase, which takes a .bib
file as input and embeds a list of publications into a webpage. For example, I used to generate a publication list by inserting a script into the .Rmd
for my publications page.

It was quick, easy, and pretty good overall.
bibbase issues
But, there were nuisances. I couldn’t get the formatting exactly right. I don’t think bibbase supports different .csl
formats, so it doesn’t display citations in APA format.
Bibbase recognizes extra tags in the .bib
file to define arbitrary links, and then have the links printed to each citation. For example, a citation might have a pdf, a website, and data associated with it. That was nice.
However, the links double-clicked themselves. I’m not sure why this happened to me, but clicking a link to download a .pdf
would cause the file to be downloaded twice. That was annoying.
What I wanted
Here is the workflow that I wanted to achieve:
- Maintain my list of publications in a zotero folder. Then, export the folder as a biblatex repository (with .pdfs).
- Have an
.Rmd
file that reads in the.bib
file, and then outputs the list of publications - The list ideally could be formatted by any
.csl
file, which would make it easy to output in APA format - The list should automatically add any extra links and stuff that I want (provided those things can be extracted from the
.bib
file).
R Markdown issues and solutions
R Markdown is generally great for citing things. For example, I could cite a paper (Vuorre and Crump 2021), the citation would appear in the text, and a full citation would be printed in a reference section at the end of the document.
However, it’s not so easy to print a full citation in the middle of an R Markdown document, in a style that you want defined by .csl
, and with additional stuff you might want like extra links.
At least, I couldn’t find a way to do that until this morning, when I came across a life-saver function from stevemisc called print_refs()
.
There’s at least a handful of ways to input a .bib
file into R, and then print out a single entry. For example, RefManageR
can do something like this, but it doesn’t support .csl
, so the output may not be in the style you want (and it doesn’t output to APA).
Here’s a quick example of print_refs()
in action.
I’m so glad this function exists. It turns the .bib
file into markdown that can be printed directly inside an .Rmd
. And, this can be done programmatically using knitr chunks. For example, using results=asis
in the knitr
chunk options allows the citation to printed to the .Rmd
document.
```{r, results="asis", echo=FALSE}
print_me <- paste0(stevemisc::print_refs(bib_entry,csl = "apa.csl",
spit_out = FALSE,
delete_after = FALSE), collapse=" ")
cat(print_me) ```
And, this means the citation should show up nicely on the webpage, like this:
Adding links to the citation
A next step was to add any other links to a given citation. I add extra tags to a .bib
file in the extra field for citations in zotero. For example, this line is in the extra field for the Vuorre and Crump (2021) paper.
tex.url_website: https://crumplab.github.io/vertical/
As a result, when the .bib
file is loaded into R as a data.frame, it will contain a column called URL_WEBSITE
. I can then retrieve that info and write some custom code to smash together the markdown for a citation, along with any html I want to add it. The script below auto-generates a list of the first five publications in the .bib
file (after sorting by year, so the most recent are first).
# sort bib_df by year
<- bib_df[order(bib_df$DATE, decreasing=T),]
bib_df
# print individual entries to page
for (i in 1:5 ){
<- paste0(capture.output(df2bib(bib_df[i,])), collapse="")
t_bib_entry <- paste0(stevemisc::print_refs(t_bib_entry,csl = "apa.csl",
t_md_citationspit_out = FALSE,
delete_after = FALSE), collapse=" ")
cat(t_md_citation)
cat("")
if(any(names(bib_df)=="FILE")){
if( !is.na(bib_df[i,"FILE"]) ){
<- paste0("../Crump/",bib_df[i,"FILE"], collapse = "")
pdf_url cat(c(" ",'  pdf '),
sep="")
}
}
if(any(names(bib_df)=="URL_WEBSITE")){
if( !is.na(bib_df[i,"URL_WEBSITE"]) ){
<- as.character(bib_df[i,"URL_WEBSITE"])
pdf_url cat(c(" ",'  website '),
sep="")
}
}
if(any(names(bib_df)=="URL_DATA")){
if( !is.na(bib_df[i,"URL_DATA"]) ){
<- as.character(bib_df[i,"URL_DATA"])
pdf_url cat(c(" ",'  data '),
sep="")
}
}
cat("")
cat("\n\n")
}
NOTE: the pdf links weren’t working…oops, will fix that below.
That’s all
I now have a working pipeline that inputs a .bib
file, and outputs a list of publications in APA format, with a few customizable bells and whistles.
I would feel like this excursion was wrapped up if I refactored the script into a set of functions. But, I’ll leave that for another day.
Functionalizing
Ideally I would like to run a single function like this, and have a whole publication list generated, complete with extra links and icons add to each entry.
bib_2_pub_list("mybib.bib")
I don’t have that solution yet, but may update this post when I have time to make progress in that direction.
In order for the above to work it be necessary to include any metadata for the links in the .bib file. This could be done using the extras field in zotero. I’m already using this approach to export urls. I ran into a few roadblocks attempting to generalize this approach.
Alternatively, two inputs might be better. For example, a .yml
file could be used to define metadata for links.
bib_2_pub_list("mybib.bib","mybib.yml")
Hmmm, need to brainstorm a .yml
structure. This should work. A citation key, followed by numbered links, each containing a name, url, and font awesome icon.
vuorreSharingOrganizingResearch2021:
link1:
name: 'website'
url: 'https://www.crumplab.com/vertical'
icon: 'fas fa-globe'
link2:
name: 'github'
url: 'https://github.com/CrumpLab/vertical'
icon: 'fas fa-github'
behmerCrunchingBigData2017:
link1:
name: 'data'
url: 'https://github.com/CrumpLab/BehmerCrump2017_BigData'
icon: 'fas fa-database'
I can read in the .yml
like this, which turns everything into a list.
<- yaml::read_yaml("Crump.yml") yml_links
Then, need to write some functions…
<- function(url_path,url_text, icon_class){
add_link_icon <- glue::glue('  {url_text} ')
html cat(" ",html, sep="")
}
<- function(bib,yml,pdf_dir,base_url_to_pdfs){
bib_2_pub_list
# load bib file to df
<- bib2df::bib2df(bib)
bib_df
# clean {{}} from entries
# to do: improve this part
$TITLE <- stringi::stri_replace_all_regex(bib_df$TITLE, "[\\{\\}]", "")
bib_df$JOURNAL <- stringi::stri_replace_all_regex(bib_df$JOURNAL, "[\\{\\}]", "")
bib_df$BOOKTITLE <- stringi::stri_replace_all_regex(bib_df$BOOKTITLE, "[\\{\\}]", "")
bib_df
# sort bib_df by year
# to do: add sort options
<- bib_df[order(bib_df$DATE, decreasing=T),]
bib_df
# read yml with links for bib entries
<- yaml::read_yaml(yml)
yml_links
# print entries
for (i in 1:dim(bib_df)[1] ){
# convert row to .bib entry
# to do: make row to bib entry a function
<- paste0(capture.output(bib2df::df2bib(bib_df[i,])), collapse="")
t_bib_entry # generate markdown text for citation
<- paste0(stevemisc::print_refs(t_bib_entry,csl = "apa.csl",
t_md_citationspit_out = FALSE,
delete_after = FALSE), collapse=" ")
cat(t_md_citation)
cat("")
### add pdf links
if( !is.na(bib_df$FILE[i]) ) { #check pdf exists
<- basename(bib_df$FILE[i])
pdf_name <- list.files(here::here(pdf_dir),
rel_path_to_pdf basename(bib_df$FILE[i]),
recursive=T)
<- paste0(base_url_to_pdfs,"/",rel_path_to_pdf,collapse="")
build_url ::add_link_icon(build_url,"pdf","fas fa-file-pdf")
crumplab
}
## add all other links
if( exists(bib_df$BIBTEXKEY[i],yml_links) ) { # check yml bib entry exists
<- yml_links[[bib_df$BIBTEXKEY[i]]]
link_list
for(l in link_list){
::add_link_icon(l$url,l$name,l$icon)
crumplab
}
}cat("")
cat("\n\n")
}
}
Does it blend?
::bib_2_pub_list("Crump.bib",
crumplabr"Crump.yml",
"pkgdown/assets/Crump/files",
"https://www.crumplab.com/Crump/files")
That works pretty well.
Next step is to include this function in my crumplab
package that is part of this webpage, and make it work for real.


"x"
"1" "ORNER,G, SEEWALD,JB, NIEDING,WJ AND KORTE,DW, MUTAGENIC POTENTIAL OF2-HYDROXYIMINOMETHYL-3-METHYL-1-(2'-PROPARGYLOXYMETHYL)IMIDAZOLIUM CHLORIDE INTHE AMES SALMONELLA/MAMMALIAN MICROSOME MUTAGENICITY T __ EST, LETTERMAN ARMYINSTITUTE OF RESEARCH, LAIR-IR-381:TOXICOLOGYSER-237, JULY 1989"


Hi Stranger
Thanks for visiting..... Reach out to Aswin Rajaram and Manoj Ragav for further info
Site Preview


Before humans were launched into space, many animals were propelled heavenwards to pave the way for mankind's pioneering endeavors. These original pioneers, including numerous monkeys, served their nations in order to investigate the biological effects of space travel.
Perhaps the most famous animal astronaut is Laika, the Soviet space dog who made her historic flight on November 3, 1957. The United States preferred to use monkeys for its missions and launched numerous monkey flights primarily between 1948 and 1961 paving the way for manned missions.
Thirty-two monkeys flew in the space program; each had only one mission. Numerous back-up monkeys also went through the programs but never flew. Monkeys from several species were used, including rhesus monkeys, cynomolgus monkeys, and squirrel monkeys, as well as pig-tailed macaques.
Miss Baker and fellow female pioneer Able's historic flight on May 28, 1959 proved a turning point in the US space era. The first beings ever to be recovered alive from a flight into outer space, their journey paved the way for putting the first man into orbit around the earth.
Caption: Miss Baker, the original space pioneer, contemplates her first flight heavenward.
Miss Baker's journey lasted 15 minutes and reached speeds of up to 10,000 MPH. Baker and Able were weightless for nine minutes. A NASA spokesperson stated that the monkeys were in "perfect condition" on their return to earth. Indeed Miss Baker went on to live a long and fruitful life, living until 1984.
Miss Baker and Able's journey gripped the world's imagination. Appearing on the June 15, 1959 cover of Life magazine the pair joined a growing list of women celebrities to grace the magazine's cover in 1959, a list which included Marilyn Monroe, Zsa Zsa Gabor and Jackie Kennedy.
Miss Baker's flight aboard a Jupiter AM-18 IRBM (Intermediate Range Ballistic Missile) was another milestone in the history of space flight, proving that life could be sustained in space. During the period of weightlessness along the flight's trajectory arc, the physiological responses of Baker approached normal. According to telemetry data, Baker even appeared to doze or become drowsy. Upon reentry, however, the responses of both monkeys rose again, with the animals nearing a settled physiological state at landing.
The Jupiter missile was originally developed by the US Army as a long-range successor to its PGM-11 Redstone missile, but was eventually taken over and deployed by the USAF for political reasons. It was also the only one of the United States' early strategic ballistic missiles with some mobility.
President Eisenhower formed the National Aeronautics and Space Administration (NASA) in 1958 with it's mission to encourage peaceful applications in space science. The agency became operational on October 1, 1958.
In the beginning, NASA’s missions focused on the space race with the Soviet Union. Following Soviet cosmonaut Yuri Gagarin becoming the first man to orbit the Earth in 1961 President Kennedy understood the need for America to surpass the Soviet Union in the space race. He secured additional funding and resources from congress which allowed John Glenn Jr. to become the first American to orbit Earth.
Space exploration continued throughout the 1960s. Project Gemini and The Apollo Program were the next projects carried out by NASA. On July 20, 1969, the Apollo 11 astronauts Neil Armstrong, Michael Collins, and Edwin "Buzz" Aldrin Jr. realized President Kennedy's dream of landing a man on the moon. Currently, NASA is supporting the International Space Station and is conducting in-depth surveys and scientific research throughout the solar system.
Miss Baker married her long-time partner and fellow monkey 'Big George' in 1962 at the Naval Aerospace Medical Center in Pensacola, Florida where she lived.
In 1971, Miss Baker was moved to the U.S. Space & Rocket Center. Whilst there she received around 100 letters a day from schoolchildren and regularly entertained visitors to the museum.
Miss Bakers husband Big George passed away on January 8, 1979. Not one to wait around for long, it was only three months until she 'married' again, this time to Norman, from the Yerkes National Primate Research Center. However, it seems Miss Baker wasn't entirely comfortable with the event after refusing to wear her white wedding train, tearing it off after a few seconds.
"Baker delights visitors every day with her energy and antics with her husband Norman."
Ed Buckbee, Center Director, U.S. Space & Rocket Center, 1982
Norman and Miss Baker celebrated her birthday on the anniversary of her flight each year. To celebrate the 25th anniversary of her flight, Miss Baker was treated to a rubber duck and, her favorite, strawberry gelatin with bananas, along with well-wishes from thousands of people. Miss Baker died aged 27, of kidney failure at a clinic at Auburn University after becoming the oldest living squirrel monkey on record. She is buried on the grounds at the U.S. Space & Rocket Center and to this day her grave regularly has one or more bananas on top.
------------
Content (c) The Web Evolved. The Space Pioneers example text, designed to accompany Beginning HTML5 and CSS3: The Web Evolved http://thewebevolved.com/, published by Apress. Text: The Web Evolved. HTML + CSS released under a Creative Commons Attribution 3.0 license.


Guard Bayard:
The volcanic region in the northeastern part of Goddard is known as the gods' cauldron. It's said that rivers of lava flow there! I don't think it's a place you'd want to spend your vacation!
Someone else told me that Bigfoot was seen there, too! Getting into a UFO! Are you listening to me? This is important stuff!
Back


🏠 Home
Breakfast
Lunch
Dinner
Snacks
Stir-Fry
Beverages
MyPantry
Pierce's MyPantry with a variety of food options to choose from, ranging from pre-prepared frozen items to stir-fry ingredients.
Stir-Fry Station
There is a rich assortment of spices and sauces at the Pierce stir-fry station where your options are only limited by your imagination and the food in the pantry! If you ever get tired of the prepared food at Pierce, you can always create your own stir-fry at the stir-fry station and pantry.


Happy Aniversary!
You Will Always Bhie My Infinity And Clarity
I Hope And Wishing For Our Love To be More True And Stronger As we Grow Old
We Can Make All Our Dreams And Wishes Come True Together
You Will Always Bhie My Infinity And Clarity I Hope And Wishing For Our Love To be More True And Stronger As we Grow Old We Can Make All Our Dreams And Wishes Come True Together
Happy Aniversary!


Try out our Premium Member services: Virtual Legal Assistant, Query Alert Service and an ad-free experience. Free for one month and pay only if you like it.
:1: IN THE HIGH COURT OF KARNATAKA DHARWAD BENCH DATED THIS THE 17TH DAY OF SEPTEMBER 2014 BEFORE THE HON'BLE MRS. JUSTICE B.V. NAGARATHNA WRIT PETITION NO. 108205/2014 (GM-RES) BETWEEN : SIDRAY S/O YALLAPPA TARALE AGE: 42 YEARS, OCC: BUSINESS R/O. SY NO. 99/2, PATIL GALLI, MANGAL NAGAR, I CROSS VADAGAON, BELGAUM. ... PETITIONER (BY SRI : GANGADHAR S HOSAKERI, ADVOCATE) AND : 1. THE ENVIRONMENTAL OFFICER KARNATAKA STATE POLLUTION CONTROL BOARD, NO. 1 MAIN ROAD, AUTO NAGAR, KANABARGI INDUSTRIAL AREA BELGAUM . 2. SMT. SUJATA W/O. SANJAY GURAV AGE: 40 YEARS, OCC: HOUSEHOLD WORK R/O. R S NO. 99/2, PATIL GALLI MANGAI NAGAR, VADAGAON BELGAUM . ... RESPONDENTS THIS WRIT PETITION IS FILED UNDER ARTICLES 226 AND 227 OF THE CONSTITUTION OF INDIA PRAYING TO QUASH THE IMPUGNED ORDER DATED 29.11.2013 PASSED BY RESPONDENT NO.1 VIDE ANNEXURE-D1, ETC. :2: THIS WRIT PETITION COMING ON FOR ORDERS, THIS DAY, THE COURT MADE THE FOLLOWING: ORDER
Office has raised an objection regarding the maintainability of writ petition. As the matter is a Green Bench matter, it has to be listed before the Principal Bench only.
2. Learned counsel for petitioner states that petitioner may be permitted to withdraw the writ petition reserving liberty to avail of the alternative remedy under the Air (Prevention & Control of Pollution) Act, 1981.
3. In that view of the matter, writ petition is dismissed as not maintainable reserving liberty to the petitioner to avail of the statutory remedy, if so advised.
Office to return the certified copies of Annexures to petitioner's counsel forthwith, subject to filing of copies of same for the purpose of record.
Sd/-
JUDGE hnm


JavaScript is disabled on your browser.
Skip navigation links
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
Prev Letter
Next Letter
Frames
No Frames
All Classes
A
B
C
D
E
F
G
H
I
K
L
M
N
O
P
Q
R
S
T
U
V
W
_
T
TAG
- Static variable in class ca.ualberta.cmput301f14t16.easya.Model.
SntpClient
TakeAPicture
- Static variable in class ca.ualberta.cmput301f14t16.easya.View.
SubmitActivity
Time
- Class in
ca.ualberta.cmput301f14t16.easya.Model
Provides the current time, corrected for time zone.
Time()
- Constructor for class ca.ualberta.cmput301f14t16.easya.Model.
Time
timed_out
- Variable in class ca.ualberta.cmput301f14t16.easya.Model.Data.
ESSearchResponse
timezone
- Static variable in class ca.ualberta.cmput301f14t16.easya.Model.
Time
title
- Variable in class ca.ualberta.cmput301f14t16.easya.Controller.ATasks.
submitQuestionTask
A title String for the newly created
Question
to be pushed.
title
- Variable in class ca.ualberta.cmput301f14t16.easya.Model.
Question
A title String for this Question
title
- Variable in class ca.ualberta.cmput301f14t16.easya.Model.
QuestionList
A title String for this QuestionList
toAdress(double, double)
- Static method in class ca.ualberta.cmput301f14t16.easya.Model.
GeoCoder
toFindDistance(double[], double[])
- Static method in class ca.ualberta.cmput301f14t16.easya.Model.
GeoCoder
toLatLong(String)
- Static method in class ca.ualberta.cmput301f14t16.easya.Model.
GeoCoder
took
- Variable in class ca.ualberta.cmput301f14t16.easya.Model.Data.
ESSearchResponse
Topic
- Class in
ca.ualberta.cmput301f14t16.easya.Model
Topic extends
Content
, providing added functionality to suit more specific purposes.
Topic()
- Constructor for class ca.ualberta.cmput301f14t16.easya.Model.
Topic
Creates an empty Topic.
Topic(String, String)
- Constructor for class ca.ualberta.cmput301f14t16.easya.Model.
Topic
Creates a new instance of Topic containing the body text provided, and associated with the given author ID.
Topic(String, byte[], String)
- Constructor for class ca.ualberta.cmput301f14t16.easya.Model.
Topic
Topic(String, byte[], String, double[], String)
- Constructor for class ca.ualberta.cmput301f14t16.easya.Model.
Topic
toString()
- Method in class ca.ualberta.cmput301f14t16.easya.Model.Data.
ESHits
toString()
- Method in class ca.ualberta.cmput301f14t16.easya.Model.Data.
ESSearchResponse
total
- Variable in class ca.ualberta.cmput301f14t16.easya.Model.Data.
ESHits
TRANSMIT_TIME_OFFSET
- Static variable in class ca.ualberta.cmput301f14t16.easya.Model.
SntpClient
tv
- Variable in class ca.ualberta.cmput301f14t16.easya.Controller.ATasks.
submitReplyTask
A
B
C
D
E
F
G
H
I
K
L
M
N
O
P
Q
R
S
T
U
V
W
_
Skip navigation links
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
Prev Letter
Next Letter
Frames
No Frames
All Classes


Soo I’m an aesthitician. Sometimes I do nails … but mostly I do art. Everyone has their interpretation of art, but do some of us have more acuity for seeing the beauty in art? If beauty is in the eye of the beholder, how do we develop that ability to see it? Is such beauty inherint in anything? If so, are there things better left unseen? What determines what our mind decides to focus on?
If the conscious layer of the mind is like the surface of water and thoughts are like the bubbles the subconscious allows to rise to the surface, then what determines what arises fully to the conscious layer? This is just as important to the beholder as it is the artist, but the artist develops an awareness of how the beholder will see their work. Much of what lies in our subconscious isn’t worth thinking about, but the best artists seem to be able to swim in the depths of their subconscious, retrieving jewels not shaped or constrained by effable thought. How does one tap into that?
Oh yeh, the joke. You’ll need this definition to get the joke.
ϕ What is Retromodernism?
∇² The Best Artists Fly Under the Radar
∇² Oh Snap! We Got A Smart One Over Here!
ϕ Truth: An Artist’s Perspective Contraposed with the Status Quo
∇² Distraction by Design
∇² S-Class Artist
∇² Suffering for Art’s Sake
ϕ And Just Fade Into Nothingness?
∇² Hello? Is Anybody Out There?
ϕ Bound to Cover Just a Little More Ground
∇² Never Change! Don’t Ever Change!
∇² Shh! Can You Hear That?
∇² The Best Artists Must Choose Between Success and Art
∇² Falling on Deaf Ears
ϕ The Best Art Stays Crypted
∇² Hipsters Drink from the Wellsprings of Art & Culture
∇² Semiotics of Medium
∇² On Art, Knowledge and Directive Cognitive Expansion
The Next Ghostbusters is Steampunk
What is Retromodernism?
Once technology has eliminated the constraints to artistic medium, it seems the near future might present us with an artistic movement that reenvisions and recombinates alternate progressions of technology in search of alternate mediums and formats, which might have been popular in some alternate timeline or formulation of reality. What would art look like if industrialization emerged from India or elsewhere in the 18th century, finally spreading modernization to Europe? If modernization emerged and converged in some way that changed the order and regions in which technologies became available, how would that have changed the qualities of artistic mediums? E.G. if photoshop was available before and without radio, how would that affect the nature of print medium? The progression of art, mediums and techniques surely would shape it’s prevelance and evolution, so what if that were different in some way? How would we think about the past today if some seemingly trivial aspects differed slightly?
We may see a resurgance in interest in revisiting 19th and especially 20th century tech and ideas to find hidden gems, rare art and recombinant forms of such. We already see this in steampunk and elsewhere, but for the purposes of this article, I’ll refer to it as retromodernism. I apologize for inventing a word. While awareness of differentiation and distinction of ideas is important, I’m not fond of arbitrary division and distinction between ideas, so who am I to create another? And really … who am I to try to define a concept such as retromodernism?
Much of the art produced to reflect this idea would be encumbered by stilted constraints imposed by the artist, but if some retromodernism formulations seem natural enough to avoid lengthy explanation, we’d see some very interesting art indeed. Further, this would help us understand the general nature of alternate progressions of technology in the near future, as we approach the Singularity.
The Best Artists Fly Under the Radar
Many artists remained unknown until their death, never tasting the fruits of success, recognition or fame. Van Gogh is a great example. Is this necessary to their faculties of vision and reflection as an artist? In many ways, isolation, struggle and incomprehensibility can reinforce their skills as an artist. It’s ironic that success and fame might alter the potential of an artist, but it clearly has time and time again. Public recognition distorts the way they see things, causing them to transcend the environmental constraints. They become deprived of the challenges that helped them originally develop their ability and vision.
Success and fame cause us to become attached to them. We fear their loss and then choose to don restrictive social norms and conventions, which begins to couple us to those things which we originally distinguished ourselves from. IMO, it is what is unique that is beautiful and intriguing. When art makes us think, that forces us to invest time and energy in understanding it, which fosters appreciation for that work. An artist constrained by society will produce works that reflect that. Whether it’s a painting or novel or film or video game, art that isn’t distinguishable doesn’t seem to require as much thought for us to understand.
In many ways, art represents the frontiers of inner space. Artists are like astronauts who explore their own subconscious depths as well as the expanse of cultural artifacts and ideas. The rich and powerful defend the status quo because it makes them comfortable. They also buy art. You aren’t going to sell much art if you’re trying to sell it at a shelter for the homeless. Your price point is determined by your audience or market. Art expands how we think and the most popular art forms the edge of things we think about. Still, art and truth have a tendency to slip out and have a powerful effect on how people think. This changes the status quo. And so, the development and progression of art is influenced by the idiosyncrasies in the market for art, whether it’s visual art, corporate art, literary or cinematic art.
Oh Snap! We Got A Smart One Over Here!
The best artists fly under the radar! Quite often, they have to shield their true understanding of the world around them because they can be serious threats to those in power. That doesn’t mean there are men in black out there snuffing starving artists. Instead, you’ll find that the rich and powerful will tend to redirect your energy through allures of money and positions of influence. As someone who’s struggling, it’s hard for the artist and author to resist, but not everyone is Mozart. Those who have considerable influence and way too much of other people’s time on their hands want to identify these possible threats early on.
It is not the rich man you should properly call happy, but him who knows how to use with wisdom the blessings of the gods, to endure hard poverty, and who fears dishonor worse than death, and is not afraid to die for cherished friends or fatherland.
The artists who are just lucky and don’t fully understand their work won’t feel as commited to forego selling out to protect the authenticity of their work. But the true genius will endure hard poverty for his work because he believes his message is worth the struggle. This is true of many other facets of life. Great parents may forsake opportunities or distractions to ensure they devote themselves fully to their family because they embody a belief that nothing is more important than their family. So they instead seek humility and stability.
Oh Hey, Look! It’s Mara! Do You Think She’d Like Some Tea?
Truth: An Artist’s Perspective Contraposed with the Status Quo
Let me apologize in advance for the impending conspiratorial statements. The point is – if you are an artist or philosopher whose ideas threaten the status quo, you’ll find yourself on a relevatory path of suffering for truth, assaulted on all sides by distractions, frenemies poisoned against you and outright malevalent forces.
If you make it too far, but refuse to give in, there may be powerful forces who seek to get you off that path by any means necessary. It is most effective to do so by offering you a career opportunity and essentially buying you off. Actually, they want to keep you busy and keep you close, while appearing to be your friend. They don’t seek to become overt enemies and “they” aren’t exactly evil, cigar-smoking, men in suits. But beware, if you are a true threat in any big way, the people on the top of that pyramid of power do not play nice. You will not know what hit you. Usually, they start with a metaphorical gift-basket though. Hey, look! Wine and chocolates! If you’re lucky, you’ll have some mimosas. Perhaps some brunch and coffee.
Distraction by Design
The very best artists know that they’ll be presented with an assault of enticing distractions. They are well aware that great art is mystifying. Moreover, they have the capacity to develop a unique vision or message, but they are familiar enough with it to understand that their ideas may be dangerous. Therefore, this artist may seek to limit exposure to protect his/her voice.
For example, not to say I’m an example of this class of UG Artist, but I know that I can’t post my blogs on Reddit or my account will be deleted. The /r/philosophy and /r/askphilosophy mods told me so. Nope, I can’t even “AskPhilosophy” bro! Typical, for me. No, I’m not allowed to utilize online forums to interact with other like-minded intellectual citizens.
S-Class Artist
This class of artist realizes that (1) the conventional critic or consumer isn’t going to understand and (2) if someone doesn’t understand, it may ultimately threaten the artist’s quest for truth and realization of vision. Thus, to this end and in pursuit of mystification, the great artist learns to encode their work with a vaporous shroud of enigma. In this way, if the art truly merits criticism and study, then those who meditate on the piece long enough may unlock the truth.
I wish I could do this with my own work, but I’m plagued by the sensation that I’m running out of time, which is a blessing and a curse. It doesn’t help much when the people around me don’t seem to care about my pursuits, writing or business. Also, I think it’s interesting to expose my drafts on Github, as it exposes the thinking and writing process a bit. Typically, showing others unfinished work is a major mistake, but in my case, something is better than nothing and I have a lot to offer! If I upload drafts of my work early on, then no one can steal my work while I’m in the process of writing with no means to sustain my work and constantly assaulted by efforts to distract me from ever becoming anything or ever accumulating a legacy. I’d prefer not to vanish without a trace…
Suffering for Art’s Sake
So, the great artist knows they might have to suffer for their work and they are more than willing to do so, not out of a sense that doing so might mean they become more successful, but because it is worthwhile. If the great artist had acuity for great art and thought there wasn’t much value to their own work, they wouldn’t be so eager to expend energy and endure hardship in pursuit of the exhibition of truth. On the other hand, they know that excessive success may change them or draw too much attention to early work, possibly forcing them to abstain from expressing ideas that threaten the status quo. It’s de facto censorship. If you’re too attached to wealth or fame, you’ll censor yourself. If the great artist knows this and purposefully flies under the radar, then it gives him or her more time to produce more work, hoping it will be discovered later. Or perhaps the artist isn’t attached to whether or not the work will become widely known after their death.
And Just Fade Into Nothingness?
I don’t think so. I’m not sure what the deal is, but I haven’t really had a life experience. I mean I have, but I haven’t. I feel like I’m watching TV all the time. Like I can look, but I can’t touch. Why can’t I participate in life? Why have I been essentially blacklisted? The damage done to my life, my psychological development? It’s unreal.  Connection with likeminded intellectuals or beatniks or hippies or whoever. It really doesn’t matter.  For all the restriction in my own life, I have accumulated a ton of experience and knowledge. I want to put that to use; to build something; to make something. Or !@#$, at least get laid.
As for my own journey, I finally recognized that I had great ideas and just how different they were. By the time I did, I had already sought to suppress expression of everything I knew because I feared that hidden elements in the world would lash back at me. However, the world seems to have done just that and when I began publishing, I never got a bigger rise out of people who wanted to shut me up. I’m not sure why, since I was writing treatises on the humanities: linguistics, philosophy, psychology and sociology. I didn’t even know what a treatise was, but that definitely describes some of my best articles. Maybe I got too close to some esoteric topics. It’s depressing to get so close to the truth and fear leaving nothing behind. Still, getting this mostly insinuated and passive aggressive reaction was as close as I came to satisfaction from a project and it was more accesible than apps and programming libs because it was written in English.
Hello? Is Anybody Out There?
Is This Facebook Thing Even On?
It’s actually fun, at this point. If all I get is a rise from blogging about what’s worth thinking about, it’s totally worth it, even no one ever actually recognizes me. I have skills and knowledge and passion, but who cares? I’ve been mostly disconnected from my social graph and I have no social capital. If I’m lying about something, then by all means, call me out on it. I dare you. I’ve been shadow-banned from social media. They don’t even let me have trolls down here because I’d game them right back for the social media newsfeed points.
I uploaded my drafts recently and now my updates are posted to cloud prematurely to ensure that I don’t end up vanishing without a trace or legacy. Over the past decade, I might have been naive, boisterous, and ironically undereducated, but I learned a lot and while it seems that I produced little to nothing, I have spent so much time thinking and philosophizing. I’ve felt deprived of opportunities and perhaps tormented by a handful of people, which forced me into isolation, where I quietly build out magnificent edifaces in my mind. I don’t want to be so attached to what I’ve created, but I’ve given too much. I’ve sacrificed too much for my mind.
Bound to Cover Just a Little More Ground
The tendency and perhaps necessity for great artists to remain unseen implies that there should be much undiscovered art.  So, as technology expands our ability to create, while inevitably diminishing the space of the uncreated, we may become more interested in finding those pieces otherwise buried beneath the deafening roar of industrialization and consumerism.
The best artists also have the technical capability to hide their true vision. They have the acuity to develop a vision in the first place. And some of these people may have understood, to truly push out their ideas, they needed to hide them in plain sight, within their work. Therefore, they must also understand how to encode these kinds of symbols and messages. The person capable of the above: they are usually capable of success. If security and stability doesn’t stray them from their path, then fame & fortune will tempt them. It tempted me, but I had experienced so much suffering and sacrifice to retain the freedom to speak freely that I wasn’t willing to allow myself to be sold out. I suffered for the ability to speak my mind and to speak the truth as I saw it and only later realized the cause of my pain. I wasn’t willing to sell out or become a mockery of what I suffered for.
Never Change! Don’t Ever Change!
These artists, the remarkable ones, are able to withstand the initial temptation of fame & fortune. Often, they reach such heights only after it is inevitable that their work brings such attention, but they are less susceptible to being changed by it. That’s difficult, especially since it changes those around you. And if you are in such a position, it stems from being yourself. You’re marketing yourself and people want the authentic you, but it’s incredibly hard to maintain that.
Quite simply, the best artists value the truth and authenticity of their art more than anything else in the world. They know what it is that they have and why people respond the way they do to their personality or work.
Shh! Can You Hear That?
Here are some observations on music and art that may lead to interesting insights. Some music, art and artforms need to stay underground. Even if it wasn’t made for mainstream appeal, it loses something if it becomes mainstream. Art and music risk losing some truth or aspect of themselves, once they extend beyond a circle of people who truly understand it.
Music which can only be fully enjoyed by those with the right headphones is less marketable. There are lots of songs out there, for which you can only truly experience what the artist intended if you have a high quality headphones. This makes it inherently less marketable. Still, at the same time, more artistic. If you’re an artist and you’re making music with this in mind, then by embracing your artform with creative, hard-to-hear music production techniques, you have to accept that you’re probably not going to be successful, since it’s less marketable.
The Best Artists Must Choose Between Success and Art
In other words, because the better artist can encode their message utilizing more obscure and hard-to-ascertain means and because it’s necessary for the best art to lay low under the radar, then the more proficient artists must necessarily choose between success and art. Therefore, and quite often, mainstream success is at odds with artistic expression. This doesn’t mean that mainstream artists aren’t good artists. However, it implies that, over the 20th and 21st century, there should be plenty of artists or artforms which completely avoided mainstream notice. That is, some of the best art was a bit too camouflaged. It stayed hidden.
These artforms based on technology that was only around for a few years or those formulations of art which would’ve only occured in some alternate universe: these should contain some hidden gems that have been otherwise completely missed. It’s not too hard to imagine that in the age of modernization, amidst the roar of globalization’s mainstream media, that some truth and beauty of our development lays still unnoticed, perhaps for eternity.
Falling on Deaf Ears
Why should one suffer for art, if it’s to fall on deaf ears?
Back to audio engineering, there are so many production techniques that would be lost on those not listening with a critical ear. To the same point, many creative techniques enrich audio or visual art which are totally lost to most, except to those who listen with a critical ear. Therefore, in terms of becoming popular or achieving mainstream success, none of those techniques are going to help you sell art, but they require more effort: sometimes orders of magnitude more time or cost.
Truly, the best artists produce work that’s like an onion.  Sometimes you cry. The best is when art hits you with a wave of truly unexpected emotion as a result of a revolution in how you see some aspect of their work’s object. i.e. PS I Love You (just trust me) … In that case and in others, the art led me to see something that I could have never expected myself. Perhaps I would have never experienced it …. Chick flicks, amiright?
The Best Art Stays Crypted
And so, the best art is necessarily underground. It’s easy to miss. It’s not popular. Sometimes it’s downright subversive, which is why the artists painting with uncomfortable truth would prefer to remain hidden. It’s because their truth might limit their capacity for telling the truth. That is,unless for some reason, they happen to export enough of it while they can, hoping that at some point in the future, when society is a bit more understanding, life will acknowledge the artist as being truly ahead of his or her time. The artists that meet this criteria are few and far between. As society becomes more tolerant, the person who exemplifies the strength and virtue of this artist will become a jewel perhaps impossible to find.
There’s a group of hipster critics who pride themselves on understanding those sensory delicacies most often lost. These critics share their tastes with their friends and as they do, that art grows slightly in popularity. To a lesser degree, so does the general appreciation of what makes that art “good” that can be recognized by listeners and consumers.
The selection of underground artforms and symbols recognized by someone forms a kind of map or language that can speak volumes on who they are and who their friends are. This especially applies when they are unaware of the significance of some symbols. This esoteric aspect of underground music and art only holds true as long as those works remain underground.
Hipsters Drink from the Wellsprings of Art & Culture
When critics recognize underground art for some minor qualities that remain missed by others, and then spread that art & appreciation of its qualities to others, this forms a kind of cycle. There’s a wellspring of creativity at the center, surrounded by hipsters and master artists. These wellsprings have an intense effect on the evolution of art.
The evolution of art and music is an incredbily powerful thing to control or influence. Control this and you control the map of ideas available to others, upon which all that they know and think is woven. There are unseen forces that guard these wellsprings of creativity, art and culture. To either control them for profit or to protect them from tainted influence is to guard the metaphysical realm for future generations. As the speed at which information and culture converge across the globe via technology increases, the metaphysical realm begins to increasingly influence reality and begins to manifest itself.
From these wellsprings, artistic influence gradually spreads outward to the mainstream consumers whose capacity for recognizing and appreciating “good” art expands. These wellsprings basically throttle the process of natural selection that selectively propagates some works of art over others. It’s survival of the fittest. What’s worth retransmitting and what maintains interest is propagated to other nodes in the graph. Those with the most eclectic set of interests have the most unique positions in the graph. They are the “hipsters” who exert the most influence on the rest of the graph.
Semiotics of Medium
To truly appreciate art, one needs the capacity to understand and they need to activate it. The significance and meaning of art itself is often encoded into the art, whereby the significance of symbols related to the production of the art is important to understanding the true meaning of it. This is because artists are most familiar with their tools. Since these are the languages of symbols they understand most, they provide the semiotic basis of “second language” for the artist and the artisticly inclined. Therefore, it’s crucial to understand the production of art and the techniques involved if you hope to understand an artist’s work.
New mediums, like those of technology, require a new set of afficianados, familiar enough with the medium to understand this semiotic language of signs based on the medium itself.
On Art, Knowledge and Directive Cognitive Expansion
In other essays, I have discussed the importance of semiotics in expanding consciousness as critical to developing our mind’s ability to abstract ideas, generally. That is, the degree of our consciousness is measured by the expanse of symbols a being can communicate with and by it’s skill in reconstituting those signs and symbols into peer-to-peer micro-languages. That’s what is meant by “having a connection” with someone. They understand you and your actions in a way that can be only established by contact, listening and a true emotional connection.
If this is so and the degree of consciousness is measured by the expanse of symbols a being can communicate with, both those it recognizes and uses, then it should stand to reason that our most learned citizens are the most conscious and the best artists must be those of us who are highly educated and retain a varied expanse of experiences.
These are the most conscious. Those of us who know and understand and are capable of the most authentic empathy. This is why I focus so much on learning new languages and forms of writing.


Scatterplot
Chart created with d3. where user has the flexibility to change the chart parameters on the fly.For Example:
- To Change the xAxis - call the API setXAttribute(ColumnName)
- To Change the yAxis - call the API setYAttribute(ColumnName)
- To Probe the Chart - call the API probe(key)
- To Make a Selection - call the API select(keys)
Project is under devlopment , will add wiki and documentation soon.....
Thanks for looking at this demo.
DataSource
Y-Axis
X-Axis