Quantcast
Channel: Hacker News 50
Viewing all 9433 articles
Browse latest View live

Zidisha Launches A Kickstarter-Style Micro-Lending Platform For Low-Income Entrepreneurs In Developing Countries | TechCrunch

$
0
0

Comments:"Zidisha Launches A Kickstarter-Style Micro-Lending Platform For Low-Income Entrepreneurs In Developing Countries | TechCrunch"

URL:http://techcrunch.com/2014/01/23/zidisha-launches-a-kickstarter-style-micro-lending-platform-for-low-income-entrepreneurs-in-developing-countries/


When it comes to lending and borrowing money, banks have long been at the center of the equation. However, with the proliferation of new information technologies, mobile devices and the good old Web, new methods of borrowing and lending have emerged that are slowly toppling the bank-centric model. The best and most promising example is peer-to-peer lending, which leverages technology to directly match those who need money with those who have money to invest, while cutting out the middle man.

By enabling the efficient flow of capital across international boundaries and wealth divisions, and by allowing lenders to connect with and send money directly to borrowers, peer-to-peer micro-lending has the ability to have an enormous impact — on a global scale. However, while a handful of organizations and institutions have attempted it, direct P2P lending across international wealth divides has never been done before at scale, says Julia Kurnia.

So Kurnia decided to change that. In 2009, she founded Zidisha, a non-profit organization dedicated to bringing direct, P2P lending to low-income entrepreneurs in developing countries. Without much of a roadmap to follow, Zidisha has spent the intervening years plotting its course, slowing developing a micro-finance model that could work at scale — through good old-fashioned trial and error.

Fast forward four years, and the micro-finance platform is finally ready to make its public debut. Having put the finishing touches on its peer-to-peer lending model at Y Combinator — where it became the accelerator’s second non-profit graduate — Zidisha is launching today with an exciting value proposition. The startup considers itself to be the first true direct, peer-to-peer lending platform, enabling anyone and everyone to send micro-loans to budding entrepreneurs in the developing world.

Exciting as that idea may be, to many, Zidisha’s model may appear at first glance to just be another Kiva clone. Yet, what’s so cool about Zidisha is that, unlike other micro-finance programs or companies, the platform offers users the ability to interact directly with its entrepreneurs. Not only that, but what truly differentiates the startup from organizations like Kiva is that Zidisha doesn’t rely on field partners to distribute its loans to entrepreneurs.

In fact, although many micro-finance platforms generally have their heart in the right place, they present entrepreneurs in developing nations with a nagging problem. The average global interest and fee rate charged by their third-party intermediaries (or field partners) is 37 percent and, in some markets, can be as high as 70 percent. Even those micro-finance organizations on the ground who receive 0 percent-interest loans from Kiva can charge an average interest and fee rate of 35 percent.

Again, generally speaking, these rates are high for an understandable reason: It’s not cheap for these organizations to develop and maintain a physical presence in these developing markets. Of course, those high operation costs mean high fees and a bum deal for local entrepreneurs, as the fee rates ultimately prevent them from growing their earnings enough (in relation to the cost of their loans) to have a real impact on their quality of life, and their family’s standard of living.

To offer both entrepreneurs and lenders a more affordable alternative, Zidisha’s offers an average interest and fee rate between 5 and 9 percent, which Kurnia says simply goes toward covering the cost of transferring the loan. To help cover its operational costs, Zidisha makes it easy for lenders to make donations directly to the organization itself and by providing a way to leave tips when making a loan, for example.

Taking a page from Watsi’s book — itself a fellow Y Combinator grad — Zidisha’s platform allows lenders to post questions and comments while interacting with the entrepreneur, who, in turn can share progress reports and updates on the growth of the business. This allows entrepreneurs to connect directly with the investor and to actually develop a relationship, through which lenders have an opportunity to actually see the impact their micro-investing provides.

Zidisha also attempts to provide additional incentive by ensuring that 100 percent of its lender’s investment is disbursed directly to the borrower’s business. The platform also allows lenders to set their own interest rates, which are paid back in weekly installments.

But the real key, Kurnia says, and what makes Zidisha unique in the world of micro-finance is that the platform has been designed in such a way as to remove any trace of those pesky intermediaries. Not only do borrowers communicate directly with lenders as their business investments grow, but the borrowers themselves are the ones who post their loan applications.

When Zidisha does work with third parties, it’s to provide the kind of technological support and web and mobile networks that enable the company to provide its services to local entrpreneurs. In fact, it’s these services that can help further reduce the barriers between borrowers and lenders by providing the ability to do local credit checks and verification, offer low-cost electronic money transfers and independent tracking of borrower performance. But that’s the extent of it, the founder says. After that, Zidisha aims to get out of the user’s way to let them begin interacting directly with borrowers.

Today, the startup is working with 3,100 lenders from eight countries — including Benin, Burkina Faso, Guinea, Indonesia, Kenya, Mali, Niger and Senegal — and, with its launch behind it, plans to begin expanding that roster in the coming months. Thus far, $1.6 million in loans have been given directly through it’s platform to 3,700 borrowers. Meanwhile, the average interest rate is 4.6 percent over a four-year time span and the average default rate is a lowly 8 percent.

Finally, when we talk about the true potential for direct, peer-to-peer lending to have a big impact at a global scale, the founder says, it’s important to remember that the frequently restrictive political and economic conditions these entrepreneurs are working mean that it’s expensive for local banks to lend to small business owners.

It’s no surprise then that many of the borrowers work with micro-finance institutions. However, Kurnia explains that individual business expansion loans often carry prohibitive collateral and interest requirements due to the institutions’ high administrative costs. Zidisha wants to remove these barriers and provide borrowers with access to loans that allow them to retain a greater share of their income and better support their families as a result.

To avoid high operational costs and offer better terms for borrowers, Zidisha’s staff of fifty is comprised almost totally of volunteers, who take charge of the startup’s operations, whether it’s reviewing borrower applications, disbursing loans, registering repayments or answering queries. In this respect, the Zidisha founder tells us, the company is similar to Wikipedia. In other words, it’s a social good-focused, online community run almost exclusively by volunteers.

Again, while organizations like Kiva continue to dominate most of the mindshare in this market, startups like Zidisha are working to create a forum in which a blogger working from San Francisco could potentially encounter and actually befriend remarkable social entrepreneurs who live in some of the world’s most remote and impoverished places. But, in the end, if the platform succeeds it’s because it will have created an experience that doesn’t just collect loans, but “collects biographies,” to quote one of the site’s lenders.

Whether it’s a saleswoman from the war-torn Casamance region in West Africa, who “gets up at four in the morning to read Dale Carnegie books,” the founder says, or an entrepreneur who is starting a computer training school in a Nairobi slum, the stories are sure to put your own in perspective and leave you with a feeling that, finally, technology is being used to actually help people — not just make sharing your photos that much easier.

Sites like Watsi and Zidisha are putting the days of “adopting a child” or family in a developing country, where all you received was a picture or a small brochure, with no sense of where your investment was going or what it was actually being used for. In other words, they’re making giving (or lending) a lot easier to do and far more rewarding.


The Truths Behind 'Dr. Strangelove' : The New Yorker

$
0
0

Comments:"The Truths Behind 'Dr. Strangelove' : The New Yorker"

URL:http://www.newyorker.com/online/blogs/newsdesk/2014/01/strangelove-for-real.html


This month marks the fiftieth anniversary of Stanley Kubrick’s black comedy about nuclear weapons, “Dr. Strangelove or: How I Learned to Stop Worrying and Love the Bomb.” Released on January 29, 1964, the film caused a good deal of controversy. Its plot suggested that a mentally deranged American general could order a nuclear attack on the Soviet Union, without consulting the President. One reviewer described the film as “dangerous … an evil thing about an evil thing.” Another compared it to Soviet propaganda. Although “Strangelove” was clearly a farce, with the comedian Peter Sellers playing three roles, it was criticized for being implausible. An expert at the Institute for Strategic Studies called the events in the film “impossible on a dozen counts.” A former Deputy Secretary of Defense dismissed the idea that someone could authorize the use of a nuclear weapon without the President’s approval: “Nothing, in fact, could be further from the truth.” (See a compendium of clips from the film.) When “Fail-Safe”—a Hollywood thriller with a similar plot, directed by Sidney Lumet—opened, later that year, it was criticized in much the same way. “The incidents in ‘Fail-Safe’ are deliberate lies!” General Curtis LeMay, the Air Force chief of staff, said. “Nothing like that could happen.” The first casualty of every war is the truth—and the Cold War was no exception to that dictum. Half a century after Kubrick’s mad general, Jack D. Ripper, launched a nuclear strike on the Soviets to defend the purity of “our precious bodily fluids” from Communist subversion, we now know that American officers did indeed have the ability to start a Third World War on their own. And despite the introduction of rigorous safeguards in the years since then, the risk of an accidental or unauthorized nuclear detonation hasn’t been completely eliminated.

The command and control of nuclear weapons has long been plagued by an “always/never” dilemma. The administrative and technological systems that are necessary to insure that nuclear weapons are always available for use in wartime may be quite different from those necessary to guarantee that such weapons can never be used, without proper authorization, in peacetime. During the nineteen-fifties and sixties, the “always” in American war planning was given far greater precedence than the “never.” Through two terms in office, beginning in 1953, President Dwight D. Eisenhower struggled with this dilemma. He wanted to retain Presidential control of nuclear weapons while defending America and its allies from attack. But, in a crisis, those two goals might prove contradictory, raising all sorts of difficult questions. What if Soviet bombers were en route to the United States but the President somehow couldn’t be reached? What if Soviet tanks were rolling into West Germany but a communications breakdown prevented NATO officers from contacting the White House? What if the President were killed during a surprise attack on Washington, D.C., along with the rest of the nation’s civilian leadership? Who would order a nuclear retaliation then?

With great reluctance, Eisenhower agreed to let American officers use their nuclear weapons, in an emergency, if there were no time or no means to contact the President. Air Force pilots were allowed to fire their nuclear anti-aircraft rockets to shoot down Soviet bombers heading toward the United States. And about half a dozen high-level American commanders were allowed to use far more powerful nuclear weapons, without contacting the White House first, when their forces were under attack and “the urgency of time and circumstances clearly does not permit a specific decision by the President, or other person empowered to act in his stead.” Eisenhower worried that providing that sort of authorization in advance could make it possible for someone to do “something foolish down the chain of command” and start an all-out nuclear war. But the alternative—allowing an attack on the United States to go unanswered or NATO forces to be overrun—seemed a lot worse. Aware that his decision might create public unease about who really controlled America’s nuclear arsenal, Eisenhower insisted that his delegation of Presidential authority be kept secret. At a meeting with the Joint Chiefs of Staff, he confessed to being “very fearful of having written papers on this matter.”

