FORT LAUDERDALE, FL, January 27, 2017 — Cushman & Wakefield announced today that it has negotiated an 8,092-square-foot office lease with Esquire Deposition Solutions in SunTrust Center at Las Olas Square.
Cushman & Wakefield's office leasing team of Executive Director Travis Herring, Executive Director Deanna Lobinsky, Director Katherine Ridgway and Associate Chase Kulp negotiated the lease renewal on behalf of building owner Steelbridge Capital. Esquire Deposition Solutions was represented by Stone-Miller.
Atlanta-based Esquire Deposition Solutions is a global provider of legal deposition services with 12 offices throughout the state of Florida. The firm, which has been a tenant at Las Olas Square since 2011, renewed its lease on the 13th floor and is expected to make minor improvements to its existing space.
Las Olas Square was developed in 1992 and is comprised of SunTrust Center at Las Olas Square, a 17-story office tower at 515 East Las Olas Boulevard, and 501 at Las Olas Square, a ±50,000-square-foot, three-story mixed-use building at 501 East Las Olas Boulevard. The project also includes a five-story structured parking garage and offers 24-hour security, on-site banking, an on-site café and excellent views of the Atlantic Ocean and New River.
Steelbridge will soon begin significant renovations at Las Olas Square, upgrading the lobby and common areas in SunTrust Center at Las Olas as well as making improvements to the connected parking garage.
Steelbridge also plans to fully renovate and modernize 501 at Las Olas Square. The owners will refinish the building exterior with a clean, contemporary, all-impact glass facade while updating the lobby and interiors as well as mechanical and life-safety systems. The plaza between the tower and mixed-use building will be converted to an attractive urban square designed to serve as a gathering place for tenants and the general public.
Steelbridge Capital is a Chicago- and Miami-based value focused real estate investor and real estate services provider, with special expertise in markets with high job growth and strong natural barriers to entry like Florida. It is dedicated to acquiring real estate — either through debt or equity or private or public markets — whose values have been temporarily discounted due to supply/demand imbalances in real estate capital, space or information markets and whose values can be significantly enhanced through redevelopment and repositioning. Please visit us at www.steelbridgecapital.com.


text:
Q: How to draw a sankey-like rectangle flow chart I'm trying to draw a graph like this: Fan Loyalty Changed During the World Cup

The data I have is a JSON file which includes all the fans support numbers in each round.
Initially, I thought it's very like a Sankey diagram, but I found it's different.

For drawing Sankey, you need to have source node, target node, and value. The source and the target nodes in my case are same, and I don't have the link information. All I have is the number for each layer (can be treated as the node height in Sankey diagram)
And idea of how to draw it using d3.js?

redpajama_set_name: RedPajamaStackExchange


text:
Art in the City / Lifestyles
Slow Down with Slow Art
by Catherine Trifiletti · February 28, 2019
After a $200 million expansion, the new and improved Glenstone museum in Potomac, Md. masters the art of relaxation through contemporary art.
Photos by Iran Baan, courtesy Glenstone Museum
As visitors to Glenstone make the seven minute walk from the parking lot to the private art museum's freshly-launched Pavilions complex there are two words that subtly manifest– "chill out." It turns out that the commute through the rolling green hills of Potomac, Md. was an intentional design element that represents founders Mitch and Emily Raleses' ethos for their 230-acre art campus, a portion of which opened its doors late last year after a $200 million expansion. The distinctly different arrival exercise mentally and physically prepares visitors for the museum's unique approach to experiencing art. "We hope that you will slow down," director and co-founder Emily Rales explained to media prior to opening, "and that your pulse will also slow down."
Once inside, visitors are invited to enjoy the impressive showcase of post-World War II art in the same low-key manner and in tandem with a growing movement in the creative world called the "slow art" method. Through an advanced ticket reservation system that ensures the space is never overcrowded, a no photo policy and longer installation periods, the museum encourages visitors to check their haste (and social media) at the parking lot. "These types of artworks take time to understand and appreciate," Emily says, further explaining that time is needed to "engage these complex works in the most profound way possible."
She is referring to a priceless roster of works by contemporary greats, including Jasper Johns, Mark Rothko and Louise Borgeois, all of which are on display in pristine white gallery rooms sans traditional barriers. The collection reflects the couple's commitment to progressive artists who "have altered the way we think about art–creating distinctive, often challenging bodies of work, and changing the course of art history," Emily told Washington Life.
There is seamless flow between the property's pristine landscape and modern architecture courtesy of Thomas Phifer and Partners and PWP Landscape Architecture– teams that spent years carefully crafting a setting that induces tranquility. A set of muted gray concrete buildings housing the collection feature long spacious corridors that commingle with massive skylights and windows to create a minimalist template that allows the bold and colorful pieces of avant-garde art to come alive. The galleries are anchored by a serene open-air courtyard complete with a pond filled with water lilies.
The Raleses drew inspiration for Glenstone from a range of art institutions across the globe including the Menil Collection in Houston and the Louisiana Museum of Modern Art in Denmark. From each of the nearly 50 private institutions they visited, the couple internalized ideas and moments that appropriately established a sense of place, noting those ideals as they designed the Pavilions complex—an expansion to the original museum, which opened in 2006.
Every detail was considered and centered on the idea that art should make you think and feel at the same time. "All of these features were designed to offer opportunities for meaningful and contemplative encounters with art, architecture and nature," Emily says.
Art On Your Own Terms
In the galleries there are no didactics for artwork besides title, artist and year, leaving each piece open for personal interpretation and prompting visitors to engage with gray-clad guides, who are quietly stationed in the corner of each gallery. Many of them are part of Glenstone's emerging professionals program, a two year commitment that was developed especially for recent graduates looking to pursue a career in the arts.
Glenstone | Open Thurs. – Sun. 10 a.m. to 5 p.m. | admission and parking free | glenstone.org
This article appeared in the February 2019 issue of Washington Life magazine.
Tags: Emily RalesGlenstoneMitch Rales
Next story Charity Spotlight: DC's Top Female Chefs Fire Up a Culinary Indulgence
Previous story My Washington: Jean Case
The 2008 Philanthropic 50 List
Very Private Properties

redpajama_set_name: RedPajamaCommonCrawl


Off and on for years, I have been fortunate to help others in many different ways…mostly younger folks in my earlier years. When dealing with teenagers, I had read that I had to be able to speak their language…that's a lot of rot gut! They have the same basic desires that adults do…fun, love, play games, work puzzles, want to be successful, etc.!
When attempting to encourage them to read and write, all I had to do was get their attention, which wasn't that hard to do. In the case of the males, where is most of their attention focused? You nailed it – the females! And of course, it was just the opposite with the females. So I would just explain to the males that the more they read, the more they learn. The more they learn, the better conversationalist they are, and the better conversationalist they are, the more interesting they are to the females. At least, it worked quite well most of the time.
Where were they born? Have they had an out of body experience? Do they believe in ghosts? Where have they traveled, and did anything unusual happen? Have they ever met a movie star, or someone else who is famous? What type of work do they do, and has anything unusual ever happen there? In other words, after you ask the question, listen, listen, listen…and maintain eye contact. Let them know you are truly interested in what they say. And one of the neatest things about asking others questions and listening, is that they give you more information to ask more questions about.
Naturally, we all love to talk, and yours truly is no different. But in order to be interesting, we should know what we are talking about. And the most profound method of knowing what we are talking about is learn, and the easiest way I know of to learn about a subject is to read about it.
Reading is one of the most wonderful pastimes there that exists, and the benefits are enormous. To name a few; we not only learn, we relax almost all of the muscles in our bodies, our stress level is almost non-existent, and it allows our imagination to bring forth new ideas that we can use in our lives.
Another life-broadening, covetous, and soul-strengthening method of being more interesting is to write about your self. Yep, writing about your self allows you to discover strengths and weaknesses that you may not realize you have. Personally, I sincerely believe it is the over whelming method of empowering your self…I have done it many times throughout my life. But you must be totally honest about it! I use to read almost a book a week, but when I started writing honestly about myself, I soon discovered how little I knew, the many weaknesses I have, my stronger aspects, and way too much more to delve into here.
Having said all that, I will leave you with this: Read a lot, practice asking questions, write honestly about yourself, and you will soon be amazed at the improvements in you, your life, your relationships, and your job. Plus, the most tremendous, stupendous, magnificent, incredible, formidable, and almost mystical part is that you will soon be far better off than you are today, and in so many ways that you won't believe it. And then just imagine what you could do next!


We love the table!!! Thank you. We have it in our living room at our Caledonia home. It looks great here but will look even better in our log cabin!! Thank you again!
Thanks again for delivering our new bench top. Stu and I just love it!! We purchased the wood (black walnut) last weekend and Stu has started to make the legs and frame. I can hardly wait to have it in place! It will really be a beautiful, piece of art at our front door. You are certainly welcome to come by and see it in October when you're down this way. I'm sure Stu will also want to send you a picture of the finished product. Thanks again!
Thanks so much. It feels good to have original, well-crafted furniture in our home.
Wishing you continued success in your work.
You created the beautiful tables for our new offices in the Fall they are absolutely perfect. We have just added some new furniture in the last couple of weeks and have discovered that we need a couple of additional tables.
Thanks Ted so much for my lovely coffee table. It matches my new couch/furniture perfectly. I am very happy. You are a great artist. Have a good summer.
in front of the love-seat, no way can we move it. I tried, and it is so heavy.
If ever you need a written letter to show people some responses to your product, please let me know..
Thank you so very much..You both out did yourselves. I just love it.
Just got home and saw the table.
Gorgeous! I love, love, love it.
Thanks you so much. It will be a beautiful piece of art our family will enjoy for years.
Ted may work in concrete but he's an artist. We had just had our backyard completely redone and rather than get a cookie-cutter firepit from our contractor, we sought out Tuscany Concrete for a table that is one of a kind and a piece of art. We've got a coral-bark Japanese maple in the back and Ted collected a few dozen leaves to use for the design of the firepit table. He chose colors for the table and the metal cover that fully compliment our backyard scheme. We couldn't be happier.
After raising four daughters and with retirement quickly approaching, my wife and I sought the tranquility of a lakefront property and together we built our home on Little Mink Lake in Fernleigh, Ontario.


