text:
package main

import (
	"database/sql"
	_ "github.com/go-sql-driver/mysql"
	"net/http"
	"strconv"
	//"fmt"
)

type FContext struct {
	CSS      string
	Action   string
	Selector string
	Button   string
	Database string
	Table    string
	Order    string
	Desc     string
	Back     string
	Columns  []CContext
	Hidden   []CContext
	Trail    []Entry
	Level    string
}

func actionRouter(w http.ResponseWriter, r *http.Request, conn *sql.DB, host string, db string) {

	t, o, d, n, g, k, v := readRequest(r)

	q := r.URL.Query()
	action := q.Get("action")
	w.Header().Set("Content-Type", "text/html; charset=utf-8")

	colinfo := getColumnInfo(conn, t)
	wclauses, sclauses := collectClauses(r, colinfo)
	// TODO change *FORM to form="*"
	if action == "INFO" && o =="" {
		stmt := str2sql("SHOW COLUMNS FROM ") + sqlProtectIdentifier(t)
		showColumns(w, conn, t, stmt)
	} else if action == "INFO" && o != "" {
		showStat(w, conn, t, o)
	} else if action == "GOTO" && n != "" {
		dumpRouter(w, r, conn, t, o, d, n, g, k, v)
	} else if action == "SELECT" {
		dumpRouter(w, r, conn, t, o, d, n, g, k, v)
	} else if action == "BACK" {
		dumpRouter(w, r, conn, "", "", "", "", "", "", "")
	} else if action == "SELECTFORM" {
		actionSELECTFORM(w, r, conn, t, o, d)
	} else if action == "INSERTFORM" && !READONLY {
		actionINSERTFORM(w, r, conn, t, o, d)
	} else if action == "DELETEFORM" && !READONLY {
		actionDELETEFORM(w, r, conn, t, o, d)

		// TODO check Update insert and delete
	} else if action == "UPDATEFORM" && !READONLY && k != "" && v != "" {
		actionKV_UPDATEFORM(w, r, conn, t, k, v)
	} else if action == "UPDATEFORM" && !READONLY && g != "" && v != "" {
		actionGV_UPDATEFORM(w, r, conn, t, g, v)
	} else if action == "UPDATEFORM" && !READONLY {
		actionUPDATEFORM(w, r, conn, t, o, d)

	} else if action == "INSERT" && !READONLY && len(sclauses) > 0 {
		stmt := sqlInsert(t) + sqlSetClauses(sclauses)
		actionEXEC(w, conn, t, o, d, n, g, v, wclauses, stmt)

	} else if action == "UPDATE" && !READONLY && k != "" && v != "" && len(sclauses) > 0 {
		hclause := []Clause{Clause{Column: k, Operator: "s?"}}
		stmt := sqlUpdate(t) + sqlSetClauses(sclauses) + sqlWhereClauses(append(wclauses, hclause))
		actionEXEC1(w, conn, t, o, d, n, g, v, wclauses, stmt, v)
	} else if action == "UPDATE" && !READONLY && g != "" && v != "" && len(sclauses) > 0 {
		hclause := []Clause{Clause{Column: g, Operator: "s?"}}
		stmt := sqlUpdate(t) + sqlSetClauses(sclauses) + sqlWhereClauses(append(wclauses, hclause))
		actionEXEC1(w, conn, t, o, d, n, g, v, wclauses, stmt, v)
	} else if action == "UPDATE" && !READONLY && len(sclauses) > 0 {
		stmt := sqlUpdate(t) + sqlSetClauses(sclauses) + sqlWhereClauses(wclauses)
		actionEXEC(w, conn, t, o, d, n, g, v, wclauses, stmt)

	} else if action == "DELETE" && !READONLY && g != "" && v != "" {
		hclause := []Clause{Clause{Column: g, Operator: "s?"}}
		stmt := sqlDelete(t) + sqlWhereClauses(append(wclauses, hclause))
		actionEXEC1(w, conn, t, o, d, n, g, v, [][]Clause{}, stmt, v)
	} else if action == "DELETE" && !READONLY && k != "" && v != "" {
		hclause := []Clause{Clause{Column: k, Operator: "s?"}}
		stmt := sqlDelete(t) + sqlWhereClauses(append(wclauses, hclause))
		actionEXEC1(w, conn, t, o, d, n, g, v, [][]Clause{}, stmt, v)
	} else if action == "DELETE" && !READONLY {
		stmt := sqlDelete(t) + sqlWhereClauses(wclauses)
		actionEXEC(w, conn, t, o, d, n, g, v, [][]Clause{}, stmt)

	} else {
		shipMessage(w, conn, "Action unknown or insufficient parameters: "+action)
	}
}

// INSERTFORM and SELECTFORM provide columns without values, EDIT/UPDATE provide a filled vmap
// TODO: use DEFAULT and AUTOINCREMENT

func shipForm(w http.ResponseWriter, r *http.Request, conn *sql.DB,
	t string, o string, d string,
	action string, button string, selector string, showncols []CContext, hiddencols []CContext, whereStack [][]Clause) {

	q := r.URL.Query()
	q.Del("action")
	linkback := q.Encode()

	host,db := getHostDB(getDSN(conn))
	c := FContext{
		CSS:      CSS_FILE,
		Action:   action,
		Selector: selector,
		Button:   button,
		Database: db,
		Table:    t,
		Order:    o,
		Desc:     d,
		Back:     linkback,
		Columns:  showncols,
		Hidden:   hiddencols,
		Trail:    makeTrail(host, db, t, "", "", whereStack),
		Level:    strconv.Itoa(len(whereStack) + 1),
	}

	if DEBUGFLAG {
		initTemplate()
	}
	err := templateForm.Execute(w, c)
	checkY(err)
}

/* The next four functions generate forms for doing SELECT, DELETE, INSERT, UPDATE */

func actionSELECTFORM(w http.ResponseWriter, r *http.Request, conn *sql.DB, t string, o string, d string) {
	colinfo := getColumnInfo(conn, t)
	whereStack := WhereQuery2Stack(r.URL.Query(), colinfo)
	hiddencols := WhereStack2Hidden(whereStack)
	shipForm(w, r, conn, t, o, d, "SELECT", "Select", "true", colinfo, hiddencols, whereStack)
}

func actionDELETEFORM(w http.ResponseWriter, r *http.Request, conn *sql.DB, t string, o string, d string) {
	colinfo := getColumnInfo(conn, t)
	whereStack := WhereQuery2Stack(r.URL.Query(), colinfo)
	shipForm(w, r, conn, t, o, d, "DELETE", "Delete", "true", colinfo, []CContext{}, whereStack)
}

func actionINSERTFORM(w http.ResponseWriter, r *http.Request, conn *sql.DB, t string, o string, d string) {
	colinfo := getColumnInfo(conn, t)
	whereStack := WhereQuery2Stack(r.URL.Query(), colinfo)
	hiddencols := WhereStack2Hidden(whereStack)
	shipForm(w, r, conn, t, o, d, "INSERT", "Insert", "", colinfo, hiddencols, whereStack)
}

// TODO combine next 3 to 1 function: always promote gk,v, always fill if count = 1
func actionUPDATEFORM(w http.ResponseWriter, r *http.Request, conn *sql.DB, t string, o string, d string) {

	colinfo := getColumnInfo(conn, t)
	wclauses, _ := collectClauses(r, colinfo)
	whereStack := WhereQuery2Stack(r.URL.Query(), colinfo)
	hiddencols := WhereStack2Hidden(whereStack)

	count, _ := getSingleValue(conn, sqlCount(t)+sqlWhereClauses(wclauses))
	if count == "1" {
		rows, err, _ := getRows(conn, sqlStar(t)+sqlWhereClauses(wclauses))
		checkY(err)
		defer rows.Close()
		shipForm(w, r, conn, t, o, d, "UPDATE", "Update", "", getColumnInfoFilled(conn, t, "", rows), hiddencols, whereStack)
	} else {
		shipForm(w, r, conn, t, o, d, "UPDATE", "Update", "", colinfo, hiddencols, whereStack)
	}
}
func actionKV_UPDATEFORM(w http.ResponseWriter, r *http.Request, conn *sql.DB, t string, k string, v string) {
	colinfo := getColumnInfo(conn, t)
	whereStack := WhereQuery2Stack(r.URL.Query(), colinfo)
	col_g := findColumn(colinfo,k)
	isNumeric := col_g.IsNumeric
	var numeric bool
	if isNumeric != "" {
		numeric = true
	} else {
		numeric = false
	}
	whereStack = append(whereStack, []Clause{Clause{k, "=", v, numeric}})
	hiddencols := []CContext{
		CContext{"", "k", "", "", "", "", "valid", k, ""},
		CContext{"", "v", "", "", "", "", "valid", v, ""}}
	stmt := sqlStar(t) + sqlWhere1(k, "=")
	preparedStmt, _, err := sqlPrepare(conn, stmt)
	defer preparedStmt.Close()
	checkErrorPage(w, conn, t, stmt, err)
	rows, _, err := sqlQuery1(preparedStmt, v)
	checkY(err)
	defer rows.Close()
	primary := getPrimary(conn, t)
	shipForm(w, r, conn, t, "", "", "UPDATE", "Update", "", getColumnInfoFilled(conn, t, primary, rows), hiddencols, whereStack)
}
func actionGV_UPDATEFORM(w http.ResponseWriter, r *http.Request, conn *sql.DB, t string, g string, v string) {
	colinfo := getColumnInfo(conn, t)
	whereStack := WhereQuery2Stack(r.URL.Query(), colinfo)
	col_g := findColumn(colinfo,g)
	isNumeric := col_g.IsNumeric
	var numeric bool
	if isNumeric != "" {
		numeric = true
	} else {
		numeric = false
	}
	whereStack = append(whereStack, []Clause{Clause{g, "=", v, numeric}})
	hiddencols := []CContext{
		CContext{"", "g", "", "", "", "", "valid", g, ""},
		CContext{"", "v", "", "", "", "", "valid", v, ""}}
	stmt := sqlStar(t) + sqlWhere1(g, "=")
	preparedStmt, _, err := sqlPrepare(conn, stmt)
	checkErrorPage(w, conn, t, stmt, err)
	defer preparedStmt.Close()
	rows, _, err := sqlQuery1(preparedStmt, v)
	checkY(err)
	defer rows.Close()
	primary := getPrimary(conn, t)
	shipForm(w, r, conn, t, "", "", "UPDATE", "Update", "", getColumnInfoFilled(conn, t, primary, rows), hiddencols, whereStack)
}

// Excutes a statement on a selection by where-clauses
// Used, when rows are not adressable by a primary key or in table having a group
func actionEXEC(w http.ResponseWriter, conn *sql.DB, t string, o string, d string, n string, g string, v string,
	whereStack [][]Clause,stmt sqlstring) {

	messageStack := []Message{}
	preparedStmt, _, err := sqlPrepare(conn, stmt)
	checkErrorPage(w, conn, t, stmt, err)
	defer preparedStmt.Close()

	result, sec, err := sqlExec(preparedStmt)
	checkErrorPage(w, conn, t, stmt, err)
	affected, err := result.RowsAffected()
	checkErrorPage(w, conn, t, stmt, err)

	messageStack = append(messageStack, Message{sql2str(stmt), -1, affected, sec})
	nextstmt := sqlStar(t) + sqlWhereClauses(whereStack) + sqlOrder(o, d)
	dumpSelection(w, conn, t, o, d, n, g, v, nextstmt, whereStack, messageStack)
}

