--- layout: default title: Home ---
Tiny Quark is a small design & development co-op in D.C.
We make great stuff.
We handcraft focused, adaptive sites for clients. We believe in a rapid, iterative process that solves the right problems at the right time.
Below are a few examples of previous work. Read the brief, have a look at the screenshot, and click through to visit the live site. We'd love the chance to add some work for you to our book.
DAI is a $400m global development company leading large scale projects all over the world for clients like USAID, DFID, and the EC. This new primary corporate site moves DAI away from the aging behemoth that is Drupal, and plants them firmly into the modern world of web publishing. Built as a decoupled content management system, and designed with responsive principles—the new site will help DAI turn their American success story into a global one.
The folks at Pediatric Eye MD needed help updating an existing online presence. Modernized with a decoupled CMS, a static site generator, and an updated look and feel—the growing practice now has an online presence that can grow as they do.
Sullivan & Cromwell were looking for a way to increase their online presence in the world of mergers and acquisitions. Built with a modern, decoupled approach to the CMS, the S&C DealPortal acts as a clearinghouse for the latest news and informed perspectives from the M&A team at Sullivan & Cromwell.
We believe in open source—so we contribute regularly to the ever-growing ecosystem of great software that's currently transforming the web. Jekyll themes, built for use with Siteleaf can make all the difference for a team that includes both the tech savvy and the business minded. We make these themes, plugins, and gists freely available on Github. Let's make software better, together.
It's true, we're small—but we're wiry, and focused. We only take on a few clients at a time and we go full tilt for them. While we believe in the fundamental principles of Agile Development, we're not devout about it. An open, honest, and frequent dialogue about a project's progress, objectives, and roadblocks is the most essential component to building great stuff—this, we believe.
Leran More About UsEverything starts with an initial free consult. Let us know what you're working on—we'll think through it together and see if we can help out. If it's not right for us, we'll help you figure out what your next steps might be. We like to help.
Conact Us Now


We don't see any open orders associated with your phone. If you have another phone you may have used, you can try redeeming again with that number.
If you're sure you have an open order associated with this phone, please contact the operator.
We don't see any open orders associated with your phone. If you have another phone you may have used, you can try redeeming again with that number.
If you're sure you have an open order associated with this phone, please contact the operator.


Syntax Highlighter
Formula Indentation
Cells Tooltip
Dashboard Grid
Disable Logo Link
Improved Colors
Edit colors...
Edit Cells Bg
Sum1 Bg
Sum2 Bg
Sum3 Bg
Font
Font Size
H2 Txt
H2 Bg
H2 Align
Info Bg
Slider Bg
Slider Txt
Navbar Bg
Navbar Btn
Navbar Txt
Labels Txt
Selection
Col Head Bg
Col Head Txt
Created by
BIPIX consulting


Toggle navigation
Menu
LocalSecrets.Club
Contact
Join the local secrets club
Passionate city explorers who have the same interests, coming together to let their secrets become social
Go To App
Contact Us (via Twilio)
Name
Email Address
Phone Number
Message
Send


| 这里输入name |
|---|
尊敬的用户：您好！感谢您使用****，您的账号正在进行邮箱验证，验证码为：{0}，有效期30分钟，请尽快填写验证码完成验证！ Dear user:Hello! Thanks for using *****, your account is being authenticated by email, the verification code is: {0}, valid for 30 minutes. Please fill in the verification code as soon as possible! ****团队 联系我们：******** 此为系统邮件，请勿回复 |


{% extends 'layout.html'%} {% block title %}Flask MySQL | Home{% endblock %} {% block body %}
This application is built on Python Flask Framework and a backend using MySQL Database


WITNESS LIST Urban Affairs Committee February 12, 2003-10:30A TDHCA On: Carrington, Edwina (Texas Department of Housing and Community Affairs) Cedillo, Ruth (Texas Department of Housing and Community Affairs) TSAHC On: Blackburn, Deb (Texas State Affordable Housing Corporation)


{% import "Pylot/macros/base.html" as m with context %} {% import "Pylot/macros/forms.html" as f with context %} {% extends "Pylot/PostManager/layout.html" %} {% block page_title %}List{% endblock %} {% block content %}
| Type | Title | {% for post in posts %} |
|---|---|---|
| {{ post.type.name }} | {{ post.title }} |