What you need – good salt. I used Himalayan here from @ByronBayHealthySaltCo. Large, pretty, glass jars- washed in really hot water and natural detergent then rinsed in hot water again. Loads of lemons washed, dried and any stems removed.
Step 2. Place 2 tbsp salt on base of jar them push lemons in as firmly as you can, releasing some of their juice as you do. Squeeze enough lemons to completely cover, then sprinkle with another tablespoon of salt before sealing. I added a tbls or so of coriander seeds also. I used about 1 1/2 cups salt and 10 whole lemons, then juiced another 7 to cover. Shake everyday for 3 days then store away from direct sunlight for 6 weeks. Now to juice the lemons for the second bottle – in background. They'll last like this out of the fridge for about 12 -18 months.
To use, take a quarter of a lemon and remove flesh song a knife. Finely slice or dice then add to your curry, salad, fritters, frittata, soups, hummus and other dips, casseroles etc.


Abstract: Customer churn is an ever-growing issue in the relational services sector (e.g., retail banking, telecommunications), where business models ultimately depend upon long-term relationships with customers as the basis for profitability. Businesses in this sector have tended to view satisfaction and service quality as the key tools for increasing customer retention. The present study investigates the important additional role of the brand in managing the churn of current customers of relational services. Based on information economics, we propose specifically that the credibility of the brand underlies the role that the brand can play in this process. This research leads to the enhanced understanding that the brand has a significant role to play in managing long-term customer relationships, and details how the usual tools of customer relationship management, satisfaction and service quality, relate to brand credibility. Results from samples of retail bank and long distance telephone company customers indicate that brand credibility serves in a defensive role: it significantly enhances word-of-mouth and reduces switching behaviors among customers; these relationships are mediated by customer satisfaction and commitment. Implications of the study for theory and practice are discussed.


text:
Q: Increase Electron Memory limit My electron app crashes as soon as the memory usage reaches 2,000 MB.
I can test it by having this code in my main process file which intentionally raises the memory usage:
    const all = [];
    let big = [];
    all.push(big);
    for (let i = 0; i < 2000000000; i++) {
      const newLen = big.push(Math.random());
      if (newLen % 500000 === 0) {
        big = [];
        all.push(big);
        console.log('all.length: ' + all.length);
        console.log('heapTotal: ' + Math.round(process.memoryUsage().heapTotal / 1e6));
      }
    }
    console.log(all.length);

I have tried everything:
require('v8').setFlagsFromString('--max-old-space-size=4096');

app.commandLine.appendSwitch('js-flags', '--max-old-space-size=4096');

But nothing it working...
Tested on electron v3.0.0-beta.12 AND on electron v2.0.9 ~ 2.0.x
How can I increase the memory limit on Electron & not have my app crash as soon as it hits 2GB or RAM usage?

A: No such problem in electron >8.0.3 (at least).
Tested with multiple Buffers, ~2GB each (buffer.constants.MAX_LENGTH)


text:
Polygamists' children speak
'We are not brainwashed': A rally is organized to counter a negative image conveyed by those who have fled the lifestyle
About 300 people from four fundamentalist Mormon communities attend a rally Saturday at the Salt Lake City-County Building. Speakers at the pro-polygamy rally lead the audience Saturday in the Pledge of Allegiance at the Salt Lake City-County Building.
By Brooke Adams
· August 20, 2006 12:41 am
Youth from polygamous communities spoke of family, friendships, faith and their hopes for the future in a historic gathering Saturday in Salt Lake City in defense of the banned life-style.
They offered one another encouragement, provided glimpses into their lives and appealed to the public to stop fearing their families.
"We are not brainwashed, mistreated, neglected, malnourished, illiterate, defective or dysfunctional," said Jessica, 17. "We are useful, responsible, productive members of society."
About 300 people from four fundamentalist Mormon communities attended the rally held at the Salt Lake City-County Building.
"I was so proud of them. I had no idea what to expect. They wrote all their own stuff," said Joe, a Salt Lake City polygamist whose children were among the 15 speakers. "It was inspiring. There is something about seeing young people being actively involved and speaking up for their rights and constitutional freedoms."
Principle Voices, a pro-polygamy advocacy group, and a coalition of polygamous groups organized the event to counter negative portrayals of the life-style offered by women and children who've fled some communities, particularly the Fundamentalist Church of Jesus Christ of Latter Day Saints.
The FLDS, based in the twin towns of Hildale, Utah, and Colorado City, Ariz., has been under fire by government and anti-polygamy activists for sanctioning underage marriages and forcing hundreds of youth, particularly boys, out of the community for minor infractions. The FLDS did not participate in the rally.
One speaker said most of what is shown in the media does not reflect her own reality.
"I have never experienced any of these horror stories I have heard in the media," said Katherine, 16. "Nor do I know anyone who has. I was raised in the Salt Lake Valley by parents that gave me a wonderful childhood, teaching me strong, moral beliefs about freedom of choice and respect for others."
A public rally featuring youth is a first for Utah's polygamous communities, whose members tend to keep family connections secret to avoid government prosecution and persecution from disapproving employers, neighbors and, for children, peers.
For that reason, those who spoke - and many who offered comments afterward - used only their first names. To signal unity, they also did not disclose their group associations.
Similar gatherings have occurred just twice. In January 1870, some 6,000 women gathered at the Salt Lake Tabernacle for what they dubbed the "Great Indignation Meeting," to protest anti-polygamy laws. In 2001, a mixed group of fundamentalists lobbied the Utah Legislature as it debated marriage laws.
Saturday's event, however, also was momentous in bringing together four major fundamentalist Mormon groups: the Davis County Cooperative Society, Centennial Park over the border in Arizona, the Apostolic United Brethren and independent fundamentalists. The groups have carved out different approaches to fundamentalism and plural marriage since The Church of Jesus Christ of Latter-day Saints publicly abandoned polygamy in 1890.
"They have always had common ground in terms of their reverence for the old-time religion of pioneer Mormonism and their determination to continue plural marriage, but the authority claims that have divided them have made them live separate ecclesiastical and social lives," said Michael D. Quinn, an independent historian.
Rally organizers expect bridge-building to continue, with other gatherings and cross-community service projects already under discussion.
"This is the dream I had back in 2001 when our work started," said Linda Kelsch, a co-founder of Principle Voices. "It's an important step forward."
Some children said it was fun to be exposed to others who have grown up in families like theirs.
"I thought it was way cool to see other youth stand up and talk about their experiences," said Katie, 13. "I didn't know there were that many polygamists."
The rally drew criticism from anti-polygamy groups, who suggested it be ignored and said organizers were manipulating youth to promote the illegal life-style while downplaying abuses they say are inherent in it.
"We have concerns that the children are being exploited to serve the polygamists' political agenda to legalize or decriminalize polygamy," said Vicky Prunty, director of Tapestry Against Polygamy.
The rally drew local as well as national media attention, from CNN to MTV, which talked to teens about their views of the modern-music scene. Two women also filmed the crowd for costume designers from the hit HBO Series "Big Love."
Paul Murphy, spokesman for Utah Attorney General Mark Shurtleff, attended the rally "to learn." A handful of curious members of the broader community also stopped by.
What Tyler, 19, wanted them and others to know was that he was making his own decisions about his lifestyle.
" I have lived in a polygamist culture for most of my life," he said. "I have made the choice to someday live this principle and I don't expect you to understand the reasons for this choice. But I do expect you to defend my right to make that choice."
Parents said seeing their children speak out publicly was wonderful - and bittersweet.
"I felt like they were saying what I wanted to say my whole life," said Carlene Cannon, member of the coalition and Davis County Cooperative.
brooke@sltrib.com


