T-Shirts, Wearable Art, and Illustrations - now taking custom - just in time orders

Some nice text

But the cultural understandings, rules, procedures, and norms that always had worked in the past did not work this time. It was not amorally calculating managers violating rules that were responsible for the tragedy. It was conformity.

DEPT. OF DISPUTATION

Who can be blamed for a disaster like the
Challenger explosion, a decade ago? No one,
according to the new risk theorists, and
we’d better get used to it.

1.

In the technological age, there is a ritual to disaster. When planes crash or chemical plants explode, each piece of physical evidence-of twisted metal or fractured concrete- becomes a kind of fetish object, painstakingly located, mapped, tagged, and analyzed, with findings submitted to boards of inquiry that then probe and interview and soberly draw conclusions. It is a ritual of reassurance, based on the principle that what we learn from one accident can help us prevent another, and a measure of its effectiveness is that Americans did not shut down the nuclear industry after Three Mile Island and do not abandon the skies after each new plane crash. But the rituals of disaster have rarely been played out so dramatically as they were in the case of the Challenger space shuttle, which blew up over southern Florida on January 28th ten years ago.

Fifty-five minutes after the explosion, when the last of the debris had fallen into the ocean, recovery ships were on the scene. They remained there for the next three months, as part of what turned into the largest maritime salvage operation in history, combing a hundred and fifty thousand square nautical miles for floating debris, while the ocean floor surrounding the crash site was inspected by submarines. In mid-April of 1986, the salvage team found several chunks of charred metal that confirmed what had previously been only suspected: the explosion was caused by a faulty seal in one of the shuttle’s rocket boosters, which had allowed a stream of flame to escape and ignite an external fuel tank.

Armed with this confirmation, a special Presidential investigative commission concluded the following June that the deficient seal reflected shoddy engineering and lax management at NASA and its prime contractor, Morton Thiokol. Properly chastised, NASA returned to the drawing board, to emerge thirty-two months later with a new shuttle-Discovery-redesigned according to the lessons learned from the disaster. During that first post- Challenger flight, as America watched breathlessly, the crew of the Discovery held a short commemorative service. “Dear friends,” the mission commander, Captain Frederick H. Hauck, said, addressing the seven dead Challenger astronauts, “your loss has meant that we could confidently begin anew.” The ritual was complete. NASA was back.

But what if the assumptions that underlie our disaster rituals aren’t true? What if these public post mortems don’t help us avoid future accidents? Over the past few years, a group of scholars has begun making the unsettling argument that the rituals that follow things like plane crashes or the Three Mile Island crisis are as much exercises in self-deception as they are genuine opportunities for reassurance. For these revisionists, high-technology accidents may not have clear causes at all. They may be inherent in the complexity of the technological systems we have created.

This month, on the tenth anniversary of the Challenger disaster, such revisionism has been extended to the space shuttle with the publication, by the Boston College sociologist Diane Vaughan, of “The Challenger Launch Decision” (Chicago), which is the first truly definitive analysis of the events leading up to January 28, 1986. The conventional view is that the Challenger accident was an anomaly, that it happened because people at NASA had not done their job. But the study’s conclusion is the opposite: it says that the accident happened because people at NASA had done exactly what they were supposed to do. “No fundamental decision was made at NASA to do evil,” Vaughan writes. “Rather, a series of seemingly harmless decisions were made that incrementally moved the space agency toward a catastrophic outcome.”

No doubt Vaughan’s analysis will be hotly disputed in the coming months, but even if she is only partly right the implications of this kind of argument are enormous. We have surrounded ourselves in the modern age with things like power plants and nuclear-weapons systems and airports that handle hundreds of planes an hour, on the understanding that the risks they represent are, at the very least, manageable. But if the potential for catastrophe is actually found in the normal functioning of complex systems, this assumption is false. Risks are not easily manageable, accidents are not easily preventable, and the rituals of disaster have no meaning. The first time around, the story of the Challenger was tragic. In its retelling, a decade later, it is merely banal.

2.

Perhaps the best way to understand the argument over the Challenger explosion is to start with an accident that preceded it-the near-disaster at the Three Mile Island (T.M.I.) nuclear- power plant in March of 1979. The conclusion of the President’s commission that investigated the T.M.I. accident was that it was the result of human error, particularly on the part of the plant’s operators. But the truth of what happened there, the revisionists maintain, is a good deal more complicated than that, and their arguments are worth examining in detail.