President John F. Kennedy was surprised to learn, just a few weeks after taking office, about this secret delegation of power. “A subordinate commander faced with a substantial military action,” Kennedy was told in a top-secret memo, “could start the thermonuclear holocaust on his own initiative if he could not reach you.” Kennedy and his national-security advisers were shocked not only by the wide latitude given to American officers but also by the loose custody of the roughly three thousand American nuclear weapons stored in Europe. Few of the weapons had locks on them. Anyone who got hold of them could detonate them. And there was little to prevent NATO officers from Turkey, Holland, Italy, Great Britain, and Germany from using them without the approval of the United States.

In December, 1960, fifteen members of Congress serving on the Joint Committee on Atomic Energy had toured NATO bases to investigate how American nuclear weapons were being deployed. They found that the weapons—some of them about a hundred times more powerful than the bomb that destroyed Hiroshima—were routinely guarded, transported, and handled by foreign military personnel. American control of the weapons was practically nonexistent. Harold Agnew, a Los Alamos physicist who accompanied the group, was especially concerned to see German pilots sitting in German planes that were decorated with Iron Crosses—and carrying American atomic bombs. Agnew, in his own words, “nearly wet his pants” when he realized that a lone American sentry with a rifle was all that prevented someone from taking off in one of those planes and bombing the Soviet Union.

* * *

The Kennedy Administration soon decided to put locking devices inside NATO’s nuclear weapons. The coded electromechanical switches, known as “permissive action links” (PALs), would be placed on the arming lines. The weapons would be inoperable without the proper code—and that code would be shared with NATO allies only when the White House was prepared to fight the Soviets. The American military didn’t like the idea of these coded switches, fearing that mechanical devices installed to improve weapon safety would diminish weapon reliability. A top-secret State Department memo summarized the view of the Joint Chiefs of Staff in 1961: “all is well with the atomic stockpile program and there is no need for any changes.”

After a crash program to develop the new control technology, during the mid-nineteen-sixties, permissive action links were finally placed inside most of the nuclear weapons deployed by NATO forces. But Kennedy’s directive applied only to the NATO arsenal. For years, the Air Force and the Navy blocked attempts to add coded switches to the weapons solely in their custody. During a national emergency, they argued, the consequences of not receiving the proper code from the White House might be disastrous. And locked weapons might play into the hands of Communist saboteurs. “The very existence of the lock capability,” a top Air Force general claimed, “would create a fail-disable potential for knowledgeable agents to ‘dud’ the entire Minuteman [missile] force.” The Joint Chiefs thought that strict military discipline was the best safeguard against an unauthorized nuclear strike. A two-man rule was instituted to make it more difficult for someone to use a nuclear weapon without permission. And a new screening program, the Human Reliability Program, was created to stop people with emotional, psychological, and substance-abuse problems from gaining access to nuclear weapons.

Despite public assurances that everything was fully under control, in the winter of 1964, while “Dr. Strangelove” was playing in theatres and being condemned as Soviet propaganda, there was nothing to prevent an American bomber crew or missile launch crew from using their weapons against the Soviets. Kubrick had researched the subject for years, consulted experts, and worked closely with a former R.A.F. pilot, Peter George, on the screenplay of the film. George’s novel about the risk of accidental nuclear war, “Red Alert,” was the source for most of “Strangelove” ’s plot. Unbeknownst to both Kubrick and George, a top official at the Department of Defense had already sent a copy of “Red Alert” to every member of the Pentagon’s Scientific Advisory Committee for Ballistic Missiles. At the Pentagon, the book was taken seriously as a cautionary tale about what might go wrong. Even Secretary of Defense Robert S. McNamara privately worried that an accident, a mistake, or a rogue American officer could start a nuclear war.

Coded switches to prevent the unauthorized use of nuclear weapons were finally added to the control systems of American missiles and bombers in the early nineteen-seventies. The Air Force was not pleased, and considered the new security measures to be an insult, a lack of confidence in its personnel. Although the Air Force now denies this claim, according to more than one source I contacted, the code necessary to launch a missile was set to be the same at every Minuteman site: 00000000.

* * *

The early permissive action links were rudimentary. Placed in NATO weapons during the nineteen-sixties and known as Category A PALs, the switches relied on a split four-digit code, with ten thousand possible combinations. If the United States went to war, two people would be necessary to unlock a nuclear weapon, each of them provided with half the code. Category A PALs were useful mainly to delay unauthorized use, to buy time after a weapon had been taken or to thwart an individual psychotic hoping to cause a large explosion. A skilled technician could open a stolen weapon and unlock it within a few hours. Today’s Category D PALs, installed in the Air Force’s hydrogen bombs, are more sophisticated. They require a six-digit code, with a million possible combinations, and have a limited-try feature that disables a weapon when the wrong code is repeatedly entered.

The Air Force’s land-based Minuteman III missiles and the Navy’s submarine-based Trident II missiles now require an eight-digit code—which is no longer 00000000—in order to be launched. The Minuteman crews receive the code via underground cables or an aboveground radio antenna. Sending the launch code to submarines deep underwater presents a greater challenge. Trident submarines contain two safes. One holds the keys necessary to launch a missile; the other holds the combination to the safe with the keys; and the combination to the safe holding the combination must be transmitted to the sub by very-low-frequency or extremely-low-frequency radio. In a pinch, if Washington, D.C., has been destroyed and the launch code doesn’t arrive, the sub’s crew can open the safes with a blowtorch.

The security measures now used to control America’s nuclear weapons are a vast improvement over those of 1964. But, like all human endeavors, they are inherently flawed. The Department of Defense’s Personnel Reliability Program is supposed to keep people with serious emotional or psychological issues away from nuclear weapons—and yet two of the nation’s top nuclear commanders were recently removed from their posts. Neither appears to be the sort of calm, stable person you want with a finger on the button. In fact, their misbehavior seems straight out of “Strangelove.”

Vice Admiral Tim Giardina, the second-highest-ranking officer at the U.S. Strategic Command—the organization responsible for all of America’s nuclear forces—-was investigated last summer for allegedly using counterfeit gambling chips at the Horseshoe Casino in Council Bluffs, Iowa. According to the Iowa Division of Criminal Investigation, “a significant monetary amount” of counterfeit chips was involved. Giardina was relieved of his command on October 3, 2013. A few days later, Major General Michael Carey, the Air Force commander in charge of America’s intercontinental ballistic missiles, was fired for conduct “unbecoming an officer and a gentleman.” According to a report by the Inspector General of the Air Force, Carey had consumed too much alcohol during an official trip to Russia, behaved rudely toward Russian officers, spent time with “suspect” young foreign women in Moscow, loudly discussed sensitive information in a public hotel lounge there, and drunkenly pleaded to get onstage and sing with a Beatles cover band at La Cantina, a Mexican restaurant near Red Square. Despite his requests, the band wouldn’t let Carey onstage to sing or to play the guitar.

While drinking beer in the executive lounge at Moscow’s Marriott Aurora during that visit, General Carey made an admission with serious public-policy implications. He off-handedly told a delegation of U.S. national-security officials that his missile-launch officers have the “worst morale in the Air Force.” Recent events suggest that may be true. In the spring of 2013, nineteen launch officers at Minot Air Force base in North Dakota were decertified for violating safety rules and poor discipline. In August, 2013, the entire missile wing at Malmstrom Air Force base in Montana failed its safety inspection. Last week, the Air Force revealed that thirty-four launch officers at Malmstrom had been decertified for cheating on proficiency exams—and that at least three launch officers are being investigated for illegal drug use. The findings of a report by the RAND Corporation, leaked to the A.P., were equally disturbing. The study found that the rates of spousal abuse and court martials among Air Force personnel with nuclear responsibilities are much higher than those among people with other jobs in the Air Force. “We don’t care if things go properly,” a launch officer told RAND. “We just don’t want to get in trouble.”

The most unlikely and absurd plot element in “Strangelove” is the existence of a Soviet “Doomsday Machine.” The device would trigger itself, automatically, if the Soviet Union were attacked with nuclear weapons. It was meant to be the ultimate deterrent, a threat to destroy the world in order to prevent an American nuclear strike. But the failure of the Soviets to tell the United States about the contraption defeats its purpose and, at the end of the film, inadvertently causes a nuclear Armageddon. “The whole point of the Doomsday Machine is lost,” Dr. Strangelove, the President’s science adviser, explains to the Soviet Ambassador, “if you keep it a secret!”

A decade after the release of “Strangelove,” the Soviet Union began work on the Perimeter system—-a network of sensors and computers that could allow junior military officials to launch missiles without oversight from the Soviet leadership. Perhaps nobody at the Kremlin had seen the film. Completed in 1985, the system was known as the Dead Hand. Once it was activated, Perimeter would order the launch of long-range missiles at the United States if it detected nuclear detonations on Soviet soil and Soviet leaders couldn’t be reached. Like the Doomsday Machine in “Strangelove,” Perimeter was kept secret from the United States; its existence was not revealed until years after the Cold War ended.

In retrospect, Kubrick’s black comedy provided a far more accurate description of the dangers inherent in nuclear command-and-control systems than the ones that the American people got from the White House, the Pentagon, and the mainstream media.

“This is absolute madness, Ambassador,” President Merkin Muffley says in the film, after being told about the Soviets’ automated retaliatory system. “Why should you build such a thing?” Fifty years later, that question remains unanswered, and “Strangelove” seems all the more brilliant, bleak, and terrifyingly on the mark.

You can read Eric Schlosser’s guide to the long-secret documents that help explain the risks America took with its nuclear arsenal, and watch and read his deconstruction of clips from “Dr. Strangelove” and from a little-seen film about permissive action links.

Eric Schlosser is the author of “Command and Control.”

Google Groups

If The Immunity Project Crowdfunds This Synthetic AIDS Vaccine, They'll Offer It Free To Everyone | Fast Company | Business + Innovation

$
0
0

Comments:"If The Immunity Project Crowdfunds This Synthetic AIDS Vaccine, They'll Offer It Free To Everyone | Fast Company | Business + Innovation"

URL:http://www.fastcompany.com/3025372/if-the-immunity-project-crowdfunds-this-synthetic-aids-vaccine-theyll-offer-it-free-to-every


What happens when you combine Microsoft e-Science machine learning, Harvard thinking, and a new medical device to tackle HIV-AIDS? The Immunity Project, a not-for-profit company developing the first ever synthetic HIV vaccine.

The Immunity project’s work is based on the discovery that there are people born with a natural immunity to HIV. After identifying these "HIV controllers" in the population, the team applied machine learning to reverse-engineer the biological processes HIV controllers use to defeat the virus, mimicking natural immunity.