/* Executes prepared statements about modifications in tables with primary key or having a group
 * Uses one argument as value for where clause
 * However, prepared statements only work with values, not in identifier position */
func actionEXEC1(w http.ResponseWriter, conn *sql.DB, t string, o string, d string, n string, g string, v string,
	whereStack [][]Clause, stmt sqlstring, arg string) {

	messageStack := []Message{}
	preparedStmt, sec, err := sqlPrepare(conn, stmt)
	checkErrorPage(w, conn, t, stmt, err)
	defer preparedStmt.Close()
	messageStack = append(messageStack, Message{"PREPARE stmt FROM '" + sql2str(stmt) + "'", -1, 0, sec})

	result, sec, err := sqlExec1(preparedStmt, arg)
	checkErrorPage(w, conn, t, stmt, err)
	affected, err := result.RowsAffected()
	checkErrorPage(w, conn, t, stmt, err)

	messageStack = append(messageStack, Message{"EXECUTE stmt USING \"" + arg + "\"", -1, affected, sec})
	nextstmt := sqlStar(t) + sqlWhereClauses(whereStack) + sqlOrder(o, d)
	dumpSelection(w, conn, t, o, d, n, g, v, nextstmt, whereStack, messageStack)
}


Green coffee beans are coffee seeds (beans) of Coffea fruits that have not yet been roasted. When green coffee beans are roasted, the process reduces amounts of the chemical chlorogenic acid within them. Therefore, green coffee beans have a higher level of chlorogenic acid compared to regular, roasted coffee beans.


text:
Call for Help is dark today for our monthly planning meetings. OK we're really just busy downloading the new Matrix: Revolutions trailer.Patrick is on vacation, racing trucks; Kevin Rose will fill-in for him on tonight's The Screen Savers.
Jack LaLanne is 89. Abbey Road, the last album the Beatles recorded as a group, was released on this day in 1969.
The author of a report critical of Microsoft's dominance has been fired by his company. Security firm @Stake said that CTO, Daniel R. Geer Jr.'s participation in preparation of the report was not sanctioned by the firm, and that "the values and opinions of the report are not in line with [@Stake's] views." Oh yeah, and Microsoft just happens to be a client. CIO Magazine had already refused to assist the CCIA in distributing the report, saying it was "too sensitive." Bet you want to read it now, don't you? (It's in this PDF alas.)
The Register says Sobig is being used to target anti-spam sites with DDoS attacks. SPEWS, Monkeys.com and Compu.Net blacklisting sites have been closed. Spamhaus is under constant attack. In addition, Messagelabs says 70% of spam is coming through open proxies – half of which are created by trojans Sobig, Fizzer, and BugBear.
As we reported yesterday, Congress acted with unusual alacrity and unanimity to save the Do Not Call registry, but now a second judge has ruled that the list blocking telemarketing calls violates the First Amendment. Can Congress repeal that overnight?
The New York Times has an interview with Sarah Ward, the retired school teacher who the RIAA wrongly accused of sharing hip-hop. It's very disturbing. These lawsuits smack of a police state. Instead of Orwell's Thought Police, we have the Copyright Police, and they're clearly out of control.
Meanwhile major library organizations file brief in support of Morpheus and Grokster. Wow.
Send spam, go to jail. Senate Judiciary Committee approves a bill that includes jail time for spammers but it's unlikely that Congress will have time to pass it before adjourning. Congress could never pass a bill in just a week, could it? Hmmmm.
House effectively kills TIA by eliminating it from the budget. I guess Admiral Poindexter will have to find work other than spying on Americans. Sen. Ron Wyden told c|net that the "program that would have been the biggest and most intrusive surveillance program in the history of the United States will be no more. The lights are going out at the office." The Senate still has to approve.
On the heels of Yahoo's new shopping search service, Amazon says it's going to start a Pricewatch style site, too.
The dog genome has been mapped. Craig Ventner donated the genes of his poodle, Shadow, for the effort.
CategoriesBlog, Uncategorized TagsNews, Technology
8 Replies to "Friday Update"
Now that they've mapped the dog genome, if they reverse that, can we clone god?
… oh. Shoulda clicked the link… yep!
… and it wasn't it Ventner whose dna was mapped for the human genome project??? Weird!
The CCIA white paper should be required reading on Capitol Hill. Lets hope it gets the attention it deserves. BTW Leo, the addition of daily tech news to your blog is an appreciated timesaver around here. Thanks.
I just e-mailed a note to the 10th circuit court of appeals. I hope this one gets through, it might be enought to persuade these judges to act.
Dear Sir or Madam:
I am writing this to you in the hopes that it will be forwarded to the judges who sit on the court. I ask that they hear the opinion of a concerned citizen of this country about the subject of free speech and telemarketing.
Recently U.S. District Judge Edward W. Nottingham in Denver blocked the efforts of the FTC in creating a national do not call list. He ruled that it is unconstitutional because it violates the first amendment right of free speech. In light of this, I would want to remind the honorable judges that the founding fathers of our country created the first amendment to protect political and religious speech, not commercial speech. They did this because they were being persecuted in the old country for political and religious reasons. In ruling against the national do not call list, Judge Nottingham has ignored the spirit of the first amendment, and the will of nearly half the households of the United States. When the do not call list was offered by the FTC, the people of this country spoke out politically. The right of the political speech of the average citizen should be held in higher regard than commercial speech. I urge you to overturn Judge Nottingham's ruling and uphold the constitution in the manner that it was intended.
This will make me sound like an old raving libertarian (small l!) but.. it definitely seems as if there are 'dark forces' at work out there covering things up..
Forget the Do Not Call List, turn off the ringer and sit down in front of the the tv because Doctor Who is coming back to television. I only mention is because I heard Leo mention Doctor Who twice in one week sometime back… 1. TSS when word the BBC was opening their archives, 2. The answer to a CFH question. Goodness, I screamed at my television. http://www.bbc.co.uk/cult/news/drwho/2003/09/26/7012.shtml & http://www.gallifreyone.com/news.shtml & as of this afternoon all over net. I'm such a Uber geek gal for this series. Okay, thank you for this moment of fluff. 🙂
The do not call list would save us from leting calls we don't like . We should write them in support of the list.
Previous PostPrevious Delisted from Amazon
Next PostNext Moanday's News
CleanShot X for Mac 18 January 2021
Leo's pick for 1/19/21: A better screenshot and screen recording tool with M1 support. $29

redpajama_set_name: RedPajamaCommonCrawl


Cape Town - Authorities should be completely open with the media on Nelson Mandela's hospitalisation and provide regular updates, public relations experts said on Thursday.
"They are opening themselves up to rampant speculation by not keeping the press informed," said Evelyn Holtzhausen, chief executive of Cape Town-based HWB Communications.
"The first rule of public relations is to keep the press informed."
He was speaking as scores of journalists continued to camp outside Johannesburg's Milpark Hospital, where Mandela was admitted on Wednesday for what the Nelson Mandela Foundation said - in a two-sentence statement - were "routine tests".
Since then there has been a string of visitors to the former president, and a brief statement from the African National Congress giving no further information of substance.
Holtzhausen said that from a PR perspective, Mandela was an internationally-renowned statesman, and there was an obligation on his minders to keep the people of South Africa and the rest of the world aware of what was happening to him.
The media ought to respect his need for privacy, but at the same time he was a very public figure.
"They should be issuing bulletins regularly," he said.
Holtzhausen, himself a former journalist, said that from what he had seen, the media had certainly been respectful, and had not indulged in speculation.
He said he spoke on Wednesday to the editor of a large-circulation South African newspaper, who had said they was aware of the need to handle the issue very sensitively.
"There is responsibility [on the side of the media], but it's also up to the gatekeepers of Mr Mandela to show recognition of the critical role the media play," Holtzhausen said.
Muriel Hau-Yoon, owner of Cape Town-based PR company Afrikom, said Mandela was the public property of all South Africans, and probably one of the best-loved leaders ever.
"It would be better for the spokespersons to be honest and open and tell the public exactly what's happening," she said.
"By not providing regular feeds they fuel speculation. It's Communications 101: it's a basic communications principle. Any spokesperson worth their salt would come out with regular statements."
Both Hau-Yoon and Holtzhausen said the number of high-profile visitors and family members who have been to see Mandela in hospital gave rise to the suspicion that his stay involved more than just "routine tests".
"It's always wiser, more prudent, to give the honest truth," Hau-Yoon said.
"Whatever it is... I think they owe it to the South African public to be open and honest. I think any communications practitioner would agree on this."
Another Cape Town PR guru, who asked not to be named for professional reasons, said her advice to Mandela's minders would be: "Regular updates, so the media aren't clamouring for comment. Be as transparent as possible. Stick to the facts."
The minders should have had detailed plans in place to deal with a situation like this.
"What you want to do is to limit speculation as much as you can. But the reality is you're going to have a media frenzy. It's Madiba," she said.
Agreed!!! If he dies this week then will they be like he died suddenly?
If he dies this week, it will become like Weekend at Bernies. We'll only find out what really happened in a few weeks time.
I unquestionably agree with his need for privacy , however Tata Madibe belong to all South African and the globe at such I complete agree that they should not be mum about his condition and there is a need to continuously update the public. We understand He gave more to this country and there nothing more we can ask from him . I wish him speedy recovery , Modimo le badimo Ba Afrika le gotswa dikgotlong tse nne tsa lefase babe le wena.
Why? So that thousands and thousands of people can flock to the hospital? While people would do so to show support and pay respects it would be a security and logistical nightmare and would be no good to either Madiba or the other patients, not to mention ambulances who wouldn't be able to get patients in critical condition to the hospital for treatment. Madiba is 92 - the fact that he will not grace this earth much longer is not "speculation". People know he is in hospital - that is enough! Now all anyone can do is pray that he recovers and that if this is his time that it is peaceful, loving a dignified!
Disagree. Why would telling people that Mandela has x, y or z make people flock to the hospital? Keeping everything a secrete can equally have the same effect. You statement makes no sense.
Right again, what is this goverment doing. is there not brain cell between them, that works. What the hell is the world going to think about us South Africans. anc is draging his good name down with them. anc WAKE UP.
Enuff YOU did read the story above right, then need i say more.
Just let the poor people be.
It all comes down to respect. We for him and him for us. In the absence of his ability to inform us directly as to his current condition, his minders must respect our concern, love & care and meet this with truthful statements in this regard. We in return will respect his and his families privacy. This is no PR stunt.
The Grand Gentleman should be allowed to live or die in peace - which he has strived for for this country. Whatever we will miss an icon.
After everything he has done for the country can you not just grant him one week of privacy??? Selfish media! I'll wait patiently for any news and wish him all the best - get better soon Madiba!
In agreement with this article!!!!!!!
Only experienced people can speak like that. Government officials should be workshop how to be honest.
All this week we have been bombarded on talk radio about the need for pupils to be fed before and at school as their parents are unable to feed them. And we feel a little guilty! Then Mr Mandela enters hospital for 'routine checks'. Apart from the indignation of being treated as imbeciles as this government would like to treat us all, the sheer vulgarity and opulence displayed by visitors to Milpark hospital really makes one wonder. There is money out there to feed these kids and it is all being displayed on the road outside the hospital. Practically the whole complement of Jones' farm were there-needing to be seen! The only one missing was Napoleon himself!
The truth is the best way to go about it. Speculation causes unneccesary comments that strings along from one thing to another that is eventualy not relevant to the health of Madiba but rather nausty racist comments. Information about Madiba can still be done without harming the privacy of his family.


