| Bracing against the wind | |
| www.documentroot.com |
|
Tuesday, June 16, 2015
Get block size bash
[View/Post Comments] [Digg] [Del.icio.us] [Stumble] Wednesday, May 06, 2015
Quintiles put the poster I made up on their site: Identifying viral load in tumors using nextgen sequencing. Thanks Kim!
[View/Post Comments] [Digg] [Del.icio.us] [Stumble] Wednesday, August 06, 2014
Gene therapies I want to see developed
1. daf-2 - Downregulation increases lifespan in c.elegans Next steps: RNAi and/or Crispr to cause daf-2 homolog (FOXO3) downregulation in mice + tests on resulting phenotype. 2. PEPCK-C - Beta-actin promoter linked to pepck gene shown to improve longevity, intelligence metabolism in mice. Next steps: Lentiviral transfection vector as a longevity vaccine (develop in mouse ageing model with human gene) 3. m-CAT - Mitochondrial targeted catalase : upregulation shown to improve cancer resistance and longevity Next steps: Develop transfection vector as a cancer vaccine (develop in mouse ageing model with human gene) 4. HAS2 - Molecular weight and production of hyaluron decreases over time. Organisms with large amounts of HMWHA live longer and resist cancer. Next steps: Test regular intravenous injection of HMWHA in rat models of cancer and aging. Develop gene therapy intervention to increase HAS2 expression. 5. TERT - TERT+ mice live longer, but also produce more tumors. HAS2, m-CAT and PEPCK-C all interfere with tumorgenesis. The upregulation of TERT while simultaneously increasing m-CAT and HAS2 expression should have a strong synergistic effect. Next steps: Develop gene therapy intervention to increase TERT expression, matching prior experiments, but combine with other interventions. [View/Post Comments] [Digg] [Del.icio.us] [Stumble] Tuesday, June 24, 2014
Clustered Object Encoding 2.0
Object storage: Some manky, idiosyncratic api that allows developers to store "stuff". Avoids dealing with things like partial writes, seeks, memory maps, etc. Generally space wasteful by design. Not a place you'd want to put anything you care about. Yet, secretly, is probably the location of everythingyou care about. Your bank probably keeps your PDF statements in something like this. Block storage: Like a horse, one can mount this kind of storage... but only for exclusive access. No shared, lockable access, no parallel reads. Essentially it's the virtual hard drive for your virtual machine from which you derive your virtual paycheck. Clustered storage: Typically one of the above, but your data is now copied ad nauseum. Someone probably didn't stripe it. The things you expect from clustered storage, like striped files, full POSIX support, parallel writes, and erasure coding don't work in your version of the software, but every whitepaper you read refers to them. POSIX, Erasure Coded, Clustered, Storage (PECCS): 1. This is what you actually want if you run your own data center. Used in a sentence: "Wow, that guy's got PECCS". 2. A mythical beast. 3. Maybe some company named "NextEMCApp" does it. Maybe some guy names Xavier in Spain got it to work once, but then he got hired by [SOME BIG COMPANY] and nobody heard from him again. [View/Post Comments] [Digg] [Del.icio.us] [Stumble] Wednesday, June 11, 2014
Variable Length, Zipf's Law and Density Functions
When these laws of linguistic use are ignored, readability is demonstrably diminished. Consider a variable, the hated "x", used 100 times in a file. If "x" is used 100 times in 40 lines of mathematical manipulation, such as in a digest function, this would be acceptable... the high frequency of use strictly precludes a longer name. If, however, it was spread out across 10000 lines of code, a far longer name would be needed. Of course, suppose that function was embedded in 10k lines of code. Does this change the freqency of x? No. One important rule is that, for the purposes of linguistic calculation, the frequency of any variables usage should be computed relative to the scope of it's use. As a demonstration, cluttering a short for i=1 to 10 ... loop with for iterationIndex = 1 to 10, can cause code to be nigh unreadable. Operation can often be obscured by foolish verbosity:
for iterationIndex = 1 to 10
countArray[iterationIndex]=sizeArray[iterationIndex]*factorArray[iterationIndex] + computeDensity(histogram,iterationIndex)
Versus
for i = 1 to 10
countArray[i]=sizeArray[i]*factorArray[i] + computeDensity(histogram,i)
Likewise stuffing common prefixes on sets of variables in order to lengthen them can hide their meaning in a limited scope:
for i = 1 to 10
wordSuffixCountArray[i]=wordSuffixSizeArray[i]*wordSuffixFactorArray[i] + ComputeDensityForWordSuffix(currentWordSuffixHistogram,i)
It's clear that a minimum set of descriptive, distinct terms within the scope of use should, instead, be used.
Recently, software engineering pundits seem to take the stance that there is no such thing as a variable with too-long a name. This is false. Numerous linguistic studies on readability, word length and frequency, bear that out and so, of course, does common sense. Maximum clarity can be achieved in coding languages by using the same types of statistical distributions that occur in natural languages. [View/Post Comments] [Digg] [Del.icio.us] [Stumble] Friday, May 30, 2014
Capricious Job Scheduling
IIIIIIIIICCCCCCCCCCCCIIIIIIIIIIIIIICCCCCCCCCCCCC IIIIIIIIICCCCCCCCCCCCIIIIIIIIIIIIIICCCCCCCCCCCCC IIIIIIIIICCCCCCCCCCCCIIIIIIIIIIIIIICCCCCCCCCCCCC IIIIIIIIICCCCCCCCCCCCIIIIIIIIIIIIIICCCCCCCCCCCCC IIIIIIIIICCCCCCCCCCCCIIIIIIIIIIIIIICCCCCCCCCCCCC Where 'I' is one second of I/O intensive operation, and 'C' is one second of CPU intensive operation. The result of a perfectly fair scheduler is that there will be periods of high I/O contention and high CPU contention, as the 5 processes are "fairly" switched between, and each keeps the pace with the other. Using a more "capricious" scheduler, where processes may "get lucky" for a while, my processes will be staggered
IIIIIIIIICCCCCCCCCCCCIIIIIIIIIIIIIICCCCCCCCCCCCC lucky (goes first)
IIIIIIIIICCCCCCCCCCCCIIIIIIIIIIIIIICCCCCCCCCCCCC unlucky (goes last)
IIIIIIIIICCCCCCCCCCCCIIIIIIIIIIIIIICCCCCCCCCCCCC
IIIIIIIIICCCCCCCCCCCCIIIIIIIIIIIIIICCCCCCCCCCCCC
IIIIIIIIICCCCCCCCCCCCIIIIIIIIIIIIIICCCCCCCCCCCCC
It's clear that "everyone wins" when this method is chosen. My argument for "capricious" scheduling is that a system cannot know, in advance whether something will be an I or a C. Programs can be profiled over time (modern o/s systems don't do this... but probably should), but most program execution paths vary to the point where profiling may be impractical. Accordingly, a scheduler should be, to some extent, random. [View/Post Comments] [Digg] [Del.icio.us] [Stumble] Friday, April 18, 2014
New verison of bowtie-1.0
[View/Post Comments] [Digg] [Del.icio.us] [Stumble] Thursday, April 10, 2014
Latest Printable Firearm Kit From DefDist
We've come to a point in our evolution as a species where it's not possible to limit the "things" people can obtain. What's more important is creating a world where people have no reason to do harm. "Well there's no way to guarantee that". Sure. But we allow corporations to draft zoning laws so that people have to drive further to work and so that public transportation remains a failure in most cities. We also allow gross wealth inequity. We try to con mothers into abandoning breast feeding (yes, this still happens, I witnessed it a couple weeks ago), and when that doesn't work we make it as difficult as possible for families to spend time with their kids. When the majority of the population is stuck in a perpetual state of inadequacy, when the society is structured around things like "employment" and not "enjoyment", it's not surprising that violence seems a means to an end. A more radical transformation of society, where from birth a nation's citizens feel nurtured, loved and supported would probably go further to prevent violence than "gun laws" possibly could. If only 10% of the people in America went to work, or if we worked only 10% of the time, we could, with the technology we have, produce all the food, shelter and goods needed for every citizen to live a decent middle class lifestyle. But the focus is not on creating awesome lifestyles. The focus is on more expensive stuff for the few stakeholders that got in early in the pyramid scheme that is capitalism. We continue to blame the weapon, and not the society that produces it's wielder. You download printable firearms here: http://kickass.to/defdist-defcad-mega-pack-4-5-otacon-zipped-t7677520.html [View/Post Comments] [Digg] [Del.icio.us] [Stumble] Tuesday, February 11, 2014
bitk.in, mojolicious and liteapi
The site is https://bitk.in, and it allows you to spend bitcoin & litecoin to get fair-valued gift cards at big online stores like Amazon, Walmart, etc. It uses the API from http://liteapi.org for Litecoin and Blockchain's wallet API for Bitcoin. Bitcoin/litecoin integration was trivial. Mojolicious allowed me to spend more time focusing on integration with vendors and payment systems, and just about no time worrying about HTTP. To be honest, I spent more time thinking about the color than the back end. [View/Post Comments] [Digg] [Del.icio.us] [Stumble] Tuesday, December 03, 2013
UTF8 Encoding and Postgres Dump
gunzip -c dumpall.gz | iconv | sudo -u postgres psql > restore.errs 2>&1
Miraculously, iconv worked without options, cleaning up version incompatibilities, while maintaining all the data... even the funny French city names.
If you're changing encodings while also upgrading, that's fine too. iconv takes a "from" and "to" argument, so log in to the source db and destination db, and use:
SHOW client_encoding;
Then use the results as the "-f FROM" and "-t TO" arguments to iconv. No conversion is perfect, but iconv seems to do as good a job as possible.
[View/Post Comments] [Digg] [Del.icio.us] [Stumble] |
|
Bloghop:
|
Blogarama
|
Technorati
|
Blogwise