They’ve developed a vaccine prototype and completed preliminary laboratory testing. And today, they went live with a crowdfunding campaign to support a demonstration aimed to prove the vaccine can successfully immunize human blood. It's the last step before they begin Phase 1 human clinical trials with the FDA. Their goal is to give the vaccine away to the world, for free.

In order to complete this experiment by the end of March of this year, they need to raise $482,000 in the next 20 days. If successful, this will help solve a global problem that is still epidemic. AIDS kills nearly 5,000 people a day. While there are several contenders in the race to create a successful HIV vaccine, this one has an excellent shot at working. It's also safer for candidates than vaccines made with killed viruses or live viruses. It requires no refrigeration and is designed to be delivered via nasal inhaler, solving distribution challenges in the countries with the highest HIV infection rates.

Dr. Reid Rubsamen alongside other Immunity Project team members.

The vaccine was originally developed in a partnership between Dr. Bruce Walker from Harvard, Dr. David Heckerman, inventor of the spam filter and AAAI fellow and machine learning/artificial intelligence scientist at Microsoft e-Science Research, and Dr. Reid Rubsamen, drug delivery system expert and founder of Flow Pharma. The project was billed as a great example of multi-disciplinary innovation. Apparently, Silicon Valley accelerator Y Combinator agreed--on January 6, Immunity Project became part of the Winter 2014 Y Combinator class. According to partner Sam Altman, "This is certainly a new sort of company for us, but it's the kind of crazy idea we like.”

“Imagine a world where vaccines are developed for a tiny fraction of the big pharma cost and given away for free to everyone who needs them,” says Altman. “We thought that work done by Microsoft Research that underlies this was really interesting, and we're always interested in areas where software can change how things are done. Technology means doing more with less; this is an extreme example. I spent a fair amount of time with this group during their application process and am personally donating both money and blood."

Immunity Project

$
0
0

Comments:"Immunity Project"

URL:https://pledge.immunityproject.org/the-free-hiv-aids-vaccine


What is Immunity Project?

 

Immunity Project is a Y Combinator-backed non profit organization.  We are proud to be partners with Until There’s A Cure, a registered 501(c)3 organization.

 

This campaign will fund our final experiment, using human blood, before we begin our Phase I Clinical Trials.

 

 

 

"This is certainly a new sort of company for us, but it's the kind of crazy idea we like... I spent a fair amount of time with this group during their application process, and am personally donating both money and blood." --Sam Altman, Partner, Y Combinator

 

 

 

 

 

 

 

What are we doing?

 

Like the best comic book heroes, controllers are born with an incredibly rare super power. They won the genetic lottery. Although controllers carry low levels of HIV, the virus is in a dormant state and they do not contract AIDS. Only 1 out of every 300 people who are living with HIV has this incredible power.

                    

The essence of controllers’ immunity is the unique targeting capability contained within their immune systems. Like the finely tuned laser scope on a sniper rifle, the immune systems of controllers have the ability to target the biological markers on the HIV virus that are its achilles heel. When a controller’s immune system attacks these biological markers it forces the virus into a dormant state. Non controllers have sniper rifles, but they are missing this critical targeting ability.

                    

Immunity Project is a team of Stanford, Harvard, and MIT scientists and entrepreneurs based in the San Francisco Bay Area who are developing a revolutionary vaccine platform using an entirely novel approach: to adopt the unique targeting capability inherent in controllers to give everyone that same immunity to the targeted disease. The first vaccine being developed using this platform is a vaccine for HIV. It is designed to turn everyone who receives it into an HIV controller.  Immunity Project will offer our HIV vaccine to the world for free.

 

 

Why HIV/AIDS?

 

Over 35 million people are currently living with HIV. Each day an additional 7,000 become infected with the virus. Each day over 4,000 people die from AIDS. - the equivalent to ten 747s falling out of the sky every single day. HIV has taken nearly 30 million lives since 1983.

 

Current responses to the pandemic are insufficient to match the challenge posed by HIV. For example, for every person who gains access to antiretroviral drugs today, two are newly infected by the virus. This is especially true in sub-Saharan Africa where the need for an HIV vaccine is of the utmost urgency.

 

 

 

Timeline

 

 

What is this campaign funding?

We are raising $482,000 to fund the final experiment before we begin our Phase I clinical study. Positive data from this experiment will help us provide further validation.  These experiments will help us show that we can successfully immunize human blood against HIV in a controlled external environment.

 

Experiment Outline

Vaccinate humanized mice with (i) an Immunity Project HIV epitope (treatment group) or (ii) tetanus epitope  (control group) (Transgenic NOG grafted with an Immunity Project-relevant HLA type).  Harvest spleens 14 days post immunization, confirm presentation to killer T cells via Flurospot.  Create in-vitro cell culture prep with separated CD4 and CD8 T-Cells wherein the CD4 cells have been inoculated with live HIV virus.  Expected result: p24 HIV core antigen lower and CD4 counts greater with HIV-epitope immunized mice.

 

Budget

For the Mouse Experiment

Animals = $40K

Animal handling (dosing, housing, spleen harvest) = $150K

Reagents (including HIV virus, media, antibodies, magnetic sep, 

p24 assay, MPLA, CpG, etc) = $100K

FLUOROSPOT plates = $55K

 

For the Lab

40 HLA Type determinations = $30K

HLA Subtyping determinations = $20K

Flow Cytometer = $60K

Larger capacity Clinical centrifuge = $6K

Larger capacity CO2 incubator = $6K

Biosafety cabinet = $8K

Lab Refrigerator = $2K

Lab Freezer = $2K

Rent = $3K

 

 

 

Media Coverage

 

"The Y Combinator-backed project discovered how to mimic natural immunity to HIV" - Fast Company

 

"But Y Combinator is now doing something it has never done before–backing a young pharmaceutical company, one that is working on a vaccine for HIV." - The Wall Street Journal

 

"A vaccine for HIV/AIDS has been the holy grail of the medical community for decades, and these guys may have found it." - Venture Beat

 

"A vaccine for HIV/AIDS has been the holy grail of the medical community for decades, and these guys may have found it." - The Verge

 

"Heckerman... made a splash recently with a software advance that eases large-scale searches within genetic databases" - Science

 

"...an effective vaccine... that strengthen a patient's immune system, as opposed to just attacking the virus with drugs" - Scientific American

 

"...the key to fighting spam and HIV is the same: Find the part that absolutely can't mutate -- what he calls the Achilles' heel -- and attack there" - LATimes

 

"Leaders of the nonprofit Immunity Project, based out of a small workspace in Orinda, believe that hacking into the AIDS virus' life cycle and applying machine learning can produce an inhaled vaccine that gives everyone the same superpower as a rare group of people who carry HIV but don't contract AIDS." -SF Business Times

 

"...re-engineering the "HIV controller's" immune response -- into a vaccine that can give everyone an incredible superpower." -LAWeekly

 

 

 

Meet the Team

 

Dr. Reid Rubsamen - Chief Executive Officer and Co-Founder

Stanford MD and MA in Computer Science. 60+ patents for novel drug delivery technologies. Founder of Aradigm.

 

Naveen Jain - Chief Marketing Officer and Co-Founder

Entrepreneur and CEO of Sparkart.

 

Dr. Charles Herst - Chief Science Officer

UC Berkeley MA in Bacteriology and Northwestern PhD in Tumor Cell Biology.

 

Dr. Salim Abdool Karim - Clinical Investigator

MD and PhD. Professor of Clinical Epedmiology at Columbia. Director of CAPRISA.

 

Ian Cinnamon - Director of Strategy

BS from MIT in Cognitive Science. Entrepreneur, Author.

 

Howie Diamond - Director of Strategy & Marketing

Entrepreneur and Director of Business Development at Sparkart

 

A keyboard that rises up from flat touch screens | Mobile - CNET News

$
0
0

Comments:"A keyboard that rises up from flat touch screens | Mobile - CNET News"

URL:http://news.cnet.com/8301-1035_3-57569078-94/a-keyboard-that-rises-up-from-flat-touch-screens/


Keyboard bubbles up from touch screen on demand

A few weeks ago, right before the new BlackBerry 10 phones were announced, I dragged a cameraman to San Francisco's Financial District during lunch hour and asked random strangers to name BlackBerry's best feature. Care to guess what the results of my highly unscientific poll were? Even iPhone and Android users agreed -- the famed keyboard is BlackBerry's top trait.

Increasingly, we "mobile device addicts" are favoring our smartphones and tablets over our traditional computers to meet our digital demands. Trouble is, a lot of us still despise typing on these beloved touch-screen devices. One Silicon Valley startup has created a new kind of keyboard that could help reduce typos and other fat-fingered mistakes.

Fremont, Calif.-based, Tactus Technology uses microfluidics to make physical keys bubble up from the surface of a touch screen when you need to type and disappear, when you don't. Microfluidics may sound foreign, but if you've operated an inkjet printer you've used the technology.

So how do keys appear out of nowhere? It starts with a panel that has channels built into it. The channels are filled with a non-toxic fluid. By increasing the pressure in the channels, the fluid pushes up the surface of the panel, creating an actual key. What's more, Tactus says the pressure will be adjustable, so the keys could feel a bit squishy, like a gel pack or they could be harder, like the plastic keys on a laptop.

Tactus demo-ed a working prototype for us, but they're still refining the technology. Right now, there's an audible noise when the keys appear. It should be silent in the final version. And the surface has to be rugged. You wouldn't want to spring a leak, after all. Durability tests are part of that process since Tactus needs to guarantee the surface can't be punctured by a newly manicured fingernail or a 3-year-old trying to scribble on your smartphone with a pen.

Currently, the technology is limited in that it's a fixed single array. You wouldn't be able to use the Tactus keyboard in both portrait and landscape mode, for example. But the goal is to make the third generation of the product dynamic. "The vision that we had was not just to have a keyboard or a button technology, but really to make a fully dynamic surface," says cofounder Micah Yairi, "So you can envision the entire surface being able to raise and lower depending on what the application is that's driving it." Meaning it could display a keyboard when you're typing an e-mail, a number pad when you're dialing a phone number, and perhaps letter tiles when you're playing Words With Friends.

Tactus says it wants to be in production by the end of 2013 or beginning of 2014. Executives were mum about which companies they're talking to. Just one partnership has been announced to date, with Touch Revolution, a Bay Area company that makes touch displays. Tactus VP Nate Saal says, "There are more and more touch screens being integrated in devices... from your mobile phone, cell phone, into refrigerators and appliances and I think those are all opportunities for Tactus to really improve the interface and usability of those devices."

Tactus took it's prototype to CES in January. Among the attendees who tried out the technology was a man who was visually impaired. His reaction upon feeling the keys under his fingers? "Amazing."

4 HTTP Security headers you should always be using | ibuildings

$
0
0

Comments:"4 HTTP Security headers you should always be using | ibuildings"

URL:http://ibuildings.nl/blog/2013/03/4-http-security-headers-you-should-always-be-using


