text:
John Wallace's Comic Reviews
Reviewer For: Big Comic Page Reviews: 59
8.1Avg. Review Rating
Series Rating
Issue Rating
Black Magick 2 issues show
Black Magick #2
In my opinion, Black Magick is already a must buy, its already a book worthy of discussion. I also think its worthy of awards. In fact, I have a tasty looking hat in my hall that I will pretend to eat if this book doesnt get a decent TV treatment. Time will tell, but whatever happens, make sure I get my full 30 issue fix of Rowan Black, BUY THIS BLOODY BOOK!
View Issue View Full Review
I really want to let you know in a coherent and cogent manner what my thoughts are, and all I could come up with for the majority of that time was OH MY GOD THIS IS AWESOME!
Brooklyn Animal Control (One-Shot) 1 issues show
Brooklyn Animal Control (One-Shot) #1
I know that this is a one shot, but it definitely left me wanting more. It has laid the ground work nicely for whatever is going to follow, be it more in comics or a full series out of its USA Network pilot.
Clankillers 1 issues show
Clankillers #1
I really wanted to come out of the end of this first issue with the feeling that I would want to read more, but I didnt, and I feel a little frustrated and cheated by that (really cheated, Ive read the comic three times now). Unless Im asked to review more from the series, I wont be back. It isnt horrible, but it isnt far off.
Codename Baboushka: The Conclave of Death 1 issues show
Codename Baboushka: The Conclave of Death #2
Overall Codename Baboushka is a nicely put together book. Its decent rather than exceptional. It doesn't really surprise in any way, but it is entertaining. Its a plot twist and an I never saw that coming away from a 4.
Cognetic 1 issues show
Cognetic #1
James Tynion IV has done a very good job of sucking me into this drama. He appears to have the knack of creating characters that appear grounded in reality even though the situation they find themselves in is unreal. The interaction between Annie and her boss is an excellent portrayal of an individual relationship that I'm sure more than one of you could relate to.
Dejah Thoris 1 issues show
Dejah Thoris #1
I hoped for the best with Dejah Thoris. It wasnt awful, but it didnt exactly set the world alight either. It may be interesting to see where Barbiere takes this book, but in all honesty, I would say its likely to be of more interest to collectors and readers of the other Dynamite Barsoom comic books.
Doc Savage: The Spider's Web 1 issues show
Doc Savage: The Spider's Web #1
The writing is solid enough – after all, Chris Roberson is a very accomplished wordsmith. The art is also solid. Cezar Razek does a good job with the dynamic poses, but some of the panel framing feels a little odd, forced even. Overall, the story is, again, solid, nothing more, nothing less. A decent lead into what could, with a little work, be an interesting series.
Euthanauts 1 issues show
Euthanauts #1
Were off to a good solid start here. I have my niggles, and needing to read the publishers blurb to get a foothold in the issue probably shouldnt be a necessity. Its something that I can see being rectified as the story unfolds, but that approach works for a trade paperback, not a single issue. Its not Flatliners, (Ive been waiting all review to say that) and its not What Dreams May Come, but Howard and Robles are creating their own intriguing Deathscape. A really healthy start that promises more.
Fistful Of Blood 1 issues show
Fistful Of Blood #2
Maybe I'm the wrong person to be reviewing this book, maybe I'm not. Have a look for yourself if you really want to and tell me if I'm wrong.
Four Eyes: Hearts of Fire 2 issues show
Four Eyes: Hearts of Fire #2
This is not a particularly heartening story. Perhaps it will never be. What it is though, is a magnificently considered study of what Enrico feels he has to do to honour his father, and provide for his mother in an unforgiving world.
This is a hard read but for all the right reasons. In my review for issuetwo I said that this story might never be heartening. I was wrong. There's light and hope on these pages, but also a whole lot of OMG this could still all go so wrong for Enrico and Four Eyes. But thats what makes this story a magnificently dark joy.
Green Lanterns 1 issues show
Green Lanterns #1
Overall, this is a solid first issue. Its generally well written and certainly well-presented artistically. Sure, it's let down a little by the slightly one-dimensional relationship between Jessica and Simon, but this is only the first issue, (the second if you count Rebirth) so there should be plenty of time and scope for Sam Humphries to bring more depth to their relationship. However, if not done quickly enough, this could rapidly descend into the unremarkable pit of Buddy Cop despair.
Hal Jordan And The Green Lantern Corps: Rebirth 1 issues show
Hal Jordan And The Green Lantern Corps: Rebirth #1
What I enjoyed most about this comic was the way that Venditti did finally lead me to a moment of awesomeness. No battles, no destruction just renewal. So, when Hal said the oath I got goosebumps.
Huck 1 issues show
Huck #4
When (not if, when) you buy these comics, you will be buying an instant classic. Normally I try and wait until the end of at least the first story arc before I make that kind of judgment, but every issue has been of the highest standard and this one is no different. Please go buy it.
I Hate Fairyland 1 issues show
I Hate Fairyland #3
As I said at the beginning, I Hate Fairyland has been a quality book so far, and one of its strengths has been that there have been the plethora of new yet familiar things that Skottie Young has thrown at us. To be honest, there are so many fairy tales out therethat can be subverted in I Hate Fairyland that I think were allgoing to be entertained for some time to come.
Johnny Red 5 issues show
Johnny Red #1
I'm like Tony Iverson, the millionaire owner of the Hurricane. I want to know more about the history of the aircraft, but more than that, I want to know what happened to Johnny and his Falcons over Russia. Bravo Mr Ennis and Mr Burns.
All in all, this is another rip roaring yarn of derring-do, but deeper down, this comic explores just how close to victory the Germans came at Stalingrad, and just how close to the bare bones the Russian forces really were. The creative team have done this really well.
For the first issue since the series began, I have a niggle. I understand why the dream sequence lasted as long as it did, but it distracted me.
Bravo Mr Ennis, and bravo Mr Burns. You have created a truly exceptional comic and I cant wait for the climax next month.
This final chapter succeeds in fulfilling the promise of the preceding seven. Ennis and Burns are at the height of their powers here, transporting us to a time of unimaginable horror, providing sympathy for the source material and adding some thoroughly modern panache. Bravo.
Limbo 3 issues show
Limbo #2
All in all, this is well worth picking up. The characters are developing nicely and so is the sense that absolutely anything can happen. I believe that there is a lot more that needs to be explained about the world of Dedande. There's something that the teleshaman said that has me questioning everything, and I love that. I'll continue to tune in, even if it's just to see if a gut feeling I have pans out (no I'm not telling you what it is).
Watters and Wijngaard have really brought this fantastical story to vivid life and I really, really want to know what the hell is going to happen next. I gave issue 2 a rather spiffy 4-out-of-5, and then my brother in arms Ross bumped that score up to a 5-out-of-5 for issues 3 and 4. I have to say that this series started well and has just improved in leaps and bounds as the creative team build and reveal more and more of their tale.
All in all, this is a fitting end to a magnificent roller-coaster ride. If you dont come off slightly wobbly by the end of it all, then youre simply far too jaded to even be on this plane of existence.
Mystery Girl 1 issues show
Mystery Girl #1
I wanted to give the book a really high score, I really did. There are so many things in it that I liked; but the itch won't let me. Mr Tobin, if you are reading this, I love your work, but please, speak to a Brit before you try more "Britspeak".
Penny Dreadful 2 issues show
Penny Dreadful #1
This isn't just 20 pages of sequential art. This is 20 pages of cinematic pre-visualisation done by superb scriptwriters, aided by a magnificent concept artist. If you have any love for the T.V. show, then you must buy this comic. If you have any love for Gothic horror, then you must buy this comic, and frankly, if you have any love for well-written excellently illustrated comics, then you really should buy this comic. Do you see where I'm going with this?
The first issue of Penny Dreadful was excellent. This second issue, isnt up to that heady standard, but it isnt awful by any means. Issue 3 looks promising.
Planet of the Apes / Green Lantern 1 issues show
Planet of the Apes / Green Lantern #1
Thompson appears to be weaving a compelling tale, which Jordan is translating onto the page very well indeed. This issue was a pleasant read, and the art from Bagenda is good, as you would expect after his stint on Omega Men. Everything looks right, yknow? Sometimes you get a crossover where one aspect or another falls down, but that doesnt happen here. Well written and well rendered, this is definitely a promising start.
Power Lines 1 issues show
Power Lines #1
Overall, this was a well-paced comic with an interesting concept, revealing just enough to pique your interest and draw you into the next issue. If it manages to escape the racial distortions and exaggerations that can attack equally from the dark streets of the ghetto and the bright wide boulevards of suburbia, then this is a series that could have some serious legs.
Reborn 1 issues show
Reborn #3
Buy this book, because Reborn is going to be one of those comic books that you'll wish you were into from the very beginning.
Rom 1 issues show
Rom #1
I wasnt expecting a nostalgia-fest with ROM as I wasnt a massive fan back in the day. To be honest though, ROM could end up being a great book to get, nostalgia-aside, especially when IDW have their crossover event. If you're ROM-curious, Hasobro-curious or even just plain curious then this could be the comic for you. Otherwise its a presentable yet middling start.
Romulus 2 issues show
Romulus #1
This is a solid first issue. The concept is appealing, especially in this era of conspiracy and cover up. The story flies along and doesnt really go wrong at any point, however it does suffer from the problem that many comics have when they introduce a new mythos, balance. The balance between exposition, character development and action can be quite hard to find, and this issue leans quite heavily on exposition and action. That does however mean that there is a lot of room do explore Ashlar beyond her initial motivations in future issues. Im not hooked, not yet, but I'm close.
Bryan Hill is continuing his world building in a confident manner, with interesting flourishes. It's certainly intriguing, and it's nicely complimented by Nelson Blake II's art, which is definitely growing on me. I didn't find it quite so flat this time.
Seven to Eternity 2 issues show
Seven to Eternity #3
I meant what I said earlier –read this comic. I say this with a little caution, as its still early doors, but Seven to Eternity could be Remender and Opeas magnum opus. If you like fantasy, if you like Westerns, if you like beautifully drawn, exquisitely coloured and magnificently written comics, then you owe it to yourself tobuy this one. If you dont pick up any other comics this week then pick up the first threeissuesof Seven to Eternity. You wont be disappointed. And if you do and you are disappointed, read them again and again until you arent!
Remender is doing a fantastic job with this book. He is building a world with wide and varied factions, and is doing so with verve, vigour and gravitas. For all of his world building however, he is also telling a tight and taught personal tale of what will one good man do when presented with his heart's desire.
Skybourne 3 issues show
Skybourne #1
So back to the beginning- does this comic live up to its heady blurb? Was I swayed by the extravagant claims of the blurb? If I said, take all of the monies now. Mine, yours and his, that guy over there. He wants to buy this comic too; he just doesnt know it yet; would that answer the question?
Im absolutely delighted that Cho has managed to keep the considerable momentum going from the first issue whilst slowing the pace of delivery. You can count me in for the rest of this series, that's for sure.
Cho has imbued this book with an impressive sense of momentum, just as he did with issues one and two, and its easy to tell that hes not exactly new to this comic creating malarkey. This level of accomplished pacing isnt easily achieved, after all. This is a cleverly crafted comic book, packed with comedy, pathos and impressive concepts, even if his Taggart is a little Alfred Pennyworth and His General Morger is a smidge Thunderbolt Ross.
Star Trek/Green Lantern: Stranger Worlds 1 issues show
Star Trek/Green Lantern: Stranger Worlds #1
This first issue is a perfect continuation of the Star Trek/Green Lantern universe, and sets up a great quest storyline. I for one will definitely be hanging about to see where this story ends up.
Strange Fruit 1 issues show
I'm sure that as a commentary on the racism in the Southern States of America in the 1930s there are nuances here that I have no doubt missed. That hasnt stopped me from enjoying a solid four-issue story of the superheroic efforts of a strange drifter, and of the racial struggles, in devastating conditions, of the people he ultimately tries to help.
Switch 1 issues show
Switch #2
I must admit that it was the beautiful artwork that originally drew me to have a look at Switch, but its the really well written story that is going to make me stay. Stjepan Sejic really is a comics double-threat. Hes an artist who can write and a writer who can draw.
The Baker Street Peculiars 2 issues show
The Baker Street Peculiars #1
Overall this isnt a bad first issue. There are peaks and troughs, and I still dont quiteunderstand the Peculiars' initial motivation, but it doesnt detract too much from an otherwisesolid tale.
When I reviewed the first issue I noted that there were some peaks and troughs, and that I didnt really know what the Peculiars' initial motivations were. That has all since been tidied up and explained with a deft hand, and what started as merely a solid story has found its feet and stepped up a notch into something thoroughly enjoyable. As a tale for all ages, this is a pleasantly nuanced and worthy read.
The Doorman 1 issues show
The Doorman #2
Overall, while its an interesting concept with solid art, the storytelling is a little sub-par for the time being. For me, the writers have three options for the third issue; go comedy, go serious, or go home. Of those options, serious would appear to be off the table given the artistic style of the book, and the half-way house they seem to be trying for isn't working very well.
The Dresden Files: Wild Card 1 issues show
The Dresden Files: Wild Card #1
All in all, I was impressed with the first issue of Jim Butchers The Dresden Files: Wild Card (Thats a mouthful), yes it has a lot going on before it, but dont let that put you off. Step into this tale and you will feel richly rewarded as the creative team do seem to be taking some care to allow new readers a chance to enjoy a new Harry Dresden story.
The Massive: Ninth Wave 1 issues show
The Massive: Ninth Wave #2
Overall, this is a decent tale which I think will work better as part of a collective whole rather than as the stand-alone issue being reviewed. Knowing that there is such a large body of work that this is meant to precede, I cant help but wonder what nuances in the story I may have missed. I dont know the characters; I dont know the history (future?) but it will definitely be interesting to see how these six issues pan out. Its a thought-provoking book but it hasnt made me go "wow". Not yet, anyway. It may be that the prequels do grab my interest and lead me to the Massive, but its not tempting me yet. That said, there are still four more issues to go after this one, so who knows?
The New World 1 issues show
The New World #1
Overall this is very well-crafted and well-paced. And, with four more issues to come, there is scope for a really tantalising tale to emerge. But dont take my word for it. Im only here to point you in the direction, its up to you to go see for yourself. Its certainly worth the cover price.
The Rook 2 issues show
The Rook #1
This comic comes close but just misses. I want to know what happens next, but not so much that I would cry if the comic didnt get a second issue.
There is a kernel of a decent tale here. Well I think there might be. Gulacys art, whilst an acquired taste, hits a few high notes, the Airship exploding being one. But the art isnt good enough to save this comic. Lots of ideas, some good, some bad, some nice flourishes and cameos, but ultimately flawed.
The Spire 1 issues show
The Spire #6
This is a fine addition to the story of The Spire so far. It adds value, history and intriguing twist to the overall arc. That said, I did have to go back and reread the first five issues again, just to make sure I didnt make an idiot of myself in this review. Its dense, but its worth it.
The Steam Man 3 issues show
The Steam Man #2
So, after two issues, I really want to see what the hell is going to happen in the third. I thought I knew what the series was about when I saw the first cover, it was going to be steam-punk Pacific Rim. Then I read it, and it turned into a bit of a horror story. Now, after the second issue, I'm not even going to begin to speculate for issue three. I have no idea where this Steam Man is going to end up, but it has me along for a ride, probably in his left leg, getting my brains rattled about.
If you havent already had a look, you should. The story is crazy, and the artwork fits with the steampunk craziness. The scores on the doors so far for the series have been issue 1 (3), issue 2 (4), issue 3 (4). This issue is also worthy of a 4/5.
Obviously, if you have all of the other four issues, then you will be buying this one anyway. Wont you? Its not the strongest of the series, but its not the weakest either. Anyway, who gets this far in only to buy four out of five issues? The big question at this point should be, will The Steam Man be worth buying when its collected? Well, yes it will. Its a tidy little story and it was worth the telling.
Usagi Yojimbo 1 issues show
Usagi Yojimbo #150
Whilst I enjoyed my first dip into the Rabbit Bodyguards (thats the title of the book in English dont cha know) world for the first time in 24 years, it didnt quite do enough to blow me away.
Wonder Woman (2016) 2 issues show
Wonder Woman (2016) #2
My churlish little niggle over one panel notwithstanding, I thoroughly enjoyed this second issue of Wonder Woman. It is truly beautiful to behold and the story promises so much. Go and read it – you know you want to.
Overall, this is another fine effort from Rucka the world re-builder and Sharp, the drawer of very, very pretty pictures. If, like me, you have no particular history with the characters (I dont believe that my childhood crush on Linda Carter counts) then you might need to have Google (other search engines are available. It is a lifestyle choice after all) handy to help you through the jungle quagmire that is Urzkartaga lore. But if thats the only drawback in this interconnected era, then pshwah, thats no drawback at all.
Wonder Woman: Rebirth 1 issues show
Wonder Woman: Rebirth #1
Wonder Woman has two wonderfully nuanced artists at the helm and a damn fine writer too.
World of Tanks 1 issues show
World of Tanks #1
World of Tanks: Roll Out! purprised me. Even though the creative team are comics heavy hitters, I thought this would be a pocket liner for them. Its not. Its actually rather good.
Youngblood (2017) 1 issues show
Youngblood (2017) #1
Overall I was quite taken with this first issue. Blending the old with the new hasn't quite happened yet, and could be quite tricky to get right, but issue one has done well in giving us a peek of the new, and a glimpse of the past. The brief foretaste of the future of Youngblood Reborn feels quite promising.