If you're considering your options for flight tickets from Abbotsford to Ixtapa/Zihuatanejo, WestJet is the smart choice. We fly to destinations in North America, Central America, the Caribbean and Europe — including flights into Ixtapa-Zihuatanejo International Airport — and we're here to get you where you want to be. Our long-term commitment to great guest experiences and safe, affordable travel means our passengers pay less and get more. Explore our selection of flight tickets now.
Find the flight ticket you need to start planning an unforgettable visit to one of the most calm and good-natured destinations in Mexico. No matter the reason for your travel, you can rely on WestJet to get you from Abbotsford to Ixtapa/Zihuatanejo so that you can enjoy the Ixtapa Ciclopista (bicycle trail), Playa Quieta and Playa el Palmar.


text:
As told to: Andie Steele-Smith on working with gang members in Cape Town during lockdown
by Leah Wilson | Apr 20, 2020
Andie Steele-Smith works in underprivileged areas in Cape Town and is offering hygiene supplies and food to the residents living there.
Andie Steele-Smith (52) is part of essential services during the Covid-19 pandemic. He advocates for dignity and hope in Cape Town's most underprivileged communities by volunteering support where needed by collecting and distributing hygiene products, food, and offering emotional support and prayer.
Steele-Smith currently focuses his work in Manenberg and Fisantekraal in the Western Cape province, spending 5-6 hours a day there, however during lockdown this has more than doubled. He does this with his two unofficially adopted twins, Franklin and Junior Geduld (19) who are from Fisantekraal. These settlements are approximately 40 minutes distance from one another.
The Australian born Steele-Smith has done religious ministry to gang members and the homeless in the United States and United Kingdom before moving to South Africa in 2015, which he says God called him to do. In 2016, Steele-Smith was involved in a young men's Bible study in Fisantekraal and became well known in the community. He realised that many of the boys lacked a consistent father figure in their lives, this ultimately drew him to being involved in ministering to gang members in Manenberg, where many of the gangs operate.
During the Covid-19 lockdown period, he has witnessed notorious gangs in Fisantekraal and Manenberg, such as the Americans, Jesters and Clever Kidz pull together to distribute soap and essential goods to their communities. In spite of the looting that was reported in Manenberg and Mitchells Plain on EWN, earlier this week, the community is trying to do better.
This was a "pinch-me" moment for Steele-Smith and he believes that although this response during Covid-19 may not end gang violence, it could help these young men to see themselves based on what they can positively contribute to society.
As told to Leah Wilson
Two weeks before the lockdown the twins and I figured a storm was coming. We didn't know exactly how bad it was going to be. We thought it was going to be worse at this moment. Although, I think it's going to get worse.
We had to do something, we went and bought about R50 000 worth of soap bars, initially. We started distributing it in Fisantekraal and Manenberg.
As we got closer to lockdown, I realised that in order to get that soap distributed, I was going to need extra help. I went to some of the gang leaders and said ,"Hey boys, please will you help us here".
So we started to have gangsters who were helping each other, in opposing territories, to distribute soap to parts of the community. That seemed to be pretty cool to me, to them it seemed to be revolutionary.
They were all shaking their heads going, "We're not meant to be here, we'll get killed," or "You're not meant to be here, we're meant to kill you," or that kind of thing.
The day the lockdown started, the gang leaders called me and said, "Andie, we really need food and the whole community needs it, worse than we do, is there any chance you could do something?" And so I literally jumped in the truck. I went to Jumbo Cash and Carry. We bought about R30 000 worth of food and started distributing that.
The biggest challenge has been trying to, as quickly as possible, distribute as much soap, sanitiser and food into pretty hostile and difficult environments whilst trying to observe social distancing. Trying to keep people away from us and away from each other, is quite difficult too.
We've been able to purchase the food that we need in large quantities and so we haven't run out yet, but we will do so soon. Manenberg at the moment is dire, it is absolutely desperate. The desperation is just for food, as food scarcity is such a big issue, at the moment. It's almost frightening.
People are experiencing that, when they are hungry, everything else seems pretty terrible. They feel terrible about it. They feel unloved, they feel uncared for, they feel like the world owes them a living. You know, when you're that poor, it probably does.
These people face poverty, drugs alcohol, gender-based violence, sexual abuse, human trafficking, gross inadequacies of the legal system, gross injustices, you-name-it. HIV and TB included. They lack access to services and to medical help.
I'm good friends with the Hillsong Africa Fund and they said "Hey listen, we love what you're doing, can we get behind it, can we help to raise some funds and help you do this in Manenberg and Fisantekraal."
We don't have any formal partnership as such. We tend to try and build relationships with community leaders. It's not always the person with the ANC shirt or DA shirt, although sometimes, it is. Usually it's somebody that we just see as a really good and trustworthy figure in that community.
You know, I'm a white privileged kid from Australia, who has lived all around the world and had privilege all his life. What do I know about hardship? Nothing. So it just would be totally illogical for me to come in and start telling people what to do.
The approach we're taking is to ask questions and then say "Hey, ok cool, here's something that together, we might be able to work on to help resolve a challenge that you guys have identified."
In terms of the goal in these communities, fundamentally, it's to point people to Jesus. Secondly it's to give these young guys and girls, particularly young guys, an understanding of the Father's heart for them. If they haven't had a physical father, or a good father, that can be a real challenge. The rest of it varies from place to place, but ultimately our goal is to uplift.
Feeding people, in a sense, is the unintended consequence of what we're doing here in Manenberg over the lockdown period.The intended consequence is delivering dignity and hope to people. It's about giving people, in terms of the guys who are helping, an understanding of the value that they can create and contribute in society leading to a different sense of self-worth.
FEATURED IMAGE: Left: Steele-Smith with Kim Cassel from Mitchells Plain, who runs a youth dance studio, and police officer Dave on a food handout to approximately 280 houses in 'the tuck', Strandfontein, Wednesday 15 April. Right: Sansime Hassan, leader of the Cleverkidz, handing out parcels in Manenberg on 15 April, as part of a drive to hand out several thousand eggs and food. Photos: Courtesy Andie Steele-Smith.
Wits Vuvuzela, COVID19: A palianation nurse talks about care in the time of coronavirus, April 15, 2020.
Wits Vuvuzela, Companies pave the way for deliveries of essential goods, April 16, 2020.


The answer, of course, is any of the above. Indeed, an entertaining part of researching public health financing is finding fresh synonyms and similes to fill in that blank.
What about the system that supports this work and pushes it forward with more than just good will?
What about the public health infrastructure that has most recently, in particular, become so fragile?
How do we make an effective value proposition for population health in ways that positively affect public health infrastructure over the long term?
Public health investments are typically a long game. Returns on those investments may not be realized for decades or generations. Fiscal instability threatens critical public health infrastructure in many places across the United States today. One very current, cogent need of the public health system is to harness the skills and talents of actuaries to help make the necessary data-based and numbers-focused decisions that, prior to now, have not been articulated widely or effectively enough to establish a well-funded system.
If, as an actuary, you choose to become more engaged with ways to achieve the health care triple aim of reduced health care costs, improved quality of care and better population health outcomes, you will need at least a brief understanding of the nation's public health system. Here are a few practice-based reflections about that system, a guide to further investigation and a plea for your help.
Many agencies today sensibly seek funding diversity in order to increase funding stability. There can be some magic in the diversity of funding and flexibility in local response to the need for public health. The challenge is in working the timeline and flexibility of funding along with the diversity, while sustaining the underlying pieces to make it all continue to work effectively. This includes the workforce, infrastructure, training and technology. Too often, the funding streams in public health are responsive (yet tardy) to emerging disease or are intended for disease-burden or program-specific areas, and are based on reimbursement models rather than real-time need for salary support or supplies. Disease- or program-specific funding is short-lived, including many stipulations for spending in dictated categories with redundant audits by topic area or funding source rather than by agency.
The public health workforce continues to be an essential piece of the puzzle and certainly a source of much of the magic in making public health happen. What draws us to work on something? What motivates us to contribute time, resources, intellect and creativity? … to take the risks needed to improve an individual's health outcome or community health need?
Very few people who work in public health say it charts back to a tangible incentive.4 As we focus so many of our health system decisions today on cost, benefit and return on investment in the short term, caring about people and community is not an answer that stands alone; it's a part of the formula for how, through policies and budget priorities, we choose to invest community by community or state by state. Working for the greater good and improving community health no longer seem to be enough on their own merit.
Across the health professions, we often hear the phrase, "no margin, no mission," and certainly, we all understand it. Business practices, quality improvement approaches and added efficiencies to the ways we deliver public health are the norm. In governmental public health, the mission drives the need for margin, not the other way around. This is one of many examples where hospital systems and governmental public health departments sometimes struggle with how to operationalize collaborative efforts. And still, thankfully, critical partnerships to serve community health outcomes are happening more and more in places large and small. The notion of "bending a cost curve" resonates with some leaders of hospital systems as well.
The challenge, again, can be the timeline in seeing the results of community health efforts on a balance sheet. Financial accounting systems in public health are primarily designed to get agencies only through the next fiscal year. Governmental funds are reported using an accounting method called modified accrual accounting, which provides a short-term spending focus. Public health has been in a reimbursed mode for too long. It's time to think and plan ahead for actual costs related to community health needs.
While some of the struggles around longer-term funding are real, it may be tempting to think that such vulnerability hinders the workforce. Yet, in my 22 years of serving as a member of the public health workforce in North Carolina, I haven't come across anyone unwilling to venture into another fiscal year with their sleeves rolled up, ready to address whatever comes their way. It's a rewarding adventure most times.
Often, people come into public health connected to a specific disease-related area of interest, have empathy about human suffering, or a deep-down desire to improve health outcomes for individuals and groups. In some cases, it's about saving resources—both financial and human (e.g., offering vaccines for children's programs). In other cases, it's about improving quality of life or reducing the burden of chronic disease we have witnessed (e.g., diabetes, HIV, heart disease, stroke and cancer prevention programs). Sometimes it's about movements of social justice and environmental concern (e.g., working on access to care and health equity within a community). Other times it's about responding to natural and manmade disasters (e.g., preparedness and response). There are those contributing to public health who have a genuine scientific curiosity about epidemiology, which is the study of diseases in populations.
Whatever motivates those who contribute to it, public health at its core is contributing to "fulfilling society's interest in assuring conditions in which people can be healthy."5 We know intuitively as well as intellectually that, when a population is healthier, there are many long-term benefits including saving money in our health system.
"Public Health Systems Research (PHSR) is a field of study that examines the organization, financing and delivery of public health services within communities and the impact of these services on public health.
PHSR is a multidisciplinary field of study that recognizes and investigates system level properties and outcomes that result from the dynamic interactions among various components of the public health system and how those interactions affect organizations, communities, environments and population health status.
The public health system includes governmental public health agencies engaged in providing the 10 essential public health services, along with other public and private sector entities with missions that affect public health.
Public health is good at mobilizing partners and being a convener or backbone agency for collective impact at the local level.
We are challenged across the nation to set up a system that feeds critical infrastructure while providing information and incentives to sustain it.
Just because it's governmental doesn't mean public health is a system that can't quickly mobilize and respond. The workforce is well-trained in this way. Public health is less subsidized and more willing to be creative than partners think, so be open to learning those nuances.
Finally, preventive clinical services and primary care are essential links with public health. In places across the United States, health care and public health are connected; we simply need to ensure that system is sustained for long-term success and improved health outcomes.
Join us. We need your help.
Learn more about building resilient public health systems.
Lisa Macon Harrison, MPH, has been the director of the Granville-Vance District Health Department in North Carolina since 2012. Her previous roles in North Carolina public health thread through research, practice and policy development.