What started as a dream for a worldwide library of sorts, has transformed into not only a global repository of knowledge but also the most popular and widely deployed Application Platform: the World Wide Web.
The poster child for Agile, it was not developed as a whole by a single entity, but rather grew as servers and clients expanded it's capabilities. Standards grew along with them.

While growing a solution works very well for discovering what works and what doesn't, it hardly leads to a consistent and easy to apply programming model. This is especially true for security: where ideally the simplest thing that works is also the most secure, it is far too easy to introduce vulnerabilities like XSSCSRF or Clickjacking.

Because HTTP is an extensible protocol browsers have pioneered some useful headers to prevent or increase the difficulty of exploiting these vulnerabilities. Knowing what they are and when to apply them can help you increase the security of your system.  

 

1. Content-Security-Policy

What's so good about it?

How would you like to be largely invulnerable to XSS? No matter if someone managed to trick your server into writing <script>alert(1);</script>, have the browser straight up refuse it?

That's the promise of Content-Security-Policy. 

Adding the Content-Security-Policy header with the appropriate value allows you to restrict the origin of the following:

  • script-src: JavaScript code (biggest reason to use this header)
  • connect-src: XMLHttpRequest, WebSockets, and EventSource.
  • font-src: fonts
  • frame-src: frame ulrs
  • img-src: images
  • media-src: audio & video
  • object-src: Flash (and other plugins)
  • style-src: CSS

So specifying the following:

Content-Security-Policy: script-src 'self' https://apis.google.com

Means that script files may only come from the current domain or from apis.google.com (the Google JavaScript CDN).

Another helpful feature is that you can automatically enable sandbox mode for all iframes on your site.

And if you want to test the waters, you can use use the 'Content-Security-Policy-Report-Only' header to do a dry run of your policy and have the browser post the results to a URL of your choosing.

It is definitely worth the time to read the excellent HTML5Rocks introduction.

 

What's the catch

Unfortunately Internet Explorer (IE) only supports the sandbox mode, and with a 'X-' prefix no less. Also Android support is pretty new (4.4).

And of course it can't protect against all XSS, if you generate your JavaScript dynamically (a bad idea, but not uncommon in practice) someone may still trick your server into generating bad JS.

But, including it does no harm and will protect users on Chrome, Firefox and iOS.
 

Where does it work?

 

Where do I learn more about it?

HTML5Rocks has an awesome introduction. Other than that, the W3C spec is quite readable.

 

2. X-Frame-Options

What's so good about it?

Stop Clickjacking with one simple header:

X-Frame-Options: DENY

This will cause browsers to refuse requests for framing in that page.

Supplying the value 'SAMEORIGIN' will allow framing only from the same origin and 'ALLOW FROM http://url-here.example.com' will allow you to specify an origin (unsupported by IE).

 

What's the catch?

This header will be deprecated and it's functionality will be moved to Content-Security-Policy 1.1 (which does not have the same level of support yet).
But until that has wider support, there is no reason not to use this header.

 

Where does it work?

IE Firefox Chrome iOS Safari Android Browser 8+ 3.6.9+ 4.1.249+ ? ?

(data from Mozilla Developer Network)

 

Where do I learn more about it?

Not much more to learn, but if you want some more information you can check out the Mozilla Developer Network article on the topic.

Also Coding Horror has an old (2009) but good article on Clickjacking / framing: We done been framed.

 

3. X-Content-Type-Options

What's so good about it?

Letting your users upload files is inherently dangerous, serving up files uploaded by users is even more dangerous and difficult to get right.  

This isn't made any easier by browsers second-guessing the Content-Type of what you're serving by doing Mime Sniffing.

The X-Content-Type-Options allows you to, in effect, say to browsers that yes, you know what you're doing, the Content-Type is correct with it's only allowed value: 'nosniff'.

GitHub uses it, you can too.

 

What's the catch?

Only works for IE and Chrome, though depending on your audience that could be 65% of your visitors that you're protecting.

 

Where does it work?

IE Firefox Chrome iOS Safari Android Browser 8+ - (bug 471020) 1+ - -

 

Where do I learn more about it?

FOX IT has an excellent article on MIME sniffing: MIME Sniffing: feature or vulnerability? and the IT Security Stackexchange has a dedicated question on this topic: Does X-Content-Type-Options really prevent content sniffing attacks?

 

4. Strict-Transport-Security

What's so good about it?

My online banking system uses HTTPS, providing authenticity (that yes, I really am connecting to my bank) and transport security (anybody snooping in would only see the encrypted traffic).

However, there is a problem with it...
When I type "onlinebanking.example.com" into the address bar of my browser, it will connect to plain old HTTP by default. It's only if the server then redirects the user to HTTPS (which is a bad idea in theory, but a good one in practice) that I get my secure connection. Unfortunately this redirecting gives an attacker a window to play man-in-the-middle. To solve this the Strict-Transport-Security header was added.

The HTTP Strict-Transport-Security (HSTS) header instructs the browser to (for a given time) only use https. If for instance, you go to https://hsts.example.com and (among others) it returns the following header:

Strict-Transport-Security: max-age=31536000; includeSubDomains

Then even typing in http://hsts.example.com will make the browser connect to https://hsts.example.com.

It will do this for as long as the HSTS header is valid, which in the case of the example is 1 year since the last response that sent the HSTS header. So if I visit the site once on January 1st 2013, it will be valid until January 1st 2014. But if I visit again on December 31st 2013 it will not only still be valid, it will reset the validity to be valid until December 31st 2014.

 

What's the catch?

It only works on Chrome and Firefox for now. Your Internet Explorer users are still vulnerable. Never the less, it's worth implementing as it's an official IETF standard and the next IE should implement it real soon now...

Also you don't want to implement this unless you're using HTTPS, but why wouldn't you be using HTTPS? Remember that HTTPS not only guarantees that your content (and the users content) will be encrypted and therefore uninterceptable, it also provides authenticity. Promising your users that yes, this content really came from you.

Why you should always use HTTPS is a different discussion and as evindenced by the fact that both that blog post and this one are not on HTTPS, still an uphill battle. But if you're using HTTPS you should probably use HSTS too.

 

Where does it work?

Where do I learn more about it?

The Mozilla Developer Network has a good article on it: HTTP Strict Transport Security.  

 

If you're doing Symfony2 or Drupal

For Symfony2 take a look at the NelmioSecurityBundle and for Drupal check out the Security Kit module which allow you to specify all the aforementioned headers!

 

Hall of Shame: X-Requested-With

By default jQuery sends the X-Requested-With header. It was thought that the mere presence of this header could be used as a way to defeat Cross-Site Request Forgery. Surely no request with this header and a users session could be initiated by a third party as in a browser only XMLHttpRequest is allowed to set custom headers.

Unfortunately as the Ruby On Rails Ruby framework and the Django Python framework soon found out, while this is a good measure for defence in depth, it can not be fully relied on in the face of other third party plugins like Java or Adobe Flash.

 

Conclusion

Using the HTTP headers discussed above allows you to quickly and easily protect your users from XSS, Clickjacking, Mime sniffing vulnerabilities and Man-In-The-Middle attacks.

If you aren't using these headers yet, now might be a good time to introduce them to your application or webserver configuration.

Keep your users safe out there.

Startup developing free HIV/AIDS vaccine accepted into Y Combinator | VentureBeat | Health | by Rebecca Grant

$
0
0

Comments:"Startup developing free HIV/AIDS vaccine accepted into Y Combinator | VentureBeat | Health | by Rebecca Grant"

URL:http://venturebeat.com/2014/01/23/startup-developing-hivaids-vaccine-is-2nd-nonprofit-accepted-into-y-combinator/


A vaccine for HIV/AIDS has been the holy grail of the medical community for decades, and these guys may have found it.

Immunity Project is developing a free HIV/AIDS vaccine through a radical new approach that involves data analysis and machine learning. It is one of seven nonprofits in elite accelerator program Y Combinator’s latest batch. YC accepted its first nonprofit Watsi last year.

Immunity Project also launched a crowdfunding campaign using Crowdhoster today with the goal of raising $482,000. This money will help Immunity fund its final experiment using human blood before it begins the first phase of clinical trials.

“This is the ultimate application of informatics to medicine,” cofounder and CEO Dr. Reid Rubsamen said in an interview. “So much vaccine design since 1953 has been based on neutralizing antibodies, but that legacy approach doesn’t work for HIV. The virus is too smart and can mutate so quickly. We are doing something very different.”

When cells are infected by HIV, they send pieces of HIV protein, or “flags,” to their surface for the immune system to identify and attack. However there are hundreds of signals coming from cells, and most people’s bodies don’t have the ability to pick out the HIV cells from all the other noise, except for a small group of people known as “controllers.”

One out of every 300 people living with HIV is a “controller,” meaning they carry low levels of the virus in a dormant state that never turns into AIDS. Their “immunity” to the virus is due to a unique targeting capability in their immune system that enables it to neutralize HIV molecules by hitting them in weak spots.

Immunity’s algorithm sorts through the enormous amount of combinations of HIV genome and human immune system genetic data to figure out how controllers are able to keep HIV dormant.

“All the information from the immune system and the HIV genome generates this really, really big dataset,” Rubsamen said. “We use machine learning to understand what is happening with this dataset and reverse engineer this biological process. Hitting that tiny target is the output of a giant computer science effort.”

The goal of the vaccine is basically to turn everyone into a controller by training the immune system to attack the right targets.

The algorithm Immunity uses was written by Dr. David Heckerman and his colleagues at Microsoft e-Science Research. It is actually based on similar principles to spam filtering software because both spam and HIV “spread rapidly, mutate relentlessly, and have multitude of variations.”

“Dr. Heckerman designed algorithms to find the part on HIV that absolutely cannot mutate — the place where if it changes, the virus stops functioning,” Immunity said on its site. “In both cases, researches are using machine learning to create statistical ways of dealing with large data sets in order to find the needle in the haystack.”

Rubsamen said this is the first vaccine in history developed in this matter and is viewed as a rogue project by the immunology community. That said, early tests on mice have shown “overwhelmingly positive results.”

Rubsamen and Heckerman are both medical doctors and computer scientists. The two went to Stanford Medical School together and have known each other for decades. Rubsamen previously founded Aradigm, a public pharmaceutical company that develops inhalation drug products. He has more than 60 patents for drug delivery technologies and said he is leveraging this expertise to create a nasal spray, rather than an injectable vaccine, which will make it easier to administer in the developing world.

Over 35 million people are currently living with HIV/AIDS, and 6,300 new people are infected everyday. Over 4,000 people die a day from AIDS, and nearly 36 million people  have died of HIV-related causes.

70 percent of all people living with HIV live in sub-Saharan Africa.