text:
#include "Grid.hpp"

bool Grid::load(const char *filename) {
	FILE *fp = fopen(filename, "r+");
	if (!fp) {
		return false;
	}

	int loaded_dimensions[2] = {0};
	fread(loaded_dimensions, sizeof(int), 2, fp);
	//Grid::width = loaded_dimensions[0];
	//Grid::height = loaded_dimensions[1];

	const int loadedblocks_count = loaded_dimensions[0] * loaded_dimensions[1];

	int *loadedblocks = (int*)malloc(loadedblocks_count * 2 * sizeof(int));
	fread(loadedblocks, sizeof(int), loadedblocks_count * 2, fp);

	fclose(fp);

	for (int i = 0; i < loadedblocks_count; i += 1) {
		Grid::blocks.at(i)  = Block(loadedblocks[i * 2]);
		Grid::background_blocks.at(i) = Block(loadedblocks[i * 2 + 1]);
	}

	free(loadedblocks);

	return true;
}

Grid::Grid(Vec2 screenSize, int w, int h, const char *tileset) {
	Grid::offset = Vec2(0.0f, 0.0f);
	Grid::blocksize = 32;
	Grid::blocks = std::vector<Block>();
	Grid::background_blocks = std::vector<Block>();

	if (!Grid::framebuffer.create(screenSize.x, screenSize.y)) {
		puts("failed to create grid framebuffer");
	}
	Grid::framebuffer.clear(sf::Color::Transparent);
	Grid::foreground_sprite.setTexture(Grid::framebuffer.getTexture());

	if (!Grid::background_framebuffer.create(screenSize.x, screenSize.y)) {
		puts("failed to create grid background framebuffer");
	}
	Grid::background_framebuffer.clear(sf::Color::Transparent);
	Grid::background_sprite.setTexture(Grid::background_framebuffer.getTexture());

	if (!Grid::tileset.loadFromFile(tileset)) {
		puts("failed to load tileset!");
		Grid::tileset.create(320, 320);
	}

	Grid::tileset.setSmooth(false);
	Block::setGlobalTileset(Grid::tileset);

	if (!Grid::backgroundShader.loadFromFile("assets/shaders/background.frag", sf::Shader::Fragment)) {
		puts("[Grid] failed to load shader #2!");
	}
	Grid::backgroundShader.setUniform("texture", sf::Shader::CurrentTexture);

	Grid::setSize(w, h);
}

