text:
The notorious animated film Titan A.E. wasn't even supposed to be animated
The last film by Fox Animation renders sci-fi tropes with spectacular art
By Petrana Radulovic Aug 19, 2020, 10:30am EDT
Graphic: James Bareham/Polygon
If you buy something from a Polygon link, Vox Media may earn a commission. See our ethics statement.
Share All sharing options for: The notorious animated film Titan A.E. wasn't even supposed to be animated
Your favorite childhood movie might've been a total box-office dud. The animated movies that defined the late '90s and early 2000s are beloved by a generation that grew up watching them on VHS, but many of these nostalgic favorites were critical failures, box-office disappointments, or both. What went wrong along the way? And why did they gain such love after the fact? The Beloved Animated Failures series is out to dust off those old VHS tapes (or, more accurately, find the movies on streaming) and examine some of these films.
Like so many other studios in the 1990s, 20th Century Fox wanted in on the box-office gold rush around the Disney Renaissance. Unfortunately, the studio started bringing feature animation to theaters too late, right at the point where Disney itself was facing diminishing returns from its animated musicals. After distributing a few animated films produced by outside studios, Fox partnered with former Disney animators Don Bluth and Gary Goldman. Back in the mid-'80s, Bluth and Goldman's Sullivan Bluth Studios had given Disney a run for its money with movies like An American Tail and The Land Before Time.
While Fox Animation's first theatrical feature, Anastasia, paralleled the Disney formula with its big show-stopping musical numbers and coming-of-age story centered around a plucky heroine, its next film, the hard sci-fi action story Titan A.E., spun in the complete opposite direction. Just a few weeks after the film hit theaters to middling reviews and poor box-office returns, Fox Animation shuttered its operations. And yet, while Titan A.E. was much maligned for leaning too hard on overused science-fiction tropes, it was the first taste of grandiose space adventure for younger audiences, and it earned a special place in a lot of childhood memories.
Image: Fox Animation
Directors: Don Bluth and Gary Goldman
Production budget: $75-90 million
Worldwide box office: $36.8 million
Rotten Tomatoes score: 51%
What it's about
In the distant future, Earth has been destroyed by a mysterious alien race called the Drej, and humans are dispersed across the galaxy. Salvage-yard worker Cale (Matt Damon) learns from spaceship pilot Korso (Bill Pullman) that the ring Cale inherited from his late father reveals the location of a mysterious project designed to save humanity. Cale joins Korso and his team to find Project Titan, the Drej hot on their trail.
A little backstory…
Here's the thing about Titan A.E.: it wasn't supposed to be an animated movie, let alone an animated Don Bluth movie.
While floating around development at 20th Century Fox, the film was originally conceived as a live-action feature. A few screenwriters and directors tried to make it work, including The Tick creator Ben Edlund, but it never took off. According to Gary Goldman in an interview with Animation World, Fox Filmed Entertainment Chairman and CEO Bill Mechanic thought the film might look good in CG. After finishing up work on the direct-to-video Anastasia spinoff Bartok the Magnificent, the burgeoning Fox Animation department had no current project in the works, so Titan A.E. landed in its hands.
Screenwriter John August (Go, Big Fish) came aboard the project in February 1998, hired to polish the dialogue, but he ended up sticking around for a few weeks longer to work on the story. Though the project had already transitioned to an animated feature, he says, the studio was still trying to figure out what type of animation it would be.
"Even over the four to six weeks that I was on board the project, we went from being all traditional animation to completely CG, sort of like Ice Age animation, to the hybrid that it became," August told Polygon in a recent interview about the film. As a writer, that didn't affect his work much, but he recounts an interesting tidbit about the process: "I would get these notes […] saying, 'Oh, okay, so characters can be underwater, but they can't be wet.'"
Titan A.E. isn't the only animated sci-fi movie to miss the mark
How a crisis in animation doomed The Iron Giant — and made it a classic
Bluth and Goldman had yet to come on the project at that point. August can't recall the director on board at the time, but he says he met with Ice Age director Chris Wedge to discuss the movie. The development process felt more like he was working on a live-action project than an animated one, particularly because the studio had no idea how the final film would look. While animated features tend to have a lot of back-and-forth between screenwriters and storyboarders, live-action movies tend to be more linear: write the script, shoot the scene, edit the movie.
"I was writing that script in a vacuum," says August. "It was like I was doing a rewrite on a live-action feature. I wasn't thinking about the animation on a daily basis."
Goldman and Bluth joined the project sometime after August departed. Joss Whedon finalized the script further. Neither Goldman or Bluth had ever worked on a science-fiction movie before, but they took on the project regardless. Fox really wanted Titan A.E. to appeal to a young adult male demographic, citing Star Wars as a reference point.
The studio finally solidified that the movie's animation style would be a hybrid of CGI and traditional animation. With directors on board, a look set, and a script finalized, Titan A.E. was ready to take flight.
Unfortunately, Fox Animation went through a massive downsizing in 1999, with more than 300 staff members laid off. The entire studio shuttered in 2000, just a few weeks after Titan A.E. came out. The movie was finished at a handful of other studios, including Blue Sky Studios, which went on to make Ice Age two years down the line. Because Fox Animation was basically running on a skeleton crew during post-production, Bluth said at a 2010 AnimationNation special event that much of the film's promotion and distribution was halted.
Even without production woes, Titan A.E. is a tricky movie to love. In previous iterations of this series, we've looked at the split in genre in this era of animation, with some films leaning sharply in the comedic direction, and others delving into sci-fi and action. Titan A.E. is firmly in the latter category, even more so than Treasure Planet or The Iron Giant: it's dark and gritty, and the directors take the story very seriously. While Treasure Planet, The Iron Giant, and Atlantis: The Lost Empire still felt similar in scope and message of the sweeping fantasies that defined the Disney Renaissance, Titan A.E. is a hard science-fiction movie, using animation as a medium rather than a genre. While that doesn't necessarily spell box-office doom, the American mindset then (and to this day) associates Western animation with a family-friendly tone and story.
"I'd say it's not a 'mother friendly' movie. Although we haven't left the mothers and children out," Goldman told Animation World magazine in 2000. "There is some swearing, some sexual innuendo, it's intense … there's a lot of violence. I don't think anybody under 8 years old should see this film."
Fox Animation's previous theatrical movie, Anastasia, basically follows the Disney formula closely as possible, and it did decently at the box office, earning $140 million from a $50 million budget — Don Bluth's first financially successful film since 1989's All Dogs Go to Heaven. (For context, Hercules, which came out the same year, was considered a middling success at Disney, making $252 million from an $85 million budget) . But within the three years between Anastasia and Titan A.E., audience tastes shifted, Disney began to rethink its own formula, and other studios took a crack at it too. Titan A.E. swung too hard in the opposite direction, with the very specific goal of being edgy and cool enough to target 12- to 17-year-old boys. That, unfortunately, jarred too sharply with audience expectations, even as audiences tried to figure out what they wanted next.
Why we love it today
Titan A.E. came out to mixed reception from critics, who called it a hodge-podge of other science-fiction movies. But one response was near-universal: it looked great.
In fact, it looks so good that it's easy to wonder why more science fiction isn't animated. Unlike 2002's Treasure Planet, which reimagines space travel, Titan A.E. sticks to a tried-and-true expectation of how we imagine humanity will take to the stars. The locations — especially the space stations, like the junkyard where Cale works at the beginning of the movie, and New Bangkok, where dispersed human drifters have built a colony — feel lifted from media like Star Trek: Deep Space Nine and Babylon 5. But instead of being rendered with clunky setpieces and special effects that don't hold up after 20 years, Titan A.E.'s animation still seems fresh, and the planets, ships, and space scenes look dynamic and captivating.
One of the most breathtaking moments of the movie happens when Cale and pilot Akima (Drew Barrymore) navigate through a planet's icy rings, Korso and his team on their tail. It's a tense, tight chase scene, as Akima steers the ship through floating blocks of ice, and each ship's reflection confuses the other. It never would have looked as good in live action. The only CG of the movie that does sharply seem out of place are the Drej, the aliens bent on exterminating humans. But because they're beings made of pure energy, designed to be mechanical and lifeless compared to organic humans, their jarring designs work with the overall threat of the movie, as they want to wipe out humanity.
Neither Bluth nor Goldman had worked on a science-fiction movie before, so while many of the ship locations and human character designs look on-par for space movies set in the future, like The Fifth Element and Total Recall, a lot of the alien species and planets instead look on-par for Bluth and Goldman's previous animated films. Cale and the team land on a mysterious planet where the alien creatures resemble giant bats, almost plucked right out of the duo's 1982 movie The Secret of Nimh.
Most of Titan A.E.'s 94-minute runtime is just the characters getting from one place to another, showing off spectacular setpieces, like a planet covered in a rusty-red liquid, with large hydrogen trees made up of orbs that float, and later explode. The plot isn't particularly groundbreaking, and the characters aren't particularly original. But while they're a bit cliché for science fiction, they are striking when it comes to mainstream Western animation. Following more adult characters and dealing with the possible end of humanity, as mankind struggles to find its way in the vast expanse of outer space, is a far cry from the usual Disney musicals, centered on teenagers journeying toward self-acceptance and romance.
Certainly among the biggest critiques of Titan A.E. was the fact that many of the plot points, story elements, and characters seemed lifted from science-fiction staples like Star Trek and Battlestar Galactica. But Titan A.E. was also the first encounter with the genre for a lot of kids, the first taste of spaceship chase sequences, the destruction of planet Earth, and humanity venturing into the great beyond. The tropes don't play out as cliché for young viewers experiencing them for the first time: instead, they're fantastical, daring, and cool — the exact takeaway that Fox Animation aimed for back when the movie was in development. It just took a little extra time — and the studio folding — for that to stick.
Titan A.E. is available to rent on Amazon Prime.
Beloved Animated Failures
'We're going to hide it': How Lilo & Stitch succeeded by staying off Disney's radar
Treasure Planet was the rebellious, visionary Disney movie that didn't pay off


text:
Q: .htaccess breaking css when executing the internal redirect i have the following code
Options +FollowSymLinks -MultiViews

RewriteEngine On