Rubsamen said that, unlike retrovrial treatments, Immunity wouldn’t require a lifetime of medication — you could take the vaccine and be done. It also has potential to act preventatively. Plus Immunity plans to make the vaccine free.

However there are still years of work, experimenting, clinical trials, and federal approvals to get through and millions of dollars to be raised. The vaccine has not officially entered Phase 1 yet and hopes to begin clinical trials in December 2014. The third and final phase of clinical trials, and widespread vaccination efforts, wouldn’t happen before 2016.

If it works, this will be a huge victory in the fight against HIV/AIDS and a watershed moment in immunology.

The Immunity Project is a partnership between biotech firm Flow Pharma and digital agency SparkArt. Rubsamen is the CEO of Flow Pharma, and cofounder Naveen Jain is the cofounder of SparkArt. Microsoft Research contributed $1 million to the project in 2011.

VentureBeat is creating an index of the top online health services for consumers. Take a look at our initial suggestions and complete the survey to help us build a definitive index. We’ll publish the official index in the weeks to come, and for those who fill out they survey, we’ll send you an expanded report free of charge. Speak with the analyst who put this survey together to get more in-depth information, inquire within.

Linda Liukas' Programming book for Children has Huge First Day on Kickstarter

$
0
0

Comments:"Linda Liukas' Programming book for Children has Huge First Day on Kickstarter"

URL:http://arcticstartup.com/2014/01/23/linda-liukas-programming-book-for-children-has-huge-first-day-on-kickstarter


Linda Liukas' Programming book for Children has Huge First Day on Kickstarter By Greg Anderson, January 23, 2014, Leave a Comment


It's been amazing so far," says Linda Liukas of the new programming book for children, Hello Ruby, which was put on Kickstarter this morning. "In 3.5 hours it reached its [$10,000] goal. Let's see what happens next."

The topic of coding education isn't new to her - on top of her early involvement in the Aalto entrepreneurship society, Liukas is a cofounder in Railsgirls, a global non-profit that has taught programming to tens of thousands of women in over 160 cities. Additionally she was one of the early Codeacademy employees where she worked as a community manager.

Liukas tells us that the Hello Ruby project got its roots three years ago when Railsgirls got started and they needed some illustrations for the web and their events. "I found when I had problems thinking about garbage collection, for example, I would draw Ruby. And then last September I decided I need to be a little more systematic and someone said, 'oh, you should do a Kickstarter.'"

At time of publishing, the book has now raised $16,283 with 29 days left to go.

The Hello Ruby book will be a 32 page hardcover that covers the traditional story of friendship, being different, and technology. Rather than an artsy how-to, the book will tell the story of Ruby, a small girl who visits castles and solves problems with wise penguins.

"We instinctively thick in narrative," says Liukas. "Instead of just giving kids iPad applications that react once, I think theres longer term value in this style."

Additionally the bundle will come with a workbook for parents to sit down with their kids and think about solving problems with general programming concepts like loops, lists conditionals, sequences, and variables. Rather than punishing kids for forgetting that semicolon, the book and workbook is more focused on getting kids thinking about solving problems and teaching basic programming concepts so that later they can apply them.

She promises on the Kickstarter that Hello Ruby will be shipped by August, but Liukas tells us that she recognizes everyone wants the book sooner than that. This is her first dive into the publishing world, so she promises to keep backers updated with how her progress is going. As you can see in the video below, she's kind a of a delightful person, so you might as well throw in the minimum $5 commitment just to hear how the publishing progress goes.

Based on the big initial response, Liukas tells us she might put up some milestone rewards for her backers. And perhaps later an iPad app later wouldn't be out of the question, but right now she's focused in Ruby's hardcover world.

You can find the project on Kickstarter.

Consider sharing this item with your network:

Donut math: how donut.c works -- a1k0n

$
0
0

Comments:"Donut math: how donut.c works -- a1k0n"

URL:http://www.a1k0n.net/2011/07/20/donut-math.html


There has been a sudden resurgence of interest in my "donut" code from 2006, and I’ve had a couple requests to explain this one. It’s been five years now, so it’s not exactly fresh in my memory, so I will reconstruct it from scratch, in great detail, and hopefully get approximately the same result.

This is the code and the output, animated in Javascript: toggle animation

 k;double sin()
 ,cos();main(){float A=
 0,B=0,i,j,z[1760];char b[
 1760];printf("\x1b[2J");for(;;
 ){memset(b,32,1760);memset(z,0,7040)
 ;for(j=0;6.28>j;j+=0.07)for(i=0;6.28>i;i+=0.02){float c=sin(i),d=cos(j),e=
 sin(A),f=sin(j),g=cos(A),h=d+2,D=1/(c*
 h*e+f*g+5),l=cos (i),m=cos(B),n=s\
in(B),t=c*h*g-f* e;int x=40+30*D*
(l*h*m-t*n),y= 12+15*D*(l*h*n
+t*m),o=x+80*y, N=8*((f*e-c*d*g
 )*m-c*d*e-f*g-l *d*n);if(22>y&&
 y>0&&x>0&&80>x&&D>z[o]){z[o]=D;;;b[o]=
 ".,-~:;=!*#$@"[N>0?N:0];}}/*#****!!-*/
 printf("\x1b[H");for(k=0;1761>k;k++)
 putchar(k%80?b[k]:10);A+=0.04;B+=
 0.02;}}/*****####*******!!=;:~
 ~::==!!!**********!!!==::-
 .,~~;;;========;;;:~-.
 ..,--------,*/

At its core, it’s a framebuffer and a Z-buffer into which I render pixels. Since it’s just rendering relatively low-resolution ASCII art, I massively cheat. All it does is plot pixels along the surface of the torus at fixed-angle increments, and does it densely enough that the final result looks solid. The “pixels” it plots are ASCII characters corresponding to the illumination value of the surface at each point: .,-~:;=!*#$@ from dimmest to brightest. No raytracing required.

So how do we do that? Well, let’s start with the basic math behind 3D perspective rendering. The following diagram is a side view of a person sitting in front of a screen, viewing a 3D object behind it.

To render a 3D object onto a 2D screen, we project each point (x,y,z) in 3D-space onto a plane located z’ units away from the viewer, so that the corresponding 2D position is (x’,y’). Since we’re looking from the side, we can only see the y and z axes, but the math works the same for the x axis (just pretend this is a top view instead). This projection is really easy to obtain: notice that the origin, the y-axis, and point (x,y,z) form a right triangle, and a similar right triangle is formed with (x’,y’,z’). Thus the relative proportions are maintained:

So to project a 3D coordinate to 2D, we scale a coordinate by the screen distance z’. Since z’ is a fixed constant, and not functionally a coordinate, let’s rename it to K1, so our projection equation becomes . We can choose K1 arbitrarily based on the field of view we want to show in our 2D window. For example, if we have a 100x100 window of pixels, then the view is centered at (50,50); and if we want to see an object which is 10 units wide in our 3D space, set back 5 units from the viewer, then K1 should be chosen so that the projection of the point x=10, z=5 is still on the screen with x’< 50: 10K1/5 < 50, or K1< 25.

When we’re plotting a bunch of points, we might end up plotting different points at the same (x’,y’) location but at different depths, so we maintain a z-buffer which stores the z coordinate of everything we draw. If we need to plot a location, we first check to see whether we’re plotting in front of what’s there already. It also helps to compute z-1 and use that when depth buffering because:

  • z-1 = 0 corresponds to infinite depth, so we can pre-initialize our z-buffer to 0 and have the background be infinitely far away
  • we can re-use z-1 when computing x’ and y’: Dividing once and multiplying by z-1 twice is cheaper than dividing by z twice.

Now, how do we draw a donut, AKA torus? Well, a torus is a solid of revolution, so one way to do it is to draw a 2D circle around some point in 3D space, and then rotate it around the central axis of the torus. Here is a cross-section through the center of a torus:

So we have a circle of radius R1 centered at point (R2,0,0), drawn on the xy-plane. We can draw this by sweeping an angle — let’s call it θ— from 0 to 2π:

Now we take that circle and rotate it around the y-axis by another angle — let’s call it φ. To rotate an arbitrary 3D point around one of the cardinal axes, the standard technique is to multiply by a rotation matrix. So if we take the previous points and rotate about the y-axis we get:

But wait: we also want the whole donut to spin around on at least two more axes for the animation. They were called A and B in the original code: it was a rotation about the x-axis by A and a rotation about the z-axis by B. This is a bit hairier, so I’m not even going write the result yet, but it’s a bunch of matrix multiplies.

Churning through the above gets us an (x,y,z) point on the surface of our torus, rotated around two axes, centered at the origin. To actually get screen coordinates, we need to:

  • Move the torus somewhere in front of the viewer (the viewer is at the origin) — so we just add some constant to z to move it backward.
  • Project from 3D onto our 2D screen.

So we have another constant to pick, call it K2, for the distance of the donut from the viewer, and our projection now looks like:

K1 and K2 can be tweaked together to change the field of view and flatten or exaggerate the depth of the object.

Now, we could implement a 3x3 matrix multiplication routine in our code and implement the above in a straightforward way. But if our goal is to shrink the code as much as possible, then every 0 in the matrices above is an opportunity for simplification. So let’s multiply it out. Churning through a bunch of algebra (thanks Mathematica!), the full result is:

Well, that looks pretty hideous, but we we can precompute some common subexpressions (e.g. all the sines and cosines, and ) and reuse them in the code. In fact I came up with a completely different factoring in the original code but that’s left as an exercise for the reader. (The original code also swaps the sines and cosines of A, effectively rotating by 90 degrees, so I guess my initial derivation was a bit different but that’s OK.)

Now we know where to put the pixel, but we still haven’t even considered which shade to plot. To calculate illumination, we need to know the surface normal— the direction perpendicular to the surface at each point. If we have that, then we can take the dot product of the surface normal with the light direction, which we can choose arbitrarily. That gives us the cosine of the angle between the light direction and the surface direction: If the dot product is >0, the surface is facing the light and if it’s <0, it faces away from the light. The higher the value, the more light falls on the surface.

The derivation of the surface normal direction turns out to be pretty much the same as our derivation of the point in space. We start with a point on a circle, rotate it around the torus’s central axis, and then make two more rotations. The surface normal of the point on the circle is fairly obvious: it’s the same as the point on a unit (radius=1) circle centered at the origin.

So our surface normal (Nx, Ny, Nz) is derived the same as above, except the point we start with is just (cos θ, sin θ, 0). Then we apply the same rotations:

So which lighting direction should we choose? How about we light up surfaces facing behind and above the viewer: . Technically this should be a normalized unit vector, and this vector has a magnitude of √2. That’s okay – we will compensate later. Therefore we compute the above (x,y,z), throw away the x and get our luminance L = y-z.

Again, not too pretty, but not terrible once we’ve precomputed all the sines and cosines.