{{ partial "header.html" . }} {{ partial "navigation.html" . }}
As developers, software development is everything. But, sadly, it's also a common source of frustration. For me, exasperation stemmed from repetition. And, eventually, I suffered from burnout.
Time and time again, as developers, we are tasked with building simple CRUD apps to help with business operations. These tools are critical to the existence and growth of the companies we work at but they're repetitive and painful to build. As a developer, I detested building these tools. And I soon found out, thousands/millions of other developers felt the same.
So, Budibase was born.
Budibase is a development platform for building, automating, and shipping business applications. We vehemently believe, building applications with Budibase should feel magical. To steal a phrase from Marie Kondo, we want to "spark joy" when developers use Budibase.
To do this, we must focus obsessively on what makes a great developer experience and show a level of altruistic commitment. This led us to our first initiative, The Budibase Commitments. Combined, these commitments illustrate a pledge from us, as a company, to our incredible community:
Developers are curious and security conscious. They want the ability to self-host on their own infrastructure and roam the codebase. Budibase commits to always offering a free, open platform, that developers can inspect the code base and host themselves.
Developers don't want to feel locked in or limited by a solution. Budibase commits to always providing developers with a way to code against the platform, add components/integrations to the platform, and export their apps/data.
Developers are busy. They want to get to the enjoyable parts of coding as quickly as possible. Budibase must get the developer to the fun parts of coding as quickly as possible. Budibase commits to making the process of building an internal tool as fast and pleasant as possible.
Developers love communities. Budibase must always support and invigorate the community. This includes, and is not limited to, providing a thriving marketplace, great docs, an incredible forum, a place to raise issues and contribute to the code base, add plugins, design themes, and in some cases - earn money!
We've spoken about our commitment to providing a great developer experience. What we have not spoken about is our quest to build a thriving ecosystem. We will do this by fostering a community of developers who build integrations, database connectors, UI components, and application templates for themselves - and giving back to the rest of the community with ease.
For our community members, we are committed to providing you with immense value. Ultimately, our community will be our biggest strength. We want to form a symbiotic relationship with our community, so that what is good for Budibase Inc is good for the Budibase community, and vice versa.
Building an inclusive, sustainable community, where all parties benefit and enjoy being a part of will help us achieve our vision: to power the workforce of tomorrow.
There will come a time when our community transforms into an ecosystem. It's at this point when we unlock the barriers for others to utilize templates from the marketplace. Budibase will eventually become the home of business applications. An ecosystem where users of all levels can pull-down a ready-made solution to a business procedure or operation.
Our mission and vision are gargantuan and ambitious. But, with a great developer experience, a best-in-class product, and a thriving ecosystem, we will get there.
We ask you to join us, and help us transform the working lives of millions, potentially billions of developers, employees, and businesses.
Michael Shanks
Budibase CEO


Several techniques can be used to find and isolate native code memory leaks. In general there is no single ideal solution for all platforms. The following are some techniques to diagnose leaks in native code.
A very common practice is to track all allocation and free calls of the native allocations. This can be a fairly simple process or a very sophisticated one. Many products over the years have been built up around the tracking of native heap allocations and the use of that memory.
Tools like IBM Rational Purify and the runtime checking functionality of Sun Studio dbx
debugger can be used to find these leaks in normal native code situations and also find any access to native heap memory that represents assignments to uninitialized memory or accesses to freed memory. See Find Leaks with dbx Debugger.
Not all these types of tools will work with Java applications that use native code, and usually these tools are platform-specific. Because the virtual machine dynamically creates code at runtime, these tools can wrongly interpret the code and fail to run at all, or give false information. Check with your tool vendor to ensure that the version of the tool works with the version of the virtual machine you are using.
See sourceforge for many simple and portable native memory leak detecting examples. Most of these libraries and tools assume that you can recompile or edit the source of the application and place wrapper functions over the allocation functions. The more powerful of these tools allow you to run your application unchanged by interposing over these allocation functions dynamically. This is the case with the library libumem.so
first introduced in Oracle Solaris 9 operating system update 3; see Find Leaks with libumem Tool.
If you write a JNI library, then consider creating a localized way to ensure that your library does not leak memory, by using a simple wrapper approach.
The procedure in Example 3-7 is an easy localized allocation tracking approach for a JNI library. First, define the following lines in all source files.
Example 3-7 Define this Procedure in Source Files
#include <stdlib.h> #define malloc(n) debug_malloc(n, __FILE__, __LINE__) #define free(p) debug_free(p, __FILE__, __LINE__)
Then you can use the functions in Example 3-8 to watch for leaks.
Example 3-8 Function to Watch Leaks
/* Total bytes allocated */ static int total_allocated; /* Memory alignment is important */ typedef union { double d; struct {size_t n; char *file; int line;} s; } Site; void * debug_malloc(size_t n, char *file, int line) { char *rp; rp = (char*)malloc(sizeof(Site)+n); total_allocated += n; ((Site*)rp)->s.n = n; ((Site*)rp)->s.file = file; ((Site*)rp)->s.line = line; return (void*)(rp + sizeof(Site)); } void debug_free(void *p, char *file, int line) { char *rp; rp = ((char*)p) - sizeof(Site); total_allocated -= ((Site*)rp)->s.n; free(rp); }
The JNI library would then need to periodically (or at shutdown) check the value of the total_allocated
variable to verify that it made sense. The preceding code could also be expanded to save in a linked list the allocations that remained and report where the leaked memory was allocated. This is a localized and portable way to track memory allocations in a single set of sources. You would need to ensure that debug_free()
was called only with the pointer that came from debug_malloc()
, and you would also need to create similar functions for realloc()
, calloc()
, strdup()
, and so forth, if they were used.
A more global way to look for native heap memory leaks would involve interposition of the library calls for the entire process.
Most operating systems include some form of global allocation tracking support.
On Windows, search the MSDN library for debug support. The Microsoft C++ compiler has the /Md
and /Mdd
compiler options that will automatically include extra support for tracking memory allocation.
Linux systems have tools such as mtrace
and libnjamd
to help in dealing with allocation tracking.
Oracle Solaris operating system provides the watchmalloc
tool. Oracle Solaris 9 operating system update 3 also introduced the libumem
tool, see Find Leaks with libumem Tool.
The dbx
debugger includes the Runtime Checking (RTC) functionality, which can find leaks. The dbx
debugger is part of Oracle Solaris Studio and also available for Linux.
Example 3-9 shows a sample dbx
session.
 RTC: Running program... dbx: process 15426 about to exec("/net/bonsai.sfbay/export/home2/user/ws/j2se/build/solaris-i586/bin/java") dbx: program "/net/bonsai.sfbay/export/home2/user/ws/j2se/build/solaris-i586/bin/java" just exec'ed dbx: to go back to the original program use "debug $oprog" RTC: Enabling Error Checking...  Actual leaks report (actual leaks: 27 total size: 46851 bytes) Total Num of Leaked Allocation call stack Size Blocks Block Address ========== ====== =========== ======================================= 44376 4 - calloc < zcalloc 1072 1 0x8151c70 _nss_XbyY_buf_alloc < get_pwbuf < _getpwuid < GetJavaProperties < Java_java_lang_System_initProperties < 0xa740a89a< 0xa7402a14< 0xa74001fc 814 1 0x8072518 MemAlloc < CreateExecutionEnvironment < main 280 10 - operator new < Thread::Thread 102 1 0x8072498 _strdup < CreateExecutionEnvironment < main 56 1 0x81697f0 calloc < Java_java_util_zip_Inflater_init < 0xa740a89a< 0xa7402a6a< 0xa7402aeb< 0xa7402a14< 0xa7402a14< 0xa7402a14 41 1 0x8072bd8 main 30 1 0x8072c58 SetJavaCommandLineProp < main 16 1 0x806f180 _setlocale < GetJavaProperties < Java_java_lang_System_initProperties < 0xa740a89a< 0xa7402a14< 0xa74001fc< JavaCalls::call_helper < os::os_exception_wrapper 12 1 0x806f2e8 operator new < instanceKlass::add_dependent_nmethod < nmethod::new_nmethod < ciEnv::register_method < Compile::Compile #Nvariant 1 < C2Compiler::compile_method < CompileBroker::invoke_compiler_on_method < CompileBroker::compiler_thread_loop 12 1 0x806ee60 CheckJvmType < CreateExecutionEnvironment < main 12 1 0x806ede8 MemAlloc < CreateExecutionEnvironment < main 12 1 0x806edc0 main 8 1 0x8071cb8 _strdup < ReadKnownVMs < CreateExecutionEnvironment < main 8 1 0x8071cf8 _strdup < ReadKnownVMs < CreateExecutionEnvironment < main