RewriteRule ^releases/([a-z]*)/$ releases.php?go=$1 [NC,L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(.*)$ $1.php?%1 [NC,L,QSA]

The way i access this is
domain.com/subdir/releases/data

This how ever gets the redirect done but it breaks all the css images js etc.
Could anyone suggest an alternate. Thnx
and i want to include the condition to check if file is releases.php
RewriteCond %{REQUEST_FILENAME} ^/releases/(.*)$

would that work ? thnx

A: I suspect you are using relative paths. When doing rewrites I also suggest to use absolute URLs for js/css/images. I use absolute paths anyway but especially when using rewrites.
Use the full document path or use / in front of the files.
So if you have something like
<script src="yourscripts.js" type="text/javascript"></script>

Change it to this
<script src="/yourscripts.js" type="text/javascript"></script>

Or just use the full path to the file and that would work too.

redpajama_set_name: RedPajamaStackExchange


text:
Q: High values of innodb_lock_wait_timeout on Mysql we're trying to get some statistics over our large log tables on MySQL. Some select queries are taking too long to complete and causing exceptions as;
Caused by: java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction
This is causing our whole application to stop serving with the same error. After some research we decided to change 'innodb_lock_wait_timeout' variable of our MySQL server configuration.
But, What are the drawbacks of this configuration change?

A: I am not sure this applies to your issue, but your question is something I have dealt with a while ago. I found out that on my system the locks were not needed and were related to queries like CREATE TABLE AS SELECT * FROM table_x... which apparently lock all records in table_x even in InooDB.
The solution was to set the global parameter innodb_locks_unsafe_for_binlog to true (in my.cnf add the line innodb_locks_unsafe_for_binlog=1). Which changes the way InnoDB locks records.
Here is some documentation about it. It really saved my application from those unexpected locks.

A: As load increases, you'll need an even longer timeout. The drawbacks will be a risk of ever increasing maximum query times for other client queries. You need to look into this, I would suggest using the linux tool mytop to find the long running queries then do an EXPLAIN on them to see how the locks are being used. Restructure your data and/or query to lock less.
Finally, MariaDB (a fork of MySQL) has a lot of focus on reducing the amount of locks needed for operations, so moving to that may help you also.


Moringa Powder (Sahjan, Drumstick) Containing over 90 Nutrients, 46 Antioxidants and Abundant Minerals, Moringa is often used to combat lack of proper nutrition in impoverished countries. Moringa leaves, often eaten as a vegetable, contain such a potent profile of Important Minerals, trace minerals,Protein, Vitamins, Beta-Carotene, Vitamin C, all essential amino acids and various phenolics including quercetin and kaempferol that it truly qualifies for the title: Superfood. Its Antioxidant polyphenols detox and protect the liver, boost immunity via several mechanisms, and support healthy blood sugar and lipids.


text:
Jersey City, New Jersey (U.S.)
Keywords: jersey city | new jersey | hudson county |
2:3 image(s) by permission of David B. Martucci
image(s) from American City Flags, Raven 9-10 (2002-2003), courtesy of the North American Vexillological Association, which retains copyright.
Current Flag
More about the Flag
Detail of seal
Saint Peter's University
County and Municipal flags of New Jersey
Text and image(s) from American City Flags, Raven 9-10 (2002-2003), courtesy of the North American Vexillological Association, which retains copyright. Image(s) from American City Flags by permission of David B. Martucci.
The flag of Jersey City has three equal vertical stripes of blue, white, and yellow, with the city's seal set slightly above center on the white stripe. The seal has a gold field edged in brown, and bears a shield divided in half horizontally, white over light brown. In the top center of the shield is a large sailing ship, brown with gold sails mostly furled, as if at anchor, its prow facing the fly. To the hoist side of the ship, on the landed horizon, is a brown steam locomotive and coal tender, smoke chugging from its smokestack toward the fly. On the fly side of the ship, also on the horizon, is a historic city skyline in white with black shadings and prominent church steeples. A white seagull floats over the ship's stern. In the lower half of the shield, on the upper hoist side, is a small white sailboat. In the lower center is a two-masted ocean steamer with brown smokestacks and yellow smoke billowing from them, coming into dock at a burnt-sienna-colored wharf that slants across the bottom hoist portion of the shield. Above the shield is a brown-edged gold scroll with an inscription, LET JERSEY PROSPER, in brown letters. Surrounding the shield is a brown-edged gold ring with CORPORATION OF JERSEY CITY curving clockwise over the top, in brown.
James Croft, American City Flags, Raven 9-10, 2002-2003
The three stripes of blue, white, and yellow are supposed to commemorate the colors of the Dutch, as Jersey City was located in the province of New Netherlands. However, the color yellow would more appropriately be orange, as blue, white, and orange were the colors in the Dutch national flag and its trading companies in the early 1600s. The sailing ship is the Half Moon, in which the explorer Henry Hudson sailed up the Hudson River in 1609. Jersey City is on the west side of this river, across from Manhattan Island. Today the ships represent the maritime commerce of the city. The pier heads in the background reflect the early Dutch settlement established here in 1630 as Communipaw.
William J. McGovern, director of parks and public property, asked that Mr. Hugh Clarke design the flag. Adopted 19 July 1938 (official).
Hugh "Buz" Clarke, a city engineer.
The flag was adopted by a city resolution introduced by William J. McGovern, city commissioner. The original resolution states that the official seal of the City of Jersey City be included and affixed to the white on this flag, with the numerals 1630 placed below the seal. This original seal was not enclosed in a circle as it is today, but was just the heraldic ribbon and shield. Moreover, as is frequently the case in rendering of city seals by different artists over the years, the elements of the seal are pictured differently. The field of the shield is not divided by colors, although we do not know what the original colors may have been, if any. No locomotive appears on this shield, just primitive buildings on either side of the sailing ship, and the steamboat is under way toward the lower hoist corner, no wharf in sight. The date, 1630, does appear at the lower center on the city's seal today in a circular band around the edge, but has not been carried over to the current flag.
image provided by Christopher Bedwell, 16 December 2015
image provided by Christopher Bedwell, 3 January 2016
I was fortunate to win the eBay auction for the - as they called it - "marching band flag". Attached is a variant of the Jersey City seal - not just the simpler color scheme, but also the items depicted.
Christopher Bedwell, 3 January 2016
image located by Paul Bassinson, 11 October 2019
Source: https://www.internationalapostille.com/
Paul Bassinson, 11 October 2019

redpajama_set_name: RedPajamaCommonCrawl


text:
Q: Using iPhones as iBeacons I am trying to get an app to work whereby a phone emits an iBeacon signal and nearby phones are able to detect that in the background and do a callback method. Phone A is broadcasting the signal and phone B is monitoring it in the background and calls a method. Here is the code for setting it all up:
var centralManager: CBCentralManager!
var peripheralManager: CBPeripheralManager = CBPeripheralManager()
var locationManager: CLLocationManager = CLLocationManager()
let uuid: NSUUID = NSUUID(UUIDString: "DCEF54A2-31EB-467F-AF8E-350FB641C97B")!

override func viewDidLoad() {
    super.viewDidLoad()
    self.locationManager.delegate = self
    self.locationManager.requestAlwaysAuthorization()
    self.centralManager = CBCentralManager(delegate: self, queue: nil)
    self.peripheralManager = CBPeripheralManager(delegate: self, queue: nil)
    let beaconRegion = CLBeaconRegion(proximityUUID: uuid, identifier: "device")
    locationManager.startMonitoringForRegion(beaconRegion)

This is the code I am using for advertising and for monitoring beacons:
func locationManager(manager: CLLocationManager, didEnterRegion region: CLRegion) {
    print("Beacon has been found")
    print(region)
}

func peripheralManagerDidUpdateState(peripheral: CBPeripheralManager) {
    print("PM state updated")
    let advertisingData = [CBAdvertisementDataLocalNameKey:"device", CBAdvertisementDataServiceUUIDsKey: uuid]
    peripheralManager.startAdvertising(advertisingData)
}

As I want all devices with the same UUID, I am not specifying the major and minor, however I would like to get the major and minor of phone B for the method it calls when it monitors phone A.
My problem is that phone A is able to successfully start advertising however phone B does not seem to recognise any devices.

A: The code that sets up the bluetooth advertisement is not setting up an iBeacon transmission:
let advertisingData = [CBAdvertisementDataLocalNameKey:"device", CBAdvertisementDataServiceUUIDsKey: uuid]
peripheralManager.startAdvertising(advertisingData)

That code actually sets up to advertise a Bluetooth LE Service with service ID of DCEF54A2-31EB-467F-AF8E-350FB641C97B.  This isn't the same as an iBeacon advertisement which is a manufacturer advertisement, with the ProximityUUID (different from a service UUID) along with a major and minor identifier.  You set up an iBeacon transmission with ProximityUUID DCEF54A2-31EB-467F-AF8E-350FB641C97B major 1 minor 1 like this:
let advertisingData = beacon.peripheralDataWithMeasuredPower(nil) as Dictionary
peripheralManager.startAdvertising(advertisingData as? [String : AnyObject])


On July 28 1933, just before the Six O'Clock news on BBC radio, a small but significant piece of broadcasting history was made. Sheila Borrett prefaced the update with the customary reminder "This is London". Borrett, then 27, had become the first woman announcer on British radio.


text:
Tan aims to become actress and TV host in the country's entertainment industry
by choo woon lim
English Literature graduate: Tan's dream is to become a producer- cum-director like her idol, Michael Bay.
A freelancer at a production house, Pauline Tan is a self-professed late bloomer in fashion and make-up as she only bought her first make-up kit at 20.
The English Literature graduate from Taiwan is trained in ballet and piano.
She went on a one-year exchange programme in South Korea to develop her talents in the performing arts.
Tan has experience in pageants, live performances, acting, hosting and dance choreography, and aspires to become an actress and television host in the South Korean entertainment industry.
Her dream is to become a producer cum director like her idol, Michael Bay.
Watch a video of Tan's personalised message to fans at http://bit.ly/1DkSi83
Name: Pauline Tan
From: Selangor
The Miss Universe Malaysia 2015 finals will be held in April.
The winner will receive RM48,000, sponsored prizes worth over RM100,000 and the chance to represent Malaysia at the Miss Universe pageant overseas. Conceived 62 years ago and revamped in 2010, Miss Universe Malaysia is the longest-running pageant in the country while Miss Universe is one of the largest pageants in the world. Fans can catch the Malaysian finalists in action in a series of webisodes on their official YouTube channel at youtube.com/user/MissUniverseMsiaOrg
For details, visit www.missuniversemalaysia.com.my
Tags / Keywords: Central Region , Miss Universe Malaysia 2015 , finalist , beauty pageant , MUMO , women


Home to the world's best restaurant three years in a row and the World's Most Livable City in 2014. These are just some of the titles and awards that Copenhagen has received the last few years.
Copenhagen was in 2016 rated as the 10th most popular congress city in the world – and 2016 will also be the busiest year in the history of congresses in Copenhagen, when more than 100,000 conference delegates will visit the city. It is a vibrant metropolis, the gateway to Scandinavia and amongst the safest and cleanest cities in the world. Copenhagen is very easy to get to and is, with one of the most efficient transport systems in the world, also very easy to get around in.
Copenhagen Airport is Northern Europe´s main traffic hub with direct flights from approximately 160 destinations all over the world. In recent years Copenhagen Airport has won numerous prizes for quality, design, customer satisfaction and efficiency. The Airport is situated just eight kilometers from the city centre of Copenhagen and the conference hotel Scandic Copenhagen, which can be reached within 12 minutes by metro or train. This is the fastest transfer time from the airport to city centre of any European capital city.
As the oldest monarchy in the world and one of the world's greatest design capitals, the city offers a wide variety of cultural experiences and stunning architecture within its compact city centre. Copenhagen is known as one of the most environmentally friendly cities in the world and pollution is very low. With the dates of EAONO being in the summer month of June it is one of the most attractive and pleasantly warm times of year to be visiting Copenhagen.
• Denmark has more than twice the amount of bicycles (4.2 million) than cars (1.8 million). Copenhageners pedal more than 1.13 million km on their bicycles each day.
• Healthcare is free when you live in Denmark.


text:
Q: Is there a way to stop a RegEx before a character value and start another one after that character? I am trying to remove numbers before a character such as a-z or *, /, +, -, and then remove any numbers following that character but before a different character. Here is what I have.
    s= s.replaceAll("(\\d+)", "");
    s= s.replace("*", r.toString());

Where s is the string that I need to read, and r is the result of the operation.
The * is arbitrary. It could be any char. previously mentioned
The problem with this is that it removes every number in the string.
If I were to iterate once with the input of:
    26 + 4 - 2

The program returns this:
    30 -

It deletes all three numbers and then replaces the "+" with 30.
I would like to change it to resemble this (with one iteration):
    26 + 4 - 2

The first RegEx would delete the first set of numbers
    + 4 - 2

The second would remove the numbers after the operator, but before the next operator
    + - 2

The next statement would replace the operator with the result of the expression
    30 - 2

I would like the same for problems with other functions such as sine, cosine, etc.
Note: Sine is 'a'
"Sin pi" is the same as "a pi"
After one iteration it should look like
    a pi + 2

    a + 2

    0 + 2

Here is a sample of the code.
This is the Multiply "case"
    case '*':
                    {
                        int m = n + 1;
                        while (m < result.length){
                            if (result[m] != '*' && result[m] != '/' && result[m] != '+' && result[m] != '-'){ //checks the item to see if it is numeric
                                char ch2 = result[m]; //makes the number a character
                                number3 += new String(new char[]{ch2}); //combines the character into a string. For example: '2' + '3' = "23".
                                ++m;}
                            else {
                                    break;
                                }}
                        resultNumber = (Double.parseDouble(number2) * Double.parseDouble(number3)); //"number2" holds the value of the numbers before the operator. Example: This number ----> "3" '*' "23"
                        equation = equation.replaceAll("(\\d+)", "");  //  <---- Line I pulled out earlier that I want to change.
                        equation = equation.replace("*", resultNumber.toString()); // <----- Line I pulled out earlier
                        result = equation.toCharArray();
                        number3 = ""; //erases any number held
                        number2 = ""; //erases any number held
                        ++n;
                        break;
                    }

A: I'll first suggest two alternate approaches, then answer your question as it stands.
Perhaps beter without regular expressions
I have many doubts about your application. A proper tokenizer (lexer), together with a very simple parser would likely do a better job and give clearer error messages than your code.
Matching all operands
Even if you were to use regular expressions, it might make more sense to match both operands in a single pass. I.e. match (\d+)\s*\*\s*(\d+)  to match a multiplication of exactly two numbers. You could first search for a match, then extract the operands from the capturing groups, then compute the resulting value and finally glue together substrings including the result:
// Multiplication of unparenthesized integers
Pattern p = Pattern.compile("(\\d+)\\s*\\*\\s*(\\d+)");
Matcher m = p.matcher(s);
while (m.find()) {
  int a = Integer.parseInt(m.group(1));
  int b = Integer.parseInt(m.group(2));
  s = s.substring(0, m.start(1)) + (a*b) + s.substring(m.end(2));
  m.reset(s);
}

Answer to the question as it was phrased in the title
Regarding the exact formulation of your question:

Is there a way to stop a RegEx before a character value and start another one after that character?

If you want a regex to not match after a given character in the input, you can achieve that by a negative look-behind assertion. Likewise, to only match after a given character, you can use a positive look-behind assertion.
So a regex starting in (?<!\*.*) would only match up to the first occurrence of '*', whereas a regex starting in (?<=\*.*) would only match after the first occurrence of that character. Both would have to be compiled using DOTALL, or in a more complicated form like (?<!\*(?:\n|.*)*).
But ensuring that these matches correspond to the math you have in mind would likely be very tricky.


text:
Fiber Optic Cable Specification
Many structured cabling installations begin with the preparation of a detailed written specification for each system component. Such specifications may be necessary to ensure the correct product is used for the intended application. Specifications also ensure all products offered are equal in a competitive-bidding situation. Consultants and end users often find that they lack the breadth of knowledge or experience necessary to prepare a complete, detailed specification for optical fiber and fiber optic cable. This fact is not surprising because it takes a significant effort to keep abreast of changing product offerings as well as the most recent product evaluation and measurement technology. However, consultants and end users can use industry standards to specify the necessary products without having to delve into excruciating detail.
Specifications for optical fiber and cable can be, and often are, long and arduous; they address a myriad of technical considerations. These considerations include mechanical, environmental, and dimensional characteristics, not to mention the finished product's compatibility with building codes and transmission equipment. Consultants and end users frequently prepare lengthy specifications, attempting to cover all pertinent details. This effort requires a thorough knowledge of cable design, optical science, and the details of scores of measurement methods. Panels of industry experts have developed national and international standards for fiber and cable; these standards can be the basis for the desired brief, accurate, detailed specifications.
Cables intended for direct burial underground should, in most cases, incorporate a steel tape armor for protection against gnawing rodents. Metallic armor has proven to be an effective rodent
protection in controlled tests.
For aerial installations, outdoor fiber optic cable require a messenger wire for lashing. However, some cables have an integrated messenger wire in a figure-eight cross section. Also available today are some all dielectric self-supporting aerial cables, which contain no metallic elements but have sufficient tensile strength to support their own weight and a reasonable ice and wind load.
The most popular loose tube cable includes buffer tubes, each of which contains one to 12 color-coded fibers. Some other cables include ribbons of fiber, rather than loose fibers in buffer tubes. Up to 24 fibers, joined together side-by-side, form a fiber ribbon. Stacks of these ribbons are in buffer tubes, creating a cable with a large number of fibers in a small cross-sectional area. Ribbon cables are popular in telephony and other long-haul applications and useful in crowded ducts where dense packing offers an advantage. Mass-fusion-splicing technology allows installers to splice 12 fibers in a ribbon simultaneously, offering labor savings in high-fiber-count applications. Ribbon cables are not common in premises applications but may become more popular as fiber becomes more prevalent in premises networks.
Indoor outdoor cable incorporate the characteristics necessary for both applications; they are waterblocked for moisture protection and are sunlight-resistant. Indoor/outdoor cables also meet one or more of the code requirements for flame-spread resistance and smoke generation.
They can be useful in eliminating a splice point for a building-to-building run in a campus environment. They resemble outdoor cables more closely than indoor cables in design and appearance
and usually require a fanout kit for field termination.
A detailed cable specification considers all environmental and regulatory factors that concern the installation environment, including temperature, mechanical loading, moisture, sunlight,
flammability, rodents, and chemicals. Fully specifying each cable also requires a test or measurement method and criteria. Once again, standards are available to simplify this task.
Two sister documents published by the Insulated Cable Engineers Association (ICEA-South Yarmouth, MA) are useful as detailed product specifications. The ANSI/ICEA S-87-640 Standard for Outside Plant Communications Cable and the ANSI/ICEA S-83-596 Standard for Fiber Optic Premises Distribution Cable cover outside- and inside-plant cables, respectively. A third document, which will be designated S-83-696 and is currently in the works, will address indoor/outdoor cables. In addition to detailed references for test method, loading, and failure criteria for finished cable, these documents also include similar details for the optical fiber. ANSI/ICEA S-83-596 includes a summary of the flammability listing requirements from the NEC. Referencing these documents as appropriate for indoor or outdoor cable ensures you have included a full battery of environmental and mechanical testing and failure criteria in your specification.
In the United States, the federal government is another source for a detailed product specification. The Department of Agriculture's Rural Utilities Service (RUS) has published a document entitled Specification for Filled Fiber Optic Cables, which provides detailed product specifications for singlemode and multimode fiber, as well as OSP loose-tube cable. The RUS specification even outlines requirements for production and type testing as well as data reporting and manufacturers' recordkeeping. The RUS conducts technical reviews of cable manufacturers' products and programs and includes compliant companies' products on an "accepted list." By specifying that an OSP cable must be RUS-listed, an end user can take advantage of the RUS's efforts.
This entry was posted in Fiber Optic cable and tagged fiber optic cable specification, Indoor outdoor cable, Loose tube cable by Admin. Bookmark the permalink.


This lovely village inn is situated in north-eastern Northamptonshire just a short drive from Stamford. The public rooms have many original features such as stone walls and open fireplaces; they include a lounge bar and the Orangery Restaurant which opens out onto the terrace for alfresco dining. The modern, well-equipped bedrooms are very stylish.


text:
The United States of Europe
September 07, 2011Sep 07, 2011
In a previous posting, we described The Soros Solution. It documented how a strategy to attack Europe was reportedly formulated at a meeting of leading hedge funds (including Soros Fund Management) in New York in early 2010. Interestingly, at the time, the world was actually more concerned about Dubai's debt and the Middle East than Europe (as shown in this article from The Huffington Post).
The hedge fund meeting targeted Greece as the first point of attack in Europe. Granted, there are serious debt problems. But with the use of Credit Default Swaps and other derivatives, the situation has gone from desperate to impossible. Recently, the Greek Government has had to pay over 50% interest rate to borrow money for two years. During the fourth quarter of 2009, the yield on Greek Two-Year Bonds was below 2%. Dubai was perceived as the problem. Then the hedge fund community met and decided to target Greece. Now, we also have press reports that Al Qaeda was targeting the European economy.
So what's the outcome? According to a New York Times story (September 6, 2011):
As leaders in Europe try to contain a deepening financial crisis, they are also increasingly talking about making fundamental changes to the way their 17-nation economic union works.
The idea is to create a central financial authority — with powers in areas like taxation, bond issuance and budget approval — that could eventually turn the euro zone into something resembling a United States of Europe.
Officials have been hesitant to publicly endorse such a drastic change. But privately they say the issue has gained urgency in recent months, as it has become clear that Europe's current approach, which requires unanimity on any significant moves, is unwieldy and inefficient. The idea is being promoted by some global financial officials, who worry about the risks that continued uncertainty in Europe poses to the global economy.
The article goes on to say how the approach may be unpopular but is necessary. It compares the European Union's failure to the Articles of Confederation that had to give way to the Constitution and a stronger Central Government. Former German Chancellor Gerhard Schroeder used the term, The United States of Europe on Sunday.This is precisely The Soros Solution.
Here is an analysis by The Economic Policy Journal that is worth reviewing.
The strategy? Either create or sharply worsen a crisis and then use the crisis to force a solution that would otherwise would have been unacceptable. From all appearances, this is a classic example of economic warfare. The first question then becomes by whom? The second question is why is a United States of Europe so important?
All posts Copyright (c) 2011 Kevin Freeman, All Rights Reserved


If your looking for ideas to make your meeting more fun while debating and finding common ground between your girls, you have come to the right place. Using some of these activities below they will learn the strategies to bring people together even if there are differing opinions.
Before jumping into a few ideas, do you want to skip all the planning? If so, use this Activity Booklet with activities, games, and worksheets to allow your girls to take over the meeting.
Girls will work together to find common ground by exploring what they have in common with girls in your troop, learn how to debate, and find ways to persuade others to agree with them, work together in a activity to learn how to compromise on a issue, learn how to find a resolution to a issue with a mediator. The girls will have fun while learning the skills that are used in our government to help citizens with differing opinions find common ground.With a step by step activities, you can't ask for a easier way to run your meeting. Learn more and get yours today!
This game will require the girls to think on their feet and come up with rebuttals quickly. All you will need is a list of topics and split the girls into two pairs and have them face each other. One of the girls will make a statement about the topic such as "schools should not allow us to have phones on us at all" then the other girl must make a rebuttal statement. This should go back and forth offering a rebuttal to each others statement. Each rebuttal shouldn't be longer than a minute. When a girl can't think of anything else they loss that round. Set a odd amount of rounds with a new topic each round.
In this activity draw a line down middle of room, use tape or chairs, cones whatever works in the area you are meeting. Then tell girls to stand on either side of line does not matter to start. Then tell them a statement from list below. Tell the girls Switch sides if… the statement is true for you. In some cases tell girls if they switched tell someone next to them more details about why they switched. Such as if you play a instrument tell someone what kind. This is a great game to help the girls find some common ground with each other.
You have 2 or more siblings…if you switched sides tell someone if your oldest,middle, youngest?
The list can go on and on you decide how long you want to keep this activity going.
I hope these ideas help you have the most fun possible while finding common ground with your girls.
Jodi, I have been following you for about two years. I love that you have focused a lot on Cadettes as of recently. Cadettes are so challenging for many as they are hitting such a transition time in their life. I love you have made some of these "boring" (according to the girls) badges more interesting to them and ones that they want to do. I very much appreciate your packets and look forward to seeing more of your ideas.
Katie, thanks for the kind words. Yes I am trying to focus on the older groups with those boring badges they can be fun its just hard to do – so I spend a lot of time putting together these booklets so they can be fun but still help the girls learn as much about the topic as possible.


The Dysart Petersham take the upmost care in sourcing the freshest and highest quality produce they can find, adding immeasurably to the aromas, flavours and appearance of the dishes we serve.
Barny and Kenneth take the same care in choosing the highest quality produce they can find, whether in cooking, or for drinks, adding immeasurably to depth, subtlety and layering of aromas and flavours.
They both use ingredients from our garden, from our chosen farms and other suppliers, or from the local wild lands, both fresh and preserved in our kitchen, in the same way to add distinctive flavours and aromas. We use many traditional yet now unusual herbs, into our drinks and love using the simple ones too. Foraged elderberry is cooked to a syrup and served as a Kir Royale. Elderflowers are reduced and served with fresh lime and soda. Raspberries are made into a Collins with Snow Queen vodka and fresh lime juice.
distinctively here with soft drinks.
Our wine list has over 200 bins, with wines from all corners of the globe, some especially chosen to represent excellent quality and value for money at modest price, others carefully compiled as the very best examples of "the bottle for that special occasion". Many are produced on organic or biodynamic principles, though the producers are only beginning to talk about this as yet. Our favourite winemakers share our love of quality, character and natural methods of husbandry and production, working with their particular land, soils and weather conditions – and are prepared to go that extra mile to achieve it.
With the dramatic improvements in the quality of English wines we have selected the best of our nation's wines, changing according to the differing qualities of the years, including the Kenton, Nyetimber, Ridgeview, Hush Heath and Shawsgate vineyards.
Notably, many of the wines have been selected and are regularly changed by the bar and kitchen team especially to match the dishes as pairing is a high priority and great interest and we create our list of wines by the glass around this objective to make a meal here that little bit more special and affordable an experience.
Several high profile reviewers have commented that our list is "priced very kindly", Andy Hayler, and is "an ungreedy wine list", Marina O'Loughlin. This pleases us as we want to enable as best we can the enjoyment of wines with food.
The feeling of inspiration when tasting a wine, then a dish, then tasting them together to find that the combination is far more than the sum of the parts is something we value very highly, and can be experienced with our tasting menu, or by individual recommendations from our team.
The joy of pairing wine and food is also demonstrated at our wine dinners, where individual producers from around the world showcase and introduce their wines alongside dishes especially crafted by us for them. The process of tasting the wines with Kenneth and helping to create a balanced and inventive menu is always an enjoyable experience!
We have beer pairings with our tasting menu, drawing on our specialist beers. Just as we have nothing on our wine list simply for name, each item is there because of individual character, or to compliment food.
It is the same with our spirits, where all styles are represented, from Scottish single malts to Japanese malt whisky and sake and with an outstanding selection of unusual and delightful vodkas and gins, each with its own distinctive character.
Butterscotch, caramel and stewed apples – complex and very long.
Intense aroma of ripe pear with a hint of honey and menthol. Unctuous, rich concentrated pear palate.
CITRUSSY – Grain gin containing 10 botanicals.
Floral, fragrant and very delicate.
Super premium 100% potato vodka, ideal for Martinis.
We are pleased to welcome some of the most interesting winemakers from around the world for our wine dinners, representing wines chosen for our wine cellar by Barny, both new wines made in new ways, and long established names, offering traditional qualities, but in no way strangers themselves to new learning.
the same process applies to the vegetarian menu.
The wine maker and producer, often a member of the House family, attends to help introduce the wines.
Some flavours and dishes have surprised the wine makers in anticipation, but delighted them on the evening and have been feted for showing added dimensions to the wine. Jean Trimbach, the twelfth generation of the family to make Grands Vins d'Alsace, F.E. Trimbach, was one such and congratulated Barny and Kenneth for a "fabulous experience and gastronomic pleasure". Guigal expressed great admiration for the way in which the wines were matched and offered in a surprising sequence that worked beautifully.
The refinement and in some cases unusual nature of the pairings of dishes and wines convinced the International Wine and Food Society [UK] to award us their Award of Excellence and suggest us to help found the UK chapter of JRE.
For further information or to book a place at our next wine dinner please email us at enquiries@thedysartpetersham.co.uk or call Barny Taylor on 07967 481625.


reviews: Received as expected. Installed immediately. Works amazing.
reviews: Unexpectacly strong ligh. I am satisfiied.
reviews: Bright, Directional LED Light, Fair/Good Price, Recommended for use in recessed light fixtures.
reviews: The bulb is bright enough for my hallway.
reviews: Great value for the money and expecting savings from electrical use.
reviews: Great value for the price lights up like a 25w regular bulb not bad for a 3w power usage!


Search Largest China Supplier Base. Get Live Quotes on Your Mobile!High Quality Steel Fabrics In Stock Now - Fast Shipping!Search for Sheet Steel.
Cut to Size Sheets, Rods & Tubes. We Offer Hard-to-Find Sizes & Tech Support.ABS Grade D, ABS Grade D steel, ABS Grade D shipbuilding steel plate and steel sheet,ABS D marine steel plate, ABS/D steel supplier and exporter ABS Grade D Shipbuilding Steel Description: ABS grade D steel is a kind of hot rolled general tensile strength steel.
Ah32, Shipbuilding Steel Plate, Steel manufacturer / supplier in China, offering ABS High Quality Marine Shipbuilding Steel Plate, Ah32 Shipbuilding Plate, Dn20 Q195 Q235 Q345b Hot Dipped Galvanized Steel Pipe, Alloy Tool Steel Plate for Hot Work Mould Steel (H13/SKD61/1.2344) and so on.
ABS Grade A32 marine bulb flat steel bar with good toughness properties,higher strength.ABS Grade A32 bulb flat steel bar are mainly used to contribute hull of ships and the cranes of break bulker and vessels in low temperature oceans.All of our stock is the high quality ABS Grade A32 bulb flat steel bar shipbuilding steel bars.we has a large number of stocks.
We will give you the ABS AH36, AB/AH36 angle shipbuilding steel /sheet/angle bar/bulb flat bar/ L section steel bar competitive price, ABS AH36, AB/AH36 angle shipbuilding steel/sheet/angle bar/bulb flat bar/ L section steel bar good quality and best service from us.


text:
Q: skip transformation not working in Pentaho modified javascript Below is my modified javascript for a basic pentaho transformation job. From a 2 row ( excluding header row) csv file input an xml output file is being generated. If I remove the 1st and last line of code, it works without error though it process all row.
Question 1: How can I correctly skip the 2nd row from csv file.
Question 2: What is the correct way to get input field datatype like number/string etc. ? getValueMeta function is giving many additional things which I don't need.
My csv file is as below:

My transformation is as below:

//Script here
trans_Status = CONTINUE_TRANSFORMATION;
var column_name = "SSTI_pre-trade";
var column_index = getInputRowMeta().indexOfValue(column_name);
var column_value = row[column_index];
var column_type=getInputRowMeta().getValueMeta(column_index)
writeToLog("b", column_type);
var converted_number=getInputRowMeta().getNumber(row,column_index);
var skip_number=getInputRowMeta().getNumber(row,6);
writeToLog("b", skip_number);
var msg = 'Hello, ' + num2str(converted_number) + "!";
if (skip_number = 2) {trans_Status = SKIP_TRANSFORMATION;}

Below is log when skip transformation not working but it shows that skip_number variable value is correct.
2022/03/16 18:46:22 - HelloWorld - Dispatching started for transformation [HelloWorld]
2022/03/16 18:46:22 - XML output.0 - Opening output stream in encoding: UTF-8
2022/03/16 18:46:22 - CSV file input.0 - Header row skipped in file 'file:///D:/Pentaho_projects/Hello_world/sample2.csv'
2022/03/16 18:46:22 - CSV file input.0 - Finished processing (I=3, O=0, R=0, W=2, U=0, E=0)
2022/03/16 18:46:22 - Modified JavaScript value.0 - Optimization level set to 9.
2022/03/16 18:46:22 - Modified JavaScript value.0 - SSTI_pre-trade Integer(15)<binary-string>
2022/03/16 18:46:22 - Modified JavaScript value.0 - 1.0
2022/03/16 18:46:22 - Modified JavaScript value.0 - SSTI_pre-trade Integer(15)<binary-string>
2022/03/16 18:46:22 - Modified JavaScript value.0 - 2.0
2022/03/16 18:46:22 - Modified JavaScript value.0 - Finished processing (I=0, O=0, R=2, W=0, U=0, E=0)
2022/03/16 18:46:22 - Spoon - The transformation has finished!!

A: I don't know about your second question, but for the first question, if you have a fixed condition of the rows to skip from the csv, i.e., as you have stated, you want to skip the second row, the easiest way would be to read the csv and add a column when you are configuring the step with the rownumber, and afterwards add a filter rows step with the condition rownumber <> 2:


text:
Nav Primary
Metabolic/Endocrinology
NP/PA Dedicated
OBGYN & Women's Health
Pulmonary/Respiratory
CME/CE Conferences
Metabolic & Endocrine Disease Summit (MEDS) Newsletter
Inaugural Medscape Cardiology Newsletter
45th Annual Hawaii Dermatology Seminar
Innovations in Dermatology Newsletter
3rd Annual Perspective in Lung Cancer Care
Psychiatry Update Spring 2023
Innovations in Psychiatry Newsletter
CME/CE Library
Click for Credit
Publication Partners
About SDEF
New treatments aim to tame vitiligo
Publish Date: December 30, 2022
By: Heidi Splete
Topical ruxolitinib offers another tool to try, with strong safety and efficacy.
AT INNOVATIONS IN DERMATOLOGY
LAS VEGAS – Vitiligo affects individuals of all ages, and "the social impact is huge," David Rosmarin, MD, said in a presentation at MedscapeLive's annual Las Vegas Dermatology Seminar.
Vitiligo, an autoimmune condition that results in patches of skin depigmentation, occurs in 0.5% to 2% of the population. The average age of onset is 20 years, with 25% of cases occurring before age 10, and 70%-80% of cases by age 30 years, which means a long-term effect on quality of life, especially for younger patients, said Dr. Rosmarin, vice chair of education and research and director of the clinical trials unit at Tufts University, Boston.
SolStock/Moment/Getty Images
Studies have shown that 95% of 15- to 17-year-olds with vitiligo are bothered by it, as are approximately 50% of children aged 6-14 years, he said. Although patients with more extensive lesions on the face, arms, legs, and hands report worse quality of life, they report that uncontrolled progression of vitiligo is more concerning than the presence of lesions in exposed areas, he noted.
The current strategy for getting vitiligo under control is a two-step process, said Dr. Rosmarin. First, improve the skin environment by suppressing the overactive immune system, then encourage repigmentation and "nudge the melanocytes to return," he said.
Topical ruxolitinib, a Janus kinase (JAK) inhibitor, is the latest tool for dermatologists to help give the melanocytes that nudge. In July 2022, the Food and Drug Administration approved ruxolitinib cream for treating nonsegmental vitiligo in patients 12 years of age and older – the first treatment approved to repigment patients with vitiligo.
Vitiligo is driven in part by interferon (IFN)-gamma signaling through JAK 1 and 2, and ruxolitinib acts as an inhibitor, Dr. Rosmarin said.
Dr. David Rosmarin
In the TRuE-V1 and TRuE-V2 studies presented at the 2022 European Academy of Dermatology and Venereology meeting in Milan, adolescents and adults with vitiligo who were randomized to 1.5% ruxolitinib cream twice daily showed significant improvement over those randomized to the vehicle by 24 weeks, at which time all patients could continue with ruxolitinib through 52 weeks, he said.
Dr. Rosmarin presented 52-week data from the TRuE-V1 and TRuE-V2 studies at the 2022 American Academy of Dermatology meeting in Boston. He was the lead author of the studies that were subsequently published in the New England Journal of Medicine.
In the two studies, 52.6% and 48% of the patients in the ruxolitinib groups achieved the primary outcome of at least 75% improvement on the Facial Vitiligo Area Scoring Index (F-VASI75) by 52 weeks, compared with 26.8% and 29.6% of patients on the vehicle, respectively.
In addition, at 52 weeks, 53.2% and 49.2% of patients treated with ruxolitinib in the two studies achieved 50% improvement on the Total Vitiligo Area Scoring Index (T-VASI50), a clinician assessment of affected body surface area and level of depigmentation, compared with 31.7% and 22.2% of those on vehicle, respectively.
Patient satisfaction was high with ruxolitinib, Dr. Rosmarin said. In the TRuE-V1 and TRuE-V2 studies, 39.9% and 32.8% of patients, respectively, achieved a successful treatment response based on the patient-reported Vitiligo Noticeability Scale (VNS) by week 52, versus 19.5% and 13.6% of those on vehicle.
Ruxolitinib cream was well tolerated, with "no clinically significant application site reactions or serious treatment-related adverse events," he noted. The most common treatment-related adverse events across the TRuE-V1 and TRuE-V2 studies were acne at the application site (affecting about 6% of patients) and pruritus at the application site about (affecting 5%), said Dr. Rosmarin.
Ruxolitinib repigments many vitiligo-affected body areas
JAK inhibitors, including ruxolitinib, baricitinib, and tofacitinib, have shown effectiveness for vitiligo, which supports the potential role of the IFN-gamma-chemokine signaling axis in the pathogenesis of the disease, said Dr. Rosmarin. However, more studies are required to determine the ideal dosage of JAK inhibitors for the treatment of vitiligo, and to identify other inflammatory pathways that may be implicated in the pathogenesis of this condition.
Ruxolitinib's success has been consistent across subgroups of age, gender, race, geographic region, and Fitzpatrick skin phototype. Notably, ruxolitinib was effective among the adolescent population, with approximately 60% achieving T-VASI50 and success based on VNS in TRuE-V1 and TRuE-V2.
An oral version of ruxolitinib is in clinical trials, which "makes a lot of sense," Dr. Rosmarin said. "Patients don't always have localized disease," and such patients may benefit from an oral therapy. Topicals may have the advantage in terms of safety, but questions of maintenance remain, he said. Oral treatments may be useful for patients with large body surface areas affected, and those with unstable or progressive disease, he added.
Areas for additional research include combination therapy with ruxolitinib and phototherapy, and an anti-IL 15 therapy in the pipeline has the potential to drive vitiligo into remission, Dr. Rosmarin said. In a study known as REVEAL that is still recruiting patients, researchers will test the efficacy of an IL-15 inhibitor known as AMG 714 to induce facial repigmentation in adults with vitiligo.
Dr. Rosmarin disclosed ties with AbbVie, Abcuro, AltruBio, Amgen, Arena Pharmaceuticals, Boehringer Ingelheim, Bristol Myers Squibb Company, Celgene, Concert Pharmaceuticals, CSL Behring, Dermavant, Dermira, Eli Lilly, Galderma, Incyte, Janssen, Kyowa Kirin, Merck, Novartis, Pfizer, Regeneron, Revolo, Sanofi, Sun, UCB, and Viela Bio.
MedscapeLive and this news organization are owned by the same parent company.
Related Digital Networks
Annals of Clinical Psychiatry
Cardiology News
Chest Physician
Clinical Endocrinology News
Clinical Psychiatry News
Clinician Reviews
Clinical Neurology News
Current Psychiatry
Dermatology News
Family Practice News
Federal Practitioner
GI & Hepatology News
Hematology News
The Hospitalist
ID Practitioner
Internal Medicine News
The Journal of Family Practice
Journal of Hospital Medicine
Neurology Reviews
Ob.Gyn News
OBG Management
Oncology Practice
Pediatric News
Rheumatology News
Thoracic Surgery News
All content copyright © 2023 Global Academy for Medical Education LLC. All rights reserved. No reproduction, transmission or display is permitted without the written permission.


Shorter video today. Nice little One Shot One Kill right at the open – and then done for the day.
Had a Long bias after yesterday's No Supply and Amateur activity mid-day. But it wasn't a very convincing rally today – the adjusted TRIN Index reading was just +22. We've closed the "first" gap at 1317.50 but not made it up to the "second" gap at 1325.
I think Wednesday into Thursday is going to be choppy, possibly with smaller ranges – everyone will be waiting for the announcements out of the European two-day summit starting Thursday. Which is BTW the 20th meeting they've held to sort things out!
We're entering classic Bull/Bear decision territory – realisation that we're in a global slump and continuation of the downtrend or think happy thoughts and believe Politicians and Bureaucrats can save us.
More bloody brilliance from Jim Rickards, shooting down the Keynesian myth.
And please, please don't email me about why we need to deficit spend! I'm sick of hearing it. It's really simple, there is no money left – we've spent and promised it all, yes, every single penny out until eternity.


text:
'use strict';

require('configureForRelayOSS');

const RelayClassic = require('RelayClassic');
const {ConnectionInterface} = require('RelayRuntime');
const RelayOptimisticMutationUtils = require('RelayOptimisticMutationUtils');
const RelayQuery = require('RelayQuery');
const RelayTestUtils = require('RelayTestUtils');

const flattenRelayQuery = require('flattenRelayQuery');

describe('RelayOptimisticMutationUtils', () => {
  const {getVerbatimNode, matchers} = RelayTestUtils;
  let HAS_NEXT_PAGE, HAS_PREV_PAGE, PAGE_INFO;

  beforeEach(() => {
    jest.resetModules();

    ({HAS_NEXT_PAGE, HAS_PREV_PAGE, PAGE_INFO} = ConnectionInterface.get());

    expect.extend({
      ...matchers,

      toEqualFields(actual, expected) {
        expected = flattenRelayQuery(getVerbatimNode(expected));
        actual = flattenRelayQuery(expected.clone(actual));
        // NOTE: Generated fields might get in the way.
        return matchers.toEqualQueryNode(actual, expected);
      },
    });
  });

  describe('inferRelayFieldsFromData', () => {
    it('generates metadata for fields', () => {
      const query = RelayOptimisticMutationUtils.inferRelayFieldsFromData({
        id: '123',
      });
      expect(query).toEqualFields(
        RelayClassic.QL`
        fragment on Actor {
          id
        }
      `,
      );
      expect(query[0].isPlural()).toBe(false);
    });

    it('infers scalar fields from scalars', () => {
      expect(
        RelayOptimisticMutationUtils.inferRelayFieldsFromData({
          id: '123',
          name: 'Alice',
        }),
      ).toEqualFields(
        RelayClassic.QL`
        fragment on Actor {
          id
          name
        }
      `,
      );
    });

    it('infers nested fields from objects', () => {
      const fields = RelayOptimisticMutationUtils.inferRelayFieldsFromData({
        id: '123',
        address: {
          city: 'Menlo Park',
        },
      });
      expect(fields).toEqualFields(
        RelayClassic.QL`
        fragment on Actor {
          id
          address {
            city
          }
        }
      `,
      );
      expect(fields[1].canHaveSubselections()).toBe(true);
    });

    it('infers unterminated fields from null', () => {
      const inferredFields = RelayOptimisticMutationUtils.inferRelayFieldsFromData(
        {
          id: '123',
          address: null,
        },
      );

      expect(inferredFields[0] instanceof RelayQuery.Field).toBe(true);
      expect(inferredFields[0].canHaveSubselections()).toBe(false);
      expect(inferredFields[0].getSchemaName()).toBe('id');

      expect(inferredFields[1] instanceof RelayQuery.Field).toBe(true);
      // Though this field can have subselections, there is no way we can infer
      // this from `address: null`. Defaults to false.
      expect(inferredFields[1].canHaveSubselections()).toBe(false);
      expect(inferredFields[1].getSchemaName()).toBe('address');
    });

    it('infers plural fields from arrays of scalars', () => {
      const fields = RelayOptimisticMutationUtils.inferRelayFieldsFromData({
        id: '123',
        websites: ['facebook.com', 'google.com'],
      });
      expect(fields).toEqualFields(
        RelayClassic.QL`
        fragment on Actor {
          id
          websites
        }
      `,
      );
      expect(fields[1].isPlural()).toBe(true);
    });

    it('infers plural nested fields from arrays of objects', () => {
      const fields = RelayOptimisticMutationUtils.inferRelayFieldsFromData({
        id: '123',
        screennames: [{service: 'GTALK'}, {service: 'TWITTER'}],
      });
      expect(fields).toEqualFields(
        RelayClassic.QL`
        fragment on Actor {
          id
          screennames {
            service
          }
        }
      `,
      );
      expect(fields[1].isPlural()).toBe(true);
    });

    it('infers unterminated fields from empty arrays', () => {
      expect(
        RelayOptimisticMutationUtils.inferRelayFieldsFromData({
          id: '123',
          websites: [],
        }),
      ).toEqualFields(
        RelayClassic.QL`
        fragment on Actor {
          id
          websites
        }
      `,
      );
    });

    it('infers unterminated fields from null elements in arrays', () => {
      expect(
        RelayOptimisticMutationUtils.inferRelayFieldsFromData({
          id: '123',
          websites: [null],
        }),
      ).toEqualFields(
        RelayClassic.QL`
        fragment on Actor {
          id
          websites
        }
      `,
      );
    });

    it('infers String field arguments from keys', () => {
      expect(
        RelayOptimisticMutationUtils.inferRelayFieldsFromData({
          id: '123',
          'url(site: "www")': 'https://...',
        }),
      ).toEqualFields(
        RelayClassic.QL`
        fragment on Actor {
          id
          url(site: "www")
        }
      `,
      );
    });

    it('infers Boolean field arguments from keys', () => {
      expect(
        RelayOptimisticMutationUtils.inferRelayFieldsFromData({
          'url(relative: true)': '//...',
        }),
      ).toEqualFields(
        RelayClassic.QL`
        fragment on Actor {
          url(relative: true)
        }
      `,
      );
    });

    it('infers Int field arguments from keys', () => {
      expect(
        RelayOptimisticMutationUtils.inferRelayFieldsFromData({
          'comments(last: 10)': {
            count: 20,
          },
        }),
      ).toEqualFields(
        RelayClassic.QL`
        fragment on Comment {
          comments(last: 10) {
            count
          }
        }
      `,
      );
    });

    it('throws for keys with invalid call encodings', () => {
      expect(() => {
        RelayOptimisticMutationUtils.inferRelayFieldsFromData({
          'url.site': 'https://...',
        });
      }).toFailInvariant(
        'RelayOptimisticMutationUtils: Malformed data key, `url.site`.',
      );

      expect(() => {
        RelayOptimisticMutationUtils.inferRelayFieldsFromData({
          'url(site)': 'https://...',
        });
      }).toFailInvariant(
        'RelayOptimisticMutationUtils: Malformed or unsupported data key, ' +
          '`url(site)`. Only booleans, strings, and numbers are currently ' +
          'supported, and commas are required. Parse failure reason was ' +
          '`' +
          RelayTestUtils.getJSONTokenError('s', 1) +
          '`.',
      );
    });

    it('infers `id` and `cursor` fields for `node` data', () => {
      expect(
        RelayOptimisticMutationUtils.inferRelayFieldsFromData({
          id: '123',
          'friends(first: 2)': {
            edges: [{node: {name: 'Alice'}}, {node: {name: 'Bob'}}],
            [PAGE_INFO]: {
              [HAS_NEXT_PAGE]: true,
              [HAS_PREV_PAGE]: false,
            },
          },
        }),
      ).toEqualFields(
        RelayClassic.QL`
        fragment on Actor {
          id
          friends(first: 2) {
            edges {
              node {
                id
                name
              }
              cursor
            }
            pageInfo {
              hasNextPage
              hasPreviousPage
            }
          }
        }
      `,
      );
    });

    it('infers field for mutation field named `node`', () => {
      expect(
        RelayOptimisticMutationUtils.inferRelayFieldsFromData({
          node: {
            id: '123',
            name: 'name',
          },
        }),
      ).toEqualFields(
        RelayClassic.QL`
        fragment on NodeSavedStateResponsePayload {
          node {
            id
            name
          }
        }
      `,
      );
    });

    it('ignores metadata fields', () => {
      expect(
        RelayOptimisticMutationUtils.inferRelayFieldsFromData({
          __dataID__: '123',
          __range__: null,
          __status__: 0,
          id: '123',
          name: 'Alice',
        }),
      ).toEqualFields(
        RelayClassic.QL`
        fragment on Node {
          id
          name
        }
      `,
      );
    });
  });

  describe('inferRelayPayloadFromData', () => {
    it('generates payload for scalar fields', () => {
      const data = {
        id: '123',
      };
      const payload = RelayOptimisticMutationUtils.inferRelayPayloadFromData(
        data,
      );
      expect(payload).toBe(data);
    });

    it('generates payload for plural fields', () => {
      const data = {
        usernames: [{id: '123'}, {id: '456'}],
      };
      const payload = RelayOptimisticMutationUtils.inferRelayPayloadFromData(
        data,
      );
      expect(payload).toBe(data);
    });

    it('generates payload for nested fields', () => {
      const data = {
        viewer: {
          actor: {
            id: '123',
          },
        },
      };
      const payload = RelayOptimisticMutationUtils.inferRelayPayloadFromData(
        data,
      );
      expect(payload).toBe(data);
    });

    it('generates payload for String field arguments from keys', () => {
      const field = RelayQuery.Field.build({
        calls: [{name: 'site', value: 'www'}],
        fieldName: 'url',
      });

      expect(
        RelayOptimisticMutationUtils.inferRelayPayloadFromData({
          id: '123',
          'url(site: "www")': 'https://...',
        }),
      ).toEqual({
        id: '123',
        [field.getSerializationKey()]: 'https://...',
      });
    });

    it('generates payload Boolean field arguments from keys', () => {
      const field = RelayQuery.Field.build({
        calls: [{name: 'relative', value: true}],
        fieldName: 'url',
      });
      expect(
        RelayOptimisticMutationUtils.inferRelayPayloadFromData({
          'url(relative: true)': '//...',
        }),
      ).toEqual({
        [field.getSerializationKey()]: '//...',
      });
    });

    it('infers Int field arguments from keys', () => {
      const field = RelayQuery.Field.build({
        calls: [{name: 'last', value: 10}],
        fieldName: 'comments',
      });
      expect(
        RelayOptimisticMutationUtils.inferRelayPayloadFromData({
          'comments(last: 10)': {
            count: 20,
          },
        }),
      ).toEqual({
        [field.getSerializationKey()]: {
          count: 20,
        },
      });
    });

    it('throws for keys with invalid call encodings', () => {
      expect(() => {
        RelayOptimisticMutationUtils.inferRelayPayloadFromData({
          'url.site': 'https://...',
        });
      }).toFailInvariant(
        'RelayOptimisticMutationUtils: Malformed data key, `url.site`.',
      );

      expect(() => {
        RelayOptimisticMutationUtils.inferRelayPayloadFromData({
          'url(site)': 'https://...',
        });
      }).toFailInvariant(
        'RelayOptimisticMutationUtils: Malformed or unsupported data key, ' +
          '`url(site)`. Only booleans, strings, and numbers are currently ' +
          'supported, and commas are required. Parse failure reason was ' +
          '`' +
          RelayTestUtils.getJSONTokenError('s', 1) +
          '`.',
      );
    });
  });
});

redpajama_set_name: RedPajamaGithub


text:
Der Bürgerkredit (auch Bürgerdarlehen) stellt eine alternative Finanzierungsform für kommunale Gebietskörperschaften oder Kommunalunternehmen dar, die als Alternative zu konventionellen Kommunalkrediten oder Kommunalanleihen genutzt werden kann. Im Rahmen eines Bürgerkredit-Projektes wird benötigtes Fremdkapital für Investitions- oder Kassenkredite direkt bei Privatpersonen aufgenommen.

Geschichte
Im Juli 2009, während einer öffentlichen Bürgerstunde zur Haushaltslage der Stadt Quickborn, entstand die Idee des Bürgerkredits. Die Idee trug in dieser Bürgerstunde die Quickbornerin Cornelia Dommel vor, eine Wirtschaftsinformatikerin. Die Stadt nahm ohne Umweg über ein Kreditinstitut direkt bei Bürgern ein einjähriges Darlehen auf.

Die eingezahlten Beträge der Bürger wurden mit 3 % p. a. verzinst. Der Mindestanlagebetrag einer einzelnen Anlage belief sich auf 5.000 Euro. Zum damaligen Zeitpunkt war dies ca. 1 % günstiger als ein vergleichbarer Kommunalkredit. Insgesamt wurden von 80 Privatpersonen 4 Millionen Euro eingesammelt.

Da das Einsammeln von "unbedingt rückzahlbaren Geldern des Publikums" jedoch den Tatbestand des Betreibens von Einlagengeschäft nach  Abs. 1 Satz 2 Nr. 1 KWG darstellt, schritt die Bundesanstalt für Finanzdienstleistungsaufsicht (BaFin) ein und untersagte in Kooperation mit der kommunalen Rechtsaufsicht das Geschäft. Um Einlagengeschäft betreiben zu dürfen, ist in Deutschland eine sog. Banklizenz vonnöten, die Gebietskörperschaften per se nicht erhalten können. Die BaFin entschied jedoch, dass bereits abgeschlossene Verträge ihre Gültigkeit behalten sollten und nicht rückabgewickelt werden mussten.

Um dennoch weiterhin Bürgerkredite aufnehmen zu können, entschied sich die Quickborner Stadtführung für ein neues Projekt zur Kooperation mit einer Willicher Bank. Im zweiten Anlauf sammelte die Stadt ca. 1,065 Millionen Euro von 30 Anlegern ein. Es wurden Zinsen von 1,5 % für ein einjähriges und 2,6 % für ein fünfjähriges Darlehen gezahlt.

Mit dem aufgenommenen Geld wurden sowohl eine Schule als auch das örtliche Feuerwehrhaus saniert.

Meinungen
Aus Sicht der Kommune kann ein Bürgerkredit eine günstigere Alternative zur konventionellen Kreditaufnahme bei einer Geschäftsbank darstellen. Auch Inhaberschuldverschreibungen als Finanzierungsquelle gestalten sich wegen der aufwendigen Emission und Rechtsberatung deutlich teurer als Bürgerdarlehen.

Darüber hinaus wird die Abhängigkeit von Banken reduziert und eventuelle Kreditrahmen müssen nicht vollständig ausgeschöpft werden. Unter Umständen kann die Nutzung eines Bürgerkredits die Partizipation der Bürger in der Kommune und die Identifikation mit ihr langfristig fördern. "Das Bürgerdarlehen trägt zur Bündelung der politischen Verantwortung für finanziell belastende Entscheidungen auf dezentraler Ebene bei."

Da die Insolvenz von Kommunen laut deutschem Insolvenzrecht ausgeschlossen ist und der vertikale Finanzausgleich die Liquidität der Gemeinden sichert, gelten Kommunen als erstklassige Schuldner. Auch die Kompetenzen der kommunalen Aufsichtsbehörden sichern die Solvenz deutscher Gebietskörperschaften. Damit ist eine Investition in einen Bürgerkredit sicherer als eine Einlage bei einem Kreditinstitut.

"Der Vorteil ist, so paradox es klingen mag, dass man sich die Konflikte der kommunalen Verschuldung direkt in den Gemeinderat und in die Bürgerversammlung holt."

Literatur
 Staehler, Magnus: 1-2-3 Schuldenfrei. Wien 2008, ISBN 978-3-7093-0226-2.
 Blaesi, Fabian: P2P Kredite. Norderstedt, 2010, ISBN 978-3-8391-4932-4.
 Lochmaier, Lothar: Die Band sind wir. Hannover, 2010, ISBN 978-3-936931-64-8.

Weblinks
 buergerkredit.de – Zusammenstellung von aktuellen Bürgerkredit-Projekten in Deutschland

Einzelnachweise

Kreditgeschäft
Kommunalpolitik (Deutschland)
Quickborn

redpajama_set_name: RedPajamaWikipedia


text:
Q: How to identify my device by their physical path? I'm creating a computer which manipulate harddrives.
I would like to identify the harddrive not by the order in which I plug them into my computer but by the slot I put them into.
I know Ubuntu (Linux/Udev) used to have a "by-path" sorting folder for persistent device naming. But it has been removed for a reason I don't quite understand.
I'm seeking help to somehow recreate a way to identify the physical path and therefore the slot I plug my harddrive into. I think through udev rules it should be possible but I don't know how they work.

A: The by-path for ATA devices was removed because it was possible for the same device to have multiple different by-path names.
There are a couple of options to get the physical path, including reading /sys/block/, asking blkid, querying udevadm, or querying udisks.
If you want a list of block devices with mountable file systems which are present, and don't want to use any extra libraries, then perhaps the simplest thing is:
udevadm trigger --dry-run --verbose --property-match=ID_FS_USAGE=filesystem

(this doesn't need any root privileges). If you want all block devices, then
udevadm trigger --dry-run --verbose --subsystem-match=block

will give a list, including device-mapper (and also loopback, etc...).
Source: bug #1193705


text:
You are at:Home»News»Flight Testing»Advent completes FAA tests on eABS-equipped Pilatus PC-12NG
Advent completes FAA tests on eABS-equipped Pilatus PC-12NG
By Anthony James on	 19th April 2017 Flight Testing
Advent Aircraft Systems has successfully completed FAA flight testing of its trademarked eABS anti-skid braking system for the Pilatus PC-12 series. Once the Supplemental Type Certificate is issued, it will mark the first time an anti-skid system will be available for the aircraft. The Advent eABS is currently certified for the Eclipse EA500/550, King Air B300, Textron Aviation Defense T-6B/C, with pending certification for the King Air B200 to come.
Company flight tests were conducted at Sanford Seacoast Regional Airport, Sanford, Maine (KSFM) on March 26, followed by formal FAA flight tests on March 30. Peter Simpson, pilot in command for the FAA flight test, said "The new stopping performance of the airplane was remarkable and exceeded expectations, with excellent directional control throughout all test events. The technology of the system integrates perfectly with the PC-12."
During the FAA tests, an average 24% reduction in all stopping distances was recorded, with landing rolls reduced an average of 26%, while maximum take-off weight accelerate-stopping was reduced by an average of 19%. The tests were conducted on both dry and wet runway conditions. By regulation, all tests were performed without the use of reverse thrust and compared to the Aircraft Flight Manual (AFM) distances for the day's conditions.
A total of 16 hard braking events were performed at light, medium, heavy and maximum weight conditions over the two days of company and FAA flight tests. Events consisted of six landings and two accelerate-stops on each day. All events were performed using the same single set of tires and brakes, with negligible wear.
Reduction in maximum weight accelerate-stop distances equated to 620ft in dry conditions and 520ft in wet conditions, introducing a substantial new safety margin for operators in case of an aborted take-off. The landing roll reductions and reduced risk at all weights offer the PC-12 operator an alternative or complement to the use of reverse thrust, particularly at lighter aircraft weights where the risk of damaging tires can be highest for airplanes not equipped with anti-skid brakes.
For certification purposes, Advent only had to demonstrate to the FAA the safe operation of the systems and that stopping distances for the PC-12 with the eABS installed were no worse than existing AFM values. However, subject to customer demand, Advent would consider seeking FAA approval for a revision to the AFM to incorporate the reduced stopping distances demonstrated during testing.
Edited by Michael Jones
G500 and G600 business jets show steep approach capabilities
Flight testing of A321XLR on track to start next year
Airbus reports 'promising' results from major sustainable aircraft fuel emissions study


text:
Mad Science: Tesla's Radio
They said I was mad! Mad, I tell you! But soon I shall show them all, bwahahahaha!
The weird looking contraption in the picture above? I built it, and it works, and you can listen to it a few paragraphs down. But first, some backstory!
There's a good chance you were taught that a man named Marconi invented the device we call the radio, and that his patent was issued in 1904, ushering in the age of the wireless and kicking off the gadget-happy 20th century in grand style.
It's a good story, but it's also a big fat lie. The truth is this -- Marconi's financial backers, Thomas Edison and Andrew Carnegie, slipped the American Patent Office an undisclosed sum of cash, and the owners of the original radio patent found their patent revoked. I can only assume these unfortunate fellows were notified via mail, in a letter which stated 'Sorry, but wow that was a LOT of money.'
But if you dig a little deeper, you'll find that a Serbian genius named Nikola Tesla had the whole lot of radio experimenters beat, because he was sitting up late nights in his laboratory near Pike's Peak and freaking himself out with the radio he built before the rest of the gang ever gazed longingly at a chunk of germanium and wondered if they could drag voices from it.
Rocking that 'stache like a boss.
Let's set the scene in Tesla's laboratory, which did indeed look like the set from the original Frankenstein movie. The place was littered with massive Tesla coils, some of which could throw sparks over a hundred feet. There were electric motors spinning and sparking, AC transformers humming, gears and pulleys turning away. If you think I'm exaggerating, consider this -- residents of the nearby town knew when Tesla was at work when sparks reached from the soles of their shoes down to the street every time they took a step. The blue glow that surrounded Tesla's tower was visible from town.
Nikola Tesla wasn't screwing around. He invented the electric motors still in use today. AC power? That's his. So are a dozen other commonplace bits of technical wizardry. The man would build machines in his head, watch them fail, make mental improvements until he'd worked the bugs out. Only then would be set about constructing the actual device. He was that good.
So, late one night in 1893, he fired up the radio set he casually conceived and listened, curious as to what he might hear.
What he heard astounded him. Frightened him, even. He became convinced that he was picking up some form of communication between entities unknown.
You can read his own recounting of his first exposure to radio in this 1901 article Tesla wrote for Collier's Magazine.
Talking With the Planets by Nikola Tesla
In the article, Tesla (correctly) decides radio is the best way to communicate over long distances. I doubt he foresaw radio's use as a way to sell laundry detergent, but nobody's perfect.
Of his first experiences with radio, Tesla says this:
"I can never forget the first sensations I experienced when it dawned upon me that I had observed something possibly of incalculable consequences to mankind. I felt as though I were present at the birth of a new knowledge or the revelation of a great truth. Even now, at times, I can vividly recall the incident, and see my apparatus as though it were actually before me. My first observations positively terrified me, as there was present in them something mysterious, not to say supernatural, and I was alone in my laboratory at night; but at that time the idea of these disturbances being intelligently controlled signals did not yet present itself to me."
--Collier's Weekly, February 19, 1901
All of which begs the question -- what did Nikola Tesla hear, that night so long ago?
He couldn't have heard commercial radio signals, because there weren't any. Distant lightning, sure, as a burst of static. The usual hissing of the cosmos, which extends all the way down to the AM band.
But nothing I could think of would present itself as voices, or attempts at communication.
Given the materials Tesla had on hand at the time, his radio set was almost certainly a chunk of germanium (or a similar crystalline mineral) and a crude arrangements of inductors, resistors, and capacitors.
Luckily, all those things are easily obtained today. What Tesla was listening to was what we call, with a hint of nostalgia, a crystal radio set. It uses no power, save for the tiny amount collected by the antenna itself. At the heart of the radio set is a tiny hunk of germanium, which is found in the center of a thing called a 'germanium diode' which runs you a whopping 49 cents from most electronic suppliers.
I built my Tesla radio based on the set found at the end of this link:
Spooky Telsa Radio on Instructables
As you can see, his radio set is prettier than mine, but mine is a better card player, so there.
If you listen to the audio samples from the Instructables page, you'll find that lightning strikes sound just like thunder. Keep in mind the output of the Instructables set is being modified with audio processing software before you hear it -- reverb and other effects are being added to make it sound cool. Which is fine, but I prefer to record nothing but the raw audio.
Well, listen to the very brief audio sample below.
CTHULHU SPEAKS
Scary, right? Sounded like something out of Satan's own closet of nightmares, didn't it?
That was me, reciting 'Mary Had a Little Lamb.' It took me six mouse clicks in Audacity to render the harmless nursery rhyme into something sinister.
Since Tesla didn't have access to my computer, I won't be adding sound effects to the recordings.
Building the Radio
If you have a mind to build your own crystal radio set, I'll include my own drawings and parts suppliers here. It's really not hard. Or you can buy pre-wired sets from various places around the web.
The Instructables site includes a complete parts list and schematic. I'm including mine because I made a few changes. Also, I didn't draw it out in schematic form, but depicted each component and where the leads should actually connect, in case anyone without electronics experience wants to give this a try.
I got a 1/8 inch mono plug to act as the output. I chose 1/8 inch because I have an old-school high-impedance earpiece with an 1/8 inch plug; I can use that listen to the radio, and a 1/8 inch mono cable to plug the radio into my PC's mic input so I can record the sounds. More about that later.
You can build your rig any way you want to, as long as the proper connections are made. Soldering is involved, but that's easy to learn and soldering irons are cheap. The only thing you need to be careful about is soldering the diode; they're fragile, and heat can quickly destroy them, so don't leave the iron on the leads too long.
I got D1, VC1, L1, R1, and C1 pictured above from the nice people at Scott's Electronic Parts. Below are the parts numbers from Scott's:
D1 - #1N34A-1
VC1 - #Var141-1
L1 - #FAC
C1 - #Cap.001uf-4
R1 - I had a 47K ohm resistor already. The Radio Shack part number is 271-1342
Earpiece - #CerEar-1
Mono plug for 1/8 inch mono cable: Radio Shack part number 274-251
The small amplifier shown in the photos is a Radio Shack part number 277-1008, cost $14.
I had a scrap of oak to use for the base. I got a five by six inch piece of 1/8 clear plexiglass to use as a component mounting board. Four bolts hold the whole thing together.
I wound my hilariously un-circular spiral antennas from 14 gauge copper wire. I would up attaching each spiral to a small sheet of clear plexi because the coils kept flopping around and shorting out.
Why spiral antennas? Because Tesla's drawing and notes are littered with spirals. The man loved a spiral or two. That's a bit of homage to him, it was a shape I could easily create with six feet of copper wire, and since this project is as much about fun and art as it is about anything else, why not a spiral?
The antennas plug into banana jacks, easily gotten from Radio Shack, and the whole works cost around 30 bucks.
So, the radio was finished. I could hear sounds and voices in my earpiece. It was time to plug one end of the mono cable into the radio, and the other end into my PC's mic input. Which I did. I then fired up Audacity, selected the mic input, and hit record.
Nothing happened. Nothing at all. I was monitoring the input levels, and they were stuck at zero.
I plugged my earpiece in, and heard voices.
What did that mean?
It meant the radio's output was far to weak to reach mic-level ranges, which start around 0.3 volts. I made a sad face, cranked the gain up within Audacity to ludicrous and stupid levels, and still got nothing.
I asked myself 'What would Tesla do?' and rummaged through my ghost-hunting gear until I found a small portable audio amplifier. I hooked it up to the radio, and it started mumbling in loud angry Spanish, so I knew I was onto something. The little amp has an auxiliary output, so I plugged that into my PC, and like magic, the voices began to speak.
Now, Frank, shut up and tell us how it sounds!
Listening to the Spooky Voices of the Planets
The little radio fired right up, filling my earpiece with a mixture of static, faint voices, and the ever-present 60-cycle hum of modern house wiring.
By gently turning the knob on the variable capacitor, you can (sort of) tune in on different signals. Now, keep in mind this isn't a commercial radio set. It doesn't actually have what even the cheapest Wal-Mart radio would call a 'tuner section.' Stations come and go, fade in and fade out, pretty much at random. One minute you're getting the local NPR station, the next it's an agitated gentleman speaking in rapid-fire Spanish, and then that gives way to garbled music and what sounds very much like goats bleating.
And that's just during the day. At night, when the ionosphere bounces AM radio signals around like so many meth-crazed tennis balls, things do get weird.
But hey, you've read this long, here's a sample, torn right off the late-night airwaves!
AUDIO SAMPLE 1
Gotta love that whole Children of the Corn vibe the preacher was giving off. The late-night airwaves of today are a static-flooded wasteland of AM sermonizers, each stranger than the last. I heard one such worthy exhorting the many miraculous blessings of the Magic Hand, which was quick to bestow upon its owners good fortune, improved health, and a joyous love life, Mastercard and VISA gladly accepted for orders, quantities limited, get yours today!
All of which is amusing enough, but what about the sounds that caused a genius such as Nikola Tesla to determine, well before anyone else, that radio would one day be the link between Mars and Earth?
Well, in that regard, I must report my brief explorations have thus far returned nothing. Attempts to 'tune' between active stations are almost impossible -- there are a LOT more AM stations broadcasting than I thought. Too, the range of such stations can vary wildly. I routinely pick up brief transmissions from South America and Mexico, even on this little rig.
The 60-cycle hum is truly annoying. My next recording session will be held outdoors, far from the house, recorded on my ancient Dell netbook. I hope doing so will make any faint signals easier to detect.
So What Did Tesla Hear?
To put my conclusions in esoteric scientific terms, man, I have no idea.
Aside from static in one form or another, I can't image the radio environment of 1893 being very rich in anything but white noise and brief loud cracks of lightning. Was Tesla hearing the workings of his own machines? Was his radio set somehow creating weird sounds as part of a technical malfunction? Was Tesla just pulling our legs because articles about boring old static don't sell many stories to Collier's Magazine?
We may never know. I will keep playing with this radio, though, and if I manage to get Mars on the horn, you'll be the first to hear it!
The big event, naturally, the new Markhat release! The new book THE FIVE FACES goes on sale June 17.
I can tell more than a few people have already put in pre-orders, and for that I thank you!
Things That Go Bump 2014 Issue #2, and BOOK RELEASE!
The Perfect Face for Radio