So now all that’s left to do is to pick some values for R1, R2, K1, and K2. In the original donut code I chose R1=1 and R2=2, so it has the same geometry as my cross-section diagram above. K1 controls the scale, which depends on our pixel resolution and is in fact different for x and y in the ASCII animation. K2, the distance from the viewer to the donut, was chosen to be 5.

I’ve taken the above equations and written a quick and dirty canvas implementation here, just plotting the pixels and the lighting values from the equations above. The result is not exactly the same as the original as some of my rotations are in opposite directions or off by 90 degrees, but it is qualitatively doing the same thing.

Here it is: toggle animation

It’s slightly mind-bending because you can see right through the torus, but the math does work! Convert that to an ASCII rendering with z-buffering, and you’ve got yourself a clever little program.

Now, we have all the pieces, but how do we write the code? Roughly like this (some pseudocode liberties have been taken with 2D arrays):

const float theta_spacing = 0.07;
const float phi_spacing = 0.02;
const float R1 = 1;
const float R2 = 2;
const float K2 = 5;
// Calculate K1 based on screen size: the maximum x-distance occurs roughly at
// the edge of the torus, which is at x=R1+R2, z=0. we want that to be
// displaced 3/8ths of the width of the screen, which is 3/4th of the way from
// the center to the side of the screen.
// screen_width*3/8 = K1*(R1+R2)/(K2+0)
// screen_width*K2*3/(8*(R1+R2)) = K1
const float K1 = screen_width*K2*3/(8*(R1+R2));
render_frame(float A, float B) {
 // precompute sines and cosines of A and B
 float cosA = cos(A), sinA = sin(A);
 float cosB = cos(B), sinB = sin(B);
 char output[0..screen_width, 0..screen_height] = ' ';
 float zbuffer[0..screen_width, 0..screen_height] = 0;
 // theta goes around the cross-sectional circle of a torus
 for(float theta=0; theta < 2*pi; theta += theta_spacing) {
 // precompute sines and cosines of theta
 float costheta = cos(theta), sintheta = sin(theta);
 // phi goes around the center of revolution of a torus
 for(float phi=0; phi < 2*pi; phi += phi_spacing) {
 // precompute sines and cosines of phi
 float cosphi = cos(phi), sinphi = sin(phi);
 // the x,y coordinate of the circle, before revolving (factored out of the above equations)
 float circlex = R2 + R1*costheta;
 float circley = R1*sintheta;
 // final 3D (x,y,z) coordinate after rotations, directly from our math above
 float x = circlex*(cosB*cosphi + sinA*sinB*sinphi) - circley*cosA*sinB; 
 float y = circlex*(sinB*cosphi - sinA*cosB*sinphi) + circley*cosA*cosB;
 float z = K2 + cosA*circlex*sinphi + circley*sinA;
 float ooz = 1/z; // "one over z"
 // x and y projection. note that y is negated here, because y goes up in
 // 3D space but down on 2D displays.
 int xp = (int) (screen_width/2 + K1*ooz*x);
 int yp = (int) (screen_height/2 - K1*ooz*y);
 // calculate luminance. ugly, but correct.
 float L = cosphi*costheta*sinB - cosA*costheta*sinphi - sinA*sintheta + 
 cosB*(cosA*sintheta - costheta*sinA*sinphi);
 // L ranges from -sqrt(2) to +sqrt(2). If it's < 0, the surface is
 // pointing away from us, so we won't bother trying to plot it.
 if(L>0) {
 // test against the z-buffer. larger 1/z means the pixel is closer to
 // the viewer than what's already plotted.
 if(ooz > zbuffer[xp,yp]) {
 zbuffer[xp,yp] = ooz;
 int luminance_index = L*8; // this brings L into the range 0..11 (8*sqrt(2) = 11.3)
 // now we lookup the character corresponding to the luminance and plot it in our output:
 output[xp,yp] = ".,-~:;=!*#$@"[luminance_index];
 }
 }
 }
 }
 // now, dump output[] to the screen.
 // bring cursor to "home" location, in just about any currently-used terminal
 // emulation mode
 printf("\x1b[H");
 for(int j=0;j<screen_height;j++) {
 for(int i=0;i<screen_width;i++) {
 putchar(output[i,j]);
 }
 putchar('\n');
 }
}

The Javascript source for both the ASCII and canvas rendering is right here.

permalink | | a1k0n.net

#Emacs, naked

Lenovo Agrees to Buy IBM Server Business for $2.3 Billion

Another Google Privacy Flaw – Calendar Unexpectedly Leaks Private Information (Disclosed) ← Terence Eden's Blog

$
0
0

Comments:"Another Google Privacy Flaw – Calendar Unexpectedly Leaks Private Information (Disclosed) ← Terence Eden's Blog"

URL:http://shkspr.mobi/blog/2014/01/another-google-privacy-flaw/


My wife likes to set reminders for herself in Google Calendar.


Recently, she added a note to her personal Google Calendar reading "Email [email protected] to discuss pay rise" and set the date for a few months from now. She'd had a discussion with her boss, Alice, and they'd agreed to talk about salary later in the year.

A few moments later, Alice sent her a "Meeting Accepted" email.

What... The...?

Although pretty embarrassing, it could have been a lot worse. It could have been "Email [email protected] with excuse why we can't see her" or perhaps "Email [email protected] with divorce details" or even "Email [email protected] to demand red stapler back" or... well, you get the picture.

Luckily, my wife doesn't have a Google+ profile, so there was no information leak other than her email address (which wasn't "huggle.wuggle.2012" or anything daft like that!)

We've tried several times to recreate this behaviour. Here's what we discovered:

  • If you use Google Calendar on the web and put a Gmail address in the subject line, that user will have the event added to the calendar.
  • They will not receive an email notification - although they will get a "meeting reminder" pop-up.
  • Creating an event on an Android phone does not trigger a meeting request.
  • Some non-Gmail addresses will also see the meeting in their calendar - but others will not.
  • When you delete a calendar item, the "Cancellation" notification is emailed regardless of whether the user received the original invite.


We were unable to determine which non-Gmail addresses would receive the item in their calendar. Some which were hosted with Google didn't receive the pseudo-invitation. Some accounts hosted on Microsoft Exchange got the invite while others on seemingly similar systems didn't.

Here's a video showing it in action.

Note that when a user fills in the pop-up, Google Calendar asks for confirmation to send a meeting invite. When using the full interface, no warning whatsoever is given.

Impact

Google has tried to be clever here. It has failed. Just because I am talking about someone, it doesn't mean I am talking to someone.

There are two main risks here - the user could expose her private Gmail account and associated Google+ data, and she could also reveal her private thoughts and feelings.

Google really needs to work harder at protecting the privacy of its users.

Disclosure

This privacy issue was formally disclosed to Google on 6th January 2014.
On 22nd January, they responded by saying they didn't consider it a problem.

We reviewed your report. After careful consideration by our security team, we feel that the issue has minimal impact on the security of our users. Let us know if you believe that this determination may be incorrect. If you'd submitted your report as part of our reward program, this means it doesn't qualify for reward or credit. Thanks for your help!

As much as I'm disappointed not to be getting a $10,000 bug bounty, I'm more upset that Google repeatedly finds itself failing to keep its users' private information private.

Update: according to a comment on the HackerNews discussion - problems like this have been reported to Google as far back as 2010.

Like this:

LikeLoading...

My wife likes to set reminders for herself in Google Calendar. Recently, she added a note to her personal Google Calendar reading "Email [email protected] to discuss pay rise" and set...

Snowden Calls Russian-Spy Story 'Absurd' in Exclusive Interview : The New Yorker

$
0
0

Comments:"Snowden Calls Russian-Spy Story 'Absurd' in Exclusive Interview : The New Yorker"

URL:http://www.newyorker.com/online/blogs/newsdesk/2014/01/snowden-calls-russian-spy-story-absurd.html#entry-2000000002587790


Edward J. Snowden, the former National Security Agency contractor turned whistle-blower, strongly denies allegations made by members of Congress that he was acting as a spy, perhaps for a foreign power, when he took hundreds of thousands of classified U.S. government documents. Speaking from Moscow, where he is a fugitive from American justice, Snowden told The New Yorker, “This ‘Russian spy’ push is absurd.”

On NBC’s “Meet the Press,” Mike Rogers, a Republican congressman from Michigan who is the chairman of the House Intelligence Committee, described Snowden as a “thief, who we believe had some help.” The show’s host, David Gregory, interjected, “You think the Russians helped Ed Snowden?” Rogers replied that he believed it was neither “coincidence” nor “a gee-whiz luck event that he ended up in Moscow under the handling of the F.S.B.”

Snowden, in a rare interview that he conducted by encrypted means from Moscow, denied the allegations outright, stressing that he “clearly and unambiguously acted alone, with no assistance from anyone, much less a government.” He added, “It won’t stick…. Because it’s clearly false, and the American people are smarter than politicians think they are.”

If he were a Russian spy, Snowden asked, “Why Hong Kong?” And why, then, was he “stuck in the airport forever” when he reached Moscow? (He spent forty days in the transit zone of Sheremetyevo International Airport.) “Spies get treated better than that.”

In the nine months since Snowden first surfaced, there has been intense speculation about his motives and methods. But “a senior F.B.I. official said on Sunday that it was still the bureau’s conclusion that Mr. Snowden acted alone,” the New York Timesreported this weekend, adding that the agency has not publicly revealed any evidence that he was working in conjunction with any foreign intelligence agency or government. The issue is key to shaping the public’s perceptions of Snowden. Representative Rogers, on “Meet the Press,” went on to allege that “some of the things he did were beyond his technical capabilities. Raises more questions. How he arranged travel before he left. How he was ready to go—he had a ‘go bag,’ if you will.” Gregory then asked Senator Dianne Feinstein, a Democrat from California who chairs the Senate Intelligence Committee, and who was also a guest on the show, whether she agreed that Snowden may have had help from the Russians. She did not dismiss the notion. “He may well have,” she said. “We don’t know at this stage.” On CBS’s “Face the Nation,” Rogers made similar allegations, saying, “This wasn’t a random smash and grab, run down the road, end up in China, the bastion of Internet freedom, and then Russia, of course, the bastion of Internet freedom.”

Asked today to elaborate on his reasons for alleging that Snowden “had help,” Rogers, through a press aide, declined to comment.

An aide to Feinstein, meanwhile, stressed that she did no more than ask questions. “Senator Feinstein said, ‘We don’t know at this stage.’ In light of the comments from Chairman Rogers, it is reasonable for Senator Feinstein to say that we should find out.”