The output shows that the dbx
debugger reports memory leaks if memory is not freed at the time the process is about to exit. However, memory that is allocated at initialization time and needed for the life of the process is often never freed in native code. Therefore, in such cases the dbx
debugger can report memory leaks that are not leaks in reality.
Note: Example 3-9 used two suppress
commands to suppress the leaks reported in the virtual machine, libjvm.so
and the Java support library, libjava.so
.
First introduced in Oracle Solaris 9 operating system update 3, the libumem.so
library and the modular debugger mdb
can be used to debug memory leaks. Before using libumem
, you must preload the libumem
library and set an environment variable as shown in Example 3-10.
Example 3-10 Set an Environment Variable for libumem
$ LD_PRELOAD=libumem.so $ export LD_PRELOAD $ UMEM_DEBUG=default $ export UMEM_DEBUG
Now, run the Java application, but stop it before it exits. Example 3-11 uses truss
to stop the process when it calls the _exit
system call.
At this point you can attach the mdb
debugger, as shown in Example 3-12.
The ::findleaks
command is the mdb
command to find memory leaks. If a leak is found, this command prints the address of the allocation call, buffer address, and nearest symbol.
It is also possible to get the stack trace for the allocation that resulted in the memory leak by dumping the bufctl
structure. The address of this structure can be obtained from the output of the ::findleaks
command.
See analyzing memory leaks using libumem
for troubleshooting the cause for a memory leak.