Grid::~Grid() {

}

void Grid::setSize(size_t width, size_t height) {
	Grid::width = width;
	Grid::height = height;

	for (size_t i = 0; i < width * height; ++i) {
		Grid::blocks.push_back(Block(-1));
		Grid::background_blocks.push_back(Block(-1));
	}
}

void Grid::save(const char *filename) {
	FILE *fp = fopen(filename, "w+");
	if (!fp) {
		printf("could not write to \"%s\"!\n", filename);
		return;
	}

	fwrite(&(Grid::width), sizeof(int), 1, fp);
	fwrite(&(Grid::height), sizeof(int), 1, fp);

	for (size_t i = 0; i < Grid::blocks.size(); ++i) {
		fwrite(&(Grid::at(i).id), sizeof(int), 1, fp);
		fwrite(&(Grid::at(i, false).id), sizeof(int), 1, fp);

	}

	fclose(fp);
}

Block &Grid::at(int idx, bool foreground) {
	if (foreground)
		return blocks.at(idx);

	return background_blocks.at(idx);
}

Block &Grid::at(int x, int y, bool foreground) {
	if (x < 0 || y < 0 || x >= Grid::width || y >= Grid::height)
		return at(0, foreground);

	return Grid::at(x + y * Grid::width, foreground);
}

void Grid::set(int x, int y, Block block, bool foreground) {
	if (x < 0 || y < 0 || x >= Grid::width || y >= Grid::height)
		return;

	if (foreground)
		Grid::blocks.at(x + y * Grid::width) = block;
	else
		Grid::background_blocks.at(x + y * Grid::width) = block;
}

void Grid::moveCamera(float x, float y) {
	Grid::offset.x -= x;
	Grid::offset.y -= y;
}

void Grid::setCamera(float x, float y) {
	Grid::offset.x = x;
	Grid::offset.y = y;
}

int Grid::neighbors(int xp, int yp) {
	int sum = 0;
	for (int y = yp - 1; y <= yp + 1; ++y) {
		for (int x = xp - 1; x <= xp + 1; ++x) {
			if (x == xp && y == yp)
				continue;

			if (x < 0 || y < 0 || x >= Grid::width || y >= Grid::height) {
				continue;
			}

			if (Grid::at(x, y).id >= BLOCK_GRASS) {
				++sum;
			}
		}
	}

	return sum;
}

float Grid::raycast(Vec2 start, Vec2 dir, float len, float infinity) {
	if (dir.length() < 0.001)
		return infinity;

	const float step = dir.length();
	float dist = 0.0;

	while (dist < len) {
		if (Grid::atPoint(start.x, start.y).collides()) {
			return dist;
		}

		start += dir;
		dist += step;
	}

	return infinity;
}

void Grid::point_to_grid(int px, int py, int& x, int& y) {
	x = (px - Grid::offset.x) / 32;
	y = (py - Grid::offset.y) / 32;
}

Block& Grid::atPoint(int px, int py, bool foreground) {
	int bx, by;
	Grid::point_to_grid(px, py, bx, by);
	return Grid::at(bx, by, foreground);
}

Block& Grid::atPoint(Vec2 p, bool foreground) {
	return Grid::atPoint(p.x, p.y, foreground);
}

void Grid::render() {
	Grid::render(-Grid::offset.x / 32, -Grid::offset.y / 32,
	            ((int)(Grid::framebuffer).getSize().x / 32) + 2,
				((int)(Grid::framebuffer).getSize().y / 32) + 2
				);
}

void Grid::render(int xs, int ys, int width, int height) {
	for (int y = ys; y < ys + height; ++y) {
		for (int x = xs; x < xs + width; ++x) {
			if (x < 0 || x >= Grid::width || y < 0 || y >= Grid::height)
				continue;

			Grid::at(x, y, false).render(Grid::background_framebuffer, x * 32.0, y * 32.0, offset.x, offset.y);
		}
	}

	for (int y = ys; y < ys + height; ++y) {
		for (int x = xs; x < xs + width; ++x) {
			if (x < 0 || x >= Grid::width || y < 0 || y >= Grid::height)
				continue;

			Grid::at(x, y).render(Grid::framebuffer, x * 32.0, y * 32.0, offset.x, offset.y);
		}
	}
}

void Grid::render(sf::RenderWindow &window) {
	/* Clear framebuffer */
	Grid::background_framebuffer.clear(sf::Color::Transparent);
	Grid::framebuffer.clear(sf::Color::Transparent);

	/* Draw blocks to framebuffer */
	Grid::render();

	/* Display content */
	Grid::background_framebuffer.display();
	Grid::framebuffer.display();

	window.draw(Grid::background_sprite, &(Grid::backgroundShader));
	window.draw(Grid::foreground_sprite);
}

void Grid::generate() {
	#define place(name) Grid::set(x, y, Block(BLOCK_ ## name));
	#define placeabove(name) Grid::set(x, y - 1, Block(BLOCK_ ## name));
	#define placenabove(name,n) Grid::set(x, y - n, Block(BLOCK_ ## name));
	#define placebehind(name) Grid::set(x, y, Block(BLOCK_ ## name), false);
	#define placebehindabove(name) Grid::set(x, y - 1, Block(BLOCK_ ## name), false);
	#define placebehindnabove(name,n) Grid::set(x, y - n, Block(BLOCK_ ## name), false);
	#define placebehindabovexy(name,dx,dy) Grid::set(x + dx, y - dy, Block(BLOCK_ ## name), false);
	Random randomHeight(Grid::height * (1./3.) - 2, Grid::height * (1./3.) + 2);
	Random randomHeightOffset(-2, 2);
	Random randomPercent(0.0, 1.0);

	for (int x = 0; x < Grid::width; ++x) {
		int currentMaxHeight = randomHeight();
		for (int y = Grid::height - 1; y >= currentMaxHeight; --y) {
			place(DIRT);

			if (x > Grid::width / 2) {
				placeabove(GRASS_SNOWY);
			} else {
				placeabove(GRASS);
			}

			if (y == currentMaxHeight && randomPercent() < 0.075) {
				placebehindabove(DIRT);

				int treeHeight = randomPercent() * 4.0 + 3.0;
				for (int i = 0; i < treeHeight; ++i) {
					if (x > Grid::width / 2) {
						placebehindnabove(TREE_BIRCH, i - 2);
					} else {
						placebehindnabove(TREE, i - 2);
					}
				}

				placebehindnabove(LEAVES, treeHeight - 2);
				placebehindnabove(LEAVES, treeHeight - 3);

				placebehindabovexy(LEAVES, -1, treeHeight - 2);
				placebehindabovexy(LEAVES, +1, treeHeight - 2);

			} else {
				if (x > Grid::width / 2) {
					placebehindabove(GRASS_SNOWY);
				} else {
					placebehindabove(GRASS);
				}

			}

			if (y > Grid::height / 5.0 + randomHeight()) {
				placebehind(STONE);
			} else {
				placebehind(DIRT);
			}
		}
	}
	#undef place
	#undef placeabove
	#undef placebehind
	#undef placebehindabove
	/*
	for (int y = 0; y < Grid::height; ++y) {
		for (int x = 0; x < Grid::width; ++x) {

			if (y > Grid::height / 3) {
				Grid::set(x, y, Block(BLOCK_DIRT));
				Grid::set(x, y, Block(BLOCK_DIRT), false);
			} else if (y == Grid::height / 3) {
				Grid::set(x, y, Block(BLOCK_GRASS));
				Grid::set(x, y - 1, Block(BLOCK_GRASS), false);
				Grid::set(x, y, Block(BLOCK_DIRT), false);

			}

		}
	}
	*/
}

void Grid::eachVisibleBlock(std::function<void (Block &, Block &, int, int)> blockFunc, int xoff, int yoff, int xendoff, int yendoff) {

	int xs = -ceil(Grid::offset.x / 32.0) - xoff;
	int ys = -ceil(Grid::offset.y / 32.0) - yoff;
	int width = ceil(Grid::framebuffer.getSize().x / 32.0) + xendoff + xoff;
	int height = ceil(Grid::framebuffer.getSize().y / 32.0) + yendoff + yoff;

	for (int y = ys; y < ys + height; ++y) {
		for (int x = xs; x < xs + width; ++x) {
			if (x < 0 || x >= Grid::width || y < 0 || y >= Grid::height) {
				continue;
			}

			blockFunc(Grid::at(x, y), Grid::at(x, y, false), x - xs, y - ys);
		}
	}
}

redpajama_set_name: RedPajamaGithub