Some observers, looking at the possibility that Snowden was in league with the Russian government before taking asylum there, have pointed to a report in a Russian newspaper, Kommersant, that before leaving Hong Kong last June Snowden stayed at the Russian Consulate. Snowden’s legal adviser, Ben Wizner, a lawyer with the American Civil Liberties Union, denied that report, however, saying, “Every news organization in the world has been trying to confirm that story. They haven’t been able to, because it’s false.”

Snowden told me that having a go bag packed—something that Rogers described as highly suspicious—reflected his work deployed overseas for the C.I.A. He’d had “a go bag packed since 2007. It’s not an exotic practice for people who have lived undercover on government orders,” Snowden said.

“It’s not the smears that mystify me,” Snowden told me. “It’s that outlets report statements that the speakers themselves admit are sheer speculation.” Snowden went on to poke fun at the range of allegations that have been made against him in the media without intelligence officials providing some kind of factual basis: “ ‘We don’t know if he had help from aliens.’ ‘You know, I have serious questions about whether he really exists.’ ”

Snowden went on, “It’s just amazing that these massive media institutions don’t have any sort of editorial position on this. I mean, these are pretty serious allegations, you know?” He continued, “The media has a major role to play in American society, and they’re really abdicating their responsibility to hold power to account.”

Asked about this, George Stephanopoulos, the host of ABC’s “This Week,” defended the coverage. Stephanopoulos pointed out that when the congressman Michael McCaul, a Texas Republican and the chairman of the House Homeland Security Committee, alleged that Snowden was “cultivated by a foreign power” and “helped by others,” Stephanopoulos pressed him for details, twice. “I did two follow-ups,” Stephanopoulos said, “and got as much as the congressman was going to give up.”

From Moscow, Snowden explained that “Russia was never intended” to be his place of asylum, but he “was stopped en route.” He said, “I was only transiting through Russia. I was ticketed for onward travel via Havana—a planeload of reporters documented the seat I was supposed to be in—but the State Department decided they wanted me in Moscow, and cancelled my passport.”

As for why he remains there, he said, “When we were talking about possibilities for asylum in Latin America, the United States forced down the Bolivian President’s plane.” If he could travel without U.S. interference, “I would of course do so.”

Snowden was adamant that he wants to help, not hurt, the United States. “Due to extraordinary planning involved, in nine months no one has credibly shown any harm to national security” from the revelations, he said, “nor any ill intent.” Moreover, he pointed out that “the President himself admitted both that changes are necessary and that he is certain the debate my actions started will make us stronger.”

“If any individual who objects to government policy can take it into their own hands to publicly disclose classified information, then we will not be able to keep our people safe, or conduct foreign policy,” Obama said on Friday. “Moreover, the sensational way in which these disclosures have come out has often shed more heat than light, while revealing methods to our adversaries that could impact our operations in ways that we may not fully understand for years to come.” And Obama told David Remnick, in an interview for The New Yorker, that the leaks “put people at risk” and that, in his view, the benefit of the debate Snowden generated “was not worth the damage done, because there was another way of doing it.”

In the end, Snowden said that he “knew what he was getting into” when he became a whistle-blower. “At least the American public has a seat at the table now,” he said. “It may sound trite,” but if “I end up disgraced in a ditch somewhere, but it helps the country, it will still be worth it.”

Photograph by Barton Gellman/Getty.

'Google outed me' | ZDNet

$
0
0

Comments:"'Google outed me' | ZDNet"

URL:http://www.zdnet.com/google-outed-me-7000025416/


If you haven't heard about it by now, last Wednesday, ESPN's Grantland website published an article called Dr. V’s Magical Putter by Caleb Hannan. It was supposed to be a profile about a golf club, but instead its purpose - and dramatic climax - was to out the club's inventor as transgender.

The inventor’s name was Dr. Essay Anne Vanderbilt. She had agreed to be the subject of the story reluctantly, and only if Hannan wrote about "the science, not the scientist."

As Hannan investigated Vanderbilt, he found out that her academic background didn't add up, and he also learned that she was transgender.

Upon learning this, Hannan told her he was going to break the agreement not to write about her personal life and reveal her transgender status without her consent. He then outed her as transgender to her investors and colleagues, and went forward with an article that was intended to out her online, and to the world.

After being outed to her colleagues, and before the article was published, Dr. Essay Anne Vanderbilt killed herself.

It reminded me about another transgender woman who was recently outed without her consent - by Google Plus.

A woman was using her old (male) name at work, and when her Android phone updated to KitKat - with Google+ integrating chat and SMS into "hangouts" - this is what happened when she texted a coworker:

(ICYMI earlier: KitKat did indeed out me to a coworker. I am freaking out.) — Erika Sorensen (@eiridescent) January 3, 2014 Somehow I didn't think through the potential consequences of Google+ embedding itself ever deeper into stock Android stuff — Erika Sorensen (@eiridescent) January 3, 2014

Google's response was that her outing was "user error" - Google blamed her, the user for not understanding the new, confusing integration.

ESPN Grantland editor Bill Simmons issued a 2,700-word statement where he lamented twice for failing his writer Hannan, but never once expressed concern for failing Ms. Vanderbilt.

One could argue that ESPN may not have caused Ms. Vanderbilt's suicide, but its actions in outing her have been acknowledged by ESPN itself and the general public as having played an active, key role in her death.