The trouble at T.M.I. started with a blockage in what is called the plant’s polisher-a kind of giant water filter. Polisher problems were not unusual at T.M.I., or particularly serious. But in this case the blockage caused moisture to leak into the plant’s air system, inadvertently tripping two valves and shutting down the flow of cold water into the plant’s steam generator.

As it happens, T.M.I. had a backup cooling system for precisely this situation. But on that particular day, for reasons that no one really knows, the valves for the backup system weren’t open. They had been closed, and an indicator in the control room showing they were closed was blocked by a repair tag hanging from a switch above it. That left the reactor dependent on another backup system, a special sort of relief valve. But, as luck would have it, the relief valve wasn’t working properly that day, either. It stuck open when it was supposed to close, and, to make matters even worse, a gauge in the control room which should have told the operators that the relief valve wasn’t working was itself not working. By the time T.M.I.’s engineers realized what was happening, the reactor had come dangerously close to a meltdown.

Here, in other words, was a major accident caused by five discrete events. There is no way the engineers in the control room could have known about any of them. No glaring errors or spectacularly bad decisions were made that exacerbated those events. And all the malfunctions-the blocked polisher, the shut valves, the obscured indicator, the faulty relief valve, and the broken gauge-were in themselves so trivial that individually they would have created no more than a nuisance. What caused the accident was the way minor events unexpectedly interacted to create a major problem.

This kind of disaster is what the Yale University sociologist Charles Perrow has famously called a “normal accident.” By “normal” Perrow does not mean that it is frequent; he means that it is the kind of accident one can expect in the normal functioning of a technologically complex operation. Modern systems, Perrow argues, are made up of thousands of parts, all of which interrelate in ways that are impossible to anticipate. Given that complexity, he says, it is almost inevitable that some combinations of minor failures will eventually amount to something catastrophic. In a classic 1984 treatise on accidents, Perrow takes examples of well-known plane crashes, oil spills, chemical-plant explosions, and nuclear-weapons mishaps and shows how many of them are best understood as “normal.” If you saw last year’s hit movie “Apollo 13,” in fact, you have seen a perfect illustration of one of the most famous of all normal accidents: the Apollo flight went awry because of the interaction of failures of the spacecraft’s oxygen and hydrogen tanks, and an indicator light that diverted the astronauts’ attention from the real problem.

Had this been a “real” accident-if the mission had run into trouble because of one massive or venal error-the story would have made for a much inferior movie. In real accidents, people rant and rave and hunt down the culprit. They do, in short, what people in Hollywood thrillers always do. But what made Apollo 13 unusual was that the dominant emotion was not anger but bafflement—bafflement that so much could go wrong for so little apparent reason. There was no one to blame, no dark secret to un-earth, no recourse but to re-create an entire system in place of one that had inexplicably failed. In the end, the normal accident was the more terrifying one.

3.

Was the Challenger explosion a “normal accident”? In a narrow sense, the answer is no. Unlike what happened at T.M.I., its explosion was caused by a single, catastrophic malfunction: the so-called O-rings that were supposed to prevent hot gases from leaking out of the rocket boosters didn’t do their job. But Vaughan argues that the O-ring problem was really just a symptom. The cause of the accident was the culture of NASA, she says, and that culture led to a series of decisions about the Challenger which very much followed the contours of a normal accident.

The heart of the question is how NASA chose to evaluate the problems it had been having with the rocket boosters’ O-rings. These are the thin rubber bands that run around the lips of each of the rocket’s four segments, and each O-ring was meant to work like the rubber seal on the top of a bottle of preserves, making the fit between each part of the rocket snug and airtight. But from as far back as 1981, on one shuttle flight after another, the O-rings had shown increasing problems. In a number of instances, the rubber seal had been dangerously eroded-a condition suggesting that hot gases had almost escaped. What’s more, O-rings were strongly suspected to be less effective in cold weather, when the rubber would harden and not give as tight a seal. On the morning of January 28, 1986, the shuttle launchpad was encased in ice, and the temperature at liftoff was just above freezing. Anticipating these low temperatures, engineers at Morton Thiokol, the manufacturer of the shuttle’s rockets, had recommended that the launch be delayed. Morton Thiokol brass and NASA, however, overruled the recommendation, and that decision led both the President’s commission and numerous critics since to accuse NASA of egregious-if not criminal-misjudgment.