--- layout: post status: publish published: true title: 75%-80% of Soriano Reports to Spring Training author: display_name: Corey Fineran login: Corey email<EMAIL_ADDRESS>url: '' author_login: Corey author_email<EMAIL_ADDRESS>wordpress_id: 1994 wordpress_url: http://ivyenvy.com/?p=1994 date: '2010-02-22 19:17:09 +0000' date_gmt: '2010-02-23 01:17:09 +0000' categories: - Defense - Outfield - Spring Training tags: - Alfonso Soriano - Spring Training - Carrie Muskat - Most Hated Cubs Player of 2009 comments: - id: 1106 author: M. Walker author_email<EMAIL_ADDRESS>author_url: '' date: '2010-02-22 21:49:58 +0000' date_gmt: '2010-02-23 03:49:58 +0000' content: That probably knocked him down 10 or 15%; we won't see him till May now. When are you guys coming out with another episode? You MUST do Baseball Cards part 2. - id: 1107 author: Corey author_email<EMAIL_ADDRESS>author_url: '' date: '2010-02-22 22:22:49 +0000' date_gmt: '2010-02-23 04:22:49 +0000' content: "New episode this weekend. It's the last off-season episode. We will host our wives/fiances/girlfriends and talk about how obsession with the Cubs. \r\n\r\nWe will have to re-visit the baseball card collections at some point." - id: 1108 author: Kurt author_email<EMAIL_ADDRESS>author_url: http:// date: '2010-02-24 08:53:13 +0000' date_gmt: '2010-02-24 14:53:13 +0000' content: "Last year was statistically his worst year since '01. His contract was based on his 46 hr and 41 sb in Washington. So, by my calculations, at 75-80% we should expect 34-38 home runs. I'll concede the stolen bases.\r\n\r\nIn all seriousness, I think we'll see statistically good years out of Soriano, but will better stats help the team? Will he hit 25 solo shots or get doubles with men on? I think we know the answer to that question." - id: 1109 author: Corey author_email<EMAIL_ADDRESS>author_url: '' date: '2010-02-24 09:06:01 +0000' date_gmt: '2010-02-24 15:06:01 +0000' content: "In theory, his placement in the batting order should help keep his solo HR's to a minimum and he should get more RBI's. His role in the 5 or 6 spot will be to drive the top half of the order.\r\n\r\n....In theory." - id: 1110 author: M. Walker author_email<EMAIL_ADDRESS>author_url: http://fatherhoodfirsts.blogspot.com date: '2010-02-27 02:18:32 +0000' date_gmt: '2010-02-27 08:18:32 +0000' content: Where was he batting last year? To be honest, I don't know if he has it in him to do much in any place. I don't buy the injury excuse for last year, I think he is just getting old and lazy. - id: 1111 author: Corey author_email<EMAIL_ADDRESS>author_url: '' date: '2010-02-27 07:57:56 +0000' date_gmt: '2010-02-27 13:57:56 +0000' content: "If I remember correctly, he spent most of the first half of the season in the lead-off spot. I think there were a few games stretches in which he was moved out of it, but he was the regular lead-off guy. \r\n\r\nI think it was right around the All-Star break that they moved him to the 5-hole." - id: 1125 author: Meehan author_email<EMAIL_ADDRESS>author_url: http://www.twitter.com/RAVENATION837 date: '2010-03-22 21:31:33 +0000' date_gmt: '2010-03-23 03:31:33 +0000' content: "You did remember correctly Corey\r\n\r\nAnd for the record, I see him at the five spot a majority of this year. Also for the record, that's an awful lot of money to be paying somebody to hit in the 5 hole.\r\n\r\nMeehan" ---
The 2009 season is something we'd all like to forget. The injuries and dysfunction weighed heavily throughout 2009 and hopes are high that 2010 will be different on both fronts.
I am not a Soriano fan and I was outspoken about this last year. He earned two swipes from me in the "Most Hated Cubs Player of 2009" contest at our first live event at Twenty Sports Grille. Soriano ended up winning that contest, by the way. I wasn't the only one ready to express my frustrations with the liability in left field.
But I decided to try to accept Soriano for who he is in 2010.  He won't play with his head in the game. He will be below-average in the field. But if he is healthy and pitchers forgot to throw him sliders in the dirt, his power should return this season.
Soriano reported to Spring Training in Mesa today and started things off by reporting that he's 75%-80% recovered from his September arthroscopic knee surgery. He also said that he doesn't want to push things too quickly. That sounds like the Soriano I know.
Fellow Cubs fans, it will be the 2015 season until we see a roster without Alfonso Soriano. He will earn $90 million between now and then. That's right, he is still owed 2/3 of this contract.


Single Bubble Model Users Guide¶
| Release: | 1.1 |
|---|---|
| Date: | Nov 08, 2017 |
Scripts¶
The class objects and method functions defined in the single_bubble_model
module provide a flexible structure to handle simulations of the fate of a
single rising bubble, drop, or particle. The examples detailed below show how
to set up and run single_bubble_model
simulations. Further examples are
presented in the following scripts distributed in the ./bin/sbm
directory
with the source code.
Examples¶
This example illustrates the tasks necessary to setup, run, save, and
post-process simulations using the single_bubble_model
module. A wide
class of bubble, droplet, or particle compositions and initial conditions
can be simulated by the single_bubble_model
. In each case, the simulation
considers the rise velocity, dissolution, and heat transfer of a single
particle assuming it rises through a quiescent fluid. This model cannot
consider multiple particle (run multiple simulations to get the results
for each desired particle type) and, thus, includes no particle-particle
interaction.
Initialize the single_bubble_model.Model
Object¶
There are two ways to initialize a single_bubble_model
object. When a new
simulation will be made, this should be done by specifying the ambient
conditions data that will be used in the simulation. Alternatively, if a
previous simulation is to be reloaded for post-processing, then the filename
of the netCDF dataset containing the results is used to initialize the object.
Here, we use the profile data. In a later section of this example, once the
simulation data have been save, the second method of using the saved data to
create the single_bubble_model.Model
object is demonstrated:
>>> import ambient
>>> import single_bubble_model
>>> nc = '.test/output/test_bm54.nc'
>>> bm54 = ambient.Profile(nc, chem_names='all')
>>> bm54.close()
>>> sbm = single_bubble_model.Model(profile=bm54)
Setup and Run a Simulation¶
To run a simulation, one must pass the initial conditions to the single_bubble_model.simulate method. Here, we specify the initial conditions as:
>>> composition = ['methane', 'oxygen']
>>> mol_frac = np.array([1.0, 0.0])
>>> de = 0.005
>>> z0 = 1500.
>>> T0 = None # T0 will be set equal to the ambient temperature
The single_bubble_model
expects the particle information to be passed
as a dbm.FluidParticle
or dbm.InsolubleParticle
object. Create a soluble
particle for this example:
>>> import dbm
>>> bub = dbm.FluidParticle(composition)
The single_bubble_model
handles the conversion from initial diameter to
the initial masses, so we can now run the simulation:
>>> sbm.simulate(bub, z0, de, mol_frac, T0, fdis=1e-8, delta_t=10)
After executing the above command, the model will echo its progress to the screen. Following the simulation, the data will be plotted showing the state space variables and several other derived quantities in three different figure windows.
Saving and Loading Simulation Results¶
To save the simulation results in a netCDF dataset file that can also be used
to recreate the current single_bubble_model.Model
object, use the
single_bubble_model.save_sim method:
>>> nc_file = './sims/bubble_path.nc'
>>> profile = './test/output/test_bm54.nc'
>>> sim_info = 'Sample results from the documentation examples'
>>> sbm.save_sim(nc_file, profile, sim_info)
The data can also be saved as ASCII
text in a format that is readable by,
for example, Matlab. If numpy
version 1.7.0 is used, a header with the
file metadata can be written; otherwise, only the data table can be written.
In either case, the function call is the same:
>>> sbm.save_txt(nc_file, profile, sim_info)
If the netCDF dataset object is used, this can be used later to reload the
simulation into the single_bubble_model.Model
object. Since the netCDF
dataset is self-documenting, this can be done simply by passing the file
name of the netCDF dataset to the single_bubble_model.Model
constructor:
>>> sbm_old = single_bubble_model.Model('./sims/bubble_path.nc')