(Grantland founder Bill Simmons has since posted a letter to his readers apologizing for outing her saying, "I don’t think [Hannan] understood the moral consequences of that decision, and frankly, neither did anyone working for Grantland."

Vanderbilt did not want to be out. She wanted to blend in. And though some have been quick to point out that her world would have crumbled had she not been outed as trans, but simply found out as having made up her credentials - those people aren't familiar with the world of sports entrepreneurialism.

Vanderbilt would have merely joined the ranks of sports entrepreneurs who got caught changing their background. Michael Vick, Kevin Hart, Tim Johnson, Nick Saban, Miguel Tijada, Manti Te'o, Rosie Ruiz and George O'Leary are just a few.

And like the people in that list, Vanderbilt would have been busted but if her product or performance was great on its own merit, she would have recovered.

Instead, she was outed as a transgender woman to someone she works with, and before she was to be outed to the world, rather than go through this hell all over again, she took her own life.

Really pissed right now. Fucking Google. I was NOT ready to tell any of my coworkers yet. — Erika Sorensen (@eiridescent) January 3, 2014 I'm just glad I live in a state where it'd be illegal to fire me. — Erika Sorensen (@eiridescent) January 3, 2014

Since the release of the latest mobile software Android 4.4, codenamed KitKat, the instant messaging app Hangouts has become the default text-messaging app on phones and tablets running with the newly installed operating system.

But Sorenson wasn't the only transgender person made unsafe by Google+ in Google's ruthless objective to use Android for reorganizing peoples' lives to suit Google's bottom line.

Four days later on January 7, transgender Android user Zoe posted to Google Product Forums > Hangouts that she now needed to change her name and gender display. She did not receive a response.

The same day (and While Ms. Sorensen was waiting fretfully for her employer's HR person to return to work) Android user Nora posted "Legal name instead of actual desired/registered name shows up in Hangout History" to Google Product Forums > Google Chat:

I'm transgender... this account was registered using my preferred name, Nora, but when I look at hangout histories, certain locations on my android phone, and a few other places, I see my legal name popping up instead. I don't remember actually giving this detail to Google, nor can I find anywhere within the settings where anything other than "Nora" is listed... I don't know how many other people can see me listed as such, but it's really kind of unpleasant and outing, and a bit triggering really... There're trans ppl for whom this tech flaw would get them fired, w/cascading consequences. There're trans youth who'd be outed to parents. — Erika Sorensen (@eiridescent) January 9, 2014 Many trans ppl lose everything or nearly so when they come out. This could've been utterly disastrous. — Erika Sorensen (@eiridescent) January 9, 2014

The issue with identity and Google+ Hangouts overwriting people's Gmail and SMS contacts has been trans-unfriendly since its rollout. One woman worried about the privacy of her transgender sister's identity wrote in Google's Forums (Gmail),

My sister is transgendered and has yet to legally switch to female, and because of this has yet to change her name on her Google+ since she has professional contacts on her page. (...) Now that I have used the video chat option on Hangouts, everything is reverting back to her old name.

She did not receive a response.

After Google called Erika Sorensen's outing "user error" writer Lexi Cannes commented on the matter January 8, saying "Google is facing increased complaints that they are dismissive of privacy errors triggered by upgrades and other changes. Transgender issues with Google began the day Google+ was launched."

In my eyes, finding this distraught post from a Google+ user one month after Plus launched brought Cannes' comments and Ms. Vanderbilt's suicide full circle:

I am FTM transgender, and outside of this channel (which is meant to be detached from my personal, real-life acquaintances) I have not come out yet. [the way FTM people are treated when they come out] sickens me and has pushed me farther and farther into the closet to the point where I fear I will not be able to get out before I end up killing myself out of stress. When I opened up my youtube page today, I was greeted by my birth name, the one that people know and call me by in my outside life, attached to the google+ connection bar just under my profile picture. (...) I frantically searched through the google+ page and the youtube settings and found no option to remove connections. Eventually, I was forced to delete my entire google+ account, hoping that would at least remove my legal name from my home page... But it DIDN'T. My youtube home page still displays that information loud and clear, even though I DE-ACTIVATED MY ACCOUNT. This does not make me feel safe. I feel like my personal privacy as a human being has been stolen from me. So please, if anyone can tell me how to permanently remove google+ and facebook connections from the new page, it would mean so much to me. I want to be a part of a safe community.

This, Ms. Vanderbilt might have said. What he said.

Still. Ever-shrinking privacy, "real name" policies, etc. aren't just abstract civil liberties issues. Trans ppl disproportionately harmed. — Erika Sorensen (@eiridescent) January 3, 2014

On some level, I want to imagine that Google will fix this.

I don't want to think that controlling our own identities doesn't matter to Google; or it's as if to Google we are the faulty parts of its machine. Or we are Google Plus with a body vaguely attached. Or to Google, the problems are our own faults, and any calls for respect or privacy in a painful world are just annoying to Google, which has better things to do, like terrify us with the privacy nightmare of Google Glass and making bulk data consolidators' jobs of cataloging our personally identifying information easier.

Commenting on Dr. V’s Magical Putter, writer Max Potter was quoted on Nieman Storyboard saying,

I think that piece is emblematic of so much of what I think is wrong with what’s happening in journalism today. We’ve got journalism and journalists struggling more than ever before to make a name and a living, and thereby more and more pressure on landing an amazing story. We’ve got less and less staff and experience, fewer and fewer “adults” around, more and more talented kids desperate to make a name and very little mentoring. And, seems to me, we still have this (white) male dominated journalism elite, with their myopic, pseudo-macho ideas of what truth and the pursuit of it means. And … this is what we get.

If this is what we get, then Google's little Plus project is a loaded gun pointed right at anyone whose privacy is what keeps them alive.

ZDNet has emailed Google for comment and will update this article if it responds.


Tarkovsky Films Now Free Online | Open Culture

$
0
0

Comments:"Tarkovsky Films Now Free Online | Open Culture"

URL:http://www.openculture.com/2010/07/tarkovksy.html


Andrei Tarkovsky (1932-1986) firmly positioned himself as the finest Soviet director of the post-War period. But his influence extended well beyond the Soviet Union.  The Cahiers du cinéma consistently ranked his films on their top ten annual lists. Ingmar Bergman went so far as to say, “Tarkovsky for me is the greatest [director], the one who invented a new language, true to the nature of film, as it captures life as a reflection, life as a dream.” And Akira Kurosawa acknowledged his influence too, adding, “I love all of Tarkovsky’s films. I love his personality and all his works. Every cut from his films is a marvelous image in itself.”

Shot between 1962 and 1986, Tarkovsky’s seven feature films often grapple with metaphysical and spiritual themes, using a distinctive cinematic style. Long takes, slow pacing and metaphorical imagery – they all figure into the archetypical Tarkovsky film. (Watch the scene from Stalker above.)

You can now watch Tarkovsky’s films online – for free. Each film is listed in our collection of Free Online Movies, but here you can access each major film in the order in which they were made. Most all of the films below were placed online by Mosfilm, the largest and oldest studion in Russia.

NOTE: if you access the films via YouTube, be sure to click “CC” at the bottom of the videos to access the subtitles.

Don’t forget to follow us on Twitter, Facebook and now Google+, and add a pinch of culture to your daily social media diet.

Related Content:

The Masterful Polaroid Pictures Taken by Filmmaker Andrei Tarkovsky

Tarkovsky’s Advice to Young Filmmakers: Sacrifice Yourself for Cinema

A Poet in Cinema: Andrei Tarkovsky Reveals the Director’s Deep Thoughts on Filmmaking and Life


Killing the Crunch Mode Antipattern - Chad Fowler

Watchdog Report Says N.S.A. Program Is Illegal and Should End

Reverse Engineering Strike Commander

$
0
0

Comments:"Reverse Engineering Strike Commander"

URL:http://fabiensanglard.net/reverse_engineering_strike_commander/index.php


Jan 22th, 2014

I love you Hoi-En.

Back in the early 90s, one company was on the bleeding edge of PC gaming: Origin Systems. Their motto was "We Create Worlds" and boy did they deliver: With the Ultima series, Crusader series andWing Commander series, they consistently took gamer's breath away.

One of them took four years and more than a million man hours to complete: Strike Commander. The famous flight simulator had its own 3D engine called RealSpace which pioneered many of what we take for granted today: Texture Mapping, Gouraud Shading, Level of Details and Dithered colors.

My old dream was to play the game with a Virtual Reality device. With the Oculus Rift that fantasy came one step closer to reality. But when it turned out the source code had been lost and would never be released, I decided to reverse engineer it.

As of the publication of this article, the project is not yet completed but I want to share the techniques that have so far allowed this :

to become that :

... and maybe inspire some people to join the adventure.

TABLE OF CONTENT :

Part 1: Introduction
Part 2: Game Architecture
Part 3: Reverse Engineer Assets
Part 4: Play the game again
Part 5: Oculus Rift

Before Strike Commander

Early 90s flight simulators were good but like Falcon 3.0 or Flight simulator 4.0 they focused mostly on accurate flying models than beautiful rendition :

There were many fight simulator on the market and few people noticed the 1990 Origin Systems announcement for a new game. But things changed after Chicago CES 1991 where a demo could be seen in action : Nobody could believe the game could feature things only seen in military flight simulator so far: Texture Mapping, Gouraud Shading, Haze and more. Screenshots demonstrated a technology far ahead any competitors :

After 1991 the game became highly anticipated. Not only the engine was gorgeous and the story captivating, RealSpace also supported exceptional hardware out of the box: The very expensive and fragile accessories that every flight simulator enthusiast wanted were the THRUSTMASTER WEAPON CONTROL SYSTEM and the THRUSTMASTER FLIGHT CONTROL SYSTEM:

And you could even connect the THRUSTMASTER RUDDER:

Still, there was more: The game also supported a Virtual Cockpit. The 4-way 'hat switch' on the ThrustMaster allowing to move the pilot's head and follow ground objects/enemy jets without the need for a Virtual Reality HeadSet :

1993: First Contact

The game and its 3D engine were mind blowing but required an impossibly powerful machine :

  • IBM PC 486-DX2 66Mhz
  • 4MB RAM
  • 38MB mandatory installation
  • Game comes on 11 x 1.44MB floppy disks.

Adjusted to today technological inflation the recommended configuration would be :

  • 8 Cores CPU with 16 GB of RAM.
  • Dual Nvidia Titan GPUs.
  • Mandatory install of 1000 GB.
  • Game comes on five BluRays.

And purchasing the game was not enough, you also had to survive the installation ! Upon opening the box you would be faced with 8 floppy disks ( +3 for the Speech Pack):

Trivia : Notice the poster announcing a Christmas 1991 release. The game would not be completed until 1993 after a long process that Chris Robert labeled "The Apocalypse Now of computer games".

Decompressing the game from floppies to hard-drive and swapping the 13 flopping disk took a good 30 minutes. And when you thought you were done, the game proceeded to generate all the maps. The size of the game would blow up from 24MB to 38MB: Four times the size of any game back them.

Trivia : A map was generated from a single "seed" (an integer number) that was injected in a pseudo-random numbers generation algorithm. This was a clever technique that avoided shipping data by generating the map after installation. If you are curious about this technique, go read The Backroom Boys and the chapter about Frontier Elite game.

The maps generation step took ONE hour on a 386 PC. But Origin Systems had the good idea to ship with the box a superb 100 pages magazine set in the dystopian 2012 world of the game. Sudden Death made the entire process less painful ( notice the fake advertisement on page 38 promising the release of Strike Commander for Christmas 2013).

Strike Commander !

Finally after all those steps, players were able to enjoy the game....in April 1993 ! Despite being 2 years late, the game was everything Origin promised and it sold very well. Many spent nights after nights dogfighting even if for most what was supposed to look like this :

...ended up looking like that on minimum settings :

Overall the game was enough to captivate pilots and generate fond memories.

The Lost Source Code

With the Oculus Rift release, my interest in Strike Commander peaked again: The hardware was ready. Since it was a 20 years old game, I expected the source code to have been released but I quickly found out the sad story of Origin Systems decline.

Origin Systems was acquired by Electronic Arts in September 1992 and all projects were canceled circa 1999 following poor sales of Ultima 9. The company was to refocus on an other field they pioneered: MMORPG Ultima Online. Most people assume the source codes and gold versions of all finished games were stored in a Vault somewhere at EA. But after getting in touch with people at Wing Commander CIC, it appeared that all the source code was lost when the company closed.

It is something hard to believe today but back then developers and companies were more focused on the next title instead of preserving "old things", there was not nostalgia factor, no huge fan base and no market like Good Old Games today. Many stories could illustrate how "primitive" source control was but the best is probably the "ZAP SC" story at 15m14s :


On his first day one developer managed to delete the full 900MB of Strike Commander source tree. The IT team spent 72 hours recovering everything from developers machines. The interview also mention that Wing Commander 1 and 2 code was exchanged via floppy disks: They did not have a network until SC !

Trivia : In a surprising turn of event, some of the source code re-emerged recently via ex-Origin developers: Wing Commander CIC maintains an off-line archive which features the source codes of Wing Commander IWing Commander III and people working on Ultima 8 were offered (but turned down) the source code of "Ultima 8: Pagan" by an anonymous source. As for Strike Commander, I have never heard of someone having it.

Reverse Engineering: Can it be done ?

Over the years many teams had done work on Origin Systems game and reached great results:

How long and how hard would it be ? After chatting with Gregory Montoir who did most of the reverse engineer on Another World I learned that working one hour per evening allowed to reverse 10KB of assembly to C each month. There are many executable in Strike Commander and the initial discouraging time estimate was :

 INSTALL.EXE 7,793 bytes : 2 weeks
 MKTERR.EXE 203,744 bytes : 1.5 years
 SC.EXE 20,000 bytes : 1 month
 MKGAME.EXE 131,696 bytes : 1 year
 OPTTEST.EXE 870,528 bytes : 7 years
 STRIKE.EXE 746,304 bytes : 6 years
 =============================================
 15 years, 7 months and 2 weeks. Ouch.

That was upsetting: If someone had started back in 1993 then he would have finished six years ago and I would just have had to git clone it :( ! But after starting up IDA and taking a quick look it turned out that not all of it would have to be reverse engineered: The 3D engine is fully contained within STRIKE.EXE and a small team could do it in a reasonable amount of time.

Road Map

The road-map I initially drew in order to reverse engineer Strike Commander was as follow :

Gather as much documentation as possible. Understand the Global Architecture of Strike Commander. Reverse-Engineer the Game Assets. Document step 3 and extrapolate (Visual Surface Determination method, Level Of Detail, ...) Re-implement the 3D engine and build NEO_STRIKE.EXE Add support for VR device Oculus Rift.

And then I got busy.

Next

Architecture and Documentation


Add a comment

Comments (0)


 

@2014

Django 1.7 alpha 1 released | Weblog | Django

$
0
0

Comments:"Django 1.7 alpha 1 released | Weblog | Django"

URL:https://www.djangoproject.com/weblog/2014/jan/22/django-17-alpha-1-released/


As part of the Django 1.7 release process, today we've released Django 1.7 alpha 1, a preview/testing package that represents the first stage in the 1.7 release cycle and an opportunity for you to try out some of the changes coming in Django 1.7.

Django 1.7 will bring several major new features to Django, along with a host of other improvements. Highlights include a schema-migration framework, a new validation tool to help identify and fix common errors, a complete refactoring of how Django identifies and loads applications, and support for custom database lookups.

For full details, see the in-development 1.7 release notes.

As with all alpha and beta packages, this is not for production use. But if you'd like to take some of the new features for a spin, or to help find and fix bugs (which should be reported to the issue tracker), you can grab a copy of the alpha package from our downloads page. And as always, signed MD5 and SHA1 checksums of the 1.7 alpha package are available.

In addition to the changes covered in the release notes, there are two already-noted issues to be aware of when using the 1.7 alpha package:

  • Issue #21856 -- an empty value for the DATABASES setting will cause a crash.
  • Issue #21831 -- using the contenttypes package or GenericForeignKey will fail unless django.contrib.auth is in INSTALLED_APPS.

Both of these will be fixed prior to the final 1.7 release.

Additionally, users of South (a popular third-party package for schema migrations) should note that South is not compatible with the 1.7 alpha.

Posted by James Bennett on January 22, 2014

Viewing all 9433 articles
Browse latest View live