Vaughan doesn’t dispute that the decision was fatally flawed. But, after reviewing thousands of pages of transcripts and internal NASA documents, she can’t find any evidence of people acting negligently, or nakedly sacrificing safety in the name of politics or expediency. The mistakes that NASA made, she says, were made in the normal course of operation. For example, in retrospect it may seem obvious that cold weather impaired O-ring performance. But it wasn’t obvious at the time. A previous shuttle flight that had suffered worse O-ring damage had been launched in seventy-five-degree heat. And on a series of previous occasions when NASA had proposed-but eventually scrubbed for other reasons-shuttle launches in weather as cold as forty-one degrees, Morton Thiokol had not said a word about the potential threat posed by the cold, so its pre-Challenger objection had seemed to NASA not reasonable but arbitrary. Vaughan confirms that there was a dispute between managers and engineers on the eve of the launch but points out that in the shuttle program disputes of this sort were commonplace. And, while the President’s commission was astonished by NASA’s repeated use of the phrases “acceptable risk” and “acceptable erosion” in internal discussion of the rocket-booster joints, Vaughan shows that flying with acceptable risks was a standard part of NASA culture. The lists of “acceptable risks” on the space shuttle, in fact, filled six volumes. “Although [O-ring] erosion itself had not been predicted, its occurrence conformed to engineering expectations about large-scale technical systems,” she writes. “At NASA, problems were the norm. The word ‘anomaly’ was part of everyday talk… . The whole shuttle system operated on the assumption that deviation could be controlled but not eliminated.”

What NASA had created was a closed culture that, in her words, “normalized deviance” so that to the outside world decisions that were obviously questionable were seen by NASA’s management as prudent and reasonable. It is her depiction of this internal world that makes her book so disquieting: when she lays out the sequence of decisions which led to the launch- each decision as trivial as the string of failures that led to T.M.I.-it is difficult to find any precise point where things went wrong or where things might be improved next time. “It can truly be said that the Challenger launch decision was a rule- based decision,” she concludes. “But the cultural understandings, rules, procedures, and norms that always had worked in the past did not work this time. It was not amorally calculating managers violating rules that were responsible for the tragedy. It was conformity.”

4.

There is another way to look at this problem, and that is from the standpoint of how human beings handle risk. One of the assumptions behind the modern disaster ritual is that when a risk can be identified and eliminated a system can be made safer. The new booster joints on the shuttle, for example, are so much better than the old ones that the over-all chances of a Challenger-style accident’s ever happening again must be lower-right? This is such a straightforward idea that questioning it seems almost impossible. But that is just what another group of scholars has done, under what is called the theory of “risk homeostasis.” It should be said that within the academic community there are huge debates over how widely the theory of risk homeostasis can and should be applied. But the basic idea, which has been laid out brilliantly by the Canadian psychologist Gerald Wilde in his book “Target Risk,” is quite simple: under certain circumstances, changes that appear to make a system or an organization safer in fact don’t. Why? Because human beings have a seemingly fundamental tendency to compensate for lower risks in one area by taking greater risks in another.

Consider, for example, the results of a famous experiment conducted several years ago in Germany. Part of a fleet of taxicabs in Munich was equipped with antilock brake systems (A.B.S.), the recent technological innovation that vastly improves braking, particularly on slippery surfaces. The rest of the fleet was left alone, and the two groups-which were otherwise perfectly matched-were placed under careful and secret observation for three years. You would expect the better brakes to make for safer driving. But that is exactly the opposite of what happened. Giving some drivers A.B.S. made no difference at all in their accident rate; in fact, it turned them into markedly inferior drivers. They drove faster. They made sharper turns. They showed poorer lane discipline. They braked harder. They were more likely to tailgate. They didn’t merge as well, and they were involved in more near-misses. In other words, the A.B.S. systems were not used to reduce accidents; instead, the drivers used the additional element of safety to enable them to drive faster and more recklessly without increasing their risk of getting into an accident. As economists would say, they “consumed” the risk reduction, they didn’t save it.

Risk homeostasis doesn’t happen all the time. Often-as in the case of seat belts, say-compensatory behavior only partly offsets the risk-reduction of a safety measure. But it happens often enough that it must be given serious consideration. Why are more pedestrians killed crossing the street at marked crosswalks than at unmarked crosswalks? Because they compensate for the “safe” environment of a marked crossing by being less viligant about oncoming traffic. Why did the introduction of childproof lids on medicine bottles lead, according to one study, to a substantial increase in fatal child poisonings? Because adults became less careful in keeping pill bottles out of the reach of children.