Beine
Squad
The squad is an excellent exercise for training your hams and gluteus.
bla bla
bla bla
bla bla
bla bla
bla bla
bla bla
bla bla
right


STRACE(1) STRACE(1) NAME strace - trace system calls and signals SYNOPSIS strace [ -CdffhiqrtttTvxx ] [ -acolumn ] [ -eexpr ] ... [ -ofile ] [ -ppid ] ... [ -sstrsize ] [ -uusername ] [ -Evar=val ] ... [ -Evar ] ... [ command [ arg ... ] ] strace -c [ -eexpr ] ... [ -Ooverhead ] [ -Ssortby ] [ command [ arg ... ] ] DESCRIPTION In the simplest case strace runs the specified command until it exits. It intercepts and records the system calls which are called by a process and the signals which are received by a process. The name of each system call, its arguments and its return value are printed on standard error or to the file specified with the -o option. strace is a useful diagnostic, instructional, and debugging tool. System administrators, diagnosticians and trouble-shooters will find it invalu‐ able for solving problems with programs for which the source is not read‐ ily available since they do not need to be recompiled in order to trace them. Students, hackers and the overly-curious will find that a great deal can be learned about a system and its system calls by tracing even ordinary programs. And programmers will find that since system calls and signals are events that happen at the user/kernel interface, a close examination of this boundary is very useful for bug isolation, sanity checking and attempting to capture race conditions. Each line in the trace contains the system call name, followed by its arguments in parentheses and its return value. An example from stracing the command ``cat /dev/null'' is: open("/dev/null", O_RDONLY) = 3 Errors (typically a return value of -1) have the errno symbol and error string appended. open("/foo/bar", O_RDONLY) = -1 ENOENT (No such file or directory) Signals are printed as a signal symbol and a signal string. An excerpt from stracing and interrupting the command ``sleep 666'' is: sigsuspend([] <unfinished ...> --- SIGINT (Interrupt) --- +++ killed by SIGINT +++ If a system call is being executed and meanwhile another one is being called from a different thread/process then strace will try to preserve the order of those events and mark the ongoing call as being unfinished. When the call returns it will be marked as resumed. [pid 28772] select(4, [3], NULL, NULL, NULL <unfinished ...> [pid 28779] clock_gettime(CLOCK_REALTIME, {1130322148, 939977000}) = 0 [pid 28772] <... select resumed> ) = 1 (in [3]) Interruption of a (restartable) system call by a signal delivery is pro‐ cessed differently as kernel terminates the system call and also arranges its immediate reexecution after the signal handler completes. read(0, 0x7ffff72cf5cf, 1) = ? ERESTARTSYS (To be restarted) --- SIGALRM (Alarm clock) @ 0 (0) --- rt_sigreturn(0xe) = 0 read(0, ""..., 1) = 0 Arguments are printed in symbolic form with a passion. This example shows the shell performing ``>>xyzzy'' output redirection: open("xyzzy", O_WRONLY|O_APPEND|O_CREAT, 0666) = 3 Here the three argument form of open is decoded by breaking down the flag argument into its three bitwise-OR constituents and printing the mode value in octal by tradition. Where traditional or native usage differs from ANSI or POSIX, the latter forms are preferred. In some cases, strace output has proven to be more readable than the source. Structure pointers are dereferenced and the members are displayed as appropriate. In all cases arguments are formatted in the most C-like fashion possible. For example, the essence of the command ``ls -l /dev/null'' is captured as: lstat("/dev/null", {st_mode=S_IFCHR|0666, st_rdev=makedev(1, 3), ...}) = 0 Notice how the `struct stat' argument is dereferenced and how each member is displayed symbolically. In particular, observe how the st_mode member is carefully decoded into a bitwise-OR of symbolic and numeric values. Also notice in this example that the first argument to lstat is an input to the system call and the second argument is an output. Since output arguments are not modified if the system call fails, arguments may not always be dereferenced. For example, retrying the ``ls -l'' example with a non-existent file produces the following line: lstat("/foo/bar", 0xb004) = -1 ENOENT (No such file or directory) In this case the porch light is on but nobody is home. Character pointers are dereferenced and printed as C strings. Non-print‐ ing characters in strings are normally represented by ordinary C escape codes. Only the first strsize (32 by default) bytes of strings are printed; longer strings have an ellipsis appended following the closing quote. Here is a line from ``ls -l'' where the getpwuid library routine is reading the password file: read(3, "root::0:0:System Administrator:/"..., 1024) = 422 While structures are annotated using curly braces, simple pointers and arrays are printed using square brackets with commas separating elements. Here is an example from the command ``id'' on a system with supplementary group ids: getgroups(32, [100, 0]) = 2 On the other hand, bit-sets are also shown using square brackets but set elements are separated only by a space. Here is the shell preparing to execute an external command: sigprocmask(SIG_BLOCK, [CHLD TTOU], []) = 0 Here the second argument is a bit-set of two signals, SIGCHLD and SIGT‐ TOU. In some cases the bit-set is so full that printing out the unset elements is more valuable. In that case, the bit-set is prefixed by a tilde like this: sigprocmask(SIG_UNBLOCK, ~[], NULL) = 0 Here the second argument represents the full set of all signals. OPTIONS -c Count time, calls, and errors for each system call and report a summary on program exit. On Linux, this attempts to show system time (CPU time spent running in the kernel) independent of wall clock time. If -c is used with -f or -F (below), only aggregate totals for all traced processes are kept. -C Like -c but also print regular output while processes are running. -d Show some debugging output of strace itself on the standard error. -f Trace child processes as they are created by currently traced processes as a result of the fork(2) system call. On non-Linux platforms the new process is attached to as soon as its pid is known (through the return value of fork(2) in the parent process). This means that such children may run uncontrolled for a while (espe‐ cially in the case of a vfork(2)), until the parent is scheduled again to complete its (v)fork(2) call. On Linux the child is traced from its first instruction with no delay. If the parent process decides to wait(2) for a child that is currently being traced, it is suspended until an appropriate child process either terminates or incurs a signal that would cause it to terminate (as determined from the child's current sig‐ nal disposition). On SunOS 4.x the tracing of vforks is accomplished with some dynamic linking trickery. -ff If the -o filename option is in effect, each processes trace is written to filename.pid where pid is the numeric process id of each process. This is incompat‐ ible with -c, since no per-process counts are kept. -F This option is now obsolete and it has the same func‐ tionality as -f. -h Print the help summary. -i Print the instruction pointer at the time of the sys‐ tem call. -q Suppress messages about attaching, detaching etc. This happens automatically when output is redirected to a file and the command is run directly instead of attaching. -r Print a relative timestamp upon entry to each system call. This records the time difference between the beginning of successive system calls. -t Prefix each line of the trace with the time of day. -tt If given twice, the time printed will include the microseconds. -ttt If given thrice, the time printed will include the microseconds and the leading portion will be printed as the number of seconds since the epoch. -T Show the time spent in system calls. This records the time difference between the beginning and the end of each system call. -v Print unabbreviated versions of environment, stat, termios, etc. calls. These structures are very com‐ mon in calls and so the default behavior displays a reasonable subset of structure members. Use this option to get all of the gory details. -V Print the version number of strace. -x Print all non-ASCII strings in hexadecimal string for‐ mat. -xx Print all strings in hexadecimal string format. -a column Align return values in a specific column (default col‐ umn 40). -e expr A qualifying expression which modifies which events to trace or how to trace them. The format of the expres‐ sion is: [qualifier=][!]value1[,value2]... where qualifier is one of trace, abbrev, verbose, raw, signal, read, or write and value is a qualifier-depen‐ dent symbol or number. The default qualifier is trace. Using an exclamation mark negates the set of values. For example, -e open means literally -e trace=open which in turn means trace only the open system call. By contrast, -e trace=!open means to trace every system call except open. In addition, the special values all and none have the obvious meanings. Note that some shells use the exclamation point for history expansion even inside quoted arguments. If so, you must escape the exclamation point with a back‐ slash. -e trace=set Trace only the specified set of system calls. The -c option is useful for determining which system calls might be useful to trace. For example, trace=open,close,read,write means to only trace those four system calls. Be careful when making inferences about the user/kernel boundary if only a subset of system calls are being monitored. The default is trace=all. -e trace=file Trace all system calls which take a file name as an argument. You can think of this as an abbreviation for -e trace=open,stat,chmod,unlink,... which is use‐ ful to seeing what files the process is referencing. Furthermore, using the abbreviation will ensure that you don't accidentally forget to include a call like lstat in the list. Betchya woulda forgot that one. -e trace=process Trace all system calls which involve process manage‐ ment. This is useful for watching the fork, wait, and exec steps of a process. -e trace=network Trace all the network related system calls. -e trace=signal Trace all signal related system calls. -e trace=ipc Trace all IPC related system calls. -e trace=desc Trace all file descriptor related system calls. -e abbrev=set Abbreviate the output from printing each member of large structures. The default is abbrev=all. The -v option has the effect of abbrev=none. -e verbose=set Dereference structures for the specified set of system calls. The default is verbose=all. -e raw=set Print raw, undecoded arguments for the specified set of system calls. This option has the effect of caus‐ ing all arguments to be printed in hexadecimal. This is mostly useful if you don't trust the decoding or you need to know the actual numeric value of an argu‐ ment. -e signal=set Trace only the specified subset of signals. The default is signal=all. For example, signal =! SIGIO (or signal=!io) causes SIGIO signals not to be traced. -e read=set Perform a full hexadecimal and ASCII dump of all the data read from file descriptors listed in the speci‐ fied set. For example, to see all input activity on file descriptors 3 and 5 use -e read=3,5. Note that this is independent from the normal tracing of the read(2) system call which is controlled by the option -e trace=read. -e write=set Perform a full hexadecimal and ASCII dump of all the data written to file descriptors listed in the speci‐ fied set. For example, to see all output activity on file descriptors 3 and 5 use -e write=3,5. Note that this is independent from the normal tracing of the write(2) system call which is controlled by the option -e trace=write. -o filename Write the trace output to the file filename rather than to stderr. Use filename.pid if -ff is used. If the argument begins with `|' or with `!' then the rest of the argument is treated as a command and all output is piped to it. This is convenient for piping the debugging output to a program without affecting the redirections of executed programs. -O overhead Set the overhead for tracing system calls to overhead microseconds. This is useful for overriding the default heuristic for guessing how much time is spent in mere measuring when timing system calls using the -c option. The accuracy of the heuristic can be gauged by timing a given program run without tracing (using time(1)) and comparing the accumulated system call time to the total produced using -c. -p pid Attach to the process with the process ID pid and begin tracing. The trace may be terminated at any time by a keyboard interrupt signal (CTRL-C). strace will respond by detaching itself from the traced process(es) leaving it (them) to continue running. Multiple -p options can be used to attach to up to 32 processes in addition to command (which is optional if at least one -p option is given). -s strsize Specify the maximum string size to print (the default is 32). Note that filenames are not considered strings and are always printed in full. -S sortby Sort the output of the histogram printed by the -c option by the specified criterion. Legal values are time, calls, name, and nothing (default is time). -u username Run command with the user ID, group ID, and supplemen‐ tary groups of username. This option is only useful when running as root and enables the correct execution of setuid and/or setgid binaries. Unless this option is used setuid and setgid programs are executed with‐ out effective privileges. -E var=val Run command with var=val in its list of environment variables. -E var Remove var from the inherited list of environment variables before passing it on to the command. DIAGNOSTICS When command exits, strace exits with the same exit status. If command is terminated by a signal, strace terminates itself with the same signal, so that strace can be used as a wrapper process transparent to the invoking parent process. When using -p, the exit status of strace is zero unless there was an unexpected error in doing the tracing. SETUID INSTALLATION If strace is installed setuid to root then the invoking user will be able to attach to and trace processes owned by any user. In addition setuid and setgid programs will be executed and traced with the correct effective privileges. Since only users trusted with full root privileges should be allowed to do these things, it only makes sense to install strace as setuid to root when the users who can execute it are restricted to those users who have this trust. For example, it makes sense to install a special ver‐ sion of strace with mode `rwsr-xr--', user root and group trace, where members of the trace group are trusted users. If you do use this feature, please remember to install a non-setuid version of strace for ordinary lusers to use. SEE ALSO ltrace(1), time(1), ptrace(2), proc(5) NOTES It is a pity that so much tracing clutter is produced by systems employing shared libraries. It is instructive to think about system call inputs and outputs as data-flow across the user/kernel boundary. Because user-space and kernel-space are separate and address-protected, it is sometimes possible to make deductive inferences about process behavior using inputs and outputs as propositions. In some cases, a system call will differ from the documented behavior or have a different name. For example, on System V- derived systems the true time(2) system call does not take an argument and the stat function is called xstat and takes an extra leading argument. These discrepancies are normal but idiosyn‐ cratic characteristics of the system call interface and are accounted for by C library wrapper functions. On some platforms a process that has a system call trace applied to it with the -p option will receive a SIGSTOP. This signal may interrupt a system call that is not restartable. This may have an unpredictable effect on the process if the process takes no action to restart the system call. BUGS Programs that use the setuid bit do not have effective user ID privileges while being traced. A traced process ignores SIGSTOP except on SVR4 platforms. A traced process which tries to block SIGTRAP will be sent a SIGSTOP in an attempt to force continuation of tracing. A traced process runs slowly. Traced processes which are descended from command may be left run‐ ning after an interrupt signal (CTRL-C). On Linux, exciting as it would be, tracing the init process is forbidden. The -i option is weakly supported. HISTORY strace The original strace was written by Paul Kranenburg for SunOS and was inspired by its trace utility. The SunOS version of strace was ported to Linux and enhanced by Branko Lankester, who also wrote the Linux kernel support. Even though Paul released strace 2.5 in 1992, Branko's work was based on Paul's strace 1.5 release from 1991. In 1993, Rick Sladkey merged strace 2.5 for SunOS and the second release of strace for Linux, added many of the features of truss(1) from SVR4, and produced an strace that worked on both platforms. In 1994 Rick ported strace to SVR4 and Solaris and wrote the automatic configuration support. In 1995 he ported strace to Irix and tired of writing about himself in the third person. BUGS The SIGTRAP signal is used internally by the kernel implementation of system call tracing. When a traced process receives a SIGTRAP signal not associated with tracing, strace will not report that signal correctly. This signal is not normally used by programs, but could be via a hard-coded break instruction or via kill(2). PROBLEMS Problems with strace should be reported via the Debian Bug Track‐ ing System, or to the strace mailing list at<EMAIL_ADDRESS>2010-03-30 STRACE(1)


 "You believe in dead men walking about.
The way led along upon what had once been the embankment of a railroad. But no train had run upon it for many years. The forest on either side swelled up the slopes of the embankment and crested across it in a green wave of trees and bushes. The trail was as narrow as a man's body, and was no more than a wild-animal runway. Occasionally, a piece of rusty iron, showing through the forest-mould, advertised that the rail and the ties still remained. In one place, a ten-inch tree, bursting through at a connection, had lifted the end of a rail clearly into view. The tie had evidently followed the rail, held to it by the spike long enough for its bed to be filled with gravel and rotten leaves, so that now the crumbling, rotten timber thrust itself up at a curious slant. Old as the road was, it was manifest that it had been of the mono-rail type.
- We talked through the air in those days, thousands and thousands of miles
- And the word came of a strange disease that had broken out in New York
- There were seventeen millions of people living then in that noblest city of America
- Nobody thought anything about the news
- It was only a small thing
An old man and a boy travelled along this runway. They moved slowly, for the old man was very old, a touch of palsy made his movements tremulous, and he leaned heavily upon his staff.  From beneath this fell a scant fringe of stained and dirty-white hair. A visor, ingeniously made from a large leaf, shielded his eyes, and from under this he peered at the way of his feet on the trail. His beard, which should have been snow-white but which showed the same weather-wear and camp-stain as his hair, fell nearly to his waist in a great tangled mass. About his chest and shoulders hung a single, mangy garment of goat-skin. His arms and legs, withered and skinny, betokened extreme age, as well as did their sunburn and scars and scratches betoken long years of exposure to the elements.


I have been playing a bit with Yahoo! Shoposphere which I posted about recently. I really like the concept, but sadly there is no revenue share yet and no way to attach my contact data to my shopping list. It’s also actually geared to putting things in there that are already in your hands, that you tested. But I wanted to look at using something like that in relation to AdSense.
AdSense allows you to add a default ad that would be shown instead of the public service announcements that come there if Google does not find anything to link to your site. But what to add? There are some services that tailor to this system but I always felt you would have to do something that is very personal to yourself. Enter Amazon’s Wishlist and the Amazon WebService, AWS in short.
 It currently only seems to do that for a US wishlist but who cares. I set one up and the query is easy to set up, especially with the help of AWS Zone.
Here is my query:

http://xml-us.amznxslt.com/onca/xml?Service=AWSECommerceService &Version=2005-03-23 &Operation=ListLookup &Style=http%3A%2F%2Fthylmann.net%2Fmy-wishlist%2Famazon.xslt &ContentType=text%2Fhtml &SubscriptionId=hidden &ListId=UOV88WC3Q1WF &ListType=WishList &Condition=All &DeliveryMethod=Ship &ResponseGroup=Images%2CSmall &Sort=LastUpdated
 That gives me a lookup of a specific wishlist, returning text/html, including images and a description, ordered by last updated. It would be nice to be ordering by rating but that did not seem to be there.
You see one interesting item in there, which is Style. There another URL can be found:
http://thylmann.net/my-wishlist/amazon.xslt
This is a relatively simple XSLT file that turn the output I get into anything I want, server side, by AWS. Very handy indeed. These together already give me a small box in the standard size of an AdSense ad, configurable in design, with the 4 items I have in my Wishlist over there.
Next comes PHP, which mangles what comes out of there a bit, because what I really need is an output in kind of Javascript. One thing that is important is that the output HTML needs to be all in one line, without ’ or it will not return anything.

? print "document.write(‘"; $string = fopen("the above url", "r"); // now I replace both linebreaks and ’ while (!feof($string)) { $buffer = fgets($string, 4096); $say = ereg_replace("n","",$buffer); $say2 = ereg_replace("’"," ",$say); echo $say2; } fclose($string); print "’);"; ?
 What does that give me? It produces the following output, which I can theoretically add as my default AdSense ad, built from my Wishlist, configurable in CSS, and with the stuff automatically going to the right address if somebody chooses to send them around. :)
Comment: The Sigma Lense and Lowepro is already communicated to other people, so I am very sorry for my readers that they will only be able to give me the other two items if they are so inclined ;)
<!– technorati tags start –>
Technorati Tags: AdSense, Advertising, Amazon, AWS, XSLT
<!– technorati tags end –>


Hit the start button to start the animation
Check out the Unit Tests for this project. There are tests for most of the math and utility functions in this project!
Please check out the code on github!


Immune hyperactivation of HIV-1-infected T cells mediated by Tat and the CD28 pathway.
Abstract
Human immunodeficiency virus-type 1 (HIV-1) infection is characterized by a chronic state of immune hyperactivation in patients. Infection of human peripheral blood lymphocytes with HIV-1 in vitro resulted in increased interleukin-2 (IL-2) secretion in response to T cell activation via the CD3 and CD28 receptors. Expression of the HIV-1 transactivator Tat recapitulated this phenotype and was associated with increased IL-2 secretion in response to costimulation with CD3 plus CD28. IL-2 superinduction by Tat occurred at the transcriptional level, was mediated by the CD28-responsive element in the IL-2 promoter, and was exclusively dependent on the 29 amino acids encoded by the second exon of Tat.