Researchers have created a public-scale prototype of a mobile green wall designed to harness the power of plants to clean the air inside the building.
The prototype was created by researchers from the School of Architecture at Rensselear Polytechnic Institute at the Institute's Centre of Architecture Science and Ecology (CASE) in New York City.
The wall has commercial potential in indoor spaces such as office buildings and hotels and its mobility allows it to be relocated to different environments.
The wall is made up of two panels of plants, each measuring six feet long and seven feet tall. It contains approximately 30 densely packed plants and will hang on one of the walls of a building on campus.
The prototype has been designed to be mobile so that research on its effects can be conducted within different settings within the building. It has been connected to plumbing for maintenance but the system is also designed with a water tank so it can operate independently.
"The technologies CASE researchers are developing, like this green wall, have the potential to revolutionise our ability to deliver clean air to urban populations, and reduce the carbon footprint of cities and buildings, by reducing the fossil fuel consumption of the heating, cooling, and ventilation systems," said CASE director Anna Dyson.
The project also explores the boundaries of biotechnology research beyond the conventional disciplines of science and engineering to include architecture, humanity and art projects. The prototype aims to maximise the amount of airborne toxins filtered out using the leaves and roots of the plants.
"This particular green wall takes a step beyond previous green walls in that it seeks to improve air quality by amplifying the air filtration that naturally occurs in plants," said Matt Gindlesparger a lecturer at CASE who has led the research and prototyping of the green wall.
Gindlesparger added that removing toxins from air is particularly important because nearly every material used in construction, including paint and carpeting, involves synthetic finishes that slowly release volatile organic compounds (VOC's).
While green walls have been creeping up building exteriors for years, helping reduce the urban heat island effect, indoor living walls are gaining traction for the health benefits they can bring to the building's inhabitants.
Research over the last three decades has shown that indoor plants can reduce most types of urban air pollutants. Just last week, the world's tallest indoor living wall was unveiled in Quebec, Canada.
Entitled The Currents, it is aesthetically inspired by the views of the St. Lawrence River visible from Quebec City and Lévis.
Toronto-based design firm, Green over Grey created the wall, which stretches 65 metres high and boasts a total surface area of 198 square metres.
The Currents features more than 11,000 plants.
When creating green walls, it is crucial to use plants which suit the microclimate of the environment.
In Australia, there has been a series of office spaces implementing indoor foliage or living walls, including architects BVN Donovan Hill's Herbert Smith Freehills office.
The project was shortlisted for a 2014 Australian Interior Design Award and sees individual indoor green walls spanning over five levels of the Sydney office.
Each wall was designed to align with the individual look of each floor while offering a natural backdrop for staff and air purifying benefits.
"All the plants used and planting arrays are designed to evolve with a sustainable ecology requiring minimal maintenance and will last the natural life of the plants," said Fytogreen, the company which helped to complete the wall, on its website.
According to Ambius Indoor Plants, green displays also absorb noise and improve acoustics indoors. This is particularly useful as many offices move toward open-plan and collaborative spaces where living walls or mobile planters could work as sound barriers or desk dividers.
Indoor green walls demonstrate that plants can play an instrumental role in mitigating toxins in the air, offering health and productivity benefits while also making the space better acoustically and environmentally and aesthetically.
For sure plants contribute to improve the air quality…obviously depends on the plant you chose for your space, but I do believe this is a great initiative for public spaces:it creates a friendly space you want to enjoy.
I'm not convinced…….Id like to see the data on air quality improvement. Id like to know what types of fungal communities inhabit the soil and are mold spores released. What happens when the plants release pollen?
Anything which can create healthy and vibrant work environments is welcome. Wonder how popular this type of thing will be in multi-residential environments.
architects claim a lot don't they? this is surely an engineering feat?


text:
Support the MSK FOOD Program
Help us give food to patients who need it most
Healthy nutrition is essential for anyone with cancer.
It helps to build strength, maintain weight, and fight infection. But some patients in our community lack the resources to buy the food they need to stay strong. In fact, 75% of cancer patients that participate in programs sponsored by MSK's Immigrant Health & Cancer Disparities service (IHCD) don't have the food they need.
The FOOD Program
The Food to Overcome Outcome Disparities (FOOD) Program at MSK helps provide nourishing food for patients who need it most. Since 2011, the FOOD Program has distributed more than 300,000 nourishing meals to more than 4,000 unique patients and their families. Since the outbreak of COVID-19, FOOD has delivered more than 50,000 meals to more than 450 immunocompromised, food insecure cancer patients.
But there's still a need for more.
Access to nutritious food is still a source of concern for many financially vulnerable patients and their families. Let's work together to provide patients in need with healthy meals.
Help support the FOOD Program.
Funded towards a goal of $75,000
development@mskcc.org
1275 York Ave.
SVP Updates
Society of MSK
MSK Alumni Society
SIGN UP FOR MSK UPDATES
© Memorial Sloan Kettering Cancer Center


ComTech specializes in providing support to manufacturing companies within the telecommunications market. Providing solutions for all your Telecommunications needs. ComTech Sales partners with these companies to become part of their sales and support. Serving the telecommunications industry since 1994, ComTech Sales can provide an extensive knowledge base of customer and industry experience.


text:
<?php

namespace ElkArte;

/**
 * This class holds all the data belonging to a certain member.
 */
class Member extends ValuesContainer
{
	/**
	 * The set of data loaded
	 *
	 * @var string
	 */
	protected $set = '';

	/**
	 * @var \BBC\ParserWrapper
	 */
	protected $bbc_parser = null;

	/**
	 * If context has been loaded or not
	 *
	 * @var bool
	 */
	protected $loaded = false;

	/**
	 * Basically the content of $modSettings['displayFields']
	 *
	 * @var mixed[]
	 */
	protected $display_fields = [];

	/**
	 * Constructor
	 *
	 * @param mixed[] $data
	 * @param string $set
	 * @param \BBC\ParserWrapper $bbc_parser
	 */
	public function __construct($data, $set, $bbc_parser)
	{
		parent::__construct($data);
		$this->set = $set;
		$this->bbc_parser = $bbc_parser;
	}

	/**
	 * Adds data to a member
	 *
	 * @param string $type
	 * @param mixed[] $data
	 * @param mixed[] $display_fields Basically the content of $modSettings['displayFields']
	 */
	public function append($type, $data, $display_fields)
	{
		$this->data[$type] = $data;
		$this->display_fields[$type] = $display_fields;
	}

	/**
	 * Returns a certain data
	 *
	 * @param string $item
	 * @return mixed[] Anything set for that index
	 */
	public function get($item)
	{
		if (isset($this->data[$item]))
		{
			return $this->data[$item];
		}
		else
		{
			return null;
		}
	}

	/**
	 * Prepares some data that can be useful in the templates (and not only)
	 *
	 * @param bool $display_custom_fields
	 * @return bool
	 */
	public function loadContext($display_custom_fields = false)
	{
		if ($this->loaded)
		{
			return true;
		}

		// We can't load guests or members not loaded by loadMemberData()!
		if (empty($this->data['id_member']))
		{
			return false;
		}

		$this->prepareBasics();
		$this->loadBasics();
		$this->loadExtended();
		if ($display_custom_fields)
		{
			$this->loadOptions();
		}

		call_integration_hook('integrate_member_context', array($this, $display_custom_fields));

		$this->loaded = true;

		return true;
	}

	/**
	 * Prepares signature, icons, and few basic stuff
	 */
	protected function prepareBasics()
	{
		$this->data['signature'] = censor($this->data['signature']);

		// TODO: We should look into a censoring toggle for custom fields

		// Set things up to be used before hand.
		$this->data['signature'] = str_replace(array("\n", "\r"), array('
', ''), $this->data['signature']);
		$this->data['signature'] = $this->bbc_parser->parseSignature($this->data['signature'], true);

		$this->data['is_online'] = (!empty($this->data['show_online']) || allowedTo('moderate_forum')) && $this->data['is_online'] > 0;
		$this->data['icons'] = empty($this->data['icons']) ? array('', '') : explode('#', $this->data['icons']);

		// Setup the buddy status here (One whole in_array call saved :P)
		$this->data['buddy'] = in_array($this->data['id_member'], User::$info->buddies);
	}

	/**
	 * These minimal values are always loaded
	 */
	protected function loadBasics()
	{
		global $txt;

		$this->data['username'] = $this->data['member_name'];
		$this->data['name'] = $this->data['real_name'];
		$this->data['id'] = $this->data['id_member'];

		$this->data['href'] = getUrl('profile', ['action' => 'profile', 'u' => $this->data['id_member'], 'name' => $this->data['real_name']]);
		$this->data['link'] = 'data['href'] . '" title="' . $txt['profile_of'] . ' ' . trim($this->data['real_name']) . '">' . $this->data['real_name'] . '';
		$this->data['email'] = $this->data['email_address'];
		$this->data['show_email'] = showEmailAddress(!empty($this->data['hide_email']), $this->data['id_member']);
		if (empty($this->data['date_registered']))
		{
			$this->data['registered_raw'] = 0;
			$this->data['registered'] = $txt['not_applicable'];
			$this->data['registered_timestamp'] = 0;
		}
		else
		{
			$this->data['registered_raw'] = $this->data['date_registered'];
			$this->data['registered'] = standardTime($this->data['date_registered']);
			$this->data['registered_timestamp'] = forum_time(true, $this->data['date_registered']);
		}
	}

	/**
	 * Loads the huge array of content for the templates (context)
	 */
	protected function loadExtended()
	{
		global $modSettings, $txt, $settings, $context;
		if ($this->set !== MemberLoader::SET_MINIMAL)
		{
			$buddy_list = !empty($this->data['buddy_list']) ? explode(',', $this->data['buddy_list']) : array();
			$style_color = !empty($this->data['member_group_color']) ? 'style="color:' . $this->data['member_group_color'] . ';"' : '';
			$send_pm_url = getUrl('action', ['action' => 'pm', 'sa' => 'send', 'u' => $this->data['id_member']]);
			$online_status = $this->data['is_online'] ? 'online' : 'offline';

			$this->data = array_merge($this->data, array(
				'username_color' => '' . $this->data['member_name'] . '',
				'name_color' => '' . $this->data['real_name'] . '',
				'link_color' => 'data['href'] . '" title="' . $txt['profile_of'] . ' ' . $this->data['real_name'] . '" ' . $style_color . '>' . $this->data['real_name'] . '',
				'is_buddy' => $this->data['buddy'],
				'is_reverse_buddy' => in_array(User::$info->id, $buddy_list),
				'buddies' => $buddy_list,
				'title' => !empty($modSettings['titlesEnable']) ? $this->data['usertitle'] : '',
				'website' => array(
					'title' => $this->data['website_title'],
					'url' => $this->data['website_url'],
				),
				'birth_date' => empty($this->data['birthdate']) || $this->data['birthdate'] === '0001-01-01' ? '0000-00-00' : (substr($this->data['birthdate'], 0, 4) === '0004' ? '0000' . substr($this->data['birthdate'], 4) : $this->data['birthdate']),
				'real_posts' => $this->data['posts'],
				'posts' => comma_format($this->data['posts']),
				'avatar' => determineAvatar($this->data),
				'last_login' => empty($this->data['last_login']) ? $txt['never'] : standardTime($this->data['last_login']),
				'last_login_timestamp' => empty($this->data['last_login']) ? 0 : forum_time(false, $this->data['last_login']),
				'karma' => array(
					'good' => $this->data['karma_good'],
					'bad' => $this->data['karma_bad'],
					'allow' => User::$info->is_guest === false && !empty($modSettings['karmaMode']) && User::$info->id != $this->data['id_member'] && allowedTo('karma_edit') &&
						(User::$info->posts >= $modSettings['karmaMinPosts'] || User::$info->is_admin),
				),
				'likes' => array(
					'given' => $this->data['likes_given'],
					'received' => $this->data['likes_received']
				),
				'ip' => htmlspecialchars($this->data['member_ip'], ENT_COMPAT, 'UTF-8'),
				'ip2' => htmlspecialchars($this->data['member_ip2'], ENT_COMPAT, 'UTF-8'),
				'online' => array(
					'is_online' => $this->data['is_online'],
					'text' => Util::htmlspecialchars($txt[$online_status]),
					'member_online_text' => sprintf($txt['member_is_' . $online_status], Util::htmlspecialchars($this->data['real_name'])),
					'href' => $send_pm_url,
					'link' => '' . $txt[$online_status] . '',
					'label' => $txt[$online_status]
				),
				'language' => Util::ucwords(strtr($this->data['lngfile'], array('_' => ' '))),
				'is_activated' => isset($this->data['is_activated']) ? $this->data['is_activated'] : 1,
				'is_banned' => isset($this->data['is_activated']) ? $this->data['is_activated'] >= 10 : 0,
				'options' => $this->data['options'],
				'is_guest' => false,
				'group' => $this->data['member_group'],
				'group_color' => $this->data['member_group_color'],
				'group_id' => $this->data['id_group'],
				'post_group' => $this->data['post_group'],
				'post_group_color' => $this->data['post_group_color'],
				'group_icons' => str_repeat('data['icons'][1]) ? $settings['images_url'] . '/group_icons/' . $this->data['icons'][1] : '') . '" alt="[*]" />', empty($this->data['icons'][0]) || empty($this->data['icons'][1]) ? 0 : $this->data['icons'][0]),
				'warning' => $this->data['warning'],
				'warning_status' =>
					!empty($modSettings['warning_mute'])
					&&
					$modSettings['warning_mute'] <= $this->data['warning']
						? 'mute'
						: (!empty($modSettings['warning_moderate']) && $modSettings['warning_moderate'] <= $this->data['warning']
							? 'moderate'
							: (!empty($modSettings['warning_watch']) && $modSettings['warning_watch'] <= $this->data['warning']
								? 'watch'
								: ''
						)
					),
				'local_time' => standardTime(time() + ($this->data['time_offset'] - User::$info->time_offset) * 3600, false),
				'custom_fields' => array(),
			));
		}
	}

	/**
	 * Loads any additional data (custom fields)
	 */
	protected function loadOptions()
	{
		global $txt, $settings, $scripturl;

		// Are we also loading the members custom fields into context?
		if (empty($this->display_fields))
		{
			return;
		}

		foreach ($this->display_fields as $custom)
		{
			if (!isset($custom['title']) || trim($custom['title']) === '' || empty($this->data['options'][$custom['colname']]))
			{
				continue;
			}

			$value = $this->data['options'][$custom['colname']];

			// BBC?
			if ($custom['bbc'])
			{
				$value = $this->bbc_parser->parseCustomFields($value);
			}
			// ... or checkbox?
			elseif (isset($custom['type']) && $custom['type'] == 'check')
			{
				$value = $value ? $txt['yes'] : $txt['no'];
			}

			// Enclosing the user input within some other text?
			if (!empty($custom['enclose']))
			{
				$replacements = array(
					'{SCRIPTURL}' => $scripturl,
					'{IMAGES_URL}' => $settings['images_url'],
					'{DEFAULT_IMAGES_URL}' => $settings['default_images_url'],
					'{INPUT}' => $value,
				);

				if (in_array($custom['type'], array('radio', 'select')))
				{
					$replacements['{KEY}'] = $this->data['options'][$custom['colname'] . '_key'];
				}
				$value = strtr($custom['enclose'], $replacements);
			}

			$this->data['custom_fields'][] = array(
				'title' => $custom['title'],
				'colname' => $custom['colname'],
				'value' => $value,
				'placement' => !empty($custom['placement']) ? $custom['placement'] : 0,
			);
		}
	}

	/**
	 * Stores the data of the user into an array
	 *
	 * @return mixed[]
	 */
	public function toArray()
	{
		return [
			'set' => $this->set,
			'data' => $this->data,
		];
	}
}

redpajama_set_name: RedPajamaGithub


text:
Rigorous 3D Vectorial Gaussian Beam Modeling of Demultiplexing Performance of Virtually-Imaged-Phased-Arrays
Arash Mokhtari,
Mr. Arash Mokhtari
Sharif University of Technology
Amir Shishegar
Dr. Amir Shishegar
Progress In Electromagnetics Research M, Vol. 13, 1-16, 2010
We extend our previously-derived generalized closed-form representation for spectral dispersing performance of the Virtually-Imaged-Phased-Array (VIPA) based on a 3D vectorial Gaussian beam formulation to demultiplexing application. To analyze VIPA in the demultiplexer scheme, a spherical lens is added after the VIPA, so that the device plane is superimposed on the focal plane of the lens. The calculated output profile at previous step is reformulated in a matrix form in this step. Finally, the derived closed-form is simulated, and the numerical outcomes are compared with the previous results. The 3D output radiation of VIPA demultiplexer pattern is also depicted and found to be very intuitive and promising for some applications especially WDM demultiplexer and optical Code Division Multiple Access (CDMA).
Arash Mokhtari Amir Shishegar , "Rigorous 3D Vectorial Gaussian Beam Modeling of Demultiplexing Performance of Virtually-Imaged-Phased-Arrays," Progress In Electromagnetics Research M, Vol. 13, 1-16, 2010.
1. Lipson, J., W. J. Minford, E. J. Murphy, T. C. Rice, R. A. Linke, and G. T. Harvey, "A six-channel wavelength multiplexer and demultiplexer for single mode systems," IEEE J. Lightwave Technol., Vol. 3, 1159-1163, 1985.
doi:10.1109/JLT.1985.1074292
2. Okamoto, K., "Recent progress of integrated optics planar lightwave circuits," Opt. Quantum Electron., Vol. 31, 107-129, 1999.
doi:10.1023/A:1006975415469
3. Park, S. J., C. H. Lee, K. T. Jeong, H. J. Park, J. G. Ahn, and K. H. Song, "Fiber-to-the-Home services based on wavelength-division-multiplexing passive optical networks," IEEE J. Lightwave Technol., Vol. 22, No. 11, 2582-2591, 2004.
doi:10.1109/JLT.2004.834504
4. Shirasaki, M., "Large angular dispersion by a virtually imaged phased array and its application to a wavelength demultiplexer," Optics Letters, Vol. 21, 366-368, 1996.
doi:10.1364/OL.21.000366
5. Shirasaki, M., "Chromatic-dispersion compensator using virtually imaged phased array," IEEE Photon. Technol. Lett., Vol. 9, 1598-1560, 1997.
6. Shirasaki, M., "Compensation of chromatic dispersion and dispersion slope using a virtually imaged phased array," OFC'01, 2001.
7. Shirasaki, M., A. N. Akhter, and C. Lin, "Virtually imaged phased array with graded reflectivity," IEEE Photon. Technol. Lett., Vol. 11, 1443-1445, 1999.
8. Leaird, D. E. and A. M. Weiner, "Femtosecond direct space-to-time pulse shaping ," IEEE J. of Quantum Electronics, Vol. 37, No. 4, 494-504, 2001.
9. Etemad, S., T. Banwell, S. Galli, J. Jackel, R. Menendez, P. Toliver, J. Young, P. Delfyett, C. Price, and T. Turpin, "Optical-CDMA incorporating phase coding of coherent frequency bins: Concept, simulation, experiment," OFC'04, FG5, 2004.
10. Xiao, S., J. D. McKinney, and A. M.Weiner, "Photonic microwave arbitrary waveform generation using a vipa direct space-to-time pulse shaper," IEEE Photon. Technol. Lett., Vol. 16, No. 8, 1936-1938, 2004.
doi:10.1109/LPT.2004.831324
11. Lee, G. and A. M. Weiner, "Programmable optical pulse burst manipulation using a VIPA based fourier transform pulse shaper," IEEE J. Lightwave Technol., Vol. 23, No. 11, 3916, 2005.
12. Yang, L., "Analytical treatment of virtual image phase array," OFC'02, 321-322, Anaheim, CA, 2002.
13. Vega, A., A. M.Weiner, and C. Lin, "Generalized grating equation for virtually-imaged phased-array spectral dispersers," Appl. Opt., Vol. 42, No. 20, 4152-4155, 2003.
14. Xiao, S., A. M.Weiner, and C. Lin, "A dispersion law for virtually imaged phased-array spectral dispersers based on paraxial wave theory," IEEE J. of Quantum Electronics, Vol. 40, No. 4, 420-426, 2004.
doi:10.1109/JQE.2004.825210
15. Xiao, S., A. M.Weiner, and C. Lin, "Experimental and theoretical study of hyperfine WDM demultiplexer performance using the virtually imaged phased-array (VIPA)," IEEE J. Lightwave Technol., Vol. 23, No. 3, 1456, 2005.
16. Mokhtari, A. and A. A. Shishegar, "A rigorous vectorial Gaussian beam modeling of virtually-imaged-phased-arrays," AOE'07, 514-516, 2007.
17. Mokhtari, A. and A. A. Shishegar, "Rigorous vectorial Gaussian beam modeling of spectral dispersing performance of virtually imaged phased arrays," J. Opt. Soc. Am. B, Vol. 26, No. 2, 272-278, 2009.
doi:10.1364/JOSAB.26.000272
18. Goodman, J. W., Introduction to Fourier Optics, 77-96, McGraw-Hill, San Francisco, CA, 1968.
19. Haus, H. A., Waves and Fields in Optoelectronics, Prentice-Hall, Englewood Cliffs, NJ, 1984.
20. Ramo, S., "Fields and Waves in Communication Electronics," John Wiley & Sons, 1994.
21. Verdeyen, J. T., "Laser Electronics," Prentice Hall, 1995.
22. Arnaud, J. A. and H. Kogelnik, "Gaussian light beams with general astigmatism," Applied Optics, Vol. 8, No. 8, 1687-1694, 1969.
doi:10.1364/AO.8.001687
23. Iizuka, K., Elements of Photonics, Fabry-perot Resonator Beams and Radiation Pressure, Vol. 1, Chap. 3, 181, Wiley Interscience, 2002.
24. Prucnal, P. R., Optical Code Division Multiple Access: Fundamentals and Applications, CRC Press, New York, 2006.


text:
Getting to Know Sasha Siem
By Christina Najjar | June 6, 2019 | Lifestyle
Sasha Siem is a triple threat: singer, songwriter and cellist originally hailing from London. The musician is getting ready to release a new, exciting album this month called Holy, which is her third. The daughter of Norwegian business titan Kristian Siem, Sasha is also sister to violin star and Dior face Charlie Siem and married to Lord Henry Scrymgeour, with whom she has a 2-year-old son. Sasha, who wrote most of the new album when she lived in Brooklyn with her family, infuses her music with spirituality, empowerment, feminism and also calls-to-action about changing life circumstances. We chatted with the songstress about her new album and where she draws inspiration.
Tell us about your journey to becoming a singer...
SASHA SIEM: I started playing the piano when I was 5 years old and wrote my first song when I was 11. I came across a poetry book that included Maya Angelou's "The Caged Bird" and I sat down and set it to music. Within a few minutes, it had written itself. Later in life I took a long journey into academic music, writing for orchestras and opera houses. But I soon felt something was missing within and decided to take time out and move to Berlin. I put aside all my instruments that I knew how to play and went down to a local music shop and bought myself a ukulele and just followed my joy. I stopped doing things out of duty and I wrote my first album. From there it's been a case of listening to my true voice.
SS: From everywhere would be the honest answer. I think what music does for me is it wakes me up. When I hear a song that I love, it makes every cell in my body feel alive and that's what I want my songs to do for people. To shake off any of the fog that can accumulate. I want my songs to cut through to remind people that joy is possible no matter what they've been through.
Tell us about your recent album!
SS: This album is very specific because it was recorded at 432 Hertz. I worked together with a friend of mine who calls himself a sound alchemist. He is very meticulous in the science of acoustics. When I was at Cambridge I also studied acoustics. This is taking my ethos a whole step further. Studies show that when people listen to music recorded at 432 Hertz the human body goes into homeostasis, a state of love. So it is known by some as the love frequency. When people listen, it gives people a break. It's giving people a chance to relax and heal.
What's the best thing about being a mother?
SS: I have a song out at the moment called "Eve Eyed." It is a song for every goddess on the planet. Every woman I meet, I am humbled by this flame of womanhood we carry with us. I felt ashamed of my femininity when I was younger without knowing it. It was probably because of the education system that I had been raised in, which taught me to be achieving and push through when I was tired… a lot of what we might call those masculine traits. In order to be healthy, we need to have everything in balance. I was afraid of becoming a mom because I didn't see many models of women still being able to explore their passions while still being mothers. There is a way and it is to be respected and whatever a woman chooses to do whether it's everything or focusing on one thing like career, that is her choice and really to be respected.
What's something people don't know about you?
SS: Jewelry designing. Two themes that go through all the songs on the album: the eye and the sun. Light and seeing. The relationship between spirit and matter. I really feel that the ultimate truth. The union between them is what we are here to manifest in this physical life. This has given birth to a jewelry line that we will share in due course.
What do you love about living in NYC? Favorite Neighborhood spots?
SS: I love that Brooklyn is constantly reinventing itself. We love the Brooklyn Bridge. We love hopping on the ferry. We take a trip almost every Saturday.
Tags: music singers singer singer songwriter


Sometimes the proof is in a little-known language.
Long before Sir Isaac Newton, Pierre de Fermat, Gottfried Leibniz or the rest of the crew credited with the development of calculus, an astronomer and mathematician named Jyesthadeva put ink to palm leaves to record the mathematics of his teachers and possibly some of his own.
In a small town in southern India in the 1500s, Jyesthadeva penned concepts important to developing a calculus system, and he did so in complete proofs that demonstrated infinite series expansions of trigonometric functions and gave precise approximations for complex calculations. "Calculus and everything derived from it depends to some extent on these concepts of infinitesimals and infinite series," says Kim Plofker, author of Mathematics in India. By way of comparison, it wasn't until the 1660s in Europe that a Westerner named James Gregory was able to independently do the same proof.
I have ascertained beyond a doubt that the invention of infinite series of these forms has originated in Malabar.
The text, called the Yuktibhasa, is broken into 15 chapters and spans hundreds of pages of proofs and commentary. It was a compilation of a century-plus of Indian mathematics developed by the Kerala school, led by mathematician Madhava of Sangamagrama in the 14th century. Most of Madhava's work would have been lost if not for the writings of pupils like Jyesthadeva, who recorded everything in Dravidian, the hyper-localized dialect of Malayalam. One theory is that Jyesthadeva wasn't fluent in Sanskrit or he was helping others who weren't.
By the 16th century, the school was on the wane, which might have been Jyesthadeva's impetus for writing down the proofs that had been passed from pupil to pupil orally for 200 years — the Yuktibhasa may have been his way of preserving that information.
There are a few theories as to why the school faded. Perhaps a dynasty change led to funding cuts. Or perhaps it was because the practical use of mathematics was primarily for astronomy, and once the tables had been made accurate to the 11th decimal place, there was no more need for mathematicians. But whatever the cause, "by the 1700s, almost no one is reading or copying [the Kerala school] texts anymore," says Homer White, professor of mathematics at Georgetown College.
While some historians have speculated that Jesuits traveling between India and Europe brought the Yuktibhasa back to Europe and that it served to inspire European calculus, most aren't convinced. "There is no reason to believe that our use of these ideas was directly descended from or influenced by the Kerala school," Plofker says. Located between the Western Ghats mountain chain and the Arabian Sea, Kerala was perfectly situated to have its own culture. It wasn't completely isolated — Kerala was a hub for pepper production and export — but the school was "quite removed from that trading nexus," Plofker says, which suggests that ideas from the Yuktibhasa were unlikely to have spread across the ocean.
After the school fizzled out, it took more than 100 years before the work was studied by a Western audience. British colonists in India began studying the culture in the 1700s; in the 1830s, Charles M. Whish published a paper about the Yuktibhasa in the journal Transactions of the Royal Asiatic Society of Great Britain and Ireland. Whish was a busy fellow, serving in the East India Company in South Malabar, and then, after a few years, as a criminal judge. But he found time to study Indian texts on the side, and before he died at the age of 38, Whish shared with a European audience how the Yuktibhasa had complete proofs.
The Yuktibhasa was the key to proving Warren wrong. It revealed that the Kerala mathematicians had not "taken" the logic but had found it themselves and derived their solution, and had done so far earlier than any European. Whish wanted to correct the misconception, noting, "I have ascertained beyond a doubt that the invention of infinite series of these forms has originated in Malabar" — further proof that history did not have to be written in English to be true.


text:
Rebuking Renewables: Le Sueur County Places Moratorium on Solar Gardens and Solar Farms
Candidate for National Teachers' Union Board of Directors Gets 101 Percent of the Vote
Written by Catrin Wigfall
in Education, Government Unions
The National Education Association's Representative Assembly (RA) wrapped up Sunday evening. I mentioned several new business items and amendments to the union's constitution and bylaws that were proposed and either adopted or defeated over the four-day meeting here and here. One other adopted proposal that stood out to me was New Business Item 111: The NEA will take the lead in urging a school calendar revision for the 2020 presidential election and will encourage the closure of schools on election day…
Speaking of elections, NEA officers are elected during the RA. The union makes the results public here and announces the results on various days of the meeting. Take a look below at the results of the NEA Board of Directors ESP At-Large Representatives.
Source: NEA Representative Assembly Election Results
One candidate received more than 100 percent of the votes. Prominent union reporter Mike Antonucci tracked down NEA's explanation of the election result:
Bullet Voting
Many people do not vote in every race, nor do they mark all of the possible boxes in each race. When a voter casts a vote for only a single candidate in a multi-seat election, it is known as bullet voting.
Bullet voting can present special problems in calculating the results and tabulating percentages in these multi-seat elections that, like NEA's elections, require a majority to win. (It is, for example, why a candidate can be shown to have received more than 100% of the votes.) To address these issues, NEA—like other unions and countless state and local governments across the country—uses a standard formula that creates a threshold to determine which candidates have received enough votes to win a seat in the election.
The use of such a formula allows delegates to use bullet voting while still ensuring that the results in multi-seat elections comply with NEA governance requirements.
To get more detail, please visit:
https://en.wikipedia.org/wiki/Bullet_voting
https://www.sos.la.gov/ElectionsAndVoting/GetElectionInformation/HowAreCandidatesElected/Pages/default.aspx.


What do we do? By listening carefully, we pinpoint the company's needs and expectations in order to identify specific objectives and to select those coaching solutions, which are the most adequate. We then deploy all our expertise to give you a unique and long-term response.
Who do we target? All companies aware of what it is worth to be listened to, understood, taken care of and led in the right direction.
How? We offer customized training solutions for your staff, executives or directors : Legacy Circle, Leonardo 3.4.5., Teambuilding, team cohesion, strategy definition and revision, interdisciplinary initiatives, operative groups, etc.


Properties in Quebrada Seca average 4.7 out of 5 stars.
Brand new townhome w/ balcony & shared pool - walk to beach & downtown!
Property 1: Brand new townhome w/ balcony & shared pool - walk to beach & downtown!
Brand new modern 2BR condo!
Property 4: Brand new modern 2BR condo!
Property 10: Beachfront Condo in Paradise with Million Dollar View!
Property 11: Beachfront condo with amazing ocean views, shared pool, and a great location!
Beachfront condo with amazing ocean views, shared pools, and a great location!
Property 13: Beachfront condo with amazing ocean views, shared pools, and a great location!
Property 14: Macaws Ocean Club Most Desirable Condo Complex in Jaco! 2 Night Minimum Stay!
Stunning oceanfront condo with shared pool, nearby beach access, and more!
Property 15: Stunning oceanfront condo with shared pool, nearby beach access, and more!
Book now for Winter 2020. It gets booked up! Poolside condo La Paloma Blanca.
Property 16: Book now for Winter 2020. It gets booked up! Poolside condo La Paloma Blanca.
Property 17: Condo in oceanfront resort offers easy access to beach, shared pool, and more!
Gorgeous oceanfront condo w/ views, shared pools & easy beach access!
Property 19: Gorgeous oceanfront condo w/ views, shared pools & easy beach access!
Modern townhouse w/ private pool & easy beach access - dogs ok!
Property 21: Modern townhouse w/ private pool & easy beach access - dogs ok!
Luxury beachfront villa with shared pool perfectly placed for exploring Jacó!
Property 22: Luxury beachfront villa with shared pool perfectly placed for exploring Jacó!
Bright poolside condo with ocean views, modern amenities, & nearby beach!
Property 24: Bright poolside condo with ocean views, modern amenities, & nearby beach!
Oceanfront condo has easy access to shared swimming pool, beach, and more!
Property 25: Oceanfront condo has easy access to shared swimming pool, beach, and more!
Poolside condo in oceanfront resort offers easy beach access, private balcony!
Property 27: Poolside condo in oceanfront resort offers easy beach access, private balcony!
Property 28: Highly Desirable Beach Location!
PURA VIDA PENTHOUSE BEACHFRONT IN BAHIA AZUL 3 BEDROOM/2BATH SLEEPS 6!!!
Property 30: PURA VIDA PENTHOUSE BEACHFRONT IN BAHIA AZUL 3 BEDROOM/2BATH SLEEPS 6!!!
Modern apartment w/ great ocean view, balcony & shared pool - 100 yds to beach!
Property 32: Modern apartment w/ great ocean view, balcony & shared pool - 100 yds to beach!
Gorgeous luxury condo in beautiful Jaco Beach! Cheaper rates for longer stays!
Property 33: Gorgeous luxury condo in beautiful Jaco Beach! Cheaper rates for longer stays!
Two luxury oceanfront condos w/ shared pool & ocean views - walk to beach!
Property 34: Two luxury oceanfront condos w/ shared pool & ocean views - walk to beach!
Private Pool-Mature Garden-Secure Home, on a quiet street.
Property 39: Private Pool-Mature Garden-Secure Home, on a quiet street.
Elegant oceanfront condo w/ ocean views & shared pool - steps from the beach!
Property 40: Elegant oceanfront condo w/ ocean views & shared pool - steps from the beach!
Oceanfront condo with shared pool, views, easy beach access, great location!
Property 43: Oceanfront condo with shared pool, views, easy beach access, great location!
Beautiful oceanfront condo w/ shared pool - beach and attractions nearby!
Property 46: Beautiful oceanfront condo w/ shared pool - beach and attractions nearby!
Property 48: Oceanfront condo w/ ocean views, shared pool & balcony - walk to the beach!
Modern waterfront condo w/ shared pool & ocean view - beach access close by!
Property 50: Modern waterfront condo w/ shared pool & ocean view - beach access close by!
The condo was beautiful and stocked with everything you need. Steps to the ocean and the view from penthouse was breathtaking! The grounds and pool are wonderful!
Lovely beachfront house with an amazing pool.
Let me begin with the good. The property is as lovely as the photos show it to be. It is clean & well maintained. Rooms are large & easily accommodated 6 adults in our group. The pool is fantastic! It came with 4 noodles, 2 rafts, & 1 beach ball. We spent many hours in this glorious pool, easily my favorite feature of the house!! Gabriel, the property manager, was amazing, always responsive & helpful. Wendy, our housekeeper, kept Casa Milagro in perfect shape on a daily basis always with a smile. We had daily visits from an iguana (Spike), lizard (Izzy), cats (Zorro) & (Ghost) & many birds. Every day we watched glorious sunsets right in front of the house. Now for the not so good. It's very hot in February, we were there for the entire month. Days are very hot , nights stay very warm. The air conditioning in the house and bedrooms are locked at 77degrees. Not a comfortable temperature when the weather has been so hot day after day, making cooking dinner uncomfortable & sleeping difficult. Be very aware of locking everything in your safe, your room & the front gate. We were not quite so diligent & were robbed from guesthouse #1 while we were preparing dinner at the main house( iPhone, Mac laptop, kindles, checkbook).That has never happened to any of us in our many years of travel. Lastly , the town of Jaco itself is sadly a tacky strip of souvenir shops, clubs & mediocre restaurants. Amanicio's being the exception. On the whole, we enjoyed our stay at Casa Milagro.


Considering a serviced office in Marble Arch, W1?
Marble Arch is located at the western end of the West End at the north side of Hyde Park close to Speakers Corner. Edgware Road runs northwards from Marble Arch marking the boundary of the Congestion Zone. West of Marble Arch the area is mainly residential in nature and is known as Bayswater with Tony Blair living close to Marble Arch in Connaught Square.
Serviced offices in Marble Arch tend to occupy either floors in large post war modern developments or alternatively, converted residential properties where there is not the scope for large open plan areas.
Serviced offices in Marble Arch Tower have spectacular views of Hyde Park. The area is home to a vibrant community of middle eastern businesses which occupy some of the serviced offices. Oxford Street runs east from Marble Arch with serviced offices located on Oxford Street and serviced offices located on Park Lane which runs south of Marble Arch.
Tenants with access to serviced offices in Marble Arch have some of the best transport links in London. Fantastic motorway links, overground trains, London Underground tube trains, buses and airports are close and easy to access, ensuring that you are well connected when it comes to travelling to your serviced offices in Marble Arch.
Serviced offices in Marble Arch are currently served by the following bus routes: 2, 10, 16, 36, 73, 74, 82, 137, 159, 148, 414, 436.
The nearest London Underground station is Marble Arch on the Central Line. The station is between Lancaster Gate also on the Central Line and Bond Street which is served by the Jubilee and Central Lines, and is in Travelcard Zone 1.
Refine your search area within Marble Arch W1 to find a range of serviced offices which exactly match your location criteria.
Below you can see the nearest areas to Marble Arch W1 where you can also find serviced offices.


Albert, 33, was impressed by the qualities of Filipina girls and always wanted to marry one. "A friend of mine suggested me Filipina Wife website and I registered myself". In the first month, I din't find anyone whom I can call my soul mate. I started losing hope and hardly visited the website. One day, I finally met Daniella. Her profile was ideal with similar likes and dislikes. After exchanging emails, we finally met." Within a couple of months, they decided to get married. Albert brought his family to meet Daniella's and now they are happily married.


Swapping beer for a glass of water now and then can help you to moderate your drinking. But the trouble is - not everyone feels comfortable ordering water in the pub. So Guinness are rebranding tap water and launching it like a real product. Guinness Clear.


Danny's Deli provides high quality catering services around the Cleveland area.
Our mealtime services include party trays, deli meat by the pound, box lunches, lunches, desserts and breakfast.
Danny's party trays are piled high with top-quality ingredients, and serve at least 10 people.
Party tray options include your choice of corned beef, roast beef, turkey, ham or salami. Trays can be made with Swiss or American Cheese on white, wheat or rye bread.
Danny's trays are served with potato salad and/or coleslaw, as well as kosher pickles. Mustard, horseradish and mayonnaise are also provided.
Your party tray will also include plates, napkins, forks and knives.
Please contact us by phone at (216) 696-1761 to arrange our catering services for your next event.


Make sure you have all of your gas accessories taken care of for your camping trip. Tentworld stocks gas accessories from Coleman, Gasmate and Primus including; gas cartridges, gas cylinders, gas extension poles, gas fittings, gas hoses and regulators!
We have a range of Gas cylinders from Primus to suit your gas appliances. A great way to fuel a wide range of camping appliances. Our range of cylinders include sizes from 1.25kg to 9kg in both 3/8 and POL fittings.
Gas fittings and accessories from Primus, Companion and Gasmate include a range of connectors, adaptors and more to suit your gas applications.
Gas regulators from a popular brand such as Primus to suit your gas applications.


WDL steel supply service cover Donegal, Derry, Tyrone, Fermanagh, Leitrim, Sligo, Mayo, Roscommon, Galway and all Ireland.
Steel Sheds for agricultural, commercial and industrial use but we do domestic sheds as garden sheds or steel garages as well. If you need only roof material Call Us and We will bring you only roof sheets We will cut sheeting for you and You can choose between hundred of steel colours and steel grades. WDL main area's of expertise are manufacture high quality roof and wall sheeting, cladding and c-purlins, You can also find WDL as supplier of Vented sheets for livestock buildings and shed's manufacturer.
Steel Farm Sheds for all farming applications livestock, storage, workshops.
Donegal based WDL will design and manufacture steel farm sheds with attention to details for your comfort.
We know local farmers and you will find here farming experts ready to help You.
WDL manufacture galvanized sheep slats so please call us for FREE enquiry.
How to install correct ventilation in Farm shed ?
Although ridge outlets provide the main source of air extraction, raised roof panels can be used to good effect in large or multi span buildings.
The default solution – fitting ventilating sections within a ridge formed from cranked crown panels – is rarely adequate for the task but that is the quickest and easiest solution for the builder and cheapest solution for farmers in Ireland.
Spaced Roof – with sheets laid 12-15mm apart, provides air inlets lower down and extraction outlets higher up the roof.
Should I consider heavy snow as a potential dangerous ?
Using a box profile steel sheets for your roof instead of fibre cement because it has a slipper surface and should help the snow slide off the roof.
5 litres of moisture that, on average, each cow produces just by breathing every day.
cattle require enormous quantities of oxygen to support their metabolism.
If you have been looking for a garden shed for a while you will no doubt be aware some steel garden sheds are poor quality.
If sales are down, manufacturers will try all sorts of tricks to lower their production costs to enable them to be able to offer you a steel shed at what will appear to be a really cheap price.
To take a few hundred euro off a medium size garden shed one only has to use a thinner gauge wall cladding or reduce the size of the corner flashings etc. etc.Recently we looked into online distributors of kit garden sheds and kit garages, the frames were half the size of ours and held together with screws, the steel cladding was imported rubbish which faded within weeks, no bracing was supplied etc.etc.
The major complaint people have when buying a kit garden shed is that after paying the full cost of the garden shed, they find some parts are missing or are the wrong size or color.We are not prepared to lower our standards simply to sell a few more garden sheds, our engineers would not allow us to use inferior steel or to alter designs we have used successfully in our buildings for more than 10 years.
Steel garages from WDL steel supplier in Donegal with up to 40 years warranty.
Structural Steel framed buildings perfect way If you think about economical steel buildings. Whatever you need it for general storage, an industrial factory, warehouse or industrial workshop. If you need to customize a large industrial shed to suit your needs call us now.
Do you need a practical and high quality steel shed that will do a job and won't break the bank?
steel fabrications, roof and wall sheeting and cladding.
Steel sheets for roofing and cladding excellent for your new shed, re-roofing or re-cladding your existing shed.
Direct from the Manufacturer is cheaper!
Roof & Wall steel Sheets for a Price you can afford!!!
WDL supplies all types of steel products and metal roofing materials.


When I am asked for one word to describe myself, I always answer, "Creative." So when I think of my self as an artist, I do not so much think of a particular media, but the fact that it is in my very soul to be creative. I can't think of a time in my life, that I was not expressing myself through written or visual media.
As a young person I wrote poetry and took photographs, and as a mother at home I began to paint. I am a self-taught artist, who went back to college in 1998 to learn to draw. I was exposed to the world of knowledge, and the media of printmaking. As an artist I go where the wind of inspiration leads me. Sometime I paint; sometimes I am doing a combination of media such as photography, computer graphics and printmaking. My art is an expression of some longing deep within my soul. It is a communication between my god and me. It is an expression of a constant search for meaning.
When I move back from the canvas I often see images that I did not realize I was painting. I invite you to do the same as you look at my work. You will not see everything there on your first glance. It might overwhelm you, the viewer. Maybe it makes you think of something you don't want to think about. Don't worry if you don't understand, come back when you are ready.


You don't need an expensive gym membership. Why pay to wait in queues and deal with terrible parking? These machines might be quite expensive, but if you tally up a few years of a gym membership, they will suddenly look much more affordable.
In this review, we will provide you with a great place to start looking for the perfect home multi-gym solution with 9 stellar examples. You are sure to find what you're looking for in one of these great products. Let's take a look!
The Marcy Eclipse Deluxe Smith Machine Gym is a mid to high-end home multi-gym solution. It costs a bit more than our mid-range choices, but it's nowhere near as pricey as the Life Fitness G7. The combination of a multitude of cable machines as well as a smith machine makes it a very versatile solution that allows you to take part in just about any type of exercise.
Although the Smith Machine is not ideal for squats or bench presses, it's still a very convenient (and safer) weightlifting alternative to a loose barbell with a rack. However, it does come with an adjustable outer rack for your own loose barbells. The three independent cable pulley systems enable you to do almost any cable exercise, and you can use the outer two together or separately. The middle cable is best kept for heavier, two-arm exercises.
This home gym comes with a loose bench that includes an attachment for leg extensions, leg curls and sitting calf raises. It's rounded off with a pull-up/chin-up bar and weight racks. It really is a complete home gym solution. All the attachments and handles you need to use are also included.
We wanted to include something a little different for those who prefer a different type of workout (and for those who don't have the massive budget for a multi-gym). If that sounds like you, we're happy to introduce the TRX Suspension Training Kit. TRX has exploded onto the fitness scene in recent years as people have latched on to the benefits of this kind of training. It's particularly effective for athletes and those who need a dynamic range of motion.
Working almost exclusively with your bodyweight and cables, this gym works small stabilizing muscles you wouldn't even know existed if you were training with conventional weights. You would also be surprised at the range of exercises available. This kit includes the TRX Suspension Training Strap, TRX Suspension Anchor and TRX Door Anchor. It's easy to transport around and comes with a handy bag. It also comes with a few of their workout guides to get you started.
The great thing about the TRX is that its anchor doesn't require you to fix it to anything that requires bolting or hammering. You can just anchor it to a closed door, loop it around a pole, etc. This and the adjustable straps allow you to work out almost anywhere. It also comes with foot straps so you can get both an upper-body and a lower-body workout.
The BMG-4410 by Body Sculpture is the most affordable multi-gym on our list, which made it extremely attractive to us. Even at its price, it still comes with a decent amount of features, and you should be able to follow a complete workout routine with the addition of some other minor equipment.
What is awesome about this specific multi-gym is that it includes a station for a punching bag as well as a speed bag, making it perfect for those who love this form of cardio or who want to work out some frustrations. Both the speed bag and the punching bag (66 kg) are included which makes this setup an even better value for money. With the bench station and the top cable pulley, you can do lat pull downs, tricep extensions, bicep pull downs, chest press, butterflies and more. The lower cable pulley allows you to do standing bicep curls and horizontal rows among other exercises.
It comes with a basic leg attachment for leg extensions and standing leg curls. It's by no means a complete multi-gym, but it does deliver a lot of bang for your buck, particularly if the boxing equipment is interesting to you. All customers seem to agree that it's exceptionally sturdy when set up properly.
Right from the start, the unique thing about this multi-gym is that it comes with two stations, each complete with its own bench. Each has different upper-body and lower-body capabilities to cover even more exercises as well as its very own 65 kg weight stacks.
One station has a cable for pulldowns, butterfly arms, chest press handles, a preacher bench, leg extension/leg curl attachment and a low pulley for cable curls and rows. Handily, the preacher station can be used with the lower pulley and doubles as a grip for when you do standing leg curls. The second station is for shoulder presses, leg presses and seated calf raises. Both weight stacks generate 145 kg maximum resistance, which should do for most people and for most exercises. The lat bar, straight bar, d-handle and ankle straps are all included with the machine.
One problem you might face with this machine is that it requires almost 2.5 m of space in both directions, making it one of the biggest stations on this list. It's also the third most expensive multi-gym.
We can't argue that this is one strange-looking contraption with all its curved lines and cables going here and there. However, it's a very versatile and useful multi-gym to have in your home. The extensive use of cables means that you will be working those elusive balancing and stabilising muscles as well as your big guns. Apparently, it's such an effective machine that it's even used by the European Astronaut Center as well as by many pro athletes.
Another unique feature of this multi-gym is that it doesn't use any weights—something we haven't come across yet. Instead, you adjust the resistance using the Total Nitrogencell Technology. This has many benefits. For one, you can adjust your weights in 1 kg increments from 5 to 100 kg easily. Also, the weights can't fall and make noise, and it renders the home gym much more mobile.
Even though it works mostly through cables, you can get a full body workout from your legs to your back to your shoulders. The frame is also extremely stable for this type of machine, and it never feels like you're losing your balance.
Looking at this machine, you could be forgiven for thinking it must be the most important multi-gym on this list. It looks somewhat futuristic and expensive. While it is among the most expensive products, it certainly is well worth the money. There is very little that you can't do with this machine.
It consists of three separate stations. The first is a relatively typical upper-body station with lat pull-down cables, butterfly and chest dip arms and a leg extension and standing leg curl attachment. The second is a simple stand for hanging leg raises and chest or tricep dips. The third is a leg press station. The quality of this machine is awesome and comparable to that of the Life Fitness G7. The bearings and CAMs are exceptionally well-made and really makes you feel secure.
The max resistance generated by the 78 kg weight stack is 100 kg, which should suit most people. However, we had a slight problem with how the weights stack. It seems a bit crazy that you can only go straight from 8 kg to 16 kg.
Now, to see if the most expensive piece of equipment (by quite a margin) is worth the money. The first thing to notice is that the whole machine is extremely high-quality. The cable attachments are particularly easy to move up and down between the 20 adjustment positions and to lock into place. The frame itself is also firmly planted on the ground, and it's clear it won't be going anywhere.
It also has one or two other interesting features, such as a space in the back panel to put your water bottle or other gear. The exercise guidebook is also built into this same panel. The machine itself only comes with two independent cable and weight mechanisms. However, it does have an extra bench included that can help you do other exercises as well. There is also a pull-up bar at the top.
Another positive thing about it is that it can fit neatly in the corner, which makes it one of the most space-efficient solutions despite being quite large. The downside is that you end up paying mostly for quality above quantity, as it's not as versatile as other multi-gyms.
Right from the start, we can tell you that this is one of the best multi-gyms for your money on this list. Despite looking pretty unassuming, it's an incredibly versatile multi-gym that will open a world of possibilities to you. Your chest is covered with both a chest press and butterfly arms. You can work out your arms or back with both the lateral and horizontal cable pulleys.
The bench also has an attachment for arm curls as well as leg extensions and standing leg curls. You can use the bottom pulley and cable as the arm curl attachment. You can also swap it around and hold onto the arm curl stand while you do standing leg curls. One problem we have with this machine is that the weight only goes to 68 kg. While this may be enough for most people's upper body routines, it will be too low for some when doing legs.
The bench is also a bit spartan, although it should fulfil your needs. The last thing we can say is that the quality feels really good, just like the other Marcy products on our list. It's almost identical to the FINNLO in every way.
Last but not least, we have the Xtreme 2SE Home Gym by Bowflex. This machine functions a lot like the FINNLO BIO-FORCE in how it makes use mostly of cable mechanisms for its variety of exercises. It also involves adjusting the resistance to increase weight instead of actual weights.
The maximum resistance you can get from this machine is 95 kg which is pretty decent for a home multi-gym. The cables come from just about everywhere and can be adjusted to enable almost any type of cable exercise you can think of. To make things even better, it comes with an abdominal crunch harness so you can go after that six pack.
We appreciate the other small features too, like the patterned foot platform, giving you something to push against with your feet.
Now that you know what the best home multi-gyms have to offer, it's time to buy one and start working out. We tried to keep things as diverse as possible. There are more ways than one to get a full-body workout, and we tried to illustrate that with the TRX Training Kit as well as the weight-free FINNLO and Bowflex.
You should also see that there is a wide range of prices available to suit all kinds of budgets, from roughly a hundred pounds to thousands of pounds.
We just thought that overall, the Marcy Eclipse Deluxe Smith Machine Gym was the best value for money. It is one of the most versatile machines, it doesn't take up too much space, it comes with a number of extras and it falls in the lower price range.
You might not think this is such a vital factor until you start building your multi-gym and suddenly realise that your car can't fit in the garage or that you need to get rid of some of your furniture. Also, look for equipment that comes with a smart space solution. This might be a machine that folds or one that's designed to fit in a corner.
This one goes without saying. To effectively replace your gym membership, the machine has to provide as many exercises as possible. If a machine comes with an extra loose bench, it's a big plus, as you can use this in multiple other ways. Make sure that your upper body, legs and abs are covered.
Surprise, surprise! Not all weight training machines need, well, weights. Some devices let you adjust the "weight" by increasing or decreasing resistance. This is much more convenient as it doesn't weigh down your machine. It also allows you to adjust weight in smaller increments.
Make sure that a multi-gym comes with all the attachments you need, such as cable handles, lat pulldown bars, d-handles, etc. Buying these separately is an inconvenience you don't need, especially considering that most products come with them. However, buying some extra attachments could increase the number of exercises you can do.


Neimat is our in country coordinator. She was helped in her education through Together for Sudan and now leads our work in Sudan.
She travelled with us as we visited projects and here, in a remote school where there is an eye care clinic talking place she tells something of the remarkable 15 years story of Women's Education Partnership.
Hear Neimat speak in a short video below.
Neimat (left) visiting a rural school. The two teachers are in the centre and Ibrahim one of our 4 staff in Khartoum on the right.