Risk homeostasis also works in the opposite direction. In the late nineteen-sixties, Sweden changed over from driving on the left-hand side of the road to driving on the right, a switch that one would think would create an epidemic of accidents. But, in fact, the opposite was true. People compensated for their unfamiliarity with the new traffic patterns by driving more carefully. During the next twelve months, traffic fatalities dropped seventeen per cent-before returning slowly to their previous levels. As Wilde only half-facetiously argues, countries truly interested in making their streets and highways safer should think about switching over from one side of the road to the other on a regular basis.

It doesn’t take much imagination to see how risk homeostasis applies to NASA and the space shuttle. In one frequently quoted phrase, Richard Feynman, the Nobel Prize- winning physicist who served on the Challenger commission, said that at NASA decision-making was “a kind of Russian roulette.” When the O-rings began to have problems and nothing happened, the agency began to believe that “the risk is no longer so high for the next flights,” Feynman said, and that “we can lower our standards a little bit because we got away with it last time.” But fixing the O-rings doesn’t mean that this kind of risk-taking stops. There are six whole volumes of shuttle components that are deemed by NASA to be as risky as O-rings. It is entirely possible that better O-rings just give NASA the confidence to play Russian roulette with something else.

This is a depressing conclusion, but it shouldn’t come as a surprise. The truth is that our stated commitment to safety, our faithful enactment of the rituals of disaster, has always masked a certain hypocrisy. We don’t really want the safest of all possible worlds. The national fifty-five-mile-per-hour speed limit probably saved more lives than any other single government intervention of the past twenty-five years. But the fact that Congress lifted it last month with a minimum of argument proves that we would rather consume the recent safety advances of things like seat belts and air bags than save them. The same is true of the dramatic improvements that have been made in recent years in the design of aircraft and flight- navigation systems. Presumably, these innovations could be used to bring down the airline-accident rate as low as possible. But that is not what consumers want. They want air travel to be cheaper, more reliable, or more convenient, and so those safety advances have been at least partly consumed by flying and landing planes in worse weather and heavier traffic conditions.

What accidents like the Challenger should teach us is that we have constructed a world in which the potential for high-tech catastrophe is embedded in the fabric of day-to-day life. At some point in the future-for the most mundane of reasons, and with the very best of intentions-a NASA spacecraft will again go down in flames. We should at least admit this to ourselves now. And if we cannot-if the possibility is too much to bear-then our only option is to start thinking about getting rid of things like space shuttles altogether.

Some nice text

And Even Now - There are many of us - working it.

After a difficult sleep and a long day previous - support comes in the way of seeing a email from the Princeton Review.

It is a about a school recently founded - 1997. That was the years that i was hacking with JavaScript, playing with pascal, drawing fonts and ‘ANSI’-Art for underground art Bulletin Board Systems (BBS’s - imagine a web page forum that you dialed into direct with your computer (via modem) and used at a one-at-a-time basis)

I’ve been muti-disciplinary long before there was a decent spell checker to help me to spell disciplinary. To me - this was just the way life was. Art, Technology, Poetry were all mixed together in one place - even business was there in those early days - art was worth something if you were good enough - and you couldn’t get good enough just by wanting money - you had to love to create.

So it’s natural for me to continue in this way. It’s natural for me to see fashion, sewing, turntablism, writing, programming, illustrating for t-shirt and designing shoes as all part of the same important process.

In a video below on my site is a talk on Autonomy, Mastery and Purpose - forget the grandiose sound of it’s expression and focus on what this smart - forward thinking - innovator is doing for the world.  I wasn’t the first - and i know i won’t be the last.

A favor - named Franklin W. Olin College of Engineering.

Excepted from the “Princeton Review”


Interested in Engineering? You should consider the Franklin W. Olin College of Engineering

Founded in 1997, Olin is dedicated to producing a new kind of engineer-one with the skills not only to succeed professionally, but also to make a difference in the world as engineering innovators. If you have the ability to balance a passion for math and science with creativity and drive, you may be a fit for Olin.

Academic Overview

Olin’s hands-on, project-based curriculum incorporating entrepreneurship and liberal arts is well on its way to redefining engineering education. At Olin, you’ll learn how to design products that really meet customer’s needs. At the same time, you’ll nurture your inventiveness and learn how to plan, finance and market products. Overall, the Olin curriculum offers exceptional preparation for an engineering career, as well as for many other professions, including law, medicine and business.