text:
MyPTS Login
Discover PTS
Calendar and Deadlines
Information Sessions and Campus Tours
PTS Shuttle Service
About PTS
Past, Present, and Future
Mission and Philosophyarrow
Head's Corner
Breakthrough Miami
Strategic Planarrow
Strategic Plan Details
2019 Final Updates
Contact Information and Directions
Global Educationarrow
PTS Travel
Technology Program
The Matheson Library
Coral Lab
Important Information for Students and Parents
Center for Excellence in Learning and Teaching
Visual Artsarrow
AP Art Portfolioarrow
AP Art Portfolio 2
Visiting Artists and Presenters
Art School Admissions
PTS Athletics
Alumni Athletes
Sideline Athletic Store
Student Life at PTS
Life In The Middle
Environmental Stewardshiparrow
Blue Stewards
Support PTSarrow
Why Support PTS?
Soaring Capital Campaignarrow
Trinity Chapel
Campaign Leadership
Proposed Site Plan
Sandy Golf and Tennis Tournament
Enrichmentarrow
Enrichment at Palmer Trinity
Falcon Summer Camp
2019 - 20 Important Dates
2020 -21 Important Dates
Eventsarrow
Sandy Golf and Tennis
PTS Parents
New Parent Resources
PTPAarrow
PTPA Committees
Parent Education Resources
PTS Parent Book Club
PTPA Volunteer Form
Books and Uniforms
PTS Alumni Association
Reunion and Events
Alumni Annual Fund
Alumni Mentoring Program
Affiliationsarrow
National Association of Independent Schools (NAIS)
Southern Association of Independent Schools (SAIS)
AP Art Portfolio
Support PTS
Soaring Capital Campaign
PTPA
Interdisciplinary Initiative
Interdisciplinary education in the United States can trace its genesis from the early pragmatists, a group of seminal thinkers and activists that included not only John Dewey, but also Jane Addams and W.E.B. du Bois. Together, they influenced a stream of thought and practice that regarded knowledge, not as a commodity, but as the interweaving of received tradition, personal experience, an imagination bent toward understanding, and the will to make the world a more humane place. Interdisciplinary education thus seeks to promote a different way of learning that allows for learning to make a difference.
Interdisciplinary learning fosters higher-order cognition and cultivates critical thinking skills by compelling students to transcend the artificial boundaries that traditionally divide academic disciplines. The rewards of interdisciplinary studies are further enhanced through student-centered education that promotes both individual initiative and group collaboration.
The Interdisciplinary Program encourages student-centered interdisciplinary education by offering recognition to students in good academic standing who participate in specifically designated courses of study characterized by academic rigor, collaborative teaching and learning styles, and carefully integrated curricula. As is the case with Honors and AP courses, the College Counseling Office highlights a student's participation in the interdisciplinary studies program during the college application process.
One interdisciplinary program is offered currently:
Interdisciplinary Program: American Studies (two credits; one in English and one in history)
American Studies blends the core curricula of the standard U.S. History and American Literature courses into a single course that explores the cultural, historical, literary, and artistic heritage of the United States. The course is structured around 1) conceptual frames of narrative, persona, mythology, and setting; and 2) the themes of environment and ecology, religion and science, agrarianism and urbanism, heroes, the gothic, race, class, gender, imperialism, industrialism, consumerism, and sexuality. Course materials include primary and secondary sources found in traditional history and literature studies, as well as the film, art, and music of America. Students engage this material through close reading, literary analysis, analytical writing, and Harkness discussions. Classes are two periods long with two teachers guiding intellectual discourse. Teachers focus extensively on the writing process, and students have the opportunity to pursue research projects in some depth throughout the year. Carrying two credits, American Studies fulfills graduation requirements in both English and history at the junior level.
Prerequisites: English 10 or equivalent and World and European history or equivalent.
Students of the 21st century will live in and contribute to an increasingly diverse society and an international community of interdependent nations. To realize their personal, social, and career goals, students must be able to communicate effectively with others. Palmer Trinity School seeks to prepare its students for life in this newly emerging world, including those learners who enter the school as speakers of a language other than English.
Palmer Trinity regards students who are bilingual and who have a good understanding of different cultures as invaluable assets to the school and the nation. Its international student body provides both an exciting educational challenge and the opportunity to maintain and enhance the school's rich linguistic and cultural diversity. In addition, its bilingual graduates allow the nation to thrive in the global marketplace, maintain its security in a changing and volatile world, and come to a better understanding of the complex cultural heritages that define the human community.
The program recognizes that ESOL learners must acquire an additional language and culture. They must be able to use English to accomplish their academic, personal and social goals with the same proficiency as native speakers of English. ESOL students need to be able to use spoken and written English both to acquire academic content and to demonstrate what they have learned.
Palmer Trinity works to ensure that its quality educational experiences and services are made fully accessible to all ESOL students. The school recognizes that language learning takes time, generally 5-7 years, and that subject matter learning cannot be deferred until students have demonstrated a mastery of English. In order to facilitate English language acquisition and continue academic growth across the curriculum, PTS offers a comprehensive ESOL program that includes both English language arts and sheltered content courses.
The program provides its students with challenging curricula that use appropriate instructional practices and assessment measures; moreover, the school cherishes the inclusion of English language learners in all school activities and encourages their full participation in the life of the school. Accomplished and professional ESOL teachers, in conjunction with other educational specialists and resources, ensure that students in the program receive the challenge, support, and guidance necessary to enjoy academic success and personal growth.
Middle School Offerings
ESOL Basic English
This course is designed for middle school ESOL students who have a low level of English proficiency. The language skills of listening, speaking, reading, and writing are integrated into lessons where each skill complements the others. Writing and reading tasks focus on developing communicative competence. Pronunciation, vocabulary and grammar are taught in meaningful contexts, where effective communication is the desired outcome. Students read literary selections that are simplified in vocabulary and grammar.
ESOL Intermediate English
This course is designed for middle school ESOL students who have attained an intermediate level of English. The course has a literary focus and rotates on a three-year cycle encompassing World Literature, Latin American/Asian/African Literature, and American Literature. Various literary genres are covered, including fiction, non-fiction, short stories, biographies, and poetry. The reading material is carefully selected so that it is age-appropriate, linguistically accessible, and culturally relevant. Vocabulary and grammar are studied in the context of the reading selections.
ESOL Humanities
This social studies course is offered for middle school ESOL students who have a beginning to intermediate proficiency in English. The class explores history and geography and examines contemporary social, politica,l and economic issues that affect the world. The content of the course rotates on a three-year cycle and covers the following topics: U.S. History and Geography; World History and Geography; and Latin American, Asian, and African Studies. The students also become familiar with the five themes of geography: location, place, human-environmental interactions, movement, and regions. Vocabulary is drawn from the subject matter.
ESOL Writing
This course is designed to help beginning to intermediate level ESOL students develop and improve their writing skills. Basic language skills are applied to the formation of grammatically correct sentences, paragraphs, and compositions. Students develop the ability to convey their ideas in clear, logical, organized and correct English sentences. Students also learn how to write for different purposes, including narrative, persuasive, and informative essays. They learn to write notes, letters, book reports, test essays, stories, and poems. In addition, students increase their English vocabulary through the writing process.
Main Entrance: 8001 SW 184th Street, Miami, FL 33157
Mailing Address: 7900 SW 176th Street, Miami, FL 33157
Admission: 305.969.4208

redpajama_set_name: RedPajamaCommonCrawl


Our understands the importance of privacy. This page outlines the types of personal information we receive and collect during your use of Web services, as well as some of the measures we take to protect information. We hope this will help you to make informed decisions about sharing our personal information in case of knowledge.
This site collects personal information in other cases where you volunteer to provide information. We may integrate personal information collected from you or information obtained from third parties to provide you with better customer service.
When you visit our website, we will advertise through third party advertising companies. These companies may use information about your visit this site and other sites of information (not including your name, address, email address or phone number), in order to show that you may be interested in products and services to your ad.
Where possible, we will give you the choice when you are requested to provide personal information. You can find more information about your selection in privacy statements or FAQs about specific services.


When I used sensitive property as true in execute resource and ran it on 7.4 rhel to generate ssl certificates then it did not gave any issue but now when executing the same code block on rhel 7.5 it is giving the errors.
The command you have for the "create system_key" execute resource is failing. Because you have marked this resource as sensitive, the error output is suppressed. So this is not a problem with the sensitive property on RHEL 7.4 vs 7.5; it is a problem with the key generation command on 7.4 vs 7.5.


text:
L'arduafronte (Arduafrons prominoris) è un pesce osseo estinto, appartenente ai picnodonti. Visse nel Giurassico superiore (Kimmeridgiano/Titoniano, circa 150 milioni di anni fa) e i suoi resti fossili sono stati ritrovati in Germania.

Descrizione
Questo pesce era di medie dimensioni, e poteva superare la lunghezza di 40 centimetri. Era dotato di un corpo tondeggiante e appiattito lateralmente, più alto che lungo. La testa era corta con una fronte alta (da qui il nome "Arduafrons") e il muso era estremamente allungato. L'apertura boccale era piccola e stretta, ma all'interno delle fauci i denti erano grandi e arrotondati.

La parte anteriore del dorso era stretta e terminava in una sorta di spina a metà del corpo; dietro la spina era presente una pinna dorsale dalla base ampia e spostata all'indietro, piuttosto lunga e bassa. La pinna anale, praticamente speculare a quella dorsale, era più piccola. La pinna caudale non era divisa in lobi.