There are lots of perceived connections that high-end timepieces have to certain human activities.
Countless watches have captured enthusiasts' imaginations for their links to diving, racing, boating, flying, exploration and just about every other feat of human endeavour — however a special place in the annals of timekeeping will always be reserved for anything space related.
We actually saw this little more than a month ago, when OMEGA made waves by reintroducing the Caliber 321 movement: the piece that NASA's Astronauts wore to (and on) the moon during the Apollo lunar missions.
The OMEGA in particular that Buzz Aldrin was pictured wearing on the lunar surface, which was stolen after Aldrin mailed it to the Smithsonian, is perhaps the most famous missing watch in the world.
Needless to say then, when a Hamilton Khaki Field watch appeared in a major way in Christopher Nolan's spacefaring epic Interstellar, people were left clamoring for a chance to buy one.
Now, after five years of people asking, Hamilton's Field Khaki 'Murph' has arrived online, and it's a chance to own a true piece of sci-fi history without breaking the bank.
Those familiar with the film will remember the watch as belonging to Murph, the daughter of NASA astronaut Joseph Cooper.
He gifts her a carbon copy of his same watch before he leaves on his intergalactic voyage, so that they can compare the divergence in time after he returns to earth.
This is basically where the simplicity ends. Through a method that no-one aside from an astrophysicist could realistically expect to understand, the watch, which throughout the film is a symbol of the connection between the two, becomes the key point of communication between the two when Cooper finds himself in the Tesseract.
Hamilton have made the watch to be almost a complete replica of that featured in the film, however the key difference between the two is one that will undoubtedly thrill fans: the pattern of the morse code (remember, Cooper uses Murph's watch to communicate with her via morse code) on the watch's minute hand spells 'Eureka!'.
Aside from this, the Field Khaki makes for a fairly simplistic, low-key watch — albeit one that exudes rugged, pilot-inspired class. The 42mm case is made from stainless steel, complimented by a simple black face and leather strap, while under the hood the watch boasts a Swiss-Made, H-10 automatic movement with 80 hours of power reserve.
Thankfully, Hamilton are going to be making plenty of the watches, although just 2,555 of the watches will come with limited-edition Tesseract-inspired packaging. You can take a closer look at Hamilton's website and HODINKEE's web store here.


text:
San Bruno Mountain conservancy taking new approach
By Julia M. Scott | Bay Area News Group
Looking out across an empty, rolling grassland pressed up against the Northeast Ridge of San Bruno Mountain, Ken McIntire sees hiking trails in place of a chain-link fence that reminds people that this site is private property. He also sees dollar signs.
"We're all broke right now, but we have to dream, you know?" said McIntire, executive director of the newly-renamed San Bruno Mountain Watch Conservancy.
McIntire is doing a lot of dreaming these days. He plans to transform the conservancy into a trust with enough funding to purchase at least five vacant properties in and around Brisbane, including Levinson Estate, the land he visited Tuesday afternoon.
That dream is a long way off. At the moment the conservancy, which grew out of the environmental advocacy collective San Bruno Mountain Watch, has so little funding that McIntire works odd jobs to support himself and the organization. But by this time next year, he hopes to have recruited some board members with ties to powerful Bay Area land trusts and found some interested sellers.
Rather than continuing to file expensive lawsuits to stop local development projects from moving forward where they encroach on threatened or endangered species, the nonprofit decided to take a more proactive approach to stopping development on the slopes of San Bruno Mountain and out on the Brisbane Baylands.
Simple enough in conception, it's modeled after bigger land trusts like the Midpeninsula Regional Open Space District that have demonstrated that the best way to protect land from development is to acquire it in perpetuity.
One project has already received support from prominent officials in San Francisco and San Mateo counties — a vision for an unprecedented Bay-to-ocean "greenbelt," or walkable nature corridor, that would skirt the southern border of San Francisco near the Bay at Candlestick Point, climb over San Bruno Mountain to Colma and Daly City and end up at Pacifica's Sweeney Ridge, a portion of the Golden Gate National Recreation Area.
To accomplish this vision, McIntire formed the Green Corridor Committee with the enthusiastic participation of San Francisco Supervisor Sophie Maxwell, San Mateo County Parks Director Dave Holland and others last year.
It's unclear exactly what path the "greenbelt" would follow, but McIntire is eyeing a couple of cemeteries in Colma for conservation easements, essentially a plan to purchase space for a public right of way instead of attempting to buy the whole property.
He said cougars have found a way to get all the way from Sweeney Ridge to San Bruno Mountain in recent years, suggesting they may have already carved out a mysterious "wildlife corridor" in the urban zones surrounding the mountain that humans have yet to follow.
One has only to look down Bayshore Boulevard to see the development pressure bearing down on the border this town of 4,000 shares with San Francisco.
A 46-acre "transit village" in the works for San Francisco's Visitacion Valley and a 300-acre mixed-use proposal in the works for the previously undeveloped Brisbane Baylands will put the "urban" in suburban, providing a strong argument to protect green, undeveloped pockets of land where they still exist.
Almost 2,000 acres along the ridges of the mountain have already been protected as a county park, which stretches between Daly City, Colma, South San Francisco, Brisbane and San Francisco Bay.
"This is one of the largest urban parks in the country and we want to continue that effort. We want a place where people can go, where it's open. It's obvious to me that people are losing touch with their natural surroundings," said Del Schembari, a board member with the San Bruno Mountain Watch Conservancy and a South City resident.
Other than the Levinson Estate, the conservancy would like to acquire several small properties on the Baylands as well as the Brisbane Lagoon, a single parcel in Daly City and the Brisbane Quarry, the site of an ongoing tug-of-war between development interests and locals who hope to build a nature education center.
Some properties contain plant or animal species found almost nowhere else in the Bay, such as the endangered San Bruno Elfin Butterfly and the plant it depends on, the viola. Others would act as a buffer zone between the commercial parts of the Baylands and the county parkland. Other than the Colma cemeteries, the group intends to ask for a conservation easement through Pacific Nurseries Flower farm in Colma.
The conservancy has yet to contact all the landowners or get property appraisals, but all that will come soon. Raising the money is the part they seem least daunted by, even though the quarry alone is valued at $40 million.
"It's sort of like if you build it, they will come. Once we get the conservancy built up, funding will come into it. In the Bay Area, there are a lot of ecologically-minded people," said Schembari, speaking with conviction.
McIntire's group has sued over development plans approved by Brisbane over the years, especially over the ongoing home construction on the mountain's Northeast Ridge. But everyone supports the city's efforts to buy back vacant land in the Brisbane Acres, a hillside that forms a visual backdrop at the center of town. Since 1998, the town has added $100,000 a year to an open space fund to purchase pieces of the Brisbane Acres. Thanks to some matching grants, it has succeeded in preserving 48 acres' worth of land on 40 separate parcels.
A history of intermittent development in Brisbane has left pieces of grassland stranded between housing tracts. Many of the vacant parcels are no bigger than an acre, a legacy of when Brisbane was founded as Vistacion City in 1908 and subdivided into a series of one-acre parcels. Many were never built on because the original developer never added the necessary roads or water lines. Joining pieces of vacant land has been like "putting Humpty Dumpty back together," said Fred Smith, assistant city manager and administrator of the town's land acquisition program.
No other city in San Mateo County has a fund set aside to purchase open space.
Much like the San Bruno Mountain Watch Conservancy, town officials developed a list of vacant lands they wanted to preserve when they founded the program as development pressure around town become more intense.
"As real estate prices skyrocketed in the early 1990s and 2000s, we became concerned that as houses were staring to sell for over one million (dollars), it would become feasible to build on these properties," he said.
Reach staff writer Julia Scott at 650-348-4340 or at julia.scott@bayareanewsgroup.com.
Julia M. Scott


With my PhD reserach finally done and dusted I want to have some fun with some ideas I have had floating around. One of these is to document a year in pictures. I've chosen to focus this idea on the subject I teach at a UK University. The plan is simple, upload an image each week to an on-line gallery and encourage both students and colleagues to do the same. You can watch the year unfold here . At the end of the year (academic year) the images will be published as a picture book.


text:
Q: Creating table from lists in sorted manner in Google Earth Engine I have calculated the area coverage of landcover types in a region and sort them
now I want to export the results as a table to drive in a sorted manner
when I combine them in a new dictionary object type their sort is not applied and I obtain an unsorted values
thus I want to export them as a table to drive in a sorted manner
How can I do that?
In detail I have two lists for an example lists (for shorter representation):
var b=ee.List([4.5,2.8,7.4])
var c= ee.List(['a','b','c'])
print('b',b)
var dict=ee.Dictionary.fromLists(c,b)
print('dict',dict)

var ssf=b.sort()
print('ssf',ssf)
var getindex = function(x) {
  return ssf.indexOf(x);
};
var valsb = b.map(getindex);
print('valsb',valsb)

var getval = function(x) {
  return dict.values().get(x);
};
var xz=ee.List(valsb)
var vals = xz.map(getval);
print('vals',vals)

var tt=[valsb,vals]
print('tt',tt)

but I want to have this table or list to export as txt or csv
0: b;2.8
1: a;4.5
2: c;7.4

here is the code
https://code.earthengine.google.com/?scriptPath=users%2FSolmaz%2FBurdur_Sentinel_CloudFree%3ACallDictValues_Test

A: By the help of dear JonasV, I could complete the code as I need. Here is the full code:
var b=ee.List([4.5,2.8,7.4])
var c= ee.List(['a','b','c'])
print('b',b)
var dict=ee.Dictionary.fromLists(c,b)
print('dict',dict)

var sorted_keys = dict.keys().sort(dict.values())
print(sorted_keys)

var sorted = ee.List([sorted_keys, dict.values().sort()])
print('sorted',sorted)

var dict_to_fc = ee.FeatureCollection(dict.keys().map(function(k){
  return ee.Feature(null, {key: k, value: dict.getNumber(k)})
}))

var sorted = dict_to_fc.sort('value')
print(sorted)

Export.table.toDrive({
  collection: sorted,
  description:'SolmazCSV',
  fileFormat: 'csv'
});

https://code.earthengine.google.com/?scriptPath=users%2FSolmaz%2FBurdur_Sentinel_CloudFree%3ASolved_Sort_Dictionary


text:
Q: history.push not working in fetch callback I am working on simple react js application where I am authenticating user and if he/she has successfully logged in I am trying to redirect to home page but I am in some strange situation. Please help me through the below code.
Below is the code for a function fetchAPI to call to server with some input params
function fetchAPI(methodType, url, data, callback){

    fetch(url,{
        method: methodType,
        headers: {
            'Accept': 'application/json',
            'Content-Type': 'application/json'
        },
        body: JSON.stringify(data)
    })
    .then(response => response.json())
    .then(data => callback(data) )
    .catch(error => callback(data));

}

Now I am calling it this way
fetchAPI("POST", Constants.LOGIN, data, function(callback) {
        if(callback.status == 200) {
            console.log(callback.message);
            this.props.history.push("/home");
        }else if( typeof callback.status != "undefined"){
            alertModal("Alert", callback.message);
        }
      });

The problem with this is that its not redirecting to /home as mention in response condition but only prints success message.
But when I directly use the fetch api like below code it redirects me to /home
can anybody help me out why is this happening with me ??
fetch(Constants.LOGIN, {
        method: "POST",
        headers: {
          "Content-Type": "application/json"
        },
        body: JSON.stringify(data)
      })
        .then(response => response.json())
        .then(data => {
          if (data.status == 200) {
            this.props.history.push("/home");
          } else if (typeof data.status != "undefined") {
            alertModal("Alert", data.message);
          }
        })
        .catch(error => callback(data));

A: OK, forget about callbacks, I've been there, no more CALLBACK HELL.
Use promises always, and you can simplify everything by using async/await:
async function fetchAPI(methodType, url, data){
    try {
        let result = await fetch(url, {
            method: methodType,
            headers: {
                'Accept': 'application/json',
                'Content-Type': 'application/json'
            },
            body: JSON.stringify(data)
        }); // wait until request is done
        let responseOK = response && response.ok;
        if (responseOK) {
            let data = await response.json();
            // do something with data
            return data;
        } else {
            return response;
        }
    } catch (error) {
        // log your error, you can also return it to handle it in your calling function
    }
}

in your React Component:
async someFunction(){
    let result = await fetchAPI("POST", Constants.LOGIN, data); // wait for the fetch to complete
    if (!result.error){
        // get whatever you need from 'result'
        this.props.history.push("/home");
    } else {
        // show error from 'result.error'
    }
}

Now your code looks more readable!
The errors in fetch are in either result.error or result.statusText, I stopped using fetch a long time ago, switched to Axios. Have a look at my answer on some differences between the 2 Here.
EDIT BASED ON YOUR RESPONSE
Ok, based on the code you posted:
import React from "react";
import Constants from "../Constants.jsx";
import { withRouter } from "react-router-dom";

class Login extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      email: "",
      password: "",
      errors: []
    };
  }

  showValidationErr(elm, msg) {
    this.setState(prevState => ({
      errors: [...prevState.errors, { elm, msg }]
    }));
  }

  clearValidationErr(elm) {
    this.setState(prevState => {
      let newArr = [];
      for (let err of prevState.errors) {
        if (elm != err.elm) {
          newArr.push(err);
        }
      }
      return { errors: newArr };
    });
  }

  onEmailChange(e) {
    this.setState({ email: e.target.value });
    this.clearValidationErr("email");
  }

  onPasswordChange(e) {
    this.setState({ password: e.target.value });
    this.clearValidationErr("password");
  }

  submitLogin(e) {
    e.preventDefault();

    const { email, password } = this.state;
    if (email == "") {
      this.showValidationErr("email", "Email field cannot be empty");
    }
    if (password == "") {
      this.showValidationErr("password", "Password field cannot be empty");
    }

    if (email != "" && password != "") {
      var data = {
        username: this.state.email,
        password: this.state.password
      };

        // I added function keyword between the below line
        async function someFunction(){
          let result = await fetchAPI("POST", Constants.LOGIN, data); // wait for the fetch to complete
          if (!result.error){
              this.props.history.push("/home");  // Here is the error
          } else {
              // show error from 'result.error'
          }
        }
        someFunction();
    }

  }

  render() {  ......................

####-----This is function definition------####

async function fetchAPI(methodType, url, data){
    try {
        let response = await fetch(url, {
            method: methodType,
            headers: {
                'Accept': 'application/json',
                'Content-Type': 'application/json'
            },
            body: JSON.stringify(data)
        }); // wait until request is done
        let responseOK = response && response.ok;
        if (responseOK) {
            let data = await response.json();
            // do something with data
            return data;
        } else {
            return response;
        }
    } catch (error) {
        return error;
        // log your error, you can also return it to handle it in your calling function
    }
}

This is the idea, you should make async the function that is calling the API. In your example, your function submitLogin has to be async since it will call an async function inside. As long as you call an async function, the caller MUST be async, or handle the promise accordingly. This is how it should be:
  async submitLogin(e) {
    e.preventDefault();

    const { email, password } = this.state;
    if (email == "") {
      this.showValidationErr("email", "Email field cannot be empty");
    }
    if (password == "") {
      this.showValidationErr("password", "Password field cannot be empty");
    }

    if (email != "" && password != "") {
      var data = {
        username: this.state.email,
        password: this.state.password
      };

      let result = await fetchAPI("POST", Constants.LOGIN, data); // wait for the fetch to complete
      if (!result.error) {
        this.props.history.push("/home");  // Here is the error
      } else {
        // show error from 'result.error'
      }
    }

If the function is correctly bound in the constructor, you won't have any problems with this. It seems that you are not binding the submitLogin function in the constructor, which will give you problems with the context of this. This is how it should be bound:
constructor(props) {
    super(props);
    this.state = {
      email: "",
      password: "",
      errors: []
    };

    // bind all functions used in render
    this.submitLogin = this.submitLogin.bind(this);
  }

Have a look at this article to learn more about the problem with the context of this.
Now, based on the code you provided, seems to me that you are in uncharted territory. If you think that you are finding the routing hard or the async/await is not clear, I suggest you don't use them, and first master the React basics (the syntax problem you are having is an example, you shouldn't have put that function there, also the binding issue with this).
Have a read at this post for example, to have a general idea and I also suggest you try other more simple examples before using async, fetch, or routing. When you get the React lifecycle clear, you can continue from there, and use async functions, and then routers.
I also suggest you follow the examples in the Official docs and also have a look at this post to have a better understanding of async/await.
These suggestions are of course given so that you get to master React with clear fundamentals, and in the future don't have any problems with the basics! :)


text:
Guest Post: Rabbeinu Avraham vs. the Rambam?
www.rationalistjudaism.com
Natan Slifkin
Copyright 2015 by David Ohsie. All rights reserved
Rabbeinu Avraham vs. the Rambam?
In Rabbi Meiselman's attempt to discredit the Discourse, he finds a number of instances where he believes that the Discourse differs from the position of the Rambam. Since Rabbeinu Avraham strongly defended the his father's position in many cases, Rabbi Meiselman takes this as evidence that Rabbeinu Avraham did not author those parts of the Discourse. While there is little reason to think that a lack of correspondence with the Rambam would create any doubt as to the authorship of the Discourse, in my humble opinion, there is in fact no divergence to speak of. Let's examine the evidence.
Rabbi Meiselman's first example is based a statement in the Discourse about the argument between the Jewish and Gentile sage regarding the path of the Sun at night (emphasis and translation mine):
Consider the wisdom of this secret, that Rabbi [Yehudah HaNasi] did not rule [lo pasak] in accordance with the opinion of the Gentile sages rather he decided according to them using a judgement based on the proof that we discussed. That is why [the Talmud] says "their words appear correct" which is a word that indicates decision [as opposed to "rule"].
Rabbi Meiselman judges this to be a deviation from the text quoted by the Rambam in the Guide 2:8 which we referenced in a earlier post (emphasis mine):
The theory of the music of the spheres is connected with the theory of the motion of the stars in a fixed sphere, and our Sages have, in this astronomical question, abandoned their own theory in favour of the theory of others. Thus, it is distinctly stated, "The wise men of other nations have defeated the wise men of Israel."
Here the Rambam seems to have a different text of the Talmud from Rabbeinu Avraham. Rabbeinu Avraham emphasizes that Rabbi Yehuda HaNasi specifically used the language "their words appear correct" to emphasize the uncertainty in their arguments. In contrast, the language quoted by the Rambam is very strong. Thus, in Rabbi Meiselmans opinion, this conflict indicates that Rabbeinu Avraham was not the author of this section of the Discourse.
In my humble opinion, this divergence proves nothing. To begin with, the Rambam's quotation provides no evidence that Rabbeinu Avraham's text does not appear. It is entirely possible that the Rambam's Talmud contained both texts and he chose to illustrate his point with the stronger statement of contradiction to the opinion of Chazal in order to better support his own disagreement with Chazal's theory of the music of the spheres.
In fact, Rabbeinu Avraham does quote the Rambam's text a few lines later when he says:
If it had been clear to him [Rabbi Yehudah Hanasi] definitively with a clear proof that the sphere rotates while the stars are fixed within, he would have ruled according to them [i.e. the Gentile sages], as other of our Sages said elsewhere: "The wise men of other nations have defeated the wise men of Israel."
Thus, Rabbeinu Avraham did have the same text as the Rambam. It is unclear where Rabbeinu Avraham locates this statement in the Talmud, and it is likewise unclear where the Rambam locates his statement but there is no evidence of conflict between the two. In fact, the parallel citation of the same phrasing is evidence of correspondence, since our text of the Talmud does not contain this phrase at all.
Morever, Rabbeinu Avraham refers to this same Gemara in his book Milchamos Hashem, where he defends the Rambam against some of his critics:
As you can seen from the graphic above, Rabbeinu Avraham also refers to the same text with the same phrase that he quotes in the Discourse: "their words appear correct"! Unless Milchamos Hashem is also a forgery, the purported inconsistency proves nothing.
In fact, this example demonstrates why the entire enterprise of picking out "unexpected" phrases from the Discourse is doomed to failure. The notion that we can look at a text and discern the probability that author could have written that text is fanciful. Every text is going to have some unusual or unexpected content or we wouldn't bother to read it to begin with.
In this case, Rabbi Meiselman honestly judged the text so out of character for Rabbeinu Avraham, that it must be fraudulent, and despite his great erudition, his judgement proved incorrect. The reason is straightforward: the entire methodology is faulty to begin with.
Arguing with Authority
Rabbi Meiselman's second example of an inconsistency involves Chulin 124a. Briefly, a ruling of R. Yochanan is related to R. Nachman. R. Nachman rejects the ruling and says that "even if R. Yochanan himself had told it me by his own mouth I should not have accepted it!" Later, the discussion is reported to R. Ammi who objects to R. Nachman's language saying "And even if R. Nahman is the son-in-law of the Exilarch shall he make light of the teaching of R. Yochanan?"
However, when the details of the story are properly explained to R. Ammi, he realizes that the ruling given to R. Nachman had been garbled. With respect to this mistaken version, R. Ammi exclaims: "even if Yehoshua bin Nun had told it me by his own mouth I should not have accepted it!" [1]
Rabbeinu Avraham uses this story to support the idea that one should only accept an idea based on its veracity and not based on authority. R. Ammi would not accept a ruling, even from a prophet, unless it could be explained using the the methods of argument that were given over for deriving halachos. Similarly, if we see a scientific assertion in the Talmud that does not hold up to scrutiny, we must reject it.
Rabbi Meiselman asks a number of questions here that are, in my humble opinion, quite puzzling. He writes as follows (TCS pg 112):
The Gemara indicates further than an Amora could not even disagree with a Tanna. This, too, is affirmed by the Rambam in all his works. How, then could an Amora possibly have claimed the right to disagree with Yehoshua bin Nun? Where do we ever find such an outright dismissal of the authority of a scholar from a previous period of history?
What is more, the author of this piece seems to imply that sevorah -- logical reasoning -- trumps even a mesorah, yet the Rambam writes in his Introduction to Peirush HaMishnayos that a Tanna or Amora cound not disagree even with a contemporary if the latter was backed by a mesorah. It is hard to imagine, therefore, that any mainstream halachic authority could have penned these words.
The line of questioning is difficult to understand. To begin with, it is R. Ammi, not the Discourse, that tells us that he would disagree with Yehoshua Bin Nun. Rabbi Meiselman's expression of wonder seems better directed at the Gemara than at the Discourse.
Moreover, Rav Moshe Sofer (Chasam Sofer) explictly writes what Rabbi Meiselman claims that no mainstream halachic authority could write. He asks the following question: why did R. Ammi use Yehoshua and not Moshe Rabbeinu as his example? His answer is that R. Ammi could disagree with Yehoshua whether or not Yehoshua argued from reason or from tradition (mesorah). In contrast, we are permitted to disagree with Moshe Rabbeinu only when he argues from reason; doubting Moshe Rabbeinu's tradition would be tantamount to doubting Moshe Rabbeinu's revelation from Sinai and thus rejecting the system of halacha postulated at Sinai. Thus, both of Rabbi Meiselman's "red lines" were crossed by one of our greatest halachic authorities!
We've shown that the Discourse, as interpreted by Rabbi Meiselman, is not "out of bounds" for a genuine halachic authority. However, we still need to deal with Rabbi Meiselman's secondary argument: that the Disource is inconsistent with the position of the Rambam. While, in my humble opinion, disagreement with the Rambam would not discredit the Discourse, there is no discernable disagreement to begin with.
In reality, the Rambam does not affirm in all his works that a Amora cannot disagree with a Tanna because the later or lesser figure cannot argue with greater or earlier figures. In fact, the Rambam rules explicitly that any court can overrule a previous court's ruling based on reason, even if the later court is lesser in wisdom than the prior court. One is obligated to listen to the court that functions in his or her day, even when it overrules an admittedly greater authority. This is entirely consistent with the approach of the Discourse. [2]
Rabbi Meiselman also claims the following inconsistency:
The Discourse implies that R. Ammi could disagree with Yehoshua on a matter of reason.
However, the Rambam (Introduction to the Mishna) uses R. Ammi's statement as one of two pieces of evidence that prophecy plays no role in deciding halacha.
Rabbi Meiselman argues that these two interpretations are contradictory and thus the Discourse is in disagreement with Rambam.
[UPDATE: Professor Lawrence Kaplan points out that I give too much credit in the dicussion below to Rabbi Meiselman's interpretation of the Rambam. In fact the Rambam states rather directly the same thing that Rabbeinu Avraham states: R. Ammi teaches us that the a Navi's opinion has not additional weight in a halachic argument as a consequence of his greatness, so there is not contradiction to begin with. So some of the argument below, while still correct, is unnecessary. More in a later post.] [2a]
In my humble opinion, there is no contradiction at all. The Rambam's interpretation simply implies that R. Ammi would have disagreed with Yehoshua whether or not he argued based on prophecy or based on his authority and greatness. To see that this must be the case, suppose that the Rambam meant that R. Ammi would not have accepted Yehoshua's prophecy, but would have accepted his authority, as Rabbi Meiselman suggests.
In that case, R. Ammi's statement becomes nonsensical. R. Ammi's point is that the halacha in question is so obviously mistaken that he would not accept even Yehoshua's authority in support. But if he was merely saying that he would not accept the authority of any prophecy, then that would apply even if he had complete 50/50 doubt as to the status of the halacha. In fact, he would not accept a prophecy even in support of a halacha that he agreed with. According the the Rambam, no weight at all is given to prophecy in deciding halacha, even in cases of doubt. The fact that he would reject prophecy would have no polemic value, since we never accept prophecy in deciding halacha.
Rather, the Rambam's reasoning must be as follows: R Ammi was able to use Yehoshua as an example of an unaccepted authority, even though is he is also a prophet, only because we don't accept prophecy in the halachic process. Were we to accept prophecy to decide halacha, then R. Ammi would likely have used the example of another great figure who was not a prophet, to avoid any ambiguity and make his polemic more convincing. However, the meaning of R. Ammi's polemic is that he was so sure of the halacha that he would not accept the authority of someone greater to overturn his judgement. This interpretation is further supported by the fact that R. Nachman's original parallel exclamation, which R. Ammi is strengthening, related to R. Yochanan who was not a prophet.
Finally, Rabbi Meiselman writes that "the author of this piece seems to imply that sevorah -- logical reasoning -- trumps even a mesorah". We have shown that the Chasam Sofer believes that compelling reasoning can be used to infer a mistake in a tradition, so such an idea would not be by any means controversial. Nevertheless, such an idea would seem to diverge from the Rambam's position in his introduction to his Commentary on Mishnah, where he indicates that arguments in the Talmud are not based on arguments about whose tradition is more correct.
However, there is nothing in the Discourse to imply disagreement with the Rambam on this point. Rabbeinu Avraham later quotes the very principle that "If this is a halachah, we shall accept it; but if it is only an inference, an objection can be pointed out. (אם הלכה נקבל ואם לדין יש תשובה)". Furthermore, the Discourse quite clearly contrasts science and Torah and indicates that although we do bow to the authority of Chazal in Torah matters, we are not required to defend them in matters of science. [3] In the case of R Ammi, there is no claim of a tradition, nor is the original purported author of the statement available for questioning. Thus, there is nothing in the Discourse to contradict the Rambam's principle.
Still, one might ask: If Rabbeinu Avraham agrees that one cannot refute a tradition with reason, then how can we be sure that that we can rely on scientific evidence against a statement from the Talmud? We could assume, of course, that like Rav Hirsch writes, Rabbeinu Avraham simply didn't think that the Rabbis were particularly experts in science, and that they were never speaking from tradition in these areas. But let's instead make the assumption, arguendo, that some science of of the Talmud stemmed from tradition. Why isn't Rabbeinu Avraham worried about such a case? And if we are worried about such a case, then R. Ammi's example cannot help us because he is speaking of a case where there was no claim of tradition.
To answer this, we first need to answer the following question: Why is it that reasoning cannot trump an authentic tradition from Sinai? The answer is quite simple: authentic traditions are the postulates of the Torah's legal system. It makes no sense to argue, say, that it is illogical to prohibit cooking a kid in its mother's milk, since the Torah's most basic halachos need not conform to any logic. [4] The Chasam Sofer referenced above makes this clear: if the systems allows argument with Moshe Rabbeinu's mesorah, then you can reject the laws of the Red Heifer as illogical. The rules of derivation and logic that the Torah gave to us allows to extend and adapt to additional cases not mentioned, but can't be used to override the underlying postulates themselves. Thus the system relies on a notion of a tradition that is an inviolable starting point. [5]
In science, there is no such limitation. Any time there is a conflict between science and the apparent words of the Talmud, the question can be resolved by examining the evidence on which the science is based. If the scientific evidence is dispositive, then we can confidently say that the contradictory words of the Talmud, if taken literally, could not have been an authentic tradition from Sinai. This is the Rambam's reasoning when he writes that "for speculative matters every one treats according to the results of his own study, and every one accepts that which appears to him established by proof," and "A man should never cast his reason behind him, for the eyes are set in front, not in back". Whereas in areas of halacha, if reasoning contradicts an authenticated teaching, then the system by its nature tells us to follow the authenticated teaching. As a result, even under assumptions most favorable to Rabbi Meiselman's thesis, there is no contradiction between the Rambam's consideration for tradition in halacha with the Discourse's (and the Rambam's) treatment of science as always subject to verification.
So far, we haven't see any cases where the opinions of Rabbeinu Avraham contradict the words of the of his father. But Rabbi Meislman proffers other contradictions between the Discourse and the Rambam. We'll deal with those, with God's help, in the next post.
Comments are both welcome and encouraged. I'll make every effort to address any questions or arguments posted in the comments.
[1] GEMARA. 'Ulla said in the name of R. Johanan. This rule applies only to the case where a wild beast tore it away, but where it was cut away by the knife [in flaying] it certainly is deemed negligible. R. Nahman enquired of 'Ulla, 'Did R. Johanan also say so even if it was as large as a tirta? — He replied. 'Yes'. 'And even as large as a sieve?' — He replied. 'Yes'. 'By God!' said the other; 'even if R. Johanan himself had told it me by his own mouth I should not have accepted it!' When R. Oshaia went up [to Palestine] he met R. Ammi and reported to him the discussion, 'So said 'Ulla and so answered R. Nahman'. Said [R. Ammi] to him, 'And even if R. Nahman is the son-in-law of the Exilarch shall he make light of the teaching of R. Johanan?' On another occasion he [R. Oshaia] found him [R. Ammi] sitting and expounding it with reference to the second clause [of our Mishnah] thus: 'IF THERE WERE TWO PIECES OF FLESH EACH A HALF-OLIVE'S BULK UPON IT. THEY CONVEY UNCLEANNESS BY CARRYING BUT NOT BY CONTACT: SO R. ISHMAEL. R. AKIBA SAYS, NEITHER BY CONTACT NOR BY CARRYING. Thereupon R. Johanan had said: This rule applies only to the case where a wild beast tore them away, but where they were cut away by the knife [in flaying] they are deemed negligible'. Then said [R. Oshaia]. 'Does the Master refer it to the second clause?' — He replied. 'Yes; did 'Ulla tell it you with reference to the first clause?' Said the other, 'He did'. 'By God!' said R. Ammi, 'even if Joshua the son of Nun had told it me by his own mouth I should not have accepted it!'
[2] How can this reconciled with the fact Amoraim don't generally argue with Tannaim? Rabbi Meiselman mentions the opinions of the Kesef Mishnah and the Rav Elchanan Wasserman. The Kesef Mishnah offers the explanation that they simply accepted upon themselves not to do so. Rav Elchanan Wasserman (Divrei Sofrim 2:5) objects to the Kesef Mishna (TCS pg 114 n. 326 IMHO mistakenly identifies this as a concurrence): if so, the Amora could simply disagree with that acceptance. He argues that the universal acceptance of the Mishna and later the Gemara has the same status as decision by a Bais Din Gadol. So an Amora could argue with a Mishna, but he would have to get similar universal acceptance or convene a Bais Din Gadol, since a later Beis Din Gadol could disagree with an earlier, greater one and could even disagree with the Mishnah or Gemara. However, with either explanation, there is no principle that a lesser figure cannot disagree with a greater figure. The Rambam's rule that a lesser and later Bais Din can overrule a earlier and greater one stands.
We can go one step further. Suppose, arguendo, that lesser figures could not disagree with greater figures and that furthermore, we assume that greater figures preceded lesser figures. If so, the resulting rule would be that one could not argue with someone more than, say, 150 years earlier. In that case, late Tannaim could not argue with early Tannaim, but early Amoraim could argue with later Tannaim. Similarly, early Geonim could argue with the later Amoraim, but later Amoraim could not argue with early Amoraim. But this is inconsistent with the practice. So the issue is not precedence or greatness, but the fact that the "redaction" of either the Mishnah or Gemara somehow set a binding precedent; the nature of that authority is disputed, but it does not rest on a principle of complete deference to authority or even deference to a recognized superior.
[3] According to this preamble, then, we are not duty bound to defend the opinions of the sages of the Talmud, concerning medicine, physics and astrology, as right in every respect simply because we know the sages to be great men with a full knowledge of all things regarding the Torah, in its various details. Although it is true that in so far as knowledge of our Torah is concerned, we must believe the sages arrived at the highest stage of knowledge, as it is said (Deu. 17, 11.) In accordance with the instructions which they may instruct thee, etc., still it is not necessarily so concerning any other
branch of knowledge.
[4] That is not to say that these laws don't have reasons behind them. Both Rambam and Ramban empahsize even "Chukim" have reasons.
[5] This doesn't imply that there can never be a mistake in the transmission of a tradition. Chasam Sofer makes explicit that there can be such a mistake after Moshe Rabbeinu. Even the Rambam does not have to maintain that the Torah's transmission is infallible, just that we assume it to be so with respect to halacha in some cases. This can be compared to the following quotation from the Mishneh Torah with respect to the command to follow the words of the Prophets:
The result is that any prophet who arises after Moshe Rabbeinu is not to be believed merely because of the miraculous sign (אות) that he produces. Thus, we don't say that once he produces a sign, we listen to anything that he says. Rather, it is because Moshe commanded us in the Torah and proclaimed that if one can produce a sign that we must listen to this person. Just as he commanded us to decide matters in accordance with the testimony of two witnesses, even though we don't know if they actually testified truthfully or not, so too we are commanded to listen to the prophet, even though we don't know if his sign is a true one or if it was produced by way of sorcery. (Hilchos Yesodei HaTorah, 8:2)
© 2023 Natan Slifkin


text:
Clubs again block ARL Commission
Wed 7 Mar 2018, 11:32 PM
The NSW Rugby League has expressed disappointment upon learning that NRL clubs Melbourne Storm, Canterbury-Bankstown Bulldogs and Gold Coast Titans will again vote against planned constitutional reforms.
The clubs, whose concern is the reforms would grant the NSWRL and Queensland Rugby League a seat on a new 10-person ARL Commission, are understood to have maintained the stance which led to a cancellation of a previously-planned vote to change the constitution.
In a statement released on Wednesday night, the NSWRL said it was time for the dissenting clubs to act in the best interests of the game as a whole.
"NSW Rugby League acted in the interests of the game when it expanded an inner-city competition into a metropolitan competition, then into a state-wide competition, then into a national and ultimately an international competition,'' the statement said.
''It acted in the interests of the game when, together with the Queensland Rugby League, it supported the creation of the Australian Rugby League Commission.
''It acted in the interests of the game when it supported increased funding for NRL clubs, both individually and collectively, with the significantly increased club grants which were recently provided to NRL clubs.
''The Board of NSWRL now calls on the three NRL clubs to discard sectional interests and also act in the best interests of the game by adhering to the agreement which all of them freely reached in December 2017.''
ARLC chairman Peter Beattie conceded the vote would be defeated via Twitter on Wednesday night. The former Queensland Premier reaffirmed his commitment to changing the constitution.
Constitutional Reform was never going to be easy. I am still committed to it. If it doesn't get up now I will revisit it in a year's time. I am determined to make the existing constitution work. I will make announcements on Monday about the future composition of the Commission.
— Peter Beattie (@SmartState1) March 7, 2018
NRL Tipping: Round 18 - see what the experts are saying
Soward: Raiders run hot, Sharks slipping
Annesley floats rule changes to reduce refereeing controversies
Soward: Happy 400th Cam Smith; Roosters to start rolling
Winning Starts Monday
Origin period allows lesser lights to emerge from shadows


text:
Go to ...Home News & views Blogs Publication– Current issue – Back issues – Profiles – Viewpoint – Topics – Supplements Partners Listings Events About us– Contact – Media info – Marketing – Login
HomeSummer 2018Fintech : Risks and rewards, Part 2 : Chris Hall
Fintech : Risks and rewards, Part 2 : Chris Hall
Posted by: Best Execution , July 2, 2018
FINTECH RISKS DRIVE NEW REGULATORY MINDSET.
Regulators are getting to grips with the fintech's transformative power, but will need new approaches to collaboration and oversight. Chris Hall reports.
Well-known to financial regulators, the 'Goldilocks' principle was recently invoked in the debate on cryptocurrency regulation. "Too much regulation and cryptocurrencies will succumb to compliance costs. Too little regulation and the cryptocurrency market will fail to achieve the integrity it needs to attract mainstream investors," warned Paul Kupiec, resident scholar at the American Enterprise Institute (AEI) and former chairman of the Basel Committee on Banking Supervision's Research Task Force.
Kupiec's concerns are echoed in regulators' responses to the shifting risks and opportunities arising from fintech dynamism. It's hard to define, let alone regulate a fast-moving, constantly-evolving range of diverse technologies and organisations. However, it is critical to finance sector growth and strength. The Financial Stability Board has called for collaboration to address operational, cyber-security and macro-financial risks stemming from increased fintech activity as an "essential" part of regulators' efforts to safeguard financial stability.
For regulators, fintech represents as many downsides as upsides. If they are too slow to adapt, they may miss opportunities to improve outcomes and reduce risks and costs, e.g. by not providing sufficient support, or not leveraging regtech innovations to enhance supervision. If they are too 'gung ho' though they might ignore or misunderstand attendant risks, introducing competition too fast or underestimating fintech's impact on dependencies and relationships in a complex eco-system. Either way, ignorance of fintech's transformative power exacerbates risks.
Enter sandbox
Sometimes the boldest steps are taken by necessity. Hit hard by the global financial crisis and ensuing scandals, the UK's finance sector was in dire need of new blood. Armed with a new pro-competition mandate in 2014, the Financial Conduct Authority's (FCA) innovation-friendly agenda, 'Project Innovate', placed incumbents on notice to deliver cheaper, simpler and transparent services – or face the consequences.
Executive director of strategy and competition Christopher Woolard says the FCA had to shift its mindset from 'what's the risk' to 'what's the risk of not doing this'. The risk of inaction was that new technologies and providers would go underground if not permitted to flourish, evading the attention of the authorities until too late. Nevertheless, the FCA had to offset the reality that new entrants can bring new risks if balance sheets or operating infrastructures are too weak or too porous, or if services are overly complex or opaque.
To balance these risks, the FCA built a sandbox. Since 2016, 70 firms (not all from UK and not all start-ups) have used it to test new services, models and platforms in a safe, closely monitored environment with a limited time period and customer base. This brings products to market quickly, cheaply and safely, whilst giving regulators ground-level view on potential risks. The concept has been adopted and adapted in multiple markets, and is now going global.
At the Innovate Finance Global Summit 2018, Woolard said the pace and scale of innovation called for cross-border collaboration on a multi-jurisdictional framework to road-test new services. To this end, the FCA and peers are discussing a global dictionary to cover jurisdictions' data needs and oversight by a college of regulators to better support innovation, "especially for smaller firms who are keen to expand internationally". Another sign of changing attitudes is that pragmatism trumps perfection. Perhaps alert to the limits of collaboration, Woolard has eschewed developing global standards to focus on pressing common priorities, such as financial crime.
Growing up in public
Regulatory collaboration does not require lockstep coordination. The FCA has signed multiple cooperation and framework agreements with like-minded regulators, including 'referral mechanisms' that smooth fintech entry into new markets. Another example is a UK-Australia fintech 'bridge' announced in March to explore opportunities and risks associated with cryptocurrencies and blockchain.
However, are regulators doing enough to support innovation? A collective failure to create a cohesive global framework for OTC derivatives reporting ten years after a G20 mandate reflects the challenges. Some argue current initiatives don't go far enough in supporting the practical implementation of fintech innovation. By agreeing common frameworks for bringing fintech solutions into the mainstream or integrating fintech solutions with the legacy technology infrastructures of incumbents, regulators could counter operational risks arising from creative chaos.
"Whilst too rigid a framework could stifle innovation, there is an argument for regulators to collaborate with the industry in support of a more standards-based approach to implementation and connectivity," says Mark John, head of product and business development for BNY Mellon's Pershing and broker-dealer services in EMEA, noting both the difficulties for incumbents in identifying suitable fintech partners and future connectivity challenges as new services flood onto the market. "As the sandbox concept evolves and broadens, it can address the industry's increasing 'plug and play' needs through standards."
Holding the hands of innovators helps to bring new ideas and technologies further and deeper into the financial markets in a safe and sustainable manner. How do regulators though handle the pace of change and the shift from human to digital that fintech represents?
"One of the biggest challenges is how we move from processes designed to be conducted by humans to ones designed to be executed by machines. We need to be conscious of how the replacement of humans by machines alters the risk profile of a process," notes PJ Di Giammarino, CEO of regulatory consultancy JWG.
The wider use of artificial intelligence is being constrained by difficulties explaining machine-generated recommendations, but there are opportunities to reduce risks too. The data generated by digitised processes makes them more easily and cheaply monitored, and potentially in real time, which is critical when it's not just in the trading room that risks can be transferred at warp speed.
Di Giammarino predicts digitisation of the relationship between regulator and regulated. "By making rules machine readable, we can reduce the considerable cost and risk currently involved in achieving regulatory compliance. We've made trading an STP process: we can do the same for regulation by matching a firm's standards and processes to the rule book," he says.
Machine-readable compliance might sound like science fantasy to anyone still adjusting to MiFID II's reporting requirements, but several strands of FCA Innovate's work programme are aimed at using semantics and standards to enable compliance via digital means, thus making reporting, approvals and other regulatory processes more timely and accurate. The UK regulator launched a consultation in February on how technology can improve the quality of information supplied to regulators, while an Australian counterpart, the Australian Securities and Investments Commission, is conducting proofs of concept involving natural language processing.
Jo Ann Barefoot, former deputy head of the US Office of Comptroller of the Currency and CEO of Barefoot Innovation Group, supports the development of 'alternative regulatory channels' for both fintechs and incumbents. A community bank, for example, might submit data for evaluation against known quantitative metrics to prove its services are simple and transparent, perform as advertised, do not rely on penalty income, and generate low levels of complaint. By automatically generating and sharing this data with regulators, the firm could be relieved of most traditional oversight of its compliance management system.
While acknowledging recent advances, Barefoot suggests further mindset changes are needed among regulators and regulated. "Today, the process takes so long that by the time the compliance-driven changes have been built into the investment cycle the risks may no longer exist. In future, regulators could have such data-rich monitoring processes that they can focus on outcomes and results rather than line-by-line compliance," she says.
In future fairy tales, the three bears might not need to come home to know they have a visitor.
©BestExecution 2018
Tags: Barefoot Innovation Group, BNY Mellon, Chris Woolard, FCA, Jo Ann Barefoot, JWG, Mark John, Pershing, PJ Di Giammarino
News : Investors benefit from MiFID II
News review : Testing the crypto waters
TESTING THE CRYPTO WATERS. London-based venture studio 20:30 made the news as the first UK comp ...
Market opinion : MiFID II & Brexit : Jannah Patchay
REVERSING DIRECTION. MiFID II may be grabbing all the limelight but Jannah Patchay, Markets Evo ...
Fintech : Blockchain : Dan Barnes
BLOCKCHAIN: WHY MONOPOLIES COULD BEAT CONSENSUS. Market operators are the traditional builders ...
FX Trading Focus : Better execution : Jason Hughes
FX trading focus : Adam Toms : OpenFin
Industry viewpoint : Dr Robert Barnes : Turquoise
Buyside profile : Nick Wood : Millennium Global In ...
Trading : Exchange innovation : Dan Barnes
I would agree "passive ownership was "a rounding e ...
Well, this would add a certain spin to our Autumn ...
11:FS 20:30 2010 Flash Crash 2016 2030 Group
In these uncertain times and as the tide of regulation rises ever higher and wider, Best Execution offers an in-depth analysis into the major trends that are shaping the financial services industry as well as providing a more detailed insight into the technology driving new products and services being developed to meet these challenges.
Where the buyside and sellside meet.
Wikipedia: Best Execution
Copyright © 2019 Best Execution | Site by Refractiv.


text:
Why I turned down a weekly newspaper column
David Bullard |
David Bullard examines the reasons he just couldn't get himself to take up the offer, flattering as it was
The official newspaper circulation figures for the last quarter of 2012 were released recently and they make dismal reading, particularly when compared with readership figures for the same quarter last year.
Anybody suggesting that there is hope for the future of the newspaper industry is clearly living in cloud cuckoo land. Which isn't to say that newspapers are about to become extinct in South Africa. They will continue to be bought by people who can't afford laptops and iPads and therein lies the real problem. A newspaper relies on advertising to survive and if your product reaches an audience with very little disposable income then what is the point of a company taking expensive space to advertise a product that nobody can afford?
Desperate times for newspaper editors call for desperate measures so I suppose I shouldn't have been surprised when the editor of the City Press contacted me recently and asked if I would be interested in contributing a weekly column on their opinion pages. Very few people buy a newspaper to read news that is already old by the time it has made it onto a newspaper page so, if a newspaper is to survive, there is bound to be more emphasis on the entertainment content and comment section of a newspaper, particularly if you can build a loyal readership who return every week to read their favourite writers.
For example, I look forward every Saturday to my FT Weekend, mainly because of the columnists. The same applies to The Spectator and a week without Rod Liddle, Hugo Rifkind, James Delingpole and Martin Vander Weyer is unthinkable.
I have to admit that I was rather flattered to be invited to write a regular column for the City Press and my initial reaction was to say yes. It would be one in the eye for the Sunday Times and would annoy all those minor league columnists and faux academics who had whooped with delight when the Sunday Times decided to axe the Out to Lunch column five years ago. But fortunately I came to my senses and decided that a regular column in the City Press, or indeed any newspaper is exactly what I don't need.
I have every reason to believe that the Out to Lunch column became one of the best read columns in the country during its 14 year life span. I still get approached at airports by people who tell me they stopped buying the Sunday Times the day I was sacked which suggests that the Out to Lunch brand value has been rather more resilient than the Sunday Times brand value.
It also goes some way to explaining why the editor of a rival Sunday newspaper would be quite happy to have South Africa's best loved "unreconstructed racist" writing for her. She knows that controversy helps sell newspapers. The Sunday Times also knew that which is why the space next to the Out to Lunch column was some of the most expensive advertising real estate in the paper.
I derived enormous pleasure from writing the Out to Lunch column for most of my fourteen years at the Sunday Times but I only realised rather late in the day that you can be too successful as a columnist and that can be the cause of your downfall. Having accused the Sunday Times in an article in Empire magazine of "creeping mediocrity" I started to experience some frostiness from management. The then editor, Mondli Makhanya, told me that I had insulted the entire newsroom with my mediocrity comment and that I should publicly apologise. So I sought out two of my black colleagues and told them that I believed I needed to apologise for what I had written. Their response was a hollow laugh together with a comment along the lines of "thank heavens someone has the balls to tell the truth".
I relayed the conversation back to Makhanya and told him that I would be happy to apologise but that I suspected he would have egg all over his face if I did. This didn't please him and the knives came out.
The attendant fame (or notoriety) that goes with a column like Out to Lunch is something of a double edged sword. When you're among admirers it's great but there's also the baying mob to contend with. My hate mail bag gave me a lot of pleasure over the years but that was when knew I had an editor who would defend what I had written.
But now the rules of journalism have changed forever and you can be sacked retrospectively for something you wrote and your editor published. That really doesn't work for me. If I'm expected to put my neck on a block every week to drive up readership then the least I expect in return is editorial support.
Then there's the freedom of expression argument. I believe that freedom of expression is non-negotiable and should apply to all. There are perfectly adequate laws to deal with defamation and hate speech. Sadly this view is not shared by people like Zapiro and Max du Preez who believe that freedom of expression should be restricted to people of whom they personally approve. To write a regular column for the City Press would be to re-enter their toxic world and I'm not sure I can really be bothered at my age.
However, the real reason I simply can't bring myself to ever write a column for a newspaper again comes down to a simple lack of passion. I no longer believe newspapers have a future, I don't believe they reach the audience I want to talk to and I don't believe they are free of political influence. If I upset the ANC on the pages of a newspaper I do so at my peril.
If you can't write with passion or conviction and if you dread every weekly deadline a column becomes a chore that you come to resent and that comes across in the writing. I never got as far as talking about money with the City Press but when I realised that not even R50000 a month would tempt me I knew the passion had gone completely. And it was a curiously liberating feeling.
Click here to sign up to receive our free daily headline email newsletter
Pravin is running out of options
Oscar Pistorius: Living the nightmare


text:
Q: How to set data-* from datasources in Select2? I am using Select2 as follow:
$('select#fields').select2({
   placeholder: 'Select a field',
   data: data.fields
});

data.fields is a JSON like this one:
"fields": [
  {
    "id": "companies_id",
    "text": "companies_id",
    "data-type": "int"
  },
  {
    "id": "parent_companies_id",
    "text": "parent_companies_id",
    "data-type": "int"
  },
  {
    "id": "client_of_companies_id",
    "text": "client_of_companies_id",
    "data-type": "int"
  },
  {
    "id": "asset_locations_id",
    "text": "asset_locations_id",
    "data-type": "int"
  },
  {
    "id": "companies_name",
    "text": "companies_name",
    "data-type": "varchar"
  },
  {
    "id": "companies_number",
    "text": "companies_number",
    "data-type": "varchar"
  }
]

id and text are used to fill the option values, can I use the third value data-type and set it as an attribute for the <option>? If so how? Can any leave me an example?

A: Actually - select2 by default saves all of the attributes in the data('data') variable of the <option> element that it creates, and you can always access these values using the $(<option>).data('data'), however keep in mind that it's not the same as .data('type') for data-type="value". You need to use the complete name of the attribute.
Here is an example of how to get the value of data-type on select event:

var $example = $("#s1").select2({
    data: [
        {
            "id": "companies_id",
            "text": "companies_id",
            "data-type": "int",
            "data-extra": '1'
        },
        {
            "id": "parent_companies_id",
            "text": "parent_companies_id",
            "data-type": "int",
            "data-extra": '2'
        },
        {
            "id": "client_of_companies_id",
            "text": "client_of_companies_id",
            "data-type": "int",
            "data-extra": '3'
        },
        {
            "id": "asset_locations_id",
            "text": "asset_locations_id",
            "data-type": "int",
            "data-extra": '4'
        },
        {
            "id": "companies_name",
            "text": "companies_name",
            "data-type": "varchar",
            "data-extra": '5'
        },
        {
            "id": "companies_number",
            "text": "companies_number",
            "data-type": "varchar",
            "data-extra": '6'
        }
    ],
}).on('select2:select', function(e) {
    console.log(e.params.data['data-type'], e.params.data['data-extra']);
});
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" />
<script type="text/javascript" src="https://code.jquery.com/jquery-3.1.0.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.js"></script>
<select id="s1">
</select>


text:
SDKs Documentation Sign In
Press Release: Exit Games Partners With Marmalade to Power Fast and Easy Development of Online Games on Multiple Platforms
by Robert · July 13, 2011
Portland, OR – July 13, 2011 – Exit Games today announced that its leading network engine and socket server 'Photon' is now fully integrated with Marmalade, the leading product for developers to build and distribute rich cross-platform applications quickly, easily and without compromise.
Marmalade allows developers to write apps in standard C++ and deploy from this single code base as native applications to iOS, Android, webOS and a wide range of other platforms. The latest version allows developers to easily access any native APIs they choose on iOS and Android. Marmalade's unique architecture ensures optimal performance and functionality when developing cross-platform.
Exit Games Photon is a fast, reliable and powerful network engine and socket server for the development of realtime multiplayer applications on a multitude of platforms, now including Marmalade. Photon provides unique features, such as a C/C++-based core, server extensibility in .NET/C# plus reliable UDP, which are crucial for scalable online games such as first person shooters or massive multiplayer online games.
Tim Closs, CTO of Marmalade commented "We're very excited that Exit Games Photon is now fully integrated within Marmalade. Photon provides stunning performance whilst being easy-to-use which makes it a perfect fit with Marmalade. It's an ideal combination for the development of multi-user online applications."
Christof Wegmann, CTO and founder of Exit Games, continues: "Marmalade is not only a company with a great track record but also a fantastic product. Now it is possible for any developer to easily create and deploy realtime multiplayer applications on a multitude of the most important mobile gaming platforms by using Marmalade and Photon."
Exit Games Photon FREE licenses and the Marmalade Client SDK can be downloaded at http://shop.exitgames.com.
For more information, and to arrange interview opportunities with senior management, please contact:
Tony Coles, Peppermint P:
tony.coles@peppermintp.com
About Marmalade:
Marmalade makes software that lets developers build and distribute cross-platform applications quickly, easily and without compromise. Our true cross-platform technology provides the best performance andthe best portability – and all within the industry's most open and flexible development environment. That's why tens of thousands of the world's leading developers use Marmalade. Leading publishers including Electronic Arts, Konami and Square Enix; OEMs such as Samsung and RIM; operators likeKorea Telecom; processor platforms like ARM; apps developers like Gameshastra, RoadPilot, WorkSnug,Playsoft and NaturalMotion, as well as thousands of indies, all know that the richest cross-platform applications are made with Marmalade.
Marmalade is a trading name of Ideaworks3D Limited, which was originally founded in 1998. The unique technology behind the Marmalade SDK was developed between 2005 and 2008 and battle tested through the development and deployment of high profile games such as Metal Gear Solid, Final Fantasy, Need for Speed and Resident Evil to mobile devices. The SDK was launched as 'Airplay SDK' in late 2009, before becoming Marmalade in June 2011. Marmalade has a team with an unparalleled track record in high performance mobile and cross-platform development. We believe that more platforms should mean more possibilities, not more compromises. That's what developing with Marmalade is all about.
Find out more at madewithmarmalade.com.
About Exit Games:
Exit Games is the leading provider of network engines for the development of online games on multiple platforms. Exit Games' high performance socket server, Photon, allows developers to easily implement realtime features into games or applications for browsers, personal computers, Macs or mobile devices including the iPad, iPhone and Android.
Exit Games products are used by leading entertainment industry customers such as Bigpoint, Walt Disney, Square Enix, Taito, Konami, World Golf Tour and E! Entertainment to create online, social and community-based games and applications.
Exit Games was founded in 2003 with venture capital funding and is headquartered in Hamburg, Germany, with an office in Portland, Oregon, USA. For more information, please visit the company website: www.exitgames.com.
Tags: Company NewsHighlight
Photon Cloud Game Jams in Asia
by Robert · Published November 22, 2013
New: Quantum Tournament SDK
by Robert · Published May 16, 2019 · Last modified May 31, 2019
'Sketch W Friends' Rocks the Photon Cloud (or Vice Versa)
by Robert · Published April 16, 2012
New strategic partnership with leading mobile games platform Skillz
Multithreading in Photon
Photon Fusion – setting the performance benchmark for the next billion players.
New Year Sale: 50% Off PUN Plus & Free Access to Photon Courses
Quantum 2.1 – the Next Leap
Archives Select Month August 2021 May 2021 December 2020 November 2020 September 2020 June 2020 April 2020 March 2020 January 2020 December 2019 May 2019 April 2019 March 2019 February 2019 January 2019 December 2018 November 2018 October 2018 April 2018 February 2018 January 2018 December 2017 November 2017 October 2017 September 2017 March 2017 February 2017 January 2017 October 2016 July 2016 June 2016 May 2016 April 2016 November 2015 July 2015 June 2015 May 2015 April 2015 March 2015 February 2015 December 2014 October 2014 September 2014 April 2014 December 2013 November 2013 October 2013 September 2013 August 2013 July 2013 June 2013 March 2013 November 2012 October 2012 May 2012 April 2012 March 2012 September 2011 August 2011 July 2011 February 2011 August 2010 July 2010 June 2010 July 2009 June 2009 April 2009 March 2009 February 2009
android Bolt Company News Console Cross-Platform Developer Development Dev Story Gaming Market Highlight Indie Indie Developer iOS linkedin Linux OnPremise PC PC Game Photon Photon Bolt Photon Cloud Photon Quantum Photon Server Photon Unity Networking Photon Voice Press Release Pricing PUN pun 2 PUN Plus Quantum Realtime RTS Sale SDK Security Server Showcase socket-server Turnbased Unity Unity 3D Voice VR Windows
Photonengine Blog | Multiplayer Made Simple © 2022. All Rights Reserved.


text:
Nimbok
Day 029 - what was the point of splitting handmade.h?
1 year, 7 months ago Edited by Nimbok on May 28, 2020, 4:26am Reason: Initial post
The last thing Casey does (in the Q&A) in Day 029 is split handmade.h into handmade.h and handmade_platform.h, the latter being a pure-C file that contains all of the game layer stuff required for the platform layer to communicate with it. It seemed like there was some practical impetus for doing so, but I don't understand what it was. He mentioned something about people requesting it in order to port to other platforms.
What was the advantage of splitting out the platform-related stuff into its own file? What was the advantage of making handmade_platform.h pure C?
Also - I noticed that the #include handmade.h in win32_handmade.cpp wasn't changed to #include handmade_platform.h until day 039.
mrmixer
Simon Anciaux
The idea is that we always compile the game code as C++ into a shared library (.dll on Windows, .so on linux, .dylib on Mac (I think) ) and the platform executable will load this code. The communication between the two part (executable and library) is a tiny part of the code and by putting that in it's own file we defined a clear "interface" for what needs to be supported by the platform.
I'm not 100% certain about the pure C part as I've never called C or C++ code from another language. But my understanding is that, C++ function name mangling isn't the same on every compiler, while the C one is. And according to the previous wikipedia article, some other language compilers can "understand" the C name mangling and so it's easy to call C functions from those languages. Maybe someone more knowledgeable can confirm or infirm that ?
Thanks, mrmixer. That helps me understand a bit better. It looks like Casey said people were specifically asking for something that could compile cleanly in C if you were trying to write a platform layer in something that couldn't compile in C++ code. I missed this when reviewing the video because it was tacked on to the end of the prior section. The name mangling compiler behavior in C++ not being consistent is also an excellent point.
Somewhat related question from Day 024 (@51:06):
Casey mentions that people working on porting to other platforms were running into trouble due to the stub functions in the header file. He said that "the stub functions (GAME_UPDATE_AND_RENDER and GAME_GET_SOUND_SAMPLES) being in the header means that if they have multiple translation units that all include the header file, the thing gets defined multiple times." I understand that the stubs are a function definition, but doesn't the one definition rule only concern multiple definitions within a single translation unit? Why would there be a conflict here?
In One Definition Rule on wikipedia, in the second item of the summary it says:
In the entire program, an object or non-inline function cannot have more than one definition; if an object or function is used, it must have exactly one definition. You can declare an object or function that is never used, in which case you don't have to provide a definition. In no event can there be more than one definition.
If you think about it it's logical: the translation units produce object files that will be link together, and if there were several definition for the same function signature, the linker wouldn't know which one to use.


HKEY_LOCAL_MACHINE Registry Hive (Windows 10).
HKEY_LOCAL_MACHINE, often abbreviated as HKLM, is one of several registry hives that make up the Windows Registry. This particular hive contains the majority of the configuration information for the software you have installed, as well as for the Windows operating system itself.
In addition to software configuration data, the HKEY_LOCAL_MACHINE hive also contains lots of valuable information about currently detected hardware and device drivers.
In Windows 10, Windows 8, Windows 7, and Windows Vista, information about your computer's boot configuration is included in this hive, too.
Locate HKEY_LOCAL_MACHINE on the left-hand side of Registry Editor.
Tap or click on the word HKEY_LOCAL_MACHINE or the small arrow to the left to expand it.
If you, or someone else, has used Registry Editor before on your computer, you may need to collapse any open registry keys until you find the HKEY_LOCAL_MACHINE hive.
The keys located under HKEY_LOCAL_MACHINE on your computer may differ somewhat depending on your version of Windows and your specific computer configuration. For example, newer versions of Windows do not include the HKEY_LOCAL_MACHINE\COMPONENTS key.
The HARDWARE subkey holds data pertaining to the BIOS, processors, and other hardware devices. For example, within HARDWARE is DESCRIPTION > System > BIOS, which is where you'll find the current BIOS version and vendor.
The SOFTWARE subkey is the one most commonly accessed from the HKLM hive. It's organized alphabetically by software vendor and is where each program writes data to the registry so that the next time the application gets opened, its specific settings can be applied automatically so that you don't have to reconfigure the program each time it's used. It's also useful when finding a user's SID.
The SOFTWARE subkey also holds a Windows subkey that describes various UI details of the operating system, a Classes subkey detailing which programs are associated with which file extensions, and others.
HKLM\SOFTWARE\Wow6432Node\ is found on 64-bit versions of Windows but is used by 32-bit applications. It's equivalent to HKLM\SOFTWARE\ but isn't the exact same since it's separated for the sole purpose of providing information to 32-bit applications on a 64-bit OS. WoW64 shows this key to 32-bit applications as "HKLM\SOFTWARE\."
Most of the time these keys appear blank when you open them and/or contain subkeys that are blank.
The SAM subkey refers to information about Security Accounts Manager (SAM) databases for domains. Within each database are group aliases, users, guest accounts, and administrator accounts, plus the name used to log in to the domain, cryptographic hashes of each user's password, and more.
The SECURITY subkey is used to store the security policy of the current user. It's linked to the security database of the domain where the user is logged in, or to the registry hive on the local computer if the user is logged in to the local system domain.
To see the contents of the SAM or SECURITY key, the Registry Editor must instead be opened using the System Account, which has greater permissions than any other user, even a user with administrator privileges.
Once Registry Editor has been opened using the appropriate permissions, the HKEY_LOCAL_MACHINE\SAM and HKEY_LOCAL_MACHINE\SECURITY keys can be explored like any other key in the hive.
Some free software utilities, like PsExec by Microsoft, are able to open Registry Editor with the proper permissions to view these hidden keys.
It might be interesting to know that HKEY_LOCAL_MACHINE doesn't actually exist anywhere on the computer, but is instead just a container for displaying the actual registry data being loaded via the subkeys located within the hive, listed above.
In other words, HKEY_LOCAL_MACHINE acts like a shortcut to a number of other sources of data about your computer.
Because of this non-existent nature of HKEY_LOCAL_MACHINE, neither you nor any program you install, can create additional keys under HKEY_LOCAL_MACHINE.
The HKEY_LOCAL_MACHINE hive is global, meaning that it's the same no matter which user on the computer views it, unlike a registry hive like HKEY_CURRENT_USER which is specific to each user that views it while logged in.
Although HKEY_LOCAL_MACHINE is often written as HKLM, it's not really an "official" abbreviation. This is important to know because some programs in some circumstances, even tools available directly from Microsoft, do not let you abbreviate the hive in registry paths. If you're getting an error while using "HKLM," use the full path instead and see if that fixes it.