Student Life
Olin is an exceptionally student-centered institution where students play a major role in decisions affecting their educational life. In fact, the college counts on students being partners in helping to build and improve the college. The school emphasizes an Honor Code focused on academic integrity and open-mindedness. The college has many clubs and organizations in music, the arts and sports.

Some nice text

HOPE BASED ON REWARD AND FEAR OF PUNISHMENT - Do No Good.

More above.

Some nice text

Some nice text

Some nice text

Pull Systems.

These slides are great if you can distinguish between the container and the content:

http://elsmar.com/Pull_Systems/sld001.htm

Some nice text

Lean Principles - Excerpt

Excepted from http://agilesoftwaredevelopment.com/leanprinciples

“In one of the most popular books on Lean subject, namely “Implementing Lean Software Development - from Concept to Cash”, Mary and Tom Poppendieck explain how to implement Lean by following seven principles - principles that are some kind of Lean commandments:”
1. Eliminate Waste
• Provide market and technical leadership - your company can be successful by producing innovative and technologically advanced products but you must understand what your customers value and you know what technology you’re using can deliver
• Create nothing but value - you have to be careful with all the processes you follow i.e. be sure that all of them are required and they are focused on creating value
• Write less code - the more code you have the more tests you need thus it requires more work and if you’re writing tests for features that are not needed you are simply wasting time
2. Create Knowledge
• Create design-build teams - leader of the development team has to listen to his/her members and ask smart questions encouraging them to look for the answers and to get back with encountered problems or invented solutions as soon as possible
• Maintain a culture of constant improvement - create environment in which people will be constantly improving what they are working on - they should know that they are not and should not be perfect - they always have a field to improve and they should do it
• Teach problem-solving methods - development team should behave like small research institute, they should establish hypotheses and conduct many rapid experiments in order to verify them
3. Build Quality In
• Synchronize - in order to achieve high quality in your software you should start worrying about it before you write single line of working code - don’t wait with synchronization because it will hurt
• Automate - automate testing, building, installations, anything that is routine, but do it smartly, do it in a way people can improve the process and change anything they want without worrying that after the change is done the software will stop working
• Refactor - eliminate code duplication to ZERO - every time it shows up refactor the code, the tests, and the documentation to minimize the complexity
4. Defer Commitment
• Schedule Irreversible Decisions at the Last Responsible Moment - you should know where you want to go but you don’t know the road very well, you will be discovering it day after day - the most important thing is to keep the right direction
• Break Dependencies - components should be coupled as loosely as possible to enable implementation in any order
• Maintain Options - develop multiple solutions for all critical decisions and see which one works best
5. Optimize the Whole
• Focus on the Entire Value Stream - focus on winning the whole race which is the software - don’t optimize local inefficiencies, see the whole and optimize the whole organization
• Deliver a Complete Product - teams need to have great leaders as well as great engineers, sales, marketing specialists, secretaries, etc. - they together can deliver great final products to their customers
6. Deliver Fast
• Work in small batches - reduce projects size, shorten release cycles, stabilize work environment (listen to what your velocity tells you), repeat what’s good and eradicate practices that creates obstacles
• Limit work to capacity - limit tasks queue to minimum (one or two iterations ahead is enough), don’t be afraid of removing items from the queue - reject any work until you have an empty slot in your queue
• Focus on cycle time, not utilization - put in your queue small tasks that cannot clog the process for a long time - reduce cycle time and have fewer things to process in your queue
7. Respect People
• Train team leaders/supervisors - give team leaders the training, the guidance and some free space to implement lean thinking in their environment
• Move responsibility and decision making to the lowest possible level - let your people think and decide on their own - they know better how to implement difficult algorithms and apply state-of-the-art software frameworks
• Foster pride in workmanship - encourage passionate involvement of your team members to what and how they do

Some nice text

Trip report mongo - madly typed into an iphone during the conference - ask me for more!