Classificazione
Arduafrons prominoris venne descritto per la prima volta nel 1991 da Frickhinger, sulla base di fossili ritrovati nel famoso giacimento di Solnhofen in Baviera (Germania). I fossili indicano che Arduafrons era un rappresentante dei picnodonti, un grupo di pesci ossei tipici del Mesozoico e della prima parte del Cenozoico, dalla forma solitamente tondeggiante e dai denti robusti; Arduafrons, in particolare, sembrerebbe essere stato un membro insolitamente basale del gruppo nonostante la tarda apparizione, forse strettamente imparentato a Gyrodus. Brembodus e Gibbodon, due picnodonti con caratteristiche simili ma più derivati, sono molto più antichi (Triassico superiore). Secondo altre classificazioni, Arduafrons sarebbe affine a un altro picnodonte del Giurassico tedesco, Mesturus.

Paleobiologia
Arduafrons, come tutti i picnodonti, era un animale durofago; viveva in una laguna dalle acque calme e dal clima mite.

Bibliografia
Frickhinger K. A. 1991. Fossilien-Atlas Fische. Mergus Verlag, Melle, 1088 p.
J. R. Nursall. 1999. The family †Mesturidae and the skull of pycnodont fishes. In G. Arratia & H.-P. Schultz (ed.), Mesozoic Fishes 2—Systematics and Fossil Record 153-188
Poyato-Ariza F. J. & Wenz S. 2002. A new insight into pycnodontiform fishes. Geodiversitas 24 (1) : 139-248.
Poyato-Ariza, F. J., 2003: Dental characters and phylogeny of pycnodontiform fishes. Journal of Vertebrate Paleontology: Vol. 23, #4, pp. 937-940
Kriwet J., 2005. "A comprehensive study of the skull and dentition of pycnodont fishes", Zitteliana, vol. A45, pp. 135–188

Picnodontiformi

redpajama_set_name: RedPajamaWikipedia


Forum discussion thread for "Android app now available".
Does anyone use it? I would like to hear an opinion before downloading.
Ive already tracked down the problem to permission problems (or more precisely, problems in my code that handles permissions) but I'm rather busy at the moment and couldn't find enough time to rewrite that. Fix promised!


text:
https://www.fairplanet.org/author/nurcan-oezdemir/
Nurcan Özdemir
South Carolina votes to remove Confederate battle flag
The Confederate battle flag has flown at the South Carolina State House for more than 50 years. Now, after 13 hours of debate and an overwhelming [...]
The rainbow wins
This year´s "gay pride" parade was supposed to be the biggest one in the history of Turkey. Event organizers expected up to 100,000 visitors to make it the biggest LGBT parade that has ever [...]
If it´s ok to be transgender why is it not ok to be transracial?
Rachel Dolezal was a respected and well-known civil rights activist. She was chapter president of the National Association for the Advancement of [...]
Ireland´s ban on abortion: Out of sight, out of mind.
Ireland is the first country in the world to legalise same sex marriage by popular vote. Ireland is also the only democratic country to have a constitutional ban on abortion. A law [...]
A red carpet for human rights violations
He is an uncomfortable guest. Egypt's President Abdel Fattah al-Sisi´s two-day visit to Berlin had been controversially discussed before his [...]
Russia's undesirables: Putin signs Anti-NGO-law
Russian president Vladimir Putin signed a controversial law allowing authorities to shut down foreign and international organizations if they are [...]
Non-virgins apparently a danger to Indonesia´s national security
Indonesia is home to the world's largest Muslim population and places a high value on virginity. Women seeking to join the military or marrying [...]
Nimrod Kamer
Author and Producer "Golden News Shower"
Nimrod Kamer is a satirist, comedy writer/performer and journalist based in London.
Tamsin Walker
Tamsin is a British-born writer and translator with a background in documentary and journalism.
Katarina Panić
Katarina started her career in journalism in 1999 in Bosnia Herzegovina and has since covered several areas as politics, economics or human rights.
Hanno Hauenstein
Hanno Hauenstein is a writer and editor based in Berlin, Germany.
Bob Koigi
Author, Contributing Editor
Bob Koigi is a multiple award winning Kenyan journalist who has extensively reported on environment across several media.
Josef Reich
Founder, Social Entrepreneur, Author
Jossi Reich is a German-born musician, writer, entrepreneur and founder of fairplanet based in Tel Aviv.


text:
Q: Is there any way to display colors automatically with an interval one after the other on the activity screen in android application I want to display 3 colors in my activity screen layout without any user interaction with a time interval. for example for each 3 seconds one color should be displayed in my activity screen.
I tried with Thread.sleep(); It is showing the last color only after a long sleep.
    screenLayout=(LinearLayout)findViewById(R.id.screenLayout);

    screenLayout.setBackgroundColor(Color.RED);
    Log.e("","RED COLOR DISPLAYING..");
    try {
        Thread.sleep(7000);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    screenLayout.setBackgroundColor(Color.GREEN);
    Log.e("","GREEN COLOR DISPLAYING..");

    try {
        Thread.sleep(2000);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();

    }

    screenLayout.setBackgroundColor(Color.BLUE);

but it didnt work. Could any one please tell me the way to do this.

A: you can do like this way using Handler and Runnable object
private Handler handler;
private LinearLayout linear;
private int i= 0;
private Runnable runnable = new Runnable(){

    @Override
    public void run() {
        if(i>2)
            i=0;
        else
            i++;
        switch(i){
        case 0:
            linear.setBackgroundColor(Color.BLACK);
            break;
        case 1:
            linear.setBackgroundColor(Color.RED);
            break;
        case 2:
            linear.setBackgroundColor(Color.GREEN);
            break;
        }

        handler.postDelayed(runnable, 3000);
    }

};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.test7);
    linear = (LinearLayout)findViewById(R.id.main_linear);
    linear.setBackgroundColor(Color.BLACK);
    handler = new Handler();
    handler.post(runnable);
}

This is the example only but you can implement from this example

redpajama_set_name: RedPajamaStackExchange


text:
Quantum Communication Could Make U.S. Subs Even More Deadly
More secure communication means a more effective nuclear deterrent.
U.S. Navy photo by Lt. Cmdr. Michael Smith/DVIDS
Quantum communications would provide secure communications for U.S. missile submarines.
Quantum communications is a new, highly secure means of sending and receiving data.
The technology uses quantum theory to store data in fragile quantum states that collapses if hackers attempt to gain unauthorized access.
The process has been demonstrated in fast-moving water, leading to the possibility it could be used to communicate with nuclear-armed submarines.
University researchers have discovered that quantum communications are possible with submerged objects in turbulent water. The revelation means it might someday be possible for the National Command Authority to use quantum communications to securely communicate with underwater submarines, particularly those that make up part of the nuclear triad.
A Trident D-5 submarine launched ballistic missile launched by USS Nebraska, March 2018.
(U.S. Navy photo by Mass Communication Specialist 1st Class Ronald Gutridge/DVIDS
According to IEEE Spectrum, researchers at the University of Ottawa have demonstrated their ability to transmit information by quantum communications across thirty meters of "turbulent" water. The researchers were able to send 72 kilobits of data per second—or the equivalent of 4,600 characters per second. Although the method has been used to send and receive data through water in the past, it has been used across calm water and not necessarily water representative of a real-world marine environment.
Quantum communications is the practical application of quantum theory to create a super-secure means of communication. With current digital data transmission methods, it is possible for a third party to hack an exchange of data without being detected. The nature of quantum communications makes it possible to know immediately if hackers are trying to compromise a secure data stream.
Quantum communications would be—at least for now—pretty slow. Although 4,600 characters per second sounds like a lot, sending ordinary words in binary 0s and 1s balloons their size considerably. The word "Hello" in binary becomes "01001000011001010110110001101100011011110000110100001010" at a total of 56 characters. This article so far amounts to 19,656 characters in binary, or about 5 seconds of quantum communications at the current rate of data transmission.
The crew of USS Georgia, 2004.
But one group that could especially use this new quantum communications technology: nuclear submariners. The U.S. Navy operates 14 Ohio-class ballistic missile submarines, with at least five to six at sea at any given time. A typical deterrent patrol lasts an average of 70 days, during which time the submarines do their best to hide in the vastness of the world's oceans and await orders to fire their missiles.
Sub + Laser = Awesome
Why Is the Navy Arming Nuclear Subs With Lasers?
An Ohio-class submarine at sea is America's ace in the hole, ensuring that hundreds of nuclear warheads can survive a surprise nuclear attack on the U.S. The idea is that this strategy deters an enemy from launching an attack in the first place. All of this makes secure, reliable communications with submarines extremely important. A third party that could read messages between the "boomers" at sea and the Pentagon could determine their position and sink them.
Quantum communications is far from broadband-level bandwidth, but it is enough to send simple, coded messages to submarines at sea. China is also reportedly looking into quantum communications to communicate with its submarines, and other undersea nuclear powers will likely follow suit.
More From Research
The Air Force Wants to Beam Solar Power From Space
This Drone Killer Will Cook Swarms Out of the Sky
Did China Just Test a Nuclear Space Weapon?
Smart Dog Tags Could Help Monitor the Battlefield
The Army Wants to Build Squirrel-Inspired Robots
The Return of the Battle Blimps
China's New Drone Looks and Swims like a Manta Ray
The Navy Invented a Device to Break Concentration
DARPA Wants Nuclear-Powered Spacecraft By 2025
How Quantum Radar Could Completely Change Warfare
Another Climate Change Worry: Aggressive Spiders
New Tech Lets Subs Communicate With the Surface
A Supersonic Metal Spray Could Make Subs Deadlier
Did Google Just Achieve Quantum Supremacy?
You Could Help Develop a Quantum Computer by Playing a Game


Having problems with an 825y and have had problems for the last two years since moving in. Its leaking out the relief. Last year i replaced the rubbers and it worked great. Took it off for the winter and brought it inside but after i installed it again back to leaking. I dont want to keep repairing or replacing parts every year so my question is what is a better model or do i need an 825. Could I replace with a 765...much cheaper. I do have some grade above the unit in the back. just havnt read many good things about the 825. thanks.
Using the 765 in place of the 825 would be a code violation. Unless you can mount the 765 18" above the highest point of the system. You could look into a Wilkins 975, but they have problems too.
More than likely, your seals are simply drying out. Perhaps store it submerged in liquid over the winter. Seems odd, since we have multiple 825's that endure the winter elements and can make the 5 year rebuild schedule with no problems.
Are you doing a complete rubber rebuild?
One key to the 825Y service is to lubricate the O-ring inside the relief assembly. If you skip that step (and lay the grease on heavy - that's what it's for) all your work can be wasted.
Thanks for the replies. Broke it open this afternoon and had a crack/broken piece on the relief valve. Just gonna buy a new unit. Cheaper them buying new valve and new rubber. Thanks for info on the lube. I will make sure to put enough on next year when I replace the rubbers again.
Please take a photo(s) of what you found was physically broken and post them here.


thorbjørn olesen has claimed his third european tour international schedule victory in his 130th european tour event.
thorbjørn olesen saw his lead cut to one shot after a topsy-turvy start to his final round at the alfred dunhill links championship on sunday.
A return to form for Thunderbear, a King of the Waves, a former German footballing superstar and more. We recap Moving Day at the Alfred Dunhill Links Championship - in numbers.
joakim lagergren surged into contention at the alfred dunhill links championship after picking up eight shots on his back nine at kingsbarns on saturday.


text:
<?php

namespace Phphilosophy\Router;

use Phphilosophy\Http\Request;

class Matcher {

    /**
     * @var     \Phphilosophy\Http\Request  The current request
     */
    private $request;

    /**
     * @var     array   An array with regex shortcuts
     */
    private $tokens = [
        ':alpha' => '[A-Za-z]+',
        ':id' => '[0-9]+',
        ':int' => '[\-]?[0-9]+',
        ':alphanum' => '[A-Za-z0-9]+',
        ':string' => '[A-Za-z0-9\-_]+',
        '' => '[A-Za-z0-9]+'
    ];

    /**
     * @param   \Phphilosophy\Http\Request  $request
     */
    public function __construct(Request $request) {
        $this->request = $request;
    }

    /**
     * @param   string  $token      The parameter type
     * @param   string  $pattern    The route pattern
     *
     * @return  string    The route regex
     */
    private function translate($token, $pattern)
    {
        // Searches the route pattern for placeholders like {id:num}
        $search = '#[\{][a-z0-9]+'.$token.'[\}]#';

        // The regular expression to be exchanged with the token name
        $replacement = $this->tokens[$token];

        // Turns the route param into a regular expression
        $result = preg_replace($search, $replacement, $pattern);

        return $result;
    }

    /**
     * @param   \Phphilosophy\Router\Route  $route  A route instance
     *
     * @return  string  The pattern as a regex
     */
    private function parse(Route $route)
    {
        // The parameter token namespace
        $tokens = array_keys($this->tokens);

        // The route pattern
        $pattern = $route->getPattern();

        // Search for all kinds of parameters and translate them
        foreach ($tokens as $token) {
            $pattern = $this->translate($token, $pattern);
        }

        // The parsed regular expression ready for matching
        return '#^'.$pattern.'$#D';
    }

    /**
     * @param   \Phphilosophy\Router\Route  $route  A route instance
     *
     * @return  boolean     Was there any match?
     */
    public function match(Route $route)
    {
        // The pattern translated into a regex
        $regex = $this->parse($route);

        // The route methods
        $methods = $route->getMethods();

        // The current uri
        $uri = '/'.trim($this->request->getRequestTarget(), '/');

        // The current http method
        $method = $this->request->getMethod();

        return preg_match($regex, $uri) && in_array($method, $methods);
    }
}


Thank you for inquiring about the Selco EB70.
This machine was purchased used by a customer and never powered up as they have decided to go with another CNC router instead.
Machine can be inspected and it is under power currently.


I read over the "Is there a command line Bitcoin CPU miner for Windows?" post and GCMiner looked promising for a Windows command line scriptable solution that allows pool mining.
I tried downloading the GCMiner client right from GitHub links from Windows via the Chrome, Firefox, and Internet Explorer web browsers and all of them say something is unsafe and prevents me from downloading the CLI tool. I tried to download from Linux Mint via the Firefox web browser from the GitHub links and got the same unsuccessful result.
Is there a safe Windows client that is command line that I can use to mine in a pool such as SlushPool for CPU mining I suppose?
I'm setting this up to play with and become familiar with the pool management side more than the configuration so I'm not worried about CPU being ineffienct over GPU.
If I can safely download CGMiner to start playing with it on Windows that'd even work.
Note: I'd prefer to use a pool like SlushPool where I can put in my unique username and whatever miner names I define only. I don't want a client that requires an email address in the logic to mine.
There are no official CGMiner binaries being distributed anymore specifically because of this problem. You will need to download the source code and compile it yourself. Instructions for doing that are available here.
The reason that CGMiner is flagged as Unsafe is due to Anti-Virus software and malware that use CGMiner. Anti-Virus have performed analyses of the CGMiner and determined it to be a cryptocurrency mining software - which it is. Unfortunately, a lot of malware are also capable of mining cryptocurrencies once they infect someone's computer, so AVs have taken to flagging everything that can mine cryptocurrencies as unsafe. This then reaches the browsers which do the same.
Not the answer you're looking for? Browse other questions tagged mining-pools client cpu-mining or ask your own question.
Is there a command line Bitcoin CPU miner for Windows?
Why do I see a 'Yay' with a 70% match, and a 'Booo' with a 75% match?
Electrum - Setting up a server - Problems!
Could mining centralization be countered by checking if the node connects to many ASICs instead of one?


Breast Cancer Care publications produce 100s of award winning publications and other information resources for health professionals and people affected by breast cancer, all of which needs to be warehoused, processed and distributed.
Breast Cancer Care sell thousands of items of merchandise through their own online shop, where 100% of the proceeds go to Breast Cancer Care. The customer order's need to be picked, packed and distributed on a daily basis.


The crypto world received a surprising win from the U.S. justice system today.
Earlier this week, a California judge slapped down an SEC attempt to classify an ICO token as a security. U.S. District Judge Gonzalo Curiel of the Southern District of California declared yesterday that the Securities and Exchange Commission (SEC) has failed to provide adequate proof that the Blockvest ICO tokens should be considered securities. For that reason, Judge Curiel has turned back a request from the SEC for a preliminary injunction against the backers of the Blockvest ICO and its BLV tokens. It's the first federal decision finding that the SEC hasn't shown a digital asset offered in an ICO is a security. This is a big win for the crypto community.
As reported by CCN.com, the SEC uses three crucial metrics to determine whether or not a token is a security. These metrics date back to the 1946 SEC v. Howey Co. case. That case led to a landmark decision that governs the SEC's enforcement of securities laws to this day. The SEC claimed that the Blockvest ICO involved the illegal sale of securities in the form of tokens, and that the tokens failed to pass the Howey Test. Judge Curiel disagreed with the evidence presented by the SEC and was not satisfied with the SEC's arguments.
The judge took particular issue with one specific requirement: in order to prove a token is a security, the SEC needs to prove that the tokens were sold to investors with the promise of expected profits. Judge Curiel was reportedly not convinced that investors had expected to make a profit on the purchase of Blockvest ICO tokens. Instead, Judge Curiel was convinced that the tokens were simply used to test the platform – not as a genuine investment.
Blockvest was one of the shadier ICOs of the last year. Part of the problem was that Blockvest appeared to create a fake SEC logo to feign approval. Blockvest created a logo for a fake organization called the Blockchain Exchange Commission, apparently for the sole purpose of convincing investors that it was a regulated entity. Blockvest allegedly created the Blockchain Exchange Commission (complete with an official-looking "BEC" symbol) because they wanted to convince investors that Blockvest's ICO had been approved by a legitimate regulator. The BEC symbol looked suspiciously like the SEC's symbol.
Ultimately, the Blockvest ICO failed to generate a splash in the crypto community – despite the best efforts of the Blockvest team. The project received less than $10,000 in total investment from just 32 investors.
The Howey Test refers to the 1946 decision in the case between the SEC and the Howey Co. The test states that something can be considered a security if it has certain properties associated with a security. Judge Curiel clearly believes that the Blockvest tokens pass the Howey Test. Therefore, they should not be considered securities.
Part of the reason the judge slapped down the SEC's request was because of intelligent defending by the Blockvest team.
Blockvest's defense has been described as "brilliant". Blockvest claims its tokens were only used for testing of the exchange – nothing more. The defense's claim rests on the idea that most investors were actually well-known friends of defendant and Blockvest ICO creator Reginald Buddy Ringgold III. Blockvest also faced scrutiny for claiming to have raised $2.5 million during the ICO. Blockvest, however, defended that claim by stating that the $2.5 million figure was "overly optimistic" and relied on a single investor. That deal later fell through. The judge ultimately agreed with Blockvest's defense. Blockvest's BLV tokens should not be considered securities because the way they were marketed and sold did not meet the standard of a security sale. Thus, BLV tokens cannot be declared as securities at this time.
After the decision was announced, Blockvest's assets were unfrozen. However, the battle between Blockvest and the SEC is far from over.
The judge has struck down the SEC's claim that Blockvest tokens should be considered securities. The judge feels that the SEC has insufficiently proven previous wrongdoing on the part of Blockvest, which means there should be no reason for the injunction. However, that doesn't mean Blockvest has escaped without penalty.
The biggest problem with Blockvest could be in the use of the SEC logo. As mentioned above, Blockvest fabricated an organization called the Blockchain Exchange Commission (BEC). The logo for that organization looked identical to the logo of the SEC. The fake BEC logo was displayed on the Blockvest ICO website, indicating to users that the Blockvest ICO had received official approval from the SEC. The SEC, as you can imagine, does not take kindly to people abusing its logo, and Blockvest could face further penalties.
The Blockvest ICO was one of the sleaziest ICOs in the crypto space. The creators of the ICO went so far as to create a symbol that looked like the SEC logo. Despite the low-quality ICO, the SEC was still unable to prove that Blockvest's tokens could be considered securities. This case is a big deal: it's the first federal decision on whether the SEC can regulate digital assets from ICOs as securities. It remains to be seen what impact this will have on other ICO cases moving forward.
to new and previously unaddressed matters. The precedent that will likely shape the body of U.S. case law on fraudulent initial coin offerings (ICOs) is currently being forged in a federal court in the New York borough of Brooklyn, where a 39-year old entrepreneur, Maksim Zaslavskiy, has pleaded guilty to committing securities fraud. The development that will most likely result in a landmark decision – the jury will gather in April 2019 to decide on a sentence – is yet another twist of a now 14 month-long effort, involving both the U.S. Department of Justice and Securities and Exchange Commission (SEC). Previously, the process has already yielded a fateful ruling by a federal judge who in September established that securities law is applicable to ICO-related cases.
The Ukrainian city of Odessa, overlooking a scenic coastline of the Black Sea, is known for its vibrant spirit and unique culture. Throughout both the Imperial and Soviet periods of its history, the city has been home to a large Jewish community. As the final years of the USSR saw the liberalization of immigration policies, many Odessan Jews chose to leave for either Israel or the West. Born in Odessa, Maksim Zaslavskiy was 12 when his family relocated to the U.S. While Maksim was destined to make ICO history, his brother, Dmitry, chose a banking career and later became an executive director for Morgan Stanley. Zaslavskiy's social media pages, as well as websites of many organizations he ran at various points of time, were either deleted or became unavailable in the wake of the high-profile investigation into his activities. The main source of information about his pre-trial life is now the four-hour interview to the SEC representative that he gave in September 2017, of which the Fast Company magazine managed to obtain a transcript.
In 2003, Zaslavskiy received his degree in finance from Baruch College, followed by a LLM from Yeshiva University's Cardozo School of Law three years later. He worked as an IT consultant for several banks before starting his own international business, whose nature is difficult to infer from the interview. Zaslavskiy also claimed to have been involved in real estate business since the age of 18, yet Fast Company's investigation failed to verify his employment with the firms he claimed to have worked for. According to the interview, the 2008 crisis became a major blow for Zaslavskiy's business, further entrenching him in his resentment of the U.S. financial system. He turned to charity work, founding a philanthropic organization called Live Love Laugh. However, it is impossible to say whether the ambitious statements on its website (which is now down) were ever backed by any real actions, since the entity appears to never have been properly registered.
Zaslavskiy has also written at least three books (under the name Avi Meir Zaslavsky) that can be still found on Amazon. These are how-to guidebooks on the ins and outs of real estate business. Another one, which appeared around the time his two ICOs were in full swing in August 2017, sets out to explain the reader that "what you perceive and use as money is designed in such a way that the wealth created by the economy truly benefits only large banks and multinational corporations." Apparently, the book was meant to lend credibility to Zaslavskiy's claim for intellectual leadership in the crypto space, as its press release presents him as "one of the world's leading currency decentralization proponents." The publicity campaign around the book provides a glimpse into Zaslavskiy's approach to marketing himself and his ventures: bold, extravagant, overblown. Unsurprisingly, this style carried over to the way his two ICOs were presented to potential investors.
In August, after facing the first signs of SEC interest to REcoin, the "Entrepreneur, Philanthropist, and Author Max Zaslavsky" began his marketing campaign for an allegedly diamond-backed digital asset, the Diamond Reserve Club token. The release (beginning with "If the Holy Scriptures have taught us anything at all…") touted a brand new Initial Membership Offering model, which was supposed to tokenize investors' participation in a large ecosystem of interconnected businesses. It also suggested that the tokens could be inherited by the investors' grandchildren. One would think that the theatrical language and gargantuan assurances of the two ICOs' public-facing documents would only make any reasonable person scoff. Yet from July through September Zaslavskiy and his accomplices managed to amass around $300,000 before the SEC took the matter to court.
Author adminPosted on November 25, 2018 Categories BusinessTags airdrop, airdrops, cryptocurrency, markethiveLeave a comment on What is a crypto currency Airdrop?
startup accelerators as critical components of their center for research, education, and innovation in blockchain technology and data transparency.
The joint venture, part of the Columbia-IBM Center for Blockchain and Data Transparency, will provide 20 entrepreneurs and blockchain network founders worldwide with access to the assets, knowledge, and support they need to build sustainable blockchain businesses and enterprise-grade blockchain networks. IBM's Network Blockchain Accelerator will expedite the global development of ten later-stage growth companies, and focus on building out an enterprise-grade business network and client base for their blockchain solution.
The two accelerator programs will empower companies and their teams with the aid of an expert network of business and technical support teams, workshops from IBM, as well as access to connections to the Columbia research community, student talent pools, and the IBM Cloud technology. As part of the accelerator plan, entrepreneurs will investigate what are the best practices for building a secure and sustainable blockchain network and ecosystem with the guidance of academic, technical, and business tutors from IBM, the Columbia University and other organizations.
Both programs are expected to launch in Q1 of 2019, while IBM Network has already opened nominations. Since they are invite-only, to apply, companies must look for the recommendation of investors, customers or IBM representatives. The Columbia Launch program is designed to help up to seed-funded startups. Upon completion of the accelerator, IBM may decide to enter into strategic partnerships with the firms to assist them with establishing and/or scaling the concepts developed during the program.
in October by the UK's Information Commissioner's Office over the data-harvesting scandal. The penalty – the highest the ICO was able to dole out for the firm's part in the Cambridge Analytica scandal because it took place before GDPR kicked in – equates to about 18 minutes of profit for the firm.
Nonetheless, the Zuckerborg is insistent that no UK data was involved, arguing that not only does this mean it shouldn't have to pay up, but also that it's a matter of principle about the way people behave online. The ICO said when it handed down the fine that, on the information it had, "it is not possible to determine" if Facebook's assertion that only US resident's data was shared with Cambridge Analytica is correct. However, it contended that the personal data of UK users was "put at serious risk of being shared" for political campaigning – and thus issued the enforcement action for failing to do enough to protect that info.
The fine came as part of an investigation into the misuse of data in political campaigning, much of which focused on how data-slurpers Cambridge Analytica used an app to collect information on 87 million Facebook users. The app, created by academic Aleksandr Kogan, sucked up so many people's profiles because Facebook's policies for developers using its Graph API originally allowed apps to gather data not only from users, but also all of their friends. Although the firm changed this policy in 2014, there was a year's grace period for existing apps. Cambridge Analytica approached Kogan to make use of this loophole before it closed.
Facebook has insisted Kogan was a rogue dev who broke the rules when he sold the data on to Cambridge Analytica – but has also admitted it could have done more when they discovered the incident in 2015.And it's this, broadly speaking, that the Facebook is taking issue with. "The ICO's investigation stemmed from concerns that UK citizens' data may have been impacted by Cambridge Analytica," said Anna Benckert, the firm's associate general counsel for EMEA. However, she said, the ICO "have confirmed that they have found no evidence to suggest that information of Facebook users in the UK was ever shared by Dr Kogan with Cambridge Analytica, or used by its affiliates in the Brexit referendum.
"Therefore, the core of the ICO's argument no longer relates to the events involving Cambridge Analytica." Facebook is arguing that the ICO's reasoning "challenges some of the basic principles of how people should be allowed to share information online" and that this has implications that "go far beyond Facebook". Benckert – taking a real ad absurdum approach – said the ICO's theory meant that "people should not be allowed to forward an email or message without having agreement from each person on the original thread". "These are things done by millions of people every day on services across the internet, which is why we believe the ICO's decision raises important questions of principle for everyone online which should be considered by an impartial court based on all the relevant evidence."
"Any organisation issued with a monetary penalty notice by the Information Commissioner has the right to appeal the decision to the First-tier Tribunal. The progression of any appeal is a matter for the tribunal. We have not yet been notified by the Tribunal that an appeal has been received." Information commissioner Elizabeth Denham has made it abundantly clear that she would have fined Facebook more if she had been able to, and said that, in particular, its follow-up after it discovered the breach was "less than robust".
She told MPs earlier this month that her team "found some problems with the signing of [Facebook-ordered] authorisations [from organisations]; some of them weren't signed at all". The ICO has also referred other, ongoing concerns about the firm's targeting functions, its monitoring of individuals' browsing habits and interactions, to the Irish Data Protection Commissioner (Facebook's European HQ is in Ireland). Meanwhile, the firm's decision to appeal the UK's fine will do little to bolster goodwill among the nation's lawmakers, especially as Zuckerberg has repeatedly rejected requests to appear in front of parliament's digital committee.
These past several months, an analysis of ICO performances in the midst of varying market volatility was conducted by the data science team at Lunar Digital Assets. Intuition would probably lead a typical retail investor to believe that an ICO will perform better in bull markets as opposed to bear markets (and in stable markets which are void of any particular direction).
At the inception of the idea for this study, we were curious to see what cryptocurrency traders and ICO investors thought regarding the performances in bull and bear markets. So we asked various networks of traders and investors a fairly simple question. The results were astoundingly favored towards bull markets, as most would expect. However, it should be pretty noteworthy that 29% of those surveyed disagreed with the majority. (29% because the 12% that voted for «Anytime» would be investing in bull markets as well.) In hindsight, we probably should have had «I don't know» added to the list of choices.
SURVEY RESULTS: WHEN'S THE BEST TIME TO BE INVESTING INTO ICOs?
In this analysis, we aim to bring credence to or dispel this commonplace notion using statistical analysis and hypothesis testing. We strongly believe that this study is especially helpful in the relatively young market of cryptocurrencies and initial coin offerings, whereas traditional financial markets have a much longer history and established patterns and trends. We will attempt to answer the question that everyone thinks they know, but doesn't really know: Do ICOs really—statistically—perform better in bull markets?
DATA OVERVIEW AND EXPLORATORY ANALYSIS: FINDING RELIABLE DATA IN THIS FRAGMENTED, YOUNG MARKET CAN BE CHALLENGING.
The data for this study was acquired from Coinist, which provided a sample data size of 457 initial coin offerings. Although we are aware that there were many more ICO's conducted, we believe that 457 is an ample size to draw inferences from. Coinist was also the only data source that readily had ROI information (the figures were also spot checked for accuracy), and went as far back as 2013 up until the data the captured in May 2018 when this study was being conducted.
As basis of analysis, we will be using each coin's Return on Investment (ROI) since the ICO Ending date as a measure for investment performance. Due to the varied nature of ROI across ICOs, I will be using a common logarithmic function (Base 10) of each coin's ROI as reasonable means of comparison. This is especially useful as we are concerned about relative performance in different market conditions and not an associated scalar value.
We did not find any major issues with the data other than one mislabeled adte for the coin APX. The ICO date was set to May 21, 1970. While cross referencing with other sources, we had determined and fixed the APX ICO date to May 21, 2017. Outliers: NXT's overall ROI of ~24,000% was an obstacle to proper comparison and analysis. Despite being a significant outlier (the next best performer was Ethereum at ~1,900%), we decided to keep this data and regularize it via a common logarithmic function for analysis.
The goal of EDA is to visualize the data in different perspectives to glean additional insights for further analysis, anomaly detection, and data consistency. In this section, we will visualize the data from a high level. First, we wish to explore the pace of ICOs and visualize the rise of ICO as a means of capital funding: We see a staggering yet unsurprising increase in ICOs in 2017 followed by a decline in 2018 YTD. However, we would not be surprised to see the annual 2018 value exceed 2017's ending tally. It should be noted that since the data was taken in May, as predicted, the number of ICOs is steadily rising.
On a monthly basis, ICOs that end in April have the best median performance but also likelier to perform the worst of any month other than December. Otherwise, there does not seem to be a significant difference in ICO performance based on Ending Month.
When taking out the year dimension of the view, the plot suggests very little difference in median ROI performance.
The plot suggests very little difference in median ROI performance, but one very odd statistic was that bull markets see more outliers of negative performance and purgatory markets see more outliers of positive performance (likely due to NXT's ROI as the coin had its massive run-up in a purgatory market in 2013).
It appears that the market conditions do not have a significant impact on the median returns of ICO's. Now we can move on to see if, on average, ICOs perform better in bull markets than in bear markets.
MEDIANS AND AVERAGES ARE NOT THE SAME!
The primary method of analysis used to assert our assumption is a hypothesis test using a Z-Test. In order to appropriately perform the test, we require that the distribution of the data be unimodal and normally distributed. In our sampling method, the sample size must be larger than 30 and our samples be independent. We find that each market environment contains 173 ICOs during a bull market, 143 during bear markets and 142 in purgatory markets. As a result, our population and ensuing sample sizes will be greater than 30. Moreover, our population samples are assumed to be independent.
To assert our data is unimodal, an Exponential Cumulative Distribution Function was constructed. The theoretical model takes the mean and standard deviation of our ROIs and plots hypothetical data points. We compare this with the actual plot of our ROI data. In the below graph, we find that our real data is closely aligned with the ideal model and thus can be assumed to be unimodal and normally distributed. The goal of our statistical analysis and hypothesis test is to determine whether ICOs, on average, perform better (has a higher average ROI) during a bull market than in a bear market. To accomplish this, we need to construct the confidence intervals and then the hypothesis test parameters.
H?: μ1 — μ2 = d?
Hα μ1 — μ2 > d?
The Z-Test statistic formula will be the difference in means (μ1−μ2) less D0 divided by the square root of the standard error of both the bull and bear market ROIs. We arrive at a test statistic of -0.717. This value does not fall into our critical rejection region of [1.64 to infinity] and therefore fail to reject the null hypothesis. This suggests that there is no difference between the average ROI (and by extension performance) between bull and bear markets. This assertion continues to hold true at both the 99% and 99.9% confidence levels.
We additionally tested if this holds true when we change the Alternative hypothesis from Ha:μ1−μ2>D0 to Ha:μ1−μ2≠D0 (which denotes that there is a significant difference between the average ROI in bull and bear markets). We find that at the 95%, 99% and 99.9% confidence levels we still fail to reject the null hypothesis.
SURPRISE! BAD PROJECTS WILL BE BAD PROJECTS, REGARDLESS OF THE MARKET'S HEALTH.
3) bull markets see more outliers of negative performers!
We can safely say that there needs to be more studies done, and there are so many more variables at play here. But those looking to raise working capital through an ICO should not focus on trying to time the market but rather focus their efforts on other aspects such as the actual product, the white paper, marketing hype, building the community, and etc.
When I assigned our research team this task, I thought that I was going to prove to the world that investing in ICOs during a bear market was a bad idea. Not only was I proven wrong, but this study has given me new epiphanies on how to further capitalize the downtrends. Since then we have embraced the philosphy of truly growing organic communities and building a strong foundation for projects. While most would think that a bear market would have negative effects on all projects, the numbers were fairly clear here, and numbers don't lie. During bull markets, I suppose there's more confirmation bias as there are many more ICO's going on, which means more headline news of X, Y, and Z coins doing 500x returns.
To all the projects that are on the sidelines waiting for the bull market to come, that is a bit concerning — ultimately, it means you have no faith in your own project. True tech and true community will overcome bear markets, as projects like Chromapolis and Cloudbric has proven.


Juicy J is one of the most influential artists of our time. If it wasn't for Juicy J and Three 6 Mafia, hip hop wouldn't have the sound it does today.
Three 6's influence transcended their own region and the flows from this era of hip hop stem from what they Lord Infamous' triplet flow. G-Herbo recently tackled their production on "Who Run It" for his own freestyle at the request of Drake.
Three Six Mafia's "Who Run It" has been the popular go-to track in recent weeks. Artists like G Herbo, A$AP Rocky, Lil' Yachty, Trippie Redd, Dave East and Vado have all dropped freestyles over the southern classic.
The originator, 3-6 Mafia's own Juicy J, joins the now dubbed "Who Run It Challenge" with a freestyle of his own. Hear Juicy J get some bars off, opening the track by thanking those paying homage.


text:
Home » Sport » Joe Hart set for shock permanent switch to Premier League club
Joe Hart set for shock permanent switch to Premier League club
Joe Hart is on the brink of completing a shock £4million move to Burnley.
Ditched England keeper Hart has been in limbo for the last two years after Pep Guardiola took the hotseat at Manchester City.
He spent the 2016-17 campaign on loan with Torino and played for West Ham last term, but has returned to City this summer on the hunt for a permanent move away.
Burnley have agreed a fee with City and Hart is understood to have taken a cut in his £120,000-a-week wages to force through the switch to Turf Moor.
Ironically, the door to the move was opened by the dislocated shoulder injury suffered by Nick Pope, who was one of the three keepers Gareth Southgate chose ahead of him for England's World Cup campaign.
Pope is now facing six months out of action and with Tom Heaton nursing a calf injury – after missing most of last season with a dislocated shoulder – Dyche moved for Hart.
After a frustrating summer in the transfer market, Dyche is set to complete a second signing over the weekend after agreeing an £8m deal with Swansea for midfielder Sam Clucas.
And he also has bids in for West Brom striker Jay Rodriguez and Middlesbrough defender Ben Gibson as he tries to strengthen his squad in the hope the can match last season's seventh placed finish in the Premier League and cope with the extra burden of playing in the Europa League for the first time.
Dyche has held a long-term interest in Clucas and finally looks to have got his man.
Like Hart, Clucas travelled to Turf Moor yesterday for a medical and his imminent transfer will allow Swansea boss Graham Potter to move for Brentford midfielder Ryan Woods.
It is understood the Swansea hierarchy have long questioned Clucas' attitude since he arrived from Hull less than a year ago for a £15m fee.
The 27-year-old former Debenhams shop worker scored twice against Arsenal last season, but he couldn't stop Swansea from being relegated to the Championship.
The Swans will make a £7m loss on Clucas, but his desire to move on means Potter was willing to let him go and receive funds which will enable him to improve his squad.
Conor McGregor's bizarre meeting with Conservative MP Jacob Rees-Mogg
UFC confirm date, venue and opponent for Conor McGregor's UFC return
Rebekah Vardy slams lockdown rule breakers: 'They need to set an example'