Trip report mongo db As soon as I got off the trolly, the left side of my back went into spasms, not pracsisms, but spasms. I stood in a guru rejected mountain pose (read: my arms over my head) for a moment and struggled to straighten my arm with the help of a tree. I feel tight this morning - it really hurts - more than the intense pounding headache that started yesterday morning and rose again with me from sleep. The arrangement if the conference is as follows: self organizing, distributed, and self evaluating, beautiful software principles which make for disorganized and confused humans when applied to the design of a physical space. They had tea coffee and breakfast in quality and form. The second floor of the reserve is brilliant. Passing through the metal wrought security guides was a treat. This treat was trumped by wood. Wood upon panel upon wood. I can say nothing more as I woul only flail to bring language to it. My first talk is in the niantic room. Was called 0 to 2 days now called 0 to 60 hours to account for sleep , commuting and etc. Talk from a beginners perspective from a SQL rails familiar fellow. Used for party planning at my punch bowl. many millions o things shop is mongomapper cucumber rails SQL github great experince with rackspace cloud Track search results and vender $gender$impressions by search Good excuse to use mongo. Not a need low risk. 5 minutes to get runnng Multiple Lang support Great ecosystem Warm fuzzies Mongo is to database as rails was to frameworks Support is so awesome Sat in staging for a couple weeks Stroll though ecosystem Mongo shell JavaScript Mongo db c++ mongo ruby driver slower than java driver Mongo record vs mongo mapper * mapper is Rails integration smoothish later hickups Collections and documents Occurqnces count for categores and a city Update occurnces according to document Has upsert many atomic actions to replace transactions Mongos indexing style has crippled his desire to use msql index Composite indes lik mysql Needed felx and perf for query and aggregation Documents with embeddd documnts search impressions from mobile browsers as seperTe counts Can add deep embedded indexes int inside a hash inside a hash inside a hash after the fact Mobile.browsers.iphone4g Testing with Tdd - no suprises same stuff but do need to set up the test database for the test environment Before and after need to do clean up: Numemaker has simple config system suggestion: Mongomapper ormhas migrations otherwise need rake tasks and such for indexes. Production ready. Replication solid now Or just do nightly backups to s3 etc Uneventful deployment Upgrading took downtime 2 or 3 minutes day 200 One production process Daily dumps No replication Several collections 100k to 10M Deep composite indexes Monit or god or something to dot the i Bson orderhash not active supports Hash not same properties I will add indexes I will add indexes I will add indexes I will add indexes mongo doesn’t difference between 3.5s and 12ms on 10million objects. Mongo sphinx for full text searching Geospacial search not yet spherical or eliptical Paperclip+ mongo Home brewng tools for etl out of mysql and into mongo Using for data mining and visualization Schema design Scale horizontally so no relations Not an object store Have to design a schema Data schema is seperate from the program Row is json doc Table is collection Indx is indx Join is embed or link Schema principles Queries easy Queries fast Facilitytaies atomic Facilitates sharding - def for auto shard collections Embedding bs linking when do any to nest contains relationship no bariner effectivlty pre joining data on close call embed wigich documents Links are client server turnaround 4mb docment size limit (arbitrary limit) to keep people from doin silly stuff Order contains line items contain sku Order contains shipping address Order has subtotal tax total Db.orders.ensureindex(lineitems.sku) Not a key values store as thes documents are not opaque. Can reach into them. Query language is suited to programmatici generation. Has set inplace opearor $. Lineitems.$.quantity =2 Map reduce used for aggrigation Writen in JavaScript _Id Unique Invariant Not reused Objectid for sharded collection 12byte guid _Id could be anyhing Has autoid Storing trees in mongosb. Full tree in one document good for comments thread in blog post full lenth book is less Han 1mb hard to search Linking to parent node hard to get all descendants Array of ancestors store parent store array of ANcestors index on ancestors At this point I am convinced that his conference was worth 50 dollars. Single table inheritance works pretty well can have varient documents null is not greAter than 2 duck typed collections lolercoaster Atomicity at document level $operator are atomic Compare and swap - if hasn’t changed since works else comes back - works for keeping inventory attomic using a pattern Of versioning have a version attrib to avoid aba problem Don’t worry about compare and swap with $operators Sharding cluster auto dispersment big collections need shard key to work in order preserving manner indexes work well with shard key. use many collections when natural Other considerations capped collections get lru semantics for free insertion order preserving without index cannot delete cannot update in a way that changes size Rrd style Profiler in mongo is capped collction capped collction useful for activity streams can make ns size larger to increase max of collections Dev intention is to limit features in favor of scalability. Ensureindex is cheap or no op. A good way to assert indexes in he code . Smart I will add indxes I will add indxes I will add Indexs I will add indxes I will add indxes I will add indexs index can be built by bg index or fg index Use ok field for deleted Break. ate muffin Gilt groupe. Ecomerce analyitics in real time. Michael@gilt.com Everyday at noon high traffic transactional surge. Realtime analyitics is sweet spot for mongo. Selecting product to sell based on data Hummingbird visaulization Gifts , curated , no pagination , look quickly and buy it. Challenge improve good coversion so product is promoted at right tim Capture data in real time in mongo Anaylis map reduce Update transaction times Repeat 30 minute cycle. Mongo in production wthout change stable Java service json htp to mongo Record page views Consider failure mode Good failure mode can b pushedo ajax Page view puses guid in order for whole page no concern foe response One page 100 insets into mongo Calc score for items based on conversion inventory and merchandising yields score and explanation Purchase data Runs every 15 minutes Mongo running on ec2 Gilt - retational databases for transactional systems a loosing battle - 10 years at oracle. Humming bird Tracking pixels with omniture Node.js - almost no blocking Mongo call in node to create visits Wait for event that collction is done Internal product using html5 Node js internal server serving 20 frames per sec of visits fo a streaming live graph - with nice ubig title fonts Web sockets and canvas Using mongomapper by nuemacker (how to spell) Add functionality by including stuff Datum the singular of data Get validation persistance serialization we all got Rick rolled?????? To_mongo Hash style setter [] Types what you be baby bu? Model with keys it … Why app isn’t schemaless verion schema with rest of code Built in types and custom types - shake and bake To_mongo From_mongo DowncasedString good for email. Typeless - who cares Using fork of validatable by jfields. Key :email, string, :required => true I will add indexes Callback rippd from active support 2 Code out of harmony in slides Associations from a doc to a doc Clection to collection relationships Many in To embeded docs One and many Embeded documents store parent and root documnts automatically Extending mongo mapper Plugins a conventional way Mongo mappe is all plugins joint for storing files 4mb limit? Descentend appends stollen from datamapper Append inclusions or extentions to a module Example use - identity map to ensure that document is only one document in memory. Prophasy Active model update will happen Blank document - document that can be used with mongo mapper without callback or other phat features. I think library maintainers and writers have a tough Audience. Mongo query - smart hash merger - yes yes yes Jnunemaker/mongo-query —- rake tasks for migration - delete keys or what ever Moving assets to griefs - ruby driver is performant! —- Mongotips.com Railstips.com Ordered list. Lunch tip revised - do not compare a pub fish and chips to specialist fish and chips. They are both good in there own right Funnels retention and virality Website events on justin tv. A b testing - does a big red button work better than a big blue button? Aggregating data Bucket and channel processing data - one python process Map reduce. Config for events Apply operations Mongo rocks over hardoop especially doing map reduce coding Use collection group with an empty cond hash and use large collections counting in real time! Postgres had a hard rime with this. Count.%s.%s Build up event key in real time withoutneeding any of them to exist. Can use multiple collections ie gender age purchaser ninja artists ronin artists samurai artists @@@@ Add events as interaction steps to understand what kinds of ineraction flows the user is experiencing @@@@@ Can run map reduce mongo every 15 minutes. Accurate funnel calculation - of all uses at step b what percent were at step a Per user rollup mark how far down funnell reached Per bucket rollup This user in the bucket hit this step then sum that feo the buckets Get a sense of step authenticated who %completed and %abandoned Mongo is fast enough to skip doing real time results and just do periodic map reduce jobs Was running whole job every 15 minutes over again!! Not doing it incrementally Migrating a postgres db from doing timeseries data Mongo is the Sam backed for batch jobs and realtime tracking. Wait! Interactive perf while running map reduce is slow! fixed in 1.5.0 Big deletes slow - use capped collections Indexes with time worked real great wants to do more Used mongosb for live chat with stemming and extra yay I will use indexes I will use indexes I will use indexes Writes into event table are all write once Administration great wb site do with known issues workarounds guidance and folklore Runs pretty much on anything - Linux tuning in some places . Mongod server Mongo shell Mongos sharding router Logs - useful and full of love Netstat Distro packages for debian with initial scripts —quiet - don’t show new connections Db.currentOp —queries that are running Db.killOp Backups bson dump with mongodump 2 tb database? - fsync + lock = use a good filesystem evfs? Should probably be using replication if you care about your data- raid contoller failure #1 cause of issues (oracle) Use replication - oplog size - use delayed replication with 8 hour behind to a account for human error Oplogs internally capped collection 5% of free disk space. High write big size low write system small buffer. Oplog buffer is downtime window on slave without having to resync. Mongostat pretty iostst like output!!!! Currently not stored - honking of storing it for an hour Sometime slow? - iostat -x2. (less than 50 is yay) better than top Web console Top. For collections Total locked time All running operations Tells you what % compete a index is. db.serverStatus Unserpinnings if mongostat - yayayayayaya!!!!! monitoring mongo Munin Ganglia Nagios Cacti In prod Pictures 650gb data base. BTree no misses for the win - as an admin what keeps you up at night - replica pairs roxor for the people - redesigned into replica sets - auto managenet of sever groups with n slaves and one master - makes cakes too if you hug it ( not really) Replicas across differences - disaster recovery - yes - network latency questions and other things that really don’t matter from people that want to ask pet questions and are interested in compressing crap. Mongo mongo mongo mongo I give you a birthday cake - please to be for the win, thanks to all the people that helped you begin. Your on your way to a super win - because you grew up at he right time it’s all happening on a friendly dime. Demo Web interfacing 28017 Server socket on 27017 C++ uses boost libs Db.serverStatus Mongo uses memery mapped filesystem Out of the box works rad Later you picky choosy types can have that off Db.stats also per stat collections What is your working size - in an hour - all the number of objects you look at plus the indexes that you look at in an hour. - many people don’t know how to calc this - gross answer is total index siZe ( seems to be a sad kind of answer) Index counters - if working set not in ram - you get misses - bad news bears Every 60 scones flush to disk otherwise os takes care of it - did that because on a lapop with a small dataset data wasn’t going to disk Stat asserts - user assert - duplicate keys etc If you care about your data - replicate - most errors are due to disk or to CPU fail or even Sata cables - writing to sperate machines can be faster than local disk. Do we fall into the category of running on ec2(no), using a Multi rack data center? Mongod —master —oplogsize=10 Mongod —slave —source localhost:27017 —port 33333 ./mongo Basic replication Db.printReplicationInfo Db.help !!!!! PrintSlaveReplicarionInfo Seehis rad shit in the admin section of he doc site Local is the special database that is not shared Oplog in this This is so cool oplog transactions in json can easily be filtered and streamed to another process ie sole Replication talk demo and candy big op logs give time to care for the down slave - log wrapps aroun and have ti do full resync with master. The loca db never replicates state about replication On master local.oplog.$main local.slaves - infered by queries to oplog Tailable cursor - can tail a table like the unix command tail on slave Local.sources syncedTo Has optime for oplog record Oplog has a keepalive ping no op written every 10 seconds Oplog operations are not exactly the same as revived by client incremnt becomes set. Can be re applied over and over again. Including redundant operations. Can start slavin very simple just by restartin as master and starting a slave + all the time to sync Is her automatic failover ? - yes in replica set If you start master as slave is it ok ?jni Yay for js - Leave off the () and see the function source M to slave M to slaves Many masters to one slave etc Replica pairs pairwith About to release sets Pairs is being depricated eta July Other big feature is 1.6 production sharding Not goon to support master master . Replica set design concepts - a write is only truly commuted once it has replicated to a majority of servers in the set. We can wait for confirmation for this though…. Buildnansydtem hat doesn’t require human mergmg efforts so as to have huge clusters that can have fail disks Rollback to time that we were down by getting all the new object IDs like a anti entropy in dynamo for little window while server is offline. Very few objects.

Some nice text

/Users/cjs/Home/notes/_thanks_to_those_before

" -----------------------------------------------------------------------------  
" |                            VIM Settings                                   |
" |                              GUI stuff                                    |
" -----------------------------------------------------------------------------  
"  Run Cucumber from vim :D
"
function! RunCuke(args)
  let spec = "cucumber"
  let cmd = ":! " . spec .' ' . a:args." "
  execute cmd 
  endfunction
  " Mappings
  " run one rspec example or describe block based on cursor position
  map !c :call RunCuke("%:".<C-r>=line('.')<CR>.' ')
  " run full rspec file
  map !C :call RunCuke("%")

  " Thanks to Ian Smith-Heisters for original

(c) Robot Army Made

Tags: thak

Some nice text

/Users/cjs/Home/notes/git_refactoring

When refactorying with git - It helps to move or remove files
and incrementally commit. I know this sounds obvious and the effects
aren't visible - but when working with others and on a branch away
from master it means that merges will fail on these missing files
and you will be given a heads up to migrate any code modified by
other that has been removed or deleted since you started the refactory

(c) Robot Army Made

Tags: thak